|
|
@@ -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' |
|
|
|