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