Skip to content

Commit 653296f

Browse files
authored
Merge pull request #1444 from lark-parser/issue1443
Bugfix: Earley now respects ambiguity='resolve' again. Bug was introd…
2 parents ae207df + e6cf570 commit 653296f

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

lark/parsers/earley.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ def parse(self, lexer, start):
306306
transformer = ForestToParseTree(self.Tree, self.callbacks, self.forest_sum_visitor and self.forest_sum_visitor(), self.resolve_ambiguity, use_cache)
307307
solutions = [transformer.transform(s) for s in solutions]
308308

309-
if len(solutions) > 1:
309+
if len(solutions) > 1 and not self.resolve_ambiguity:
310310
t: Tree = self.Tree('_ambig', solutions)
311311
t.expand_kids_by_data('_ambig') # solutions may themselves be _ambig nodes
312312
return t

tests/test_parser.py

+5
Original file line numberDiff line numberDiff line change
@@ -841,6 +841,11 @@ def test_multiple_start_solutions(self):
841841
)
842842
self.assertEqual(tree, expected)
843843

844+
l = Lark(grammar, ambiguity='resolve', lexer=LEXER)
845+
tree = l.parse('x')
846+
assert tree == Tree('start', ['x'])
847+
848+
844849
def test_cycle(self):
845850
grammar = """
846851
start: start?

0 commit comments

Comments
 (0)