Как манипулировать ParseException в Javacc

Я создал лексер и парсер в javacc и пытаюсь обрабатывать ошибки. Сначала я пытался использовать блоки try-catch для каждого символа, отсутствующего в синтаксическом анализаторе, но я читал в Интернете что-то о перехвате ParseException только один раз в основном блоке с помощью try-catch и манипулировании им, чтобы получить последний прочитанный токен, следующий токен и больше подобных вещей. Я пытаюсь узнать об этом больше, но больше ничего не нашел, так как в большинстве мест используются блоки try-catch.

До сих пор я знаю, что могу сделать: e.currentToken.image, если поймаю (ParseException e), а также e.getErrorOffset(), но хотел бы знать, есть ли другие методы, которые можно использовать для печати более удобочитаемого и информативная ошибка. Если у кого-то есть примеры или может направить меня к какому-то документу. Заранее спасибо.


person noogler    schedule 15.04.2019    source источник


Ответы (1)


Лучшим способом улучшить (или изменить) сообщения об ошибках может быть изменение самого класса ParseException.

person Theodore Norvell    schedule 15.04.2019