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")); }
public void atMember(Member mem) throws CompileError { String name = mem.get(); if (name.equals(codeGen.paramArrayName)) { exprType = CLASS; arrayDim = 1; className = jvmJavaLangObject; } else if (name.equals(JvstCodeGen.sigName)) { exprType = CLASS; arrayDim = 1; className = "java/lang/Class"; } else if (name.equals(JvstCodeGen.dollarTypeName) || name.equals(JvstCodeGen.clazzName)) { exprType = CLASS; arrayDim = 0; className = "java/lang/Class"; } else super.atMember(mem); }
/** * If MEM is a static final field, this method returns a constant * expression representing the value of that field. */ private static ASTree getConstantFieldValue(Member mem) { return getConstantFieldValue(mem.getField()); }
protected CtField fieldAccess(ASTree expr) throws CompileError { if (expr instanceof Member) { Member mem = (Member)expr; String name = mem.get(); try { CtField f = thisClass.getField(name); if (Modifier.isStatic(f.getModifiers())) mem.setField(f); CtField f = resolver.lookupField(((Symbol)e.oprand1()).get(), mem); mem.setField(f); return f;
private CtField fieldAccess2(Expr e, String jvmClassName) throws CompileError { Member fname = (Member)e.oprand2(); CtField f = resolver.lookupFieldByJvmName2(jvmClassName, fname, e); e.setOperator(MEMBER); e.setOprand1(new Symbol(MemberResolver.jvmToJavaName(jvmClassName))); fname.setField(f); return f; }
protected CtField fieldAccess(ASTree expr) throws CompileError { if (expr instanceof Member) { Member mem = (Member)expr; String name = mem.get(); try { CtField f = thisClass.getField(name); if (Modifier.isStatic(f.getModifiers())) mem.setField(f); CtField f = resolver.lookupField(((Symbol)e.oprand1()).get(), mem); mem.setField(f); return f;
private CtField fieldAccess2(Expr e, String jvmClassName) throws CompileError { Member fname = (Member)e.oprand2(); CtField f = resolver.lookupFieldByJvmName2(jvmClassName, fname, e); e.setOperator(MEMBER); e.setOprand1(new Symbol(MemberResolver.jvmToJavaName(jvmClassName))); fname.setField(f); return f; }
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")); }
public boolean isParamListName(ASTList args) { if (codeGen.paramTypeList != null && args != null && args.tail() == null) { ASTree left = args.head(); return (left instanceof Member && ((Member)left).get().equals(codeGen.paramListName)); } else return false; }
private CtField fieldAccess2(Expr e, String jvmClassName) throws CompileError { Member fname = (Member)e.oprand2(); CtField f = resolver.lookupFieldByJvmName2(jvmClassName, fname, e); e.setOperator(MEMBER); e.setOprand1(new Symbol(MemberResolver.jvmToJavaName(jvmClassName))); fname.setField(f); return f; }
/** * If MEM is a static final field, this method returns a constant * expression representing the value of that field. */ private static ASTree getConstantFieldValue(Member mem) { return getConstantFieldValue(mem.getField()); }
private static Expr makeAppendCall(ASTree target, ASTree arg) { return CallExpr.makeCall(Expr.make('.', target, new Member("append")), new ASTList(arg)); }
public boolean isParamListName(ASTList args) { if (paramTypeList != null && args != null && args.tail() == null) { ASTree left = args.head(); return (left instanceof Member && ((Member)left).get().equals(paramListName)); } else return false; }
private CtField fieldAccess2(Expr e, String jvmClassName) throws CompileError { Member fname = (Member)e.oprand2(); CtField f = resolver.lookupFieldByJvmName2(jvmClassName, fname, e); e.setOperator(MEMBER); e.setOprand1(new Symbol(MemberResolver.jvmToJavaName(jvmClassName))); fname.setField(f); return f; }
/** * If MEM is a static final field, this method returns a constant * expression representing the value of that field. */ private static ASTree getConstantFieldValue(Member mem) { return getConstantFieldValue(mem.getField()); }
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(); } };
public int getMethodArgsLength(ASTList args) { String pname = codeGen.paramListName; int n = 0; while (args != null) { ASTree a = args.head(); if (a instanceof Member && ((Member)a).get().equals(pname)) { if (codeGen.paramTypeList != null) n += codeGen.paramTypeList.length; } else ++n; args = args.tail(); } return n; }
private CtField fieldAccess2(Expr e, String jvmClassName) throws CompileError { Member fname = (Member)e.oprand2(); CtField f = resolver.lookupFieldByJvmName2(jvmClassName, fname, e); e.setOperator(MEMBER); e.setOprand1(new Symbol(MemberResolver.jvmToJavaName(jvmClassName))); fname.setField(f); return f; }
/** * If MEM is a static final field, this method returns a constant * expression representing the value of that field. */ private static ASTree getConstantFieldValue(Member mem) { return getConstantFieldValue(mem.getField()); }
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(); }