Anul 3 Semestrul 1
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
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
|
||||
Reference in New Issue
Block a user