public class MemberCodeGen extends CodeGen
CodeGen.ReturnHook
Modifier and Type | Field and Description |
---|---|
protected MemberResolver |
resolver |
protected boolean |
resultStatic |
protected CtClass |
thisClass |
protected MethodInfo |
thisMethod |
arrayDim, breakList, bytecode, className, continueList, exprType, hasReturned, inStaticMethod, returnHooks
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 |
---|
MemberCodeGen(Bytecode b,
CtClass cc,
ClassPool cp) |
Modifier and Type | Method and Description |
---|---|
void |
atArrayInit(ArrayInit init) |
protected void |
atArrayVariableAssign(ArrayInit init,
int varType,
int varArray,
String varClass) |
void |
atCallExpr(CallExpr expr) |
protected void |
atClassObject2(String cname) |
protected void |
atFieldAssign(Expr expr,
int op,
ASTree left,
ASTree right,
boolean doDup) |
protected void |
atFieldPlusPlus(int token,
boolean isPost,
ASTree oprand,
Expr expr,
boolean doDup) |
protected void |
atFieldRead(ASTree expr) |
void |
atMember(Member mem) |
void |
atMethodArgs(ASTList args,
int[] types,
int[] dims,
String[] cnames) |
void |
atMethodCallCore(CtClass targetClass,
String mname,
ASTList args,
boolean isStatic,
boolean isSpecial,
int aload0pos,
MemberResolver.Method found) |
protected void |
atMultiNewArray(int type,
ASTList classname,
ASTList size) |
void |
atNewArrayExpr(NewExpr expr) |
void |
atNewExpr(NewExpr expr) |
protected void |
atTryStmnt(Stmnt st) |
protected CtField |
fieldAccess(ASTree expr,
boolean acceptLength) |
protected String |
getAccessibleConstructor(String desc,
CtClass declClass,
MethodInfo minfo) |
protected String |
getAccessiblePrivate(String methodName,
String desc,
String newDesc,
MethodInfo minfo,
CtClass declClass) |
int |
getMajorVersion()
Returns the major version of the class file
targeted by this compilation.
|
int |
getMethodArgsLength(ASTList args) |
protected String |
getSuperName()
Returns the JVM-internal representation of this super class name.
|
CtClass |
getThisClass() |
protected String |
getThisName()
Returns the JVM-internal representation of this class name.
|
protected void |
insertDefaultSuperCall() |
CtClass[] |
makeParamList(MethodDecl md) |
CtClass[] |
makeThrowsList(MethodDecl md) |
protected String |
resolveClassName(ASTList name) |
protected String |
resolveClassName(String jvmName) |
void |
setThisMethod(CtMethod m)
Records the currently compiled method.
|
arrayAccess, atArrayPlusPlus, atArrayRead, atAssignCore, atAssignExpr, atAssignExpr, atASTList, atBinExpr, atCastExpr, atClassObject, atCondExpr, atDeclarator, atDoubleConst, atExpr, atFieldDecl, atInstanceOfExpr, atIntConst, atKeyword, atMethodBody, atMethodDecl, atPair, atPlusPlusCore, atReturnStmnt, atReturnStmnt2, atStmnt, atStringL, atSymbol, atVariable, badAssign, badType, badTypes, compileBooleanExpr, compileExpr, doTypeCheck, fatal, getArrayReadOp, getArrayWriteOp, getLocalVar, getMaxLocals, getTempVar, incMaxLocals, is2word, isRefType, patchGoto, setMaxLocals, setTypeChecker, toJvmArrayName, toJvmTypeName
protected MemberResolver resolver
protected CtClass thisClass
protected MethodInfo thisMethod
protected boolean resultStatic
public int getMajorVersion()
public void setThisMethod(CtMethod m)
public CtClass getThisClass()
protected String getThisName()
getThisName
in class CodeGen
protected String getSuperName() throws CompileError
getSuperName
in class CodeGen
CompileError
protected void insertDefaultSuperCall() throws CompileError
insertDefaultSuperCall
in class CodeGen
CompileError
protected void atTryStmnt(Stmnt st) throws CompileError
atTryStmnt
in class CodeGen
CompileError
public void atNewExpr(NewExpr expr) throws CompileError
atNewExpr
in class CodeGen
CompileError
public void atNewArrayExpr(NewExpr expr) throws CompileError
CompileError
protected void atArrayVariableAssign(ArrayInit init, int varType, int varArray, String varClass) throws CompileError
atArrayVariableAssign
in class CodeGen
CompileError
public void atArrayInit(ArrayInit init) throws CompileError
atArrayInit
in class CodeGen
CompileError
protected void atMultiNewArray(int type, ASTList classname, ASTList size) throws CompileError
CompileError
public void atCallExpr(CallExpr expr) throws CompileError
atCallExpr
in class CodeGen
CompileError
public void atMethodCallCore(CtClass targetClass, String mname, ASTList args, boolean isStatic, boolean isSpecial, int aload0pos, MemberResolver.Method found) throws CompileError
CompileError
protected String getAccessiblePrivate(String methodName, String desc, String newDesc, MethodInfo minfo, CtClass declClass) throws CompileError
CompileError
protected String getAccessibleConstructor(String desc, CtClass declClass, MethodInfo minfo) throws CompileError
CompileError
public int getMethodArgsLength(ASTList args)
public void atMethodArgs(ASTList args, int[] types, int[] dims, String[] cnames) throws CompileError
CompileError
protected void atFieldAssign(Expr expr, int op, ASTree left, ASTree right, boolean doDup) throws CompileError
atFieldAssign
in class CodeGen
CompileError
public void atMember(Member mem) throws CompileError
atMember
in class CodeGen
CompileError
protected void atFieldRead(ASTree expr) throws CompileError
atFieldRead
in class CodeGen
CompileError
protected void atClassObject2(String cname) throws CompileError
atClassObject2
in class CodeGen
CompileError
protected void atFieldPlusPlus(int token, boolean isPost, ASTree oprand, Expr expr, boolean doDup) throws CompileError
atFieldPlusPlus
in class CodeGen
CompileError
protected CtField fieldAccess(ASTree expr, boolean acceptLength) throws CompileError
CompileError
public CtClass[] makeParamList(MethodDecl md) throws CompileError
CompileError
public CtClass[] makeThrowsList(MethodDecl md) throws CompileError
CompileError
protected String resolveClassName(ASTList name) throws CompileError
resolveClassName
in class CodeGen
CompileError
protected String resolveClassName(String jvmName) throws CompileError
resolveClassName
in class CodeGen
CompileError
Copyright © 2019. All rights reserved.