soot.dava.toolkits.base.AST.transformations
Class IfElseSplitter

java.lang.Object
  extended by soot.dava.toolkits.base.AST.analysis.AnalysisAdapter
      extended by soot.dava.toolkits.base.AST.analysis.DepthFirstAdapter
          extended by soot.dava.toolkits.base.AST.transformations.IfElseSplitter
All Implemented Interfaces:
Analysis

public class IfElseSplitter
extends DepthFirstAdapter


Field Summary
static boolean DEBUG
           
 
Constructor Summary
IfElseSplitter()
           
IfElseSplitter(boolean verbose)
           
 
Method Summary
 boolean bodyTargetsLabel(SETNodeLabel label, List<Object> body)
           
 Stmt getLastStmt(List<Object> body)
           
 void inASTMethodNode(ASTMethodNode node)
           
 void outASTIfElseNode(ASTIfElseNode node)
           
 void outASTMethodNode(ASTMethodNode a)
           
 boolean tryBodyPattern(List<Object> body, SETNodeLabel label, List<Object> otherBody)
           
 
Methods inherited from class soot.dava.toolkits.base.AST.analysis.DepthFirstAdapter
caseArrayRef, caseASTAndCondition, caseASTBinaryCondition, caseASTDoWhileNode, caseASTForLoopNode, caseASTIfElseNode, caseASTIfNode, caseASTLabeledBlockNode, caseASTMethodNode, caseASTOrCondition, caseASTStatementSequenceNode, caseASTSwitchNode, caseASTSynchronizedBlockNode, caseASTTryNode, caseASTUnaryCondition, caseASTUnconditionalLoopNode, caseASTWhileNode, caseBinopExpr, caseCastExpr, caseDefinitionStmt, caseDVariableDeclarationStmt, caseExpr, caseExprOrRefValueBox, caseInstanceFieldRef, caseInstanceInvokeExpr, caseInstanceOfExpr, caseInvokeExpr, caseInvokeStmt, caseNewArrayExpr, caseNewMultiArrayExpr, caseRef, caseReturnStmt, caseStaticFieldRef, caseStmt, caseThrowStmt, caseType, caseUnopExpr, caseValue, debug, decideCaseExpr, decideCaseExprOrRef, decideCaseRef, inArrayRef, inASTAndCondition, inASTBinaryCondition, inASTDoWhileNode, inASTForLoopNode, inASTIfElseNode, inASTIfNode, inASTLabeledBlockNode, inASTOrCondition, inASTStatementSequenceNode, inASTSwitchNode, inASTSynchronizedBlockNode, inASTTryNode, inASTUnaryCondition, inASTUnconditionalLoopNode, inASTWhileNode, inBinopExpr, inCastExpr, inDefinitionStmt, inDVariableDeclarationStmt, inExpr, inExprOrRefValueBox, inInstanceFieldRef, inInstanceInvokeExpr, inInstanceOfExpr, inInvokeExpr, inInvokeStmt, inNewArrayExpr, inNewMultiArrayExpr, inRef, inReturnStmt, inStaticFieldRef, inStmt, inThrowStmt, inType, inUnopExpr, inValue, normalRetrieving, outArrayRef, outASTAndCondition, outASTBinaryCondition, outASTDoWhileNode, outASTForLoopNode, outASTIfNode, outASTLabeledBlockNode, outASTOrCondition, outASTStatementSequenceNode, outASTSwitchNode, outASTSynchronizedBlockNode, outASTTryNode, outASTUnaryCondition, outASTUnconditionalLoopNode, outASTWhileNode, outBinopExpr, outCastExpr, outDefinitionStmt, outDVariableDeclarationStmt, outExpr, outExprOrRefValueBox, outInstanceFieldRef, outInstanceInvokeExpr, outInstanceOfExpr, outInvokeExpr, outInvokeStmt, outNewArrayExpr, outNewMultiArrayExpr, outRef, outReturnStmt, outStaticFieldRef, outStmt, outThrowStmt, outType, outUnopExpr, outValue
 
Methods inherited from class soot.dava.toolkits.base.AST.analysis.AnalysisAdapter
defaultCase
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEBUG

public static boolean DEBUG
Constructor Detail

IfElseSplitter

public IfElseSplitter()

IfElseSplitter

public IfElseSplitter(boolean verbose)
Method Detail

inASTMethodNode

public void inASTMethodNode(ASTMethodNode node)
Overrides:
inASTMethodNode in class DepthFirstAdapter

outASTMethodNode

public void outASTMethodNode(ASTMethodNode a)
Overrides:
outASTMethodNode in class DepthFirstAdapter

outASTIfElseNode

public void outASTIfElseNode(ASTIfElseNode node)
Overrides:
outASTIfElseNode in class DepthFirstAdapter

tryBodyPattern

public boolean tryBodyPattern(List<Object> body,
                              SETNodeLabel label,
                              List<Object> otherBody)

bodyTargetsLabel

public boolean bodyTargetsLabel(SETNodeLabel label,
                                List<Object> body)

getLastStmt

public Stmt getLastStmt(List<Object> body)