summaryrefslogtreecommitdiffstats
path: root/src/front/token.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/front/token.py')
-rw-r--r--src/front/token.py23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/front/token.py b/src/front/token.py
index 4cf646a..31159bf 100644
--- a/src/front/token.py
+++ b/src/front/token.py
@@ -1,7 +1,9 @@
# -*- coding: utf-8 -*-
# date: 20 Mai 2009
-class Tag:
+class Tag(object):
+ __slots__ = ["name"]
+
def __init__(self, name):
self.name = name
@@ -52,23 +54,26 @@ Tag.RETURN = Tag("RETURN")
Tag.ASSIGN = Tag("ASSIGN")
Tag.FUNCTION = Tag("FUNCTION")
-class Token:
- tag = None
+class Token(object):
+ __slots__ = ["tag"]
def __init__(self, tag):
self.tag = tag
- return
def __repr__(self):
return "<Token: %s>" % self.tag
-class ValueToken(Token):
- value = None
+class LeafToken(Token):
+ __slots__ = ["value"]
- def __init__(self, tag, value):
+ def __init__(self, tag, value = None):
Token.__init__(self, tag)
self.value = value
- return
def __repr__(self):
- return "<Token: %s, Value: %s>" % (self.tag, self.value.__str__())
+ if self.value:
+ return "<LeafToken: %s, Value: %s>" % (self.tag, self.value.__str__())
+ return "<LeafToken: %s>" % self.tag
+
+class NodeToken(Token):
+ pass