rust/src/syntax_kinds.rs

149 lines
5.6 KiB
Rust
Raw Normal View History

2017-12-28 23:21:54 +01:00
// Generated from grammar.ron
2017-12-28 22:56:36 +01:00
use tree::{SyntaxKind, SyntaxInfo};
2018-01-01 16:58:46 +01:00
pub const USE_KW: SyntaxKind = SyntaxKind(0);
pub const FN_KW: SyntaxKind = SyntaxKind(1);
pub const STRUCT_KW: SyntaxKind = SyntaxKind(2);
pub const ENUM_KW: SyntaxKind = SyntaxKind(3);
pub const TRAIT_KW: SyntaxKind = SyntaxKind(4);
pub const IMPL_KW: SyntaxKind = SyntaxKind(5);
pub const ERROR: SyntaxKind = SyntaxKind(6);
pub const IDENT: SyntaxKind = SyntaxKind(7);
pub const UNDERSCORE: SyntaxKind = SyntaxKind(8);
pub const WHITESPACE: SyntaxKind = SyntaxKind(9);
pub const INT_NUMBER: SyntaxKind = SyntaxKind(10);
pub const FLOAT_NUMBER: SyntaxKind = SyntaxKind(11);
pub const SEMI: SyntaxKind = SyntaxKind(12);
pub const COMMA: SyntaxKind = SyntaxKind(13);
pub const DOT: SyntaxKind = SyntaxKind(14);
pub const DOTDOT: SyntaxKind = SyntaxKind(15);
pub const DOTDOTDOT: SyntaxKind = SyntaxKind(16);
pub const DOTDOTEQ: SyntaxKind = SyntaxKind(17);
pub const L_PAREN: SyntaxKind = SyntaxKind(18);
pub const R_PAREN: SyntaxKind = SyntaxKind(19);
pub const L_CURLY: SyntaxKind = SyntaxKind(20);
pub const R_CURLY: SyntaxKind = SyntaxKind(21);
pub const L_BRACK: SyntaxKind = SyntaxKind(22);
pub const R_BRACK: SyntaxKind = SyntaxKind(23);
pub const L_ANGLE: SyntaxKind = SyntaxKind(24);
pub const R_ANGLE: SyntaxKind = SyntaxKind(25);
pub const AT: SyntaxKind = SyntaxKind(26);
pub const POUND: SyntaxKind = SyntaxKind(27);
pub const TILDE: SyntaxKind = SyntaxKind(28);
pub const QUESTION: SyntaxKind = SyntaxKind(29);
pub const COLON: SyntaxKind = SyntaxKind(30);
pub const COLONCOLON: SyntaxKind = SyntaxKind(31);
pub const DOLLAR: SyntaxKind = SyntaxKind(32);
pub const EQ: SyntaxKind = SyntaxKind(33);
pub const EQEQ: SyntaxKind = SyntaxKind(34);
pub const FAT_ARROW: SyntaxKind = SyntaxKind(35);
pub const NEQ: SyntaxKind = SyntaxKind(36);
2018-01-07 17:50:54 +01:00
pub const EXCL: SyntaxKind = SyntaxKind(37);
2018-01-01 16:58:46 +01:00
pub const LIFETIME: SyntaxKind = SyntaxKind(38);
pub const CHAR: SyntaxKind = SyntaxKind(39);
pub const BYTE: SyntaxKind = SyntaxKind(40);
pub const STRING: SyntaxKind = SyntaxKind(41);
pub const RAW_STRING: SyntaxKind = SyntaxKind(42);
pub const BYTE_STRING: SyntaxKind = SyntaxKind(43);
pub const RAW_BYTE_STRING: SyntaxKind = SyntaxKind(44);
pub const PLUS: SyntaxKind = SyntaxKind(45);
pub const MINUS: SyntaxKind = SyntaxKind(46);
pub const STAR: SyntaxKind = SyntaxKind(47);
pub const SLASH: SyntaxKind = SyntaxKind(48);
pub const CARET: SyntaxKind = SyntaxKind(49);
pub const PERCENT: SyntaxKind = SyntaxKind(50);
pub const AMPERSAND: SyntaxKind = SyntaxKind(51);
pub const PIPE: SyntaxKind = SyntaxKind(52);
pub const THIN_ARROW: SyntaxKind = SyntaxKind(53);
pub const COMMENT: SyntaxKind = SyntaxKind(54);
pub const DOC_COMMENT: SyntaxKind = SyntaxKind(55);
pub const SHEBANG: SyntaxKind = SyntaxKind(56);
pub const FILE: SyntaxKind = SyntaxKind(57);
2018-01-01 20:13:04 +01:00
pub const STRUCT_ITEM: SyntaxKind = SyntaxKind(58);
2018-01-06 15:16:00 +01:00
pub const STRUCT_FIELD: SyntaxKind = SyntaxKind(59);
2018-01-07 14:01:30 +01:00
pub const FN_ITEM: SyntaxKind = SyntaxKind(60);
2018-01-07 17:50:54 +01:00
pub const ATTR: SyntaxKind = SyntaxKind(61);
2018-01-07 19:40:18 +01:00
pub const META_ITEM: SyntaxKind = SyntaxKind(62);
2017-12-28 22:56:36 +01:00
2018-01-07 19:40:18 +01:00
static INFOS: [SyntaxInfo; 63] = [
2018-01-01 16:58:46 +01:00
SyntaxInfo { name: "USE_KW" },
SyntaxInfo { name: "FN_KW" },
SyntaxInfo { name: "STRUCT_KW" },
SyntaxInfo { name: "ENUM_KW" },
SyntaxInfo { name: "TRAIT_KW" },
SyntaxInfo { name: "IMPL_KW" },
2017-12-29 22:48:47 +01:00
SyntaxInfo { name: "ERROR" },
2017-12-29 18:47:54 +01:00
SyntaxInfo { name: "IDENT" },
2017-12-29 22:48:47 +01:00
SyntaxInfo { name: "UNDERSCORE" },
2017-12-29 18:47:54 +01:00
SyntaxInfo { name: "WHITESPACE" },
2017-12-30 13:22:40 +01:00
SyntaxInfo { name: "INT_NUMBER" },
SyntaxInfo { name: "FLOAT_NUMBER" },
2017-12-30 14:30:37 +01:00
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" },
2017-12-30 18:56:54 +01:00
SyntaxInfo { name: "L_ANGLE" },
SyntaxInfo { name: "R_ANGLE" },
2017-12-30 14:30:37 +01:00
SyntaxInfo { name: "AT" },
SyntaxInfo { name: "POUND" },
SyntaxInfo { name: "TILDE" },
SyntaxInfo { name: "QUESTION" },
SyntaxInfo { name: "COLON" },
SyntaxInfo { name: "COLONCOLON" },
SyntaxInfo { name: "DOLLAR" },
2017-12-30 16:25:37 +01:00
SyntaxInfo { name: "EQ" },
SyntaxInfo { name: "EQEQ" },
SyntaxInfo { name: "FAT_ARROW" },
SyntaxInfo { name: "NEQ" },
2018-01-07 17:50:54 +01:00
SyntaxInfo { name: "EXCL" },
2017-12-31 08:41:42 +01:00
SyntaxInfo { name: "LIFETIME" },
2017-12-31 12:02:55 +01:00
SyntaxInfo { name: "CHAR" },
SyntaxInfo { name: "BYTE" },
SyntaxInfo { name: "STRING" },
SyntaxInfo { name: "RAW_STRING" },
SyntaxInfo { name: "BYTE_STRING" },
SyntaxInfo { name: "RAW_BYTE_STRING" },
2017-12-31 13:29:09 +01:00
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" },
2017-12-31 14:42:22 +01:00
SyntaxInfo { name: "COMMENT" },
SyntaxInfo { name: "DOC_COMMENT" },
SyntaxInfo { name: "SHEBANG" },
2017-12-31 21:27:36 +01:00
SyntaxInfo { name: "FILE" },
2018-01-01 20:13:04 +01:00
SyntaxInfo { name: "STRUCT_ITEM" },
2018-01-06 15:16:00 +01:00
SyntaxInfo { name: "STRUCT_FIELD" },
2018-01-07 14:01:30 +01:00
SyntaxInfo { name: "FN_ITEM" },
2018-01-07 17:50:54 +01:00
SyntaxInfo { name: "ATTR" },
2018-01-07 19:40:18 +01:00
SyntaxInfo { name: "META_ITEM" },
2017-12-29 18:47:54 +01:00
];
2017-12-28 22:56:36 +01:00
pub(crate) fn syntax_info(kind: SyntaxKind) -> &'static SyntaxInfo {
2017-12-29 18:47:54 +01:00
&INFOS[kind.0 as usize]
2017-12-28 23:21:54 +01:00
}
2018-01-01 16:58:46 +01:00
pub(crate) fn ident_to_keyword(ident: &str) -> Option<SyntaxKind> {
match ident {
"use" => Some(USE_KW),
"fn" => Some(FN_KW),
"struct" => Some(STRUCT_KW),
"enum" => Some(ENUM_KW),
"trait" => Some(TRAIT_KW),
"impl" => Some(IMPL_KW),
_ => None,
}
}