Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 5
0
 def test_next(self):
   eq_(eval(begin(set_text('ab'), next_char(), next_char())), 'a')
Ejemplo n.º 6
0
 def test_step(self):
   eq_(eval(begin(set_text('ab'), step(), step())), 'b')
   eq_(eval(begin(set_text('ab'), step(), left())), 'b')
Ejemplo n.º 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) 
Ejemplo n.º 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)
Ejemplo n.º 9
0
 def test_next(self):
     eq_(eval(begin(set_text('ab'), next_char(), next_char())), 'a')
Ejemplo n.º 10
0
 def test_subtext(self):
   eq_(eval(begin(set_text('abcde'), subtext(0,3))), 'abc')
Ejemplo n.º 11
0
 def test_goto(self):
     eq_(eval(begin(set_text('abcde'), goto(1))), 'bcde')
Ejemplo n.º 12
0
 def test_skip(self):
     eq_(eval(begin(set_text('abcde'), goto(2), next_char())), 'c')
Ejemplo n.º 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')
Ejemplo n.º 14
0
 def test_subtext(self):
     eq_(eval(begin(set_text('abcde'), subtext(0, 3))), 'abc')
Ejemplo n.º 15
0
 def test_position(self):
     eq_(eval(begin(set_text('ab'), position())), 0)
Ejemplo n.º 16
0
 def test_left(self):
     eq_(eval(begin(set_text('ab'), left())), 'ab')
Ejemplo n.º 17
0
 def test_left(self):
   eq_(eval(begin(set_text('ab'), left())), 'ab')
Ejemplo n.º 18
0
 def test_position(self):
   eq_(eval(begin(set_text('ab'), position())), 0)
Ejemplo n.º 19
0
 def test_skip(self):
   eq_(eval(begin(set_text('abcde'), goto(2), next_char())), 'c')
Ejemplo n.º 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')
Ejemplo n.º 21
0
 def test_step(self):
     eq_(eval(begin(set_text('ab'), step(), step())), 'b')
     eq_(eval(begin(set_text('ab'), step(), left())), 'b')
Ejemplo n.º 22
0
 def test_goto(self):
   eq_(eval(begin(set_text('abcde'), goto(1))), 'bcde')
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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)