我有以下语法:
query
: IDENT 'x' NOT
;
WS : (' '| '\t'| EOL)+ { $channel=HIDDEN; };
NOT : ('N'|'n')('O'|'o')('T'|'t');
fragment
EOL : '\n' | '\r';
fragment
DIGIT : '0'..'9';
fragment LETTER : ('a'..'z' | 'A'..'Z' | '_') ;
IDENT : LETTER ( LETTER | DIGIT)*;
我想要的是接受'x'前面的任何字符串,但如果我在IDENT的位置使用字符串“not”,则不接受。但也“不'x'不是”应该没问题,还有“foo x not”。
有没有一种简单的方法可以解决它?
感谢
答案 0 :(得分:0)
如果您只想轻松修复,可以这样试试:
query
: ( IDENT | NOT ) 'x' NOT
;