При использовании грамматик, написанных в ANTLR, анализатор правильно распознает данные из входного потока, но если у меня есть текст мусора в конце ввода (который не должен быть анализируется грамматикой) парсер не жалуется.ANTLR как обнаружить данные мусора в конце ввода
Я думаю, что это все в порядке (я имею в виду, что синтаксический анализатор выполнил свою работу и проанализировал все, что я сказал, что он должен разобрать), но есть ли какой-либо трюк, чтобы обнаружить, когда есть какие-либо данные, оставшиеся на входе после того, как парсер сделал его работу?
Спасибо.
АСТ производится ANTLR Включается ли мусор или это выглядит хорошо? Вы должны иметь возможность получить смещение и длину последнего токена и выяснить, где он остановился, но это было некоторое время с тех пор, как я использовал ANTLR –
АСТ отлично. Все работает нормально, вывод генерируется правильно, просто чтобы было легче сообщать об ошибке, если они оставляют что-либо в конце файла. Возможно, трюк хранения позиции последнего токена, а затем поиск за его пределами, но, возможно, есть еще более элегантный способ сделать это? – Gabriel