package IR; import IR.Tree.Modifiers; import IR.Tree.ExpressionNode; import java.util.Vector; /** * Descriptor * * represents a symbol in the language (var name, function name, etc). */ public class MethodDescriptor extends Descriptor { protected Modifiers modifier; protected TypeDescriptor returntype; protected String identifier; protected Vector params; protected SymbolTable paramtable; protected ClassDescriptor cd; protected VarDescriptor thisvd; protected boolean isglobal; public MethodDescriptor(Modifiers m, TypeDescriptor rt, String identifier) { super(identifier); this.modifier=m; this.returntype=rt; this.identifier=identifier; this.safename = "___" + name + "___"; this.uniqueid=count++; params=new Vector(); paramtable=new SymbolTable(); thisvd=null; } public Modifiers getModifiers() { return modifier; } public boolean matches(MethodDescriptor md) { /* Check the name */ if (!identifier.equals(md.identifier)) return false; if (numParameters()!=md.numParameters()) return false; for(int i=0;i