From 55ad98c9c392ad92c22d25f6d00978d8cec2959a Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Thu, 1 Dec 2011 17:27:11 +0000 Subject: Separate Function class --- Function.py | 30 ++++++++++++++++++++++++++++++ pp2cc.py | 12 +----------- 2 files changed, 31 insertions(+), 11 deletions(-) create mode 100644 Function.py diff --git a/Function.py b/Function.py new file mode 100644 index 0000000..6621fb8 --- /dev/null +++ b/Function.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python +"""Compiles C into assembly for the practicum processor (PP2) + +All rights reserved, you may not redistribute or use this program without prior +permission from Peter Wu or Xander Houtman. Use of this program is entirely +your own risk. In no circumstances can the authors of this program be held +responsible for any damage including, but not limited to, financial damage or +data loss. Modification of this program is not allowed without prior +permission. The generated output (assembly and messages) are not subject to +this license. +""" + +__author__ = "Peter Wu" +__copyright__ = "Copyright 2011, Peter Wu" +__credits__ = ["Peter Wu"] +__license__ = "Proprietary" +__version__ = "1.0" +__maintainer__ = "Peter Wu" +__email__ = "uwretep@gmail.com" + +class Function(object): + def __init__(self, node): + self.name = node.decl.name + self.node = node + def labelBegin(self): + """Returns a label pointing to the begin of a function""" + return "fn_" + self.name + def labelEnd(self): + """Returns a label pointing to the end of a function""" + return "fne_" + self.name diff --git a/pp2cc.py b/pp2cc.py index b0c9b18..15d451a 100755 --- a/pp2cc.py +++ b/pp2cc.py @@ -15,6 +15,7 @@ from pycparser import c_parser, c_ast from Asm import Asm from Registers import Registers from LinkedNode import LinkedNode +from Function import Function __author__ = "Peter Wu" __copyright__ = "Copyright 2011, Peter Wu" @@ -24,17 +25,6 @@ __version__ = "1.0" __maintainer__ = "Peter Wu" __email__ = "uwretep@gmail.com" -class Function(object): - def __init__(self, node): - self.name = node.decl.name - self.node = node - def labelBegin(self): - """Returns a label pointing to the begin of a function""" - return "fn_" + self.name - def labelEnd(self): - """Returns a label pointing to the end of a function""" - return "fne_" + self.name - class Logger(object): def __init__(self): pass -- cgit v1.2.1