001    package AST;
002    
003    import java.util.HashSet;
004    import java.io.File;
005    import java.util.*;
006    import beaver.*;
007    import java.util.ArrayList;
008    import java.util.zip.*;
009    import java.io.*;
010    import java.io.FileNotFoundException;
011    import java.util.Collection;
012    /**
013      * @ast class
014     * 
015     */
016    public class EnclosingMethod extends Attribute {
017    
018        public EnclosingMethod(ConstantPool cp, TypeDecl typeDecl) {
019          super(cp, "EnclosingMethod");
020          u2(cp.addClass(typeDecl.enclosingType().constantPoolName()));
021          BodyDecl b = typeDecl.enclosingBodyDecl();
022          if(b instanceof MethodDecl) {
023            MethodDecl m = (MethodDecl)b;
024            u2(cp.addNameAndType(m.name(), m.descName()));
025          }
026          else if(b instanceof ConstructorDecl) {
027            ConstructorDecl m = (ConstructorDecl)b;
028            u2(cp.addNameAndType(m.name(), m.descName()));
029          }
030          else {
031            u2(0);
032          }
033        }
034    
035    
036    }