public Declarator make(Symbol sym, int dim, ASTree init) { Declarator d = new Declarator(this.varType, this.arrayDim + dim); d.qualifiedClass = this.qualifiedClass; d.setLeft(sym); append(d, init); return d; }
public Declarator make(Symbol sym, int dim, ASTree init) { Declarator d = new Declarator(this.varType, this.arrayDim + dim); d.qualifiedClass = this.qualifiedClass; d.setLeft(sym); append(d, init); return d; }
/** * Makes the given variable name available. * * @param typeDesc the type descriptor of the variable * @param varName variable name * @param varNo an index into the local variable array */ public void recordVariable(String typeDesc, String varName, int varNo, SymbolTable tbl) throws CompileError { char c; int dim = 0; while ((c = typeDesc.charAt(dim)) == '[') ++dim; int type = MemberResolver.descToType(c); String cname = null; if (type == CLASS) { if (dim == 0) cname = typeDesc.substring(1, typeDesc.length() - 1); else cname = typeDesc.substring(dim + 1, typeDesc.length() - 1); } Declarator decl = new Declarator(type, cname, dim, varNo, new Symbol(varName)); tbl.append(varName, decl); }
private Declarator parseFormalType(SymbolTable tbl) throws CompileError { int t = lex.lookAhead(); if (isBuiltinType(t) || t == VOID) { lex.get(); // primitive type int dim = parseArrayDimension(); return new Declarator(t, dim); } else { ASTList name = parseClassType(tbl); int dim = parseArrayDimension(); return new Declarator(name, dim); } }
/** * Makes the given variable name available. * * @param typeDesc the type descriptor of the variable * @param varName variable name * @param varNo an index into the local variable array */ public void recordVariable(String typeDesc, String varName, int varNo, SymbolTable tbl) throws CompileError { char c; int dim = 0; while ((c = typeDesc.charAt(dim)) == '[') ++dim; int type = MemberResolver.descToType(c); String cname = null; if (type == CLASS) { if (dim == 0) cname = typeDesc.substring(1, typeDesc.length() - 1); else cname = typeDesc.substring(dim + 1, typeDesc.length() - 1); } Declarator decl = new Declarator(type, cname, dim, varNo, new Symbol(varName)); tbl.append(varName, decl); }
private Declarator parseFormalType(SymbolTable tbl) throws CompileError { int t = lex.lookAhead(); if (isBuiltinType(t) || t == VOID) { lex.get(); // primitive type int dim = parseArrayDimension(); return new Declarator(t, dim); } ASTList name = parseClassType(tbl); int dim = parseArrayDimension(); return new Declarator(name, dim); }
private int recordVar(CtClass cc, String varName, int varNo, SymbolTable tbl) throws CompileError { if (cc == CtClass.voidType) { exprType = CLASS; arrayDim = 0; className = jvmJavaLangObject; } else setType(cc); Declarator decl = new Declarator(exprType, className, arrayDim, varNo, new Symbol(varName)); tbl.append(varName, decl); return is2word(exprType, arrayDim) ? 2 : 1; }
private int recordVar(CtClass cc, String varName, int varNo, SymbolTable tbl) throws CompileError { if (cc == CtClass.voidType) { exprType = CLASS; arrayDim = 0; className = jvmJavaLangObject; } else setType(cc); Declarator decl = new Declarator(exprType, className, arrayDim, varNo, new Symbol(varName)); tbl.append(varName, decl); return is2word(exprType, arrayDim) ? 2 : 1; }
t = lex.get(); int dim = parseArrayDimension(); return parseDeclarators(tbl, new Declarator(t, dim)); ASTList name = parseClassType(tbl); int dim = parseArrayDimension(); return parseDeclarators(tbl, new Declarator(name, dim));
public ASTList parseMember1(SymbolTable tbl) throws CompileError { ASTList mods = parseMemberMods(); Declarator d; boolean isConstructor = false; if (lex.lookAhead() == Identifier && lex.lookAhead(1) == '(') { d = new Declarator(VOID, 0); isConstructor = true; } else d = parseFormalType(tbl); if (lex.get() != Identifier) throw new SyntaxError(lex); String name; if (isConstructor) name = MethodDecl.initName; else name = lex.getString(); d.setVariable(new Symbol(name)); if (isConstructor || lex.lookAhead() == '(') return parseMethod1(tbl, isConstructor, mods, d); else return parseField(tbl, mods, d); }
t = lex.get(); int dim = parseArrayDimension(); return parseDeclarators(tbl, new Declarator(t, dim)); ASTList name = parseClassType(tbl); int dim = parseArrayDimension(); return parseDeclarators(tbl, new Declarator(name, dim));
public ASTList parseMember1(SymbolTable tbl) throws CompileError { ASTList mods = parseMemberMods(); Declarator d; boolean isConstructor = false; if (lex.lookAhead() == Identifier && lex.lookAhead(1) == '(') { d = new Declarator(VOID, 0); isConstructor = true; } else d = parseFormalType(tbl); if (lex.get() != Identifier) throw new SyntaxError(lex); String name; if (isConstructor) name = MethodDecl.initName; else name = lex.getString(); d.setVariable(new Symbol(name)); if (isConstructor || lex.lookAhead() == '(') return parseMethod1(tbl, isConstructor, mods, d); return parseField(tbl, mods, d); }
String varName = prefix + "0"; Declarator decl = new Declarator(CLASS, MemberResolver.javaToJvmName(target), 0, varNo++, new Symbol(varName)); tbl.append(varName, decl);
String varName = prefix + "0"; Declarator decl = new Declarator(CLASS, MemberResolver.javaToJvmName(target), 0, varNo++, new Symbol(varName)); tbl.append(varName, decl);
public Declarator make(Symbol sym, int dim, ASTree init) { Declarator d = new Declarator(this.varType, this.arrayDim + dim); d.qualifiedClass = this.qualifiedClass; d.setLeft(sym); append(d, init); return d; }
public Declarator make(Symbol sym, int dim, ASTree init) { Declarator d = new Declarator(this.varType, this.arrayDim + dim); d.qualifiedClass = this.qualifiedClass; d.setLeft(sym); append(d, init); return d; }
public Declarator make(Symbol sym, int dim, ASTree init) { Declarator d = new Declarator(this.varType, this.arrayDim + dim); d.qualifiedClass = this.qualifiedClass; d.setLeft(sym); append(d, init); return d; }
public Declarator make(Symbol sym, int dim, ASTree init) { Declarator d = new Declarator(this.varType, this.arrayDim + dim); d.qualifiedClass = this.qualifiedClass; d.setLeft(sym); append(d, init); return d; }
public Declarator make(Symbol sym, int dim, ASTree init) { Declarator d = new Declarator(this.varType, this.arrayDim + dim); d.qualifiedClass = this.qualifiedClass; d.setLeft(sym); append(d, init); return d; }
private Declarator parseFormalType(SymbolTable tbl) throws CompileError { int t = lex.lookAhead(); if (isBuiltinType(t) || t == VOID) { lex.get(); // primitive type int dim = parseArrayDimension(); return new Declarator(t, dim); } else { ASTList name = parseClassType(tbl); int dim = parseArrayDimension(); return new Declarator(name, dim); } }