Я пытаюсь разобрать рекурсивные выражения в ANTLR, такие как:
(a + (b + C))
or
((a + b))
Я прочитал это предполагаемое решение: грамматика ANTLR для выражений
Однако, когда я пытаюсь создать правило, такое как:
ParenthesisExpression: '(' (ParenthesisExpression | Expression) ')';
ANTLR жалуется, что «Rule ParenthesisExpression является леворекурсивным».
Как я могу анализировать выражения, которые могут иметь внутри себя подвыражения той же формы?