У меня есть правило, подобное приведенному ниже
parent_clause: first_clause second_clause | second_clause first_clause ;
как мне поменять местами детей, чтобы у меня всегда было first_clause с последующим second_clause?
first_clause
second_clause
как я могу поменять местами детей, чтобы у меня всегда было first_clause с последующим second_clause
В ANTLR4 такой функциональности нет.
ANTLR4 предоставляет классы для посетителей и слушателей, которые помогут вам построить собственное синтаксическое / синтаксическое дерево синтаксического анализа на основе ваших входных данных. Это место, где вы можете переписать свое дерево.
Вот блог от Теренса (автора ANTLR), в котором он объясняет, почему не поддерживается перезапись дерева: https://theantlrguy.atlassian.net/wiki/spaces/~admin/blog/2012/12/08/524353/Tree+rewriting+in+ANTLR+v4