from Hashtable import HashTable class SymbolTable: def __init__(self): self.symboltableConstants = HashTable() self.symboltableIdentifier = HashTable() def addIdentifier(self, identifier, value): self.symboltableIdentifier.insert(identifier, value) def getIdentifier(self, identifier): return self.symboltableIdentifier.get(identifier) def getPositionIdentifier(self, identifier): return self.symboltableIdentifier.getPosition(identifier) def addConstants(self, constants, value): self.symboltableConstants.insert(constants, value) def getConstants(self, constants): return self.symboltableConstants.get(constants) def getPositionConstants(self, constants): return self.symboltableConstants.getPosition(constants) def __str__(self): var = "Identifier Table\n" for i in range(self.symboltableIdentifier.capacity): element = self.symboltableIdentifier.elementList[i] while element is not None: var += str(element.key) + " " + str(element.value) + "\n" element = element.next var += "Constants Table\n" for i in range(self.symboltableConstants.capacity): element = self.symboltableConstants.elementList[i] while element is not None: var += str(element.key) + " " + str(element.value) + "\n" element = element.next return var