private ASTree parseDotClass(ASTree className, int dim) throws CompileError { String cname = toClassName(className); if (dim > 0) { StringBuffer sbuf = new StringBuffer(); while (dim-- > 0) sbuf.append('['); sbuf.append('L').append(cname.replace('.', '/')).append(';'); cname = sbuf.toString(); } return Expr.make('.', new Symbol(cname), new Member("class")); }
private ASTree parseDotClass(ASTree className, int dim) throws CompileError { String cname = toClassName(className); if (dim > 0) { StringBuffer sbuf = new StringBuffer(); while (dim-- > 0) sbuf.append('['); sbuf.append('L').append(cname.replace('.', '/')).append(';'); cname = sbuf.toString(); } return Expr.make('.', new Symbol(cname), new Member("class")); }
private static Expr makeAppendCall(ASTree target, ASTree arg) { return CallExpr.makeCall(Expr.make('.', target, new Member("append")), new ASTList(arg)); }
public void doit(JvstCodeGen gen, Bytecode b, ASTList args) throws CompileError { ASTree expr = new Member(m); if (texpr != null) expr = Expr.make('.', texpr, expr); expr = CallExpr.makeCall(expr, args); gen.compileExpr(expr); gen.addNullIfVoid(); }
public void setReturnType(JvstTypeChecker check, ASTList args) throws CompileError { ASTree expr = new Member(m); if (texpr != null) expr = Expr.make('.', texpr, expr); expr = CallExpr.makeCall(expr, args); expr.accept(check); check.addNullIfVoid(); } };
private static Expr makeAppendCall(ASTree target, ASTree arg) { return CallExpr.makeCall(Expr.make('.', target, new Member("append")), new ASTList(arg)); }
public void doit(JvstCodeGen gen, Bytecode b, ASTList args) throws CompileError { Expr expr = Expr.make(TokenId.MEMBER, new Symbol(c), new Member(m)); expr = CallExpr.makeCall(expr, args); gen.compileExpr(expr); gen.addNullIfVoid(); }
public void setReturnType(JvstTypeChecker check, ASTList args) throws CompileError { Expr expr = Expr.make(TokenId.MEMBER, new Symbol(c), new Member(m)); expr = CallExpr.makeCall(expr, args); expr.accept(check); check.addNullIfVoid(); } };
@Override public void doit(JvstCodeGen gen, Bytecode b, ASTList args) throws CompileError { ASTree expr = new Member(m); if (texpr != null) expr = Expr.make('.', texpr, expr); expr = CallExpr.makeCall(expr, args); gen.compileExpr(expr); gen.addNullIfVoid(); }
@Override public void setReturnType(JvstTypeChecker check, ASTList args) throws CompileError { ASTree expr = new Member(m); if (texpr != null) expr = Expr.make('.', texpr, expr); expr = CallExpr.makeCall(expr, args); expr.accept(check); check.addNullIfVoid(); } };
@Override public void doit(JvstCodeGen gen, Bytecode b, ASTList args) throws CompileError { Expr expr = Expr.make(TokenId.MEMBER, new Symbol(c), new Member(m)); expr = CallExpr.makeCall(expr, args); gen.compileExpr(expr); gen.addNullIfVoid(); }
@Override public void setReturnType(JvstTypeChecker check, ASTList args) throws CompileError { Expr expr = Expr.make(TokenId.MEMBER, new Symbol(c), new Member(m)); expr = CallExpr.makeCall(expr, args); expr.accept(check); check.addNullIfVoid(); } };
throw new SyntaxError(lex); expr = Expr.make(ARRAY, expr, index); case MINUSMINUS : t = lex.get(); expr = Expr.make(t, null, expr); break; case '.' : expr = parseDotClass(expr, 0); else if (t == SUPER) expr = Expr.make('.', new Symbol(toClassName(expr)), new Keyword(t)); else if (t == Identifier) { str = lex.getString(); expr = Expr.make('.', expr, new Member(str)); expr = Expr.make(MEMBER, new Symbol(toClassName(expr)), new Member(str)); break;
throw new SyntaxError(lex); expr = Expr.make(ARRAY, expr, index); case MINUSMINUS : t = lex.get(); expr = Expr.make(t, null, expr); break; case '.' : expr = parseDotClass(expr, 0); else if (t == SUPER) expr = Expr.make('.', new Symbol(toClassName(expr)), new Keyword(t)); else if (t == Identifier) { str = lex.getString(); expr = Expr.make('.', expr, new Member(str)); expr = Expr.make(MEMBER, new Symbol(toClassName(expr)), new Member(str)); break;
return Expr.make(t, parseUnaryExpr(tbl)); case '(' : return parseCast(tbl);
e = CallExpr.makeCall(Expr.make('.', e, new Member("toString")), null); expr.setOprand1(e);
return Expr.make(t, parseUnaryExpr(tbl)); case '(' : return parseCast(tbl);
e = CallExpr.makeCall(Expr.make('.', e, new Member("toString")), null); expr.setOprand1(e);