diff options
author | Benedikt Böhm <bb@xnull.de> | 2009-05-25 18:45:16 +0200 |
---|---|---|
committer | Benedikt Böhm <bb@xnull.de> | 2009-05-25 18:45:16 +0200 |
commit | f720e2d49c6292ccb3de8c9668c99a5b799038b2 (patch) | |
tree | 061af5030d7ec6d6becfb1c1a7fba16681233c11 /src/front/symbol.py | |
parent | a200c7f8c51ace73295974cc07e9e4a9db38d3e1 (diff) | |
download | swppy-f720e2d49c6292ccb3de8c9668c99a5b799038b2.tar.gz swppy-f720e2d49c6292ccb3de8c9668c99a5b799038b2.tar.xz swppy-f720e2d49c6292ccb3de8c9668c99a5b799038b2.zip |
add scope, and symbol class, obsoletes SymbolTable
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 |