예제 #1
0
 def var(self, ast):
     if isinstance(ast.idn, list):
         bind = pi.Bind(ast.idn[0], pi.Ref(ast.e[0]))
         for i in range(1, len(ast.idn)):
             bind = pi.DSeq(bind, pi.Bind(ast.idn[i], pi.Ref(ast.e[i])))
         return bind
     else:
         return pi.Bind(ast.idn, pi.Ref(ast.e))
예제 #2
0
 def decSeq(self, ast):
     if ast:
         if isinstance(ast.d, list):
             bind = ast.d[0]
             for e in ast.d[1:]:
                 bind = pi.DSeq(bind, e)
             return bind
         else:
             return ast.d