У меня есть проблемы запуска входного потока для моей грамматики, здесь является часть моей грамматикиAntlr4: посторонний вход в antlr4
expression
: ....
| ('+' | '-' | '&' |) expression
| expression ('+'|'-') expression
....
;
, когда входной поток, как 2 + 2-2 или (2 + 2 + 2) - 2, возникает ошибка
line 10:30 extraneous input '-2' expecting {',', '^',...}
Почему моя грамматика не может отличить от -2 до 2-2? помогите мне, пожалуйста!
Извините, но я просто скопирую часть java.g4 (только правило выражения) из примера книги примера antlr v4. Можете ли вы дать мне пример, чтобы решить это? – wied
ok, я знаю, что вы имеете в виду, потому что я добавил префикс в DECIMAL_LITERAL : \t ('-')? ('0' | '1' .. '9' '0' .. '9' *) IntegerTypeSuffix? ; спасибо, сэм. – wied