Esempio n. 1
0
class Program:
    memsize = 20

    def __init__(self, stmtList):
        self.stmtList = stmtList
        self.nameTable = {}
        self.funcTable = {}
        self.listMemory = ListMemory(self.memsize)
        self.listMemory.pushctx(self.nameTable)

    def eval(self):
        self.stmtList.eval(self.nameTable, self.funcTable, self.listMemory)

    def dump(self):
        print "Dump of Symbol Table"
        print "Name Table"
        for k in self.nameTable:
            if isinstance(self.nameTable[k], ListElt):
                print "  %s -> %s " % (str(k),
                                       self.listMemory.walk(self.nameTable[k]))
            else:
                print "  %s -> %s " % (str(k), str(self.nameTable[k]))
        print "Function Table"
        for k in self.funcTable:
            print "  %s" % str(k)
        print ""

    def display(self, depth=0):
        #print "%sPROGRAM :" % (tabstop*depth)
        self.stmtList.display(self.nameTable, self.funcTable, self.ListMemory)
Esempio n. 2
0
class Program:
    memsize = 20
    def __init__(self, stmtList):
        self.stmtList = stmtList
        self.nameTable = {}
        self.funcTable = {}
        self.listMemory = ListMemory(self.memsize)
        self.listMemory.pushctx(self.nameTable)

    def eval(self):
        self.stmtList.eval(self.nameTable, self.funcTable, self.listMemory)

    def dump(self):
        print "Dump of Symbol Table"
        print "Name Table"
        for k in self.nameTable:
            if isinstance(self.nameTable[k], ListElt):
                print "  %s -> %s " % (str(k), self.listMemory.walk(self.nameTable[k]))
            else:
                print "  %s -> %s " % (str(k), str(self.nameTable[k]))
        print "Function Table"
        for k in self.funcTable:
            print "  %s" % str(k)
        print ""

    def display(self, depth=0):
        #print "%sPROGRAM :" % (tabstop*depth)
        self.stmtList.display(self.nameTable, self.funcTable, self.ListMemory)
Esempio n. 3
0
 def __init__(self, stmtList):
     self.stmtList = stmtList
     self.nameTable = {}
     self.funcTable = {}
     self.listMemory = ListMemory(self.memsize)
     self.listMemory.pushctx(self.nameTable)
Esempio n. 4
0
 def __init__(self, stmtList):
     self.stmtList = stmtList
     self.nameTable = {}
     self.funcTable = {}
     self.listMemory = ListMemory(self.memsize)
     self.listMemory.pushctx(self.nameTable)