Как я могу построить AST, используя ANTLR4?

У меня есть грамматика ANTLR3, которая строит абстрактное синтаксическое дерево. Я изучаю обновление до ANTLR4. Однако, похоже, что ANTLR4 только строит деревья синтаксического анализа, а не абстрактные деревья синтаксиса. Например, опция output=AST больше не распознается. Кроме того, ни текст «АСТ», ни «абстрактный синтаксис» не отображаются в тексте «Определяющая ссылка ANTLR4» .

Мне интересно, не хватает ли я чего-то.

Мое приложение в настоящее время знает, как проползать по AST, производимому ANTLR3. Изменение его для обработки дерева parsingа не невозможно, но это будет немного работать. Я хочу быть уверенным, что это необходимо, прежде чем я начну с этой дороги.

ANTLR 4 создает деревья parsingа на основе грамматики вместо АСТ на основе произвольных операторов АСТ и / или переписывает правила. Это позволяет ANTLR 4 автоматически создавать интерфейсы слушателя и посетителя, которые вы можете реализовать в коде, используя вашу грамматику.

Изменение может быть значительным для пользователей, обновляющих существующие приложения с версии 3, но в целом новая система намного проще в использовании и (особенно) обслуживании.

Interesting Posts

Мне действительно нужен брандмауэр?

Спящий ноутбук случайно просыпается и остается включенным, когда крышка закрыта

Кнопки диалогового окна не работают в Eclipse на Ubuntu 9.10

Аутентификация Socket.IO

Entity Framework 4 Single () vs First () vs FirstOrDefault ()

Что означает «%. * S» в printf?

Поддержка языков для операторов цепного сравнения (x <y <z)

Как я могу получить доступ к службе за пределами controllerа с помощью Symfony2?

Как восстановить приоритет PriorityQueue до его начального состояния перед вызовом метода?

SmtpException: невозможно прочитать данные из транспортного соединения: net_io_connectionclosed

Как найти дубликаты в списке и создать с ними другой список?

Функция пользовательского фильтра AngularJS

JavaFX: Как получить этап от controllerа во время инициализации?

Проблемы, связанные с функцией JPanel: paintcomponent ()

ASP.NET MVC 4 custom Authorize attribute – Как перенаправить неавторизованных пользователей на страницу с ошибкой?

Давайте будем гением компьютера.