|
SandMark version 2.0 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--sandmark.obfuscate.boolsplitter.dtree.Node | +--sandmark.obfuscate.boolsplitter.dtree.Tree
Tree represents the expression tree of a basic Block. It consists of an operand (expression) stack comprised of expressions and a list of statements contained in the block.
Block
,
Expr
,
OperandStack
,
see StmtList
Nested Class Summary | |
(package private) class |
Tree.StmtList
StmtList is a linked list of statements. |
Field Summary | |
static boolean |
AUPDATE_FIX_HACK
|
static boolean |
AUPDATE_FIX_HACK_CHANGED
|
(package private) Block |
block
|
static boolean |
DEBUG
|
static boolean |
FLATTEN
|
(package private) EDU.purdue.cs.bloat.editor.Instruction |
last
The last instruction we saw. |
(package private) Block |
next
|
(package private) java.util.Stack |
savedStack
|
(package private) boolean |
saveValue
|
(package private) OperandStack |
stack
|
(package private) static int |
stackpos
|
(package private) Tree.StmtList |
stmts
|
(package private) Subroutine |
sub
|
static boolean |
USE_PERSISTENT
|
static boolean |
USE_STACK
|
Fields inherited from class sandmark.obfuscate.boolsplitter.dtree.Node |
key, parent, valueNumber |
Fields inherited from interface EDU.purdue.cs.bloat.editor.Opcode |
opc_aaload, opc_aastore, opc_aconst_null, opc_aload, opc_aload_0, opc_aload_1, opc_aload_2, opc_aload_3, opc_anewarray, opc_areturn, opc_arraylength, opc_astore, opc_astore_0, opc_astore_1, opc_astore_2, opc_astore_3, opc_aswizzle, opc_aswrange, opc_athrow, opc_aupdate, opc_baload, opc_bastore, opc_bipush, opc_breakpoint, opc_caload, opc_castore, opc_checkcast, opc_d2f, opc_d2i, opc_d2l, opc_dadd, opc_daload, opc_dastore, opc_dcmpg, opc_dcmpl, opc_dconst_0, opc_dconst_1, opc_ddiv, opc_dload, opc_dload_0, opc_dload_1, opc_dload_2, opc_dload_3, opc_dmul, opc_dneg, opc_drem, opc_dreturn, opc_dstore, opc_dstore_0, opc_dstore_1, opc_dstore_2, opc_dstore_3, opc_dsub, opc_dup, opc_dup_x1, opc_dup_x2, opc_dup2, opc_dup2_x1, opc_dup2_x2, opc_f2d, opc_f2i, opc_f2l, opc_fadd, opc_faload, opc_fastore, opc_fcmpg, opc_fcmpl, opc_fconst_0, opc_fconst_1, opc_fconst_2, opc_fdiv, opc_fload, opc_fload_0, opc_fload_1, opc_fload_2, opc_fload_3, opc_fmul, opc_fneg, opc_frem, opc_freturn, opc_fstore, opc_fstore_0, opc_fstore_1, opc_fstore_2, opc_fstore_3, opc_fsub, opc_getfield, opc_getstatic, opc_goto, opc_goto_w, opc_i2b, opc_i2c, opc_i2d, opc_i2f, opc_i2l, opc_i2s, opc_iadd, opc_iaload, opc_iand, opc_iastore, opc_iconst_0, opc_iconst_1, opc_iconst_2, opc_iconst_3, opc_iconst_4, opc_iconst_5, opc_iconst_m1, opc_idiv, opc_if_acmpeq, opc_if_acmpne, opc_if_icmpeq, opc_if_icmpge, opc_if_icmpgt, opc_if_icmple, opc_if_icmplt, opc_if_icmpne, opc_ifeq, opc_ifge, opc_ifgt, opc_ifle, opc_iflt, opc_ifne, opc_ifnonnull, opc_ifnull, opc_iinc, opc_iload, opc_iload_0, opc_iload_1, opc_iload_2, opc_iload_3, opc_imul, opc_ineg, opc_instanceof, opc_invokeinterface, opc_invokespecial, opc_invokestatic, opc_invokevirtual, opc_ior, opc_irem, opc_ireturn, opc_ishl, opc_ishr, opc_istore, opc_istore_0, opc_istore_1, opc_istore_2, opc_istore_3, opc_isub, opc_iushr, opc_ixor, opc_jsr, opc_jsr_w, opc_l2d, opc_l2f, opc_l2i, opc_ladd, opc_laload, opc_land, opc_lastore, opc_lcmp, opc_lconst_0, opc_lconst_1, opc_ldc, opc_ldc_w, opc_ldc2_w, opc_ldiv, opc_lload, opc_lload_0, opc_lload_1, opc_lload_2, opc_lload_3, opc_lmul, opc_lneg, opc_lookupswitch, opc_lor, opc_lrem, opc_lreturn, opc_lshl, opc_lshr, opc_lstore, opc_lstore_0, opc_lstore_1, opc_lstore_2, opc_lstore_3, opc_lsub, opc_lushr, opc_lxor, opc_monitorenter, opc_monitorexit, opc_multianewarray, opc_new, opc_newarray, opc_nop, opc_pop, opc_pop2, opc_putfield, opc_putfield_nowb, opc_putstatic, opc_putstatic_nowb, opc_rc, opc_ret, opc_return, opc_saload, opc_sastore, opc_sipush, opc_supdate, opc_swap, opc_tableswitch, opc_wide, opc_xxxunusedxxx, opcNames, opcSize, opcx_aaload, opcx_aastore, opcx_aload, opcx_areturn, opcx_arraylength, opcx_astore, opcx_aswizzle, opcx_aswrange, opcx_athrow, opcx_aupdate, opcx_baload, opcx_bastore, opcx_caload, opcx_castore, opcx_checkcast, opcx_d2f, opcx_d2i, opcx_d2l, opcx_dadd, opcx_daload, opcx_dastore, opcx_dcmpg, opcx_dcmpl, opcx_ddiv, opcx_dload, opcx_dmul, opcx_dneg, opcx_drem, opcx_dreturn, opcx_dstore, opcx_dsub, opcx_dup, opcx_dup_x1, opcx_dup_x2, opcx_dup2, opcx_dup2_x1, opcx_dup2_x2, opcx_f2d, opcx_f2i, opcx_f2l, opcx_fadd, opcx_faload, opcx_fastore, opcx_fcmpg, opcx_fcmpl, opcx_fdiv, opcx_fload, opcx_fmul, opcx_fneg, opcx_frem, opcx_freturn, opcx_fstore, opcx_fsub, opcx_getfield, opcx_getstatic, opcx_goto, opcx_i2b, opcx_i2c, opcx_i2d, opcx_i2f, opcx_i2l, opcx_i2s, opcx_iadd, opcx_iaload, opcx_iand, opcx_iastore, opcx_idiv, opcx_if_acmpeq, opcx_if_acmpne, opcx_if_icmpeq, opcx_if_icmpge, opcx_if_icmpgt, opcx_if_icmple, opcx_if_icmplt, opcx_if_icmpne, opcx_ifeq, opcx_ifge, opcx_ifgt, opcx_ifle, opcx_iflt, opcx_ifne, opcx_ifnonnull, opcx_ifnull, opcx_iinc, opcx_iload, opcx_imul, opcx_ineg, opcx_instanceof, opcx_invokeinterface, opcx_invokespecial, opcx_invokestatic, opcx_invokevirtual, opcx_ior, opcx_irem, opcx_ireturn, opcx_ishl, opcx_ishr, opcx_istore, opcx_isub, opcx_iushr, opcx_ixor, opcx_jsr, opcx_l2d, opcx_l2f, opcx_l2i, opcx_ladd, opcx_laload, opcx_land, opcx_lastore, opcx_lcmp, opcx_ldc, opcx_ldiv, opcx_lload, opcx_lmul, opcx_lneg, opcx_lor, opcx_lrem, opcx_lreturn, opcx_lshl, opcx_lshr, opcx_lstore, opcx_lsub, opcx_lushr, opcx_lxor, opcx_monitorenter, opcx_monitorexit, opcx_multianewarray, opcx_new, opcx_newarray, opcx_nop, opcx_pop, opcx_pop2, opcx_putfield, opcx_putfield_nowb, opcx_putstatic, opcx_putstatic_nowb, opcx_rc, opcx_ret, opcx_return, opcx_saload, opcx_sastore, opcx_supdate, opcx_swap, opcx_switch, opcXMap, VARIABLE |
Constructor Summary | |
Tree(Block block,
OperandStack predStack)
Constructor. |
Method Summary | |
void |
addInstruction(EDU.purdue.cs.bloat.editor.Instruction inst)
Adds an instruction that does not change the control flow (a normal instruction). |
void |
addInstruction(EDU.purdue.cs.bloat.editor.Instruction inst,
Block next)
Adds an instruction that jumps to another basic block. |
void |
addInstruction(EDU.purdue.cs.bloat.editor.Instruction inst,
Subroutine sub)
Add an instruction such as ret or astore that may involve a subroutine. |
void |
addLabel(EDU.purdue.cs.bloat.editor.Label label)
Add a label to the statement list. |
void |
addStmt(Stmt stmt)
Save the contents of the stack and add stmt to the statement list. |
void |
addStmtAfter(Stmt stmt,
Stmt after)
Inserts a statement into the statement list after another given statement. |
void |
addStmtBefore(Stmt stmt,
Stmt before)
Inserts a statement into the statement list before a specified statement. |
void |
addStmtBeforeJump(Stmt stmt)
Adds a statement to the statement list before the last jump statement. |
Block |
block()
Returns the basic block in which this Node resides. |
void |
cleanupOnly()
Cleans up this node. |
void |
initLocals(java.util.Collection locals)
Add a Collection of local variables to the block. |
Stmt |
lastStmt()
Returns the last non-Label statement in the statement list. |
LocalExpr |
newLocal(int index,
EDU.purdue.cs.bloat.editor.Type type)
Returns a new LocalExpr that is not allocated on the stack. |
LocalExpr |
newLocal(EDU.purdue.cs.bloat.editor.Type type)
Returns a local variable (LocalExpr) located in this method. |
StackExpr |
newStack(EDU.purdue.cs.bloat.editor.Type type)
Returns a new StackExpr for the top of the operand stack. |
LocalExpr |
newStackLocal(int index,
EDU.purdue.cs.bloat.editor.Type type)
Returns a new LocalExpr that represents an element of the stack. |
Node |
parent()
|
void |
prependStmt(Stmt stmt)
Add an statement to the statement list before the first non-Label statement. |
void |
removeLastStmt()
Removes the last non-Label statement from the statement list. |
void |
removeStmt(Stmt stmt)
Removes a statement from the statement list. |
OperandStack |
stack()
Returns the operand stack. |
java.util.List |
stmts()
|
java.lang.String |
toString()
Returns a String representation of this Tree. |
void |
visit_aaload(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_aastore(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_aload(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_areturn(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_arraylength(EDU.purdue.cs.bloat.editor.Instruction inst)
Pushes an ArrayLengthExpr onto the operand stack. |
void |
visit_astore(EDU.purdue.cs.bloat.editor.Instruction inst)
Visit an astore instruction. |
void |
visit_aswizzle(EDU.purdue.cs.bloat.editor.Instruction inst)
Add a SCStmt to the statement list |
void |
visit_aswrange(EDU.purdue.cs.bloat.editor.Instruction inst)
Add a SRStmt to the statement list. |
void |
visit_athrow(EDU.purdue.cs.bloat.editor.Instruction inst)
Adds a ThrowStmt to the statement list. |
void |
visit_aupdate(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_baload(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_bastore(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_caload(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_castore(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_checkcast(EDU.purdue.cs.bloat.editor.Instruction inst)
Pushes a CastExpr onto the operand stack. |
void |
visit_d2f(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_d2i(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_d2l(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_dadd(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_daload(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_dastore(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_dcmpg(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_dcmpl(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_ddiv(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_dload(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_dmul(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_dneg(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_drem(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_dreturn(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_dstore(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_dsub(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_dup_x1(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_dup_x2(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_dup(EDU.purdue.cs.bloat.editor.Instruction inst)
When processing the dup instructions one of two situations can occur. |
void |
visit_dup2_x1(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_dup2_x2(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_dup2(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_f2d(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_f2i(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_f2l(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_fadd(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_faload(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_fastore(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_fcmpg(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_fcmpl(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_fdiv(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_fload(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_fmul(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_fneg(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_frem(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_freturn(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_fstore(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_fsub(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_getfield(EDU.purdue.cs.bloat.editor.Instruction inst)
Pushes a FieldExpr onto the operand stack. |
void |
visit_getstatic(EDU.purdue.cs.bloat.editor.Instruction inst)
Pushes a StaticFieldExpr onto the operand stack. |
void |
visit_goto(EDU.purdue.cs.bloat.editor.Instruction inst)
Adds a GotoStmt to the statement list. |
void |
visit_i2b(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_i2c(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_i2d(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_i2f(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_i2l(EDU.purdue.cs.bloat.editor.Instruction inst)
All cast visitors push a CastExpr onto the operand stack. |
void |
visit_i2s(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_iadd(EDU.purdue.cs.bloat.editor.Instruction inst)
All visit_xadd, visit_xsub, visit_xmul, visit_xdiv, etc. push an ArithExpr onto the operand stack. |
void |
visit_iaload(EDU.purdue.cs.bloat.editor.Instruction inst)
All visit_xaload push an ArrayRefExpr onto the operand stack. |
void |
visit_iand(EDU.purdue.cs.bloat.editor.Instruction inst)
All visit_x op push an ArithExpr onto the stack. |
void |
visit_iastore(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_idiv(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_if_acmpeq(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_if_acmpne(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_if_icmpeq(EDU.purdue.cs.bloat.editor.Instruction inst)
All visit_if_xcmpy add a IfCmpStmt to the statement list. |
void |
visit_if_icmpge(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_if_icmpgt(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_if_icmple(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_if_icmplt(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_if_icmpne(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_ifeq(EDU.purdue.cs.bloat.editor.Instruction inst)
All visit_xeg add an IfZeroStmt to the statement list. |
void |
visit_ifge(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_ifgt(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_ifle(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_iflt(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_ifne(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_ifnonnull(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_ifnull(EDU.purdue.cs.bloat.editor.Instruction inst)
Both visit_xnull add an IfZeroStmt to the statement list. |
void |
visit_iinc(EDU.purdue.cs.bloat.editor.Instruction inst)
Visiting an iinc involves creating a ConstantExpr, LocalExpr, ArithExpr StoreExpr, and a ExprStmt. |
void |
visit_iload(EDU.purdue.cs.bloat.editor.Instruction inst)
All visit_xload push a LocalExpr onto the operand stack. |
void |
visit_imul(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_ineg(EDU.purdue.cs.bloat.editor.Instruction inst)
All visit_xneg push a NegExpr onto the stack. |
void |
visit_instanceof(EDU.purdue.cs.bloat.editor.Instruction inst)
Pushes an InstanceOfExpr onto the operand stack. |
void |
visit_invokeinterface(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_invokespecial(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_invokestatic(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_invokevirtual(EDU.purdue.cs.bloat.editor.Instruction inst)
All visit_invokex deal with a CallMethodExpr or a CallStaticExpr. |
void |
visit_ior(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_irem(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_ireturn(EDU.purdue.cs.bloat.editor.Instruction inst)
All visit_xreturn add a ReturnExprStmt to the statement list. |
void |
visit_ishl(EDU.purdue.cs.bloat.editor.Instruction inst)
All visit_xshd push a ShiftExpr onto the operand stack. |
void |
visit_ishr(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_istore(EDU.purdue.cs.bloat.editor.Instruction inst)
All visit_xstore add a LocalExpr statement to the statement list. |
void |
visit_isub(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_iushr(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_ixor(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_jsr(EDU.purdue.cs.bloat.editor.Instruction inst)
Adds a JsrStmt to the statement list. |
void |
visit_l2d(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_l2f(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_l2i(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_ladd(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_laload(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_land(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_lastore(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_lcmp(EDU.purdue.cs.bloat.editor.Instruction inst)
All visit_xcmp push an ArithExpr onto the stack. |
void |
visit_ldc(EDU.purdue.cs.bloat.editor.Instruction inst)
Pushes a ConstantExpr onto the operand stack. |
void |
visit_ldiv(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_lload(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_lmul(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_lneg(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_lor(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_lrem(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_lreturn(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_lshl(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_lshr(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_lstore(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_lsub(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_lushr(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_lxor(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_monitorenter(EDU.purdue.cs.bloat.editor.Instruction inst)
Both monitor visitors add a MonitorStmt to the statement list. |
void |
visit_monitorexit(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_multianewarray(EDU.purdue.cs.bloat.editor.Instruction inst)
Push a NewMultiArrayExpr onto the operand stack. |
void |
visit_new(EDU.purdue.cs.bloat.editor.Instruction inst)
Pushes a NewExpr onto the operand stack. |
void |
visit_newarray(EDU.purdue.cs.bloat.editor.Instruction inst)
Pushes a NewArrayExpr onto the operand stack. |
void |
visit_nop(EDU.purdue.cs.bloat.editor.Instruction inst)
Adds no statements to the statement list. |
void |
visit_pop(EDU.purdue.cs.bloat.editor.Instruction inst)
Pop the expression off the top of the stack and add it as an ExprStmt to the statement list. |
void |
visit_pop2(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_putfield_nowb(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_putfield(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_putstatic_nowb(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_putstatic(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_rc(EDU.purdue.cs.bloat.editor.Instruction inst)
Replaces the expression on the top of the stack with an RCExpr. |
void |
visit_ret(EDU.purdue.cs.bloat.editor.Instruction inst)
Adds a RetStmt to the statement list. |
void |
visit_return(EDU.purdue.cs.bloat.editor.Instruction inst)
Adds a ReturnStmt to the statement list. |
void |
visit_saload(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_sastore(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_supdate(EDU.purdue.cs.bloat.editor.Instruction inst)
Replace the expression at the stack depth specified in the instruction with a UCExpr. |
void |
visit_swap(EDU.purdue.cs.bloat.editor.Instruction inst)
|
void |
visit_switch(EDU.purdue.cs.bloat.editor.Instruction inst)
Add a SwitchStmt to the statement list. |
void |
visit(TreeVisitor visitor)
|
void |
visitForceChildren(TreeVisitor visitor)
Visit all the statements in the statement list. |
Methods inherited from class sandmark.obfuscate.boolsplitter.dtree.Node |
cleanup, copyInto, hasParent, key, replaceWith, replaceWith, setKey, setParent, setValueNumber, valueNumber, visitChildren, visitOnly |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface EDU.purdue.cs.bloat.editor.Opcode |
|
Field Detail |
public static boolean DEBUG
public static boolean FLATTEN
public static boolean USE_STACK
public static boolean AUPDATE_FIX_HACK
public static boolean AUPDATE_FIX_HACK_CHANGED
public static boolean USE_PERSISTENT
Block block
Subroutine sub
Block next
OperandStack stack
Tree.StmtList stmts
java.util.Stack savedStack
static int stackpos
boolean saveValue
EDU.purdue.cs.bloat.editor.Instruction last
Constructor Detail |
public Tree(Block block, OperandStack predStack)
block
- The basic Block of code represented in this Tree.predStack
- The contents of the operand stack from the previous basic Block.Method Detail |
public void cleanupOnly()
cleanupOnly
in class Node
public void initLocals(java.util.Collection locals)
LocalExpr
,
InitStmt
public void removeStmt(Stmt stmt)
stmt
- The statement to removepublic void removeLastStmt()
public java.util.List stmts()
public Stmt lastStmt()
public OperandStack stack()
public void addStmtAfter(Stmt stmt, Stmt after)
stmt
- The statement to add.after
- The statement after which to add stmt.public void addStmtBefore(Stmt stmt, Stmt before)
stmt
- The statement to insertbefore
- The statement before which to add stmt.public void prependStmt(Stmt stmt)
stmt
- The statement to add.public void addStmt(Stmt stmt)
stmt
- A statement to add to the statement list.public void addStmtBeforeJump(Stmt stmt)
JumpStmt
public void addInstruction(EDU.purdue.cs.bloat.editor.Instruction inst, Block next)
inst
- The instruction to add.next
- The basic block after the jump. Remember that a jump ends
a basic block.Instruction.isJsr()
,
Instruction.isConditionalJump()
public void addInstruction(EDU.purdue.cs.bloat.editor.Instruction inst)
inst
- Instruction to add.public void addInstruction(EDU.purdue.cs.bloat.editor.Instruction inst, Subroutine sub)
inst
- Instruction to add.sub
- Subroutine in which inst resides. The ret instruction
always resides in a Subroutine. An astore may store
the return address of a subroutine in a local variable.Instruction.isRet()
public void addLabel(EDU.purdue.cs.bloat.editor.Label label)
label
- Label to add.public StackExpr newStack(EDU.purdue.cs.bloat.editor.Type type)
public LocalExpr newStackLocal(int index, EDU.purdue.cs.bloat.editor.Type type)
index
- Stack index of variable.type
- The type of the LocalExprpublic LocalExpr newLocal(int index, EDU.purdue.cs.bloat.editor.Type type)
index
- Stack index of variable.type
- The type of the LocalExprpublic LocalExpr newLocal(EDU.purdue.cs.bloat.editor.Type type)
type
- The type of the new LocalExpr.public java.lang.String toString()
toString
in class Node
public void visit_nop(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_nop
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_ldc(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_ldc
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
ConstantExpr
public void visit_iload(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_iload
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
LocalExpr
public void visit_lload(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_lload
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_fload(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_fload
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_dload(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_dload
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_aload(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_aload
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_iaload(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_iaload
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_laload(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_laload
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_faload(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_faload
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_daload(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_daload
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_aaload(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_aaload
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_baload(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_baload
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_caload(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_caload
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_saload(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_saload
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_istore(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_istore
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_lstore(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_lstore
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_fstore(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_fstore
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_dstore(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_dstore
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_astore(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_astore
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
AddressStoreStmt
,
LocalExpr
,
StoreExpr
public void visit_iastore(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_iastore
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_lastore(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_lastore
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_fastore(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_fastore
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_dastore(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_dastore
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_aastore(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_aastore
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_bastore(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_bastore
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_castore(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_castore
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_sastore(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_sastore
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_pop(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_pop
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
ExprStmt
public void visit_pop2(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_pop2
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_dup(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_dup
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
LocalExpr
,
StackExpr
,
StackManipStmt
public void visit_dup_x1(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_dup_x1
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_dup_x2(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_dup_x2
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_dup2(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_dup2
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_dup2_x1(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_dup2_x1
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_dup2_x2(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_dup2_x2
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_swap(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_swap
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_iadd(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_iadd
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
ArithExpr
public void visit_ladd(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_ladd
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_fadd(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_fadd
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_dadd(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_dadd
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_isub(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_isub
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_lsub(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_lsub
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_fsub(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_fsub
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_dsub(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_dsub
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_imul(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_imul
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_lmul(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_lmul
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_fmul(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_fmul
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_dmul(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_dmul
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_idiv(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_idiv
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_ldiv(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_ldiv
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_fdiv(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_fdiv
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_ddiv(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_ddiv
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_irem(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_irem
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_lrem(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_lrem
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_frem(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_frem
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_drem(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_drem
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_ineg(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_ineg
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
NegExpr
public void visit_lneg(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_lneg
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_fneg(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_fneg
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_dneg(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_dneg
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_ishl(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_ishl
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
ShiftExpr
public void visit_lshl(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_lshl
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_ishr(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_ishr
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_lshr(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_lshr
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_iushr(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_iushr
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_lushr(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_lushr
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_iand(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_iand
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
ArithExpr
public void visit_land(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_land
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_ior(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_ior
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_lor(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_lor
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_ixor(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_ixor
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_lxor(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_lxor
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_iinc(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_iinc
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_i2l(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_i2l
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_i2f(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_i2f
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_i2d(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_i2d
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_l2i(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_l2i
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_l2f(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_l2f
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_l2d(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_l2d
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_f2i(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_f2i
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_f2l(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_f2l
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_f2d(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_f2d
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_d2i(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_d2i
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_d2l(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_d2l
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_d2f(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_d2f
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_i2b(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_i2b
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_i2c(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_i2c
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_i2s(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_i2s
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_lcmp(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_lcmp
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
ArithExpr
public void visit_fcmpl(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_fcmpl
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_fcmpg(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_fcmpg
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_dcmpl(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_dcmpl
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_dcmpg(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_dcmpg
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_ifeq(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_ifeq
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
IfZeroStmt
public void visit_ifne(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_ifne
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_iflt(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_iflt
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_ifge(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_ifge
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_ifgt(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_ifgt
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_ifle(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_ifle
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_if_icmpeq(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_if_icmpeq
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_if_icmpne(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_if_icmpne
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_if_icmplt(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_if_icmplt
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_if_icmpge(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_if_icmpge
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_if_icmpgt(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_if_icmpgt
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_if_icmple(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_if_icmple
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_if_acmpeq(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_if_acmpeq
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_if_acmpne(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_if_acmpne
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_goto(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_goto
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
GotoStmt
public void visit_jsr(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_jsr
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
JsrStmt
public void visit_ret(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_ret
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
RetStmt
public void visit_switch(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_switch
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
SwitchStmt
public void visit_ireturn(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_ireturn
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
ReturnExprStmt
public void visit_lreturn(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_lreturn
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_freturn(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_freturn
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_dreturn(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_dreturn
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_areturn(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_areturn
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_return(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_return
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_getstatic(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_getstatic
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_putstatic(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_putstatic
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_putstatic_nowb(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_putstatic_nowb
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_getfield(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_getfield
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_putfield(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_putfield
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_putfield_nowb(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_putfield_nowb
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_invokevirtual(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_invokevirtual
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
CallMethodExpr
,
CallStaticExpr
public void visit_invokespecial(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_invokespecial
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_invokestatic(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_invokestatic
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_invokeinterface(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_invokeinterface
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_new(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_new
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
NewExpr
public void visit_newarray(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_newarray
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_arraylength(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_arraylength
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
ArrayLengthExpr
public void visit_athrow(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_athrow
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
ThrowStmt
public void visit_checkcast(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_checkcast
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
CastExpr
public void visit_instanceof(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_instanceof
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
InstanceOfExpr
public void visit_monitorenter(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_monitorenter
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
MonitorStmt
public void visit_monitorexit(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_monitorexit
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_multianewarray(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_multianewarray
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
NewMultiArrayExpr
public void visit_ifnull(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_ifnull
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_ifnonnull(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_ifnonnull
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_rc(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_rc
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
RCExpr
public void visit_aupdate(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_aupdate
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
public void visit_supdate(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_supdate
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
UCExpr
public void visit_aswizzle(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_aswizzle
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
SCStmt
public void visit_aswrange(EDU.purdue.cs.bloat.editor.Instruction inst)
visit_aswrange
in interface EDU.purdue.cs.bloat.editor.InstructionVisitor
SRStmt
public void visitForceChildren(TreeVisitor visitor)
visitForceChildren
in class Node
public void visit(TreeVisitor visitor)
visit
in class Node
public Node parent()
parent
in class Node
public Block block()
Node
block
in class Node
|
SandMark version 2.0 Mon Jun 17 12:30:47 MST 2002 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |