|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectpolyglot.visit.DataFlow.ConditionNavigator
protected abstract static class DataFlow.ConditionNavigator
A ConditionNavigator
is used to traverse boolean
expressions that are
used as conditions, such as in if statements, while statements,
left branches of && and ||. The ConditionNavigator
is used
to generate
a finer-grained analysis, so that the branching flows from a
condition can take into account the fact that the condition is true or
false. For example, in the statement if (cond) s1 else s2
,
dataflow for s1
can continue in the knowledge that
cond
evaluated to true, and similarly, s2
can be analyzed using the knowledge that cond
evaluated to
false.
Constructor Summary | |
---|---|
protected |
DataFlow.ConditionNavigator()
Deprecated. |
Method Summary | |
---|---|
DataFlow.BoolItem |
andResults(DataFlow.BoolItem left,
DataFlow.BoolItem right,
DataFlow.Item startingItem)
Deprecated. Combine the results of analyzing the left and right arms of an AND boolean operator (either && or &). |
abstract DataFlow.Item |
combine(DataFlow.Item item1,
DataFlow.Item item2)
Deprecated. Combine two Item s together, when the information
contained in both items is true. |
abstract DataFlow.BoolItem |
handleExpression(Expr expr,
DataFlow.Item startingItem)
Deprecated. Produce a BoolItem for an expression that is not
a boolean operator, such as &&, &, ||, | or !. |
DataFlow.BoolItem |
navigate(Expr expr,
DataFlow.Item startingItem)
Deprecated. Navigate the expression expr , where the
Item at the start of evaluating the expression is
startingItem . |
DataFlow.BoolItem |
notResult(DataFlow.BoolItem results)
Deprecated. Modify the results of analyzing the child of a NEGATION boolean operator (a !). |
DataFlow.BoolItem |
orResults(DataFlow.BoolItem left,
DataFlow.BoolItem right,
DataFlow.Item startingItem)
Deprecated. Combine the results of analyzing the left and right arms of an OR boolean operator (either || or |). |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
protected DataFlow.ConditionNavigator()
Method Detail |
---|
public DataFlow.BoolItem navigate(Expr expr, DataFlow.Item startingItem)
expr
, where the
Item
at the start of evaluating the expression is
startingItem
.
A BoolItem
is returned, containing the
Item
s that are appropriate when expr
evaluates to true and false.
public DataFlow.BoolItem andResults(DataFlow.BoolItem left, DataFlow.BoolItem right, DataFlow.Item startingItem)
public DataFlow.BoolItem orResults(DataFlow.BoolItem left, DataFlow.BoolItem right, DataFlow.Item startingItem)
public DataFlow.BoolItem notResult(DataFlow.BoolItem results)
public abstract DataFlow.Item combine(DataFlow.Item item1, DataFlow.Item item2)
Item
s together, when the information
contained in both items is true. Thus, for example, in a not-null
analysis, where Item
s are sets of not-null variables,
combining them corresponds to unioning the sets. Note that this
could be a different operation to the confluence operation.
public abstract DataFlow.BoolItem handleExpression(Expr expr, DataFlow.Item startingItem)
BoolItem
for an expression that is not
a boolean operator, such as &&, &, ||, | or !.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |