在antlr4中交换父规则的两个子节点

时间:2018-04-24 15:15:54

标签: antlr4

我的规则如下

  parent_clause: first_clause second_clause
         | second_clause first_clause
         ;

如何让孩子们互相交流,以便我可以随时first_clause后跟second_clause

1 个答案:

答案 0 :(得分:0)

  

我如何与孩子交流,以便我始终first_clause后跟second_clause

ANTLR4中没有此类功能。

ANTLR4提供了访问者和监听器类,可帮助您根据输入构建自己的解析/抽象语法树。那是你可以重写树的地方。

以下是来自Terence(ANTLR的作者)的博客,其中他解释了为什么不支持树重写:https://theantlrguy.atlassian.net/wiki/spaces/~admin/blog/2012/12/08/524353/Tree+rewriting+in+ANTLR+v4