Skip to main content

big_code_analysis_ast/languages/
language_mozcpp.rs

1// See `src/languages/mod.rs` for the rationale behind the per-file
2// pedantic carve-outs below.
3#![allow(clippy::match_same_arms, clippy::too_many_lines)]
4// One variant per grammar kind id, named after the rule; the name is
5// the documentation and there is nothing per-variant to add.
6#![allow(missing_docs)]
7
8// Code generated; DO NOT EDIT.
9
10use num_derive::FromPrimitive;
11
12#[derive(Clone, Debug, PartialEq, Eq, FromPrimitive)]
13pub enum Mozcpp {
14    End = 0,
15    Identifier = 1,
16    HASHinclude = 2,
17    PreprocIncludeToken2 = 3,
18    HASHdefine = 4,
19    LPAREN = 5,
20    DOTDOTDOT = 6,
21    COMMA = 7,
22    RPAREN = 8,
23    HASHif = 9,
24    LF = 10,
25    HASHendif = 11,
26    HASHifdef = 12,
27    HASHifndef = 13,
28    HASHelse = 14,
29    HASHelif = 15,
30    HASHelifdef = 16,
31    HASHelifndef = 17,
32    PreprocArg = 18,
33    PreprocDirective = 19,
34    LPAREN2 = 20,
35    Defined = 21,
36    BANG = 22,
37    TILDE = 23,
38    DASH = 24,
39    PLUS = 25,
40    STAR = 26,
41    SLASH = 27,
42    PERCENT = 28,
43    PIPEPIPE = 29,
44    AMPAMP = 30,
45    PIPE = 31,
46    CARET = 32,
47    AMP = 33,
48    EQEQ = 34,
49    BANGEQ = 35,
50    GT = 36,
51    GTEQ = 37,
52    LTEQ = 38,
53    LT = 39,
54    LTLT = 40,
55    GTGT = 41,
56    SEMI = 42,
57    Extension = 43,
58    Typedef = 44,
59    Virtual = 45,
60    Extern = 46,
61    Attribute2 = 47,
62    Attribute3 = 48,
63    COLONCOLON = 49,
64    LBRACKLBRACK = 50,
65    RBRACKRBRACK = 51,
66    Declspec = 52,
67    Based = 53,
68    Cdecl = 54,
69    Clrcall = 55,
70    Stdcall = 56,
71    Fastcall = 57,
72    Thiscall = 58,
73    Vectorcall = 59,
74    MsRestrictModifier = 60,
75    MsUnsignedPtrModifier = 61,
76    MsSignedPtrModifier = 62,
77    Unaligned = 63,
78    Unaligned2 = 64,
79    LBRACE = 65,
80    RBRACE = 66,
81    Signed = 67,
82    Unsigned = 68,
83    Long = 69,
84    Short = 70,
85    LBRACK = 71,
86    Static = 72,
87    RBRACK = 73,
88    EQ = 74,
89    Register = 75,
90    Inline = 76,
91    Inline2 = 77,
92    Inline3 = 78,
93    Forceinline = 79,
94    ThreadLocal = 80,
95    Thread = 81,
96    Const = 82,
97    Constexpr = 83,
98    Volatile = 84,
99    Restrict = 85,
100    Restrict2 = 86,
101    Atomic = 87,
102    Noreturn = 88,
103    Noreturn2 = 89,
104    Nonnull = 90,
105    Mutable = 91,
106    Constinit = 92,
107    Consteval = 93,
108    Alignas = 94,
109    Alignas2 = 95,
110    PrimitiveType = 96,
111    Enum = 97,
112    Class = 98,
113    Struct = 99,
114    Union = 100,
115    COLON = 101,
116    If = 102,
117    Else = 103,
118    Switch = 104,
119    Case = 105,
120    Default = 106,
121    While = 107,
122    Do = 108,
123    For = 109,
124    Return = 110,
125    Break = 111,
126    Continue = 112,
127    Goto = 113,
128    Try = 114,
129    Except = 115,
130    Finally = 116,
131    Leave = 117,
132    QMARK = 118,
133    STAREQ = 119,
134    SLASHEQ = 120,
135    PERCENTEQ = 121,
136    PLUSEQ = 122,
137    DASHEQ = 123,
138    LTLTEQ = 124,
139    GTGTEQ = 125,
140    AMPEQ = 126,
141    CARETEQ = 127,
142    PIPEEQ = 128,
143    AndEq = 129,
144    OrEq = 130,
145    XorEq = 131,
146    Not = 132,
147    Compl = 133,
148    LTEQGT = 134,
149    Or = 135,
150    And = 136,
151    Bitor = 137,
152    Xor = 138,
153    Bitand = 139,
154    NotEq = 140,
155    DASHDASH = 141,
156    PLUSPLUS = 142,
157    Sizeof = 143,
158    Alignof = 144,
159    Alignof2 = 145,
160    Alignof3 = 146,
161    Alignof4 = 147,
162    Alignof5 = 148,
163    Offsetof = 149,
164    Generic = 150,
165    Asm = 151,
166    Asm2 = 152,
167    Asm3 = 153,
168    Volatile2 = 154,
169    DOT = 155,
170    DOTSTAR = 156,
171    DASHGT = 157,
172    NumberLiteral = 158,
173    LSQUOTE = 159,
174    USQUOTE = 160,
175    USQUOTE2 = 161,
176    U8SQUOTE = 162,
177    SQUOTE = 163,
178    Character = 164,
179    LDQUOTE = 165,
180    UDQUOTE = 166,
181    UDQUOTE2 = 167,
182    U8DQUOTE = 168,
183    DQUOTE = 169,
184    StringContent = 170,
185    EscapeSequence = 171,
186    SystemLibString = 172,
187    True = 173,
188    False = 174,
189    NULL = 175,
190    Nullptr = 176,
191    Comment = 177,
192    Auto = 178,
193    Decltype3 = 179,
194    Final = 180,
195    Override = 181,
196    Explicit = 182,
197    Typename = 183,
198    Template = 184,
199    GT2 = 185,
200    Operator = 186,
201    Try2 = 187,
202    Delete = 188,
203    PureVirtualClauseToken1 = 189,
204    Friend = 190,
205    Public = 191,
206    Private = 192,
207    Protected = 193,
208    Noexcept2 = 194,
209    Throw = 195,
210    Namespace = 196,
211    Using = 197,
212    StaticAssert = 198,
213    Concept = 199,
214    CoReturn = 200,
215    CoYield = 201,
216    Catch = 202,
217    RDQUOTE = 203,
218    LRDQUOTE = 204,
219    URDQUOTE = 205,
220    URDQUOTE2 = 206,
221    U8RDQUOTE = 207,
222    CoAwait = 208,
223    New = 209,
224    Requires = 210,
225    DASHGTSTAR = 211,
226    LPARENRPAREN = 212,
227    LBRACKRBRACK = 213,
228    DQUOTEDQUOTE = 214,
229    This = 215,
230    LiteralSuffix = 216,
231    AloneMacro = 217,
232    AloneMacroCallToken1 = 218,
233    CACHETRYINSPECT = 219,
234    CACHETRYUNWRAP = 220,
235    FORWARD = 221,
236    FORWARDSETATTRIBUTE = 222,
237    IDBTRYINSPECT = 223,
238    IDBTRYUNWRAP = 224,
239    LSTRYINSPECT = 225,
240    LSTRYUNWRAP = 226,
241    SDBTRYINSPECT = 227,
242    SDBTRYUNWRAP = 228,
243    PSGET = 229,
244    PSGETANDSET = 230,
245    PSGETLOCKLESS = 231,
246    QMTRYINSPECT = 232,
247    QMNOTEONLYTRYUNWRAP = 233,
248    QMTRYUNWRAP = 234,
249    QMWARNONLYTRYUNWRAP = 235,
250    MacroStatement = 236,
251    MOZALLOCATOR = 237,
252    MOZALLOWTEMPORARY = 238,
253    MOZALWAYSINLINE = 239,
254    MOZALWAYSINLINEEVENDEBUG = 240,
255    MOZASANBLACKLIST = 241,
256    MOZCANRUNSCRIPT = 242,
257    MOZCANRUNSCRIPTBOUNDARY = 243,
258    MOZCANRUNSCRIPTFORDEFINITION = 244,
259    MOZCOLD = 245,
260    MOZFALLTHROUGH = 246,
261    MOZFORMATPRINTF = 247,
262    MOZHAVEANALYZERNORETURN = 248,
263    MOZHAVEASANBLACKLIST = 249,
264    MOZHAVENEVERINLINE = 250,
265    MOZHAVENORETURN = 251,
266    MOZHAVENORETURNPTR = 252,
267    MOZHAVENOSANITIZEATTR = 253,
268    MOZHAVESIGNEDOVERFLOWSANITIZEATTR = 254,
269    MOZHAVEUNSIGNEDOVERFLOWSANITIZEATTR = 255,
270    MOZHEAPALLOCATOR = 256,
271    MOZHEAPCLASS = 257,
272    MOZIMPLICIT = 258,
273    MOZINHERITTYPEANNOTATIONSFROMTEMPLATEARGS = 259,
274    MOZINITOUTSIDECTOR = 260,
275    MOZISCLASSINIT = 261,
276    MOZISREFPTR = 262,
277    MOZISSMARTPTRTOREFCOUNTED = 263,
278    MOZMAYBEUNUSED = 264,
279    MOZMAYCALLAFTERMUSTRETURN = 265,
280    MOZMUSTOVERRIDE = 266,
281    MOZMUSTRETURNFROMCALLERIFTHISISARG = 267,
282    MOZMUSTUSE = 268,
283    MOZMUSTUSETYPE = 269,
284    MOZNEEDSMEMMOVABLEMEMBERS = 270,
285    MOZNEEDSMEMMOVABLETYPE = 271,
286    MOZNEEDSNOVTABLETYPE = 272,
287    MOZNEVERINLINE = 273,
288    MOZNEVERINLINEDEBUG = 274,
289    MOZNONHEAPCLASS = 275,
290    MOZNONNULL = 276,
291    MOZNONNULLRETURN = 277,
292    MOZNONAUTOABLE = 278,
293    MOZNONMEMMOVABLE = 279,
294    MOZNONOWNINGREF = 280,
295    MOZNONPARAM = 281,
296    MOZNONTEMPORARYCLASS = 282,
297    MOZNORETURN = 283,
298    MOZNORETURNPTR = 284,
299    MOZNOADDREFRELEASEONRETURN = 285,
300    MOZNOARITHMETICEXPRINARGUMENT = 286,
301    MOZNODANGLINGONTEMPORARIES = 287,
302    MOZNOSANITIZESIGNEDOVERFLOW = 288,
303    MOZNOSANITIZEUNSIGNEDOVERFLOW = 289,
304    MOZONLYUSEDTOAVOIDSTATICCONSTRUCTORS = 290,
305    MOZOWNINGREF = 291,
306    MOZPOPDISABLENONTRIVIALUNIONWARNINGS = 292,
307    MOZPRETENDNORETURNFORSTATICANALYSIS = 293,
308    MOZPUSHDISABLENONTRIVIALUNIONWARNINGS = 294,
309    MOZRAII = 295,
310    MOZREQUIREDBASEMETHOD = 296,
311    MOZSTACKCLASS = 297,
312    MOZSTATICCLASS = 298,
313    MOZSTATICLOCALCLASS = 299,
314    MOZTEMPORARYCLASS = 300,
315    MOZTRIVIALCTORDTOR = 301,
316    MOZTSANBLACKLIST = 302,
317    MOZUNSAFEREF = 303,
318    MOZXPCOMABI = 304,
319    JSPUBLICAPI = 305,
320    RawStringDelimiter = 306,
321    RawStringContent = 307,
322    TranslationUnit = 308,
323    TopLevelItem = 309,
324    BlockItem = 310,
325    PreprocInclude = 311,
326    PreprocDef = 312,
327    PreprocFunctionDef = 313,
328    PreprocParams = 314,
329    PreprocCall = 315,
330    PreprocIf = 316,
331    PreprocIfdef = 317,
332    PreprocElse = 318,
333    PreprocElif = 319,
334    PreprocElifdef = 320,
335    PreprocIf2 = 321,
336    PreprocIfdef2 = 322,
337    PreprocElse2 = 323,
338    PreprocElif2 = 324,
339    PreprocElifdef2 = 325,
340    PreprocIf3 = 326,
341    PreprocIfdef3 = 327,
342    PreprocElse3 = 328,
343    PreprocElif3 = 329,
344    PreprocElifdef3 = 330,
345    PreprocIf4 = 331,
346    PreprocIfdef4 = 332,
347    PreprocElse4 = 333,
348    PreprocElif4 = 334,
349    PreprocElifdef4 = 335,
350    PreprocExpression = 336,
351    ParenthesizedExpression = 337,
352    PreprocDefined = 338,
353    UnaryExpression = 339,
354    CallExpression = 340,
355    ArgumentList = 341,
356    BinaryExpression = 342,
357    FunctionDefinition = 343,
358    Declaration = 344,
359    TypeDefinition = 345,
360    TypeDefinitionType = 346,
361    TypeDefinitionDeclarators = 347,
362    DeclarationModifiers = 348,
363    DeclarationSpecifiers = 349,
364    LinkageSpecification = 350,
365    AttributeSpecifier = 351,
366    Attribute = 352,
367    AttributeDeclaration = 353,
368    MsDeclspecModifier = 354,
369    MsBasedModifier = 355,
370    MsCallModifier = 356,
371    MsUnalignedPtrModifier = 357,
372    MsPointerModifier = 358,
373    DeclarationList = 359,
374    Declarator = 360,
375    FieldDeclarator = 361,
376    TypeDeclarator = 362,
377    AbstractDeclarator = 363,
378    ParenthesizedDeclarator = 364,
379    ParenthesizedDeclarator2 = 365,
380    ParenthesizedDeclarator3 = 366,
381    AbstractParenthesizedDeclarator = 367,
382    AttributedDeclarator = 368,
383    AttributedDeclarator2 = 369,
384    AttributedDeclarator3 = 370,
385    PointerDeclarator = 371,
386    PointerDeclarator2 = 372,
387    PointerTypeDeclarator = 373,
388    AbstractPointerDeclarator = 374,
389    FunctionDeclarator = 375,
390    FunctionDeclarator2 = 376,
391    FunctionDeclarator3 = 377,
392    AbstractFunctionDeclarator = 378,
393    ArrayDeclarator = 379,
394    ArrayDeclarator2 = 380,
395    ArrayDeclarator3 = 381,
396    AbstractArrayDeclarator = 382,
397    InitDeclarator = 383,
398    CompoundStatement = 384,
399    StorageClassSpecifier = 385,
400    TypeQualifier = 386,
401    AlignasQualifier = 387,
402    TypeSpecifier = 388,
403    SizedTypeSpecifier = 389,
404    EnumSpecifier = 390,
405    EnumeratorList = 391,
406    StructSpecifier = 392,
407    UnionSpecifier = 393,
408    FieldDeclarationList = 394,
409    FieldDeclarationListItem = 395,
410    FieldDeclaration = 396,
411    BitfieldClause = 397,
412    Enumerator = 398,
413    ParameterList = 399,
414    ParameterDeclaration = 400,
415    AttributedStatement = 401,
416    Statement = 402,
417    TopLevelStatement = 403,
418    LabeledStatement = 404,
419    ExpressionStatement = 405,
420    ExpressionStatement2 = 406,
421    IfStatement = 407,
422    ElseClause = 408,
423    SwitchStatement = 409,
424    CaseStatement = 410,
425    WhileStatement = 411,
426    DoStatement = 412,
427    ForStatement = 413,
428    ForStatementBody = 414,
429    ReturnStatement = 415,
430    BreakStatement = 416,
431    ContinueStatement = 417,
432    GotoStatement = 418,
433    SehTryStatement = 419,
434    SehExceptClause = 420,
435    SehFinallyClause = 421,
436    SehLeaveStatement = 422,
437    Expression = 423,
438    String = 424,
439    CommaExpression = 425,
440    ConditionalExpression = 426,
441    AssignmentExpression = 427,
442    PointerExpression = 428,
443    UnaryExpression2 = 429,
444    BinaryExpression2 = 430,
445    UpdateExpression = 431,
446    CastExpression = 432,
447    TypeDescriptor = 433,
448    SizeofExpression = 434,
449    AlignofExpression = 435,
450    OffsetofExpression = 436,
451    GenericExpression = 437,
452    SubscriptExpression = 438,
453    CallExpression2 = 439,
454    GnuAsmExpression = 440,
455    GnuAsmQualifier = 441,
456    GnuAsmOutputOperandList = 442,
457    GnuAsmOutputOperand = 443,
458    GnuAsmInputOperandList = 444,
459    GnuAsmInputOperand = 445,
460    GnuAsmClobberList = 446,
461    GnuAsmGotoList = 447,
462    ExtensionExpression = 448,
463    ArgumentList2 = 449,
464    FieldExpression = 450,
465    CompoundLiteralExpression = 451,
466    ParenthesizedExpression2 = 452,
467    InitializerList = 453,
468    InitializerPair = 454,
469    SubscriptDesignator = 455,
470    SubscriptRangeDesignator = 456,
471    FieldDesignator = 457,
472    CharLiteral = 458,
473    ConcatenatedString = 459,
474    StringLiteral = 460,
475    Null = 461,
476    EmptyDeclaration = 462,
477    PlaceholderTypeSpecifier = 463,
478    Decltype = 464,
479    Decltype2 = 465,
480    ClassDeclaration = 466,
481    ClassDeclarationItem = 467,
482    ClassSpecifier = 468,
483    ClassName = 469,
484    VirtualSpecifier = 470,
485    ExplicitFunctionSpecifier = 471,
486    BaseClassClause = 472,
487    EnumBaseClause = 473,
488    DependentType = 474,
489    TemplateDeclaration = 475,
490    TemplateInstantiation = 476,
491    TemplateParameterList = 477,
492    TypeParameterDeclaration = 478,
493    VariadicTypeParameterDeclaration = 479,
494    OptionalTypeParameterDeclaration = 480,
495    TemplateTemplateParameterDeclaration = 481,
496    OptionalParameterDeclaration = 482,
497    VariadicParameterDeclaration = 483,
498    VariadicDeclarator = 484,
499    ReferenceDeclarator = 485,
500    OperatorCast = 486,
501    FieldInitializerList = 487,
502    FieldInitializer = 488,
503    FunctionDefinition2 = 489,
504    ConstructorSpecifiers = 490,
505    FunctionDefinition3 = 491,
506    Declaration2 = 492,
507    TryStatement = 493,
508    FunctionDefinition4 = 494,
509    Declaration3 = 495,
510    DefaultMethodClause = 496,
511    DeleteMethodClause = 497,
512    PureVirtualClause = 498,
513    FriendDeclaration = 499,
514    AccessSpecifier = 500,
515    ReferenceDeclarator2 = 501,
516    ReferenceDeclarator3 = 502,
517    ReferenceDeclarator4 = 503,
518    AbstractReferenceDeclarator = 504,
519    StructuredBindingDeclarator = 505,
520    RefQualifier = 506,
521    FunctionDeclaratorSeq = 507,
522    FunctionAttributesStart = 508,
523    FunctionExceptionSpecification = 509,
524    FunctionAttributesEnd = 510,
525    FunctionPostfix = 511,
526    TrailingReturnType = 512,
527    Noexcept = 513,
528    ThrowSpecifier = 514,
529    TemplateType = 515,
530    TemplateMethod = 516,
531    TemplateFunction = 517,
532    TemplateArgumentList = 518,
533    NamespaceDefinition = 519,
534    NamespaceAliasDefinition = 520,
535    NamespaceSpecifier = 521,
536    NestedNamespaceSpecifier = 522,
537    UsingDeclaration = 523,
538    AliasDeclaration = 524,
539    StaticAssertDeclaration = 525,
540    ConceptDefinition = 526,
541    ForRangeLoop = 527,
542    ForRangeLoopBody = 528,
543    InitStatement = 529,
544    ConditionClause = 530,
545    Declaration4 = 531,
546    CoReturnStatement = 532,
547    CoYieldStatement = 533,
548    ThrowStatement = 534,
549    TryStatement2 = 535,
550    CatchClause = 536,
551    RawStringLiteral = 537,
552    SubscriptArgumentList = 538,
553    CoAwaitExpression = 539,
554    NewExpression = 540,
555    NewDeclarator = 541,
556    DeleteExpression = 542,
557    TypeRequirement = 543,
558    CompoundRequirement = 544,
559    Requirement = 545,
560    RequirementSeq = 546,
561    ConstraintConjunction = 547,
562    ConstraintDisjunction = 548,
563    RequirementClauseConstraint = 549,
564    RequiresClause = 550,
565    ParameterList2 = 551,
566    RequiresExpression = 552,
567    LambdaExpression = 553,
568    LambdaCaptureSpecifier = 554,
569    LambdaDefaultCapture = 555,
570    LambdaCaptureIdentifier = 556,
571    LambdaCaptureInitializer = 557,
572    LambdaCapture = 558,
573    FoldOperator = 559,
574    BinaryFoldOperator = 560,
575    UnaryLeftFold = 561,
576    UnaryRightFold = 562,
577    BinaryFold = 563,
578    FoldExpression = 564,
579    ParameterPackExpansion = 565,
580    ParameterPackExpansion2 = 566,
581    ParameterPackExpansion3 = 567,
582    DestructorName = 568,
583    DependentName = 569,
584    DependentName2 = 570,
585    DependentName3 = 571,
586    ScopeResolution = 572,
587    QualifiedIdentifier = 573,
588    QualifiedIdentifier2 = 574,
589    QualifiedIdentifier3 = 575,
590    QualifiedIdentifier4 = 576,
591    AssignmentExpression2 = 577,
592    OperatorName = 578,
593    UserDefinedLiteral = 579,
594    AloneMacroCall = 580,
595    CallMacroWithDeclFirstArg = 581,
596    MacroAnnotation = 582,
597    TranslationUnitRepeat1 = 583,
598    PreprocParamsRepeat1 = 584,
599    PreprocIfRepeat1 = 585,
600    PreprocIfInFieldDeclarationListRepeat1 = 586,
601    PreprocIfInEnumeratorListRepeat1 = 587,
602    PreprocIfInEnumeratorListNoCommaRepeat1 = 588,
603    PreprocArgumentListRepeat1 = 589,
604    DeclarationRepeat1 = 590,
605    TypeDefinitionRepeat1 = 591,
606    TypeDefinitionTypeRepeat1 = 592,
607    TypeDefinitionDeclaratorsRepeat1 = 593,
608    DeclarationSpecifiersRepeat1 = 594,
609    AttributeDeclarationRepeat1 = 595,
610    AttributedDeclaratorRepeat1 = 596,
611    PointerDeclaratorRepeat1 = 597,
612    ArrayDeclaratorRepeat1 = 598,
613    SizedTypeSpecifierRepeat1 = 599,
614    EnumeratorListRepeat1 = 600,
615    FieldDeclarationRepeat1 = 601,
616    ParameterListRepeat1 = 602,
617    CaseStatementRepeat1 = 603,
618    GenericExpressionRepeat1 = 604,
619    GnuAsmExpressionRepeat1 = 605,
620    GnuAsmOutputOperandListRepeat1 = 606,
621    GnuAsmInputOperandListRepeat1 = 607,
622    GnuAsmClobberListRepeat1 = 608,
623    GnuAsmGotoListRepeat1 = 609,
624    ArgumentListRepeat1 = 610,
625    InitializerListRepeat1 = 611,
626    InitializerPairRepeat1 = 612,
627    CharLiteralRepeat1 = 613,
628    ConcatenatedStringRepeat1 = 614,
629    StringLiteralRepeat1 = 615,
630    ClassDeclarationRepeat1 = 616,
631    ClassSpecifierRepeat1 = 617,
632    BaseClassClauseRepeat1 = 618,
633    TemplateParameterListRepeat1 = 619,
634    FieldInitializerListRepeat1 = 620,
635    OperatorCastDefinitionRepeat1 = 621,
636    ConstructorTryStatementRepeat1 = 622,
637    StructuredBindingDeclaratorRepeat1 = 623,
638    FunctionPostfixRepeat1 = 624,
639    ThrowSpecifierRepeat1 = 625,
640    TemplateArgumentListRepeat1 = 626,
641    SubscriptArgumentListRepeat1 = 627,
642    RequirementSeqRepeat1 = 628,
643    RequiresParameterListRepeat1 = 629,
644    LambdaCaptureSpecifierRepeat1 = 630,
645    AloneMacroCallRepeat1 = 631,
646    CallMacroWithDeclFirstArgRepeat1 = 632,
647    FieldIdentifier = 633,
648    NamespaceIdentifier = 634,
649    SimpleRequirement = 635,
650    StatementIdentifier = 636,
651    TypeIdentifier = 637,
652    Error = 638,
653}
654
655impl From<Mozcpp> for &'static str {
656    #[inline]
657    fn from(tok: Mozcpp) -> Self {
658        match tok {
659            Mozcpp::End => "end",
660            Mozcpp::Identifier => "identifier",
661            Mozcpp::HASHinclude => "#include",
662            Mozcpp::PreprocIncludeToken2 => "preproc_include_token2",
663            Mozcpp::HASHdefine => "#define",
664            Mozcpp::LPAREN => "(",
665            Mozcpp::DOTDOTDOT => "...",
666            Mozcpp::COMMA => ",",
667            Mozcpp::RPAREN => ")",
668            Mozcpp::HASHif => "#if",
669            Mozcpp::LF => "\n",
670            Mozcpp::HASHendif => "#endif",
671            Mozcpp::HASHifdef => "#ifdef",
672            Mozcpp::HASHifndef => "#ifndef",
673            Mozcpp::HASHelse => "#else",
674            Mozcpp::HASHelif => "#elif",
675            Mozcpp::HASHelifdef => "#elifdef",
676            Mozcpp::HASHelifndef => "#elifndef",
677            Mozcpp::PreprocArg => "preproc_arg",
678            Mozcpp::PreprocDirective => "preproc_directive",
679            Mozcpp::LPAREN2 => "(",
680            Mozcpp::Defined => "defined",
681            Mozcpp::BANG => "!",
682            Mozcpp::TILDE => "~",
683            Mozcpp::DASH => "-",
684            Mozcpp::PLUS => "+",
685            Mozcpp::STAR => "*",
686            Mozcpp::SLASH => "/",
687            Mozcpp::PERCENT => "%",
688            Mozcpp::PIPEPIPE => "||",
689            Mozcpp::AMPAMP => "&&",
690            Mozcpp::PIPE => "|",
691            Mozcpp::CARET => "^",
692            Mozcpp::AMP => "&",
693            Mozcpp::EQEQ => "==",
694            Mozcpp::BANGEQ => "!=",
695            Mozcpp::GT => ">",
696            Mozcpp::GTEQ => ">=",
697            Mozcpp::LTEQ => "<=",
698            Mozcpp::LT => "<",
699            Mozcpp::LTLT => "<<",
700            Mozcpp::GTGT => ">>",
701            Mozcpp::SEMI => ";",
702            Mozcpp::Extension => "__extension__",
703            Mozcpp::Typedef => "typedef",
704            Mozcpp::Virtual => "virtual",
705            Mozcpp::Extern => "extern",
706            Mozcpp::Attribute2 => "__attribute__",
707            Mozcpp::Attribute3 => "__attribute",
708            Mozcpp::COLONCOLON => "::",
709            Mozcpp::LBRACKLBRACK => "[[",
710            Mozcpp::RBRACKRBRACK => "]]",
711            Mozcpp::Declspec => "__declspec",
712            Mozcpp::Based => "__based",
713            Mozcpp::Cdecl => "__cdecl",
714            Mozcpp::Clrcall => "__clrcall",
715            Mozcpp::Stdcall => "__stdcall",
716            Mozcpp::Fastcall => "__fastcall",
717            Mozcpp::Thiscall => "__thiscall",
718            Mozcpp::Vectorcall => "__vectorcall",
719            Mozcpp::MsRestrictModifier => "ms_restrict_modifier",
720            Mozcpp::MsUnsignedPtrModifier => "ms_unsigned_ptr_modifier",
721            Mozcpp::MsSignedPtrModifier => "ms_signed_ptr_modifier",
722            Mozcpp::Unaligned => "_unaligned",
723            Mozcpp::Unaligned2 => "__unaligned",
724            Mozcpp::LBRACE => "{",
725            Mozcpp::RBRACE => "}",
726            Mozcpp::Signed => "signed",
727            Mozcpp::Unsigned => "unsigned",
728            Mozcpp::Long => "long",
729            Mozcpp::Short => "short",
730            Mozcpp::LBRACK => "[",
731            Mozcpp::Static => "static",
732            Mozcpp::RBRACK => "]",
733            Mozcpp::EQ => "=",
734            Mozcpp::Register => "register",
735            Mozcpp::Inline => "inline",
736            Mozcpp::Inline2 => "__inline",
737            Mozcpp::Inline3 => "__inline__",
738            Mozcpp::Forceinline => "__forceinline",
739            Mozcpp::ThreadLocal => "thread_local",
740            Mozcpp::Thread => "__thread",
741            Mozcpp::Const => "const",
742            Mozcpp::Constexpr => "constexpr",
743            Mozcpp::Volatile => "volatile",
744            Mozcpp::Restrict => "restrict",
745            Mozcpp::Restrict2 => "__restrict__",
746            Mozcpp::Atomic => "_Atomic",
747            Mozcpp::Noreturn => "_Noreturn",
748            Mozcpp::Noreturn2 => "noreturn",
749            Mozcpp::Nonnull => "_Nonnull",
750            Mozcpp::Mutable => "mutable",
751            Mozcpp::Constinit => "constinit",
752            Mozcpp::Consteval => "consteval",
753            Mozcpp::Alignas => "alignas",
754            Mozcpp::Alignas2 => "_Alignas",
755            Mozcpp::PrimitiveType => "primitive_type",
756            Mozcpp::Enum => "enum",
757            Mozcpp::Class => "class",
758            Mozcpp::Struct => "struct",
759            Mozcpp::Union => "union",
760            Mozcpp::COLON => ":",
761            Mozcpp::If => "if",
762            Mozcpp::Else => "else",
763            Mozcpp::Switch => "switch",
764            Mozcpp::Case => "case",
765            Mozcpp::Default => "default",
766            Mozcpp::While => "while",
767            Mozcpp::Do => "do",
768            Mozcpp::For => "for",
769            Mozcpp::Return => "return",
770            Mozcpp::Break => "break",
771            Mozcpp::Continue => "continue",
772            Mozcpp::Goto => "goto",
773            Mozcpp::Try => "__try",
774            Mozcpp::Except => "__except",
775            Mozcpp::Finally => "__finally",
776            Mozcpp::Leave => "__leave",
777            Mozcpp::QMARK => "?",
778            Mozcpp::STAREQ => "*=",
779            Mozcpp::SLASHEQ => "/=",
780            Mozcpp::PERCENTEQ => "%=",
781            Mozcpp::PLUSEQ => "+=",
782            Mozcpp::DASHEQ => "-=",
783            Mozcpp::LTLTEQ => "<<=",
784            Mozcpp::GTGTEQ => ">>=",
785            Mozcpp::AMPEQ => "&=",
786            Mozcpp::CARETEQ => "^=",
787            Mozcpp::PIPEEQ => "|=",
788            Mozcpp::AndEq => "and_eq",
789            Mozcpp::OrEq => "or_eq",
790            Mozcpp::XorEq => "xor_eq",
791            Mozcpp::Not => "not",
792            Mozcpp::Compl => "compl",
793            Mozcpp::LTEQGT => "<=>",
794            Mozcpp::Or => "or",
795            Mozcpp::And => "and",
796            Mozcpp::Bitor => "bitor",
797            Mozcpp::Xor => "xor",
798            Mozcpp::Bitand => "bitand",
799            Mozcpp::NotEq => "not_eq",
800            Mozcpp::DASHDASH => "--",
801            Mozcpp::PLUSPLUS => "++",
802            Mozcpp::Sizeof => "sizeof",
803            Mozcpp::Alignof => "__alignof__",
804            Mozcpp::Alignof2 => "__alignof",
805            Mozcpp::Alignof3 => "_alignof",
806            Mozcpp::Alignof4 => "alignof",
807            Mozcpp::Alignof5 => "_Alignof",
808            Mozcpp::Offsetof => "offsetof",
809            Mozcpp::Generic => "_Generic",
810            Mozcpp::Asm => "asm",
811            Mozcpp::Asm2 => "__asm__",
812            Mozcpp::Asm3 => "__asm",
813            Mozcpp::Volatile2 => "__volatile__",
814            Mozcpp::DOT => ".",
815            Mozcpp::DOTSTAR => ".*",
816            Mozcpp::DASHGT => "->",
817            Mozcpp::NumberLiteral => "number_literal",
818            Mozcpp::LSQUOTE => "L'",
819            Mozcpp::USQUOTE => "u'",
820            Mozcpp::USQUOTE2 => "U'",
821            Mozcpp::U8SQUOTE => "u8'",
822            Mozcpp::SQUOTE => "'",
823            Mozcpp::Character => "character",
824            Mozcpp::LDQUOTE => "L\"",
825            Mozcpp::UDQUOTE => "u\"",
826            Mozcpp::UDQUOTE2 => "U\"",
827            Mozcpp::U8DQUOTE => "u8\"",
828            Mozcpp::DQUOTE => "\"",
829            Mozcpp::StringContent => "string_content",
830            Mozcpp::EscapeSequence => "escape_sequence",
831            Mozcpp::SystemLibString => "system_lib_string",
832            Mozcpp::True => "true",
833            Mozcpp::False => "false",
834            Mozcpp::NULL => "NULL",
835            Mozcpp::Nullptr => "nullptr",
836            Mozcpp::Comment => "comment",
837            Mozcpp::Auto => "auto",
838            Mozcpp::Decltype3 => "decltype",
839            Mozcpp::Final => "final",
840            Mozcpp::Override => "override",
841            Mozcpp::Explicit => "explicit",
842            Mozcpp::Typename => "typename",
843            Mozcpp::Template => "template",
844            Mozcpp::GT2 => ">",
845            Mozcpp::Operator => "operator",
846            Mozcpp::Try2 => "try",
847            Mozcpp::Delete => "delete",
848            Mozcpp::PureVirtualClauseToken1 => "pure_virtual_clause_token1",
849            Mozcpp::Friend => "friend",
850            Mozcpp::Public => "public",
851            Mozcpp::Private => "private",
852            Mozcpp::Protected => "protected",
853            Mozcpp::Noexcept2 => "noexcept",
854            Mozcpp::Throw => "throw",
855            Mozcpp::Namespace => "namespace",
856            Mozcpp::Using => "using",
857            Mozcpp::StaticAssert => "static_assert",
858            Mozcpp::Concept => "concept",
859            Mozcpp::CoReturn => "co_return",
860            Mozcpp::CoYield => "co_yield",
861            Mozcpp::Catch => "catch",
862            Mozcpp::RDQUOTE => "R\"",
863            Mozcpp::LRDQUOTE => "LR\"",
864            Mozcpp::URDQUOTE => "uR\"",
865            Mozcpp::URDQUOTE2 => "UR\"",
866            Mozcpp::U8RDQUOTE => "u8R\"",
867            Mozcpp::CoAwait => "co_await",
868            Mozcpp::New => "new",
869            Mozcpp::Requires => "requires",
870            Mozcpp::DASHGTSTAR => "->*",
871            Mozcpp::LPARENRPAREN => "()",
872            Mozcpp::LBRACKRBRACK => "[]",
873            Mozcpp::DQUOTEDQUOTE => "\"\"",
874            Mozcpp::This => "this",
875            Mozcpp::LiteralSuffix => "literal_suffix",
876            Mozcpp::AloneMacro => "alone_macro",
877            Mozcpp::AloneMacroCallToken1 => "alone_macro_call_token1",
878            Mozcpp::CACHETRYINSPECT => "CACHE_TRY_INSPECT",
879            Mozcpp::CACHETRYUNWRAP => "CACHE_TRY_UNWRAP",
880            Mozcpp::FORWARD => "FORWARD",
881            Mozcpp::FORWARDSETATTRIBUTE => "FORWARD_SET_ATTRIBUTE",
882            Mozcpp::IDBTRYINSPECT => "IDB_TRY_INSPECT",
883            Mozcpp::IDBTRYUNWRAP => "IDB_TRY_UNWRAP",
884            Mozcpp::LSTRYINSPECT => "LS_TRY_INSPECT",
885            Mozcpp::LSTRYUNWRAP => "LS_TRY_UNWRAP",
886            Mozcpp::SDBTRYINSPECT => "SDB_TRY_INSPECT",
887            Mozcpp::SDBTRYUNWRAP => "SDB_TRY_UNWRAP",
888            Mozcpp::PSGET => "PS_GET",
889            Mozcpp::PSGETANDSET => "PS_GET_AND_SET",
890            Mozcpp::PSGETLOCKLESS => "PS_GET_LOCKLESS",
891            Mozcpp::QMTRYINSPECT => "QM_TRY_INSPECT",
892            Mozcpp::QMNOTEONLYTRYUNWRAP => "QM_NOTEONLY_TRY_UNWRAP",
893            Mozcpp::QMTRYUNWRAP => "QM_TRY_UNWRAP",
894            Mozcpp::QMWARNONLYTRYUNWRAP => "QM_WARNONLY_TRY_UNWRAP",
895            Mozcpp::MacroStatement => "macro_statement",
896            Mozcpp::MOZALLOCATOR => "MOZ_ALLOCATOR",
897            Mozcpp::MOZALLOWTEMPORARY => "MOZ_ALLOW_TEMPORARY",
898            Mozcpp::MOZALWAYSINLINE => "MOZ_ALWAYS_INLINE",
899            Mozcpp::MOZALWAYSINLINEEVENDEBUG => "MOZ_ALWAYS_INLINE_EVEN_DEBUG",
900            Mozcpp::MOZASANBLACKLIST => "MOZ_ASAN_BLACKLIST",
901            Mozcpp::MOZCANRUNSCRIPT => "MOZ_CAN_RUN_SCRIPT",
902            Mozcpp::MOZCANRUNSCRIPTBOUNDARY => "MOZ_CAN_RUN_SCRIPT_BOUNDARY",
903            Mozcpp::MOZCANRUNSCRIPTFORDEFINITION => "MOZ_CAN_RUN_SCRIPT_FOR_DEFINITION",
904            Mozcpp::MOZCOLD => "MOZ_COLD",
905            Mozcpp::MOZFALLTHROUGH => "MOZ_FALLTHROUGH",
906            Mozcpp::MOZFORMATPRINTF => "MOZ_FORMAT_PRINTF",
907            Mozcpp::MOZHAVEANALYZERNORETURN => "MOZ_HAVE_ANALYZER_NORETURN",
908            Mozcpp::MOZHAVEASANBLACKLIST => "MOZ_HAVE_ASAN_BLACKLIST",
909            Mozcpp::MOZHAVENEVERINLINE => "MOZ_HAVE_NEVER_INLINE",
910            Mozcpp::MOZHAVENORETURN => "MOZ_HAVE_NORETURN",
911            Mozcpp::MOZHAVENORETURNPTR => "MOZ_HAVE_NORETURN_PTR",
912            Mozcpp::MOZHAVENOSANITIZEATTR => "MOZ_HAVE_NO_SANITIZE_ATTR",
913            Mozcpp::MOZHAVESIGNEDOVERFLOWSANITIZEATTR => "MOZ_HAVE_SIGNED_OVERFLOW_SANITIZE_ATTR",
914            Mozcpp::MOZHAVEUNSIGNEDOVERFLOWSANITIZEATTR => {
915                "MOZ_HAVE_UNSIGNED_OVERFLOW_SANITIZE_ATTR"
916            }
917            Mozcpp::MOZHEAPALLOCATOR => "MOZ_HEAP_ALLOCATOR",
918            Mozcpp::MOZHEAPCLASS => "MOZ_HEAP_CLASS",
919            Mozcpp::MOZIMPLICIT => "MOZ_IMPLICIT",
920            Mozcpp::MOZINHERITTYPEANNOTATIONSFROMTEMPLATEARGS => {
921                "MOZ_INHERIT_TYPE_ANNOTATIONS_FROM_TEMPLATE_ARGS"
922            }
923            Mozcpp::MOZINITOUTSIDECTOR => "MOZ_INIT_OUTSIDE_CTOR",
924            Mozcpp::MOZISCLASSINIT => "MOZ_IS_CLASS_INIT",
925            Mozcpp::MOZISREFPTR => "MOZ_IS_REFPTR",
926            Mozcpp::MOZISSMARTPTRTOREFCOUNTED => "MOZ_IS_SMARTPTR_TO_REFCOUNTED",
927            Mozcpp::MOZMAYBEUNUSED => "MOZ_MAYBE_UNUSED",
928            Mozcpp::MOZMAYCALLAFTERMUSTRETURN => "MOZ_MAY_CALL_AFTER_MUST_RETURN",
929            Mozcpp::MOZMUSTOVERRIDE => "MOZ_MUST_OVERRIDE",
930            Mozcpp::MOZMUSTRETURNFROMCALLERIFTHISISARG => {
931                "MOZ_MUST_RETURN_FROM_CALLER_IF_THIS_IS_ARG"
932            }
933            Mozcpp::MOZMUSTUSE => "MOZ_MUST_USE",
934            Mozcpp::MOZMUSTUSETYPE => "MOZ_MUST_USE_TYPE",
935            Mozcpp::MOZNEEDSMEMMOVABLEMEMBERS => "MOZ_NEEDS_MEMMOVABLE_MEMBERS",
936            Mozcpp::MOZNEEDSMEMMOVABLETYPE => "MOZ_NEEDS_MEMMOVABLE_TYPE",
937            Mozcpp::MOZNEEDSNOVTABLETYPE => "MOZ_NEEDS_NO_VTABLE_TYPE",
938            Mozcpp::MOZNEVERINLINE => "MOZ_NEVER_INLINE",
939            Mozcpp::MOZNEVERINLINEDEBUG => "MOZ_NEVER_INLINE_DEBUG",
940            Mozcpp::MOZNONHEAPCLASS => "MOZ_NONHEAP_CLASS",
941            Mozcpp::MOZNONNULL => "MOZ_NONNULL",
942            Mozcpp::MOZNONNULLRETURN => "MOZ_NONNULL_RETURN",
943            Mozcpp::MOZNONAUTOABLE => "MOZ_NON_AUTOABLE",
944            Mozcpp::MOZNONMEMMOVABLE => "MOZ_NON_MEMMOVABLE",
945            Mozcpp::MOZNONOWNINGREF => "MOZ_NON_OWNING_REF",
946            Mozcpp::MOZNONPARAM => "MOZ_NON_PARAM",
947            Mozcpp::MOZNONTEMPORARYCLASS => "MOZ_NON_TEMPORARY_CLASS",
948            Mozcpp::MOZNORETURN => "MOZ_NORETURN",
949            Mozcpp::MOZNORETURNPTR => "MOZ_NORETURN_PTR",
950            Mozcpp::MOZNOADDREFRELEASEONRETURN => "MOZ_NO_ADDREF_RELEASE_ON_RETURN",
951            Mozcpp::MOZNOARITHMETICEXPRINARGUMENT => "MOZ_NO_ARITHMETIC_EXPR_IN_ARGUMENT",
952            Mozcpp::MOZNODANGLINGONTEMPORARIES => "MOZ_NO_DANGLING_ON_TEMPORARIES",
953            Mozcpp::MOZNOSANITIZESIGNEDOVERFLOW => "MOZ_NO_SANITIZE_SIGNED_OVERFLOW",
954            Mozcpp::MOZNOSANITIZEUNSIGNEDOVERFLOW => "MOZ_NO_SANITIZE_UNSIGNED_OVERFLOW",
955            Mozcpp::MOZONLYUSEDTOAVOIDSTATICCONSTRUCTORS => {
956                "MOZ_ONLY_USED_TO_AVOID_STATIC_CONSTRUCTORS"
957            }
958            Mozcpp::MOZOWNINGREF => "MOZ_OWNING_REF",
959            Mozcpp::MOZPOPDISABLENONTRIVIALUNIONWARNINGS => {
960                "MOZ_POP_DISABLE_NONTRIVIAL_UNION_WARNINGS"
961            }
962            Mozcpp::MOZPRETENDNORETURNFORSTATICANALYSIS => {
963                "MOZ_PRETEND_NORETURN_FOR_STATIC_ANALYSIS"
964            }
965            Mozcpp::MOZPUSHDISABLENONTRIVIALUNIONWARNINGS => {
966                "MOZ_PUSH_DISABLE_NONTRIVIAL_UNION_WARNINGS"
967            }
968            Mozcpp::MOZRAII => "MOZ_RAII",
969            Mozcpp::MOZREQUIREDBASEMETHOD => "MOZ_REQUIRED_BASE_METHOD",
970            Mozcpp::MOZSTACKCLASS => "MOZ_STACK_CLASS",
971            Mozcpp::MOZSTATICCLASS => "MOZ_STATIC_CLASS",
972            Mozcpp::MOZSTATICLOCALCLASS => "MOZ_STATIC_LOCAL_CLASS",
973            Mozcpp::MOZTEMPORARYCLASS => "MOZ_TEMPORARY_CLASS",
974            Mozcpp::MOZTRIVIALCTORDTOR => "MOZ_TRIVIAL_CTOR_DTOR",
975            Mozcpp::MOZTSANBLACKLIST => "MOZ_TSAN_BLACKLIST",
976            Mozcpp::MOZUNSAFEREF => "MOZ_UNSAFE_REF",
977            Mozcpp::MOZXPCOMABI => "MOZ_XPCOM_ABI",
978            Mozcpp::JSPUBLICAPI => "JS_PUBLIC_API",
979            Mozcpp::RawStringDelimiter => "raw_string_delimiter",
980            Mozcpp::RawStringContent => "raw_string_content",
981            Mozcpp::TranslationUnit => "translation_unit",
982            Mozcpp::TopLevelItem => "_top_level_item",
983            Mozcpp::BlockItem => "_block_item",
984            Mozcpp::PreprocInclude => "preproc_include",
985            Mozcpp::PreprocDef => "preproc_def",
986            Mozcpp::PreprocFunctionDef => "preproc_function_def",
987            Mozcpp::PreprocParams => "preproc_params",
988            Mozcpp::PreprocCall => "preproc_call",
989            Mozcpp::PreprocIf => "preproc_if",
990            Mozcpp::PreprocIfdef => "preproc_ifdef",
991            Mozcpp::PreprocElse => "preproc_else",
992            Mozcpp::PreprocElif => "preproc_elif",
993            Mozcpp::PreprocElifdef => "preproc_elifdef",
994            Mozcpp::PreprocIf2 => "preproc_if",
995            Mozcpp::PreprocIfdef2 => "preproc_ifdef",
996            Mozcpp::PreprocElse2 => "preproc_else",
997            Mozcpp::PreprocElif2 => "preproc_elif",
998            Mozcpp::PreprocElifdef2 => "preproc_elifdef",
999            Mozcpp::PreprocIf3 => "preproc_if",
1000            Mozcpp::PreprocIfdef3 => "preproc_ifdef",
1001            Mozcpp::PreprocElse3 => "preproc_else",
1002            Mozcpp::PreprocElif3 => "preproc_elif",
1003            Mozcpp::PreprocElifdef3 => "preproc_elifdef",
1004            Mozcpp::PreprocIf4 => "preproc_if",
1005            Mozcpp::PreprocIfdef4 => "preproc_ifdef",
1006            Mozcpp::PreprocElse4 => "preproc_else",
1007            Mozcpp::PreprocElif4 => "preproc_elif",
1008            Mozcpp::PreprocElifdef4 => "preproc_elifdef",
1009            Mozcpp::PreprocExpression => "_preproc_expression",
1010            Mozcpp::ParenthesizedExpression => "parenthesized_expression",
1011            Mozcpp::PreprocDefined => "preproc_defined",
1012            Mozcpp::UnaryExpression => "unary_expression",
1013            Mozcpp::CallExpression => "call_expression",
1014            Mozcpp::ArgumentList => "argument_list",
1015            Mozcpp::BinaryExpression => "binary_expression",
1016            Mozcpp::FunctionDefinition => "function_definition",
1017            Mozcpp::Declaration => "declaration",
1018            Mozcpp::TypeDefinition => "type_definition",
1019            Mozcpp::TypeDefinitionType => "_type_definition_type",
1020            Mozcpp::TypeDefinitionDeclarators => "_type_definition_declarators",
1021            Mozcpp::DeclarationModifiers => "_declaration_modifiers",
1022            Mozcpp::DeclarationSpecifiers => "_declaration_specifiers",
1023            Mozcpp::LinkageSpecification => "linkage_specification",
1024            Mozcpp::AttributeSpecifier => "attribute_specifier",
1025            Mozcpp::Attribute => "attribute",
1026            Mozcpp::AttributeDeclaration => "attribute_declaration",
1027            Mozcpp::MsDeclspecModifier => "ms_declspec_modifier",
1028            Mozcpp::MsBasedModifier => "ms_based_modifier",
1029            Mozcpp::MsCallModifier => "ms_call_modifier",
1030            Mozcpp::MsUnalignedPtrModifier => "ms_unaligned_ptr_modifier",
1031            Mozcpp::MsPointerModifier => "ms_pointer_modifier",
1032            Mozcpp::DeclarationList => "declaration_list",
1033            Mozcpp::Declarator => "_declarator",
1034            Mozcpp::FieldDeclarator => "_field_declarator",
1035            Mozcpp::TypeDeclarator => "_type_declarator",
1036            Mozcpp::AbstractDeclarator => "_abstract_declarator",
1037            Mozcpp::ParenthesizedDeclarator => "parenthesized_declarator",
1038            Mozcpp::ParenthesizedDeclarator2 => "parenthesized_declarator",
1039            Mozcpp::ParenthesizedDeclarator3 => "parenthesized_declarator",
1040            Mozcpp::AbstractParenthesizedDeclarator => "abstract_parenthesized_declarator",
1041            Mozcpp::AttributedDeclarator => "attributed_declarator",
1042            Mozcpp::AttributedDeclarator2 => "attributed_declarator",
1043            Mozcpp::AttributedDeclarator3 => "attributed_declarator",
1044            Mozcpp::PointerDeclarator => "pointer_declarator",
1045            Mozcpp::PointerDeclarator2 => "pointer_declarator",
1046            Mozcpp::PointerTypeDeclarator => "pointer_type_declarator",
1047            Mozcpp::AbstractPointerDeclarator => "abstract_pointer_declarator",
1048            Mozcpp::FunctionDeclarator => "function_declarator",
1049            Mozcpp::FunctionDeclarator2 => "function_declarator",
1050            Mozcpp::FunctionDeclarator3 => "function_declarator",
1051            Mozcpp::AbstractFunctionDeclarator => "abstract_function_declarator",
1052            Mozcpp::ArrayDeclarator => "array_declarator",
1053            Mozcpp::ArrayDeclarator2 => "array_declarator",
1054            Mozcpp::ArrayDeclarator3 => "array_declarator",
1055            Mozcpp::AbstractArrayDeclarator => "abstract_array_declarator",
1056            Mozcpp::InitDeclarator => "init_declarator",
1057            Mozcpp::CompoundStatement => "compound_statement",
1058            Mozcpp::StorageClassSpecifier => "storage_class_specifier",
1059            Mozcpp::TypeQualifier => "type_qualifier",
1060            Mozcpp::AlignasQualifier => "alignas_qualifier",
1061            Mozcpp::TypeSpecifier => "type_specifier",
1062            Mozcpp::SizedTypeSpecifier => "sized_type_specifier",
1063            Mozcpp::EnumSpecifier => "enum_specifier",
1064            Mozcpp::EnumeratorList => "enumerator_list",
1065            Mozcpp::StructSpecifier => "struct_specifier",
1066            Mozcpp::UnionSpecifier => "union_specifier",
1067            Mozcpp::FieldDeclarationList => "field_declaration_list",
1068            Mozcpp::FieldDeclarationListItem => "_field_declaration_list_item",
1069            Mozcpp::FieldDeclaration => "field_declaration",
1070            Mozcpp::BitfieldClause => "bitfield_clause",
1071            Mozcpp::Enumerator => "enumerator",
1072            Mozcpp::ParameterList => "parameter_list",
1073            Mozcpp::ParameterDeclaration => "parameter_declaration",
1074            Mozcpp::AttributedStatement => "attributed_statement",
1075            Mozcpp::Statement => "statement",
1076            Mozcpp::TopLevelStatement => "_top_level_statement",
1077            Mozcpp::LabeledStatement => "labeled_statement",
1078            Mozcpp::ExpressionStatement => "expression_statement",
1079            Mozcpp::ExpressionStatement2 => "expression_statement",
1080            Mozcpp::IfStatement => "if_statement",
1081            Mozcpp::ElseClause => "else_clause",
1082            Mozcpp::SwitchStatement => "switch_statement",
1083            Mozcpp::CaseStatement => "case_statement",
1084            Mozcpp::WhileStatement => "while_statement",
1085            Mozcpp::DoStatement => "do_statement",
1086            Mozcpp::ForStatement => "for_statement",
1087            Mozcpp::ForStatementBody => "_for_statement_body",
1088            Mozcpp::ReturnStatement => "return_statement",
1089            Mozcpp::BreakStatement => "break_statement",
1090            Mozcpp::ContinueStatement => "continue_statement",
1091            Mozcpp::GotoStatement => "goto_statement",
1092            Mozcpp::SehTryStatement => "seh_try_statement",
1093            Mozcpp::SehExceptClause => "seh_except_clause",
1094            Mozcpp::SehFinallyClause => "seh_finally_clause",
1095            Mozcpp::SehLeaveStatement => "seh_leave_statement",
1096            Mozcpp::Expression => "expression",
1097            Mozcpp::String => "_string",
1098            Mozcpp::CommaExpression => "comma_expression",
1099            Mozcpp::ConditionalExpression => "conditional_expression",
1100            Mozcpp::AssignmentExpression => "assignment_expression",
1101            Mozcpp::PointerExpression => "pointer_expression",
1102            Mozcpp::UnaryExpression2 => "unary_expression",
1103            Mozcpp::BinaryExpression2 => "binary_expression",
1104            Mozcpp::UpdateExpression => "update_expression",
1105            Mozcpp::CastExpression => "cast_expression",
1106            Mozcpp::TypeDescriptor => "type_descriptor",
1107            Mozcpp::SizeofExpression => "sizeof_expression",
1108            Mozcpp::AlignofExpression => "alignof_expression",
1109            Mozcpp::OffsetofExpression => "offsetof_expression",
1110            Mozcpp::GenericExpression => "generic_expression",
1111            Mozcpp::SubscriptExpression => "subscript_expression",
1112            Mozcpp::CallExpression2 => "call_expression",
1113            Mozcpp::GnuAsmExpression => "gnu_asm_expression",
1114            Mozcpp::GnuAsmQualifier => "gnu_asm_qualifier",
1115            Mozcpp::GnuAsmOutputOperandList => "gnu_asm_output_operand_list",
1116            Mozcpp::GnuAsmOutputOperand => "gnu_asm_output_operand",
1117            Mozcpp::GnuAsmInputOperandList => "gnu_asm_input_operand_list",
1118            Mozcpp::GnuAsmInputOperand => "gnu_asm_input_operand",
1119            Mozcpp::GnuAsmClobberList => "gnu_asm_clobber_list",
1120            Mozcpp::GnuAsmGotoList => "gnu_asm_goto_list",
1121            Mozcpp::ExtensionExpression => "extension_expression",
1122            Mozcpp::ArgumentList2 => "argument_list",
1123            Mozcpp::FieldExpression => "field_expression",
1124            Mozcpp::CompoundLiteralExpression => "compound_literal_expression",
1125            Mozcpp::ParenthesizedExpression2 => "parenthesized_expression",
1126            Mozcpp::InitializerList => "initializer_list",
1127            Mozcpp::InitializerPair => "initializer_pair",
1128            Mozcpp::SubscriptDesignator => "subscript_designator",
1129            Mozcpp::SubscriptRangeDesignator => "subscript_range_designator",
1130            Mozcpp::FieldDesignator => "field_designator",
1131            Mozcpp::CharLiteral => "char_literal",
1132            Mozcpp::ConcatenatedString => "concatenated_string",
1133            Mozcpp::StringLiteral => "string_literal",
1134            Mozcpp::Null => "null",
1135            Mozcpp::EmptyDeclaration => "_empty_declaration",
1136            Mozcpp::PlaceholderTypeSpecifier => "placeholder_type_specifier",
1137            Mozcpp::Decltype => "decltype",
1138            Mozcpp::Decltype2 => "decltype",
1139            Mozcpp::ClassDeclaration => "_class_declaration",
1140            Mozcpp::ClassDeclarationItem => "_class_declaration_item",
1141            Mozcpp::ClassSpecifier => "class_specifier",
1142            Mozcpp::ClassName => "_class_name",
1143            Mozcpp::VirtualSpecifier => "virtual_specifier",
1144            Mozcpp::ExplicitFunctionSpecifier => "explicit_function_specifier",
1145            Mozcpp::BaseClassClause => "base_class_clause",
1146            Mozcpp::EnumBaseClause => "_enum_base_clause",
1147            Mozcpp::DependentType => "dependent_type",
1148            Mozcpp::TemplateDeclaration => "template_declaration",
1149            Mozcpp::TemplateInstantiation => "template_instantiation",
1150            Mozcpp::TemplateParameterList => "template_parameter_list",
1151            Mozcpp::TypeParameterDeclaration => "type_parameter_declaration",
1152            Mozcpp::VariadicTypeParameterDeclaration => "variadic_type_parameter_declaration",
1153            Mozcpp::OptionalTypeParameterDeclaration => "optional_type_parameter_declaration",
1154            Mozcpp::TemplateTemplateParameterDeclaration => {
1155                "template_template_parameter_declaration"
1156            }
1157            Mozcpp::OptionalParameterDeclaration => "optional_parameter_declaration",
1158            Mozcpp::VariadicParameterDeclaration => "variadic_parameter_declaration",
1159            Mozcpp::VariadicDeclarator => "variadic_declarator",
1160            Mozcpp::ReferenceDeclarator => "reference_declarator",
1161            Mozcpp::OperatorCast => "operator_cast",
1162            Mozcpp::FieldInitializerList => "field_initializer_list",
1163            Mozcpp::FieldInitializer => "field_initializer",
1164            Mozcpp::FunctionDefinition2 => "function_definition",
1165            Mozcpp::ConstructorSpecifiers => "_constructor_specifiers",
1166            Mozcpp::FunctionDefinition3 => "function_definition",
1167            Mozcpp::Declaration2 => "declaration",
1168            Mozcpp::TryStatement => "try_statement",
1169            Mozcpp::FunctionDefinition4 => "function_definition",
1170            Mozcpp::Declaration3 => "declaration",
1171            Mozcpp::DefaultMethodClause => "default_method_clause",
1172            Mozcpp::DeleteMethodClause => "delete_method_clause",
1173            Mozcpp::PureVirtualClause => "pure_virtual_clause",
1174            Mozcpp::FriendDeclaration => "friend_declaration",
1175            Mozcpp::AccessSpecifier => "access_specifier",
1176            Mozcpp::ReferenceDeclarator2 => "reference_declarator",
1177            Mozcpp::ReferenceDeclarator3 => "reference_declarator",
1178            Mozcpp::ReferenceDeclarator4 => "reference_declarator",
1179            Mozcpp::AbstractReferenceDeclarator => "abstract_reference_declarator",
1180            Mozcpp::StructuredBindingDeclarator => "structured_binding_declarator",
1181            Mozcpp::RefQualifier => "ref_qualifier",
1182            Mozcpp::FunctionDeclaratorSeq => "_function_declarator_seq",
1183            Mozcpp::FunctionAttributesStart => "_function_attributes_start",
1184            Mozcpp::FunctionExceptionSpecification => "_function_exception_specification",
1185            Mozcpp::FunctionAttributesEnd => "_function_attributes_end",
1186            Mozcpp::FunctionPostfix => "_function_postfix",
1187            Mozcpp::TrailingReturnType => "trailing_return_type",
1188            Mozcpp::Noexcept => "noexcept",
1189            Mozcpp::ThrowSpecifier => "throw_specifier",
1190            Mozcpp::TemplateType => "template_type",
1191            Mozcpp::TemplateMethod => "template_method",
1192            Mozcpp::TemplateFunction => "template_function",
1193            Mozcpp::TemplateArgumentList => "template_argument_list",
1194            Mozcpp::NamespaceDefinition => "namespace_definition",
1195            Mozcpp::NamespaceAliasDefinition => "namespace_alias_definition",
1196            Mozcpp::NamespaceSpecifier => "_namespace_specifier",
1197            Mozcpp::NestedNamespaceSpecifier => "nested_namespace_specifier",
1198            Mozcpp::UsingDeclaration => "using_declaration",
1199            Mozcpp::AliasDeclaration => "alias_declaration",
1200            Mozcpp::StaticAssertDeclaration => "static_assert_declaration",
1201            Mozcpp::ConceptDefinition => "concept_definition",
1202            Mozcpp::ForRangeLoop => "for_range_loop",
1203            Mozcpp::ForRangeLoopBody => "_for_range_loop_body",
1204            Mozcpp::InitStatement => "init_statement",
1205            Mozcpp::ConditionClause => "condition_clause",
1206            Mozcpp::Declaration4 => "declaration",
1207            Mozcpp::CoReturnStatement => "co_return_statement",
1208            Mozcpp::CoYieldStatement => "co_yield_statement",
1209            Mozcpp::ThrowStatement => "throw_statement",
1210            Mozcpp::TryStatement2 => "try_statement",
1211            Mozcpp::CatchClause => "catch_clause",
1212            Mozcpp::RawStringLiteral => "raw_string_literal",
1213            Mozcpp::SubscriptArgumentList => "subscript_argument_list",
1214            Mozcpp::CoAwaitExpression => "co_await_expression",
1215            Mozcpp::NewExpression => "new_expression",
1216            Mozcpp::NewDeclarator => "new_declarator",
1217            Mozcpp::DeleteExpression => "delete_expression",
1218            Mozcpp::TypeRequirement => "type_requirement",
1219            Mozcpp::CompoundRequirement => "compound_requirement",
1220            Mozcpp::Requirement => "_requirement",
1221            Mozcpp::RequirementSeq => "requirement_seq",
1222            Mozcpp::ConstraintConjunction => "constraint_conjunction",
1223            Mozcpp::ConstraintDisjunction => "constraint_disjunction",
1224            Mozcpp::RequirementClauseConstraint => "_requirement_clause_constraint",
1225            Mozcpp::RequiresClause => "requires_clause",
1226            Mozcpp::ParameterList2 => "parameter_list",
1227            Mozcpp::RequiresExpression => "requires_expression",
1228            Mozcpp::LambdaExpression => "lambda_expression",
1229            Mozcpp::LambdaCaptureSpecifier => "lambda_capture_specifier",
1230            Mozcpp::LambdaDefaultCapture => "lambda_default_capture",
1231            Mozcpp::LambdaCaptureIdentifier => "_lambda_capture_identifier",
1232            Mozcpp::LambdaCaptureInitializer => "lambda_capture_initializer",
1233            Mozcpp::LambdaCapture => "_lambda_capture",
1234            Mozcpp::FoldOperator => "_fold_operator",
1235            Mozcpp::BinaryFoldOperator => "_binary_fold_operator",
1236            Mozcpp::UnaryLeftFold => "_unary_left_fold",
1237            Mozcpp::UnaryRightFold => "_unary_right_fold",
1238            Mozcpp::BinaryFold => "_binary_fold",
1239            Mozcpp::FoldExpression => "fold_expression",
1240            Mozcpp::ParameterPackExpansion => "parameter_pack_expansion",
1241            Mozcpp::ParameterPackExpansion2 => "parameter_pack_expansion",
1242            Mozcpp::ParameterPackExpansion3 => "parameter_pack_expansion",
1243            Mozcpp::DestructorName => "destructor_name",
1244            Mozcpp::DependentName => "dependent_name",
1245            Mozcpp::DependentName2 => "dependent_name",
1246            Mozcpp::DependentName3 => "dependent_name",
1247            Mozcpp::ScopeResolution => "_scope_resolution",
1248            Mozcpp::QualifiedIdentifier => "qualified_identifier",
1249            Mozcpp::QualifiedIdentifier2 => "qualified_identifier",
1250            Mozcpp::QualifiedIdentifier3 => "qualified_identifier",
1251            Mozcpp::QualifiedIdentifier4 => "qualified_identifier",
1252            Mozcpp::AssignmentExpression2 => "assignment_expression",
1253            Mozcpp::OperatorName => "operator_name",
1254            Mozcpp::UserDefinedLiteral => "user_defined_literal",
1255            Mozcpp::AloneMacroCall => "alone_macro_call",
1256            Mozcpp::CallMacroWithDeclFirstArg => "_call_macro_with_decl_first_arg",
1257            Mozcpp::MacroAnnotation => "macro_annotation",
1258            Mozcpp::TranslationUnitRepeat1 => "translation_unit_repeat1",
1259            Mozcpp::PreprocParamsRepeat1 => "preproc_params_repeat1",
1260            Mozcpp::PreprocIfRepeat1 => "preproc_if_repeat1",
1261            Mozcpp::PreprocIfInFieldDeclarationListRepeat1 => {
1262                "preproc_if_in_field_declaration_list_repeat1"
1263            }
1264            Mozcpp::PreprocIfInEnumeratorListRepeat1 => "preproc_if_in_enumerator_list_repeat1",
1265            Mozcpp::PreprocIfInEnumeratorListNoCommaRepeat1 => {
1266                "preproc_if_in_enumerator_list_no_comma_repeat1"
1267            }
1268            Mozcpp::PreprocArgumentListRepeat1 => "preproc_argument_list_repeat1",
1269            Mozcpp::DeclarationRepeat1 => "declaration_repeat1",
1270            Mozcpp::TypeDefinitionRepeat1 => "type_definition_repeat1",
1271            Mozcpp::TypeDefinitionTypeRepeat1 => "_type_definition_type_repeat1",
1272            Mozcpp::TypeDefinitionDeclaratorsRepeat1 => "_type_definition_declarators_repeat1",
1273            Mozcpp::DeclarationSpecifiersRepeat1 => "_declaration_specifiers_repeat1",
1274            Mozcpp::AttributeDeclarationRepeat1 => "attribute_declaration_repeat1",
1275            Mozcpp::AttributedDeclaratorRepeat1 => "attributed_declarator_repeat1",
1276            Mozcpp::PointerDeclaratorRepeat1 => "pointer_declarator_repeat1",
1277            Mozcpp::ArrayDeclaratorRepeat1 => "array_declarator_repeat1",
1278            Mozcpp::SizedTypeSpecifierRepeat1 => "sized_type_specifier_repeat1",
1279            Mozcpp::EnumeratorListRepeat1 => "enumerator_list_repeat1",
1280            Mozcpp::FieldDeclarationRepeat1 => "field_declaration_repeat1",
1281            Mozcpp::ParameterListRepeat1 => "parameter_list_repeat1",
1282            Mozcpp::CaseStatementRepeat1 => "case_statement_repeat1",
1283            Mozcpp::GenericExpressionRepeat1 => "generic_expression_repeat1",
1284            Mozcpp::GnuAsmExpressionRepeat1 => "gnu_asm_expression_repeat1",
1285            Mozcpp::GnuAsmOutputOperandListRepeat1 => "gnu_asm_output_operand_list_repeat1",
1286            Mozcpp::GnuAsmInputOperandListRepeat1 => "gnu_asm_input_operand_list_repeat1",
1287            Mozcpp::GnuAsmClobberListRepeat1 => "gnu_asm_clobber_list_repeat1",
1288            Mozcpp::GnuAsmGotoListRepeat1 => "gnu_asm_goto_list_repeat1",
1289            Mozcpp::ArgumentListRepeat1 => "argument_list_repeat1",
1290            Mozcpp::InitializerListRepeat1 => "initializer_list_repeat1",
1291            Mozcpp::InitializerPairRepeat1 => "initializer_pair_repeat1",
1292            Mozcpp::CharLiteralRepeat1 => "char_literal_repeat1",
1293            Mozcpp::ConcatenatedStringRepeat1 => "concatenated_string_repeat1",
1294            Mozcpp::StringLiteralRepeat1 => "string_literal_repeat1",
1295            Mozcpp::ClassDeclarationRepeat1 => "_class_declaration_repeat1",
1296            Mozcpp::ClassSpecifierRepeat1 => "class_specifier_repeat1",
1297            Mozcpp::BaseClassClauseRepeat1 => "base_class_clause_repeat1",
1298            Mozcpp::TemplateParameterListRepeat1 => "template_parameter_list_repeat1",
1299            Mozcpp::FieldInitializerListRepeat1 => "field_initializer_list_repeat1",
1300            Mozcpp::OperatorCastDefinitionRepeat1 => "operator_cast_definition_repeat1",
1301            Mozcpp::ConstructorTryStatementRepeat1 => "constructor_try_statement_repeat1",
1302            Mozcpp::StructuredBindingDeclaratorRepeat1 => "structured_binding_declarator_repeat1",
1303            Mozcpp::FunctionPostfixRepeat1 => "_function_postfix_repeat1",
1304            Mozcpp::ThrowSpecifierRepeat1 => "throw_specifier_repeat1",
1305            Mozcpp::TemplateArgumentListRepeat1 => "template_argument_list_repeat1",
1306            Mozcpp::SubscriptArgumentListRepeat1 => "subscript_argument_list_repeat1",
1307            Mozcpp::RequirementSeqRepeat1 => "requirement_seq_repeat1",
1308            Mozcpp::RequiresParameterListRepeat1 => "requires_parameter_list_repeat1",
1309            Mozcpp::LambdaCaptureSpecifierRepeat1 => "lambda_capture_specifier_repeat1",
1310            Mozcpp::AloneMacroCallRepeat1 => "alone_macro_call_repeat1",
1311            Mozcpp::CallMacroWithDeclFirstArgRepeat1 => "_call_macro_with_decl_first_arg_repeat1",
1312            Mozcpp::FieldIdentifier => "field_identifier",
1313            Mozcpp::NamespaceIdentifier => "namespace_identifier",
1314            Mozcpp::SimpleRequirement => "simple_requirement",
1315            Mozcpp::StatementIdentifier => "statement_identifier",
1316            Mozcpp::TypeIdentifier => "type_identifier",
1317            Mozcpp::Error => "ERROR",
1318        }
1319    }
1320}
1321
1322impl From<u16> for Mozcpp {
1323    #[inline]
1324    fn from(x: u16) -> Self {
1325        num_traits::FromPrimitive::from_u16(x).unwrap_or(Self::Error)
1326    }
1327}
1328
1329// Mozcpp == u16
1330impl PartialEq<u16> for Mozcpp {
1331    #[inline]
1332    fn eq(&self, x: &u16) -> bool {
1333        *self == Into::<Self>::into(*x)
1334    }
1335}
1336
1337// u16 == Mozcpp
1338impl PartialEq<Mozcpp> for u16 {
1339    #[inline]
1340    fn eq(&self, x: &Mozcpp) -> bool {
1341        *x == *self
1342    }
1343}