SandMark version 2.0


sandmark.obfuscate.boolsplitter.dtree
Class TreeVisitor

java.lang.Object
  |
  +--sandmark.obfuscate.boolsplitter.dtree.TreeVisitor
Direct Known Subclasses:
AscendVisitor, DescendVisitor, LEGatherer, PrintVisitor, ReplaceTarget, ReplaceVisitor, VerifyCFG

public abstract class TreeVisitor
extends java.lang.Object

TreeVisitor performs a traversal of a tree. It does so by having a method of every kind of node in the tree. This abstract class performs default operations for each kind of node visited. It must be subclasses to perform a more interesting traversal.

See Also:
Node, Tree, PrintVisitor, ReplaceVisitor

Field Summary
(package private)  int direction
           
static int FORWARD
           
(package private)  boolean prune
           
static int REVERSE
           
 
Constructor Summary
TreeVisitor()
           
TreeVisitor(int direction)
           
 
Method Summary
 int direction()
           
 boolean forward()
          Returns true if the traversal traverses in the forward direction?
 boolean prune()
           
 boolean reverse()
           
 void setPrune(boolean prune)
           
 void visitAddressStoreStmt(AddressStoreStmt stmt)
           
 void visitArithExpr(ArithExpr expr)
           
 void visitArrayLengthExpr(ArrayLengthExpr expr)
           
 void visitArrayRefExpr(ArrayRefExpr expr)
           
 void visitBlock(Block block)
           
 void visitCallExpr(CallExpr expr)
           
 void visitCallMethodExpr(CallMethodExpr expr)
           
 void visitCallStaticExpr(CallStaticExpr expr)
           
 void visitCastExpr(CastExpr expr)
           
 void visitCatchExpr(CatchExpr expr)
           
 void visitCheckExpr(CheckExpr expr)
           
 void visitConstantExpr(ConstantExpr expr)
           
 void visitDefExpr(DefExpr expr)
           
 void visitExpr(Expr expr)
           
 void visitExprStmt(ExprStmt stmt)
           
 void visitFieldExpr(FieldExpr expr)
           
 void visitFlowGraph(FlowGraph graph)
           
 void visitGotoStmt(GotoStmt stmt)
           
 void visitIfCmpStmt(IfCmpStmt stmt)
           
 void visitIfStmt(IfStmt stmt)
           
 void visitIfZeroStmt(IfZeroStmt stmt)
           
 void visitInitStmt(InitStmt stmt)
           
 void visitInstanceOfExpr(InstanceOfExpr expr)
           
 void visitJsrStmt(JsrStmt stmt)
           
 void visitLabelStmt(LabelStmt stmt)
           
 void visitLocalExpr(LocalExpr expr)
           
 void visitMemExpr(MemExpr expr)
           
 void visitMemRefExpr(MemRefExpr expr)
           
 void visitMonitorStmt(MonitorStmt stmt)
           
 void visitNegExpr(NegExpr expr)
           
 void visitNewArrayExpr(NewArrayExpr expr)
           
 void visitNewExpr(NewExpr expr)
           
 void visitNewMultiArrayExpr(NewMultiArrayExpr expr)
           
 void visitNode(Node node)
           
 void visitPhiCatchStmt(PhiCatchStmt stmt)
           
 void visitPhiJoinStmt(PhiJoinStmt stmt)
           
 void visitPhiStmt(PhiStmt stmt)
           
 void visitRCExpr(RCExpr expr)
           
 void visitRetStmt(RetStmt stmt)
           
 void visitReturnAddressExpr(ReturnAddressExpr expr)
           
 void visitReturnExprStmt(ReturnExprStmt stmt)
           
 void visitReturnStmt(ReturnStmt stmt)
           
 void visitSCStmt(SCStmt stmt)
           
 void visitShiftExpr(ShiftExpr expr)
           
 void visitSRStmt(SRStmt stmt)
           
 void visitStackExpr(StackExpr expr)
           
 void visitStackManipStmt(StackManipStmt stmt)
           
 void visitStaticFieldExpr(StaticFieldExpr expr)
           
 void visitStmt(Stmt stmt)
           
 void visitStoreExpr(StoreExpr expr)
           
 void visitSwitchStmt(SwitchStmt stmt)
           
 void visitThrowStmt(ThrowStmt stmt)
           
 void visitTree(Tree tree)
           
 void visitUCExpr(UCExpr expr)
           
 void visitVarExpr(VarExpr expr)
           
 void visitZeroCheckExpr(ZeroCheckExpr expr)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FORWARD

public static final int FORWARD
See Also:
Constant Field Values

REVERSE

public static final int REVERSE
See Also:
Constant Field Values

prune

boolean prune

direction

int direction
Constructor Detail

TreeVisitor

public TreeVisitor()

TreeVisitor

public TreeVisitor(int direction)
Method Detail

setPrune

public void setPrune(boolean prune)
Parameters:
prune - Is the tree pruned during traversal?

prune

public boolean prune()

direction

public int direction()
Returns:
The direction in which the tree is traversed.

forward

public boolean forward()
Returns true if the traversal traverses in the forward direction?


reverse

public boolean reverse()

visitFlowGraph

public void visitFlowGraph(FlowGraph graph)

visitBlock

public void visitBlock(Block block)

visitTree

public void visitTree(Tree tree)

visitExprStmt

public void visitExprStmt(ExprStmt stmt)

visitIfStmt

public void visitIfStmt(IfStmt stmt)

visitIfCmpStmt

public void visitIfCmpStmt(IfCmpStmt stmt)

visitIfZeroStmt

public void visitIfZeroStmt(IfZeroStmt stmt)

visitInitStmt

public void visitInitStmt(InitStmt stmt)

visitGotoStmt

public void visitGotoStmt(GotoStmt stmt)

visitLabelStmt

public void visitLabelStmt(LabelStmt stmt)

visitMonitorStmt

public void visitMonitorStmt(MonitorStmt stmt)

visitPhiStmt

public void visitPhiStmt(PhiStmt stmt)

visitCatchExpr

public void visitCatchExpr(CatchExpr expr)

visitDefExpr

public void visitDefExpr(DefExpr expr)

visitStackManipStmt

public void visitStackManipStmt(StackManipStmt stmt)

visitPhiCatchStmt

public void visitPhiCatchStmt(PhiCatchStmt stmt)

visitPhiJoinStmt

public void visitPhiJoinStmt(PhiJoinStmt stmt)

visitRetStmt

public void visitRetStmt(RetStmt stmt)

visitReturnExprStmt

public void visitReturnExprStmt(ReturnExprStmt stmt)

visitReturnStmt

public void visitReturnStmt(ReturnStmt stmt)

visitAddressStoreStmt

public void visitAddressStoreStmt(AddressStoreStmt stmt)

visitStoreExpr

public void visitStoreExpr(StoreExpr expr)

visitJsrStmt

public void visitJsrStmt(JsrStmt stmt)

visitSwitchStmt

public void visitSwitchStmt(SwitchStmt stmt)

visitThrowStmt

public void visitThrowStmt(ThrowStmt stmt)

visitStmt

public void visitStmt(Stmt stmt)

visitSCStmt

public void visitSCStmt(SCStmt stmt)

visitSRStmt

public void visitSRStmt(SRStmt stmt)

visitArithExpr

public void visitArithExpr(ArithExpr expr)

visitArrayLengthExpr

public void visitArrayLengthExpr(ArrayLengthExpr expr)

visitMemExpr

public void visitMemExpr(MemExpr expr)

visitMemRefExpr

public void visitMemRefExpr(MemRefExpr expr)

visitArrayRefExpr

public void visitArrayRefExpr(ArrayRefExpr expr)

visitCallExpr

public void visitCallExpr(CallExpr expr)

visitCallMethodExpr

public void visitCallMethodExpr(CallMethodExpr expr)

visitCallStaticExpr

public void visitCallStaticExpr(CallStaticExpr expr)

visitCastExpr

public void visitCastExpr(CastExpr expr)

visitConstantExpr

public void visitConstantExpr(ConstantExpr expr)

visitFieldExpr

public void visitFieldExpr(FieldExpr expr)

visitInstanceOfExpr

public void visitInstanceOfExpr(InstanceOfExpr expr)

visitLocalExpr

public void visitLocalExpr(LocalExpr expr)

visitNegExpr

public void visitNegExpr(NegExpr expr)

visitNewArrayExpr

public void visitNewArrayExpr(NewArrayExpr expr)

visitNewExpr

public void visitNewExpr(NewExpr expr)

visitNewMultiArrayExpr

public void visitNewMultiArrayExpr(NewMultiArrayExpr expr)

visitCheckExpr

public void visitCheckExpr(CheckExpr expr)

visitZeroCheckExpr

public void visitZeroCheckExpr(ZeroCheckExpr expr)

visitRCExpr

public void visitRCExpr(RCExpr expr)

visitUCExpr

public void visitUCExpr(UCExpr expr)

visitReturnAddressExpr

public void visitReturnAddressExpr(ReturnAddressExpr expr)

visitShiftExpr

public void visitShiftExpr(ShiftExpr expr)

visitStackExpr

public void visitStackExpr(StackExpr expr)

visitVarExpr

public void visitVarExpr(VarExpr expr)

visitStaticFieldExpr

public void visitStaticFieldExpr(StaticFieldExpr expr)

visitExpr

public void visitExpr(Expr expr)

visitNode

public void visitNode(Node node)

SandMark version 2.0

Mon Jun 17 12:30:47 MST 2002