package zinara.ast.type; import java.util.ArrayList; import zinara.ast.Param; import zinara.ast.instructions.CodeBlock; public abstract class RoutineType extends Type { public ArrayList args; // arraylist of Param public CodeBlock codeBlock; public String label; public int len() { return args.size(); } public Param getArgument(int i) { return ((Param)(args.get(i))); } public boolean isArgumentByRef(int i) { return !((Param)(args.get(i))).byValue(); } public Type getArgumentType(int i) { return ((Param)(args.get(i))).getType(); } public String toString() { String ret = "<"; for (int i = 0; i < args.size(); i++) ret += ((Param)(args.get(i))).getType(); return ret + ">";// + "{" + codeBlock + "}"); } }