-static INFOS: [SyntaxInfo; 84] = [
- SyntaxInfo { name: "USE_KW" },
- SyntaxInfo { name: "FN_KW" },
- SyntaxInfo { name: "STRUCT_KW" },
- SyntaxInfo { name: "ENUM_KW" },
- SyntaxInfo { name: "TRAIT_KW" },
- SyntaxInfo { name: "IMPL_KW" },
- SyntaxInfo { name: "TRUE_KW" },
- SyntaxInfo { name: "FALSE_KW" },
- SyntaxInfo { name: "AS_KW" },
- SyntaxInfo { name: "EXTERN_KW" },
- SyntaxInfo { name: "CRATE_KW" },
- SyntaxInfo { name: "MOD_KW" },
- SyntaxInfo { name: "PUB_KW" },
- SyntaxInfo { name: "SELF_KW" },
- SyntaxInfo { name: "SUPER_KW" },
- SyntaxInfo { name: "IN_KW" },
- SyntaxInfo { name: "WHERE_KW" },
- SyntaxInfo { name: "ERROR" },
- SyntaxInfo { name: "IDENT" },
- SyntaxInfo { name: "UNDERSCORE" },
- SyntaxInfo { name: "WHITESPACE" },
- SyntaxInfo { name: "INT_NUMBER" },
- SyntaxInfo { name: "FLOAT_NUMBER" },
- SyntaxInfo { name: "SEMI" },
- SyntaxInfo { name: "COMMA" },
- SyntaxInfo { name: "DOT" },
- SyntaxInfo { name: "DOTDOT" },
- SyntaxInfo { name: "DOTDOTDOT" },
- SyntaxInfo { name: "DOTDOTEQ" },
- SyntaxInfo { name: "L_PAREN" },
- SyntaxInfo { name: "R_PAREN" },
- SyntaxInfo { name: "L_CURLY" },
- SyntaxInfo { name: "R_CURLY" },
- SyntaxInfo { name: "L_BRACK" },
- SyntaxInfo { name: "R_BRACK" },
- SyntaxInfo { name: "L_ANGLE" },
- SyntaxInfo { name: "R_ANGLE" },
- SyntaxInfo { name: "AT" },
- SyntaxInfo { name: "POUND" },
- SyntaxInfo { name: "TILDE" },
- SyntaxInfo { name: "QUESTION" },
- SyntaxInfo { name: "COLON" },
- SyntaxInfo { name: "COLONCOLON" },
- SyntaxInfo { name: "DOLLAR" },
- SyntaxInfo { name: "EQ" },
- SyntaxInfo { name: "EQEQ" },
- SyntaxInfo { name: "FAT_ARROW" },
- SyntaxInfo { name: "NEQ" },
- SyntaxInfo { name: "EXCL" },
- SyntaxInfo { name: "LIFETIME" },
- SyntaxInfo { name: "CHAR" },
- SyntaxInfo { name: "BYTE" },
- SyntaxInfo { name: "STRING" },
- SyntaxInfo { name: "RAW_STRING" },
- SyntaxInfo { name: "BYTE_STRING" },
- SyntaxInfo { name: "RAW_BYTE_STRING" },
- SyntaxInfo { name: "PLUS" },
- SyntaxInfo { name: "MINUS" },
- SyntaxInfo { name: "STAR" },
- SyntaxInfo { name: "SLASH" },
- SyntaxInfo { name: "CARET" },
- SyntaxInfo { name: "PERCENT" },
- SyntaxInfo { name: "AMPERSAND" },
- SyntaxInfo { name: "PIPE" },
- SyntaxInfo { name: "THIN_ARROW" },
- SyntaxInfo { name: "COMMENT" },
- SyntaxInfo { name: "DOC_COMMENT" },
- SyntaxInfo { name: "SHEBANG" },
- SyntaxInfo { name: "FILE" },
- SyntaxInfo { name: "STRUCT_ITEM" },
- SyntaxInfo { name: "NAMED_FIELD" },
- SyntaxInfo { name: "POS_FIELD" },
- SyntaxInfo { name: "FN_ITEM" },
- SyntaxInfo { name: "EXTERN_CRATE_ITEM" },
- SyntaxInfo { name: "ATTR" },
- SyntaxInfo { name: "META_ITEM" },
- SyntaxInfo { name: "MOD_ITEM" },
- SyntaxInfo { name: "USE_ITEM" },
- SyntaxInfo { name: "USE_TREE" },
- SyntaxInfo { name: "PATH" },
- SyntaxInfo { name: "PATH_SEGMENT" },
- SyntaxInfo { name: "LITERAL" },
- SyntaxInfo { name: "ALIAS" },
- SyntaxInfo { name: "VISIBILITY" },
-];
+ TOMBSTONE = !0 - 1,
+ EOF = !0,
+}
+pub(crate) use self::SyntaxKind::*;
+
+impl SyntaxKind {
+ pub(crate) fn info(self) -> &'static SyntaxInfo {
+ match self {
+ USE_KW => &SyntaxInfo { name: "USE_KW" },
+ FN_KW => &SyntaxInfo { name: "FN_KW" },
+ STRUCT_KW => &SyntaxInfo { name: "STRUCT_KW" },
+ ENUM_KW => &SyntaxInfo { name: "ENUM_KW" },
+ TRAIT_KW => &SyntaxInfo { name: "TRAIT_KW" },
+ IMPL_KW => &SyntaxInfo { name: "IMPL_KW" },
+ TRUE_KW => &SyntaxInfo { name: "TRUE_KW" },
+ FALSE_KW => &SyntaxInfo { name: "FALSE_KW" },
+ AS_KW => &SyntaxInfo { name: "AS_KW" },
+ EXTERN_KW => &SyntaxInfo { name: "EXTERN_KW" },
+ CRATE_KW => &SyntaxInfo { name: "CRATE_KW" },
+ MOD_KW => &SyntaxInfo { name: "MOD_KW" },
+ PUB_KW => &SyntaxInfo { name: "PUB_KW" },
+ SELF_KW => &SyntaxInfo { name: "SELF_KW" },
+ SUPER_KW => &SyntaxInfo { name: "SUPER_KW" },
+ IN_KW => &SyntaxInfo { name: "IN_KW" },
+ WHERE_KW => &SyntaxInfo { name: "WHERE_KW" },
+ ERROR => &SyntaxInfo { name: "ERROR" },
+ IDENT => &SyntaxInfo { name: "IDENT" },
+ UNDERSCORE => &SyntaxInfo { name: "UNDERSCORE" },
+ WHITESPACE => &SyntaxInfo { name: "WHITESPACE" },
+ INT_NUMBER => &SyntaxInfo { name: "INT_NUMBER" },
+ FLOAT_NUMBER => &SyntaxInfo { name: "FLOAT_NUMBER" },
+ SEMI => &SyntaxInfo { name: "SEMI" },
+ COMMA => &SyntaxInfo { name: "COMMA" },
+ DOT => &SyntaxInfo { name: "DOT" },
+ DOTDOT => &SyntaxInfo { name: "DOTDOT" },
+ DOTDOTDOT => &SyntaxInfo { name: "DOTDOTDOT" },
+ DOTDOTEQ => &SyntaxInfo { name: "DOTDOTEQ" },
+ L_PAREN => &SyntaxInfo { name: "L_PAREN" },
+ R_PAREN => &SyntaxInfo { name: "R_PAREN" },
+ L_CURLY => &SyntaxInfo { name: "L_CURLY" },
+ R_CURLY => &SyntaxInfo { name: "R_CURLY" },
+ L_BRACK => &SyntaxInfo { name: "L_BRACK" },
+ R_BRACK => &SyntaxInfo { name: "R_BRACK" },
+ L_ANGLE => &SyntaxInfo { name: "L_ANGLE" },
+ R_ANGLE => &SyntaxInfo { name: "R_ANGLE" },
+ AT => &SyntaxInfo { name: "AT" },
+ POUND => &SyntaxInfo { name: "POUND" },
+ TILDE => &SyntaxInfo { name: "TILDE" },
+ QUESTION => &SyntaxInfo { name: "QUESTION" },
+ COLON => &SyntaxInfo { name: "COLON" },
+ COLONCOLON => &SyntaxInfo { name: "COLONCOLON" },
+ DOLLAR => &SyntaxInfo { name: "DOLLAR" },
+ EQ => &SyntaxInfo { name: "EQ" },
+ EQEQ => &SyntaxInfo { name: "EQEQ" },
+ FAT_ARROW => &SyntaxInfo { name: "FAT_ARROW" },
+ NEQ => &SyntaxInfo { name: "NEQ" },
+ EXCL => &SyntaxInfo { name: "EXCL" },
+ LIFETIME => &SyntaxInfo { name: "LIFETIME" },
+ CHAR => &SyntaxInfo { name: "CHAR" },
+ BYTE => &SyntaxInfo { name: "BYTE" },
+ STRING => &SyntaxInfo { name: "STRING" },
+ RAW_STRING => &SyntaxInfo { name: "RAW_STRING" },
+ BYTE_STRING => &SyntaxInfo { name: "BYTE_STRING" },
+ RAW_BYTE_STRING => &SyntaxInfo { name: "RAW_BYTE_STRING" },
+ PLUS => &SyntaxInfo { name: "PLUS" },
+ MINUS => &SyntaxInfo { name: "MINUS" },
+ STAR => &SyntaxInfo { name: "STAR" },
+ SLASH => &SyntaxInfo { name: "SLASH" },
+ CARET => &SyntaxInfo { name: "CARET" },
+ PERCENT => &SyntaxInfo { name: "PERCENT" },
+ AMPERSAND => &SyntaxInfo { name: "AMPERSAND" },
+ PIPE => &SyntaxInfo { name: "PIPE" },
+ THIN_ARROW => &SyntaxInfo { name: "THIN_ARROW" },
+ COMMENT => &SyntaxInfo { name: "COMMENT" },
+ DOC_COMMENT => &SyntaxInfo { name: "DOC_COMMENT" },
+ SHEBANG => &SyntaxInfo { name: "SHEBANG" },
+ FILE => &SyntaxInfo { name: "FILE" },
+ STRUCT_ITEM => &SyntaxInfo { name: "STRUCT_ITEM" },
+ NAMED_FIELD => &SyntaxInfo { name: "NAMED_FIELD" },
+ POS_FIELD => &SyntaxInfo { name: "POS_FIELD" },
+ FN_ITEM => &SyntaxInfo { name: "FN_ITEM" },
+ EXTERN_CRATE_ITEM => &SyntaxInfo { name: "EXTERN_CRATE_ITEM" },
+ ATTR => &SyntaxInfo { name: "ATTR" },
+ META_ITEM => &SyntaxInfo { name: "META_ITEM" },
+ MOD_ITEM => &SyntaxInfo { name: "MOD_ITEM" },
+ USE_ITEM => &SyntaxInfo { name: "USE_ITEM" },
+ USE_TREE => &SyntaxInfo { name: "USE_TREE" },
+ PATH => &SyntaxInfo { name: "PATH" },
+ PATH_SEGMENT => &SyntaxInfo { name: "PATH_SEGMENT" },
+ LITERAL => &SyntaxInfo { name: "LITERAL" },
+ ALIAS => &SyntaxInfo { name: "ALIAS" },
+ VISIBILITY => &SyntaxInfo { name: "VISIBILITY" },