У меня есть этот простой граммер:
expr: factor;
factor: atom (('*' ^ | '/'^) atom)*;
atom: INT
| ':' expr;
INT: ('0'..'9')+
когда я его запускаю говорит:
Решение может соответствовать вводу, например '*', с использованием нескольких альтернатив 1,2
Решение может соответствовать вводу, например '/', с использованием нескольких альтернатив 1,2
Я не могу обнаружить двусмысленность. Как указывают красные стрелки? Мы будем благодарны за любую помощь.