soot.dava.toolkits.base.AST.transformations
Class SimplifyConditions
java.lang.Object
soot.dava.toolkits.base.AST.analysis.AnalysisAdapter
soot.dava.toolkits.base.AST.analysis.DepthFirstAdapter
soot.dava.toolkits.base.AST.transformations.SimplifyConditions
- All Implemented Interfaces:
- Analysis
public class SimplifyConditions
- extends DepthFirstAdapter
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, inASTMethodNode, 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, outASTLabeledBlockNode, outASTMethodNode, outASTOrCondition, outASTStatementSequenceNode, outASTSwitchNode, outASTSynchronizedBlockNode, outASTTryNode, outASTUnaryCondition, outASTUnconditionalLoopNode, 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 java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DEBUG
public static boolean DEBUG
changed
public boolean changed
SimplifyConditions
public SimplifyConditions()
SimplifyConditions
public SimplifyConditions(boolean verbose)
fixedPoint
public void fixedPoint(ASTControlFlowNode node)
outASTIfNode
public void outASTIfNode(ASTIfNode node)
- Overrides:
outASTIfNode
in class DepthFirstAdapter
outASTIfElseNode
public void outASTIfElseNode(ASTIfElseNode node)
- Overrides:
outASTIfElseNode
in class DepthFirstAdapter
outASTWhileNode
public void outASTWhileNode(ASTWhileNode node)
- Overrides:
outASTWhileNode
in class DepthFirstAdapter
outASTDoWhileNode
public void outASTDoWhileNode(ASTDoWhileNode node)
- Overrides:
outASTDoWhileNode
in class DepthFirstAdapter
outASTForLoopNode
public void outASTForLoopNode(ASTForLoopNode node)
- Overrides:
outASTForLoopNode
in class DepthFirstAdapter
applyDeMorgans
public ASTCondition applyDeMorgans(ASTAggregatedCondition aggCond)
simplifyIfAtleastOneConstant
public ASTCondition simplifyIfAtleastOneConstant(ASTAggregatedCondition aggCond)
isBooleanConstant
public Boolean isBooleanConstant(Value internal)
simplifyTheCondition
public ASTCondition simplifyTheCondition(ASTCondition cond)
evaluateBinaryCondition
public ASTUnaryCondition evaluateBinaryCondition(ConditionExpr expr)
longSwitch
public Boolean longSwitch(int op,
long l,
long r)
doubleSwitch
public Boolean doubleSwitch(int op,
double l,
double r)
floatSwitch
public Boolean floatSwitch(int op,
float l,
float r)
intSwitch
public Boolean intSwitch(int op,
int l,
int r)