big-code-analysis 2.0.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
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
// 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 Objc {
    End = 0,
    Identifier = 1,
    HASHinclude = 2,
    HASHimport = 3,
    PreprocIncludeToken3 = 4,
    HASHdefine = 5,
    LPAREN = 6,
    DOTDOTDOT = 7,
    COMMA = 8,
    RPAREN = 9,
    HASHif = 10,
    LF = 11,
    HASHendif = 12,
    HASHifdef = 13,
    HASHifndef = 14,
    HASHelse = 15,
    HASHelif = 16,
    HASHelifdef = 17,
    HASHelifndef = 18,
    PreprocArg = 19,
    PreprocDirective = 20,
    LPAREN2 = 21,
    Defined = 22,
    BANG = 23,
    TILDE = 24,
    DASH = 25,
    PLUS = 26,
    STAR = 27,
    SLASH = 28,
    PERCENT = 29,
    PIPEPIPE = 30,
    AMPAMP = 31,
    PIPE = 32,
    CARET = 33,
    AMP = 34,
    EQEQ = 35,
    BANGEQ = 36,
    GT = 37,
    GTEQ = 38,
    LTEQ = 39,
    LT = 40,
    LTLT = 41,
    GTGT = 42,
    SEMI = 43,
    Extension = 44,
    Typedef = 45,
    Extern = 46,
    Attribute2 = 47,
    Attribute3 = 48,
    Noreturn = 49,
    Nothrow = 50,
    COLONCOLON = 51,
    LBRACK = 52,
    RBRACK = 53,
    Declspec = 54,
    Based = 55,
    Cdecl = 56,
    Clrcall = 57,
    Stdcall = 58,
    Fastcall = 59,
    Thiscall = 60,
    Vectorcall = 61,
    MsRestrictModifier = 62,
    MsUnsignedPtrModifier = 63,
    MsSignedPtrModifier = 64,
    Unaligned = 65,
    Unaligned2 = 66,
    LBRACE = 67,
    RBRACE = 68,
    Signed = 69,
    Unsigned = 70,
    Long = 71,
    Short = 72,
    Static = 73,
    EQ = 74,
    ATautoreleasepool = 75,
    Auto = 76,
    Register = 77,
    Inline = 78,
    Inline2 = 79,
    Inline3 = 80,
    Forceinline = 81,
    ThreadLocal = 82,
    Thread = 83,
    CGEXTERN = 84,
    CGINLINE = 85,
    FOUNDATIONEXPORT = 86,
    FOUNDATIONEXTERN = 87,
    FOUNDATIONSTATICINLINE = 88,
    IBOutlet = 89,
    IBInspectable = 90,
    IBDESIGNABLE = 91,
    NSINLINE = 92,
    NSVALIDUNTILENDOFSCOPE = 93,
    OBJCEXPORT = 94,
    OBJCROOTCLASS = 95,
    UIKITEXTERN = 96,
    Const = 97,
    Constexpr = 98,
    Volatile = 99,
    Restrict = 100,
    Restrict2 = 101,
    Atomic = 102,
    Noreturn2 = 103,
    Nonnull = 104,
    Nullable = 105,
    Complex = 106,
    Nullable2 = 107,
    NullableResult = 108,
    NullUnspecified = 109,
    Autoreleasing = 110,
    Block = 111,
    Bridge = 112,
    BridgeRetained = 113,
    BridgeTransfer = 114,
    Complex2 = 115,
    Const2 = 116,
    Imag = 117,
    Kindof = 118,
    Nonnull2 = 119,
    Nullable3 = 120,
    PtrauthObjcClassRo = 121,
    PtrauthObjcIsaPointer = 122,
    PtrauthObjcSuperPointer = 123,
    Real = 124,
    Strong = 125,
    UnsafeUnretained = 126,
    Unused = 127,
    Weak = 128,
    Alignas = 129,
    Alignas2 = 130,
    PrimitiveType = 131,
    Enum = 132,
    COLON = 133,
    Struct = 134,
    Union = 135,
    If = 136,
    Else = 137,
    Switch = 138,
    Case = 139,
    Default = 140,
    While = 141,
    Do = 142,
    For = 143,
    In = 144,
    Return = 145,
    Break = 146,
    Continue = 147,
    Goto = 148,
    QMARK = 149,
    STAREQ = 150,
    SLASHEQ = 151,
    PERCENTEQ = 152,
    PLUSEQ = 153,
    DASHEQ = 154,
    LTLTEQ = 155,
    GTGTEQ = 156,
    AMPEQ = 157,
    CARETEQ = 158,
    PIPEEQ = 159,
    DASHDASH = 160,
    PLUSPLUS = 161,
    Sizeof = 162,
    Alignof = 163,
    Alignof2 = 164,
    Alignof3 = 165,
    Alignof4 = 166,
    Alignof5 = 167,
    Offsetof = 168,
    Generic = 169,
    Asm = 170,
    Asm2 = 171,
    Asm3 = 172,
    Volatile2 = 173,
    LT2 = 174,
    DOT = 175,
    DASHGT = 176,
    NumberLiteral = 177,
    LSQUOTE = 178,
    USQUOTE = 179,
    USQUOTE2 = 180,
    U8SQUOTE = 181,
    SQUOTE = 182,
    Character = 183,
    AT = 184,
    DQUOTE = 185,
    LDQUOTE = 186,
    UDQUOTE = 187,
    UDQUOTE2 = 188,
    U8DQUOTE = 189,
    StringContent = 190,
    EscapeSequence = 191,
    SystemLibString = 192,
    True = 193,
    False = 194,
    NULL = 195,
    Nullptr = 196,
    Comment = 197,
    ObjcBridgeRelated = 198,
    Typeof = 199,
    Typeof2 = 200,
    Typeof3 = 201,
    Availability2 = 202,
    VersionNumber = 203,
    Ios = 204,
    Tvos = 205,
    Macos = 206,
    Macosx = 207,
    Watchos = 208,
    ATimport = 209,
    HASHundef = 210,
    HASH = 211,
    NSAUTOMATEDREFCOUNTUNAVAILABLE = 212,
    NSROOTCLASS = 213,
    NSUNAVAILABLE = 214,
    NSREQUIRESNILTERMINATION = 215,
    CFRETURNSRETAINED = 216,
    CFRETURNSNOTRETAINED = 217,
    DEPRECATEDATTRIBUTE = 218,
    UIAPPEARANCESELECTOR = 219,
    UNAVAILABLEATTRIBUTE = 220,
    CFFORMATFUNCTION = 221,
    NSAVAILABLE = 222,
    IOSAVAILABLE = 223,
    NSAVAILABLEIOS = 224,
    APIAVAILABLE = 225,
    APIUNAVAILABLE = 226,
    APIDEPRECATED = 227,
    NSENUMAVAILABLEIOS = 228,
    NSDEPRECATEDIOS = 229,
    NSENUMDEPRECATEDIOS = 230,
    NSFORMATFUNCTION = 231,
    DEPRECATEDMSGATTRIBUTE = 232,
    DeprecatedMsg = 233,
    DeprecatedEnumMsg = 234,
    NSSWIFTNAME = 235,
    NSSWIFTUNAVAILABLE = 236,
    NSEXTENSIONUNAVAILABLEIOS = 237,
    NSCLASSAVAILABLEIOS = 238,
    NSCLASSDEPRECATEDIOS = 239,
    OSXAVAILABLESTARTING = 240,
    ATprotocol = 241,
    Class = 242,
    ATend = 243,
    ATinterface = 244,
    ATimplementation = 245,
    Covariant = 246,
    Contravariant = 247,
    ATprivate = 248,
    ATprotected = 249,
    ATpackage = 250,
    ATpublic = 251,
    ATcompatibilityAlias = 252,
    AToptional = 253,
    ATrequired = 254,
    ATsynthesize = 255,
    ATdynamic = 256,
    LPARENclassRPAREN = 257,
    ATproperty = 258,
    ATtry = 259,
    Try = 260,
    ATcatch = 261,
    Catch = 262,
    ATfinally = 263,
    Finally = 264,
    ATthrow = 265,
    ATselector = 266,
    SelectorExpressionToken1 = 267,
    ATavailable = 268,
    BuiltinAvailable = 269,
    VaArg = 270,
    MsAsmBlockToken1 = 271,
    ATencode = 272,
    ATsynchronized = 273,
    BOOL = 274,
    IMP = 275,
    SEL = 276,
    Class2 = 277,
    Id = 278,
    ATdefs = 279,
    Out = 280,
    Inout = 281,
    Bycopy = 282,
    Byref = 283,
    Oneway = 284,
    COLON2 = 285,
    TranslationUnit = 286,
    TopLevelItem = 287,
    BlockItem = 288,
    PreprocInclude = 289,
    PreprocDef = 290,
    PreprocFunctionDef = 291,
    PreprocParams = 292,
    PreprocCall = 293,
    PreprocIf = 294,
    PreprocIfdef = 295,
    PreprocElse = 296,
    PreprocElif = 297,
    PreprocElifdef = 298,
    PreprocIf2 = 299,
    PreprocIfdef2 = 300,
    PreprocElse2 = 301,
    PreprocElif2 = 302,
    PreprocElifdef2 = 303,
    PreprocExpression = 304,
    ParenthesizedExpression = 305,
    PreprocDefined = 306,
    UnaryExpression = 307,
    CallExpression = 308,
    ArgumentList = 309,
    BinaryExpression = 310,
    FunctionDefinition = 311,
    FunctionDefinition2 = 312,
    Declaration = 313,
    TypeDefinition = 314,
    TypeDefinitionType = 315,
    TypeDefinitionDeclarators = 316,
    DeclarationModifiers = 317,
    DeclarationSpecifiers = 318,
    LinkageSpecification = 319,
    AttributeSpecifier = 320,
    Attribute = 321,
    AttributeDeclaration = 322,
    MsDeclspecModifier = 323,
    MsBasedModifier = 324,
    MsCallModifier = 325,
    MsUnalignedPtrModifier = 326,
    MsPointerModifier = 327,
    DeclarationList = 328,
    Declarator = 329,
    FieldDeclarator = 330,
    TypeDeclarator = 331,
    AbstractDeclarator = 332,
    ParenthesizedDeclarator = 333,
    ParenthesizedDeclarator2 = 334,
    ParenthesizedDeclarator3 = 335,
    AbstractParenthesizedDeclarator = 336,
    AttributedDeclarator = 337,
    PointerDeclarator = 338,
    PointerDeclarator2 = 339,
    PointerDeclarator3 = 340,
    AbstractPointerDeclarator = 341,
    FunctionDeclarator = 342,
    FunctionDeclarator2 = 343,
    FunctionDeclarator3 = 344,
    AbstractFunctionDeclarator = 345,
    FunctionDeclarator4 = 346,
    ArrayDeclarator = 347,
    ArrayDeclarator2 = 348,
    ArrayDeclarator3 = 349,
    AbstractArrayDeclarator = 350,
    InitDeclarator = 351,
    CompoundStatement = 352,
    StorageClassSpecifier = 353,
    TypeQualifier = 354,
    AlignasQualifier = 355,
    TypeSpecifier = 356,
    SizedTypeSpecifier = 357,
    EnumSpecifier = 358,
    EnumeratorList = 359,
    StructSpecifier = 360,
    UnionSpecifier = 361,
    FieldDeclarationList = 362,
    FieldDeclarationListItem = 363,
    FieldDeclaration = 364,
    BitfieldClause = 365,
    Enumerator = 366,
    VariadicParameter = 367,
    ParameterList = 368,
    ParameterList2 = 369,
    ParameterDeclaration = 370,
    AttributedStatement = 371,
    Statement = 372,
    TopLevelStatement = 373,
    LabeledStatement = 374,
    ExpressionStatement = 375,
    ExpressionStatement2 = 376,
    IfStatement = 377,
    ElseClause = 378,
    SwitchStatement = 379,
    CaseStatement = 380,
    WhileStatement = 381,
    DoStatement = 382,
    ForStatement = 383,
    ForStatementBody = 384,
    ReturnStatement = 385,
    BreakStatement = 386,
    ContinueStatement = 387,
    GotoStatement = 388,
    Expression = 389,
    String = 390,
    CommaExpression = 391,
    ConditionalExpression = 392,
    AssignmentExpression = 393,
    PointerExpression = 394,
    UnaryExpression2 = 395,
    BinaryExpression2 = 396,
    UpdateExpression = 397,
    CastExpression = 398,
    TypeDescriptor = 399,
    SizeofExpression = 400,
    AlignofExpression = 401,
    OffsetofExpression = 402,
    GenericExpression = 403,
    SubscriptExpression = 404,
    CallExpression2 = 405,
    GnuAsmExpression = 406,
    GnuAsmQualifier = 407,
    GnuAsmOutputOperandList = 408,
    GnuAsmOutputOperand = 409,
    GnuAsmInputOperandList = 410,
    GnuAsmInputOperand = 411,
    GnuAsmClobberList = 412,
    GnuAsmGotoList = 413,
    ExtensionExpression = 414,
    ArgumentList2 = 415,
    FieldExpression = 416,
    CompoundLiteralExpression = 417,
    ParenthesizedExpression2 = 418,
    InitializerList = 419,
    InitializerPair = 420,
    SubscriptDesignator = 421,
    SubscriptRangeDesignator = 422,
    FieldDesignator = 423,
    CharLiteral = 424,
    ConcatenatedString = 425,
    StringLiteral = 426,
    Null = 427,
    EmptyDeclaration = 428,
    MacroTypeSpecifier = 429,
    ObjcBridge = 430,
    TypeofSpecifier = 431,
    Availability = 432,
    Version = 433,
    Platform = 434,
    ModuleImport = 435,
    PreprocIf3 = 436,
    PreprocElse3 = 437,
    PreprocElif3 = 438,
    PreprocIf4 = 439,
    PreprocElse4 = 440,
    PreprocElif4 = 441,
    PreprocIfdef3 = 442,
    PreprocElse5 = 443,
    PreprocElif5 = 444,
    PreprocUndef = 445,
    PreprocLinemarker = 446,
    AvailabilityAttributeSpecifier = 447,
    ProtocolForwardDeclaration = 448,
    ClassDeclaration = 449,
    ClassInterface = 450,
    ClassInterfaceHeader = 451,
    TypeParams = 452,
    ClassInterfaceInheritance = 453,
    ClassImplementation = 454,
    ClassImplementationHeader = 455,
    ClassImplementationInheritance = 456,
    ProtocolReferenceList = 457,
    ParameterizedArguments = 458,
    GenericArguments = 459,
    InstanceVariables = 460,
    InstanceVariable = 461,
    VisibilitySpecification = 462,
    ProtocolDeclaration = 463,
    CompatibilityAliasDeclaration = 464,
    QualifiedProtocolInterfaceDeclaration = 465,
    ImplementationDefinition = 466,
    PropertyImplementation = 467,
    MethodDefinition = 468,
    MethodType = 469,
    KeywordDeclarator = 470,
    PropertyDeclaration = 471,
    PropertyAttributesDeclaration = 472,
    PropertyAttribute = 473,
    MethodDeclaration = 474,
    MethodParameter = 475,
    MethodParameter2 = 476,
    StructDeclaration = 477,
    AtomicDeclaration = 478,
    SpecifierQualifier = 479,
    StructDeclarator = 480,
    TryStatement = 481,
    CatchClause = 482,
    FinallyClause = 483,
    ThrowStatement = 484,
    SelectorExpression = 485,
    AvailableExpression = 486,
    RangeExpression = 487,
    BlockLiteral = 488,
    MessageExpression = 489,
    VaArgExpression = 490,
    MsAsmBlock = 491,
    EncodeExpression = 492,
    SynchronizedStatement = 493,
    BlockPointerDeclarator = 494,
    BlockPointerDeclarator2 = 495,
    BlockPointerDeclarator3 = 496,
    AbstractBlockPointerDeclarator = 497,
    GenericSpecifier = 498,
    TypedefedSpecifier = 499,
    ArrayTypeSpecifier = 500,
    AtdefField = 501,
    ProtocolQualifier = 502,
    TypeName = 503,
    AtExpression = 504,
    DictionaryLiteral = 505,
    DictionaryPair = 506,
    ArrayLiteral = 507,
    MethodIdentifier = 508,
    TranslationUnitRepeat1 = 509,
    PreprocParamsRepeat1 = 510,
    PreprocIfRepeat1 = 511,
    PreprocIfInFieldDeclarationListRepeat1 = 512,
    PreprocArgumentListRepeat1 = 513,
    OldStyleFunctionDefinitionRepeat1 = 514,
    DeclarationRepeat1 = 515,
    TypeDefinitionTypeRepeat1 = 516,
    TypeDefinitionDeclaratorsRepeat1 = 517,
    DeclarationSpecifiersRepeat1 = 518,
    AttributeSpecifierRepeat1 = 519,
    AttributeRepeat1 = 520,
    AttributeDeclarationRepeat1 = 521,
    DeclarationListRepeat1 = 522,
    AttributedFieldDeclaratorRepeat1 = 523,
    PointerDeclaratorRepeat1 = 524,
    FunctionDeclaratorRepeat1 = 525,
    FunctionFieldDeclaratorRepeat1 = 526,
    ArrayDeclaratorRepeat1 = 527,
    SizedTypeSpecifierRepeat1 = 528,
    EnumeratorListRepeat1 = 529,
    FieldDeclarationRepeat1 = 530,
    ParameterListRepeat1 = 531,
    OldStyleParameterListRepeat1 = 532,
    CaseStatementRepeat1 = 533,
    GenericExpressionRepeat1 = 534,
    GnuAsmExpressionRepeat1 = 535,
    GnuAsmOutputOperandListRepeat1 = 536,
    GnuAsmInputOperandListRepeat1 = 537,
    GnuAsmClobberListRepeat1 = 538,
    GnuAsmGotoListRepeat1 = 539,
    ArgumentListRepeat1 = 540,
    ArgumentListRepeat2 = 541,
    InitializerListRepeat1 = 542,
    InitializerPairRepeat1 = 543,
    CharLiteralRepeat1 = 544,
    ConcatenatedStringRepeat1 = 545,
    StringLiteralRepeat1 = 546,
    AvailabilityRepeat1 = 547,
    VersionRepeat1 = 548,
    ModuleImportRepeat1 = 549,
    PreprocIfInImplementationDefinitionRepeat1 = 550,
    PreprocIfInInterfaceDeclarationRepeat1 = 551,
    PreprocIfdefInEnumeratorRepeat1 = 552,
    AvailabilityAttributeSpecifierRepeat1 = 553,
    ProtocolForwardDeclarationRepeat1 = 554,
    ClassDeclarationRepeat1 = 555,
    ClassInterfaceRepeat1 = 556,
    ClassImplementationRepeat1 = 557,
    ParameterizedArgumentsRepeat1 = 558,
    ParameterizedArgumentsRepeat2 = 559,
    GenericArgumentsRepeat1 = 560,
    InstanceVariablesRepeat1 = 561,
    ProtocolDeclarationRepeat1 = 562,
    PropertyImplementationRepeat1 = 563,
    MethodDefinitionRepeat1 = 564,
    MethodDefinitionRepeat2 = 565,
    MethodTypeRepeat1 = 566,
    KeywordSelectorRepeat1 = 567,
    PropertyAttributesDeclarationRepeat1 = 568,
    MethodDeclarationRepeat1 = 569,
    MethodDeclarationRepeat2 = 570,
    CMethodParameterRepeat1 = 571,
    StructDeclarationRepeat1 = 572,
    StructDeclarationRepeat2 = 573,
    TryStatementRepeat1 = 574,
    SelectorExpressionRepeat1 = 575,
    SelectorExpressionRepeat2 = 576,
    AvailableExpressionRepeat1 = 577,
    MessageExpressionRepeat1 = 578,
    MessageExpressionRepeat2 = 579,
    GenericSpecifierRepeat1 = 580,
    TypeNameRepeat1 = 581,
    DictionaryLiteralRepeat1 = 582,
    MethodIdentifierRepeat1 = 583,
    MethodIdentifierRepeat2 = 584,
    FieldIdentifier = 585,
    StatementIdentifier = 586,
    TypeIdentifier = 587,
    Error = 588,
}

impl From<Objc> for &'static str {
    #[inline]
    fn from(tok: Objc) -> Self {
        match tok {
            Objc::End => "end",
            Objc::Identifier => "identifier",
            Objc::HASHinclude => "#include",
            Objc::HASHimport => "#import",
            Objc::PreprocIncludeToken3 => "preproc_include_token3",
            Objc::HASHdefine => "#define",
            Objc::LPAREN => "(",
            Objc::DOTDOTDOT => "...",
            Objc::COMMA => ",",
            Objc::RPAREN => ")",
            Objc::HASHif => "#if",
            Objc::LF => "\n",
            Objc::HASHendif => "#endif",
            Objc::HASHifdef => "#ifdef",
            Objc::HASHifndef => "#ifndef",
            Objc::HASHelse => "#else",
            Objc::HASHelif => "#elif",
            Objc::HASHelifdef => "#elifdef",
            Objc::HASHelifndef => "#elifndef",
            Objc::PreprocArg => "preproc_arg",
            Objc::PreprocDirective => "preproc_directive",
            Objc::LPAREN2 => "(",
            Objc::Defined => "defined",
            Objc::BANG => "!",
            Objc::TILDE => "~",
            Objc::DASH => "-",
            Objc::PLUS => "+",
            Objc::STAR => "*",
            Objc::SLASH => "/",
            Objc::PERCENT => "%",
            Objc::PIPEPIPE => "||",
            Objc::AMPAMP => "&&",
            Objc::PIPE => "|",
            Objc::CARET => "^",
            Objc::AMP => "&",
            Objc::EQEQ => "==",
            Objc::BANGEQ => "!=",
            Objc::GT => ">",
            Objc::GTEQ => ">=",
            Objc::LTEQ => "<=",
            Objc::LT => "<",
            Objc::LTLT => "<<",
            Objc::GTGT => ">>",
            Objc::SEMI => ";",
            Objc::Extension => "__extension__",
            Objc::Typedef => "typedef",
            Objc::Extern => "extern",
            Objc::Attribute2 => "__attribute__",
            Objc::Attribute3 => "__attribute",
            Objc::Noreturn => "noreturn",
            Objc::Nothrow => "nothrow",
            Objc::COLONCOLON => "::",
            Objc::LBRACK => "[",
            Objc::RBRACK => "]",
            Objc::Declspec => "__declspec",
            Objc::Based => "__based",
            Objc::Cdecl => "__cdecl",
            Objc::Clrcall => "__clrcall",
            Objc::Stdcall => "__stdcall",
            Objc::Fastcall => "__fastcall",
            Objc::Thiscall => "__thiscall",
            Objc::Vectorcall => "__vectorcall",
            Objc::MsRestrictModifier => "ms_restrict_modifier",
            Objc::MsUnsignedPtrModifier => "ms_unsigned_ptr_modifier",
            Objc::MsSignedPtrModifier => "ms_signed_ptr_modifier",
            Objc::Unaligned => "_unaligned",
            Objc::Unaligned2 => "__unaligned",
            Objc::LBRACE => "{",
            Objc::RBRACE => "}",
            Objc::Signed => "signed",
            Objc::Unsigned => "unsigned",
            Objc::Long => "long",
            Objc::Short => "short",
            Objc::Static => "static",
            Objc::EQ => "=",
            Objc::ATautoreleasepool => "@autoreleasepool",
            Objc::Auto => "auto",
            Objc::Register => "register",
            Objc::Inline => "inline",
            Objc::Inline2 => "__inline",
            Objc::Inline3 => "__inline__",
            Objc::Forceinline => "__forceinline",
            Objc::ThreadLocal => "thread_local",
            Objc::Thread => "__thread",
            Objc::CGEXTERN => "CG_EXTERN",
            Objc::CGINLINE => "CG_INLINE",
            Objc::FOUNDATIONEXPORT => "FOUNDATION_EXPORT",
            Objc::FOUNDATIONEXTERN => "FOUNDATION_EXTERN",
            Objc::FOUNDATIONSTATICINLINE => "FOUNDATION_STATIC_INLINE",
            Objc::IBOutlet => "IBOutlet",
            Objc::IBInspectable => "IBInspectable",
            Objc::IBDESIGNABLE => "IB_DESIGNABLE",
            Objc::NSINLINE => "NS_INLINE",
            Objc::NSVALIDUNTILENDOFSCOPE => "NS_VALID_UNTIL_END_OF_SCOPE",
            Objc::OBJCEXPORT => "OBJC_EXPORT",
            Objc::OBJCROOTCLASS => "OBJC_ROOT_CLASS",
            Objc::UIKITEXTERN => "UIKIT_EXTERN",
            Objc::Const => "const",
            Objc::Constexpr => "constexpr",
            Objc::Volatile => "volatile",
            Objc::Restrict => "restrict",
            Objc::Restrict2 => "__restrict__",
            Objc::Atomic => "_Atomic",
            Objc::Noreturn2 => "_Noreturn",
            Objc::Nonnull => "_Nonnull",
            Objc::Nullable => "nullable",
            Objc::Complex => "_Complex",
            Objc::Nullable2 => "_Nullable",
            Objc::NullableResult => "_Nullable_result",
            Objc::NullUnspecified => "_Null_unspecified",
            Objc::Autoreleasing => "__autoreleasing",
            Objc::Block => "__block",
            Objc::Bridge => "__bridge",
            Objc::BridgeRetained => "__bridge_retained",
            Objc::BridgeTransfer => "__bridge_transfer",
            Objc::Complex2 => "__complex",
            Objc::Const2 => "__const",
            Objc::Imag => "__imag",
            Objc::Kindof => "__kindof",
            Objc::Nonnull2 => "__nonnull",
            Objc::Nullable3 => "__nullable",
            Objc::PtrauthObjcClassRo => "__ptrauth_objc_class_ro",
            Objc::PtrauthObjcIsaPointer => "__ptrauth_objc_isa_pointer",
            Objc::PtrauthObjcSuperPointer => "__ptrauth_objc_super_pointer",
            Objc::Real => "__real",
            Objc::Strong => "__strong",
            Objc::UnsafeUnretained => "__unsafe_unretained",
            Objc::Unused => "__unused",
            Objc::Weak => "__weak",
            Objc::Alignas => "alignas",
            Objc::Alignas2 => "_Alignas",
            Objc::PrimitiveType => "primitive_type",
            Objc::Enum => "enum",
            Objc::COLON => ":",
            Objc::Struct => "struct",
            Objc::Union => "union",
            Objc::If => "if",
            Objc::Else => "else",
            Objc::Switch => "switch",
            Objc::Case => "case",
            Objc::Default => "default",
            Objc::While => "while",
            Objc::Do => "do",
            Objc::For => "for",
            Objc::In => "in",
            Objc::Return => "return",
            Objc::Break => "break",
            Objc::Continue => "continue",
            Objc::Goto => "goto",
            Objc::QMARK => "?",
            Objc::STAREQ => "*=",
            Objc::SLASHEQ => "/=",
            Objc::PERCENTEQ => "%=",
            Objc::PLUSEQ => "+=",
            Objc::DASHEQ => "-=",
            Objc::LTLTEQ => "<<=",
            Objc::GTGTEQ => ">>=",
            Objc::AMPEQ => "&=",
            Objc::CARETEQ => "^=",
            Objc::PIPEEQ => "|=",
            Objc::DASHDASH => "--",
            Objc::PLUSPLUS => "++",
            Objc::Sizeof => "sizeof",
            Objc::Alignof => "__alignof__",
            Objc::Alignof2 => "__alignof",
            Objc::Alignof3 => "_alignof",
            Objc::Alignof4 => "alignof",
            Objc::Alignof5 => "_Alignof",
            Objc::Offsetof => "offsetof",
            Objc::Generic => "_Generic",
            Objc::Asm => "asm",
            Objc::Asm2 => "__asm__",
            Objc::Asm3 => "__asm",
            Objc::Volatile2 => "__volatile__",
            Objc::LT2 => "<",
            Objc::DOT => ".",
            Objc::DASHGT => "->",
            Objc::NumberLiteral => "number_literal",
            Objc::LSQUOTE => "L'",
            Objc::USQUOTE => "u'",
            Objc::USQUOTE2 => "U'",
            Objc::U8SQUOTE => "u8'",
            Objc::SQUOTE => "'",
            Objc::Character => "character",
            Objc::AT => "@",
            Objc::DQUOTE => "\"",
            Objc::LDQUOTE => "L\"",
            Objc::UDQUOTE => "u\"",
            Objc::UDQUOTE2 => "U\"",
            Objc::U8DQUOTE => "u8\"",
            Objc::StringContent => "string_content",
            Objc::EscapeSequence => "escape_sequence",
            Objc::SystemLibString => "system_lib_string",
            Objc::True => "true",
            Objc::False => "false",
            Objc::NULL => "NULL",
            Objc::Nullptr => "nullptr",
            Objc::Comment => "comment",
            Objc::ObjcBridgeRelated => "objc_bridge_related",
            Objc::Typeof => "__typeof__",
            Objc::Typeof2 => "__typeof",
            Objc::Typeof3 => "typeof",
            Objc::Availability2 => "availability",
            Objc::VersionNumber => "version_number",
            Objc::Ios => "ios",
            Objc::Tvos => "tvos",
            Objc::Macos => "macos",
            Objc::Macosx => "macosx",
            Objc::Watchos => "watchos",
            Objc::ATimport => "@import",
            Objc::HASHundef => "#undef",
            Objc::HASH => "#",
            Objc::NSAUTOMATEDREFCOUNTUNAVAILABLE => "NS_AUTOMATED_REFCOUNT_UNAVAILABLE",
            Objc::NSROOTCLASS => "NS_ROOT_CLASS",
            Objc::NSUNAVAILABLE => "NS_UNAVAILABLE",
            Objc::NSREQUIRESNILTERMINATION => "NS_REQUIRES_NIL_TERMINATION",
            Objc::CFRETURNSRETAINED => "CF_RETURNS_RETAINED",
            Objc::CFRETURNSNOTRETAINED => "CF_RETURNS_NOT_RETAINED",
            Objc::DEPRECATEDATTRIBUTE => "DEPRECATED_ATTRIBUTE",
            Objc::UIAPPEARANCESELECTOR => "UI_APPEARANCE_SELECTOR",
            Objc::UNAVAILABLEATTRIBUTE => "UNAVAILABLE_ATTRIBUTE",
            Objc::CFFORMATFUNCTION => "CF_FORMAT_FUNCTION",
            Objc::NSAVAILABLE => "NS_AVAILABLE",
            Objc::IOSAVAILABLE => "__IOS_AVAILABLE",
            Objc::NSAVAILABLEIOS => "NS_AVAILABLE_IOS",
            Objc::APIAVAILABLE => "API_AVAILABLE",
            Objc::APIUNAVAILABLE => "API_UNAVAILABLE",
            Objc::APIDEPRECATED => "API_DEPRECATED",
            Objc::NSENUMAVAILABLEIOS => "NS_ENUM_AVAILABLE_IOS",
            Objc::NSDEPRECATEDIOS => "NS_DEPRECATED_IOS",
            Objc::NSENUMDEPRECATEDIOS => "NS_ENUM_DEPRECATED_IOS",
            Objc::NSFORMATFUNCTION => "NS_FORMAT_FUNCTION",
            Objc::DEPRECATEDMSGATTRIBUTE => "DEPRECATED_MSG_ATTRIBUTE",
            Objc::DeprecatedMsg => "__deprecated_msg",
            Objc::DeprecatedEnumMsg => "__deprecated_enum_msg",
            Objc::NSSWIFTNAME => "NS_SWIFT_NAME",
            Objc::NSSWIFTUNAVAILABLE => "NS_SWIFT_UNAVAILABLE",
            Objc::NSEXTENSIONUNAVAILABLEIOS => "NS_EXTENSION_UNAVAILABLE_IOS",
            Objc::NSCLASSAVAILABLEIOS => "NS_CLASS_AVAILABLE_IOS",
            Objc::NSCLASSDEPRECATEDIOS => "NS_CLASS_DEPRECATED_IOS",
            Objc::OSXAVAILABLESTARTING => "__OSX_AVAILABLE_STARTING",
            Objc::ATprotocol => "@protocol",
            Objc::Class => "class",
            Objc::ATend => "@end",
            Objc::ATinterface => "@interface",
            Objc::ATimplementation => "@implementation",
            Objc::Covariant => "__covariant",
            Objc::Contravariant => "__contravariant",
            Objc::ATprivate => "@private",
            Objc::ATprotected => "@protected",
            Objc::ATpackage => "@package",
            Objc::ATpublic => "@public",
            Objc::ATcompatibilityAlias => "@compatibility_alias",
            Objc::AToptional => "@optional",
            Objc::ATrequired => "@required",
            Objc::ATsynthesize => "@synthesize",
            Objc::ATdynamic => "@dynamic",
            Objc::LPARENclassRPAREN => "(class)",
            Objc::ATproperty => "@property",
            Objc::ATtry => "@try",
            Objc::Try => "__try",
            Objc::ATcatch => "@catch",
            Objc::Catch => "__catch",
            Objc::ATfinally => "@finally",
            Objc::Finally => "__finally",
            Objc::ATthrow => "@throw",
            Objc::ATselector => "@selector",
            Objc::SelectorExpressionToken1 => "selector_expression_token1",
            Objc::ATavailable => "@available",
            Objc::BuiltinAvailable => "__builtin_available",
            Objc::VaArg => "va_arg",
            Objc::MsAsmBlockToken1 => "ms_asm_block_token1",
            Objc::ATencode => "@encode",
            Objc::ATsynchronized => "@synchronized",
            Objc::BOOL => "BOOL",
            Objc::IMP => "IMP",
            Objc::SEL => "SEL",
            Objc::Class2 => "Class",
            Objc::Id => "id",
            Objc::ATdefs => "@defs",
            Objc::Out => "out",
            Objc::Inout => "inout",
            Objc::Bycopy => "bycopy",
            Objc::Byref => "byref",
            Objc::Oneway => "oneway",
            Objc::COLON2 => ":",
            Objc::TranslationUnit => "translation_unit",
            Objc::TopLevelItem => "_top_level_item",
            Objc::BlockItem => "_block_item",
            Objc::PreprocInclude => "preproc_include",
            Objc::PreprocDef => "preproc_def",
            Objc::PreprocFunctionDef => "preproc_function_def",
            Objc::PreprocParams => "preproc_params",
            Objc::PreprocCall => "preproc_call",
            Objc::PreprocIf => "preproc_if",
            Objc::PreprocIfdef => "preproc_ifdef",
            Objc::PreprocElse => "preproc_else",
            Objc::PreprocElif => "preproc_elif",
            Objc::PreprocElifdef => "preproc_elifdef",
            Objc::PreprocIf2 => "preproc_if",
            Objc::PreprocIfdef2 => "preproc_ifdef",
            Objc::PreprocElse2 => "preproc_else",
            Objc::PreprocElif2 => "preproc_elif",
            Objc::PreprocElifdef2 => "preproc_elifdef",
            Objc::PreprocExpression => "_preproc_expression",
            Objc::ParenthesizedExpression => "parenthesized_expression",
            Objc::PreprocDefined => "preproc_defined",
            Objc::UnaryExpression => "unary_expression",
            Objc::CallExpression => "call_expression",
            Objc::ArgumentList => "argument_list",
            Objc::BinaryExpression => "binary_expression",
            Objc::FunctionDefinition => "function_definition",
            Objc::FunctionDefinition2 => "function_definition",
            Objc::Declaration => "declaration",
            Objc::TypeDefinition => "type_definition",
            Objc::TypeDefinitionType => "_type_definition_type",
            Objc::TypeDefinitionDeclarators => "_type_definition_declarators",
            Objc::DeclarationModifiers => "_declaration_modifiers",
            Objc::DeclarationSpecifiers => "_declaration_specifiers",
            Objc::LinkageSpecification => "linkage_specification",
            Objc::AttributeSpecifier => "attribute_specifier",
            Objc::Attribute => "attribute",
            Objc::AttributeDeclaration => "attribute_declaration",
            Objc::MsDeclspecModifier => "ms_declspec_modifier",
            Objc::MsBasedModifier => "ms_based_modifier",
            Objc::MsCallModifier => "ms_call_modifier",
            Objc::MsUnalignedPtrModifier => "ms_unaligned_ptr_modifier",
            Objc::MsPointerModifier => "ms_pointer_modifier",
            Objc::DeclarationList => "declaration_list",
            Objc::Declarator => "_declarator",
            Objc::FieldDeclarator => "_field_declarator",
            Objc::TypeDeclarator => "_type_declarator",
            Objc::AbstractDeclarator => "_abstract_declarator",
            Objc::ParenthesizedDeclarator => "parenthesized_declarator",
            Objc::ParenthesizedDeclarator2 => "parenthesized_declarator",
            Objc::ParenthesizedDeclarator3 => "parenthesized_declarator",
            Objc::AbstractParenthesizedDeclarator => "abstract_parenthesized_declarator",
            Objc::AttributedDeclarator => "attributed_declarator",
            Objc::PointerDeclarator => "pointer_declarator",
            Objc::PointerDeclarator2 => "pointer_declarator",
            Objc::PointerDeclarator3 => "pointer_declarator",
            Objc::AbstractPointerDeclarator => "abstract_pointer_declarator",
            Objc::FunctionDeclarator => "function_declarator",
            Objc::FunctionDeclarator2 => "function_declarator",
            Objc::FunctionDeclarator3 => "function_declarator",
            Objc::AbstractFunctionDeclarator => "abstract_function_declarator",
            Objc::FunctionDeclarator4 => "function_declarator",
            Objc::ArrayDeclarator => "array_declarator",
            Objc::ArrayDeclarator2 => "array_declarator",
            Objc::ArrayDeclarator3 => "array_declarator",
            Objc::AbstractArrayDeclarator => "abstract_array_declarator",
            Objc::InitDeclarator => "init_declarator",
            Objc::CompoundStatement => "compound_statement",
            Objc::StorageClassSpecifier => "storage_class_specifier",
            Objc::TypeQualifier => "type_qualifier",
            Objc::AlignasQualifier => "alignas_qualifier",
            Objc::TypeSpecifier => "type_specifier",
            Objc::SizedTypeSpecifier => "sized_type_specifier",
            Objc::EnumSpecifier => "enum_specifier",
            Objc::EnumeratorList => "enumerator_list",
            Objc::StructSpecifier => "struct_specifier",
            Objc::UnionSpecifier => "union_specifier",
            Objc::FieldDeclarationList => "field_declaration_list",
            Objc::FieldDeclarationListItem => "_field_declaration_list_item",
            Objc::FieldDeclaration => "field_declaration",
            Objc::BitfieldClause => "bitfield_clause",
            Objc::Enumerator => "enumerator",
            Objc::VariadicParameter => "variadic_parameter",
            Objc::ParameterList => "parameter_list",
            Objc::ParameterList2 => "parameter_list",
            Objc::ParameterDeclaration => "parameter_declaration",
            Objc::AttributedStatement => "attributed_statement",
            Objc::Statement => "statement",
            Objc::TopLevelStatement => "_top_level_statement",
            Objc::LabeledStatement => "labeled_statement",
            Objc::ExpressionStatement => "expression_statement",
            Objc::ExpressionStatement2 => "expression_statement",
            Objc::IfStatement => "if_statement",
            Objc::ElseClause => "else_clause",
            Objc::SwitchStatement => "switch_statement",
            Objc::CaseStatement => "case_statement",
            Objc::WhileStatement => "while_statement",
            Objc::DoStatement => "do_statement",
            Objc::ForStatement => "for_statement",
            Objc::ForStatementBody => "_for_statement_body",
            Objc::ReturnStatement => "return_statement",
            Objc::BreakStatement => "break_statement",
            Objc::ContinueStatement => "continue_statement",
            Objc::GotoStatement => "goto_statement",
            Objc::Expression => "expression",
            Objc::String => "_string",
            Objc::CommaExpression => "comma_expression",
            Objc::ConditionalExpression => "conditional_expression",
            Objc::AssignmentExpression => "assignment_expression",
            Objc::PointerExpression => "pointer_expression",
            Objc::UnaryExpression2 => "unary_expression",
            Objc::BinaryExpression2 => "binary_expression",
            Objc::UpdateExpression => "update_expression",
            Objc::CastExpression => "cast_expression",
            Objc::TypeDescriptor => "type_descriptor",
            Objc::SizeofExpression => "sizeof_expression",
            Objc::AlignofExpression => "alignof_expression",
            Objc::OffsetofExpression => "offsetof_expression",
            Objc::GenericExpression => "generic_expression",
            Objc::SubscriptExpression => "subscript_expression",
            Objc::CallExpression2 => "call_expression",
            Objc::GnuAsmExpression => "gnu_asm_expression",
            Objc::GnuAsmQualifier => "gnu_asm_qualifier",
            Objc::GnuAsmOutputOperandList => "gnu_asm_output_operand_list",
            Objc::GnuAsmOutputOperand => "gnu_asm_output_operand",
            Objc::GnuAsmInputOperandList => "gnu_asm_input_operand_list",
            Objc::GnuAsmInputOperand => "gnu_asm_input_operand",
            Objc::GnuAsmClobberList => "gnu_asm_clobber_list",
            Objc::GnuAsmGotoList => "gnu_asm_goto_list",
            Objc::ExtensionExpression => "extension_expression",
            Objc::ArgumentList2 => "argument_list",
            Objc::FieldExpression => "field_expression",
            Objc::CompoundLiteralExpression => "compound_literal_expression",
            Objc::ParenthesizedExpression2 => "parenthesized_expression",
            Objc::InitializerList => "initializer_list",
            Objc::InitializerPair => "initializer_pair",
            Objc::SubscriptDesignator => "subscript_designator",
            Objc::SubscriptRangeDesignator => "subscript_range_designator",
            Objc::FieldDesignator => "field_designator",
            Objc::CharLiteral => "char_literal",
            Objc::ConcatenatedString => "concatenated_string",
            Objc::StringLiteral => "string_literal",
            Objc::Null => "null",
            Objc::EmptyDeclaration => "_empty_declaration",
            Objc::MacroTypeSpecifier => "macro_type_specifier",
            Objc::ObjcBridge => "objc_bridge",
            Objc::TypeofSpecifier => "typeof_specifier",
            Objc::Availability => "availability",
            Objc::Version => "version",
            Objc::Platform => "platform",
            Objc::ModuleImport => "module_import",
            Objc::PreprocIf3 => "preproc_if",
            Objc::PreprocElse3 => "preproc_else",
            Objc::PreprocElif3 => "preproc_elif",
            Objc::PreprocIf4 => "preproc_if",
            Objc::PreprocElse4 => "preproc_else",
            Objc::PreprocElif4 => "preproc_elif",
            Objc::PreprocIfdef3 => "preproc_ifdef",
            Objc::PreprocElse5 => "preproc_else",
            Objc::PreprocElif5 => "preproc_elif",
            Objc::PreprocUndef => "preproc_undef",
            Objc::PreprocLinemarker => "preproc_linemarker",
            Objc::AvailabilityAttributeSpecifier => "availability_attribute_specifier",
            Objc::ProtocolForwardDeclaration => "protocol_forward_declaration",
            Objc::ClassDeclaration => "class_declaration",
            Objc::ClassInterface => "class_interface",
            Objc::ClassInterfaceHeader => "_class_interface_header",
            Objc::TypeParams => "_type_params",
            Objc::ClassInterfaceInheritance => "_class_interface_inheritance",
            Objc::ClassImplementation => "class_implementation",
            Objc::ClassImplementationHeader => "_class_implementation_header",
            Objc::ClassImplementationInheritance => "_class_implementation_inheritance",
            Objc::ProtocolReferenceList => "protocol_reference_list",
            Objc::ParameterizedArguments => "parameterized_arguments",
            Objc::GenericArguments => "generic_arguments",
            Objc::InstanceVariables => "instance_variables",
            Objc::InstanceVariable => "instance_variable",
            Objc::VisibilitySpecification => "visibility_specification",
            Objc::ProtocolDeclaration => "protocol_declaration",
            Objc::CompatibilityAliasDeclaration => "compatibility_alias_declaration",
            Objc::QualifiedProtocolInterfaceDeclaration => {
                "qualified_protocol_interface_declaration"
            }
            Objc::ImplementationDefinition => "implementation_definition",
            Objc::PropertyImplementation => "property_implementation",
            Objc::MethodDefinition => "method_definition",
            Objc::MethodType => "method_type",
            Objc::KeywordDeclarator => "keyword_declarator",
            Objc::PropertyDeclaration => "property_declaration",
            Objc::PropertyAttributesDeclaration => "property_attributes_declaration",
            Objc::PropertyAttribute => "property_attribute",
            Objc::MethodDeclaration => "method_declaration",
            Objc::MethodParameter => "method_parameter",
            Objc::MethodParameter2 => "method_parameter",
            Objc::StructDeclaration => "struct_declaration",
            Objc::AtomicDeclaration => "atomic_declaration",
            Objc::SpecifierQualifier => "specifier_qualifier",
            Objc::StructDeclarator => "struct_declarator",
            Objc::TryStatement => "try_statement",
            Objc::CatchClause => "catch_clause",
            Objc::FinallyClause => "finally_clause",
            Objc::ThrowStatement => "throw_statement",
            Objc::SelectorExpression => "selector_expression",
            Objc::AvailableExpression => "available_expression",
            Objc::RangeExpression => "range_expression",
            Objc::BlockLiteral => "block_literal",
            Objc::MessageExpression => "message_expression",
            Objc::VaArgExpression => "va_arg_expression",
            Objc::MsAsmBlock => "ms_asm_block",
            Objc::EncodeExpression => "encode_expression",
            Objc::SynchronizedStatement => "synchronized_statement",
            Objc::BlockPointerDeclarator => "block_pointer_declarator",
            Objc::BlockPointerDeclarator2 => "block_pointer_declarator",
            Objc::BlockPointerDeclarator3 => "block_pointer_declarator",
            Objc::AbstractBlockPointerDeclarator => "abstract_block_pointer_declarator",
            Objc::GenericSpecifier => "generic_specifier",
            Objc::TypedefedSpecifier => "typedefed_specifier",
            Objc::ArrayTypeSpecifier => "array_type_specifier",
            Objc::AtdefField => "atdef_field",
            Objc::ProtocolQualifier => "protocol_qualifier",
            Objc::TypeName => "type_name",
            Objc::AtExpression => "at_expression",
            Objc::DictionaryLiteral => "dictionary_literal",
            Objc::DictionaryPair => "dictionary_pair",
            Objc::ArrayLiteral => "array_literal",
            Objc::MethodIdentifier => "method_identifier",
            Objc::TranslationUnitRepeat1 => "translation_unit_repeat1",
            Objc::PreprocParamsRepeat1 => "preproc_params_repeat1",
            Objc::PreprocIfRepeat1 => "preproc_if_repeat1",
            Objc::PreprocIfInFieldDeclarationListRepeat1 => {
                "preproc_if_in_field_declaration_list_repeat1"
            }
            Objc::PreprocArgumentListRepeat1 => "preproc_argument_list_repeat1",
            Objc::OldStyleFunctionDefinitionRepeat1 => "_old_style_function_definition_repeat1",
            Objc::DeclarationRepeat1 => "declaration_repeat1",
            Objc::TypeDefinitionTypeRepeat1 => "_type_definition_type_repeat1",
            Objc::TypeDefinitionDeclaratorsRepeat1 => "_type_definition_declarators_repeat1",
            Objc::DeclarationSpecifiersRepeat1 => "_declaration_specifiers_repeat1",
            Objc::AttributeSpecifierRepeat1 => "attribute_specifier_repeat1",
            Objc::AttributeRepeat1 => "attribute_repeat1",
            Objc::AttributeDeclarationRepeat1 => "attribute_declaration_repeat1",
            Objc::DeclarationListRepeat1 => "declaration_list_repeat1",
            Objc::AttributedFieldDeclaratorRepeat1 => "attributed_field_declarator_repeat1",
            Objc::PointerDeclaratorRepeat1 => "pointer_declarator_repeat1",
            Objc::FunctionDeclaratorRepeat1 => "function_declarator_repeat1",
            Objc::FunctionFieldDeclaratorRepeat1 => "function_field_declarator_repeat1",
            Objc::ArrayDeclaratorRepeat1 => "array_declarator_repeat1",
            Objc::SizedTypeSpecifierRepeat1 => "sized_type_specifier_repeat1",
            Objc::EnumeratorListRepeat1 => "enumerator_list_repeat1",
            Objc::FieldDeclarationRepeat1 => "field_declaration_repeat1",
            Objc::ParameterListRepeat1 => "parameter_list_repeat1",
            Objc::OldStyleParameterListRepeat1 => "_old_style_parameter_list_repeat1",
            Objc::CaseStatementRepeat1 => "case_statement_repeat1",
            Objc::GenericExpressionRepeat1 => "generic_expression_repeat1",
            Objc::GnuAsmExpressionRepeat1 => "gnu_asm_expression_repeat1",
            Objc::GnuAsmOutputOperandListRepeat1 => "gnu_asm_output_operand_list_repeat1",
            Objc::GnuAsmInputOperandListRepeat1 => "gnu_asm_input_operand_list_repeat1",
            Objc::GnuAsmClobberListRepeat1 => "gnu_asm_clobber_list_repeat1",
            Objc::GnuAsmGotoListRepeat1 => "gnu_asm_goto_list_repeat1",
            Objc::ArgumentListRepeat1 => "argument_list_repeat1",
            Objc::ArgumentListRepeat2 => "argument_list_repeat2",
            Objc::InitializerListRepeat1 => "initializer_list_repeat1",
            Objc::InitializerPairRepeat1 => "initializer_pair_repeat1",
            Objc::CharLiteralRepeat1 => "char_literal_repeat1",
            Objc::ConcatenatedStringRepeat1 => "concatenated_string_repeat1",
            Objc::StringLiteralRepeat1 => "string_literal_repeat1",
            Objc::AvailabilityRepeat1 => "availability_repeat1",
            Objc::VersionRepeat1 => "version_repeat1",
            Objc::ModuleImportRepeat1 => "module_import_repeat1",
            Objc::PreprocIfInImplementationDefinitionRepeat1 => {
                "preproc_if_in_implementation_definition_repeat1"
            }
            Objc::PreprocIfInInterfaceDeclarationRepeat1 => {
                "preproc_if_in_interface_declaration_repeat1"
            }
            Objc::PreprocIfdefInEnumeratorRepeat1 => "preproc_ifdef_in_enumerator_repeat1",
            Objc::AvailabilityAttributeSpecifierRepeat1 => {
                "availability_attribute_specifier_repeat1"
            }
            Objc::ProtocolForwardDeclarationRepeat1 => "protocol_forward_declaration_repeat1",
            Objc::ClassDeclarationRepeat1 => "class_declaration_repeat1",
            Objc::ClassInterfaceRepeat1 => "class_interface_repeat1",
            Objc::ClassImplementationRepeat1 => "class_implementation_repeat1",
            Objc::ParameterizedArgumentsRepeat1 => "parameterized_arguments_repeat1",
            Objc::ParameterizedArgumentsRepeat2 => "parameterized_arguments_repeat2",
            Objc::GenericArgumentsRepeat1 => "generic_arguments_repeat1",
            Objc::InstanceVariablesRepeat1 => "instance_variables_repeat1",
            Objc::ProtocolDeclarationRepeat1 => "protocol_declaration_repeat1",
            Objc::PropertyImplementationRepeat1 => "property_implementation_repeat1",
            Objc::MethodDefinitionRepeat1 => "method_definition_repeat1",
            Objc::MethodDefinitionRepeat2 => "method_definition_repeat2",
            Objc::MethodTypeRepeat1 => "method_type_repeat1",
            Objc::KeywordSelectorRepeat1 => "keyword_selector_repeat1",
            Objc::PropertyAttributesDeclarationRepeat1 => "property_attributes_declaration_repeat1",
            Objc::MethodDeclarationRepeat1 => "method_declaration_repeat1",
            Objc::MethodDeclarationRepeat2 => "method_declaration_repeat2",
            Objc::CMethodParameterRepeat1 => "c_method_parameter_repeat1",
            Objc::StructDeclarationRepeat1 => "struct_declaration_repeat1",
            Objc::StructDeclarationRepeat2 => "struct_declaration_repeat2",
            Objc::TryStatementRepeat1 => "try_statement_repeat1",
            Objc::SelectorExpressionRepeat1 => "selector_expression_repeat1",
            Objc::SelectorExpressionRepeat2 => "selector_expression_repeat2",
            Objc::AvailableExpressionRepeat1 => "available_expression_repeat1",
            Objc::MessageExpressionRepeat1 => "message_expression_repeat1",
            Objc::MessageExpressionRepeat2 => "message_expression_repeat2",
            Objc::GenericSpecifierRepeat1 => "generic_specifier_repeat1",
            Objc::TypeNameRepeat1 => "type_name_repeat1",
            Objc::DictionaryLiteralRepeat1 => "dictionary_literal_repeat1",
            Objc::MethodIdentifierRepeat1 => "method_identifier_repeat1",
            Objc::MethodIdentifierRepeat2 => "method_identifier_repeat2",
            Objc::FieldIdentifier => "field_identifier",
            Objc::StatementIdentifier => "statement_identifier",
            Objc::TypeIdentifier => "type_identifier",
            Objc::Error => "ERROR",
        }
    }
}

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

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

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