polyglot.visit
Class DataFlow.ConditionNavigator

java.lang.Object
  extended by polyglot.visit.DataFlow.ConditionNavigator
Enclosing class:
DataFlow

Deprecated.

protected abstract static class DataFlow.ConditionNavigator
extends java.lang.Object

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 Items 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

DataFlow.ConditionNavigator

protected DataFlow.ConditionNavigator()
Deprecated. 
Method Detail

navigate

public 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. A BoolItem is returned, containing the Items that are appropriate when expr evaluates to true and false.


andResults

public 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 &).


orResults

public 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 |).


notResult

public DataFlow.BoolItem notResult(DataFlow.BoolItem results)
Deprecated. 
Modify the results of analyzing the child of a NEGATION boolean operator (a !).


combine

public abstract DataFlow.Item combine(DataFlow.Item item1,
                                      DataFlow.Item item2)
Deprecated. 
Combine two Items together, when the information contained in both items is true. Thus, for example, in a not-null analysis, where Items 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.


handleExpression

public 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 !.