cairo_lang_syntax/node/
kind.rs

1// Autogenerated file. To regenerate, please run `cargo run --bin generate-syntax`.
2use core::fmt;
3#[derive(Copy, Clone, Debug, Hash, PartialEq, Eq)]
4pub enum SyntaxKind {
5    Trivia,
6    ExprList,
7    Arg,
8    ArgClauseNamed,
9    ArgClauseUnnamed,
10    ArgClauseFieldInitShorthand,
11    ExprFieldInitShorthand,
12    ArgList,
13    ExprMissing,
14    PathSegmentSimple,
15    OptionTerminalColonColonEmpty,
16    PathSegmentWithGenericArgs,
17    ExprPath,
18    ExprParenthesized,
19    ExprUnary,
20    ExprBinary,
21    ExprListParenthesized,
22    ExprFunctionCall,
23    ArgListParenthesized,
24    OptionArgListParenthesizedEmpty,
25    ExprStructCtorCall,
26    StructArgListBraced,
27    ExprBlock,
28    ExprMatch,
29    MatchArms,
30    MatchArm,
31    ExprIf,
32    ConditionLet,
33    ConditionExpr,
34    ExprLoop,
35    ExprWhile,
36    ExprFor,
37    ElseClause,
38    OptionElseClauseEmpty,
39    ExprErrorPropagate,
40    ExprIndexed,
41    ExprInlineMacro,
42    ExprFixedSizeArray,
43    FixedSizeArraySize,
44    OptionFixedSizeArraySizeEmpty,
45    ExprClosure,
46    ClosureParamWrapperNAry,
47    StructArgExpr,
48    OptionStructArgExprEmpty,
49    StructArgSingle,
50    StructArgTail,
51    StructArgList,
52    ArgListBraced,
53    ArgListBracketed,
54    WrappedArgListMissing,
55    PatternIdentifier,
56    PatternStruct,
57    PatternStructParamList,
58    PatternTuple,
59    PatternFixedSizeArray,
60    PatternList,
61    PatternListOr,
62    PatternStructParamWithExpr,
63    PatternEnum,
64    PatternEnumInnerPattern,
65    OptionPatternEnumInnerPatternEmpty,
66    TypeClause,
67    OptionTypeClauseEmpty,
68    ReturnTypeClause,
69    OptionReturnTypeClauseEmpty,
70    StatementList,
71    StatementMissing,
72    StatementLet,
73    OptionTerminalSemicolonEmpty,
74    StatementExpr,
75    StatementContinue,
76    ExprClause,
77    OptionExprClauseEmpty,
78    StatementReturn,
79    StatementBreak,
80    StatementItem,
81    Param,
82    ModifierList,
83    ParamList,
84    ImplicitsClause,
85    ImplicitsList,
86    OptionImplicitsClauseEmpty,
87    OptionTerminalNoPanicEmpty,
88    FunctionSignature,
89    Member,
90    MemberList,
91    Variant,
92    VariantList,
93    ModuleItemList,
94    ModuleItemMissing,
95    Attribute,
96    AttributeList,
97    VisibilityDefault,
98    VisibilityPubArgumentClause,
99    OptionVisibilityPubArgumentClauseEmpty,
100    VisibilityPub,
101    ItemModule,
102    ModuleBody,
103    FunctionDeclaration,
104    ItemConstant,
105    FunctionWithBody,
106    ItemExternFunction,
107    ItemExternType,
108    ItemTrait,
109    TraitBody,
110    TraitItemList,
111    TraitItemMissing,
112    TraitItemFunction,
113    TraitItemType,
114    TraitItemConstant,
115    TraitItemImpl,
116    ItemImpl,
117    ItemInlineMacro,
118    ItemHeaderDoc,
119    ImplBody,
120    ImplItemList,
121    ImplItemMissing,
122    ItemImplAlias,
123    ItemStruct,
124    ItemEnum,
125    ItemTypeAlias,
126    ItemUse,
127    UsePathLeaf,
128    UsePathSingle,
129    UsePathMulti,
130    UsePathStar,
131    UsePathList,
132    AliasClause,
133    OptionAliasClauseEmpty,
134    GenericArgNamed,
135    GenericArgUnnamed,
136    GenericArgValueExpr,
137    GenericArgs,
138    GenericArgList,
139    AssociatedItemConstraint,
140    AssociatedItemConstraints,
141    AssociatedItemConstraintList,
142    OptionAssociatedItemConstraintsEmpty,
143    OptionWrappedGenericParamListEmpty,
144    WrappedGenericParamList,
145    GenericParamList,
146    GenericParamType,
147    GenericParamConst,
148    GenericParamImplNamed,
149    GenericParamImplAnonymous,
150    GenericParamNegativeImpl,
151    TriviumSkippedNode,
152    TokenIdentifier,
153    TerminalIdentifier,
154    TokenLiteralNumber,
155    TerminalLiteralNumber,
156    TokenShortString,
157    TerminalShortString,
158    TokenString,
159    TerminalString,
160    TokenAs,
161    TerminalAs,
162    TokenConst,
163    TerminalConst,
164    TokenElse,
165    TerminalElse,
166    TokenEnum,
167    TerminalEnum,
168    TokenExtern,
169    TerminalExtern,
170    TokenFalse,
171    TerminalFalse,
172    TokenFunction,
173    TerminalFunction,
174    TokenIf,
175    TerminalIf,
176    TokenWhile,
177    TerminalWhile,
178    TokenFor,
179    TerminalFor,
180    TokenLoop,
181    TerminalLoop,
182    TokenImpl,
183    TerminalImpl,
184    TokenImplicits,
185    TerminalImplicits,
186    TokenLet,
187    TerminalLet,
188    TokenMatch,
189    TerminalMatch,
190    TokenModule,
191    TerminalModule,
192    TokenMut,
193    TerminalMut,
194    TokenNoPanic,
195    TerminalNoPanic,
196    TokenOf,
197    TerminalOf,
198    TokenRef,
199    TerminalRef,
200    TokenContinue,
201    TerminalContinue,
202    TokenReturn,
203    TerminalReturn,
204    TokenBreak,
205    TerminalBreak,
206    TokenStruct,
207    TerminalStruct,
208    TokenTrait,
209    TerminalTrait,
210    TokenTrue,
211    TerminalTrue,
212    TokenType,
213    TerminalType,
214    TokenUse,
215    TerminalUse,
216    TokenPub,
217    TerminalPub,
218    TokenAnd,
219    TerminalAnd,
220    TokenAndAnd,
221    TerminalAndAnd,
222    TokenArrow,
223    TerminalArrow,
224    TokenAt,
225    TerminalAt,
226    TokenBadCharacters,
227    TerminalBadCharacters,
228    TokenColon,
229    TerminalColon,
230    TokenColonColon,
231    TerminalColonColon,
232    TokenComma,
233    TerminalComma,
234    TokenDiv,
235    TerminalDiv,
236    TokenDivEq,
237    TerminalDivEq,
238    TokenDot,
239    TerminalDot,
240    TokenDotDot,
241    TerminalDotDot,
242    TokenEndOfFile,
243    TerminalEndOfFile,
244    TokenEq,
245    TerminalEq,
246    TokenEqEq,
247    TerminalEqEq,
248    TokenGE,
249    TerminalGE,
250    TokenGT,
251    TerminalGT,
252    TokenHash,
253    TerminalHash,
254    TokenLBrace,
255    TerminalLBrace,
256    TokenLBrack,
257    TerminalLBrack,
258    TokenLE,
259    TerminalLE,
260    TokenLParen,
261    TerminalLParen,
262    TokenLT,
263    TerminalLT,
264    TokenMatchArrow,
265    TerminalMatchArrow,
266    TokenMinus,
267    TerminalMinus,
268    TokenMinusEq,
269    TerminalMinusEq,
270    TokenMod,
271    TerminalMod,
272    TokenModEq,
273    TerminalModEq,
274    TokenMul,
275    TerminalMul,
276    TokenMulEq,
277    TerminalMulEq,
278    TokenNeq,
279    TerminalNeq,
280    TokenNot,
281    TerminalNot,
282    TokenBitNot,
283    TerminalBitNot,
284    TokenOr,
285    TerminalOr,
286    TokenOrOr,
287    TerminalOrOr,
288    TokenPlus,
289    TerminalPlus,
290    TokenPlusEq,
291    TerminalPlusEq,
292    TokenQuestionMark,
293    TerminalQuestionMark,
294    TokenRBrace,
295    TerminalRBrace,
296    TokenRBrack,
297    TerminalRBrack,
298    TokenRParen,
299    TerminalRParen,
300    TokenSemicolon,
301    TerminalSemicolon,
302    TokenUnderscore,
303    TerminalUnderscore,
304    TokenXor,
305    TerminalXor,
306    SyntaxFile,
307    TokenEmpty,
308    TerminalEmpty,
309    TokenSingleLineComment,
310    TokenSingleLineInnerComment,
311    TokenSingleLineDocComment,
312    TokenWhitespace,
313    TokenNewline,
314    TokenMissing,
315    TokenSkipped,
316}
317impl SyntaxKind {
318    pub fn is_token(&self) -> bool {
319        matches!(
320            *self,
321            SyntaxKind::TokenIdentifier
322                | SyntaxKind::TokenLiteralNumber
323                | SyntaxKind::TokenShortString
324                | SyntaxKind::TokenString
325                | SyntaxKind::TokenAs
326                | SyntaxKind::TokenConst
327                | SyntaxKind::TokenElse
328                | SyntaxKind::TokenEnum
329                | SyntaxKind::TokenExtern
330                | SyntaxKind::TokenFalse
331                | SyntaxKind::TokenFunction
332                | SyntaxKind::TokenIf
333                | SyntaxKind::TokenWhile
334                | SyntaxKind::TokenFor
335                | SyntaxKind::TokenLoop
336                | SyntaxKind::TokenImpl
337                | SyntaxKind::TokenImplicits
338                | SyntaxKind::TokenLet
339                | SyntaxKind::TokenMatch
340                | SyntaxKind::TokenModule
341                | SyntaxKind::TokenMut
342                | SyntaxKind::TokenNoPanic
343                | SyntaxKind::TokenOf
344                | SyntaxKind::TokenRef
345                | SyntaxKind::TokenContinue
346                | SyntaxKind::TokenReturn
347                | SyntaxKind::TokenBreak
348                | SyntaxKind::TokenStruct
349                | SyntaxKind::TokenTrait
350                | SyntaxKind::TokenTrue
351                | SyntaxKind::TokenType
352                | SyntaxKind::TokenUse
353                | SyntaxKind::TokenPub
354                | SyntaxKind::TokenAnd
355                | SyntaxKind::TokenAndAnd
356                | SyntaxKind::TokenArrow
357                | SyntaxKind::TokenAt
358                | SyntaxKind::TokenBadCharacters
359                | SyntaxKind::TokenColon
360                | SyntaxKind::TokenColonColon
361                | SyntaxKind::TokenComma
362                | SyntaxKind::TokenDiv
363                | SyntaxKind::TokenDivEq
364                | SyntaxKind::TokenDot
365                | SyntaxKind::TokenDotDot
366                | SyntaxKind::TokenEndOfFile
367                | SyntaxKind::TokenEq
368                | SyntaxKind::TokenEqEq
369                | SyntaxKind::TokenGE
370                | SyntaxKind::TokenGT
371                | SyntaxKind::TokenHash
372                | SyntaxKind::TokenLBrace
373                | SyntaxKind::TokenLBrack
374                | SyntaxKind::TokenLE
375                | SyntaxKind::TokenLParen
376                | SyntaxKind::TokenLT
377                | SyntaxKind::TokenMatchArrow
378                | SyntaxKind::TokenMinus
379                | SyntaxKind::TokenMinusEq
380                | SyntaxKind::TokenMod
381                | SyntaxKind::TokenModEq
382                | SyntaxKind::TokenMul
383                | SyntaxKind::TokenMulEq
384                | SyntaxKind::TokenNeq
385                | SyntaxKind::TokenNot
386                | SyntaxKind::TokenBitNot
387                | SyntaxKind::TokenOr
388                | SyntaxKind::TokenOrOr
389                | SyntaxKind::TokenPlus
390                | SyntaxKind::TokenPlusEq
391                | SyntaxKind::TokenQuestionMark
392                | SyntaxKind::TokenRBrace
393                | SyntaxKind::TokenRBrack
394                | SyntaxKind::TokenRParen
395                | SyntaxKind::TokenSemicolon
396                | SyntaxKind::TokenUnderscore
397                | SyntaxKind::TokenXor
398                | SyntaxKind::TokenEmpty
399                | SyntaxKind::TokenSingleLineComment
400                | SyntaxKind::TokenSingleLineInnerComment
401                | SyntaxKind::TokenSingleLineDocComment
402                | SyntaxKind::TokenWhitespace
403                | SyntaxKind::TokenNewline
404                | SyntaxKind::TokenMissing
405                | SyntaxKind::TokenSkipped
406        )
407    }
408    pub fn is_terminal(&self) -> bool {
409        matches!(
410            *self,
411            SyntaxKind::TerminalIdentifier
412                | SyntaxKind::TerminalLiteralNumber
413                | SyntaxKind::TerminalShortString
414                | SyntaxKind::TerminalString
415                | SyntaxKind::TerminalAs
416                | SyntaxKind::TerminalConst
417                | SyntaxKind::TerminalElse
418                | SyntaxKind::TerminalEnum
419                | SyntaxKind::TerminalExtern
420                | SyntaxKind::TerminalFalse
421                | SyntaxKind::TerminalFunction
422                | SyntaxKind::TerminalIf
423                | SyntaxKind::TerminalWhile
424                | SyntaxKind::TerminalFor
425                | SyntaxKind::TerminalLoop
426                | SyntaxKind::TerminalImpl
427                | SyntaxKind::TerminalImplicits
428                | SyntaxKind::TerminalLet
429                | SyntaxKind::TerminalMatch
430                | SyntaxKind::TerminalModule
431                | SyntaxKind::TerminalMut
432                | SyntaxKind::TerminalNoPanic
433                | SyntaxKind::TerminalOf
434                | SyntaxKind::TerminalRef
435                | SyntaxKind::TerminalContinue
436                | SyntaxKind::TerminalReturn
437                | SyntaxKind::TerminalBreak
438                | SyntaxKind::TerminalStruct
439                | SyntaxKind::TerminalTrait
440                | SyntaxKind::TerminalTrue
441                | SyntaxKind::TerminalType
442                | SyntaxKind::TerminalUse
443                | SyntaxKind::TerminalPub
444                | SyntaxKind::TerminalAnd
445                | SyntaxKind::TerminalAndAnd
446                | SyntaxKind::TerminalArrow
447                | SyntaxKind::TerminalAt
448                | SyntaxKind::TerminalBadCharacters
449                | SyntaxKind::TerminalColon
450                | SyntaxKind::TerminalColonColon
451                | SyntaxKind::TerminalComma
452                | SyntaxKind::TerminalDiv
453                | SyntaxKind::TerminalDivEq
454                | SyntaxKind::TerminalDot
455                | SyntaxKind::TerminalDotDot
456                | SyntaxKind::TerminalEndOfFile
457                | SyntaxKind::TerminalEq
458                | SyntaxKind::TerminalEqEq
459                | SyntaxKind::TerminalGE
460                | SyntaxKind::TerminalGT
461                | SyntaxKind::TerminalHash
462                | SyntaxKind::TerminalLBrace
463                | SyntaxKind::TerminalLBrack
464                | SyntaxKind::TerminalLE
465                | SyntaxKind::TerminalLParen
466                | SyntaxKind::TerminalLT
467                | SyntaxKind::TerminalMatchArrow
468                | SyntaxKind::TerminalMinus
469                | SyntaxKind::TerminalMinusEq
470                | SyntaxKind::TerminalMod
471                | SyntaxKind::TerminalModEq
472                | SyntaxKind::TerminalMul
473                | SyntaxKind::TerminalMulEq
474                | SyntaxKind::TerminalNeq
475                | SyntaxKind::TerminalNot
476                | SyntaxKind::TerminalBitNot
477                | SyntaxKind::TerminalOr
478                | SyntaxKind::TerminalOrOr
479                | SyntaxKind::TerminalPlus
480                | SyntaxKind::TerminalPlusEq
481                | SyntaxKind::TerminalQuestionMark
482                | SyntaxKind::TerminalRBrace
483                | SyntaxKind::TerminalRBrack
484                | SyntaxKind::TerminalRParen
485                | SyntaxKind::TerminalSemicolon
486                | SyntaxKind::TerminalUnderscore
487                | SyntaxKind::TerminalXor
488                | SyntaxKind::TerminalEmpty
489        )
490    }
491    pub fn is_keyword_token(&self) -> bool {
492        matches!(
493            *self,
494            SyntaxKind::TokenAs
495                | SyntaxKind::TokenConst
496                | SyntaxKind::TokenElse
497                | SyntaxKind::TokenEnum
498                | SyntaxKind::TokenExtern
499                | SyntaxKind::TokenFalse
500                | SyntaxKind::TokenFunction
501                | SyntaxKind::TokenIf
502                | SyntaxKind::TokenWhile
503                | SyntaxKind::TokenFor
504                | SyntaxKind::TokenLoop
505                | SyntaxKind::TokenImpl
506                | SyntaxKind::TokenImplicits
507                | SyntaxKind::TokenLet
508                | SyntaxKind::TokenMatch
509                | SyntaxKind::TokenModule
510                | SyntaxKind::TokenMut
511                | SyntaxKind::TokenNoPanic
512                | SyntaxKind::TokenOf
513                | SyntaxKind::TokenRef
514                | SyntaxKind::TokenContinue
515                | SyntaxKind::TokenReturn
516                | SyntaxKind::TokenBreak
517                | SyntaxKind::TokenStruct
518                | SyntaxKind::TokenTrait
519                | SyntaxKind::TokenTrue
520                | SyntaxKind::TokenType
521                | SyntaxKind::TokenUse
522                | SyntaxKind::TokenPub
523        )
524    }
525    pub fn is_keyword_terminal(&self) -> bool {
526        matches!(
527            *self,
528            SyntaxKind::TerminalAs
529                | SyntaxKind::TerminalConst
530                | SyntaxKind::TerminalElse
531                | SyntaxKind::TerminalEnum
532                | SyntaxKind::TerminalExtern
533                | SyntaxKind::TerminalFalse
534                | SyntaxKind::TerminalFunction
535                | SyntaxKind::TerminalIf
536                | SyntaxKind::TerminalWhile
537                | SyntaxKind::TerminalFor
538                | SyntaxKind::TerminalLoop
539                | SyntaxKind::TerminalImpl
540                | SyntaxKind::TerminalImplicits
541                | SyntaxKind::TerminalLet
542                | SyntaxKind::TerminalMatch
543                | SyntaxKind::TerminalModule
544                | SyntaxKind::TerminalMut
545                | SyntaxKind::TerminalNoPanic
546                | SyntaxKind::TerminalOf
547                | SyntaxKind::TerminalRef
548                | SyntaxKind::TerminalContinue
549                | SyntaxKind::TerminalReturn
550                | SyntaxKind::TerminalBreak
551                | SyntaxKind::TerminalStruct
552                | SyntaxKind::TerminalTrait
553                | SyntaxKind::TerminalTrue
554                | SyntaxKind::TerminalType
555                | SyntaxKind::TerminalUse
556                | SyntaxKind::TerminalPub
557        )
558    }
559}
560impl fmt::Display for SyntaxKind {
561    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
562        write!(f, "{self:?}")
563    }
564}