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.py47
1 files changed, 6 insertions, 41 deletions
diff --git a/src/front/token.py b/src/front/token.py
index 31159bf..e1bc8d8 100644
--- a/src/front/token.py
+++ b/src/front/token.py
@@ -1,5 +1,4 @@
# -*- coding: utf-8 -*-
-# date: 20 Mai 2009
class Tag(object):
__slots__ = ["name"]
@@ -13,10 +12,9 @@ class Tag(object):
def __repr__(self):
return "<Tag: %s>" % self
-# lexer tokens
+# token tags
Tag.NUMBER = Tag("NUMBER")
-Tag.TRUE = Tag("TRUE")
-Tag.FALSE = Tag("FALSE")
+Tag.BOOL = Tag("BOOL")
Tag.IDENT = Tag("IDENT")
Tag.WHILE = Tag("WHILE")
Tag.IF = Tag("IF")
@@ -33,47 +31,14 @@ Tag.ASSIGNMENT = Tag("ASSIGNMENT")
Tag.RETURN = Tag("RETURN")
Tag.OPERATOR = Tag("OPERATOR")
-# parser tokens
-Tag.BOOL = Tag("BOOL")
-Tag.JOIN = Tag("JOIN")
-Tag.EQUALITY = Tag("EQUALITY")
-Tag.RELATION = Tag("RELATION")
-Tag.EXPRESSION = Tag("EXPRESSION")
-Tag.TERM = Tag("TERM")
-Tag.UNARY = Tag("UNARY")
-Tag.FACTOR = Tag("FACTOR")
-Tag.IDENT = Tag("IDENT")
-Tag.EXPRESSION = Tag("EXPRESSION")
-Tag.PROGRAM = Tag("PROGRAM")
-Tag.FUNCTION = Tag("FUNCTION")
-Tag.STATEMENT = Tag("STATEMENT")
-Tag.STATEMENTS = Tag("STATEMENTS")
-Tag.IF = Tag("IF")
-Tag.WHILE = Tag("WHILE")
-Tag.RETURN = Tag("RETURN")
-Tag.ASSIGN = Tag("ASSIGN")
-Tag.FUNCTION = Tag("FUNCTION")
-
class Token(object):
- __slots__ = ["tag"]
-
- def __init__(self, tag):
- self.tag = tag
-
- def __repr__(self):
- return "<Token: %s>" % self.tag
-
-class LeafToken(Token):
- __slots__ = ["value"]
+ __slots__ = ["tag","value"]
def __init__(self, tag, value = None):
- Token.__init__(self, tag)
+ self.tag = tag
self.value = value
def __repr__(self):
if self.value:
- return "<LeafToken: %s, Value: %s>" % (self.tag, self.value.__str__())
- return "<LeafToken: %s>" % self.tag
-
-class NodeToken(Token):
- pass
+ return "<Token: %s, Value: %s>" % (self.tag, str(self.value))
+ return "<Token: %s>" % self.tag