public class SimplifyConditions extends DepthFirstAdapter
Constructor and Description |
---|
SimplifyConditions() |
SimplifyConditions(boolean verbose) |
Modifier and Type | Method and Description |
---|---|
ASTCondition |
applyDeMorgans(ASTAggregatedCondition aggCond) |
java.lang.Boolean |
doubleSwitch(int op,
double l,
double r) |
ASTUnaryCondition |
evaluateBinaryCondition(ConditionExpr expr) |
void |
fixedPoint(ASTControlFlowNode node) |
java.lang.Boolean |
floatSwitch(int op,
float l,
float r) |
java.lang.Boolean |
intSwitch(int op,
int l,
int r) |
java.lang.Boolean |
isBooleanConstant(Value internal) |
java.lang.Boolean |
longSwitch(int op,
long l,
long r) |
void |
outASTDoWhileNode(ASTDoWhileNode node) |
void |
outASTForLoopNode(ASTForLoopNode node) |
void |
outASTIfElseNode(ASTIfElseNode node) |
void |
outASTIfNode(ASTIfNode node) |
void |
outASTWhileNode(ASTWhileNode node) |
ASTCondition |
simplifyIfAtleastOneConstant(ASTAggregatedCondition aggCond) |
ASTCondition |
simplifyTheCondition(ASTCondition cond) |
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
defaultCase
public SimplifyConditions()
public SimplifyConditions(boolean verbose)
public void fixedPoint(ASTControlFlowNode node)
public void outASTIfNode(ASTIfNode node)
outASTIfNode
in class DepthFirstAdapter
public void outASTIfElseNode(ASTIfElseNode node)
outASTIfElseNode
in class DepthFirstAdapter
public void outASTWhileNode(ASTWhileNode node)
outASTWhileNode
in class DepthFirstAdapter
public void outASTDoWhileNode(ASTDoWhileNode node)
outASTDoWhileNode
in class DepthFirstAdapter
public void outASTForLoopNode(ASTForLoopNode node)
outASTForLoopNode
in class DepthFirstAdapter
public ASTCondition applyDeMorgans(ASTAggregatedCondition aggCond)
public ASTCondition simplifyIfAtleastOneConstant(ASTAggregatedCondition aggCond)
public java.lang.Boolean isBooleanConstant(Value internal)
public ASTCondition simplifyTheCondition(ASTCondition cond)
public ASTUnaryCondition evaluateBinaryCondition(ConditionExpr expr)
public java.lang.Boolean longSwitch(int op, long l, long r)
public java.lang.Boolean doubleSwitch(int op, double l, double r)
public java.lang.Boolean floatSwitch(int op, float l, float r)
public java.lang.Boolean intSwitch(int op, int l, int r)