Beispiel #1
0
def interp(ast,d):
    global debug
    debug = d
    assert isinstance(ast,A.AstClosure) # a program always forms a closure
    cet = EtClosure(None,0,ast,FakeEt(),None,FakeClosureRun(),T.mvtClosureT)
    cet.up.setChild(cet)
    cr = ClosureRun(FakeEt(),cet)
    ds,pt,rt = cr.changePR(T.mvtUnit,T.mvtAny)
    print(T.ppT(pt,()))
    print(T.ppT(rt,()))
    return cr
Beispiel #2
0
 def ppr(self):
     rslt = "" #str(self.ast.pp())+(' R :' if self.running else ' N :')
     for k,v in self.rcvd.items():
         rslt = rslt + ' '+str(k)+':'+T.ppT(v)
     for i,m in self.iterKids():
         rslt = rslt+str(i)+': '+m.ppr()
     return rslt
Beispiel #3
0
 def pp(self):
     return '{!'+('^^'.join(k+':'+T.ppT(v.mtval,()) for k,v in self.myIds.items()))+'!}'
Beispiel #4
0
 def pp(self):
     if self.shadowing!=None: return super().pp()
     return '%'+self.procEt().pp()+'(('+self.paramEt().pp()+'))->'+T.ppT(self.curType,())
Beispiel #5
0
 def pp(self):
     if self.shadowing!=None: return super().pp()
     return super().pp()+'{'+'~~'.join((k+':'+T.ppT(v,())) \
             for k,v in self.extIds.items())+'}'
Beispiel #6
0
 def pp(self):
     if self.shadowing!=None:
         return str(self.shadowLevel)+'|'+self.shadowing.pp()+'|'
     return ('<'+T.ppT(self.curType,())+'>')