diff options
Diffstat (limited to 'code/simpleSableCCCalulator/sableCCCalculator/ProgramStack.java')
-rw-r--r-- | code/simpleSableCCCalulator/sableCCCalculator/ProgramStack.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/code/simpleSableCCCalulator/sableCCCalculator/ProgramStack.java b/code/simpleSableCCCalulator/sableCCCalculator/ProgramStack.java new file mode 100644 index 0000000..b49c0d1 --- /dev/null +++ b/code/simpleSableCCCalulator/sableCCCalculator/ProgramStack.java @@ -0,0 +1,31 @@ +package sableCCCalculator; +import sableCCCalculator.SymbolTable.SymbolTableIndex; +import sableCCCalculator.types.*; +import java.util.Stack; + +public class ProgramStack extends Stack<SymbolTableIndex> { + + public String toString(SymbolTable table) { + String out = "Stack is now: ["; + for (int i = 0; i < this.size(); i++) { + // String theStr = this.elementAt(i).toString(); + // out += String.format("%s, ", theStr.substring(0, theStr.length() - 1)); + out += String.format("%s, ", table.get(this.elementAt(i))); + } + return out.substring(0, out.length() - 2) + "]"; + } + + public static void main(String[] args) { + ProgramStack myStack = new ProgramStack(); + SymbolTable table = new SymbolTable(); + myStack.add(table.addConstant(new Int(2))); + myStack.add(table.addConstant(new Int(4))); + myStack.add(table.addConstant(new Int(6))); + myStack.add(table.addConstant(new Int(0))); + myStack.add(table.addConstant(new Int(1))); + myStack.add(table.addConstant(new Decimal(24601.10642))); + + System.out.println(table.get(myStack.pop())); + System.out.println(myStack.toString(table)); + } +} |