首页 文章

antlr4语法中“〜”算子的意义

提问于
浏览
3

我想了解语法文件:https://github.com/antlr/grammars-v4/blob/master/url/url.g4

STRING
   : ([a-zA-Z~] |HEX) ([a-zA-Z0-9.-] | HEX)*
   ;
HEX
    : ('%' [a-fA-F0-9] [a-fA-F0-9])+
    ;

我无法理解 ~ 运算符到底是字符集: [a-zA-Z~] 我知道 ~ 代表不在集合运算符中,因为:https://github.com/antlr/antlr4/blob/master/doc/lexer-rules.md~x 匹配任何不在 x 描述的集合中的单个字符但是如何在上面的 STRING 模式中解释何时结束?

1 回答

  • 3

    不是Antlr的任何专家,但我认为它只是一个字面的波形符号( ~ ),因为它可以出现在URL中 . 这用于例如用于指定用户主目录的URL,但现在更不常见,至少在Internet上 .

    如果查看 生产环境 规则,例如平铺的主机名将指定相对于用户主页的URL .

相关问题