两个重写规则ID INT和^(INT ID)之间的antlr差异

时间:2012-08-21 17:44:46

标签: antlr antlr3

在antlr文档中,我看到以下两条规则,但它们的描述完全相同。这两条规则有什么区别......

a : INT ID -> ID INT ; // reorder nodes
a : ^(ID INT) -> ^(INT ID) ; // flip order of nodes in tree

另外,为什么不写这样的第二条规则,或者与第一条规则相同,那么规则之间没有区别?

a : ^(INT ID) -> ^(ID INT) ;

感谢, 迪安

1 个答案:

答案 0 :(得分:2)

  • ^(INT ID)表示INT是根,ID表示孩子。
  • INT ID表示INTID都是子节点。