Вопрос: существует ли (более простой) способ создания пользовательских деревьев синтаксического анализа во время разбора в ANTLR v4?Создание пользовательских деревьев синтаксиса в ANTLR v4
Я думаю, что можно было бы переходить и переписывать автоматически построенное дерево, но мне было интересно, можем ли мы по-прежнему выполнять ручное построение дерева (или настройку, если на то пошло) во время разбора (аналогично ANTLR v3 и ealier). Идея состоит в том, что в зависимости от того, как пишет грамматика, мы получаем много бесполезных узлов в дереве, построенных ANTLR, и, хотя я понимаю, что вы можете переопределить только интересующие вас методы слушателя, нужно еще проверить и пропускать бесполезные типы токенов и т. д.
Спасибо за прояснение! У вас есть сильная сторона с отсутствием кода клиента, когда вы меняете/реорганизовываете какое-то правило грамматики ... Я думал с точки зрения производительности, но я думаю, что накладные расходы обычно близки к нулю. –
@OctavianTheodor Нынешний дизайн ANTLR 4 не оказался значительным ограничением производительности под моими оценками, и это то, что я все, кроме навязчивой. Другие области, включая фактическую структуру самих правил (взгляд, двусмысленность и т. Д.), Всегда имеют более выраженный эффект. –