示例#1
0
 def parse_non_empty(self, start, level):
     grammars = Cursor(self.grammars)
     result = False
     end = start
     while grammars.not_empty() and not result:
         (result, end) = grammars.head().parse(start, level + 1)
         if not result:
             grammars = grammars.tail()
     return (result, end)
示例#2
0
    def test_traversal(self):
        items = []

        cursor = Cursor([1, 2, 3])
        items.append(cursor.head())

        tail1 = cursor.tail()
        items.append(tail1.head())

        tail2 = tail1.tail()
        items.append(tail2.head())

        tail3 = tail2.tail()

        self.assertEqual(items, [1, 2, 3])
        self.assertTrue(tail3.empty())