|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object soot.dava.toolkits.base.AST.structuredAnalysis.StructuredAnalysis soot.dava.toolkits.base.AST.structuredAnalysis.ReachingDefs
public class ReachingDefs
CHANGE LOG: * November 21st Added support for implicit breaks and continues Tested code for reaching defs within switch/try/if/while/for * November 22nd Refactored code to make structure flow analysis framework handle breaks and returns. * November 24th newInitialFlow ERROR............initialFlow should be the set of all defs........since there needs to exist SOME path
Field Summary |
---|
Fields inherited from class soot.dava.toolkits.base.AST.structuredAnalysis.StructuredAnalysis |
---|
DEBUG, DEBUG_IF, DEBUG_STATEMENTS, DEBUG_TRY, DEBUG_WHILE, MERGETYPE |
Constructor Summary | |
---|---|
ReachingDefs(Object analyze)
|
Method Summary | |
---|---|
Object |
cloneFlowSet(Object 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)
|
List<DefinitionStmt> |
getReachingDefs(Local local,
Object node)
|
void |
kill(DavaFlowSet in,
Local redefined)
|
Object |
newInitialFlow()
|
Object |
processStatement(Stmt s,
Object input)
Specific stmts within AST Constructs are processed through this method. |
Object |
processSwitchKey(Value key,
Object input)
Deal with the key in the switch construct |
Object |
processSynchronizedLocal(Local local,
Object input)
To deal with the local used for synch blocks |
Object |
processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
Object input)
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 separatly. |
void |
reachingDefsToString(Object node)
|
void |
setMergeType()
|
Methods inherited from class soot.dava.toolkits.base.AST.structuredAnalysis.StructuredAnalysis |
---|
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, processSingleSubBodyNode |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ReachingDefs(Object analyze)
Method Detail |
---|
public DavaFlowSet emptyFlowSet()
emptyFlowSet
in class StructuredAnalysis
public Object newInitialFlow()
newInitialFlow
in class StructuredAnalysis
public void setMergeType()
setMergeType
in class StructuredAnalysis
public Object cloneFlowSet(Object flowSet)
StructuredAnalysis
cloneFlowSet
in class StructuredAnalysis
public Object processUnaryBinaryCondition(ASTUnaryBinaryCondition cond, Object input)
StructuredAnalysis
processUnaryBinaryCondition
in class StructuredAnalysis
public Object processSynchronizedLocal(Local local, Object input)
StructuredAnalysis
processSynchronizedLocal
in class StructuredAnalysis
public Object processSwitchKey(Value key, Object input)
StructuredAnalysis
processSwitchKey
in class StructuredAnalysis
public Object processStatement(Stmt s, Object input)
StructuredAnalysis
processStatement
in class StructuredAnalysis
public void gen(DavaFlowSet in, DefinitionStmt s)
public void kill(DavaFlowSet in, Local redefined)
public List<DefinitionStmt> getReachingDefs(Local local, Object node)
public void reachingDefsToString(Object node)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |