标识符

identifiers Commit: e942743f739a191abca1b0bf8b6497f2195cbbf8

Lexer:
IDENTIFIER_OR_KEYWORD :
      [a-z A-Z] [a-z A-Z 0-9 _]*
   | _ [a-z A-Z 0-9 _]+

RAW_IDENTIFIER : r# IDENTIFIER_OR_KEYWORD Except crate, extern, self, super, Self

NON_KEYWORD_IDENTIFIER : IDENTIFIER_OR_KEYWORD Except a strict or reserved keyword

IDENTIFIER :
NON_KEYWORD_IDENTIFIER | RAW_IDENTIFIER

标识符是以下形式的任何非空ASCII字符串:

要么

  • 第一个字符是一个字母。
  • 其余字符是字母数字或_。

或者

  • 第一个字符是_。
  • 标识符不止一个字符。 单独_不是标识符。
  • 其余字符是字母数字或_。

原始标识符类似于普通标识符,但以r#为前缀。(请注意,r#前缀不包含在实际标识符的一部分中。)与普通标识符不同,原始标识符可以是除上面列出的RAW_IDENTIFIER之外的任何严格或保留关键字。