|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.parboiled.support.DefaultValueStack<V>
V - the type of the value objectspublic class DefaultValueStack<V>
An implementation of a stack of value objects providing an efficient snapshot capability and a number of convenience
methods. The current state of the stack can be saved and restored in small constant time with the methods
takeSnapshot() and restoreSnapshot(Object) ()}. The implementation also serves as an Iterable
over the current stack values (the values are being provided with the last value (on top of the stack) first).
| Nested Class Summary | |
|---|---|
protected static class |
DefaultValueStack.Element
|
| Field Summary | |
|---|---|
protected DefaultValueStack.Element |
head
|
protected V |
tempValue
|
| Constructor Summary | |
|---|---|
DefaultValueStack()
Initializes an empty value stack. |
|
DefaultValueStack(java.lang.Iterable<V> values)
Initializes a value stack containing the given values with the last value being at the top of the stack. |
|
| Method Summary | |
|---|---|
void |
clear()
Clears all values. |
void |
dup()
Duplicates the top value. |
boolean |
isEmpty()
Determines whether the stack is empty. |
java.util.Iterator<V> |
iterator()
|
V |
peek()
Returns the value at the top of the stack without removing it. |
V |
peek(int down)
Returns the value the given number of elements below the top of the stack without removing it. |
void |
poke(int down,
V value)
Replaces the element the given number of elements below the current top of the stack. |
void |
poke(V value)
Replaces the current top value with the given value. |
V |
pop()
Removes the value at the top of the stack and returns it. |
V |
pop(int down)
Removes the value the given number of elements below the top of the stack. |
void |
push(int down,
V value)
Inserts the given value a given number of elements below the current top of the stack. |
void |
push(V value)
Pushes the given value onto the stack. |
void |
pushAll(java.lang.Iterable<V> values)
Pushes all given elements onto the stack (in the order as given). |
void |
pushAll(V firstValue,
V... moreValues)
Pushes all given elements onto the stack (in the order as given). |
void |
restoreSnapshot(java.lang.Object snapshot)
Restores the stack state as previously returned by ValueStack.takeSnapshot(). |
int |
size()
Returns the number of elements currently on the stack. |
void |
swap()
Swaps the top two stack values. |
void |
swap3()
Reverses the order of the top 3 stack values. |
void |
swap4()
Reverses the order of the top 4 stack values. |
void |
swap5()
Reverses the order of the top 5 stack values. |
void |
swap6()
Reverses the order of the top 5 stack values. |
java.lang.Object |
takeSnapshot()
Returns an object representing the current state of the stack. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected DefaultValueStack.Element head
protected V tempValue
| Constructor Detail |
|---|
public DefaultValueStack()
public DefaultValueStack(java.lang.Iterable<V> values)
values - the initial stack values| Method Detail |
|---|
public boolean isEmpty()
ValueStack
isEmpty in interface ValueStack<V>public int size()
ValueStack
size in interface ValueStack<V>public void clear()
ValueStack
clear in interface ValueStack<V>public java.lang.Object takeSnapshot()
ValueStack
takeSnapshot in interface ValueStack<V>public void restoreSnapshot(java.lang.Object snapshot)
ValueStackValueStack.takeSnapshot().
This cost of running this operation is negligible and independent from the size of the stack.
restoreSnapshot in interface ValueStack<V>snapshot - a snapshot object previously returned by ValueStack.takeSnapshot()public void push(V value)
ValueStack
push in interface ValueStack<V>value - the value
public void push(int down,
V value)
ValueStack
push in interface ValueStack<V>down - the number of elements to skip before inserting the value (0 being equivalent to push(value))value - the value
public void pushAll(V firstValue,
V... moreValues)
ValueStack
pushAll in interface ValueStack<V>firstValue - the first valuemoreValues - the other valuespublic void pushAll(java.lang.Iterable<V> values)
ValueStack
pushAll in interface ValueStack<V>values - the valuespublic V pop()
ValueStack
pop in interface ValueStack<V>public V pop(int down)
ValueStack
pop in interface ValueStack<V>down - the number of elements to skip before removing the value (0 being equivalent to pop())
public V peek()
ValueStack
peek in interface ValueStack<V>public V peek(int down)
ValueStack
peek in interface ValueStack<V>down - the number of elements to skip (0 being equivalent to peek())
public void poke(V value)
ValueStack
poke in interface ValueStack<V>value - the value
public void poke(int down,
V value)
ValueStack
poke in interface ValueStack<V>down - the number of elements to skip before replacing the value (0 being equivalent to poke(value))value - the value to replace withpublic void dup()
ValueStack
dup in interface ValueStack<V>public void swap()
ValueStack
swap in interface ValueStack<V>public void swap3()
ValueStack
swap3 in interface ValueStack<V>public void swap4()
ValueStack
swap4 in interface ValueStack<V>public void swap5()
ValueStack
swap5 in interface ValueStack<V>public void swap6()
ValueStack
swap6 in interface ValueStack<V>public java.util.Iterator<V> iterator()
iterator in interface java.lang.Iterable<V>
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||