瀏覽代碼

BUGFIX: Non-linearity in tree construction, causing performance issues for large inputs (Issue #94)

tags/gm/2021-09-23T00Z/github.com--lark-parser-lark/0.5.5
Erez Shinan 6 年之前
父節點
當前提交
d5c617f0fe
共有 2 個檔案被更改,包括 5 行新增2 行删除
  1. +4
    -1
      lark/parse_tree_builder.py
  2. +1
    -1
      lark/tree.py

+ 4
- 1
lark/parse_tree_builder.py 查看文件

@@ -61,7 +61,10 @@ class ChildFilter:
filtered = []
for i, to_expand in self.to_include:
if to_expand:
filtered += children[i].children
if filtered:
filtered += children[i].children
else: # Optimize for left-recursion
filtered = children[i].children
else:
filtered.append(children[i])



+ 1
- 1
lark/tree.py 查看文件

@@ -11,7 +11,7 @@ from .utils import inline_args
class Tree(object):
def __init__(self, data, children):
self.data = data
self.children = list(children)
self.children = children

def __repr__(self):
return 'Tree(%s, %s)' % (self.data, self.children)


Loading…
取消
儲存