cairo_lang_syntax/node/
kind.rs

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