Как убрать неоднозначность в грамматике EBPF Instaparse
Как я могу предотвратить, чтобы литерал "," в правиле структуры анализировался как оператор в следующей грамматике EBNF для Instaparse?
Грамматика:
structure = atom <"("> term ("," term)* <")">
term = atom | number | structure | variable | "(" term ")" | term operator term
operator = "," | ";" | "\\=" | "=="
1 ответ
Использование запятой в качестве разделителя и в качестве такого оператора, как вы, делает контекст с учетом запятой чувствительным, с чем сам Ebnf не может справиться.