Я получаю предупреждение, когда antlr v3.1 компилируется по этому правилу
sentence
:
(CAPITAL_LETTERS_AND_NUMBERS | INT | ANY_WORD )
(
INT
| CAPITAL_LETTERS_AND_NUMBERS
| ANY_WORD
)*;
Предупреждение:
5:2: Decision can match input such as "CAPITAL_LETTERS_AND_NUMBERS" using multiple alternatives: 1, 2
As a result, alternative(s) 2 were disabled for that input
Semantic predicates were present but were hidden by actions.
Decision can match input such as "INT" using multiple alternatives: 1, 2
As a result, alternative(s) 2 were disabled for that input
Semantic predicates were present but were hidden by actions.
Причина, по которой я запутался, - это довольно сложная грамматика. проходит, пока я не помещаю другое подправило в другое место в файле, которое также использует предложение. Он принимает указанное выше правило, пока это не произойдет, что кажется странным. Я ищу подсказки, как лучше всего отладить и понять, как это могло произойти?
Спасибо, Ричард