Exemple #1
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)
Exemple #2
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)
Exemple #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)
Exemple #4
0
def make_expression(text):
  code = begin(
    sexpression_defines, 
    classic_defines, 
    set_text(text),
    from_(classic, program)(exp), 
    eoi,
    eval_(pycall(cons2tuple, exp)))
  return to_sexpression(code)
Exemple #5
0
 def test_next(self):
   eq_(eval(begin(set_text('ab'), next_char(), next_char())), 'a')
Exemple #6
0
 def test_step(self):
   eq_(eval(begin(set_text('ab'), step(), step())), 'b')
   eq_(eval(begin(set_text('ab'), step(), left())), 'b')
Exemple #7
0
 def test_repeat2(self):
   return
   # the code below loops for ever.
   eq_(eval(and_p(set_text('123'), repeat, char(x), unify(x, '4'))), True) 
Exemple #8
0
 def test_repeat2(self):
     return
     # the code below loops for ever.
     eq_(eval(and_p(set_text('123'), repeat, char(x), unify(x, '4'))), True)
Exemple #9
0
 def test_next(self):
     eq_(eval(begin(set_text('ab'), next_char(), next_char())), 'a')
Exemple #10
0
 def test_subtext(self):
   eq_(eval(begin(set_text('abcde'), subtext(0,3))), 'abc')
Exemple #11
0
 def test_goto(self):
     eq_(eval(begin(set_text('abcde'), goto(1))), 'bcde')
Exemple #12
0
 def test_skip(self):
     eq_(eval(begin(set_text('abcde'), goto(2), next_char())), 'c')
Exemple #13
0
 def test_skip(self):
     eq_(eval(begin(set_text('abcde'), skip(3), next())), 'd')
     eq_(eval(begin(set_text('abcde'), skip(4), skip(-2), next())), 'c')
Exemple #14
0
 def test_subtext(self):
     eq_(eval(begin(set_text('abcde'), subtext(0, 3))), 'abc')
Exemple #15
0
 def test_position(self):
     eq_(eval(begin(set_text('ab'), position())), 0)
Exemple #16
0
 def test_left(self):
     eq_(eval(begin(set_text('ab'), left())), 'ab')
Exemple #17
0
 def test_left(self):
   eq_(eval(begin(set_text('ab'), left())), 'ab')
Exemple #18
0
 def test_position(self):
   eq_(eval(begin(set_text('ab'), position())), 0)
Exemple #19
0
 def test_skip(self):
   eq_(eval(begin(set_text('abcde'), goto(2), next_char())), 'c')
Exemple #20
0
 def test_skip(self):
   eq_(eval(begin(set_text('abcde'), skip(3), next())), 'd')
   eq_(eval(begin(set_text('abcde'), skip(4), skip(-2), next())), 'c')
Exemple #21
0
 def test_step(self):
     eq_(eval(begin(set_text('ab'), step(), step())), 'b')
     eq_(eval(begin(set_text('ab'), step(), left())), 'b')
Exemple #22
0
 def test_goto(self):
   eq_(eval(begin(set_text('abcde'), goto(1))), 'bcde')
Exemple #23
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)
Exemple #24
0
 def test_repeat(self):
   return
   # the code below loops for ever, after modifie the behaviour of solver.parse_state and terminals.
   eq_(eval(and_p(set_text('123'), repeat, char(x), unify(x, '3'))), True)
Exemple #25
0
 def test_repeat(self):
     return
     # the code below loops for ever, after modifie the behaviour of solver.parse_state and terminals.
     eq_(eval(and_p(set_text('123'), repeat, char(x), unify(x, '3'))), True)