public class JvstTypeChecker extends TypeChecker
Modifier and Type | Field and Description |
---|---|
private JvstCodeGen |
codeGen |
arrayDim, className, exprType, javaLangObject, jvmJavaLangClass, jvmJavaLangObject, jvmJavaLangString, resolver, thisClass, thisMethod
AALOAD, AASTORE, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DMUL, DNEG, DREM, DRETURN, DSTORE, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FMUL, FNEG, FREM, FRETURN, FSTORE, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSUB, GETFIELD, GETSTATIC, GOTO, GOTO_W, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMUL, INEG, INSTANCEOF, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, IUSHR, IXOR, JSR, JSR_W, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDC_W, LDC2_W, LDIV, LLOAD, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, STACK_GROW, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, WIDE
ABSTRACT, AND_E, ANDAND, ARRAY, ARSHIFT, ARSHIFT_E, assignOps, BadToken, BLOCK, BOOLEAN, BREAK, BYTE, CALL, CASE, CATCH, CHAR, CharConstant, CLASS, CONST, CONTINUE, DECL, DEFAULT, DIV_E, DO, DOUBLE, DoubleConstant, ELSE, EQ, EXOR_E, EXPR, EXTENDS, FALSE, FINAL, FINALLY, FLOAT, FloatConstant, FOR, GE, GOTO, Identifier, IF, IMPLEMENTS, IMPORT, INSTANCEOF, INT, IntConstant, INTERFACE, LABEL, LE, LONG, LongConstant, LSHIFT, LSHIFT_E, MEMBER, MINUS_E, MINUSMINUS, MOD_E, MUL_E, NATIVE, NEQ, NEW, NULL, opNames, OR_E, OROR, PACKAGE, PLUS_E, PLUSPLUS, PRIVATE, PROTECTED, PUBLIC, RETURN, RSHIFT, RSHIFT_E, SHORT, STATIC, STRICT, StringL, SUPER, SWITCH, SYNCHRONIZED, THIS, THROW, THROWS, TRANSIENT, TRUE, TRY, VOID, VOLATILE, WHILE
Constructor and Description |
---|
JvstTypeChecker(CtClass cc,
ClassPool cp,
JvstCodeGen gen) |
Modifier and Type | Method and Description |
---|---|
void |
addNullIfVoid() |
void |
atCallExpr(CallExpr expr) |
void |
atCastExpr(CastExpr expr) |
protected void |
atCastToRtype(CastExpr expr)
Inserts a cast operator to the return type.
|
protected void |
atCastToWrapper(CastExpr expr) |
protected void |
atCflow(ASTList cname) |
protected void |
atFieldAssign(Expr expr,
int op,
ASTree left,
ASTree right) |
void |
atMember(Member mem) |
void |
atMethodArgs(ASTList args,
int[] types,
int[] dims,
java.lang.String[] cnames) |
(package private) void |
compileInvokeSpecial(ASTree target,
java.lang.String classname,
java.lang.String methodname,
java.lang.String descriptor,
ASTList args) |
protected void |
compileUnwrapValue(CtClass type) |
int |
getMethodArgsLength(ASTList args) |
boolean |
isParamListName(ASTList args) |
void |
setType(CtClass type) |
private void |
setType(CtClass type,
int dim) |
argTypesToString, atArrayInit, atArrayLength, atArrayRead, atAssignExpr, atBinExpr, atClassObject, atCondExpr, atDoubleConst, atExpr, atFieldPlusPlus, atInstanceOfExpr, atIntConst, atKeyword, atMethodCallCore, atMultiNewArray, atNewArrayExpr, atNewExpr, atStringL, atVariable, fatal, fieldAccess, getConstantFieldValue, getSuperName, getThisName, resolveClassName, resolveClassName, setReturnType, setThisMethod, stripPlusExpr, typeToString
atASTList, atDeclarator, atFieldDecl, atMethodDecl, atPair, atStmnt, atSymbol
private JvstCodeGen codeGen
public JvstTypeChecker(CtClass cc, ClassPool cp, JvstCodeGen gen)
public void addNullIfVoid()
public void atMember(Member mem) throws CompileError
atMember
in class TypeChecker
CompileError
protected void atFieldAssign(Expr expr, int op, ASTree left, ASTree right) throws CompileError
atFieldAssign
in class TypeChecker
CompileError
public void atCastExpr(CastExpr expr) throws CompileError
atCastExpr
in class TypeChecker
CompileError
protected void atCastToRtype(CastExpr expr) throws CompileError
CompileError
protected void atCastToWrapper(CastExpr expr) throws CompileError
CompileError
public void atCallExpr(CallExpr expr) throws CompileError
atCallExpr
in class TypeChecker
CompileError
protected void atCflow(ASTList cname) throws CompileError
CompileError
public boolean isParamListName(ASTList args)
public int getMethodArgsLength(ASTList args)
getMethodArgsLength
in class TypeChecker
public void atMethodArgs(ASTList args, int[] types, int[] dims, java.lang.String[] cnames) throws CompileError
atMethodArgs
in class TypeChecker
CompileError
void compileInvokeSpecial(ASTree target, java.lang.String classname, java.lang.String methodname, java.lang.String descriptor, ASTList args) throws CompileError
CompileError
protected void compileUnwrapValue(CtClass type) throws CompileError
CompileError
public void setType(CtClass type) throws CompileError
CompileError
private void setType(CtClass type, int dim) throws CompileError
CompileError