summaryrefslogtreecommitdiffstats
path: root/code/simpleSableCCCalulator/sableCCCalculator/SymbolTable.java
diff options
context:
space:
mode:
Diffstat (limited to 'code/simpleSableCCCalulator/sableCCCalculator/SymbolTable.java')
-rw-r--r--code/simpleSableCCCalulator/sableCCCalculator/SymbolTable.java17
1 files changed, 16 insertions, 1 deletions
diff --git a/code/simpleSableCCCalulator/sableCCCalculator/SymbolTable.java b/code/simpleSableCCCalulator/sableCCCalculator/SymbolTable.java
index 435e48d..992e873 100644
--- a/code/simpleSableCCCalulator/sableCCCalculator/SymbolTable.java
+++ b/code/simpleSableCCCalulator/sableCCCalculator/SymbolTable.java
@@ -6,7 +6,8 @@ public class SymbolTable {
public interface SymbolTableIndex {}
- public abstract class Name implements SymbolTableIndex {
+ public abstract class Name implements SymbolTableIndex {
+ // can be used for functions too hopefully one day...
protected String name;
String getName() {
@@ -42,7 +43,21 @@ public class SymbolTable {
return index;
}
+ public void updateVariable(Type newItem, SymbolTableIndex index) {
+ theSymbolTable.replace(index, newItem);
+ }
+
public Type get(SymbolTableIndex index) {
return theSymbolTable.get(index);
}
+
+ public static void main(String[] args) {
+ SymbolTable symbolTable = new SymbolTable();
+ symbolTable.addConstant(new Int(3));
+ SymbolTableIndex i_var = symbolTable.addVariable(new Int(0), "i");
+ System.out.println(symbolTable.get(i_var));
+ symbolTable.updateVariable(symbolTable.get(i_var).add(new Int(1)), i_var);
+ System.out.println(symbolTable.get(i_var));
+ }
}
+ \ No newline at end of file