Может ли ANTLR изменить AST в зависимости от условия, которое мы имеем во время синтаксического анализа?
Например, при синтаксическом анализе строки типа: foo (). DropLastBar (true) .bar () мы надеюсь отбросить последнее появление панели, если мы знаем, что существует dropLastBar (true).
Теперь я использовал «members» в ANTLR, чтобы записать, существует ли dropLastBar с истинным значением. Но я не знаю, как изменить правило ANTLR, чтобы сгенерированный AST отличался в зависимости от имеющейся у нас строки. Строка может быть foo (). DropLastBar (true) .bar (). Bar (). Bar (), тогда мы можем получить AST, сгенерированный foo (). DropLastBar (true) .bar (). bar () без двойного анализа?