big-code-analysis 1.1.0

Tool to compute and export code metrics
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
// See `src/languages/mod.rs` for the rationale behind the per-file
// pedantic carve-outs below.
#![allow(clippy::match_same_arms, clippy::too_many_lines)]

// Code generated; DO NOT EDIT.

use num_derive::FromPrimitive;

#[derive(Clone, Debug, PartialEq, Eq, FromPrimitive)]
pub enum Csharp {
    End = 0,
    IdentifierToken = 1,
    Extern = 2,
    Alias = 3,
    SEMI = 4,
    Global = 5,
    Using = 6,
    Unsafe = 7,
    EQ = 8,
    Static = 9,
    LBRACK = 10,
    Assembly = 11,
    Module = 12,
    COLON = 13,
    COMMA = 14,
    RBRACK = 15,
    LPAREN = 16,
    RPAREN = 17,
    Field = 18,
    Event = 19,
    Method = 20,
    Param = 21,
    Property = 22,
    Return = 23,
    Type = 24,
    Typevar = 25,
    Namespace = 26,
    Class = 27,
    Ref = 28,
    Struct = 29,
    Enum = 30,
    LBRACE = 31,
    RBRACE = 32,
    Interface = 33,
    Delegate = 34,
    Record = 35,
    Abstract = 36,
    Async = 37,
    Const = 38,
    File = 39,
    Fixed = 40,
    Internal = 41,
    New = 42,
    Override = 43,
    Partial = 44,
    Private = 45,
    Protected = 46,
    Public = 47,
    Readonly = 48,
    Required = 49,
    Sealed = 50,
    Virtual = 51,
    Volatile = 52,
    LT = 53,
    GT = 54,
    In = 55,
    Out = 56,
    Where = 57,
    QMARK = 58,
    Notnull = 59,
    Unmanaged = 60,
    Operator = 61,
    Checked = 62,
    BANG = 63,
    TILDE = 64,
    PLUSPLUS = 65,
    DASHDASH = 66,
    True = 67,
    False = 68,
    PLUS = 69,
    DASH = 70,
    STAR = 71,
    SLASH = 72,
    PERCENT = 73,
    CARET = 74,
    PIPE = 75,
    AMP = 76,
    LTLT = 77,
    GTGT = 78,
    GTGTGT = 79,
    EQEQ = 80,
    BANGEQ = 81,
    GTEQ = 82,
    LTEQ = 83,
    Implicit = 84,
    Explicit = 85,
    Get = 86,
    Set = 87,
    Add = 88,
    Remove = 89,
    Init = 90,
    This = 91,
    DOT = 92,
    Scoped = 93,
    Params = 94,
    Base = 95,
    EQGT = 96,
    COLONCOLON = 97,
    Var = 98,
    Managed = 99,
    Cdecl = 100,
    Stdcall = 101,
    Thiscall = 102,
    Fastcall = 103,
    PredefinedType = 104,
    Break = 105,
    Unchecked = 106,
    Continue = 107,
    Do = 108,
    While = 109,
    For = 110,
    Lock = 111,
    Yield = 112,
    Switch = 113,
    Case = 114,
    Default = 115,
    Throw = 116,
    Try = 117,
    Catch = 118,
    When = 119,
    Finally = 120,
    Await = 121,
    Foreach = 122,
    Goto = 123,
    If = 124,
    Else = 125,
    Discard = 126,
    DOTDOT = 127,
    Not = 128,
    And = 129,
    Or = 130,
    PLUSEQ = 131,
    DASHEQ = 132,
    STAREQ = 133,
    SLASHEQ = 134,
    PERCENTEQ = 135,
    AMPEQ = 136,
    CARETEQ = 137,
    PIPEEQ = 138,
    LTLTEQ = 139,
    GTGTEQ = 140,
    GTGTGTEQ = 141,
    QMARKQMARKEQ = 142,
    AMPAMP = 143,
    PIPEPIPE = 144,
    QMARKQMARK = 145,
    From = 146,
    Into = 147,
    Join = 148,
    On = 149,
    Equals = 150,
    Let = 151,
    Orderby = 152,
    Ascending = 153,
    Descending = 154,
    Group = 155,
    By = 156,
    Select = 157,
    As = 158,
    Is = 159,
    InterpolationFormatClauseToken1 = 160,
    DASHGT = 161,
    Stackalloc = 162,
    With = 163,
    Sizeof = 164,
    Typeof = 165,
    Makeref = 166,
    Reftype = 167,
    Refvalue = 168,
    NullLiteral = 169,
    SQUOTE = 170,
    CharacterLiteralContent = 171,
    IntegerLiteral = 172,
    RealLiteral = 173,
    DQUOTE = 174,
    StringLiteralContent = 175,
    EscapeSequence = 176,
    StringLiteralEncoding = 177,
    VerbatimStringLiteral = 178,
    RawStringLiteralToken1 = 179,
    HASHif = 180,
    PreprocIfToken2 = 181,
    HASHendif = 182,
    HASHelse = 183,
    HASHelif = 184,
    PreprocArg = 185,
    HASHregion = 186,
    HASHendregion = 187,
    HASHline = 188,
    Hidden = 189,
    HASHpragma = 190,
    Warning = 191,
    Disable = 192,
    Restore = 193,
    Checksum = 194,
    HASHnullable = 195,
    Enable = 196,
    Annotations = 197,
    Warnings = 198,
    HASHerror = 199,
    HASHwarning = 200,
    HASHdefine = 201,
    HASHundef = 202,
    ShebangDirective = 203,
    Comment = 204,
    OptionalSemi = 205,
    InterpolationStart = 206,
    InterpolationStart2 = 207,
    InterpolationStart3 = 208,
    DQUOTE2 = 209,
    DQUOTE3 = 210,
    InterpolationBrace = 211,
    InterpolationBrace2 = 212,
    StringContent = 213,
    RawStringStart = 214,
    RawStringEnd = 215,
    RawStringContent = 216,
    CompilationUnit = 217,
    TopLevelItem = 218,
    GlobalStatement = 219,
    ExternAliasDirective = 220,
    UsingDirective = 221,
    GlobalAttribute = 222,
    Attribute = 223,
    AttributeArgumentList = 224,
    AttributeArgument = 225,
    AttributeList = 226,
    AttributeList2 = 227,
    AttributeTargetSpecifier = 228,
    NamespaceDeclaration = 229,
    FileScopedNamespaceDeclaration = 230,
    TypeDeclaration = 231,
    ClassDeclaration = 232,
    ClassDeclarationInitializer = 233,
    StructDeclaration = 234,
    StructDeclarationInitializer = 235,
    EnumDeclaration = 236,
    EnumDeclarationInitializer = 237,
    EnumMemberDeclarationList = 238,
    EnumMemberDeclaration = 239,
    InterfaceDeclaration = 240,
    InterfaceDeclarationInitializer = 241,
    DelegateDeclaration = 242,
    DelegateDeclarationInitializer = 243,
    RecordDeclaration = 244,
    RecordDeclarationInitializer = 245,
    BaseList = 246,
    DeclarationListBody = 247,
    PrimaryConstructorBaseType = 248,
    Modifier = 249,
    TypeParameterList = 250,
    TypeParameter = 251,
    BaseList2 = 252,
    TypeParameterConstraintsClause = 253,
    TypeParameterConstraint = 254,
    ConstructorConstraint = 255,
    OperatorDeclaration = 256,
    ConversionOperatorDeclaration = 257,
    DeclarationList = 258,
    Declaration = 259,
    FieldDeclaration = 260,
    ConstructorDeclaration = 261,
    ConstructorDeclarationInitializer = 262,
    DestructorDeclaration = 263,
    MethodDeclaration = 264,
    EventDeclaration = 265,
    EventFieldDeclaration = 266,
    AccessorList = 267,
    AccessorDeclaration = 268,
    IndexerDeclaration = 269,
    BracketedParameterList = 270,
    PropertyDeclaration = 271,
    ExplicitInterfaceSpecifier = 272,
    ParameterList = 273,
    Parameter = 274,
    ParameterArray = 275,
    ConstructorInitializer = 276,
    ArgumentList = 277,
    TuplePattern = 278,
    Argument = 279,
    Block = 280,
    ArrowExpressionClause = 281,
    FunctionBody = 282,
    VariableDeclaration = 283,
    VariableDeclaration2 = 284,
    VariableDeclarator = 285,
    VariableDeclarator2 = 286,
    BracketedArgumentList = 287,
    Name = 288,
    AliasQualifiedName = 289,
    SimpleName = 290,
    QualifiedName = 291,
    GenericName = 292,
    TypeArgumentList = 293,
    Type2 = 294,
    ImplicitType = 295,
    ArrayType = 296,
    ArrayBaseType = 297,
    ArrayRankSpecifier = 298,
    NullableType = 299,
    PointerType = 300,
    PointerBaseType = 301,
    FunctionPointerType = 302,
    CallingConvention = 303,
    FunctionPointerParameter = 304,
    RefType = 305,
    RefBaseType = 306,
    ScopedType = 307,
    ScopedBaseType = 308,
    TupleType = 309,
    TupleElement = 310,
    Statement = 311,
    BreakStatement = 312,
    CheckedStatement = 313,
    ContinueStatement = 314,
    DoStatement = 315,
    EmptyStatement = 316,
    ExpressionStatement = 317,
    FixedStatement = 318,
    ForStatement = 319,
    ForStatementConditions = 320,
    ReturnStatement = 321,
    LockStatement = 322,
    YieldStatement = 323,
    SwitchStatement = 324,
    SwitchBody = 325,
    SwitchSection = 326,
    ThrowStatement = 327,
    TryStatement = 328,
    CatchClause = 329,
    CatchDeclaration = 330,
    CatchFilterClause = 331,
    FinallyClause = 332,
    UnsafeStatement = 333,
    UsingStatement = 334,
    ForeachStatement = 335,
    ForeachStatementInitializer = 336,
    GotoStatement = 337,
    LabeledStatement = 338,
    IfStatement = 339,
    WhileStatement = 340,
    LocalDeclarationStatement = 341,
    LocalFunctionStatement = 342,
    LocalFunctionDeclaration = 343,
    Pattern = 344,
    RecursivePattern = 345,
    ConstantPattern = 346,
    InvocationExpression = 347,
    InvocationExpression2 = 348,
    ParenthesizedPattern = 349,
    VarPattern = 350,
    TypePattern = 351,
    ListPattern = 352,
    RecursivePattern2 = 353,
    PositionalPatternClause = 354,
    PropertyPatternClause = 355,
    Subpattern = 356,
    RelationalPattern = 357,
    NegatedPattern = 358,
    AndPattern = 359,
    OrPattern = 360,
    DeclarationPattern = 361,
    VariableDesignation = 362,
    ParenthesizedVariableDesignation = 363,
    Expression = 364,
    NonLvalueExpression = 365,
    LvalueExpression = 366,
    ExpressionStatementExpression = 367,
    AssignmentExpression = 368,
    BinaryExpression = 369,
    PostfixUnaryExpression = 370,
    PrefixUnaryExpression = 371,
    PrefixUnaryExpression2 = 372,
    QueryExpression = 373,
    FromClause = 374,
    QueryBody = 375,
    QueryClause = 376,
    JoinClause = 377,
    JoinHeader = 378,
    JoinBody = 379,
    JoinIntoClause = 380,
    LetClause = 381,
    OrderByClause = 382,
    Ordering = 383,
    WhereClause = 384,
    SelectOrGroupClause = 385,
    GroupClause = 386,
    SelectClause = 387,
    ConditionalExpression = 388,
    ConditionalAccessExpression = 389,
    AsExpression = 390,
    IsExpression = 391,
    IsPatternExpression = 392,
    CastExpression = 393,
    CheckedExpression = 394,
    InvocationExpression3 = 395,
    SwitchExpression = 396,
    SwitchExpressionBody = 397,
    SwitchExpressionArm = 398,
    WhenClause = 399,
    AwaitExpression = 400,
    ThrowExpression = 401,
    ElementAccessExpression = 402,
    InterpolatedStringExpression = 403,
    InterpolatedStringContent = 404,
    InterpolatedVerbatimStringContent = 405,
    InterpolatedRawStringContent = 406,
    Interpolation = 407,
    InterpolationAlignmentClause = 408,
    InterpolationFormatClause = 409,
    MemberAccessExpression = 410,
    MemberBindingExpression = 411,
    ObjectCreationExpression = 412,
    ParenthesizedExpression = 413,
    ParenthesizedExpression2 = 414,
    LambdaExpression = 415,
    LambdaExpressionInit = 416,
    LambdaParameters = 417,
    ArrayCreationExpression = 418,
    AnonymousMethodExpression = 419,
    AnonymousObjectCreationExpression = 420,
    AnonymousObjectMemberDeclarator = 421,
    ImplicitArrayCreationExpression = 422,
    ImplicitObjectCreationExpression = 423,
    ImplicitStackallocExpression = 424,
    CollectionExpression = 425,
    CollectionElement = 426,
    ExpressionElement = 427,
    SpreadElement = 428,
    InitializerExpression = 429,
    DeclarationExpression = 430,
    DefaultExpression = 431,
    WithExpression = 432,
    WithBody = 433,
    WithInitializer = 434,
    SizeofExpression = 435,
    TypeofExpression = 436,
    MakerefExpression = 437,
    RefExpression = 438,
    ReftypeExpression = 439,
    RefvalueExpression = 440,
    StackallocExpression = 441,
    RangeExpression = 442,
    TupleExpression = 443,
    Literal = 444,
    CharacterLiteral = 445,
    StringLiteral = 446,
    RawStringLiteral = 447,
    BooleanLiteral = 448,
    Identifier = 449,
    ReservedIdentifier = 450,
    PreprocIf = 451,
    PreprocElse = 452,
    PreprocElif = 453,
    PreprocIf2 = 454,
    PreprocElse2 = 455,
    PreprocElif2 = 456,
    PreprocIf3 = 457,
    PreprocElse3 = 458,
    PreprocElif3 = 459,
    PreprocIf4 = 460,
    PreprocElse4 = 461,
    PreprocElif4 = 462,
    PreprocIfInAttributeList = 463,
    PreprocElse5 = 464,
    PreprocElif5 = 465,
    PreprocExpression = 466,
    ParenthesizedExpression3 = 467,
    UnaryExpression = 468,
    BinaryExpression2 = 469,
    PreprocRegion = 470,
    PreprocEndregion = 471,
    PreprocLine = 472,
    PreprocPragma = 473,
    PreprocNullable = 474,
    PreprocError = 475,
    PreprocWarning = 476,
    PreprocDefine = 477,
    PreprocUndef = 478,
    CompilationUnitRepeat1 = 479,
    UsingDirectiveRepeat1 = 480,
    GlobalAttributeRepeat1 = 481,
    AttributeArgumentListRepeat1 = 482,
    ClassDeclarationInitializerRepeat1 = 483,
    ClassDeclarationInitializerRepeat2 = 484,
    ClassDeclarationInitializerRepeat3 = 485,
    ClassDeclarationInitializerRepeat4 = 486,
    EnumMemberDeclarationListRepeat1 = 487,
    RecordDeclarationInitializerRepeat1 = 488,
    RecordBaseRepeat1 = 489,
    TypeParameterListRepeat1 = 490,
    BaseListRepeat1 = 491,
    TypeParameterConstraintsClauseRepeat1 = 492,
    ConversionOperatorDeclarationRepeat1 = 493,
    DeclarationListRepeat1 = 494,
    AccessorListRepeat1 = 495,
    BracketedParameterListRepeat1 = 496,
    ParameterTypeWithModifiersRepeat1 = 497,
    ArgumentListRepeat1 = 498,
    TuplePatternRepeat1 = 499,
    BlockRepeat1 = 500,
    VariableDeclarationRepeat1 = 501,
    UsingVariableDeclarationRepeat1 = 502,
    TypeArgumentListRepeat1 = 503,
    TypeArgumentListRepeat2 = 504,
    ArrayRankSpecifierRepeat1 = 505,
    FunctionPointerTypeRepeat1 = 506,
    CallingConventionRepeat1 = 507,
    TupleTypeRepeat1 = 508,
    ForStatementConditionsRepeat1 = 509,
    SwitchBodyRepeat1 = 510,
    TryStatementRepeat1 = 511,
    CatchClauseRepeat1 = 512,
    ListPatternRepeat1 = 513,
    PositionalPatternClauseRepeat1 = 514,
    ParenthesizedVariableDesignationRepeat1 = 515,
    QueryBodyRepeat1 = 516,
    QueryBodyRepeat2 = 517,
    OrderByClauseRepeat1 = 518,
    SwitchExpressionBodyRepeat1 = 519,
    InterpolatedStringExpressionRepeat1 = 520,
    InterpolatedStringExpressionRepeat2 = 521,
    InterpolatedStringExpressionRepeat3 = 522,
    LambdaExpressionInitRepeat1 = 523,
    AnonymousObjectCreationExpressionRepeat1 = 524,
    CollectionExpressionRepeat1 = 525,
    WithBodyRepeat1 = 526,
    StringLiteralRepeat1 = 527,
    PreprocIfInTopLevelRepeat1 = 528,
    PreprocPragmaRepeat1 = 529,
    ElementBindingExpression = 530,
    ImplicitParameter = 531,
    InterpolationQuote = 532,
    Error = 533,
}

impl From<Csharp> for &'static str {
    #[inline]
    fn from(tok: Csharp) -> Self {
        match tok {
            Csharp::End => "end",
            Csharp::IdentifierToken => "_identifier_token",
            Csharp::Extern => "extern",
            Csharp::Alias => "alias",
            Csharp::SEMI => ";",
            Csharp::Global => "global",
            Csharp::Using => "using",
            Csharp::Unsafe => "unsafe",
            Csharp::EQ => "=",
            Csharp::Static => "static",
            Csharp::LBRACK => "[",
            Csharp::Assembly => "assembly",
            Csharp::Module => "module",
            Csharp::COLON => ":",
            Csharp::COMMA => ",",
            Csharp::RBRACK => "]",
            Csharp::LPAREN => "(",
            Csharp::RPAREN => ")",
            Csharp::Field => "field",
            Csharp::Event => "event",
            Csharp::Method => "method",
            Csharp::Param => "param",
            Csharp::Property => "property",
            Csharp::Return => "return",
            Csharp::Type => "type",
            Csharp::Typevar => "typevar",
            Csharp::Namespace => "namespace",
            Csharp::Class => "class",
            Csharp::Ref => "ref",
            Csharp::Struct => "struct",
            Csharp::Enum => "enum",
            Csharp::LBRACE => "{",
            Csharp::RBRACE => "}",
            Csharp::Interface => "interface",
            Csharp::Delegate => "delegate",
            Csharp::Record => "record",
            Csharp::Abstract => "abstract",
            Csharp::Async => "async",
            Csharp::Const => "const",
            Csharp::File => "file",
            Csharp::Fixed => "fixed",
            Csharp::Internal => "internal",
            Csharp::New => "new",
            Csharp::Override => "override",
            Csharp::Partial => "partial",
            Csharp::Private => "private",
            Csharp::Protected => "protected",
            Csharp::Public => "public",
            Csharp::Readonly => "readonly",
            Csharp::Required => "required",
            Csharp::Sealed => "sealed",
            Csharp::Virtual => "virtual",
            Csharp::Volatile => "volatile",
            Csharp::LT => "<",
            Csharp::GT => ">",
            Csharp::In => "in",
            Csharp::Out => "out",
            Csharp::Where => "where",
            Csharp::QMARK => "?",
            Csharp::Notnull => "notnull",
            Csharp::Unmanaged => "unmanaged",
            Csharp::Operator => "operator",
            Csharp::Checked => "checked",
            Csharp::BANG => "!",
            Csharp::TILDE => "~",
            Csharp::PLUSPLUS => "++",
            Csharp::DASHDASH => "--",
            Csharp::True => "true",
            Csharp::False => "false",
            Csharp::PLUS => "+",
            Csharp::DASH => "-",
            Csharp::STAR => "*",
            Csharp::SLASH => "/",
            Csharp::PERCENT => "%",
            Csharp::CARET => "^",
            Csharp::PIPE => "|",
            Csharp::AMP => "&",
            Csharp::LTLT => "<<",
            Csharp::GTGT => ">>",
            Csharp::GTGTGT => ">>>",
            Csharp::EQEQ => "==",
            Csharp::BANGEQ => "!=",
            Csharp::GTEQ => ">=",
            Csharp::LTEQ => "<=",
            Csharp::Implicit => "implicit",
            Csharp::Explicit => "explicit",
            Csharp::Get => "get",
            Csharp::Set => "set",
            Csharp::Add => "add",
            Csharp::Remove => "remove",
            Csharp::Init => "init",
            Csharp::This => "this",
            Csharp::DOT => ".",
            Csharp::Scoped => "scoped",
            Csharp::Params => "params",
            Csharp::Base => "base",
            Csharp::EQGT => "=>",
            Csharp::COLONCOLON => "::",
            Csharp::Var => "var",
            Csharp::Managed => "managed",
            Csharp::Cdecl => "Cdecl",
            Csharp::Stdcall => "Stdcall",
            Csharp::Thiscall => "Thiscall",
            Csharp::Fastcall => "Fastcall",
            Csharp::PredefinedType => "predefined_type",
            Csharp::Break => "break",
            Csharp::Unchecked => "unchecked",
            Csharp::Continue => "continue",
            Csharp::Do => "do",
            Csharp::While => "while",
            Csharp::For => "for",
            Csharp::Lock => "lock",
            Csharp::Yield => "yield",
            Csharp::Switch => "switch",
            Csharp::Case => "case",
            Csharp::Default => "default",
            Csharp::Throw => "throw",
            Csharp::Try => "try",
            Csharp::Catch => "catch",
            Csharp::When => "when",
            Csharp::Finally => "finally",
            Csharp::Await => "await",
            Csharp::Foreach => "foreach",
            Csharp::Goto => "goto",
            Csharp::If => "if",
            Csharp::Else => "else",
            Csharp::Discard => "discard",
            Csharp::DOTDOT => "..",
            Csharp::Not => "not",
            Csharp::And => "and",
            Csharp::Or => "or",
            Csharp::PLUSEQ => "+=",
            Csharp::DASHEQ => "-=",
            Csharp::STAREQ => "*=",
            Csharp::SLASHEQ => "/=",
            Csharp::PERCENTEQ => "%=",
            Csharp::AMPEQ => "&=",
            Csharp::CARETEQ => "^=",
            Csharp::PIPEEQ => "|=",
            Csharp::LTLTEQ => "<<=",
            Csharp::GTGTEQ => ">>=",
            Csharp::GTGTGTEQ => ">>>=",
            Csharp::QMARKQMARKEQ => "??=",
            Csharp::AMPAMP => "&&",
            Csharp::PIPEPIPE => "||",
            Csharp::QMARKQMARK => "??",
            Csharp::From => "from",
            Csharp::Into => "into",
            Csharp::Join => "join",
            Csharp::On => "on",
            Csharp::Equals => "equals",
            Csharp::Let => "let",
            Csharp::Orderby => "orderby",
            Csharp::Ascending => "ascending",
            Csharp::Descending => "descending",
            Csharp::Group => "group",
            Csharp::By => "by",
            Csharp::Select => "select",
            Csharp::As => "as",
            Csharp::Is => "is",
            Csharp::InterpolationFormatClauseToken1 => "interpolation_format_clause_token1",
            Csharp::DASHGT => "->",
            Csharp::Stackalloc => "stackalloc",
            Csharp::With => "with",
            Csharp::Sizeof => "sizeof",
            Csharp::Typeof => "typeof",
            Csharp::Makeref => "__makeref",
            Csharp::Reftype => "__reftype",
            Csharp::Refvalue => "__refvalue",
            Csharp::NullLiteral => "null_literal",
            Csharp::SQUOTE => "'",
            Csharp::CharacterLiteralContent => "character_literal_content",
            Csharp::IntegerLiteral => "integer_literal",
            Csharp::RealLiteral => "real_literal",
            Csharp::DQUOTE => "\"",
            Csharp::StringLiteralContent => "string_literal_content",
            Csharp::EscapeSequence => "escape_sequence",
            Csharp::StringLiteralEncoding => "string_literal_encoding",
            Csharp::VerbatimStringLiteral => "verbatim_string_literal",
            Csharp::RawStringLiteralToken1 => "raw_string_literal_token1",
            Csharp::HASHif => "#if",
            Csharp::PreprocIfToken2 => "preproc_if_token2",
            Csharp::HASHendif => "#endif",
            Csharp::HASHelse => "#else",
            Csharp::HASHelif => "#elif",
            Csharp::PreprocArg => "preproc_arg",
            Csharp::HASHregion => "#region",
            Csharp::HASHendregion => "#endregion",
            Csharp::HASHline => "#line",
            Csharp::Hidden => "hidden",
            Csharp::HASHpragma => "#pragma",
            Csharp::Warning => "warning",
            Csharp::Disable => "disable",
            Csharp::Restore => "restore",
            Csharp::Checksum => "checksum",
            Csharp::HASHnullable => "#nullable",
            Csharp::Enable => "enable",
            Csharp::Annotations => "annotations",
            Csharp::Warnings => "warnings",
            Csharp::HASHerror => "#error",
            Csharp::HASHwarning => "#warning",
            Csharp::HASHdefine => "#define",
            Csharp::HASHundef => "#undef",
            Csharp::ShebangDirective => "shebang_directive",
            Csharp::Comment => "comment",
            Csharp::OptionalSemi => "_optional_semi",
            Csharp::InterpolationStart => "interpolation_start",
            Csharp::InterpolationStart2 => "interpolation_start",
            Csharp::InterpolationStart3 => "interpolation_start",
            Csharp::DQUOTE2 => "\"",
            Csharp::DQUOTE3 => "\"",
            Csharp::InterpolationBrace => "interpolation_brace",
            Csharp::InterpolationBrace2 => "interpolation_brace",
            Csharp::StringContent => "string_content",
            Csharp::RawStringStart => "raw_string_start",
            Csharp::RawStringEnd => "raw_string_end",
            Csharp::RawStringContent => "raw_string_content",
            Csharp::CompilationUnit => "compilation_unit",
            Csharp::TopLevelItem => "_top_level_item",
            Csharp::GlobalStatement => "global_statement",
            Csharp::ExternAliasDirective => "extern_alias_directive",
            Csharp::UsingDirective => "using_directive",
            Csharp::GlobalAttribute => "global_attribute",
            Csharp::Attribute => "attribute",
            Csharp::AttributeArgumentList => "attribute_argument_list",
            Csharp::AttributeArgument => "attribute_argument",
            Csharp::AttributeList => "attribute_list",
            Csharp::AttributeList2 => "_attribute_list",
            Csharp::AttributeTargetSpecifier => "attribute_target_specifier",
            Csharp::NamespaceDeclaration => "namespace_declaration",
            Csharp::FileScopedNamespaceDeclaration => "file_scoped_namespace_declaration",
            Csharp::TypeDeclaration => "type_declaration",
            Csharp::ClassDeclaration => "class_declaration",
            Csharp::ClassDeclarationInitializer => "_class_declaration_initializer",
            Csharp::StructDeclaration => "struct_declaration",
            Csharp::StructDeclarationInitializer => "_struct_declaration_initializer",
            Csharp::EnumDeclaration => "enum_declaration",
            Csharp::EnumDeclarationInitializer => "_enum_declaration_initializer",
            Csharp::EnumMemberDeclarationList => "enum_member_declaration_list",
            Csharp::EnumMemberDeclaration => "enum_member_declaration",
            Csharp::InterfaceDeclaration => "interface_declaration",
            Csharp::InterfaceDeclarationInitializer => "_interface_declaration_initializer",
            Csharp::DelegateDeclaration => "delegate_declaration",
            Csharp::DelegateDeclarationInitializer => "_delegate_declaration_initializer",
            Csharp::RecordDeclaration => "record_declaration",
            Csharp::RecordDeclarationInitializer => "_record_declaration_initializer",
            Csharp::BaseList => "base_list",
            Csharp::DeclarationListBody => "_declaration_list_body",
            Csharp::PrimaryConstructorBaseType => "primary_constructor_base_type",
            Csharp::Modifier => "modifier",
            Csharp::TypeParameterList => "type_parameter_list",
            Csharp::TypeParameter => "type_parameter",
            Csharp::BaseList2 => "base_list",
            Csharp::TypeParameterConstraintsClause => "type_parameter_constraints_clause",
            Csharp::TypeParameterConstraint => "type_parameter_constraint",
            Csharp::ConstructorConstraint => "constructor_constraint",
            Csharp::OperatorDeclaration => "operator_declaration",
            Csharp::ConversionOperatorDeclaration => "conversion_operator_declaration",
            Csharp::DeclarationList => "declaration_list",
            Csharp::Declaration => "declaration",
            Csharp::FieldDeclaration => "field_declaration",
            Csharp::ConstructorDeclaration => "constructor_declaration",
            Csharp::ConstructorDeclarationInitializer => "_constructor_declaration_initializer",
            Csharp::DestructorDeclaration => "destructor_declaration",
            Csharp::MethodDeclaration => "method_declaration",
            Csharp::EventDeclaration => "event_declaration",
            Csharp::EventFieldDeclaration => "event_field_declaration",
            Csharp::AccessorList => "accessor_list",
            Csharp::AccessorDeclaration => "accessor_declaration",
            Csharp::IndexerDeclaration => "indexer_declaration",
            Csharp::BracketedParameterList => "bracketed_parameter_list",
            Csharp::PropertyDeclaration => "property_declaration",
            Csharp::ExplicitInterfaceSpecifier => "explicit_interface_specifier",
            Csharp::ParameterList => "parameter_list",
            Csharp::Parameter => "parameter",
            Csharp::ParameterArray => "_parameter_array",
            Csharp::ConstructorInitializer => "constructor_initializer",
            Csharp::ArgumentList => "argument_list",
            Csharp::TuplePattern => "tuple_pattern",
            Csharp::Argument => "argument",
            Csharp::Block => "block",
            Csharp::ArrowExpressionClause => "arrow_expression_clause",
            Csharp::FunctionBody => "_function_body",
            Csharp::VariableDeclaration => "variable_declaration",
            Csharp::VariableDeclaration2 => "variable_declaration",
            Csharp::VariableDeclarator => "variable_declarator",
            Csharp::VariableDeclarator2 => "variable_declarator",
            Csharp::BracketedArgumentList => "bracketed_argument_list",
            Csharp::Name => "_name",
            Csharp::AliasQualifiedName => "alias_qualified_name",
            Csharp::SimpleName => "_simple_name",
            Csharp::QualifiedName => "qualified_name",
            Csharp::GenericName => "generic_name",
            Csharp::TypeArgumentList => "type_argument_list",
            Csharp::Type2 => "type",
            Csharp::ImplicitType => "implicit_type",
            Csharp::ArrayType => "array_type",
            Csharp::ArrayBaseType => "_array_base_type",
            Csharp::ArrayRankSpecifier => "array_rank_specifier",
            Csharp::NullableType => "nullable_type",
            Csharp::PointerType => "pointer_type",
            Csharp::PointerBaseType => "_pointer_base_type",
            Csharp::FunctionPointerType => "function_pointer_type",
            Csharp::CallingConvention => "calling_convention",
            Csharp::FunctionPointerParameter => "function_pointer_parameter",
            Csharp::RefType => "ref_type",
            Csharp::RefBaseType => "_ref_base_type",
            Csharp::ScopedType => "scoped_type",
            Csharp::ScopedBaseType => "_scoped_base_type",
            Csharp::TupleType => "tuple_type",
            Csharp::TupleElement => "tuple_element",
            Csharp::Statement => "statement",
            Csharp::BreakStatement => "break_statement",
            Csharp::CheckedStatement => "checked_statement",
            Csharp::ContinueStatement => "continue_statement",
            Csharp::DoStatement => "do_statement",
            Csharp::EmptyStatement => "empty_statement",
            Csharp::ExpressionStatement => "expression_statement",
            Csharp::FixedStatement => "fixed_statement",
            Csharp::ForStatement => "for_statement",
            Csharp::ForStatementConditions => "_for_statement_conditions",
            Csharp::ReturnStatement => "return_statement",
            Csharp::LockStatement => "lock_statement",
            Csharp::YieldStatement => "yield_statement",
            Csharp::SwitchStatement => "switch_statement",
            Csharp::SwitchBody => "switch_body",
            Csharp::SwitchSection => "switch_section",
            Csharp::ThrowStatement => "throw_statement",
            Csharp::TryStatement => "try_statement",
            Csharp::CatchClause => "catch_clause",
            Csharp::CatchDeclaration => "catch_declaration",
            Csharp::CatchFilterClause => "catch_filter_clause",
            Csharp::FinallyClause => "finally_clause",
            Csharp::UnsafeStatement => "unsafe_statement",
            Csharp::UsingStatement => "using_statement",
            Csharp::ForeachStatement => "foreach_statement",
            Csharp::ForeachStatementInitializer => "_foreach_statement_initializer",
            Csharp::GotoStatement => "goto_statement",
            Csharp::LabeledStatement => "labeled_statement",
            Csharp::IfStatement => "if_statement",
            Csharp::WhileStatement => "while_statement",
            Csharp::LocalDeclarationStatement => "local_declaration_statement",
            Csharp::LocalFunctionStatement => "local_function_statement",
            Csharp::LocalFunctionDeclaration => "_local_function_declaration",
            Csharp::Pattern => "pattern",
            Csharp::RecursivePattern => "recursive_pattern",
            Csharp::ConstantPattern => "constant_pattern",
            Csharp::InvocationExpression => "invocation_expression",
            Csharp::InvocationExpression2 => "invocation_expression",
            Csharp::ParenthesizedPattern => "parenthesized_pattern",
            Csharp::VarPattern => "var_pattern",
            Csharp::TypePattern => "type_pattern",
            Csharp::ListPattern => "list_pattern",
            Csharp::RecursivePattern2 => "recursive_pattern",
            Csharp::PositionalPatternClause => "positional_pattern_clause",
            Csharp::PropertyPatternClause => "property_pattern_clause",
            Csharp::Subpattern => "subpattern",
            Csharp::RelationalPattern => "relational_pattern",
            Csharp::NegatedPattern => "negated_pattern",
            Csharp::AndPattern => "and_pattern",
            Csharp::OrPattern => "or_pattern",
            Csharp::DeclarationPattern => "declaration_pattern",
            Csharp::VariableDesignation => "_variable_designation",
            Csharp::ParenthesizedVariableDesignation => "parenthesized_variable_designation",
            Csharp::Expression => "expression",
            Csharp::NonLvalueExpression => "non_lvalue_expression",
            Csharp::LvalueExpression => "lvalue_expression",
            Csharp::ExpressionStatementExpression => "_expression_statement_expression",
            Csharp::AssignmentExpression => "assignment_expression",
            Csharp::BinaryExpression => "binary_expression",
            Csharp::PostfixUnaryExpression => "postfix_unary_expression",
            Csharp::PrefixUnaryExpression => "prefix_unary_expression",
            Csharp::PrefixUnaryExpression2 => "prefix_unary_expression",
            Csharp::QueryExpression => "query_expression",
            Csharp::FromClause => "from_clause",
            Csharp::QueryBody => "_query_body",
            Csharp::QueryClause => "_query_clause",
            Csharp::JoinClause => "join_clause",
            Csharp::JoinHeader => "_join_header",
            Csharp::JoinBody => "_join_body",
            Csharp::JoinIntoClause => "join_into_clause",
            Csharp::LetClause => "let_clause",
            Csharp::OrderByClause => "order_by_clause",
            Csharp::Ordering => "_ordering",
            Csharp::WhereClause => "where_clause",
            Csharp::SelectOrGroupClause => "_select_or_group_clause",
            Csharp::GroupClause => "group_clause",
            Csharp::SelectClause => "select_clause",
            Csharp::ConditionalExpression => "conditional_expression",
            Csharp::ConditionalAccessExpression => "conditional_access_expression",
            Csharp::AsExpression => "as_expression",
            Csharp::IsExpression => "is_expression",
            Csharp::IsPatternExpression => "is_pattern_expression",
            Csharp::CastExpression => "cast_expression",
            Csharp::CheckedExpression => "checked_expression",
            Csharp::InvocationExpression3 => "invocation_expression",
            Csharp::SwitchExpression => "switch_expression",
            Csharp::SwitchExpressionBody => "_switch_expression_body",
            Csharp::SwitchExpressionArm => "switch_expression_arm",
            Csharp::WhenClause => "when_clause",
            Csharp::AwaitExpression => "await_expression",
            Csharp::ThrowExpression => "throw_expression",
            Csharp::ElementAccessExpression => "element_access_expression",
            Csharp::InterpolatedStringExpression => "interpolated_string_expression",
            Csharp::InterpolatedStringContent => "_interpolated_string_content",
            Csharp::InterpolatedVerbatimStringContent => "_interpolated_verbatim_string_content",
            Csharp::InterpolatedRawStringContent => "_interpolated_raw_string_content",
            Csharp::Interpolation => "interpolation",
            Csharp::InterpolationAlignmentClause => "interpolation_alignment_clause",
            Csharp::InterpolationFormatClause => "interpolation_format_clause",
            Csharp::MemberAccessExpression => "member_access_expression",
            Csharp::MemberBindingExpression => "member_binding_expression",
            Csharp::ObjectCreationExpression => "object_creation_expression",
            Csharp::ParenthesizedExpression => "parenthesized_expression",
            Csharp::ParenthesizedExpression2 => "parenthesized_expression",
            Csharp::LambdaExpression => "lambda_expression",
            Csharp::LambdaExpressionInit => "_lambda_expression_init",
            Csharp::LambdaParameters => "_lambda_parameters",
            Csharp::ArrayCreationExpression => "array_creation_expression",
            Csharp::AnonymousMethodExpression => "anonymous_method_expression",
            Csharp::AnonymousObjectCreationExpression => "anonymous_object_creation_expression",
            Csharp::AnonymousObjectMemberDeclarator => "_anonymous_object_member_declarator",
            Csharp::ImplicitArrayCreationExpression => "implicit_array_creation_expression",
            Csharp::ImplicitObjectCreationExpression => "implicit_object_creation_expression",
            Csharp::ImplicitStackallocExpression => "implicit_stackalloc_expression",
            Csharp::CollectionExpression => "collection_expression",
            Csharp::CollectionElement => "collection_element",
            Csharp::ExpressionElement => "expression_element",
            Csharp::SpreadElement => "spread_element",
            Csharp::InitializerExpression => "initializer_expression",
            Csharp::DeclarationExpression => "declaration_expression",
            Csharp::DefaultExpression => "default_expression",
            Csharp::WithExpression => "with_expression",
            Csharp::WithBody => "_with_body",
            Csharp::WithInitializer => "with_initializer",
            Csharp::SizeofExpression => "sizeof_expression",
            Csharp::TypeofExpression => "typeof_expression",
            Csharp::MakerefExpression => "makeref_expression",
            Csharp::RefExpression => "ref_expression",
            Csharp::ReftypeExpression => "reftype_expression",
            Csharp::RefvalueExpression => "refvalue_expression",
            Csharp::StackallocExpression => "stackalloc_expression",
            Csharp::RangeExpression => "range_expression",
            Csharp::TupleExpression => "tuple_expression",
            Csharp::Literal => "literal",
            Csharp::CharacterLiteral => "character_literal",
            Csharp::StringLiteral => "string_literal",
            Csharp::RawStringLiteral => "raw_string_literal",
            Csharp::BooleanLiteral => "boolean_literal",
            Csharp::Identifier => "identifier",
            Csharp::ReservedIdentifier => "_reserved_identifier",
            Csharp::PreprocIf => "preproc_if",
            Csharp::PreprocElse => "preproc_else",
            Csharp::PreprocElif => "preproc_elif",
            Csharp::PreprocIf2 => "preproc_if",
            Csharp::PreprocElse2 => "preproc_else",
            Csharp::PreprocElif2 => "preproc_elif",
            Csharp::PreprocIf3 => "preproc_if",
            Csharp::PreprocElse3 => "preproc_else",
            Csharp::PreprocElif3 => "preproc_elif",
            Csharp::PreprocIf4 => "preproc_if",
            Csharp::PreprocElse4 => "preproc_else",
            Csharp::PreprocElif4 => "preproc_elif",
            Csharp::PreprocIfInAttributeList => "preproc_if_in_attribute_list",
            Csharp::PreprocElse5 => "preproc_else",
            Csharp::PreprocElif5 => "preproc_elif",
            Csharp::PreprocExpression => "_preproc_expression",
            Csharp::ParenthesizedExpression3 => "parenthesized_expression",
            Csharp::UnaryExpression => "unary_expression",
            Csharp::BinaryExpression2 => "binary_expression",
            Csharp::PreprocRegion => "preproc_region",
            Csharp::PreprocEndregion => "preproc_endregion",
            Csharp::PreprocLine => "preproc_line",
            Csharp::PreprocPragma => "preproc_pragma",
            Csharp::PreprocNullable => "preproc_nullable",
            Csharp::PreprocError => "preproc_error",
            Csharp::PreprocWarning => "preproc_warning",
            Csharp::PreprocDefine => "preproc_define",
            Csharp::PreprocUndef => "preproc_undef",
            Csharp::CompilationUnitRepeat1 => "compilation_unit_repeat1",
            Csharp::UsingDirectiveRepeat1 => "using_directive_repeat1",
            Csharp::GlobalAttributeRepeat1 => "global_attribute_repeat1",
            Csharp::AttributeArgumentListRepeat1 => "attribute_argument_list_repeat1",
            Csharp::ClassDeclarationInitializerRepeat1 => "_class_declaration_initializer_repeat1",
            Csharp::ClassDeclarationInitializerRepeat2 => "_class_declaration_initializer_repeat2",
            Csharp::ClassDeclarationInitializerRepeat3 => "_class_declaration_initializer_repeat3",
            Csharp::ClassDeclarationInitializerRepeat4 => "_class_declaration_initializer_repeat4",
            Csharp::EnumMemberDeclarationListRepeat1 => "enum_member_declaration_list_repeat1",
            Csharp::RecordDeclarationInitializerRepeat1 => {
                "_record_declaration_initializer_repeat1"
            }
            Csharp::RecordBaseRepeat1 => "record_base_repeat1",
            Csharp::TypeParameterListRepeat1 => "type_parameter_list_repeat1",
            Csharp::BaseListRepeat1 => "base_list_repeat1",
            Csharp::TypeParameterConstraintsClauseRepeat1 => {
                "type_parameter_constraints_clause_repeat1"
            }
            Csharp::ConversionOperatorDeclarationRepeat1 => {
                "conversion_operator_declaration_repeat1"
            }
            Csharp::DeclarationListRepeat1 => "declaration_list_repeat1",
            Csharp::AccessorListRepeat1 => "accessor_list_repeat1",
            Csharp::BracketedParameterListRepeat1 => "bracketed_parameter_list_repeat1",
            Csharp::ParameterTypeWithModifiersRepeat1 => "_parameter_type_with_modifiers_repeat1",
            Csharp::ArgumentListRepeat1 => "argument_list_repeat1",
            Csharp::TuplePatternRepeat1 => "tuple_pattern_repeat1",
            Csharp::BlockRepeat1 => "block_repeat1",
            Csharp::VariableDeclarationRepeat1 => "variable_declaration_repeat1",
            Csharp::UsingVariableDeclarationRepeat1 => "using_variable_declaration_repeat1",
            Csharp::TypeArgumentListRepeat1 => "type_argument_list_repeat1",
            Csharp::TypeArgumentListRepeat2 => "type_argument_list_repeat2",
            Csharp::ArrayRankSpecifierRepeat1 => "array_rank_specifier_repeat1",
            Csharp::FunctionPointerTypeRepeat1 => "function_pointer_type_repeat1",
            Csharp::CallingConventionRepeat1 => "calling_convention_repeat1",
            Csharp::TupleTypeRepeat1 => "tuple_type_repeat1",
            Csharp::ForStatementConditionsRepeat1 => "_for_statement_conditions_repeat1",
            Csharp::SwitchBodyRepeat1 => "switch_body_repeat1",
            Csharp::TryStatementRepeat1 => "try_statement_repeat1",
            Csharp::CatchClauseRepeat1 => "catch_clause_repeat1",
            Csharp::ListPatternRepeat1 => "list_pattern_repeat1",
            Csharp::PositionalPatternClauseRepeat1 => "positional_pattern_clause_repeat1",
            Csharp::ParenthesizedVariableDesignationRepeat1 => {
                "parenthesized_variable_designation_repeat1"
            }
            Csharp::QueryBodyRepeat1 => "_query_body_repeat1",
            Csharp::QueryBodyRepeat2 => "_query_body_repeat2",
            Csharp::OrderByClauseRepeat1 => "order_by_clause_repeat1",
            Csharp::SwitchExpressionBodyRepeat1 => "_switch_expression_body_repeat1",
            Csharp::InterpolatedStringExpressionRepeat1 => "interpolated_string_expression_repeat1",
            Csharp::InterpolatedStringExpressionRepeat2 => "interpolated_string_expression_repeat2",
            Csharp::InterpolatedStringExpressionRepeat3 => "interpolated_string_expression_repeat3",
            Csharp::LambdaExpressionInitRepeat1 => "_lambda_expression_init_repeat1",
            Csharp::AnonymousObjectCreationExpressionRepeat1 => {
                "anonymous_object_creation_expression_repeat1"
            }
            Csharp::CollectionExpressionRepeat1 => "collection_expression_repeat1",
            Csharp::WithBodyRepeat1 => "_with_body_repeat1",
            Csharp::StringLiteralRepeat1 => "string_literal_repeat1",
            Csharp::PreprocIfInTopLevelRepeat1 => "preproc_if_in_top_level_repeat1",
            Csharp::PreprocPragmaRepeat1 => "preproc_pragma_repeat1",
            Csharp::ElementBindingExpression => "element_binding_expression",
            Csharp::ImplicitParameter => "implicit_parameter",
            Csharp::InterpolationQuote => "interpolation_quote",
            Csharp::Error => "ERROR",
        }
    }
}

impl From<u16> for Csharp {
    #[inline]
    fn from(x: u16) -> Self {
        num::FromPrimitive::from_u16(x).unwrap_or(Self::Error)
    }
}

// Csharp == u16
impl PartialEq<u16> for Csharp {
    #[inline]
    fn eq(&self, x: &u16) -> bool {
        *self == Into::<Self>::into(*x)
    }
}

// u16 == Csharp
impl PartialEq<Csharp> for u16 {
    #[inline]
    fn eq(&self, x: &Csharp) -> bool {
        *x == *self
    }
}