diff options
Diffstat (limited to '')
-rw-r--r-- | src/front/symbol.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/front/symbol.py b/src/front/symbol.py new file mode 100644 index 0000000..879403f --- /dev/null +++ b/src/front/symbol.py @@ -0,0 +1,34 @@ +class SymbolClass(object): + def __init__(self, name): + self.name = name + + def __str__(self): + return self.name + + def __repr__(self): + return "<SymbolClass: %s>" % self + +SymbolClass.CONST = SymbolClass("CONST") +SymbolClass.VAR = SymbolClass("VAR") +SymbolClass.FUNC = SymbolClass("FUNC") + +class SymbolType(object): + def __init__(self, name): + self.name = name + + def __str__(self): + return self.name + + def __repr__(self): + return "<SymbolType: %s>" % self + +SymbolType.INT = SymbolType("INT") +SymbolType.BOOL = SymbolType("BOOL") + +class Symbol(object): + __slots__ = ['cls', 'type', 'value'] + + def __init__(self, value, type = SymbolType.INT, cls = SymbolClass.VAR): + self.value = value + self.type = type + self.cls = cls |