Я читаю "The Definitive Antlr 4 Reference" и понимаю, как работают слушатели и посетители. В книге особенно хорошо объясняется, как слушатели относятся к синтаксическим анализаторам SAX и делают это очевидным, когда методы будут вызываться во время реализации каждого из них. Я также вижу, что слушатели вполне подходят для преобразования ввода в вывод, но я хотел бы получить краткое объяснение/пример того, когда использовать прослушиватель и когда использовать посетителя (или оба они будут использоваться в некоторых случаях?).
Мое особое намерение заключается в создании интерпретатора (Cucumber-style/TinyBasic Interpreter с некоторыми пользовательскими вызовами), который будет проверять наличие синтаксических ошибок и прекратить выполнение ошибки из пользовательской функции без восстановления - хотелось бы видеть полную реализацию такая вещь в antlr - если кто-то знает об этом.
Заранее благодарим за любые советы.