Parsing 如何使用ANTLR 4转义括号字符

Parsing 如何使用ANTLR 4转义括号字符,parsing,antlr4,Parsing,Antlr4,我想从文本中删除和删除。我怎样才能逃走? 但还是不行 我希望并被认可为决策优先级的操作员 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'

我想从文本中删除和删除。我怎样才能逃走? 但还是不行

我希望并被认可为决策优先级的操作员

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)))

谢谢

我没有使用lexer和parser解决了这个问题。 侦听器如何处理解析结果是一个问题