Как убрать неоднозначность в грамматике EBPF Instaparse - PullRequest
0 голосов
/ 02 июня 2018

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

Грамматика:

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

1 Ответ

0 голосов
/ 03 июня 2018

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

...