aboutsummaryrefslogtreecommitdiff
path: root/src/syntax_kinds.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/syntax_kinds.rs')
-rw-r--r--src/syntax_kinds.rs130
1 files changed, 77 insertions, 53 deletions
diff --git a/src/syntax_kinds.rs b/src/syntax_kinds.rs
index b83f48dd8..a1bcad062 100644
--- a/src/syntax_kinds.rs
+++ b/src/syntax_kinds.rs
@@ -1,60 +1,72 @@
1// Generated from grammar.ron 1// Generated from grammar.ron
2use tree::{SyntaxKind, SyntaxInfo}; 2use tree::{SyntaxKind, SyntaxInfo};
3 3
4pub const ERROR: SyntaxKind = SyntaxKind(0); 4pub const USE_KW: SyntaxKind = SyntaxKind(0);
5pub const IDENT: SyntaxKind = SyntaxKind(1); 5pub const FN_KW: SyntaxKind = SyntaxKind(1);
6pub const UNDERSCORE: SyntaxKind = SyntaxKind(2); 6pub const STRUCT_KW: SyntaxKind = SyntaxKind(2);
7pub const WHITESPACE: SyntaxKind = SyntaxKind(3); 7pub const ENUM_KW: SyntaxKind = SyntaxKind(3);
8pub const INT_NUMBER: SyntaxKind = SyntaxKind(4); 8pub const TRAIT_KW: SyntaxKind = SyntaxKind(4);
9pub const FLOAT_NUMBER: SyntaxKind = SyntaxKind(5); 9pub const IMPL_KW: SyntaxKind = SyntaxKind(5);
10pub const SEMI: SyntaxKind = SyntaxKind(6); 10pub const ERROR: SyntaxKind = SyntaxKind(6);
11pub const COMMA: SyntaxKind = SyntaxKind(7); 11pub const IDENT: SyntaxKind = SyntaxKind(7);
12pub const DOT: SyntaxKind = SyntaxKind(8); 12pub const UNDERSCORE: SyntaxKind = SyntaxKind(8);
13pub const DOTDOT: SyntaxKind = SyntaxKind(9); 13pub const WHITESPACE: SyntaxKind = SyntaxKind(9);
14pub const DOTDOTDOT: SyntaxKind = SyntaxKind(10); 14pub const INT_NUMBER: SyntaxKind = SyntaxKind(10);
15pub const DOTDOTEQ: SyntaxKind = SyntaxKind(11); 15pub const FLOAT_NUMBER: SyntaxKind = SyntaxKind(11);
16pub const L_PAREN: SyntaxKind = SyntaxKind(12); 16pub const SEMI: SyntaxKind = SyntaxKind(12);
17pub const R_PAREN: SyntaxKind = SyntaxKind(13); 17pub const COMMA: SyntaxKind = SyntaxKind(13);
18pub const L_CURLY: SyntaxKind = SyntaxKind(14); 18pub const DOT: SyntaxKind = SyntaxKind(14);
19pub const R_CURLY: SyntaxKind = SyntaxKind(15); 19pub const DOTDOT: SyntaxKind = SyntaxKind(15);
20pub const L_BRACK: SyntaxKind = SyntaxKind(16); 20pub const DOTDOTDOT: SyntaxKind = SyntaxKind(16);
21pub const R_BRACK: SyntaxKind = SyntaxKind(17); 21pub const DOTDOTEQ: SyntaxKind = SyntaxKind(17);
22pub const L_ANGLE: SyntaxKind = SyntaxKind(18); 22pub const L_PAREN: SyntaxKind = SyntaxKind(18);
23pub const R_ANGLE: SyntaxKind = SyntaxKind(19); 23pub const R_PAREN: SyntaxKind = SyntaxKind(19);
24pub const AT: SyntaxKind = SyntaxKind(20); 24pub const L_CURLY: SyntaxKind = SyntaxKind(20);
25pub const POUND: SyntaxKind = SyntaxKind(21); 25pub const R_CURLY: SyntaxKind = SyntaxKind(21);
26pub const TILDE: SyntaxKind = SyntaxKind(22); 26pub const L_BRACK: SyntaxKind = SyntaxKind(22);
27pub const QUESTION: SyntaxKind = SyntaxKind(23); 27pub const R_BRACK: SyntaxKind = SyntaxKind(23);
28pub const COLON: SyntaxKind = SyntaxKind(24); 28pub const L_ANGLE: SyntaxKind = SyntaxKind(24);
29pub const COLONCOLON: SyntaxKind = SyntaxKind(25); 29pub const R_ANGLE: SyntaxKind = SyntaxKind(25);
30pub const DOLLAR: SyntaxKind = SyntaxKind(26); 30pub const AT: SyntaxKind = SyntaxKind(26);
31pub const EQ: SyntaxKind = SyntaxKind(27); 31pub const POUND: SyntaxKind = SyntaxKind(27);
32pub const EQEQ: SyntaxKind = SyntaxKind(28); 32pub const TILDE: SyntaxKind = SyntaxKind(28);
33pub const FAT_ARROW: SyntaxKind = SyntaxKind(29); 33pub const QUESTION: SyntaxKind = SyntaxKind(29);
34pub const NEQ: SyntaxKind = SyntaxKind(30); 34pub const COLON: SyntaxKind = SyntaxKind(30);
35pub const NOT: SyntaxKind = SyntaxKind(31); 35pub const COLONCOLON: SyntaxKind = SyntaxKind(31);
36pub const LIFETIME: SyntaxKind = SyntaxKind(32); 36pub const DOLLAR: SyntaxKind = SyntaxKind(32);
37pub const CHAR: SyntaxKind = SyntaxKind(33); 37pub const EQ: SyntaxKind = SyntaxKind(33);
38pub const BYTE: SyntaxKind = SyntaxKind(34); 38pub const EQEQ: SyntaxKind = SyntaxKind(34);
39pub const STRING: SyntaxKind = SyntaxKind(35); 39pub const FAT_ARROW: SyntaxKind = SyntaxKind(35);
40pub const RAW_STRING: SyntaxKind = SyntaxKind(36); 40pub const NEQ: SyntaxKind = SyntaxKind(36);
41pub const BYTE_STRING: SyntaxKind = SyntaxKind(37); 41pub const NOT: SyntaxKind = SyntaxKind(37);
42pub const RAW_BYTE_STRING: SyntaxKind = SyntaxKind(38); 42pub const LIFETIME: SyntaxKind = SyntaxKind(38);
43pub const PLUS: SyntaxKind = SyntaxKind(39); 43pub const CHAR: SyntaxKind = SyntaxKind(39);
44pub const MINUS: SyntaxKind = SyntaxKind(40); 44pub const BYTE: SyntaxKind = SyntaxKind(40);
45pub const STAR: SyntaxKind = SyntaxKind(41); 45pub const STRING: SyntaxKind = SyntaxKind(41);
46pub const SLASH: SyntaxKind = SyntaxKind(42); 46pub const RAW_STRING: SyntaxKind = SyntaxKind(42);
47pub const CARET: SyntaxKind = SyntaxKind(43); 47pub const BYTE_STRING: SyntaxKind = SyntaxKind(43);
48pub const PERCENT: SyntaxKind = SyntaxKind(44); 48pub const RAW_BYTE_STRING: SyntaxKind = SyntaxKind(44);
49pub const AMPERSAND: SyntaxKind = SyntaxKind(45); 49pub const PLUS: SyntaxKind = SyntaxKind(45);
50pub const PIPE: SyntaxKind = SyntaxKind(46); 50pub const MINUS: SyntaxKind = SyntaxKind(46);
51pub const THIN_ARROW: SyntaxKind = SyntaxKind(47); 51pub const STAR: SyntaxKind = SyntaxKind(47);
52pub const COMMENT: SyntaxKind = SyntaxKind(48); 52pub const SLASH: SyntaxKind = SyntaxKind(48);
53pub const DOC_COMMENT: SyntaxKind = SyntaxKind(49); 53pub const CARET: SyntaxKind = SyntaxKind(49);
54pub const SHEBANG: SyntaxKind = SyntaxKind(50); 54pub const PERCENT: SyntaxKind = SyntaxKind(50);
55pub const FILE: SyntaxKind = SyntaxKind(51); 55pub const AMPERSAND: SyntaxKind = SyntaxKind(51);
56pub const PIPE: SyntaxKind = SyntaxKind(52);
57pub const THIN_ARROW: SyntaxKind = SyntaxKind(53);
58pub const COMMENT: SyntaxKind = SyntaxKind(54);
59pub const DOC_COMMENT: SyntaxKind = SyntaxKind(55);
60pub const SHEBANG: SyntaxKind = SyntaxKind(56);
61pub const FILE: SyntaxKind = SyntaxKind(57);
56 62
57static INFOS: [SyntaxInfo; 52] = [ 63static INFOS: [SyntaxInfo; 58] = [
64 SyntaxInfo { name: "USE_KW" },
65 SyntaxInfo { name: "FN_KW" },
66 SyntaxInfo { name: "STRUCT_KW" },
67 SyntaxInfo { name: "ENUM_KW" },
68 SyntaxInfo { name: "TRAIT_KW" },
69 SyntaxInfo { name: "IMPL_KW" },
58 SyntaxInfo { name: "ERROR" }, 70 SyntaxInfo { name: "ERROR" },
59 SyntaxInfo { name: "IDENT" }, 71 SyntaxInfo { name: "IDENT" },
60 SyntaxInfo { name: "UNDERSCORE" }, 72 SyntaxInfo { name: "UNDERSCORE" },
@@ -112,3 +124,15 @@ static INFOS: [SyntaxInfo; 52] = [
112pub(crate) fn syntax_info(kind: SyntaxKind) -> &'static SyntaxInfo { 124pub(crate) fn syntax_info(kind: SyntaxKind) -> &'static SyntaxInfo {
113 &INFOS[kind.0 as usize] 125 &INFOS[kind.0 as usize]
114} 126}
127
128pub(crate) fn ident_to_keyword(ident: &str) -> Option<SyntaxKind> {
129 match ident {
130 "use" => Some(USE_KW),
131 "fn" => Some(FN_KW),
132 "struct" => Some(STRUCT_KW),
133 "enum" => Some(ENUM_KW),
134 "trait" => Some(TRAIT_KW),
135 "impl" => Some(IMPL_KW),
136 _ => None,
137 }
138}