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