0

私は次の文法を持っており、" が AST のノードとして表示されるのを避けたいと考えています。これを行うには ! サフィックスを使用しますが、ANTLWorks は依然としてツリー上にそれらを表示します。何が間違っているのでしょうか?

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();};
4

1 に答える 1

1

悪いことに、ビューを "Parse Tree" から "AST" に切り替えませんでした。「AST」ビューでは、ツリーは二重引用符なしで構築されます。

于 2013-06-11T17:18:47.947 に答える