public class Stack
extends java.lang.Object
Value
instances.Modifier and Type | Field and Description |
---|---|
protected int |
actualMaxSize |
protected int |
currentSize |
protected Value[] |
values |
Constructor and Description |
---|
Stack(int maxSize)
Creates a new Stack with a given maximum size, accounting for the double space required by
Category 2 values.
|
Stack(Stack stack)
Creates a Stack that is a copy of the given Stack.
|
Modifier and Type | Method and Description |
---|---|
ReferenceValue |
apop()
Pops the top ReferenceValue from the stack.
|
void |
clear()
Clears the stack.
|
void |
copy(Stack other)
Copies the values of the given Stack into this Stack.
|
DoubleValue |
dpop()
Pops the top DoubleValue from the stack.
|
void |
dup_x1()
Duplicates the top Category 1 value, one Category 1 element down the stack.
|
void |
dup_x2()
Duplicates the top Category 1 value, two Category 1 elements (or one Category 2 element) down
the stack.
|
void |
dup()
Duplicates the top Category 1 value.
|
void |
dup2_x1()
Duplicates the top Category 2 value, one Category 1 element down the stack (or alternatively,
the equivalent Category 1 stack values).
|
void |
dup2_x2()
Duplicates the top Category 2 value, one Category 2 stack element down the stack (or
alternatively, the equivalent Category 1 stack values).
|
void |
dup2()
Duplicates the top Category 2 value (or alternatively, the equivalent Category 1 stack
elements).
|
boolean |
equals(java.lang.Object object) |
FloatValue |
fpop()
Pops the top FloatValue from the stack.
|
boolean |
generalize(Stack other)
Generalizes the values of this Stack with the values of the given Stack.
|
int |
getActualMaxSize()
Returns the actual maximum stack size that was required for all stack operations, accounting
for the double space required by Category 2 values.
|
Value |
getBottom(int index)
Gets the specified Value from the stack, without disturbing it.
|
Value |
getTop(int index)
Gets the specified Value from the stack, without disturbing it.
|
int |
hashCode() |
IntegerValue |
ipop()
Pops the top IntegerValue from the stack.
|
LongValue |
lpop()
Pops the top LongValue from the stack.
|
InstructionOffsetValue |
opop()
Pops the top InstructionOffsetValue from the stack.
|
Value |
pop()
Pops the top Value from the stack.
|
void |
pop1()
Pops the top category 1 value from the stack.
|
void |
pop2()
Pops the top category 2 value from the stack (or alternatively, two Category 1 stack elements).
|
void |
push(Value value)
Pushes the given Value onto the stack.
|
void |
removeTop(int index)
Removes the specified Value from the stack.
|
void |
replaceReferences(Value toReplace,
Value replacement)
Replaces all the references to with references to .
|
void |
reset(int maxSize)
Resets this Stack, so that it can be reused.
|
void |
setBottom(int index,
Value value)
Sets the specified Value on the stack, without disturbing it.
|
void |
setTop(int index,
Value value)
Sets the specified Value on the stack, without disturbing it.
|
int |
size()
Returns the number of elements currently on the stack, accounting for the double space required
by Category 2 values.
|
void |
swap()
Swaps the top two Category 1 values.
|
java.lang.String |
toString() |
protected Value[] values
protected int currentSize
protected int actualMaxSize
public Stack(int maxSize)
public Stack(Stack stack)
public int getActualMaxSize()
public void reset(int maxSize)
public void copy(Stack other)
public boolean generalize(Stack other)
public void clear()
public int size()
public Value getBottom(int index)
index
- the index of the stack element, counting from the bottom of the stack.public void setBottom(int index, Value value)
index
- the index of the stack element, counting from the bottom of the stack.value
- the value to set.public Value getTop(int index)
index
- the index of the stack element, counting from the top of the stack.public void setTop(int index, Value value)
index
- the index of the stack element, counting from the top of the stack.value
- the value to set.public void removeTop(int index)
index
- the index of the stack element, counting from the top of the stack.public void push(Value value)
public Value pop()
public IntegerValue ipop()
public LongValue lpop()
public FloatValue fpop()
public DoubleValue dpop()
public ReferenceValue apop()
public InstructionOffsetValue opop()
public void pop1()
public void pop2()
public void dup()
public void dup_x1()
public void dup_x2()
public void dup2()
public void dup2_x1()
public void dup2_x2()
public void swap()
public void replaceReferences(Value toReplace, Value replacement)
public boolean equals(java.lang.Object object)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object