• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //! Generated by `sourcegen_ast`, do not edit by hand.
2 
3 #![allow(bad_style, missing_docs, unreachable_pub)]
4 #[doc = r" The kind of syntax node, e.g. `IDENT`, `USE_KW`, or `STRUCT`."]
5 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
6 #[repr(u16)]
7 pub enum SyntaxKind {
8     #[doc(hidden)]
9     TOMBSTONE,
10     #[doc(hidden)]
11     EOF,
12     SEMICOLON,
13     COMMA,
14     L_PAREN,
15     R_PAREN,
16     L_CURLY,
17     R_CURLY,
18     L_BRACK,
19     R_BRACK,
20     L_ANGLE,
21     R_ANGLE,
22     AT,
23     POUND,
24     TILDE,
25     QUESTION,
26     DOLLAR,
27     AMP,
28     PIPE,
29     PLUS,
30     STAR,
31     SLASH,
32     CARET,
33     PERCENT,
34     UNDERSCORE,
35     DOT,
36     DOT2,
37     DOT3,
38     DOT2EQ,
39     COLON,
40     COLON2,
41     EQ,
42     EQ2,
43     FAT_ARROW,
44     BANG,
45     NEQ,
46     MINUS,
47     THIN_ARROW,
48     LTEQ,
49     GTEQ,
50     PLUSEQ,
51     MINUSEQ,
52     PIPEEQ,
53     AMPEQ,
54     CARETEQ,
55     SLASHEQ,
56     STAREQ,
57     PERCENTEQ,
58     AMP2,
59     PIPE2,
60     SHL,
61     SHR,
62     SHLEQ,
63     SHREQ,
64     AS_KW,
65     ASYNC_KW,
66     AWAIT_KW,
67     BOX_KW,
68     BREAK_KW,
69     CONST_KW,
70     CONTINUE_KW,
71     CRATE_KW,
72     DO_KW,
73     DYN_KW,
74     ELSE_KW,
75     ENUM_KW,
76     EXTERN_KW,
77     FALSE_KW,
78     FN_KW,
79     FOR_KW,
80     IF_KW,
81     IMPL_KW,
82     IN_KW,
83     LET_KW,
84     LOOP_KW,
85     MACRO_KW,
86     MATCH_KW,
87     MOD_KW,
88     MOVE_KW,
89     MUT_KW,
90     PUB_KW,
91     REF_KW,
92     RETURN_KW,
93     SELF_KW,
94     SELF_TYPE_KW,
95     STATIC_KW,
96     STRUCT_KW,
97     SUPER_KW,
98     TRAIT_KW,
99     TRUE_KW,
100     TRY_KW,
101     TYPE_KW,
102     UNSAFE_KW,
103     USE_KW,
104     WHERE_KW,
105     WHILE_KW,
106     YIELD_KW,
107     AUTO_KW,
108     DEFAULT_KW,
109     EXISTENTIAL_KW,
110     UNION_KW,
111     RAW_KW,
112     MACRO_RULES_KW,
113     YEET_KW,
114     INT_NUMBER,
115     FLOAT_NUMBER,
116     CHAR,
117     BYTE,
118     STRING,
119     BYTE_STRING,
120     C_STRING,
121     ERROR,
122     IDENT,
123     WHITESPACE,
124     LIFETIME_IDENT,
125     COMMENT,
126     SHEBANG,
127     SOURCE_FILE,
128     STRUCT,
129     UNION,
130     ENUM,
131     FN,
132     RET_TYPE,
133     EXTERN_CRATE,
134     MODULE,
135     USE,
136     STATIC,
137     CONST,
138     TRAIT,
139     TRAIT_ALIAS,
140     IMPL,
141     TYPE_ALIAS,
142     MACRO_CALL,
143     MACRO_RULES,
144     MACRO_ARM,
145     TOKEN_TREE,
146     MACRO_DEF,
147     PAREN_TYPE,
148     TUPLE_TYPE,
149     MACRO_TYPE,
150     NEVER_TYPE,
151     PATH_TYPE,
152     PTR_TYPE,
153     ARRAY_TYPE,
154     SLICE_TYPE,
155     REF_TYPE,
156     INFER_TYPE,
157     FN_PTR_TYPE,
158     FOR_TYPE,
159     IMPL_TRAIT_TYPE,
160     DYN_TRAIT_TYPE,
161     OR_PAT,
162     PAREN_PAT,
163     REF_PAT,
164     BOX_PAT,
165     IDENT_PAT,
166     WILDCARD_PAT,
167     REST_PAT,
168     PATH_PAT,
169     RECORD_PAT,
170     RECORD_PAT_FIELD_LIST,
171     RECORD_PAT_FIELD,
172     TUPLE_STRUCT_PAT,
173     TUPLE_PAT,
174     SLICE_PAT,
175     RANGE_PAT,
176     LITERAL_PAT,
177     MACRO_PAT,
178     CONST_BLOCK_PAT,
179     TUPLE_EXPR,
180     ARRAY_EXPR,
181     PAREN_EXPR,
182     PATH_EXPR,
183     CLOSURE_EXPR,
184     IF_EXPR,
185     WHILE_EXPR,
186     LOOP_EXPR,
187     FOR_EXPR,
188     CONTINUE_EXPR,
189     BREAK_EXPR,
190     LABEL,
191     BLOCK_EXPR,
192     STMT_LIST,
193     RETURN_EXPR,
194     YIELD_EXPR,
195     YEET_EXPR,
196     LET_EXPR,
197     UNDERSCORE_EXPR,
198     MACRO_EXPR,
199     MATCH_EXPR,
200     MATCH_ARM_LIST,
201     MATCH_ARM,
202     MATCH_GUARD,
203     RECORD_EXPR,
204     RECORD_EXPR_FIELD_LIST,
205     RECORD_EXPR_FIELD,
206     BOX_EXPR,
207     CALL_EXPR,
208     INDEX_EXPR,
209     METHOD_CALL_EXPR,
210     FIELD_EXPR,
211     AWAIT_EXPR,
212     TRY_EXPR,
213     CAST_EXPR,
214     REF_EXPR,
215     PREFIX_EXPR,
216     RANGE_EXPR,
217     BIN_EXPR,
218     EXTERN_BLOCK,
219     EXTERN_ITEM_LIST,
220     VARIANT,
221     RECORD_FIELD_LIST,
222     RECORD_FIELD,
223     TUPLE_FIELD_LIST,
224     TUPLE_FIELD,
225     VARIANT_LIST,
226     ITEM_LIST,
227     ASSOC_ITEM_LIST,
228     ATTR,
229     META,
230     USE_TREE,
231     USE_TREE_LIST,
232     PATH,
233     PATH_SEGMENT,
234     LITERAL,
235     RENAME,
236     VISIBILITY,
237     WHERE_CLAUSE,
238     WHERE_PRED,
239     ABI,
240     NAME,
241     NAME_REF,
242     LET_STMT,
243     LET_ELSE,
244     EXPR_STMT,
245     GENERIC_PARAM_LIST,
246     GENERIC_PARAM,
247     LIFETIME_PARAM,
248     TYPE_PARAM,
249     RETURN_TYPE_ARG,
250     CONST_PARAM,
251     GENERIC_ARG_LIST,
252     LIFETIME,
253     LIFETIME_ARG,
254     TYPE_ARG,
255     ASSOC_TYPE_ARG,
256     CONST_ARG,
257     PARAM_LIST,
258     PARAM,
259     SELF_PARAM,
260     ARG_LIST,
261     TYPE_BOUND,
262     TYPE_BOUND_LIST,
263     MACRO_ITEMS,
264     MACRO_STMTS,
265     #[doc(hidden)]
266     __LAST,
267 }
268 use self::SyntaxKind::*;
269 impl SyntaxKind {
is_keyword(self) -> bool270     pub fn is_keyword(self) -> bool {
271         matches!(
272             self,
273             AS_KW
274                 | ASYNC_KW
275                 | AWAIT_KW
276                 | BOX_KW
277                 | BREAK_KW
278                 | CONST_KW
279                 | CONTINUE_KW
280                 | CRATE_KW
281                 | DO_KW
282                 | DYN_KW
283                 | ELSE_KW
284                 | ENUM_KW
285                 | EXTERN_KW
286                 | FALSE_KW
287                 | FN_KW
288                 | FOR_KW
289                 | IF_KW
290                 | IMPL_KW
291                 | IN_KW
292                 | LET_KW
293                 | LOOP_KW
294                 | MACRO_KW
295                 | MATCH_KW
296                 | MOD_KW
297                 | MOVE_KW
298                 | MUT_KW
299                 | PUB_KW
300                 | REF_KW
301                 | RETURN_KW
302                 | SELF_KW
303                 | SELF_TYPE_KW
304                 | STATIC_KW
305                 | STRUCT_KW
306                 | SUPER_KW
307                 | TRAIT_KW
308                 | TRUE_KW
309                 | TRY_KW
310                 | TYPE_KW
311                 | UNSAFE_KW
312                 | USE_KW
313                 | WHERE_KW
314                 | WHILE_KW
315                 | YIELD_KW
316                 | AUTO_KW
317                 | DEFAULT_KW
318                 | EXISTENTIAL_KW
319                 | UNION_KW
320                 | RAW_KW
321                 | MACRO_RULES_KW
322                 | YEET_KW
323         )
324     }
is_punct(self) -> bool325     pub fn is_punct(self) -> bool {
326         matches!(
327             self,
328             SEMICOLON
329                 | COMMA
330                 | L_PAREN
331                 | R_PAREN
332                 | L_CURLY
333                 | R_CURLY
334                 | L_BRACK
335                 | R_BRACK
336                 | L_ANGLE
337                 | R_ANGLE
338                 | AT
339                 | POUND
340                 | TILDE
341                 | QUESTION
342                 | DOLLAR
343                 | AMP
344                 | PIPE
345                 | PLUS
346                 | STAR
347                 | SLASH
348                 | CARET
349                 | PERCENT
350                 | UNDERSCORE
351                 | DOT
352                 | DOT2
353                 | DOT3
354                 | DOT2EQ
355                 | COLON
356                 | COLON2
357                 | EQ
358                 | EQ2
359                 | FAT_ARROW
360                 | BANG
361                 | NEQ
362                 | MINUS
363                 | THIN_ARROW
364                 | LTEQ
365                 | GTEQ
366                 | PLUSEQ
367                 | MINUSEQ
368                 | PIPEEQ
369                 | AMPEQ
370                 | CARETEQ
371                 | SLASHEQ
372                 | STAREQ
373                 | PERCENTEQ
374                 | AMP2
375                 | PIPE2
376                 | SHL
377                 | SHR
378                 | SHLEQ
379                 | SHREQ
380         )
381     }
is_literal(self) -> bool382     pub fn is_literal(self) -> bool {
383         matches!(self, INT_NUMBER | FLOAT_NUMBER | CHAR | BYTE | STRING | BYTE_STRING | C_STRING)
384     }
from_keyword(ident: &str) -> Option<SyntaxKind>385     pub fn from_keyword(ident: &str) -> Option<SyntaxKind> {
386         let kw = match ident {
387             "as" => AS_KW,
388             "async" => ASYNC_KW,
389             "await" => AWAIT_KW,
390             "box" => BOX_KW,
391             "break" => BREAK_KW,
392             "const" => CONST_KW,
393             "continue" => CONTINUE_KW,
394             "crate" => CRATE_KW,
395             "do" => DO_KW,
396             "dyn" => DYN_KW,
397             "else" => ELSE_KW,
398             "enum" => ENUM_KW,
399             "extern" => EXTERN_KW,
400             "false" => FALSE_KW,
401             "fn" => FN_KW,
402             "for" => FOR_KW,
403             "if" => IF_KW,
404             "impl" => IMPL_KW,
405             "in" => IN_KW,
406             "let" => LET_KW,
407             "loop" => LOOP_KW,
408             "macro" => MACRO_KW,
409             "match" => MATCH_KW,
410             "mod" => MOD_KW,
411             "move" => MOVE_KW,
412             "mut" => MUT_KW,
413             "pub" => PUB_KW,
414             "ref" => REF_KW,
415             "return" => RETURN_KW,
416             "self" => SELF_KW,
417             "Self" => SELF_TYPE_KW,
418             "static" => STATIC_KW,
419             "struct" => STRUCT_KW,
420             "super" => SUPER_KW,
421             "trait" => TRAIT_KW,
422             "true" => TRUE_KW,
423             "try" => TRY_KW,
424             "type" => TYPE_KW,
425             "unsafe" => UNSAFE_KW,
426             "use" => USE_KW,
427             "where" => WHERE_KW,
428             "while" => WHILE_KW,
429             "yield" => YIELD_KW,
430             _ => return None,
431         };
432         Some(kw)
433     }
from_contextual_keyword(ident: &str) -> Option<SyntaxKind>434     pub fn from_contextual_keyword(ident: &str) -> Option<SyntaxKind> {
435         let kw = match ident {
436             "auto" => AUTO_KW,
437             "default" => DEFAULT_KW,
438             "existential" => EXISTENTIAL_KW,
439             "union" => UNION_KW,
440             "raw" => RAW_KW,
441             "macro_rules" => MACRO_RULES_KW,
442             "yeet" => YEET_KW,
443             _ => return None,
444         };
445         Some(kw)
446     }
from_char(c: char) -> Option<SyntaxKind>447     pub fn from_char(c: char) -> Option<SyntaxKind> {
448         let tok = match c {
449             ';' => SEMICOLON,
450             ',' => COMMA,
451             '(' => L_PAREN,
452             ')' => R_PAREN,
453             '{' => L_CURLY,
454             '}' => R_CURLY,
455             '[' => L_BRACK,
456             ']' => R_BRACK,
457             '<' => L_ANGLE,
458             '>' => R_ANGLE,
459             '@' => AT,
460             '#' => POUND,
461             '~' => TILDE,
462             '?' => QUESTION,
463             '$' => DOLLAR,
464             '&' => AMP,
465             '|' => PIPE,
466             '+' => PLUS,
467             '*' => STAR,
468             '/' => SLASH,
469             '^' => CARET,
470             '%' => PERCENT,
471             '_' => UNDERSCORE,
472             '.' => DOT,
473             ':' => COLON,
474             '=' => EQ,
475             '!' => BANG,
476             '-' => MINUS,
477             _ => return None,
478         };
479         Some(tok)
480     }
481 }
482 #[macro_export]
483 macro_rules ! T { [;] => { $ crate :: SyntaxKind :: SEMICOLON } ; [,] => { $ crate :: SyntaxKind :: COMMA } ; ['('] => { $ crate :: SyntaxKind :: L_PAREN } ; [')'] => { $ crate :: SyntaxKind :: R_PAREN } ; ['{'] => { $ crate :: SyntaxKind :: L_CURLY } ; ['}'] => { $ crate :: SyntaxKind :: R_CURLY } ; ['['] => { $ crate :: SyntaxKind :: L_BRACK } ; [']'] => { $ crate :: SyntaxKind :: R_BRACK } ; [<] => { $ crate :: SyntaxKind :: L_ANGLE } ; [>] => { $ crate :: SyntaxKind :: R_ANGLE } ; [@] => { $ crate :: SyntaxKind :: AT } ; [#] => { $ crate :: SyntaxKind :: POUND } ; [~] => { $ crate :: SyntaxKind :: TILDE } ; [?] => { $ crate :: SyntaxKind :: QUESTION } ; [$] => { $ crate :: SyntaxKind :: DOLLAR } ; [&] => { $ crate :: SyntaxKind :: AMP } ; [|] => { $ crate :: SyntaxKind :: PIPE } ; [+] => { $ crate :: SyntaxKind :: PLUS } ; [*] => { $ crate :: SyntaxKind :: STAR } ; [/] => { $ crate :: SyntaxKind :: SLASH } ; [^] => { $ crate :: SyntaxKind :: CARET } ; [%] => { $ crate :: SyntaxKind :: PERCENT } ; [_] => { $ crate :: SyntaxKind :: UNDERSCORE } ; [.] => { $ crate :: SyntaxKind :: DOT } ; [..] => { $ crate :: SyntaxKind :: DOT2 } ; [...] => { $ crate :: SyntaxKind :: DOT3 } ; [..=] => { $ crate :: SyntaxKind :: DOT2EQ } ; [:] => { $ crate :: SyntaxKind :: COLON } ; [::] => { $ crate :: SyntaxKind :: COLON2 } ; [=] => { $ crate :: SyntaxKind :: EQ } ; [==] => { $ crate :: SyntaxKind :: EQ2 } ; [=>] => { $ crate :: SyntaxKind :: FAT_ARROW } ; [!] => { $ crate :: SyntaxKind :: BANG } ; [!=] => { $ crate :: SyntaxKind :: NEQ } ; [-] => { $ crate :: SyntaxKind :: MINUS } ; [->] => { $ crate :: SyntaxKind :: THIN_ARROW } ; [<=] => { $ crate :: SyntaxKind :: LTEQ } ; [>=] => { $ crate :: SyntaxKind :: GTEQ } ; [+=] => { $ crate :: SyntaxKind :: PLUSEQ } ; [-=] => { $ crate :: SyntaxKind :: MINUSEQ } ; [|=] => { $ crate :: SyntaxKind :: PIPEEQ } ; [&=] => { $ crate :: SyntaxKind :: AMPEQ } ; [^=] => { $ crate :: SyntaxKind :: CARETEQ } ; [/=] => { $ crate :: SyntaxKind :: SLASHEQ } ; [*=] => { $ crate :: SyntaxKind :: STAREQ } ; [%=] => { $ crate :: SyntaxKind :: PERCENTEQ } ; [&&] => { $ crate :: SyntaxKind :: AMP2 } ; [||] => { $ crate :: SyntaxKind :: PIPE2 } ; [<<] => { $ crate :: SyntaxKind :: SHL } ; [>>] => { $ crate :: SyntaxKind :: SHR } ; [<<=] => { $ crate :: SyntaxKind :: SHLEQ } ; [>>=] => { $ crate :: SyntaxKind :: SHREQ } ; [as] => { $ crate :: SyntaxKind :: AS_KW } ; [async] => { $ crate :: SyntaxKind :: ASYNC_KW } ; [await] => { $ crate :: SyntaxKind :: AWAIT_KW } ; [box] => { $ crate :: SyntaxKind :: BOX_KW } ; [break] => { $ crate :: SyntaxKind :: BREAK_KW } ; [const] => { $ crate :: SyntaxKind :: CONST_KW } ; [continue] => { $ crate :: SyntaxKind :: CONTINUE_KW } ; [crate] => { $ crate :: SyntaxKind :: CRATE_KW } ; [do] => { $ crate :: SyntaxKind :: DO_KW } ; [dyn] => { $ crate :: SyntaxKind :: DYN_KW } ; [else] => { $ crate :: SyntaxKind :: ELSE_KW } ; [enum] => { $ crate :: SyntaxKind :: ENUM_KW } ; [extern] => { $ crate :: SyntaxKind :: EXTERN_KW } ; [false] => { $ crate :: SyntaxKind :: FALSE_KW } ; [fn] => { $ crate :: SyntaxKind :: FN_KW } ; [for] => { $ crate :: SyntaxKind :: FOR_KW } ; [if] => { $ crate :: SyntaxKind :: IF_KW } ; [impl] => { $ crate :: SyntaxKind :: IMPL_KW } ; [in] => { $ crate :: SyntaxKind :: IN_KW } ; [let] => { $ crate :: SyntaxKind :: LET_KW } ; [loop] => { $ crate :: SyntaxKind :: LOOP_KW } ; [macro] => { $ crate :: SyntaxKind :: MACRO_KW } ; [match] => { $ crate :: SyntaxKind :: MATCH_KW } ; [mod] => { $ crate :: SyntaxKind :: MOD_KW } ; [move] => { $ crate :: SyntaxKind :: MOVE_KW } ; [mut] => { $ crate :: SyntaxKind :: MUT_KW } ; [pub] => { $ crate :: SyntaxKind :: PUB_KW } ; [ref] => { $ crate :: SyntaxKind :: REF_KW } ; [return] => { $ crate :: SyntaxKind :: RETURN_KW } ; [self] => { $ crate :: SyntaxKind :: SELF_KW } ; [Self] => { $ crate :: SyntaxKind :: SELF_TYPE_KW } ; [static] => { $ crate :: SyntaxKind :: STATIC_KW } ; [struct] => { $ crate :: SyntaxKind :: STRUCT_KW } ; [super] => { $ crate :: SyntaxKind :: SUPER_KW } ; [trait] => { $ crate :: SyntaxKind :: TRAIT_KW } ; [true] => { $ crate :: SyntaxKind :: TRUE_KW } ; [try] => { $ crate :: SyntaxKind :: TRY_KW } ; [type] => { $ crate :: SyntaxKind :: TYPE_KW } ; [unsafe] => { $ crate :: SyntaxKind :: UNSAFE_KW } ; [use] => { $ crate :: SyntaxKind :: USE_KW } ; [where] => { $ crate :: SyntaxKind :: WHERE_KW } ; [while] => { $ crate :: SyntaxKind :: WHILE_KW } ; [yield] => { $ crate :: SyntaxKind :: YIELD_KW } ; [auto] => { $ crate :: SyntaxKind :: AUTO_KW } ; [default] => { $ crate :: SyntaxKind :: DEFAULT_KW } ; [existential] => { $ crate :: SyntaxKind :: EXISTENTIAL_KW } ; [union] => { $ crate :: SyntaxKind :: UNION_KW } ; [raw] => { $ crate :: SyntaxKind :: RAW_KW } ; [macro_rules] => { $ crate :: SyntaxKind :: MACRO_RULES_KW } ; [yeet] => { $ crate :: SyntaxKind :: YEET_KW } ; [lifetime_ident] => { $ crate :: SyntaxKind :: LIFETIME_IDENT } ; [ident] => { $ crate :: SyntaxKind :: IDENT } ; [shebang] => { $ crate :: SyntaxKind :: SHEBANG } ; }
484 pub use T;
485