Ich erhalte eine Warnung, wenn antlr v3.1 mit dieser Regel kompiliert
sentence
:
(CAPITAL_LETTERS_AND_NUMBERS | INT | ANY_WORD )
(
INT
| CAPITAL_LETTERS_AND_NUMBERS
| ANY_WORD
)*;
Die Warnung lautet:
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.
Der Grund dafür, dass ich verwirrt bin, ist die Grammatik, die ziemlich komplex ist, bis ich eine weitere Unterregel an einer anderen Stelle in der Datei einfüge, die ebenfalls Satz verwendet. Es akzeptiert die obige Regel, bis dies geschieht, was seltsam erscheint. Ich bin auf der Suche nach Hinweisen, wie ich am besten vorgehen kann, um das Problem zu beheben und zu verstehen, wie das passieren konnte.
Danke, Richard