コード例 #1
0
ファイル: test_varsubst.py プロジェクト: ciphergoth/pylambdac
 def check_all(self):
     for free, slist in examples:
         freemap = {k: parse.parse_expr(v) for k, v in free.items()}
         parsed = [parse.parse_expr(e) for e in slist]
         state = parsed[0]
         #print(f"Started with: {state}")
         state = state.reduce_once(freemap)
         for next in parsed[1:]:
             #print(f"Expected: {next}")
             #print(f"Got: {state}")
             assert next.equiv(state)
             state = state.reduce_once(freemap)
         assert state is None
コード例 #2
0
ファイル: test_reduce.py プロジェクト: ciphergoth/pylambdac
 def answer(self, example):
     new = []
     state = parse.parse_expr(example)
     while state is not None:
         new.append(str(state))
         state = state.reduce_once({})
     return new
コード例 #3
0
 def answer(self, example):
     symbols = {"Y": lterm.MagicY("Y")}
     new = []
     expr = parse.parse_expr(example)
     while True:
         new.append([str(expr), expr.prefixcode(debruijn=True)])
         expr = expr.reduce_once(symbols)
         if expr is None:
             break
     return new
コード例 #4
0
ファイル: test_freevar.py プロジェクト: ciphergoth/pylambdac
 def check_all(self):
     for expr, res in examples:
         expr = parse.parse_expr(expr)
         assert res == expr.variables(True)
コード例 #5
0
 def answer(self, s):
     return parse.parse_expr(s).prefixcode(debruijn=False)
コード例 #6
0
ファイル: test_size.py プロジェクト: ciphergoth/pylambdac
 def answer(self, example):
     return parse.parse_expr(example).size()