Browse Source

BUGFIX: Token and Derivation get compared in _compare_drv (Issue #91)

tags/gm/2021-09-23T00Z/github.com--lark-parser-lark/0.5.5
Erez Shinan 6 years ago
parent
commit
bb0b9aa729
1 changed files with 8 additions and 4 deletions
  1. +8
    -4
      lark/parsers/resolve_ambig.py

+ 8
- 4
lark/parsers/resolve_ambig.py View File

@@ -30,11 +30,15 @@ def _compare_priority(tree1, tree2):
tree1.iter_subtrees()

def _compare_drv(tree1, tree2):
try:
rule1, rule2 = tree1.rule, tree2.rule
except AttributeError:
# Probably non-trees, or user trees that weren't created by the parse (better way to distinguish?)
rule1 = getattr(tree1, 'rule', None)
rule2 = getattr(tree2, 'rule', None)
if None == rule1 == rule2:
return compare(tree1, tree2)
elif rule1 is None:
return -1
elif rule2 is None:
return 1

assert tree1.data != '_ambig'
assert tree2.data != '_ambig'


Loading…
Cancel
Save