T
- Type of the abstract dataflow valuepublic class SuspendedExecutionStack<T extends AbstractValue<T>> extends java.lang.Object implements Ordered<SuspendedExecutionStack<T>>
See Java Language Specification 5.0 section 14.20.2 for more detail.
Modifier and Type | Method and Description |
---|---|
static <T extends AbstractValue<T>> |
emptyStack()
This is the only way to create a
SuspendedExecutionStack |
boolean |
equals(java.lang.Object obj) |
int |
hashCode() |
boolean |
isEmpty()
True if there are no elements on the stack
|
boolean |
leq(SuspendedExecutionStack<T> o)
Is the given object less than or equal to this one
|
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,T> |
peek()
Get the element on top of the stack
|
java.lang.Object |
peekSource()
Get the finally block the element on top of the stack was pushed on for
|
SuspendedExecutionStack<T> |
pop()
Get a new stack with the top element popped off
|
SuspendedExecutionStack<T> |
push(java.util.Map<polyglot.visit.FlowGraph.EdgeKey,T> v,
java.lang.Object source)
Get a new stack by pushing the specified map onto this stack
|
int |
size()
Get the number of elements on the stack
|
java.lang.String |
toString() |
SuspendedExecutionStack<T> |
upperBound(SuspendedExecutionStack<T> o)
Compute the upper bound of
this and o |
SuspendedExecutionStack<T> |
widen(SuspendedExecutionStack<T> o)
Compute the widening operator on
this and o . |
public static final <T extends AbstractValue<T>> SuspendedExecutionStack<T> emptyStack()
SuspendedExecutionStack
public int size()
public java.util.Map<polyglot.visit.FlowGraph.EdgeKey,T> peek()
public java.lang.Object peekSource()
public SuspendedExecutionStack<T> pop()
public SuspendedExecutionStack<T> push(java.util.Map<polyglot.visit.FlowGraph.EdgeKey,T> v, java.lang.Object source)
v
- new mapsource
- finally block the map is for (or node we are merging for if we are merging)public boolean leq(SuspendedExecutionStack<T> o)
Ordered
leq
in interface Ordered<SuspendedExecutionStack<T extends AbstractValue<T>>>
o
- object to compare to this
o
public SuspendedExecutionStack<T> upperBound(SuspendedExecutionStack<T> o)
Ordered
this
and o
upperBound
in interface Ordered<SuspendedExecutionStack<T extends AbstractValue<T>>>
o
- object to upper bound with thisthis
with o
public SuspendedExecutionStack<T> widen(SuspendedExecutionStack<T> o)
Ordered
this
and o
. A
widening operator is an upper bound where all ascending chains eventually
stabilize.widen
in interface Ordered<SuspendedExecutionStack<T extends AbstractValue<T>>>
o
- object to widen with this
this
and o
public boolean isEmpty()
public java.lang.String toString()
toString
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object