diff options
author | Jana Rekittke <jana@rekittke.name> | 2009-07-04 10:47:59 +0200 |
---|---|---|
committer | Benedikt Böhm <bb@xnull.de> | 2009-07-04 10:47:59 +0200 |
commit | 11545b9e323084482673b8732b89711ae7e19928 (patch) | |
tree | c0f0ff9ded0e3fd96e91633ddc3762387356ddc6 /src/back/tac.py | |
parent | 8d432ae653581815d16febf2af776a1a057660f7 (diff) | |
download | swppy-11545b9e323084482673b8732b89711ae7e19928.tar.gz swppy-11545b9e323084482673b8732b89711ae7e19928.tar.xz swppy-11545b9e323084482673b8732b89711ae7e19928.zip |
implement the code generator
Diffstat (limited to 'src/back/tac.py')
-rw-r--r-- | src/back/tac.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/back/tac.py b/src/back/tac.py index bff5944..20b14d9 100644 --- a/src/back/tac.py +++ b/src/back/tac.py @@ -37,7 +37,8 @@ Op.GT = Op("GT") # x = !Z && !N Op.BEZ = Op("BEZ") # if x == 0 goto y Op.JMP = Op("JMP") # goto x -Op.PARAM = Op("PARAM") # param x +Op.PUSH = Op("PUSH") # push x +Op.POP = Op("POP") # pop x Op.CALL = Op("CALL") # call x return in y Op.RETURN = Op("RETURN") # return x @@ -59,9 +60,13 @@ class Label(object): def __repr__(self): return "<Label, name: %s>" % self.name -class FunctionLabel(Label): +class FunctionPrologue(Label): def __repr__(self): - return "<FunctionLabel, name: %s>" % self.name + return "<FunctionPrologue, name: %s>" % self.name + +class FunctionEpilogue(Label): + def __repr__(self): + return "<FunctionEpilogue, name: %s>" % self.name class TACList(object): __shared_state = {} |