Я читаю «Полный справочник Antlr 4» и понимаю, как работают слушатели и посетители. Книга особенно хорошо объясняет, как прослушиватели связаны с парсерами SAX, и делает очевидным, когда методы будут вызываться во время реализации каждого из них. Я также вижу, что прослушиватели неплохо подходят для преобразования ввода в вывод, но я был бы признателен за краткое объяснение/пример того, когда использовать прослушиватель и когда использовать посетителя (или они оба должны использоваться в определенных случаях?).
Мое конкретное намерение состоит в том, чтобы создать интерпретатор (интерпретатор в стиле Cucumber/TinyBasic с некоторыми пользовательскими вызовами), который будет проверять наличие синтаксических ошибок и прекращать выполнение при ошибке из пользовательской функции без восстановления - хотелось бы увидеть полную реализацию такой вещи в antlr - если кто-нибудь знает о нем.
Спасибо заранее за любые советы.