АНТЛР. Как исключить двойные кавычки из AST?

У меня есть следующая грамматика, и я хотел бы, чтобы " не отображался как узел в 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();};

person Ihor M.    schedule 11.06.2013    source источник


Ответы (1)


Плохо, не переключал вид с "Parse Tree" на "AST". В "AST" дерево просмотра строится без двойных кавычек.

person Ihor M.    schedule 11.06.2013