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