コード例 #1
0
ファイル: testparser.py プロジェクト: charyorde/dao
 def test_kleene1(self):
   f, item, kleene = Var('f'), Var('item'), Var('kleene')
   fun = macro(((item,),  
                        letr([(f,macro(((), eval_(item), f()),
                                        ((), nullword)))], 
                             f())))
   eq_(eval(let([(kleene,fun)], set_text('aa'), kleene(char('a')))), True)
コード例 #2
0
ファイル: testparser.py プロジェクト: charyorde/dao
 def test_kleene2(self):
   f, pred, kleene = Var('f'), Var('pred'), Var('kleene')
   fun = macro(((pred,),  
                        letr([(f,macro( ((x,), pred(x), f(x)),
                                         ((x,), nullword)))], 
                             f(x))))
   eq_(eval(let([(kleene,fun)], set_text('ab'), kleene(char))), True)
コード例 #3
0
 def test_kleene1(self):
     f, item, kleene = Var('f'), Var('item'), Var('kleene')
     fun = macro(((item, ),
                  letr([(f, macro(((), eval_(item), f()), ((), nullword)))],
                       f())))
     eq_(eval(let([(kleene, fun)], set_text('aa'), kleene(char('a')))),
         True)
コード例 #4
0
 def test_kleene2(self):
     f, pred, kleene = Var('f'), Var('pred'), Var('kleene')
     fun = macro(((pred, ),
                  letr([(f, macro(((x, ), pred(x), f(x)),
                                  ((x, ), nullword)))], f(x))))
     eq_(eval(let([(kleene, fun)], set_text('ab'), kleene(char))), True)
コード例 #5
0
ファイル: testeval.py プロジェクト: charyorde/dao
 def test_closure4(self):
   eq_(eval(let([(f, macro([[x], x])),
                 (x, 1)],
            f(x+x))), 2) 
コード例 #6
0
ファイル: testeval.py プロジェクト: charyorde/dao
 def test4(self):
   eq_(eval(macro([[x], x])(prin(1))), None) 
コード例 #7
0
ファイル: testeval.py プロジェクト: charyorde/dao
 def test_closure2(self):
   eq_(eval(let([(f, macro([[x], prin(x)])),
                 (x, 1)],
            f(x+x))), None) 
コード例 #8
0
ファイル: testeval.py プロジェクト: charyorde/dao
 def test_or_p(self):
   eq_(eval(macro([[x, y], x],
                  [[x, y],y])(prin(1), prin(2))), None) 
コード例 #9
0
ファイル: testeval.py プロジェクト: charyorde/dao
 def test_eval(self):
   eq_(eval(macro([[x, y], eval_(x)],
                  [[x, y],eval_(y)])(prin(1), prin(2))), None) 
コード例 #10
0
ファイル: testeval.py プロジェクト: charyorde/dao
 def test1(self):
   eq_(eval(macro([[], prin(1)])()), None) 
コード例 #11
0
ファイル: testeval.py プロジェクト: charyorde/dao
 def testembedvar2(self):
   e, e2, f, g, h = Var('e'), Var('e2'), Var('f'), Var('g'), Var('h')
   eq_(eval(letr([(f, macro([[cons(1, e2)], g(e2)])),
                    (g, function([[e], h(e)])),
                    (h, function([[1], True]))],
               f(e), e)), cons(1, 1))