Procházet zdrojové kódy

BUGFIX: Internally repetitive rules are now handled silently (Issue #60)

tags/gm/2021-09-23T00Z/github.com--lark-parser-lark/0.5.3
Erez Shinan před 6 roky
rodič
revize
5fd331be54
2 změnil soubory, kde provedl 12 přidání a 1 odebrání
  1. +1
    -1
      lark/load_grammar.py
  2. +11
    -0
      tests/test_parser.py

+ 1
- 1
lark/load_grammar.py Zobrazit soubor

@@ -196,7 +196,7 @@ class SimplifyRule_Visitor(Visitor):
tree.data = 'expansions'
tree.children = [self.visit(T('expansion', [option if i==j else other
for j, other in enumerate(tree.children)]))
for option in child.children]
for option in set(child.children)]
break
else:
break


+ 11
- 0
tests/test_parser.py Zobrazit soubor

@@ -796,6 +796,16 @@ def _make_parser_test(LEXER, PARSER):
self.assertEqual(tree.children, ['a', 'A'])


def test_twice_empty(self):
g = """!start: [["A"]]
"""
l = _Lark(g)
tree = l.parse('A')
self.assertEqual(tree.children, ['A'])

tree = l.parse('')
self.assertEqual(tree.children, [])

def test_undefined_ignore(self):
g = """!start: "A"

@@ -1016,6 +1026,7 @@ def _make_parser_test(LEXER, PARSER):
self.assertEqual(tree.children, [])



@unittest.skipIf(LEXER==None, "Scanless doesn't support regular expressions")
def test_regex_escaping(self):
g = _Lark("start: /[ab]/")


Načítá se…
Zrušit
Uložit