Обмен двух детей родительского правила в antlr4 - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть правило, подобное приведенному ниже

  parent_clause: first_clause second_clause
         | second_clause first_clause
         ;

как мне поменять местами детей, чтобы у меня всегда было first_clause с последующим second_clause?

1 Ответ

0 голосов
/ 25 апреля 2018

как я могу поменять местами детей, чтобы у меня всегда было first_clause с последующим second_clause

В ANTLR4 такой функциональности нет.

ANTLR4 предоставляет классы для посетителей и слушателей, которые помогут вам построить собственное синтаксическое / синтаксическое дерево синтаксического анализа на основе ваших входных данных. Это место, где вы можете переписать свое дерево.

Вот блог от Теренса (автора ANTLR), в котором он объясняет, почему не поддерживается перезапись дерева: https://theantlrguy.atlassian.net/wiki/spaces/~admin/blog/2012/12/08/524353/Tree+rewriting+in+ANTLR+v4

...