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, outValuedefaultCasepublic SimplifyConditions()
public SimplifyConditions(boolean verbose)
public void fixedPoint(ASTControlFlowNode node)
public void outASTIfNode(ASTIfNode node)
outASTIfNode in class DepthFirstAdapterpublic void outASTIfElseNode(ASTIfElseNode node)
outASTIfElseNode in class DepthFirstAdapterpublic void outASTWhileNode(ASTWhileNode node)
outASTWhileNode in class DepthFirstAdapterpublic void outASTDoWhileNode(ASTDoWhileNode node)
outASTDoWhileNode in class DepthFirstAdapterpublic void outASTForLoopNode(ASTForLoopNode node)
outASTForLoopNode in class DepthFirstAdapterpublic 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)