public class ReachingDefs extends StructuredAnalysis
DEBUG, DEBUG_IF, DEBUG_STATEMENTS, DEBUG_TRY, DEBUG_WHILE, MERGETYPE| Constructor and Description |
|---|
ReachingDefs(java.lang.Object analyze) |
| Modifier and Type | Method and Description |
|---|---|
DavaFlowSet |
cloneFlowSet(DavaFlowSet flowSet)
Make a clone of the flowset The implementor should know when they want a
shallow or deep clone
|
DavaFlowSet |
emptyFlowSet() |
void |
gen(DavaFlowSet in,
DefinitionStmt s) |
java.util.List<DefinitionStmt> |
getReachingDefs(Local local,
java.lang.Object node) |
void |
kill(DavaFlowSet in,
Local redefined) |
DavaFlowSet |
newInitialFlow() |
DavaFlowSet |
processStatement(Stmt s,
DavaFlowSet inSet)
Specific stmts within AST Constructs are processed through this method.
|
DavaFlowSet |
processSwitchKey(Value key,
DavaFlowSet inSet)
Deal with the key in the switch construct
|
DavaFlowSet |
processSynchronizedLocal(Local local,
DavaFlowSet inSet)
To deal with the local used for synch blocks
|
DavaFlowSet |
processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet inSet)
To have maximum flexibility in analyzing conditions the analysis API
breaks down the aggregated conditions to simple unary or binary
conditions user defined code can then deal with each condition
separately.
|
void |
reachingDefsToString(java.lang.Object node) |
void |
setMergeType() |
debug, debug, getAfterSet, getBeforeSet, getLabel, handleBreak, handleContinue, isDifferent, merge, mergeExplicitAndImplicit, print, process, processAbruptStatements, processASTDoWhileNode, processASTForLoopNode, processASTIfElseNode, processASTIfNode, processASTLabeledBlockNode, processASTMethodNode, processASTNode, processASTStatementSequenceNode, processASTSwitchNode, processASTSynchronizedBlockNode, processASTTryNode, processASTUnconditionalLoopNode, processASTWhileNode, processCondition, processSingleSubBodyNodepublic DavaFlowSet emptyFlowSet()
emptyFlowSet in class StructuredAnalysispublic DavaFlowSet newInitialFlow()
newInitialFlow in class StructuredAnalysispublic void setMergeType()
setMergeType in class StructuredAnalysispublic DavaFlowSet cloneFlowSet(DavaFlowSet flowSet)
StructuredAnalysiscloneFlowSet in class StructuredAnalysispublic DavaFlowSet processUnaryBinaryCondition(ASTUnaryBinaryCondition cond, DavaFlowSet inSet)
StructuredAnalysisprocessUnaryBinaryCondition in class StructuredAnalysispublic DavaFlowSet processSynchronizedLocal(Local local, DavaFlowSet inSet)
StructuredAnalysisprocessSynchronizedLocal in class StructuredAnalysispublic DavaFlowSet processSwitchKey(Value key, DavaFlowSet inSet)
StructuredAnalysisprocessSwitchKey in class StructuredAnalysispublic DavaFlowSet processStatement(Stmt s, DavaFlowSet inSet)
StructuredAnalysisprocessStatement in class StructuredAnalysispublic void gen(DavaFlowSet in, DefinitionStmt s)
public void kill(DavaFlowSet in, Local redefined)
public java.util.List<DefinitionStmt> getReachingDefs(Local local, java.lang.Object node)
public void reachingDefsToString(java.lang.Object node)