1
TEXTから '('と ')を削除したいと思います。どうすれば逃げることができますか? (および\\(動作しませんでした。ANTLRで括弧文字をエスケープするには4
私は '(' たいと ')' の決定の優先順位のための演算子として認識される。
grammar Query;
// Parser
query: expr+ ;
expr: NOT expr
| expr AND? expr
| expr OR expr
| REGEXP
| TEXT
| STRING
| LPAREN expr RPAREN
;
// Lexer
LPAREN : '(' ;
RPAREN : ')' ;
AND: 'AND' ;
OR: 'OR' ;
NOT: 'NOT' ;
TEXT : ~[()\n\r" ]+ ;
STRING : '"' ('""'|~'"')* '"' ; // quote-quote is an escaped quote
REGEXP : '/' (~'/')* '/' ; // quote-quote is an escaped quote
WS : [ \t\r\n]+ -> skip ;
この戻りは
» grun Query query -tree
(A AND B) OR C
(query (expr (expr ((expr (expr A) AND (expr B)))) OR (expr C)))
を次の私は必要
(query (expr (expr (expr (expr A) AND (expr B))) OR (expr C)))
おかげ