summaryrefslogtreecommitdiffstats
path: root/src/front/ast.py
diff options
context:
space:
mode:
authorBenedikt Böhm <bb@xnull.de>2009-06-29 08:57:13 +0200
committerBenedikt Böhm <bb@xnull.de>2009-06-29 08:57:13 +0200
commit17fab2bc59945045a8df39ece8c845d1565245da (patch)
tree96c679139d26a9140c43dade3a524008adab722b /src/front/ast.py
parent66ae0bea2be78152e8f85f5334b7978a3e621c61 (diff)
parenta4f2a248273064ec464e7d376f8f5778ac808bd6 (diff)
downloadswppy-17fab2bc59945045a8df39ece8c845d1565245da.tar.gz
swppy-17fab2bc59945045a8df39ece8c845d1565245da.tar.xz
swppy-17fab2bc59945045a8df39ece8c845d1565245da.zip
Merge branch 'master' of git@git.animux.de:swppy
Conflicts: src/front/__init__.py
Diffstat (limited to '')
-rw-r--r--src/front/ast.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/front/ast.py b/src/front/ast.py
index 5b4def7..751d38d 100644
--- a/src/front/ast.py
+++ b/src/front/ast.py
@@ -14,6 +14,9 @@ class Program(Node):
return 0
+ def __repr__(self):
+ return "<Program: %s>" % self.functions
+
class Function(Node):
def __init__(self, name, params, statements, lineno = -1):
self.name = name
@@ -22,7 +25,7 @@ class Function(Node):
self.lineno = lineno
def __repr__(self):
- return "<Function: %s at line %d>" % (self.name, self.lineno)
+ return "<Function: %s %s %s>" % (self.name, str(self.params), str(self.statements))
def eval(self,tacarray):
return tacarray.append(te)
@@ -185,3 +188,19 @@ class BinaryExpression(Expression):
te = TacElem(op,left,right)
return tacarray.append(te)
+
+class Variable(Expression):
+ def __init__(self, name, lineno = -1):
+ self.name = name
+ self.lineno = lineno
+
+ def __repr__(self):
+ return "<Variable: %s at line %d>" %(self.name, self.lineno)
+
+class Constant(Expression):
+ def __init__(self, value, lineno = -1):
+ self.value = value
+ self.lineno = lineno
+
+ def __repr__(self):
+ return "<Variable: %d at line %d>" %(self.value, self.lineno)