From 41a2c1fdaa07b3b51bf6073bf6fbb0156b085fa5 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Tue, 23 Jun 2009 03:21:32 +0200 Subject: added parser - commited parser (Michael Popov) - changed encoding of parser.py to utf8 --- src/front/ast.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'src/front/ast.py') 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 "" % 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 "" % (self.name, self.lineno) + return "" % (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 "" %(self.name, self.lineno) + +class Constant(Expression): + def __init__(self, value, lineno = -1): + self.value = value + self.lineno = lineno + + def __repr__(self): + return "" %(self.value, self.lineno) -- cgit v1.2.3