Browse Source

Small refactoring for iter_subtrees

tags/gm/2021-09-23T00Z/github.com--lark-parser-lark/0.8.6
Erez Sh 5 years ago
parent
commit
4c61aaf1dc
1 changed files with 3 additions and 5 deletions
  1. +3
    -5
      lark/tree.py

+ 3
- 5
lark/tree.py View File

@@ -62,14 +62,12 @@ class Tree(object):
queue = [self]
subtrees = OrderedDict()
for subtree in queue:
if id(subtree) in subtrees:
continue
subtrees[id(subtree)] = subtree
queue += [c for c in reversed(subtree.children) if isinstance(c, Tree)]
queue += [c for c in reversed(subtree.children)
if isinstance(c, Tree) and id(c) not in subtrees]

del queue
for subtree in reversed(list(subtrees.values())):
yield subtree
return reversed(list(subtrees.values()))

def find_pred(self, pred):
"Find all nodes where pred(tree) == True"


Loading…
Cancel
Save