В ANTLR4 у меня есть следующая грамматика:
ID : [_a-zA-Z][0-9_a-zA-Z]*;
INT_LITERAL : [0-9]+;
FLOAT_LITERAL :[0-9]+'.'?[0-9]*([eE][-+]?)?[0-9]+;
При разборе строки 123abc я ожидаю ошибку, но вместо этого получаю токены:
123
abc
<EOF>
Я пытался добавить EOF
в конце моего выражения int и float,
INT_LITERAL : [0-9]+EOF;
FLOAT_LITERAL :[0-9]+'.'?[0-9]*([eE][-+]?)?[0-9]+EOF;
но даже тогда я получаю какой-то частичный результат анализа
bc
<EOF>
Что я должен изменить, чтобы моя грамматика не принимала строку 123abc
?