diff options
Diffstat (limited to 'code/simpleSableCCCalulator/sableCCCalculator/SymbolTable.java')
-rw-r--r-- | code/simpleSableCCCalulator/sableCCCalculator/SymbolTable.java | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/code/simpleSableCCCalulator/sableCCCalculator/SymbolTable.java b/code/simpleSableCCCalulator/sableCCCalculator/SymbolTable.java deleted file mode 100644 index 992e873..0000000 --- a/code/simpleSableCCCalulator/sableCCCalculator/SymbolTable.java +++ /dev/null @@ -1,63 +0,0 @@ -package sableCCCalculator; -import java.util.HashMap; -import sableCCCalculator.types.*; - -public class SymbolTable { - - public interface SymbolTableIndex {} - - public abstract class Name implements SymbolTableIndex { - // can be used for functions too hopefully one day... - protected String name; - - String getName() { - return this.name; - } - } - - public class Constant implements SymbolTableIndex { - int index; - - public Constant(int index) { - this.index = index; - } - } - - public class Variable extends Name { - public Variable(String name) { - this.name = name; - } - } - - private HashMap<SymbolTableIndex, Type> theSymbolTable = new HashMap<>(); - - public SymbolTableIndex addConstant(Type item) { - SymbolTableIndex index = new Constant(item.hashCode()); - theSymbolTable.put(index, item); - return index; - } - - public SymbolTableIndex addVariable(Type item, String name) { - SymbolTableIndex index = new Variable(name); - theSymbolTable.put(index, item); - 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 |