Browse Source

BUGFIX: Standalone parser didn't retain filter_out values for terminals (Issue #222)

tags/gm/2021-09-23T00Z/github.com--lark-parser-lark/0.6.5
Erez Shinan 7 years ago
parent
commit
37cfe5c9f3
2 changed files with 7 additions and 1 deletions
  1. +6
    -0
      lark/grammar.py
  2. +1
    -1
      lark/tools/standalone.py

+ 6
- 0
lark/grammar.py View File

@@ -17,6 +17,8 @@ class Symbol(object):
def __repr__(self):
return '%s(%r)' % (type(self).__name__, self.name)

fullrepr = property(__repr__)

class Terminal(Symbol):
is_term = True

@@ -24,6 +26,10 @@ class Terminal(Symbol):
self.name = name
self.filter_out = filter_out

@property
def fullrepr(self):
return '%s(%r, %r)' % (type(self).__name__, self.name, self.filter_out)


class NonTerminal(Symbol):
is_term = False


+ 1
- 1
lark/tools/standalone.py View File

@@ -165,7 +165,7 @@ class TreeBuilderAtoms:
print('RULES = {')
for i, r in enumerate(self.rules):
rule_ids[r] = i
print(' %d: Rule(%r, %r, %r, %r),' % (i, r.origin, r.expansion, self.ptb.user_aliases[r], r.options ))
print(' %d: Rule(%r, [%s], %r, %r),' % (i, r.origin, ', '.join(s.fullrepr for s in r.expansion), self.ptb.user_aliases[r], r.options ))
print('}')
print('parse_tree_builder = ParseTreeBuilder(RULES.values(), Tree)')



Loading…
Cancel
Save