Files
2025-02-06 20:33:26 +02:00

40 lines
1.5 KiB
Python

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