antlr3不规则

时间:2011-08-15 10:50:26

标签: antlr antlr3 lexer

negExpression   :   (NOT^)* primitiveElement    ;

我的规则是什么。我现在有了这段代码:

!!(1==1)

我预计我会以这棵树结束:

NOT
 |
NOT
 |
 ==
/  \
1  1

但是,在Antlr3中,树似乎最终会像

一样
  NOT
 /   \
NOT  ==
    /  \
    1  1

IE。我最终得到的第二个没有子节点,而不是它应该拥有的子节点,它已成为它的兄弟节点。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

当我写这个问题时,我发现我的规则可能是错误的。 事实上,这个完全符合我的预期。

negExpression : NOT^ negExpression | primitiveElement^;