| @@ -94,6 +94,26 @@ class TestParsers(unittest.TestCase): | |||||
| r = g.parse('a') | r = g.parse('a') | ||||
| self.assertEqual( r.children[0].meta.line, 1 ) | self.assertEqual( r.children[0].meta.line, 1 ) | ||||
| def test_propagate_positions2(self): | |||||
| g = Lark("""start: a | |||||
| a: b | |||||
| ?b: "(" t ")" | |||||
| !t: "t" | |||||
| """, propagate_positions=True) | |||||
| start = g.parse("(t)") | |||||
| a ,= start.children | |||||
| t ,= a.children | |||||
| assert t.children[0] == "t" | |||||
| assert t.meta.column == 2 | |||||
| assert t.meta.end_column == 3 | |||||
| assert start.column == a.column == 1 | |||||
| assert start.end_column == a.end_column == 4 | |||||
| def test_expand1(self): | def test_expand1(self): | ||||
| g = Lark("""start: a | g = Lark("""start: a | ||||