ANTLR。如何从AST中排除双引号?

时间:2013-06-11 17:02:58

标签: antlr antlr3 antlrworks

我有一个跟随语法,我想避免“在AST中显示为节点。为此我是!后缀,但ANTLWorks仍然在树上显示'。我做错了什么?< / p>

grammar BooleanExpr;

options {
output=AST;
    ASTLabelType=CommonTree; 
}

booleanExpr
    :   andExpr ('OR'^ andExpr)*;
andExpr :   kppExpr;
kppExpr :   keywordExpr | phraseExpr;
keywordExpr
    :CHAR+;
// exclude double quotes from AST
phraseExpr
    :   '"'! keywordExpr '"'!;

CHAR    :   ('A'..'Z') | ('a'..'z');
INT :   '0'..'9'+;
NEWLINE :   '\r'? '\n';
WS  :   (' '|'\t'|'\n'|'\r')+ {skip();};

1 个答案:

答案 0 :(得分:1)

我的不好,没有将视图从“Parse Tree”切换到“AST”。在“AST”视图中,树没有双引号。