Преглед на файлове

Added error when using terminal weights in dynamic earley (Discussed in #324)

tags/gm/2021-09-23T00Z/github.com--lark-parser-lark/0.7.0
Erez Shinan преди 5 години
родител
ревизия
f67eead0b4
променени са 2 файла, в които са добавени 3 реда и са изтрити 1 реда
  1. +1
    -1
      lark/load_grammar.py
  2. +2
    -0
      lark/parser_frontends.py

+ 1
- 1
lark/load_grammar.py Целия файл

@@ -796,7 +796,7 @@ class GrammarLoader:

name = '__IGNORE_%d'% len(ignore_names)
ignore_names.append(name)
term_defs.append((name, (t, 0)))
term_defs.append((name, (t, 1)))

# Verify correctness 2
terminal_names = set()


+ 2
- 0
lark/parser_frontends.py Целия файл

@@ -93,6 +93,8 @@ class XEarley:
def _prepare_match(self, lexer_conf):
self.regexps = {}
for t in lexer_conf.tokens:
if t.priority != 1:
raise ValueError("Dynamic Earley doesn't support weights on terminals", t, t.priority)
regexp = t.pattern.to_regexp()
try:
width = get_regexp_width(regexp)[0]


Зареждане…
Отказ
Запис