javassist.compiler
Class JvstCodeGen
java.lang.Object
javassist.compiler.ast.Visitor
javassist.compiler.CodeGen
javassist.compiler.MemberCodeGen
javassist.compiler.JvstCodeGen
- All Implemented Interfaces:
- Opcode, TokenId
public class JvstCodeGen
- extends MemberCodeGen
Fields inherited from interface javassist.bytecode.Opcode |
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, 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 |
Fields inherited from interface javassist.compiler.TokenId |
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 |
Method Summary |
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,
java.lang.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,
java.lang.String prefix,
java.lang.String paramVarName,
java.lang.String paramsName,
boolean use0,
int paramBase,
java.lang.String target,
SymbolTable tbl)
Makes method parameters $0, $1, ..., $args, $$, and $class available. |
int |
recordParams(CtClass[] params,
boolean isStatic,
java.lang.String prefix,
java.lang.String paramVarName,
java.lang.String paramsName,
SymbolTable tbl)
Makes method parameters $0, $1, ..., $args, $$, and $class available. |
int |
recordReturnType(CtClass type,
java.lang.String castName,
java.lang.String resultName,
SymbolTable tbl)
Makes a cast to the return type ($r) available. |
void |
recordType(CtClass t)
Makes $type available. |
int |
recordVariable(CtClass type,
java.lang.String varName,
SymbolTable tbl)
Makes the given variable name available. |
void |
recordVariable(java.lang.String typeDesc,
java.lang.String varName,
int varNo,
SymbolTable tbl)
Makes the given variable name available. |
void |
setProceedHandler(ProceedHandler h,
java.lang.String name)
|
void |
setType(CtClass type)
|
Methods inherited from class javassist.compiler.MemberCodeGen |
atArrayInit, atArrayVariableAssign, atClassObject2, atFieldPlusPlus, atFieldRead, atMethodCallCore, atMultiNewArray, atNewArrayExpr, atNewExpr, atTryStmnt, fieldAccess, getAccessibleConstructor, getAccessiblePrivate, getMajorVersion, getSuperName, getThisClass, getThisName, insertDefaultSuperCall, makeParamList, makeThrowsList, resolveClassName, resolveClassName, setThisMethod |
Methods inherited from class javassist.compiler.CodeGen |
arrayAccess, 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, toJvmTypeName |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
sigName
public static final java.lang.String sigName
- See Also:
- Constant Field Values
dollarTypeName
public static final java.lang.String dollarTypeName
- See Also:
- Constant Field Values
clazzName
public static final java.lang.String clazzName
- See Also:
- Constant Field Values
wrapperCastName
public static final java.lang.String wrapperCastName
- See Also:
- Constant Field Values
cflowName
public static final java.lang.String cflowName
- See Also:
- Constant Field Values
JvstCodeGen
public JvstCodeGen(Bytecode b,
CtClass cc,
ClassPool cp)
setProceedHandler
public void setProceedHandler(ProceedHandler h,
java.lang.String name)
addNullIfVoid
public void addNullIfVoid()
atMember
public void atMember(Member mem)
throws CompileError
- Overrides:
atMember
in class MemberCodeGen
- Throws:
CompileError
atFieldAssign
protected void atFieldAssign(Expr expr,
int op,
ASTree left,
ASTree right,
boolean doDup)
throws CompileError
- Overrides:
atFieldAssign
in class MemberCodeGen
- Throws:
CompileError
atAssignParamList
protected void atAssignParamList(CtClass[] params,
Bytecode code)
throws CompileError
- Throws:
CompileError
atCastExpr
public void atCastExpr(CastExpr expr)
throws CompileError
- Overrides:
atCastExpr
in class CodeGen
- Throws:
CompileError
atCastToRtype
protected void atCastToRtype(CastExpr expr)
throws CompileError
- Inserts a cast operator to the return type.
If the return type is void, this does nothing.
- Throws:
CompileError
atCastToWrapper
protected void atCastToWrapper(CastExpr expr)
throws CompileError
- Throws:
CompileError
atCallExpr
public void atCallExpr(CallExpr expr)
throws CompileError
- Overrides:
atCallExpr
in class MemberCodeGen
- Throws:
CompileError
atCflow
protected void atCflow(ASTList cname)
throws CompileError
- Throws:
CompileError
isParamListName
public boolean isParamListName(ASTList args)
getMethodArgsLength
public int getMethodArgsLength(ASTList args)
- Overrides:
getMethodArgsLength
in class MemberCodeGen
atMethodArgs
public void atMethodArgs(ASTList args,
int[] types,
int[] dims,
java.lang.String[] cnames)
throws CompileError
- Overrides:
atMethodArgs
in class MemberCodeGen
- Throws:
CompileError
atReturnStmnt
protected void atReturnStmnt(Stmnt st)
throws CompileError
- Overrides:
atReturnStmnt
in class CodeGen
- Throws:
CompileError
recordReturnType
public int recordReturnType(CtClass type,
java.lang.String castName,
java.lang.String resultName,
SymbolTable tbl)
throws CompileError
- Makes a cast to the return type ($r) available.
It also enables $_.
If the return type is void, ($r) does nothing.
The type of $_ is java.lang.Object.
- Parameters:
resultName
- null if $_ is not used.
- Returns:
- -1 or the variable index assigned to $_.
- Throws:
CompileError
recordType
public void recordType(CtClass t)
- Makes $type available.
recordParams
public int recordParams(CtClass[] params,
boolean isStatic,
java.lang.String prefix,
java.lang.String paramVarName,
java.lang.String paramsName,
SymbolTable tbl)
throws CompileError
- Makes method parameters $0, $1, ..., $args, $$, and $class available.
$0 is equivalent to THIS if the method is not static. Otherwise,
if the method is static, then $0 is not available.
- Throws:
CompileError
recordParams
public int recordParams(CtClass[] params,
boolean isStatic,
java.lang.String prefix,
java.lang.String paramVarName,
java.lang.String paramsName,
boolean use0,
int paramBase,
java.lang.String target,
SymbolTable tbl)
throws CompileError
- Makes method parameters $0, $1, ..., $args, $$, and $class available.
$0 is available only if use0 is true. It might not be equivalent
to THIS.
- Parameters:
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.
- Throws:
CompileError
recordVariable
public int recordVariable(CtClass type,
java.lang.String varName,
SymbolTable tbl)
throws CompileError
- Makes the given variable name available.
- Parameters:
type
- variable typevarName
- variable name
- Throws:
CompileError
recordVariable
public void recordVariable(java.lang.String typeDesc,
java.lang.String varName,
int varNo,
SymbolTable tbl)
throws CompileError
- Makes the given variable name available.
- Parameters:
typeDesc
- the type descriptor of the variablevarName
- variable namevarNo
- an index into the local variable array
- Throws:
CompileError
compileParameterList
public static int compileParameterList(Bytecode code,
CtClass[] params,
int regno)
compileUnwrapValue
protected void compileUnwrapValue(CtClass type,
Bytecode code)
throws CompileError
- Throws:
CompileError
setType
public void setType(CtClass type)
throws CompileError
- Throws:
CompileError
doNumCast
public void doNumCast(CtClass type)
throws CompileError
- Throws:
CompileError
Copyright © 2011. All Rights Reserved.