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 }