[英]Negative of token in ANTLR4
我这样定义LEGAL_ESCAPE
令牌:
LEGAL_ESCAPE: '\\'('b'|'f'|'r'|'n'|'t'|'"')?;
我有什么办法可以使用此令牌的负数来定义另一个ILLEGAL_ESCAPE
令牌?
当然:
LEGAL_ESCAPE : ESC [bfrnt"] ;
ILLEGAL_ESCAPE : ESC
( ~[bfrnt"] // any char not in the set
| EOF // it is a non char
)
;
fragment ESC : '\\' ;
在Antlr4语法仓库中的各种示例语法中隐含了很多“技巧”。 abnf和较少的语法是很好的起点。 Java8,Antlr4和Python3语法演示了许多更复杂的功能。
注意,否定运算符~
适用于字符,字符集和范围,单个标记和单个标记集。 但,
ILLEGAL_ESCAPE : ~LEGAL_ESCAPE ;
不太可能是您要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.