Example #1
0
    def test_left2(self):

        #basicConfig(level=DEBUG)

        seq = Delayed()
        letter = Any()
        seq += letter | (seq & letter)

        seq.config.clear().left_memoize().trace_stack(True)
        p = seq.get_match_string()
        results = list(p('abcdef'))
        assert len(results) == 6, len(results)
        assert results[0][0] == ['a'], results[0][0]
        assert results[1][0] == ['a', 'b'], results[1][0]
Example #2
0
 def test_left2(self):
     
     #basicConfig(level=DEBUG)
     
     seq    = Delayed()
     letter = Any()
     seq   += letter | (seq  & letter)
     
     seq.config.clear().left_memoize().trace(True)
     p = seq.get_match_string()
     results = list(p('abcdef'))
     assert len(results) == 6, len(results)
     assert results[0][0] == ['a'], results[0][0]
     assert results[1][0] == ['a', 'b'], results[1][0]
Example #3
0
 def test_left1b(self):
     
     #basicConfig(level=DEBUG)
     
     seq    = Delayed()
     letter = Any()
     seq   += Optional(seq) & letter
     
     seq.config.clear().left_memoize().trace_stack(True)
     p = seq.get_match_string()
     results = list(p('ab'))
     assert len(results) == 2, len(results)
     assert results[0][0] == ['a', 'b'], results[0][0]
     assert results[1][0] == ['a'], results[1][0]
Example #4
0
 def test_right(self):
     
     #basicConfig(level=DEBUG)
     
     seq    = Delayed()
     letter = Any()
     seq   += letter & Optional(seq)
     
     #print(seq)
     seq.config.clear().right_memoize().trace(True)
     p = seq.get_match_string()
     #print(p.matcher)
     
     results = list(p('ab'))
     assert len(results) == 2, len(results)
     assert results[0][0] == ['a', 'b'], results[0][0]
     assert results[1][0] == ['a'], results[1][0]
Example #5
0
    def test_right(self):

        #basicConfig(level=DEBUG)

        seq = Delayed()
        letter = Any()
        seq += letter & Optional(seq)

        #print(seq.tree())
        seq.config.clear().right_memoize().trace_stack(True)
        #seq.config.clear().right_memoize()
        p = seq.get_match_string()
        #print(p.matcher.tree())

        results = list(p('ab'))
        assert len(results) == 2, len(results)
        assert results[0][0] == ['a', 'b'], results[0][0]
        assert results[1][0] == ['a'], results[1][0]