blob: a868d77159d0980d8436918a9a8cef07c533fb58 (
plain) (
tree)
|
|
class SymbolTable:
def __init__(self):
self.symbols = {}
return
def put(self, token, id=None):
if id and not id.isdigit():
raise Exception("Only digits as id possible. '%s' is not a number" % id)
if id == None:
if len(self.symbols) <= 0:
id = 0
else:
id = max(self.symbols.values()) + 1
self.symbols[token] = id
return id
def get(self, token):
if token in self.symbols:
return self.symbols[token]
return None
def getOrPut(self, token):
if self.get(token):
return self.get(token)
return self.put(token)
|