diff options
author | Benedikt Böhm <bb@xnull.de> | 2009-06-29 08:57:13 +0200 |
---|---|---|
committer | Benedikt Böhm <bb@xnull.de> | 2009-06-29 08:57:13 +0200 |
commit | 17fab2bc59945045a8df39ece8c845d1565245da (patch) | |
tree | 96c679139d26a9140c43dade3a524008adab722b /src/front/ast.py | |
parent | 66ae0bea2be78152e8f85f5334b7978a3e621c61 (diff) | |
parent | a4f2a248273064ec464e7d376f8f5778ac808bd6 (diff) | |
download | swppy-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 'src/front/ast.py')
-rw-r--r-- | src/front/ast.py | 21 |
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) |