Modifier and Type | Field and Description |
---|---|
protected int |
arrayDim |
protected java.lang.String |
className |
protected int |
exprType |
(package private) static java.lang.String |
javaLangObject |
(package private) static java.lang.String |
jvmJavaLangClass |
(package private) static java.lang.String |
jvmJavaLangObject |
(package private) static java.lang.String |
jvmJavaLangString |
protected MemberResolver |
resolver |
protected CtClass |
thisClass |
protected MethodInfo |
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 |
---|
TypeChecker(CtClass cc,
ClassPool cp) |
Modifier and Type | Method and Description |
---|---|
protected static java.lang.String |
argTypesToString(int[] types,
int[] dims,
java.lang.String[] cnames) |
private void |
atArrayAssign(Expr expr,
int op,
Expr array,
ASTree right) |
void |
atArrayInit(ArrayInit init) |
void |
atArrayLength(Expr expr) |
void |
atArrayRead(ASTree array,
ASTree index) |
void |
atAssignExpr(AssignExpr expr) |
void |
atBinExpr(BinExpr expr) |
void |
atCallExpr(CallExpr expr) |
void |
atCastExpr(CastExpr expr) |
void |
atClassObject(Expr expr) |
void |
atCondExpr(CondExpr expr) |
void |
atDoubleConst(DoubleConst d) |
void |
atExpr(Expr expr) |
protected void |
atFieldAssign(Expr expr,
int op,
ASTree left,
ASTree right) |
protected void |
atFieldPlusPlus(ASTree oprand) |
private void |
atFieldRead(ASTree expr) |
private void |
atFieldRead(CtField f) |
void |
atInstanceOfExpr(InstanceOfExpr expr) |
void |
atIntConst(IntConst i) |
void |
atKeyword(Keyword k) |
void |
atMember(Member mem) |
void |
atMethodArgs(ASTList args,
int[] types,
int[] dims,
java.lang.String[] cnames) |
MemberResolver.Method |
atMethodCallCore(CtClass targetClass,
java.lang.String mname,
ASTList args) |
protected void |
atMultiNewArray(int type,
ASTList classname,
ASTList size) |
void |
atNewArrayExpr(NewExpr expr) |
void |
atNewExpr(NewExpr expr) |
private Expr |
atPlusExpr(BinExpr expr) |
private void |
atPlusPlus(int token,
ASTree oprand,
Expr expr) |
void |
atStringL(StringL s) |
void |
atVariable(Variable v) |
private void |
atVariableAssign(Expr expr,
int op,
Variable var,
Declarator d,
ASTree right) |
private static void |
badMethod() |
private void |
booleanExpr(ASTree expr) |
private void |
computeBinExprType(BinExpr expr,
int token,
int type1) |
protected static void |
fatal() |
protected CtField |
fieldAccess(ASTree expr) |
private CtField |
fieldAccess2(Expr e,
java.lang.String jvmClassName) |
static ASTree |
getConstantFieldValue(CtField f) |
private static ASTree |
getConstantFieldValue(Member mem)
If MEM is a static final field, this method returns a constant
expression representing the value of that field.
|
int |
getMethodArgsLength(ASTList args) |
protected java.lang.String |
getSuperName()
Returns the JVM-internal representation of this super class name.
|
protected java.lang.String |
getThisName()
Returns the JVM-internal representation of this class name.
|
private void |
insertCast(BinExpr expr,
int type1,
int type2) |
private boolean |
isConstant(BinExpr expr,
int op,
ASTree left,
ASTree right) |
private boolean |
isConstant(Expr expr,
int op,
ASTree oprand) |
private static boolean |
isPlusExpr(ASTree expr) |
private static Expr |
makeAppendCall(ASTree target,
ASTree arg) |
protected java.lang.String |
resolveClassName(ASTList name) |
protected java.lang.String |
resolveClassName(java.lang.String jvmName) |
(package private) void |
setReturnType(java.lang.String desc) |
void |
setThisMethod(MethodInfo m)
Records the currently compiled method.
|
(package private) static ASTree |
stripPlusExpr(ASTree expr) |
protected static java.lang.StringBuffer |
typeToString(java.lang.StringBuffer sbuf,
int type,
int dim,
java.lang.String cname) |
atASTList, atDeclarator, atFieldDecl, atMethodDecl, atPair, atStmnt, atSymbol
static final java.lang.String javaLangObject
static final java.lang.String jvmJavaLangObject
static final java.lang.String jvmJavaLangString
static final java.lang.String jvmJavaLangClass
protected int exprType
protected int arrayDim
protected java.lang.String className
protected MemberResolver resolver
protected CtClass thisClass
protected MethodInfo thisMethod
protected static java.lang.String argTypesToString(int[] types, int[] dims, java.lang.String[] cnames)
protected static java.lang.StringBuffer typeToString(java.lang.StringBuffer sbuf, int type, int dim, java.lang.String cname)
public void setThisMethod(MethodInfo m)
protected static void fatal() throws CompileError
CompileError
protected java.lang.String getThisName()
protected java.lang.String getSuperName() throws CompileError
CompileError
protected java.lang.String resolveClassName(ASTList name) throws CompileError
CompileError
protected java.lang.String resolveClassName(java.lang.String jvmName) throws CompileError
CompileError
public void atNewExpr(NewExpr expr) throws CompileError
atNewExpr
in class Visitor
CompileError
public void atNewArrayExpr(NewExpr expr) throws CompileError
CompileError
public void atArrayInit(ArrayInit init) throws CompileError
atArrayInit
in class Visitor
CompileError
protected void atMultiNewArray(int type, ASTList classname, ASTList size) throws CompileError
CompileError
public void atAssignExpr(AssignExpr expr) throws CompileError
atAssignExpr
in class Visitor
CompileError
private void atVariableAssign(Expr expr, int op, Variable var, Declarator d, ASTree right) throws CompileError
CompileError
private void atArrayAssign(Expr expr, int op, Expr array, ASTree right) throws CompileError
CompileError
protected void atFieldAssign(Expr expr, int op, ASTree left, ASTree right) throws CompileError
CompileError
public void atCondExpr(CondExpr expr) throws CompileError
atCondExpr
in class Visitor
CompileError
public void atBinExpr(BinExpr expr) throws CompileError
atBinExpr
in class Visitor
CompileError
private Expr atPlusExpr(BinExpr expr) throws CompileError
CompileError
private boolean isConstant(BinExpr expr, int op, ASTree left, ASTree right) throws CompileError
CompileError
private static ASTree getConstantFieldValue(Member mem)
private static boolean isPlusExpr(ASTree expr)
private void computeBinExprType(BinExpr expr, int token, int type1) throws CompileError
CompileError
private void booleanExpr(ASTree expr) throws CompileError
CompileError
private void insertCast(BinExpr expr, int type1, int type2) throws CompileError
CompileError
public void atCastExpr(CastExpr expr) throws CompileError
atCastExpr
in class Visitor
CompileError
public void atInstanceOfExpr(InstanceOfExpr expr) throws CompileError
atInstanceOfExpr
in class Visitor
CompileError
public void atExpr(Expr expr) throws CompileError
atExpr
in class Visitor
CompileError
public void atCallExpr(CallExpr expr) throws CompileError
atCallExpr
in class Visitor
CompileError
private static void badMethod() throws CompileError
CompileError
public MemberResolver.Method atMethodCallCore(CtClass targetClass, java.lang.String mname, ASTList args) throws CompileError
CompileError
public int getMethodArgsLength(ASTList args)
public void atMethodArgs(ASTList args, int[] types, int[] dims, java.lang.String[] cnames) throws CompileError
CompileError
void setReturnType(java.lang.String desc) throws CompileError
CompileError
private void atFieldRead(ASTree expr) throws CompileError
CompileError
private void atFieldRead(CtField f) throws CompileError
CompileError
protected CtField fieldAccess(ASTree expr) throws CompileError
CompileError
private CtField fieldAccess2(Expr e, java.lang.String jvmClassName) throws CompileError
CompileError
public void atClassObject(Expr expr) throws CompileError
CompileError
public void atArrayLength(Expr expr) throws CompileError
CompileError
public void atArrayRead(ASTree array, ASTree index) throws CompileError
CompileError
private void atPlusPlus(int token, ASTree oprand, Expr expr) throws CompileError
CompileError
protected void atFieldPlusPlus(ASTree oprand) throws CompileError
CompileError
public void atMember(Member mem) throws CompileError
atMember
in class Visitor
CompileError
public void atVariable(Variable v) throws CompileError
atVariable
in class Visitor
CompileError
public void atKeyword(Keyword k) throws CompileError
atKeyword
in class Visitor
CompileError
public void atStringL(StringL s) throws CompileError
atStringL
in class Visitor
CompileError
public void atIntConst(IntConst i) throws CompileError
atIntConst
in class Visitor
CompileError
public void atDoubleConst(DoubleConst d) throws CompileError
atDoubleConst
in class Visitor
CompileError