Interface IFixedPointStatement<T extends IVariable<T>>
- All Superinterfaces:
INodeWithNumber
- All Known Implementing Classes:
AbstractFixedPointSolver.Statement
,AbstractStatement
,AssignEquation
,BasicNullaryStatement
,BasicUnaryStatement
,GeneralStatement
,NullaryStatement
,UnaryStatement
The general form of a statement definition in an iterative solver is: x >= term, where term
can be any complex expression whose free variables are among the IVariables of the constraint
system this
IFixedPointStatement
is part of (x represents the left-hand side of the
constraint). The interpretation of term (the right-hand side of the constraint) must be monotone.
The list of free variables in term is obtained by invoking getRHS()
, and the left
hand side variable is obtained by calling getLHS()
. Intuitively, a statement definition
corresponds to an "equation" in dataflow parlance, or a "constraint" in constraint solvers.
-
Method Summary
Modifier and TypeMethodDescriptionbyte
evaluate()
Evaluate this statement, setting a new value for the left-hand side.@Nullable T
getLHS()
T[]
getRHS()
returns the list of free variables appearing in the right-hand side of the statementboolean
hasVariable
(T v) Does this statement definition contain an appearance of a given variable?Methods inherited from interface com.ibm.wala.util.graph.INodeWithNumber
getGraphNodeId, setGraphNodeId
-
Method Details
-
getLHS
@Nullable T getLHS()- Returns:
- the left-hand side of this statement.
-
getRHS
T[] getRHS()returns the list of free variables appearing in the right-hand side of the statement -
evaluate
byte evaluate()Evaluate this statement, setting a new value for the left-hand side. The return value is one of the following: -
hasVariable
Does this statement definition contain an appearance of a given variable?- Parameters:
v
- the variable in question
-