Я работаю над предметно-ориентированным языком (DSL) для непрограммистов. Непрограммисты делают много грамматических ошибок: они неправильно пишут ключевые слова, не закрывают круглые скобки, не завершают блоки и т. Д.
Я использую ANTLR для генерации парсера; он предоставляет изящный механизм обработки исключений RecognitionExceptions для улучшения обработки ошибок. Но мне довольно сложно разработать хороший код обработки ошибок для моего DSL.
На данный момент я рассматриваю способы упростить язык, чтобы мне было проще предоставлять пользователям высококачественные сообщения об ошибках, но я не совсем уверен, как это сделать. Я думаю, что хочу как-то уменьшить двусмысленность ошибок, но я не уверен, как реализовать эту идею в грамматике.
Как я могу упростить свой язык, чтобы улучшить сообщения об ошибках синтаксического анализа для моих пользователей?
РЕДАКТИРОВАТЬ: Обновлено, чтобы уточнить, что меня интересуют способы упростить свой язык, а не только советы по обработке ошибок ANTLR в целом. (Хотя, спасибо за это!)