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
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
def pp(self): return '{!'+('^^'.join(k+':'+T.ppT(v.mtval,()) for k,v in self.myIds.items()))+'!}'
def pp(self): if self.shadowing!=None: return super().pp() return '%'+self.procEt().pp()+'(('+self.paramEt().pp()+'))->'+T.ppT(self.curType,())
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())+'}'
def pp(self): if self.shadowing!=None: return str(self.shadowLevel)+'|'+self.shadowing.pp()+'|' return ('<'+T.ppT(self.curType,())+'>')