“的意义”~&引用;antlr4语法中的运算符

“的意义”~&引用;antlr4语法中的运算符,antlr,antlr4,Antlr,Antlr4,我正在努力理解语法文件: 我无法理解~运算符最后在:[a-zA-Z~] 我知道~表示不在集合中的运算符,如下所示: i、 e~x与x 但是当它结束时,如何像上面的字符串模式那样进行解释呢?在任何方面都不是Antlr的专家,但我会假设它只是一个文字波浪字符(~),因为它可以出现在URL中。例如,这用于指定用户主目录的URL,但如今已不太常见,至少在互联网上是如此 如果您查看生产规则,例如,平铺为主机名将指定一个相对于用户主页的URL。感谢您的快速恢复。还有一个问题:既然“~”是一个not运算符,

我正在努力理解语法文件:

我无法理解
~
运算符最后在:
[a-zA-Z~]
我知道
~
表示不在集合中的运算符,如下所示: i、 e
~x
x

但是当它结束时,如何像上面的
字符串
模式那样进行解释呢?

在任何方面都不是Antlr的专家,但我会假设它只是一个文字波浪字符(
~
),因为它可以出现在URL中。例如,这用于指定用户主目录的URL,但如今已不太常见,至少在互联网上是如此


如果您查看生产规则,例如,平铺为主机名将指定一个相对于用户主页的URL。

感谢您的快速恢复。还有一个问题:既然“~”是一个not运算符,那么如果意图是波浪形字符,那么转义字符“\”不应该通常在“~”之前吗?我不这么认为。看看正则表达式字符类,
^
进行反运算:
'a'=~/[^a]/\35;=>nil
(反运算)。
'^'=~/[a^]/\35;=>0
^
作为类的一部分作为正则字符)。
STRING
   : ([a-zA-Z~] |HEX) ([a-zA-Z0-9.-] | HEX)*
   ;
HEX
    : ('%' [a-fA-F0-9] [a-fA-F0-9])+
    ;