public class JvstCodeGen extends MemberCodeGen
CodeGen.ReturnHook| Modifier and Type | Field and Description |
|---|---|
static String |
cflowName |
static String |
clazzName |
static String |
dollarTypeName |
static String |
sigName |
static String |
wrapperCastName |
resolver, resultStatic, thisClass, thisMethodarrayDim, breakList, bytecode, className, continueList, exprType, hasReturned, inStaticMethod, returnHooksAALOAD, 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, WIDEABSTRACT, 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 |
|---|
JvstCodeGen(Bytecode b,
CtClass cc,
ClassPool cp) |
| Modifier and Type | Method and Description |
|---|---|
void |
addNullIfVoid() |
protected void |
atAssignParamList(CtClass[] params,
Bytecode code) |
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,
boolean doDup) |
void |
atMember(Member mem) |
void |
atMethodArgs(ASTList args,
int[] types,
int[] dims,
String[] cnames) |
protected void |
atReturnStmnt(Stmnt st) |
static int |
compileParameterList(Bytecode code,
CtClass[] params,
int regno) |
protected void |
compileUnwrapValue(CtClass type,
Bytecode code) |
void |
doNumCast(CtClass type) |
int |
getMethodArgsLength(ASTList args) |
boolean |
isParamListName(ASTList args) |
int |
recordParams(CtClass[] params,
boolean isStatic,
String prefix,
String paramVarName,
String paramsName,
boolean use0,
int paramBase,
String target,
SymbolTable tbl)
Makes method parameters $0, $1, ..., $args, $$, and $class available.
|
int |
recordParams(CtClass[] params,
boolean isStatic,
String prefix,
String paramVarName,
String paramsName,
SymbolTable tbl)
Makes method parameters $0, $1, ..., $args, $$, and $class available.
|
int |
recordReturnType(CtClass type,
String castName,
String resultName,
SymbolTable tbl)
Makes a cast to the return type ($r) available.
|
void |
recordType(CtClass t)
Makes $type available.
|
int |
recordVariable(CtClass type,
String varName,
SymbolTable tbl)
Makes the given variable name available.
|
void |
recordVariable(String typeDesc,
String varName,
int varNo,
SymbolTable tbl)
Makes the given variable name available.
|
void |
setProceedHandler(ProceedHandler h,
String name) |
void |
setType(CtClass type) |
atArrayInit, atArrayVariableAssign, atClassObject2, atFieldPlusPlus, atFieldRead, atMethodCallCore, atMultiNewArray, atNewArrayExpr, atNewExpr, atTryStmnt, fieldAccess, getAccessibleConstructor, getAccessiblePrivate, getMajorVersion, getSuperName, getThisClass, getThisName, insertDefaultSuperCall, makeParamList, makeThrowsList, resolveClassName, resolveClassName, setThisMethodarrayAccess, atArrayPlusPlus, atArrayRead, atAssignCore, atAssignExpr, atAssignExpr, atASTList, atBinExpr, atClassObject, atCondExpr, atDeclarator, atDoubleConst, atExpr, atFieldDecl, atInstanceOfExpr, atIntConst, atKeyword, atMethodBody, atMethodDecl, atPair, atPlusPlusCore, atReturnStmnt2, atStmnt, atStringL, atSymbol, atVariable, badAssign, badType, badTypes, compileBooleanExpr, compileExpr, doTypeCheck, fatal, getArrayReadOp, getArrayWriteOp, getLocalVar, getMaxLocals, getTempVar, incMaxLocals, is2word, isRefType, patchGoto, setMaxLocals, setTypeChecker, toJvmArrayName, toJvmTypeNamepublic static final String sigName
public static final String dollarTypeName
public static final String clazzName
public static final String wrapperCastName
public static final String cflowName
public void setProceedHandler(ProceedHandler h, String name)
public void addNullIfVoid()
public void atMember(Member mem) throws CompileError
atMember in class MemberCodeGenCompileErrorprotected void atFieldAssign(Expr expr, int op, ASTree left, ASTree right, boolean doDup) throws CompileError
atFieldAssign in class MemberCodeGenCompileErrorprotected void atAssignParamList(CtClass[] params, Bytecode code) throws CompileError
CompileErrorpublic void atCastExpr(CastExpr expr) throws CompileError
atCastExpr in class CodeGenCompileErrorprotected void atCastToRtype(CastExpr expr) throws CompileError
CompileErrorprotected void atCastToWrapper(CastExpr expr) throws CompileError
CompileErrorpublic void atCallExpr(CallExpr expr) throws CompileError
atCallExpr in class MemberCodeGenCompileErrorprotected void atCflow(ASTList cname) throws CompileError
CompileErrorpublic boolean isParamListName(ASTList args)
public int getMethodArgsLength(ASTList args)
getMethodArgsLength in class MemberCodeGenpublic void atMethodArgs(ASTList args, int[] types, int[] dims, String[] cnames) throws CompileError
atMethodArgs in class MemberCodeGenCompileErrorprotected void atReturnStmnt(Stmnt st) throws CompileError
atReturnStmnt in class CodeGenCompileErrorpublic int recordReturnType(CtClass type, String castName, String resultName, SymbolTable tbl) throws CompileError
If the return type is void, ($r) does nothing. The type of $_ is java.lang.Object.
resultName - null if $_ is not used.CompileErrorpublic void recordType(CtClass t)
public int recordParams(CtClass[] params, boolean isStatic, String prefix, String paramVarName, String paramsName, SymbolTable tbl) throws CompileError
CompileErrorpublic int recordParams(CtClass[] params, boolean isStatic, String prefix, String paramVarName, String paramsName, boolean use0, int paramBase, String target, SymbolTable tbl) throws CompileError
params - the parameter types (the types of $1, $2, ..)prefix - it must be "$" (the first letter of $0, $1, ...)paramVarName - it must be "$args"paramsName - it must be "$$"use0 - true if $0 is used.paramBase - the register number of $0 (use0 is true)
or $1 (otherwise).target - the class of $0. If use0 is false, target
can be null. The value of "target" is also used
as the name of the type represented by $class.isStatic - true if the method in which the compiled bytecode
is embedded is static.CompileErrorpublic int recordVariable(CtClass type, String varName, SymbolTable tbl) throws CompileError
type - variable typevarName - variable nameCompileErrorpublic void recordVariable(String typeDesc, String varName, int varNo, SymbolTable tbl) throws CompileError
typeDesc - the type descriptor of the variablevarName - variable namevarNo - an index into the local variable arrayCompileErrorpublic static int compileParameterList(Bytecode code, CtClass[] params, int regno)
protected void compileUnwrapValue(CtClass type, Bytecode code) throws CompileError
CompileErrorpublic void setType(CtClass type) throws CompileError
CompileErrorpublic void doNumCast(CtClass type) throws CompileError
CompileErrorCopyright © 2016 Shigeru Chiba, www.javassist.org. All Rights Reserved.