classUtils.javassist.compiler
Class CodeGen

java.lang.Object
  extended by classUtils.javassist.compiler.ast.Visitor
      extended by classUtils.javassist.compiler.CodeGen
All Implemented Interfaces:
Opcode, TokenId
Direct Known Subclasses:
MemberCodeGen

public abstract class CodeGen
extends Visitor
implements Opcode, TokenId


Field Summary
 boolean inStaticMethod
          Must be true if compilation is for a static method.
 
Fields inherited from interface classUtils.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 classUtils.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
 
Constructor Summary
CodeGen(Bytecode b)
           
 
Method Summary
 void atArrayLength(Expr expr)
           
 void atArrayPlusPlus(int token, boolean isPost, Expr expr, boolean doDup)
           
 void atArrayRead(ASTree array, ASTree index)
           
 void atAssignExpr(AssignExpr expr)
           
 void atASTList(ASTList n)
           
 void atBinExpr(BinExpr expr)
           
 void atCastExpr(CastExpr expr)
           
 boolean atClassObject(Expr expr)
           
 void atCondExpr(CondExpr expr)
           
 void atDeclarator(Declarator d)
           
 void atDoubleConst(DoubleConst d)
           
 void atExpr(Expr expr)
           
 void atFieldDecl(FieldDecl field)
           
 void atInstanceOfExpr(InstanceOfExpr expr)
           
 void atIntConst(IntConst i)
           
 void atKeyword(Keyword k)
           
abstract  void atMember(Member n)
           
 void atMethodBody(Stmnt s, boolean isCons, boolean isVoid)
           
 void atMethodDecl(MethodDecl method)
           
abstract  void atNewExpr(NewExpr n)
           
 void atPair(Pair n)
           
 void atStmnt(Stmnt st)
           
 void atStringL(StringL s)
           
 void atSymbol(Symbol n)
           
 void atVariable(Variable v)
           
 int getMaxLocals()
           
static boolean is2word(int type, int dim)
           
 void setMaxLocals(int n)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

inStaticMethod

public boolean inStaticMethod
Must be true if compilation is for a static method.

Constructor Detail

CodeGen

public CodeGen(Bytecode b)
Method Detail

is2word

public static boolean is2word(int type,
                              int dim)

getMaxLocals

public int getMaxLocals()

setMaxLocals

public void setMaxLocals(int n)

atASTList

public void atASTList(ASTList n)
               throws CompileError
Overrides:
atASTList in class Visitor
Throws:
CompileError

atPair

public void atPair(Pair n)
            throws CompileError
Overrides:
atPair in class Visitor
Throws:
CompileError

atSymbol

public void atSymbol(Symbol n)
              throws CompileError
Overrides:
atSymbol in class Visitor
Throws:
CompileError

atFieldDecl

public void atFieldDecl(FieldDecl field)
                 throws CompileError
Overrides:
atFieldDecl in class Visitor
Throws:
CompileError

atMethodDecl

public void atMethodDecl(MethodDecl method)
                  throws CompileError
Overrides:
atMethodDecl in class Visitor
Throws:
CompileError

atMethodBody

public void atMethodBody(Stmnt s,
                         boolean isCons,
                         boolean isVoid)
                  throws CompileError
Parameters:
isCons - true if super() must be called. false if the method is a class initializer.
Throws:
CompileError

atStmnt

public void atStmnt(Stmnt st)
             throws CompileError
Overrides:
atStmnt in class Visitor
Throws:
CompileError

atDeclarator

public void atDeclarator(Declarator d)
                  throws CompileError
Overrides:
atDeclarator in class Visitor
Throws:
CompileError

atNewExpr

public abstract void atNewExpr(NewExpr n)
                        throws CompileError
Overrides:
atNewExpr in class Visitor
Throws:
CompileError

atAssignExpr

public void atAssignExpr(AssignExpr expr)
                  throws CompileError
Overrides:
atAssignExpr in class Visitor
Throws:
CompileError

atCondExpr

public void atCondExpr(CondExpr expr)
                throws CompileError
Overrides:
atCondExpr in class Visitor
Throws:
CompileError

atBinExpr

public void atBinExpr(BinExpr expr)
               throws CompileError
Overrides:
atBinExpr in class Visitor
Throws:
CompileError

atCastExpr

public void atCastExpr(CastExpr expr)
                throws CompileError
Overrides:
atCastExpr in class Visitor
Throws:
CompileError

atInstanceOfExpr

public void atInstanceOfExpr(InstanceOfExpr expr)
                      throws CompileError
Overrides:
atInstanceOfExpr in class Visitor
Throws:
CompileError

atExpr

public void atExpr(Expr expr)
            throws CompileError
Overrides:
atExpr in class Visitor
Throws:
CompileError

atClassObject

public boolean atClassObject(Expr expr)
                      throws CompileError
Throws:
CompileError

atArrayLength

public void atArrayLength(Expr expr)
                   throws CompileError
Throws:
CompileError

atArrayRead

public void atArrayRead(ASTree array,
                        ASTree index)
                 throws CompileError
Throws:
CompileError

atArrayPlusPlus

public void atArrayPlusPlus(int token,
                            boolean isPost,
                            Expr expr,
                            boolean doDup)
                     throws CompileError
Throws:
CompileError

atMember

public abstract void atMember(Member n)
                       throws CompileError
Overrides:
atMember in class Visitor
Throws:
CompileError

atVariable

public void atVariable(Variable v)
                throws CompileError
Overrides:
atVariable in class Visitor
Throws:
CompileError

atKeyword

public void atKeyword(Keyword k)
               throws CompileError
Overrides:
atKeyword in class Visitor
Throws:
CompileError

atStringL

public void atStringL(StringL s)
               throws CompileError
Overrides:
atStringL in class Visitor
Throws:
CompileError

atIntConst

public void atIntConst(IntConst i)
                throws CompileError
Overrides:
atIntConst in class Visitor
Throws:
CompileError

atDoubleConst

public void atDoubleConst(DoubleConst d)
                   throws CompileError
Overrides:
atDoubleConst in class Visitor
Throws:
CompileError