Package it.unive.lisa.program.cfg.edge
Class SequentialEdge
- java.lang.Object
-
- it.unive.lisa.program.cfg.edge.Edge
-
- it.unive.lisa.program.cfg.edge.SequentialEdge
-
-
Constructor Summary
Constructors Constructor Description SequentialEdge()
Builds an "empty" edge, meaning that it does not have endpoints.SequentialEdge(Statement source, Statement destination)
Builds the edge.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
isUnconditional()
Yieldstrue
if and only if this edge represent unconditional execution flow between its bounds.SequentialEdge
newInstance(Statement source, Statement destination)
Builds a new instance of this edge, connecting the given nodes.java.lang.String
toString()
<A extends AbstractState<A,H,V,T>,H extends HeapDomain<H>,V extends ValueDomain<V>,T extends TypeDomain<T>>
AnalysisState<A,H,V,T>traverse(AnalysisState<A,H,V,T> sourceState)
Traverses this edge, optionally modifying the givensourceState
by applying semantic assumptions.
-
-
-
Method Detail
-
traverse
public <A extends AbstractState<A,H,V,T>,H extends HeapDomain<H>,V extends ValueDomain<V>,T extends TypeDomain<T>> AnalysisState<A,H,V,T> traverse(AnalysisState<A,H,V,T> sourceState)
Description copied from class:Edge
Traverses this edge, optionally modifying the givensourceState
by applying semantic assumptions.- Specified by:
traverse
in classEdge
- Type Parameters:
A
- the concreteAbstractState
instanceH
- the concreteHeapDomain
instanceV
- the concreteValueDomain
instanceT
- the concreteTypeDomain
instance- Parameters:
sourceState
- theAnalysisState
computed at the source of this edge- Returns:
- the
AnalysisState
after traversing this edge
-
isUnconditional
public boolean isUnconditional()
Description copied from interface:CodeEdge
Yieldstrue
if and only if this edge represent unconditional execution flow between its bounds. This means that (i) it could be simplified if one of the nodes connected to it is simplified (i.e., removed from the graph), and (ii) the graph containing it can avoid storing the edge if its bounds are subsequent.- Returns:
- whether or not this edge can be simplified
-
newInstance
public SequentialEdge newInstance(Statement source, Statement destination)
Description copied from interface:CodeEdge
Builds a new instance of this edge, connecting the given nodes.- Parameters:
source
- the source nodedestination
- the destination node- Returns:
- a new instance of this edge, connecting the given nodes
-
-