2014-06-21 69 views
0

我想在这个语法来设置根AST:ANTLR:“^”来了作为一个完整的惊喜给我

boolexp  : relexp op=(AND | OR)^ boolexp 
     | relexp 
     ; 

,但得到这个错误:

'^' came as a complete surprise to me 

的原因是什么?

+0

什么让你吃惊?你期望看到什么?你究竟看到了什么? –

+3

@GeorgeStocker,它是[ANTLR返回的实际错误信息](https://github.com/antlr/antlr4/blob/274120c2b6ea059ad8e9538103163667d2575a2c/tool/src/org/antlr/v4/parse/ToolANTLRParser.java#L69):) –

+0

我只是想将op =(AND | OR)设置为ROOT。 – user3758844

回答

0

如果这是ANTLR 4,AST运算符已被删除,以支持自动分析树构造。

如果这是ANTLR 3,则可能需要将标签移动到括号内,如下所示。

boolexp  : relexp (op=AND | op=OR)^ boolexp 
     | relexp 
     ; 
+0

那么应该如何设置root并创建Visual AST?它是版本4; – user3758844

相关问题