diff --git a/docs/grammar.md b/docs/grammar.md index 0d77420..4ac5c77 100644 --- a/docs/grammar.md +++ b/docs/grammar.md @@ -159,14 +159,15 @@ start : (A | B)+ A : "a" | "ab" B : "b" ``` -We get this behavior: +We get only one possible derivation, instead of two: ```bash +>>> p = Lark(g, ambiguity="explicit") >>> p.parse("ab") -Tree(start, [Token(A, 'a'), Token(B, 'b')]) +Tree('start', [Token('A', 'ab')]) ``` -This is happening because Python's regex engine always returns the first matching option. +This is happening because Python's regex engine always returns the best matching option. There is no way to access the alternatives. If you find yourself in this situation, the recommended solution is to use rules instead.