@@ -74,7 +74,7 @@ def test_typed_rules(self) -> None:
7474"Rule('term', 'int', Rhs([Alt([NamedItem(None, NameLeaf('NUMBER'))])]))"
7575 )
767677-deftest_repeat_with_separator_rules(self) ->None:
77+deftest_gather(self) ->None:
7878grammar="""
7979 start: ','.thing+ NEWLINE
8080 thing: NUMBER
@@ -85,6 +85,20 @@ def test_repeat_with_separator_rules(self) -> None:
8585"Rule('start', None, Rhs([Alt([NamedItem(None, Gather(StringLeaf(\"','\"), NameLeaf('thing'"
8686 ))
8787self.assertEqual(str(rules["thing"]), "thing: NUMBER")
88+parser_class=make_parser(grammar)
89+node=parse_string("42\n", parser_class)
90+assertnode== [
91+ [[TokenInfo(NUMBER, string="42", start=(1, 0), end=(1, 2), line="42\n")]],
92+TokenInfo(NEWLINE, string="\n", start=(1, 2), end=(1, 3), line="42\n"),
93+ ]
94+node=parse_string("1, 2\n", parser_class)
95+assertnode== [
96+ [
97+ [TokenInfo(NUMBER, string="1", start=(1, 0), end=(1, 1), line="1, 2\n")],
98+ [TokenInfo(NUMBER, string="2", start=(1, 3), end=(1, 4), line="1, 2\n")],
99+ ],
100+TokenInfo(NEWLINE, string="\n", start=(1, 4), end=(1, 5), line="1, 2\n"),
101+ ]
8810289103deftest_expr_grammar(self) ->None:
90104grammar="""