Привет, я создаю грамматику для некоторой формулы, использующей рекурсию. Формула намного сложнее, но пока я тестирую только ее часть. После вызова метода parse происходит сбой в методе allMatchesFor. Трассировка стека заполнена вызовами allMatchesFor, поэтому похоже, что это бесконечный цикл. В чем проблема. Это в моей логике построения грамматики или что-то еще? Как я могу сделать то же самое, чтобы избежать этого сбоя
Моя грамматика такая:
@start = formula;
formula = valueTypeResult;
valueTypeResult = (value | concept | arithmeticStatement);
arithmeticStatement = valueTypeResult (arithmeticOperator valueTypeResult)+;
value = 'V';
concept = 'C';
arithmeticOperator = 'A';
Не могли бы вы рассказать мне, как создавать грамматики, использующие рекурсию?
Спасибо