Как убрать неоднозначность в грамматике EBPF Instaparse

Как я могу предотвратить, чтобы литерал "," в правиле структуры анализировался как оператор в следующей грамматике EBNF для Instaparse?

Грамматика:

structure = atom <"("> term ("," term)* <")"> 
term = atom | number | structure | variable | "(" term ")" | term operator term
operator = "," | ";" | "\\=" | "=="

1 ответ

Использование запятой в качестве разделителя и в качестве такого оператора, как вы, делает контекст с учетом запятой чувствительным, с чем сам Ebnf не может справиться.

Другие вопросы по тегам