Browse Source

Small stuff

tags/gm/2021-09-23T00Z/github.com--lark-parser-lark/0.8.0
Erez Sh 5 years ago
parent
commit
52e510780a
1 changed files with 2 additions and 5 deletions
  1. +2
    -5
      lark/reconstruct.py

+ 2
- 5
lark/reconstruct.py View File

@@ -28,8 +28,6 @@ class WriteTokensTransformer(Transformer_InPlace):
self.term_subs = term_subs

def __default__(self, data, children, meta):
# if not isinstance(t, MatchTree):
# return t
if not getattr(meta, 'match_tree', False):
return Tree(data, children)

@@ -97,11 +95,10 @@ class Reconstructor:
self.write_tokens = WriteTokensTransformer({t.name:t for t in tokens}, term_subs)
self.rules = list(self._build_recons_rules(rules))
self.rules.reverse()
# print(len(self.rules))

# Choose the best rule from each group of {rule => [rule.alias]}, since we only really need one derivation.
self.rules = best_from_group(self.rules, lambda r: r, lambda r: -len(r.expansion))
# print(len(self.rules))

# self.rules = list(set(list(self._build_recons_rules(rules))))
self.rules.sort(key=lambda r: len(r.expansion))
callbacks = {rule: rule.alias for rule in self.rules} # TODO pass callbacks through dict, instead of alias?
self.parser = earley.Parser(ParserConf(self.rules, callbacks, parser.options.start),


Loading…
Cancel
Save