Я думаю, что лексер ANTLR рассматривает мою попытку выражения диапазона "1...3"
как число с плавающей запятой. Выражение "x={1...3}"
выходит из лексера как "x={.3}"
, когда я использовал следующие определения токенов:
FLOAT
: ('0'..'9')+ ('.' '0'..'9'+)? EXPONENT?
| ('.' '0'..'9')+ EXPONENT?
;
AUTO : '...';
Когда я меняю FLOAT, чтобы просто проверять целые числа, вот так:
FLOAT : ('0'..'9')+;
то выражение "x={1...3}"
токенизировано правильно. Может ли кто-нибудь помочь мне исправить это?
Спасибо!