modernc.org/cc@v1.0.1/parser.go (about)

     1  // Code generated by goyacc - DO NOT EDIT.
     2  
     3  // Copyright 2016 The CC Authors. All rights reserved.
     4  // Use of this source code is governed by a BSD-style
     5  // license that can be found in the LICENSE file.
     6  
     7  // Based on [0], 6.10. Substantial portions of expression AST size
     8  // optimizations are from [2], license of which follows.
     9  
    10  // ----------------------------------------------------------------------------
    11  
    12  // Copyright 2013 The Go Authors.  All rights reserved.
    13  // Use of this source code is governed by a BSD-style
    14  // license that can be found in the LICENSE file.
    15  
    16  // This grammar is derived from the C grammar in the 'ansitize'
    17  // program, which carried this notice:
    18  //
    19  // Copyright (c) 2006 Russ Cox,
    20  // 	Massachusetts Institute of Technology
    21  //
    22  // Permission is hereby granted, free of charge, to any person
    23  // obtaining a copy of this software and associated
    24  // documentation files (the "Software"), to deal in the
    25  // Software without restriction, including without limitation
    26  // the rights to use, copy, modify, merge, publish, distribute,
    27  // sublicense, and/or sell copies of the Software, and to
    28  // permit persons to whom the Software is furnished to do so,
    29  // subject to the following conditions:
    30  //
    31  // The above copyright notice and this permission notice shall
    32  // be included in all copies or substantial portions of the
    33  // Software.
    34  //
    35  // The software is provided "as is", without warranty of any
    36  // kind, express or implied, including but not limited to the
    37  // warranties of merchantability, fitness for a particular
    38  // purpose and noninfringement.  In no event shall the authors
    39  // or copyright holders be liable for any claim, damages or
    40  // other liability, whether in an action of contract, tort or
    41  // otherwise, arising from, out of or in connection with the
    42  // software or the use or other dealings in the software.
    43  
    44  package cc // import "modernc.org/cc"
    45  
    46  import __yyfmt__ "fmt"
    47  
    48  import (
    49  	"fmt"
    50  
    51  	"modernc.org/golex/lex"
    52  	"modernc.org/xc"
    53  )
    54  
    55  type yySymType struct {
    56  	yys       int
    57  	Token     xc.Token
    58  	groupPart Node
    59  	node      Node
    60  	toks      PPTokenList
    61  }
    62  
    63  type yyXError struct {
    64  	state, xsym int
    65  }
    66  
    67  const (
    68  	yyDefault           = 57460
    69  	yyEofCode           = 57344
    70  	ADDASSIGN           = 57346
    71  	ALIGNOF             = 57347
    72  	ANDAND              = 57348
    73  	ANDASSIGN           = 57349
    74  	ARROW               = 57350
    75  	ASM                 = 57351
    76  	AUTO                = 57352
    77  	BOOL                = 57353
    78  	BREAK               = 57354
    79  	CASE                = 57355
    80  	CAST                = 57356
    81  	CHAR                = 57357
    82  	CHARCONST           = 57358
    83  	COMPLEX             = 57359
    84  	CONST               = 57360
    85  	CONSTANT_EXPRESSION = 1048577
    86  	CONTINUE            = 57361
    87  	DDD                 = 57362
    88  	DEC                 = 57363
    89  	DEFAULT             = 57364
    90  	DIVASSIGN           = 57365
    91  	DO                  = 57366
    92  	DOUBLE              = 57367
    93  	ELSE                = 57368
    94  	ENUM                = 57369
    95  	EQ                  = 57370
    96  	EXTERN              = 57371
    97  	FLOAT               = 57372
    98  	FLOATCONST          = 57373
    99  	FOR                 = 57374
   100  	GEQ                 = 57375
   101  	GOTO                = 57376
   102  	IDENTIFIER          = 57377
   103  	IDENTIFIER_LPAREN   = 57378
   104  	IDENTIFIER_NONREPL  = 57379
   105  	IF                  = 57380
   106  	INC                 = 57381
   107  	INLINE              = 57382
   108  	INT                 = 57383
   109  	INTCONST            = 57384
   110  	LEQ                 = 57385
   111  	LONG                = 57386
   112  	LONGCHARCONST       = 57387
   113  	LONGSTRINGLITERAL   = 57388
   114  	LSH                 = 57389
   115  	LSHASSIGN           = 57390
   116  	MODASSIGN           = 57391
   117  	MULASSIGN           = 57392
   118  	NEQ                 = 57393
   119  	NOELSE              = 57394
   120  	NORETURN            = 57395
   121  	NOSEMI              = 57396
   122  	ORASSIGN            = 57397
   123  	OROR                = 57398
   124  	PPDEFINE            = 57399
   125  	PPELIF              = 57400
   126  	PPELSE              = 57401
   127  	PPENDIF             = 57402
   128  	PPERROR             = 57403
   129  	PPHASH_NL           = 57404
   130  	PPHEADER_NAME       = 57405
   131  	PPIF                = 57406
   132  	PPIFDEF             = 57407
   133  	PPIFNDEF            = 57408
   134  	PPINCLUDE           = 57409
   135  	PPINCLUDE_NEXT      = 57410
   136  	PPLINE              = 57411
   137  	PPNONDIRECTIVE      = 57412
   138  	PPNUMBER            = 57413
   139  	PPOTHER             = 57414
   140  	PPPASTE             = 57415
   141  	PPPRAGMA            = 57416
   142  	PPUNDEF             = 57417
   143  	PREPROCESSING_FILE  = 1048576
   144  	REGISTER            = 57418
   145  	RESTRICT            = 57419
   146  	RETURN              = 57420
   147  	RSH                 = 57421
   148  	RSHASSIGN           = 57422
   149  	SHORT               = 57423
   150  	SIGNED              = 57424
   151  	SIZEOF              = 57425
   152  	STATIC              = 57426
   153  	STATIC_ASSERT       = 57427
   154  	STRINGLITERAL       = 57428
   155  	STRUCT              = 57429
   156  	SUBASSIGN           = 57430
   157  	SWITCH              = 57431
   158  	TRANSLATION_UNIT    = 1048578
   159  	TYPEDEF             = 57432
   160  	TYPEDEFNAME         = 57433
   161  	TYPEOF              = 57434
   162  	UNARY               = 57435
   163  	UNION               = 57436
   164  	UNSIGNED            = 57437
   165  	VOID                = 57438
   166  	VOLATILE            = 57439
   167  	WHILE               = 57440
   168  	XORASSIGN           = 57441
   169  	yyErrCode           = 57345
   170  
   171  	yyMaxDepth = 200
   172  	yyTabOfs   = -328
   173  )
   174  
   175  var (
   176  	yyXLAT = map[int]int{
   177  		40:      0,   // '(' (333x)
   178  		42:      1,   // '*' (294x)
   179  		57377:   2,   // IDENTIFIER (241x)
   180  		38:      3,   // '&' (226x)
   181  		43:      4,   // '+' (226x)
   182  		45:      5,   // '-' (226x)
   183  		57348:   6,   // ANDAND (226x)
   184  		57363:   7,   // DEC (226x)
   185  		57381:   8,   // INC (226x)
   186  		59:      9,   // ';' (220x)
   187  		41:      10,  // ')' (203x)
   188  		44:      11,  // ',' (191x)
   189  		57428:   12,  // STRINGLITERAL (169x)
   190  		91:      13,  // '[' (167x)
   191  		33:      14,  // '!' (150x)
   192  		126:     15,  // '~' (150x)
   193  		57347:   16,  // ALIGNOF (150x)
   194  		57358:   17,  // CHARCONST (150x)
   195  		57373:   18,  // FLOATCONST (150x)
   196  		57384:   19,  // INTCONST (150x)
   197  		57387:   20,  // LONGCHARCONST (150x)
   198  		57388:   21,  // LONGSTRINGLITERAL (150x)
   199  		57425:   22,  // SIZEOF (150x)
   200  		57439:   23,  // VOLATILE (141x)
   201  		57360:   24,  // CONST (139x)
   202  		57419:   25,  // RESTRICT (139x)
   203  		125:     26,  // '}' (132x)
   204  		57353:   27,  // BOOL (129x)
   205  		57357:   28,  // CHAR (129x)
   206  		57359:   29,  // COMPLEX (129x)
   207  		57367:   30,  // DOUBLE (129x)
   208  		57369:   31,  // ENUM (129x)
   209  		57372:   32,  // FLOAT (129x)
   210  		57383:   33,  // INT (129x)
   211  		57386:   34,  // LONG (129x)
   212  		57423:   35,  // SHORT (129x)
   213  		57424:   36,  // SIGNED (129x)
   214  		57429:   37,  // STRUCT (129x)
   215  		57433:   38,  // TYPEDEFNAME (129x)
   216  		57434:   39,  // TYPEOF (129x)
   217  		57436:   40,  // UNION (129x)
   218  		57437:   41,  // UNSIGNED (129x)
   219  		57438:   42,  // VOID (129x)
   220  		58:      43,  // ':' (126x)
   221  		57426:   44,  // STATIC (120x)
   222  		57352:   45,  // AUTO (114x)
   223  		57371:   46,  // EXTERN (114x)
   224  		57382:   47,  // INLINE (114x)
   225  		57395:   48,  // NORETURN (114x)
   226  		57418:   49,  // REGISTER (114x)
   227  		57432:   50,  // TYPEDEF (114x)
   228  		57344:   51,  // $end (106x)
   229  		61:      52,  // '=' (96x)
   230  		123:     53,  // '{' (93x)
   231  		57503:   54,  // Expression (88x)
   232  		93:      55,  // ']' (86x)
   233  		46:      56,  // '.' (85x)
   234  		57351:   57,  // ASM (84x)
   235  		57427:   58,  // STATIC_ASSERT (79x)
   236  		37:      59,  // '%' (77x)
   237  		47:      60,  // '/' (77x)
   238  		60:      61,  // '<' (77x)
   239  		62:      62,  // '>' (77x)
   240  		63:      63,  // '?' (77x)
   241  		94:      64,  // '^' (77x)
   242  		124:     65,  // '|' (77x)
   243  		57346:   66,  // ADDASSIGN (77x)
   244  		57349:   67,  // ANDASSIGN (77x)
   245  		57350:   68,  // ARROW (77x)
   246  		57365:   69,  // DIVASSIGN (77x)
   247  		57370:   70,  // EQ (77x)
   248  		57375:   71,  // GEQ (77x)
   249  		57385:   72,  // LEQ (77x)
   250  		57389:   73,  // LSH (77x)
   251  		57390:   74,  // LSHASSIGN (77x)
   252  		57391:   75,  // MODASSIGN (77x)
   253  		57392:   76,  // MULASSIGN (77x)
   254  		57393:   77,  // NEQ (77x)
   255  		57397:   78,  // ORASSIGN (77x)
   256  		57398:   79,  // OROR (77x)
   257  		57421:   80,  // RSH (77x)
   258  		57422:   81,  // RSHASSIGN (77x)
   259  		57430:   82,  // SUBASSIGN (77x)
   260  		57441:   83,  // XORASSIGN (77x)
   261  		10:      84,  // '\n' (58x)
   262  		57376:   85,  // GOTO (55x)
   263  		57440:   86,  // WHILE (53x)
   264  		57354:   87,  // BREAK (52x)
   265  		57355:   88,  // CASE (52x)
   266  		57361:   89,  // CONTINUE (52x)
   267  		57364:   90,  // DEFAULT (52x)
   268  		57366:   91,  // DO (52x)
   269  		57374:   92,  // FOR (52x)
   270  		57380:   93,  // IF (52x)
   271  		57414:   94,  // PPOTHER (52x)
   272  		57420:   95,  // RETURN (52x)
   273  		57431:   96,  // SWITCH (52x)
   274  		57402:   97,  // PPENDIF (44x)
   275  		57401:   98,  // PPELSE (40x)
   276  		57400:   99,  // PPELIF (39x)
   277  		57399:   100, // PPDEFINE (35x)
   278  		57403:   101, // PPERROR (35x)
   279  		57404:   102, // PPHASH_NL (35x)
   280  		57406:   103, // PPIF (35x)
   281  		57407:   104, // PPIFDEF (35x)
   282  		57408:   105, // PPIFNDEF (35x)
   283  		57409:   106, // PPINCLUDE (35x)
   284  		57410:   107, // PPINCLUDE_NEXT (35x)
   285  		57411:   108, // PPLINE (35x)
   286  		57412:   109, // PPNONDIRECTIVE (35x)
   287  		57416:   110, // PPPRAGMA (35x)
   288  		57417:   111, // PPUNDEF (35x)
   289  		57368:   112, // ELSE (32x)
   290  		57555:   113, // TypeQualifier (28x)
   291  		57504:   114, // ExpressionList (26x)
   292  		57528:   115, // PPTokenList (22x)
   293  		57530:   116, // PPTokens (22x)
   294  		57499:   117, // EnumSpecifier (20x)
   295  		57550:   118, // StructOrUnion (20x)
   296  		57551:   119, // StructOrUnionSpecifier (20x)
   297  		57558:   120, // TypeSpecifier (20x)
   298  		57505:   121, // ExpressionListOpt (18x)
   299  		57470:   122, // BasicAssemblerStatement (15x)
   300  		57476:   123, // CompoundStatement (15x)
   301  		57482:   124, // DeclarationSpecifiers (15x)
   302  		57511:   125, // FunctionSpecifier (15x)
   303  		57529:   126, // PPTokenListOpt (15x)
   304  		57545:   127, // StorageClassSpecifier (15x)
   305  		57468:   128, // AssemblerStatement (13x)
   306  		57507:   129, // ExpressionStatement (12x)
   307  		57525:   130, // IterationStatement (12x)
   308  		57526:   131, // JumpStatement (12x)
   309  		57527:   132, // LabeledStatement (12x)
   310  		57535:   133, // Pointer (12x)
   311  		57539:   134, // SelectionStatement (12x)
   312  		57543:   135, // Statement (12x)
   313  		57536:   136, // PointerOpt (11x)
   314  		57484:   137, // Declarator (9x)
   315  		57544:   138, // StaticAssertDeclaration (9x)
   316  		57478:   139, // ControlLine (8x)
   317  		57514:   140, // GroupPart (8x)
   318  		57518:   141, // IfGroup (8x)
   319  		57519:   142, // IfSection (8x)
   320  		57552:   143, // TextLine (8x)
   321  		57479:   144, // Declaration (7x)
   322  		57454:   145, // $@4 (6x)
   323  		57477:   146, // ConstantExpression (6x)
   324  		57362:   147, // DDD (6x)
   325  		57512:   148, // GroupList (6x)
   326  		57466:   149, // AssemblerOperand (5x)
   327  		57469:   150, // AssemblerSymbolicNameOpt (5x)
   328  		57513:   151, // GroupListOpt (5x)
   329  		57538:   152, // ReplacementList (5x)
   330  		57540:   153, // SpecifierQualifierList (5x)
   331  		57556:   154, // TypeQualifierList (5x)
   332  		57459:   155, // $@9 (4x)
   333  		57461:   156, // AbstractDeclarator (4x)
   334  		57467:   157, // AssemblerOperands (4x)
   335  		57483:   158, // DeclarationSpecifiersOpt (4x)
   336  		57488:   159, // Designator (4x)
   337  		57523:   160, // Initializer (4x)
   338  		57531:   161, // ParameterDeclaration (4x)
   339  		57554:   162, // TypeName (4x)
   340  		57557:   163, // TypeQualifierListOpt (4x)
   341  		57465:   164, // AssemblerInstructions (3x)
   342  		57475:   165, // CommaOpt (3x)
   343  		57486:   166, // Designation (3x)
   344  		57487:   167, // DesignationOpt (3x)
   345  		57489:   168, // DesignatorList (3x)
   346  		57506:   169, // ExpressionOpt (3x)
   347  		57515:   170, // IdentifierList (3x)
   348  		57520:   171, // InitDeclarator (3x)
   349  		57532:   172, // ParameterList (3x)
   350  		57533:   173, // ParameterTypeList (3x)
   351  		57443:   174, // $@10 (2x)
   352  		57447:   175, // $@14 (2x)
   353  		57449:   176, // $@16 (2x)
   354  		57450:   177, // $@17 (2x)
   355  		57451:   178, // $@18 (2x)
   356  		57455:   179, // $@5 (2x)
   357  		57462:   180, // AbstractDeclaratorOpt (2x)
   358  		57471:   181, // BlockItem (2x)
   359  		57474:   182, // Clobbers (2x)
   360  		57481:   183, // DeclarationListOpt (2x)
   361  		57485:   184, // DeclaratorOpt (2x)
   362  		57490:   185, // DirectAbstractDeclarator (2x)
   363  		57491:   186, // DirectAbstractDeclaratorOpt (2x)
   364  		57492:   187, // DirectDeclarator (2x)
   365  		57493:   188, // ElifGroup (2x)
   366  		57500:   189, // EnumerationConstant (2x)
   367  		57501:   190, // Enumerator (2x)
   368  		57508:   191, // ExternalDeclaration (2x)
   369  		57509:   192, // FunctionBody (2x)
   370  		57510:   193, // FunctionDefinition (2x)
   371  		57516:   194, // IdentifierListOpt (2x)
   372  		57517:   195, // IdentifierOpt (2x)
   373  		57521:   196, // InitDeclaratorList (2x)
   374  		57522:   197, // InitDeclaratorListOpt (2x)
   375  		57524:   198, // InitializerList (2x)
   376  		57534:   199, // ParameterTypeListOpt (2x)
   377  		57541:   200, // SpecifierQualifierListOpt (2x)
   378  		57546:   201, // StructDeclaration (2x)
   379  		57548:   202, // StructDeclarator (2x)
   380  		57559:   203, // VolatileOpt (2x)
   381  		57442:   204, // $@1 (1x)
   382  		57444:   205, // $@11 (1x)
   383  		57445:   206, // $@12 (1x)
   384  		57446:   207, // $@13 (1x)
   385  		57448:   208, // $@15 (1x)
   386  		57452:   209, // $@2 (1x)
   387  		57453:   210, // $@3 (1x)
   388  		57456:   211, // $@6 (1x)
   389  		57457:   212, // $@7 (1x)
   390  		57458:   213, // $@8 (1x)
   391  		57463:   214, // ArgumentExpressionList (1x)
   392  		57464:   215, // ArgumentExpressionListOpt (1x)
   393  		57472:   216, // BlockItemList (1x)
   394  		57473:   217, // BlockItemListOpt (1x)
   395  		1048577: 218, // CONSTANT_EXPRESSION (1x)
   396  		57480:   219, // DeclarationList (1x)
   397  		57494:   220, // ElifGroupList (1x)
   398  		57495:   221, // ElifGroupListOpt (1x)
   399  		57496:   222, // ElseGroup (1x)
   400  		57497:   223, // ElseGroupOpt (1x)
   401  		57498:   224, // EndifLine (1x)
   402  		57502:   225, // EnumeratorList (1x)
   403  		57378:   226, // IDENTIFIER_LPAREN (1x)
   404  		1048576: 227, // PREPROCESSING_FILE (1x)
   405  		57537:   228, // PreprocessingFile (1x)
   406  		57542:   229, // Start (1x)
   407  		57547:   230, // StructDeclarationList (1x)
   408  		57549:   231, // StructDeclaratorList (1x)
   409  		1048578: 232, // TRANSLATION_UNIT (1x)
   410  		57553:   233, // TranslationUnit (1x)
   411  		57460:   234, // $default (0x)
   412  		57356:   235, // CAST (0x)
   413  		57345:   236, // error (0x)
   414  		57379:   237, // IDENTIFIER_NONREPL (0x)
   415  		57394:   238, // NOELSE (0x)
   416  		57396:   239, // NOSEMI (0x)
   417  		57405:   240, // PPHEADER_NAME (0x)
   418  		57413:   241, // PPNUMBER (0x)
   419  		57415:   242, // PPPASTE (0x)
   420  		57435:   243, // UNARY (0x)
   421  	}
   422  
   423  	yySymNames = []string{
   424  		"'('",
   425  		"'*'",
   426  		"IDENTIFIER",
   427  		"'&'",
   428  		"'+'",
   429  		"'-'",
   430  		"ANDAND",
   431  		"DEC",
   432  		"INC",
   433  		"';'",
   434  		"')'",
   435  		"','",
   436  		"STRINGLITERAL",
   437  		"'['",
   438  		"'!'",
   439  		"'~'",
   440  		"ALIGNOF",
   441  		"CHARCONST",
   442  		"FLOATCONST",
   443  		"INTCONST",
   444  		"LONGCHARCONST",
   445  		"LONGSTRINGLITERAL",
   446  		"SIZEOF",
   447  		"VOLATILE",
   448  		"CONST",
   449  		"RESTRICT",
   450  		"'}'",
   451  		"BOOL",
   452  		"CHAR",
   453  		"COMPLEX",
   454  		"DOUBLE",
   455  		"ENUM",
   456  		"FLOAT",
   457  		"INT",
   458  		"LONG",
   459  		"SHORT",
   460  		"SIGNED",
   461  		"STRUCT",
   462  		"TYPEDEFNAME",
   463  		"TYPEOF",
   464  		"UNION",
   465  		"UNSIGNED",
   466  		"VOID",
   467  		"':'",
   468  		"STATIC",
   469  		"AUTO",
   470  		"EXTERN",
   471  		"INLINE",
   472  		"NORETURN",
   473  		"REGISTER",
   474  		"TYPEDEF",
   475  		"$end",
   476  		"'='",
   477  		"'{'",
   478  		"Expression",
   479  		"']'",
   480  		"'.'",
   481  		"ASM",
   482  		"STATIC_ASSERT",
   483  		"'%'",
   484  		"'/'",
   485  		"'<'",
   486  		"'>'",
   487  		"'?'",
   488  		"'^'",
   489  		"'|'",
   490  		"ADDASSIGN",
   491  		"ANDASSIGN",
   492  		"ARROW",
   493  		"DIVASSIGN",
   494  		"EQ",
   495  		"GEQ",
   496  		"LEQ",
   497  		"LSH",
   498  		"LSHASSIGN",
   499  		"MODASSIGN",
   500  		"MULASSIGN",
   501  		"NEQ",
   502  		"ORASSIGN",
   503  		"OROR",
   504  		"RSH",
   505  		"RSHASSIGN",
   506  		"SUBASSIGN",
   507  		"XORASSIGN",
   508  		"'\\n'",
   509  		"GOTO",
   510  		"WHILE",
   511  		"BREAK",
   512  		"CASE",
   513  		"CONTINUE",
   514  		"DEFAULT",
   515  		"DO",
   516  		"FOR",
   517  		"IF",
   518  		"PPOTHER",
   519  		"RETURN",
   520  		"SWITCH",
   521  		"PPENDIF",
   522  		"PPELSE",
   523  		"PPELIF",
   524  		"PPDEFINE",
   525  		"PPERROR",
   526  		"PPHASH_NL",
   527  		"PPIF",
   528  		"PPIFDEF",
   529  		"PPIFNDEF",
   530  		"PPINCLUDE",
   531  		"PPINCLUDE_NEXT",
   532  		"PPLINE",
   533  		"PPNONDIRECTIVE",
   534  		"PPPRAGMA",
   535  		"PPUNDEF",
   536  		"ELSE",
   537  		"TypeQualifier",
   538  		"ExpressionList",
   539  		"PPTokenList",
   540  		"PPTokens",
   541  		"EnumSpecifier",
   542  		"StructOrUnion",
   543  		"StructOrUnionSpecifier",
   544  		"TypeSpecifier",
   545  		"ExpressionListOpt",
   546  		"BasicAssemblerStatement",
   547  		"CompoundStatement",
   548  		"DeclarationSpecifiers",
   549  		"FunctionSpecifier",
   550  		"PPTokenListOpt",
   551  		"StorageClassSpecifier",
   552  		"AssemblerStatement",
   553  		"ExpressionStatement",
   554  		"IterationStatement",
   555  		"JumpStatement",
   556  		"LabeledStatement",
   557  		"Pointer",
   558  		"SelectionStatement",
   559  		"Statement",
   560  		"PointerOpt",
   561  		"Declarator",
   562  		"StaticAssertDeclaration",
   563  		"ControlLine",
   564  		"GroupPart",
   565  		"IfGroup",
   566  		"IfSection",
   567  		"TextLine",
   568  		"Declaration",
   569  		"$@4",
   570  		"ConstantExpression",
   571  		"DDD",
   572  		"GroupList",
   573  		"AssemblerOperand",
   574  		"AssemblerSymbolicNameOpt",
   575  		"GroupListOpt",
   576  		"ReplacementList",
   577  		"SpecifierQualifierList",
   578  		"TypeQualifierList",
   579  		"$@9",
   580  		"AbstractDeclarator",
   581  		"AssemblerOperands",
   582  		"DeclarationSpecifiersOpt",
   583  		"Designator",
   584  		"Initializer",
   585  		"ParameterDeclaration",
   586  		"TypeName",
   587  		"TypeQualifierListOpt",
   588  		"AssemblerInstructions",
   589  		"CommaOpt",
   590  		"Designation",
   591  		"DesignationOpt",
   592  		"DesignatorList",
   593  		"ExpressionOpt",
   594  		"IdentifierList",
   595  		"InitDeclarator",
   596  		"ParameterList",
   597  		"ParameterTypeList",
   598  		"$@10",
   599  		"$@14",
   600  		"$@16",
   601  		"$@17",
   602  		"$@18",
   603  		"$@5",
   604  		"AbstractDeclaratorOpt",
   605  		"BlockItem",
   606  		"Clobbers",
   607  		"DeclarationListOpt",
   608  		"DeclaratorOpt",
   609  		"DirectAbstractDeclarator",
   610  		"DirectAbstractDeclaratorOpt",
   611  		"DirectDeclarator",
   612  		"ElifGroup",
   613  		"EnumerationConstant",
   614  		"Enumerator",
   615  		"ExternalDeclaration",
   616  		"FunctionBody",
   617  		"FunctionDefinition",
   618  		"IdentifierListOpt",
   619  		"IdentifierOpt",
   620  		"InitDeclaratorList",
   621  		"InitDeclaratorListOpt",
   622  		"InitializerList",
   623  		"ParameterTypeListOpt",
   624  		"SpecifierQualifierListOpt",
   625  		"StructDeclaration",
   626  		"StructDeclarator",
   627  		"VolatileOpt",
   628  		"$@1",
   629  		"$@11",
   630  		"$@12",
   631  		"$@13",
   632  		"$@15",
   633  		"$@2",
   634  		"$@3",
   635  		"$@6",
   636  		"$@7",
   637  		"$@8",
   638  		"ArgumentExpressionList",
   639  		"ArgumentExpressionListOpt",
   640  		"BlockItemList",
   641  		"BlockItemListOpt",
   642  		"CONSTANT_EXPRESSION",
   643  		"DeclarationList",
   644  		"ElifGroupList",
   645  		"ElifGroupListOpt",
   646  		"ElseGroup",
   647  		"ElseGroupOpt",
   648  		"EndifLine",
   649  		"EnumeratorList",
   650  		"IDENTIFIER_LPAREN",
   651  		"PREPROCESSING_FILE",
   652  		"PreprocessingFile",
   653  		"Start",
   654  		"StructDeclarationList",
   655  		"StructDeclaratorList",
   656  		"TRANSLATION_UNIT",
   657  		"TranslationUnit",
   658  		"$default",
   659  		"CAST",
   660  		"error",
   661  		"IDENTIFIER_NONREPL",
   662  		"NOELSE",
   663  		"NOSEMI",
   664  		"PPHEADER_NAME",
   665  		"PPNUMBER",
   666  		"PPPASTE",
   667  		"UNARY",
   668  	}
   669  
   670  	yyTokenLiteralStrings = map[int]string{
   671  		57377:   "identifier",
   672  		57348:   "&&",
   673  		57363:   "--",
   674  		57381:   "++",
   675  		57428:   "string literal",
   676  		57347:   "_Alignof",
   677  		57358:   "character constant",
   678  		57373:   "floating-point constant",
   679  		57384:   "integer constant",
   680  		57387:   "long character constant",
   681  		57388:   "long string constant",
   682  		57425:   "sizeof",
   683  		57439:   "volatile",
   684  		57360:   "const",
   685  		57419:   "restrict",
   686  		57353:   "_Bool",
   687  		57357:   "char",
   688  		57359:   "_Complex",
   689  		57367:   "double",
   690  		57369:   "enum",
   691  		57372:   "float",
   692  		57383:   "int",
   693  		57386:   "long",
   694  		57423:   "short",
   695  		57424:   "signed",
   696  		57429:   "struct",
   697  		57433:   "typedefname",
   698  		57434:   "typeof",
   699  		57436:   "union",
   700  		57437:   "unsigned",
   701  		57438:   "void",
   702  		57426:   "static",
   703  		57352:   "auto",
   704  		57371:   "extern",
   705  		57382:   "inline",
   706  		57395:   "_Noreturn",
   707  		57418:   "register",
   708  		57432:   "typedef",
   709  		57351:   "asm",
   710  		57427:   "_Static_assert",
   711  		57346:   "+=",
   712  		57349:   "&=",
   713  		57350:   "->",
   714  		57365:   "/=",
   715  		57370:   "==",
   716  		57375:   ">=",
   717  		57385:   "<=",
   718  		57389:   "<<",
   719  		57390:   "<<=",
   720  		57391:   "%=",
   721  		57392:   "*=",
   722  		57393:   "!=",
   723  		57397:   "|=",
   724  		57398:   "||",
   725  		57421:   ">>",
   726  		57422:   ">>=",
   727  		57430:   "-=",
   728  		57441:   "^=",
   729  		57376:   "goto",
   730  		57440:   "while",
   731  		57354:   "break",
   732  		57355:   "case",
   733  		57361:   "continue",
   734  		57364:   "default",
   735  		57366:   "do",
   736  		57374:   "for",
   737  		57380:   "if",
   738  		57414:   "ppother",
   739  		57420:   "return",
   740  		57431:   "switch",
   741  		57402:   "#endif",
   742  		57401:   "#else",
   743  		57400:   "#elif",
   744  		57399:   "#define",
   745  		57403:   "#error",
   746  		57404:   "#",
   747  		57406:   "#if",
   748  		57407:   "#ifdef",
   749  		57408:   "#ifndef",
   750  		57409:   "#include",
   751  		57410:   "#include_next",
   752  		57411:   "#line",
   753  		57412:   "#foo",
   754  		57416:   "#pragma",
   755  		57417:   "#undef",
   756  		57368:   "else",
   757  		57362:   "...",
   758  		1048577: "constant expression prefix",
   759  		57378:   "identifier immediatelly followed by '('",
   760  		1048576: "preprocessing file prefix",
   761  		1048578: "translation unit prefix",
   762  		57379:   "non replaceable identifier",
   763  		57405:   "header name",
   764  		57413:   "preprocessing number",
   765  		57415:   "##",
   766  	}
   767  
   768  	yyReductions = map[int]struct{ xsym, components int }{
   769  		0:   {0, 1},
   770  		1:   {204, 0},
   771  		2:   {229, 3},
   772  		3:   {209, 0},
   773  		4:   {229, 3},
   774  		5:   {210, 0},
   775  		6:   {229, 3},
   776  		7:   {189, 1},
   777  		8:   {214, 1},
   778  		9:   {214, 3},
   779  		10:  {215, 0},
   780  		11:  {215, 1},
   781  		12:  {54, 1},
   782  		13:  {54, 1},
   783  		14:  {54, 1},
   784  		15:  {54, 1},
   785  		16:  {54, 1},
   786  		17:  {54, 1},
   787  		18:  {54, 1},
   788  		19:  {54, 3},
   789  		20:  {54, 4},
   790  		21:  {54, 4},
   791  		22:  {54, 3},
   792  		23:  {54, 3},
   793  		24:  {54, 2},
   794  		25:  {54, 2},
   795  		26:  {54, 7},
   796  		27:  {54, 2},
   797  		28:  {54, 2},
   798  		29:  {54, 2},
   799  		30:  {54, 2},
   800  		31:  {54, 2},
   801  		32:  {54, 2},
   802  		33:  {54, 2},
   803  		34:  {54, 2},
   804  		35:  {54, 2},
   805  		36:  {54, 4},
   806  		37:  {54, 4},
   807  		38:  {54, 3},
   808  		39:  {54, 3},
   809  		40:  {54, 3},
   810  		41:  {54, 3},
   811  		42:  {54, 3},
   812  		43:  {54, 3},
   813  		44:  {54, 3},
   814  		45:  {54, 3},
   815  		46:  {54, 3},
   816  		47:  {54, 3},
   817  		48:  {54, 3},
   818  		49:  {54, 3},
   819  		50:  {54, 3},
   820  		51:  {54, 3},
   821  		52:  {54, 3},
   822  		53:  {54, 3},
   823  		54:  {54, 3},
   824  		55:  {54, 3},
   825  		56:  {54, 5},
   826  		57:  {54, 3},
   827  		58:  {54, 3},
   828  		59:  {54, 3},
   829  		60:  {54, 3},
   830  		61:  {54, 3},
   831  		62:  {54, 3},
   832  		63:  {54, 3},
   833  		64:  {54, 3},
   834  		65:  {54, 3},
   835  		66:  {54, 3},
   836  		67:  {54, 3},
   837  		68:  {54, 4},
   838  		69:  {54, 3},
   839  		70:  {54, 2},
   840  		71:  {54, 4},
   841  		72:  {169, 0},
   842  		73:  {169, 1},
   843  		74:  {114, 1},
   844  		75:  {114, 3},
   845  		76:  {121, 0},
   846  		77:  {121, 1},
   847  		78:  {145, 0},
   848  		79:  {146, 2},
   849  		80:  {144, 3},
   850  		81:  {144, 1},
   851  		82:  {124, 2},
   852  		83:  {124, 2},
   853  		84:  {124, 2},
   854  		85:  {124, 2},
   855  		86:  {158, 0},
   856  		87:  {158, 1},
   857  		88:  {196, 1},
   858  		89:  {196, 3},
   859  		90:  {197, 0},
   860  		91:  {197, 1},
   861  		92:  {171, 1},
   862  		93:  {179, 0},
   863  		94:  {171, 4},
   864  		95:  {127, 1},
   865  		96:  {127, 1},
   866  		97:  {127, 1},
   867  		98:  {127, 1},
   868  		99:  {127, 1},
   869  		100: {120, 1},
   870  		101: {120, 1},
   871  		102: {120, 1},
   872  		103: {120, 1},
   873  		104: {120, 1},
   874  		105: {120, 1},
   875  		106: {120, 1},
   876  		107: {120, 1},
   877  		108: {120, 1},
   878  		109: {120, 1},
   879  		110: {120, 1},
   880  		111: {120, 1},
   881  		112: {120, 1},
   882  		113: {120, 1},
   883  		114: {120, 4},
   884  		115: {120, 4},
   885  		116: {211, 0},
   886  		117: {119, 6},
   887  		118: {119, 2},
   888  		119: {119, 4},
   889  		120: {118, 1},
   890  		121: {118, 1},
   891  		122: {230, 1},
   892  		123: {230, 2},
   893  		124: {201, 3},
   894  		125: {201, 2},
   895  		126: {201, 1},
   896  		127: {153, 2},
   897  		128: {153, 2},
   898  		129: {200, 0},
   899  		130: {200, 1},
   900  		131: {231, 1},
   901  		132: {231, 3},
   902  		133: {202, 1},
   903  		134: {202, 3},
   904  		135: {165, 0},
   905  		136: {165, 1},
   906  		137: {212, 0},
   907  		138: {117, 7},
   908  		139: {117, 2},
   909  		140: {225, 1},
   910  		141: {225, 3},
   911  		142: {190, 1},
   912  		143: {190, 3},
   913  		144: {113, 1},
   914  		145: {113, 1},
   915  		146: {113, 1},
   916  		147: {125, 1},
   917  		148: {125, 1},
   918  		149: {137, 2},
   919  		150: {184, 0},
   920  		151: {184, 1},
   921  		152: {187, 1},
   922  		153: {187, 3},
   923  		154: {187, 5},
   924  		155: {187, 6},
   925  		156: {187, 6},
   926  		157: {187, 5},
   927  		158: {213, 0},
   928  		159: {187, 5},
   929  		160: {187, 4},
   930  		161: {133, 2},
   931  		162: {133, 3},
   932  		163: {136, 0},
   933  		164: {136, 1},
   934  		165: {154, 1},
   935  		166: {154, 2},
   936  		167: {163, 0},
   937  		168: {163, 1},
   938  		169: {173, 1},
   939  		170: {173, 3},
   940  		171: {199, 0},
   941  		172: {199, 1},
   942  		173: {172, 1},
   943  		174: {172, 3},
   944  		175: {161, 2},
   945  		176: {161, 2},
   946  		177: {170, 1},
   947  		178: {170, 3},
   948  		179: {194, 0},
   949  		180: {194, 1},
   950  		181: {195, 0},
   951  		182: {195, 1},
   952  		183: {155, 0},
   953  		184: {162, 3},
   954  		185: {156, 1},
   955  		186: {156, 2},
   956  		187: {180, 0},
   957  		188: {180, 1},
   958  		189: {185, 3},
   959  		190: {185, 4},
   960  		191: {185, 5},
   961  		192: {185, 6},
   962  		193: {185, 6},
   963  		194: {185, 4},
   964  		195: {174, 0},
   965  		196: {185, 4},
   966  		197: {205, 0},
   967  		198: {185, 5},
   968  		199: {186, 0},
   969  		200: {186, 1},
   970  		201: {160, 1},
   971  		202: {160, 4},
   972  		203: {160, 3},
   973  		204: {198, 2},
   974  		205: {198, 4},
   975  		206: {198, 0},
   976  		207: {166, 2},
   977  		208: {167, 0},
   978  		209: {167, 1},
   979  		210: {168, 1},
   980  		211: {168, 2},
   981  		212: {159, 3},
   982  		213: {159, 2},
   983  		214: {135, 1},
   984  		215: {135, 1},
   985  		216: {135, 1},
   986  		217: {135, 1},
   987  		218: {135, 1},
   988  		219: {135, 1},
   989  		220: {135, 1},
   990  		221: {132, 3},
   991  		222: {132, 4},
   992  		223: {132, 3},
   993  		224: {206, 0},
   994  		225: {123, 4},
   995  		226: {216, 1},
   996  		227: {216, 2},
   997  		228: {217, 0},
   998  		229: {217, 1},
   999  		230: {181, 1},
  1000  		231: {181, 1},
  1001  		232: {129, 2},
  1002  		233: {134, 5},
  1003  		234: {134, 7},
  1004  		235: {134, 5},
  1005  		236: {130, 5},
  1006  		237: {130, 7},
  1007  		238: {130, 9},
  1008  		239: {130, 8},
  1009  		240: {131, 3},
  1010  		241: {131, 2},
  1011  		242: {131, 2},
  1012  		243: {131, 3},
  1013  		244: {131, 3},
  1014  		245: {233, 1},
  1015  		246: {233, 2},
  1016  		247: {191, 1},
  1017  		248: {191, 1},
  1018  		249: {191, 2},
  1019  		250: {191, 1},
  1020  		251: {207, 0},
  1021  		252: {193, 5},
  1022  		253: {175, 0},
  1023  		254: {208, 0},
  1024  		255: {193, 5},
  1025  		256: {176, 0},
  1026  		257: {192, 2},
  1027  		258: {177, 0},
  1028  		259: {192, 3},
  1029  		260: {219, 1},
  1030  		261: {219, 2},
  1031  		262: {183, 0},
  1032  		263: {178, 0},
  1033  		264: {183, 2},
  1034  		265: {164, 1},
  1035  		266: {164, 2},
  1036  		267: {122, 5},
  1037  		268: {203, 0},
  1038  		269: {203, 1},
  1039  		270: {149, 5},
  1040  		271: {157, 1},
  1041  		272: {157, 3},
  1042  		273: {150, 0},
  1043  		274: {150, 3},
  1044  		275: {182, 1},
  1045  		276: {182, 3},
  1046  		277: {128, 1},
  1047  		278: {128, 7},
  1048  		279: {128, 9},
  1049  		280: {128, 11},
  1050  		281: {128, 13},
  1051  		282: {128, 6},
  1052  		283: {128, 8},
  1053  		284: {138, 7},
  1054  		285: {228, 1},
  1055  		286: {148, 1},
  1056  		287: {148, 2},
  1057  		288: {151, 0},
  1058  		289: {151, 1},
  1059  		290: {140, 1},
  1060  		291: {140, 1},
  1061  		292: {140, 3},
  1062  		293: {140, 1},
  1063  		294: {142, 4},
  1064  		295: {141, 4},
  1065  		296: {141, 4},
  1066  		297: {141, 4},
  1067  		298: {220, 1},
  1068  		299: {220, 2},
  1069  		300: {221, 0},
  1070  		301: {221, 1},
  1071  		302: {188, 4},
  1072  		303: {222, 3},
  1073  		304: {223, 0},
  1074  		305: {223, 1},
  1075  		306: {224, 1},
  1076  		307: {139, 3},
  1077  		308: {139, 5},
  1078  		309: {139, 7},
  1079  		310: {139, 5},
  1080  		311: {139, 2},
  1081  		312: {139, 1},
  1082  		313: {139, 3},
  1083  		314: {139, 3},
  1084  		315: {139, 2},
  1085  		316: {139, 3},
  1086  		317: {139, 6},
  1087  		318: {139, 2},
  1088  		319: {139, 4},
  1089  		320: {139, 3},
  1090  		321: {143, 1},
  1091  		322: {152, 1},
  1092  		323: {115, 1},
  1093  		324: {126, 1},
  1094  		325: {126, 2},
  1095  		326: {116, 1},
  1096  		327: {116, 2},
  1097  	}
  1098  
  1099  	yyXErrors = map[yyXError]string{
  1100  		{0, 51}:   "invalid empty input",
  1101  		{583, -1}: "expected #endif",
  1102  		{585, -1}: "expected #endif",
  1103  		{1, -1}:   "expected $end",
  1104  		{503, -1}: "expected $end",
  1105  		{505, -1}: "expected $end",
  1106  		{32, -1}:  "expected '('",
  1107  		{49, -1}:  "expected '('",
  1108  		{75, -1}:  "expected '('",
  1109  		{274, -1}: "expected '('",
  1110  		{275, -1}: "expected '('",
  1111  		{276, -1}: "expected '('",
  1112  		{278, -1}: "expected '('",
  1113  		{288, -1}: "expected '('",
  1114  		{311, -1}: "expected '('",
  1115  		{353, -1}: "expected '('",
  1116  		{435, -1}: "expected '('",
  1117  		{54, -1}:  "expected ')'",
  1118  		{79, -1}:  "expected ')'",
  1119  		{86, -1}:  "expected ')'",
  1120  		{180, -1}: "expected ')'",
  1121  		{195, -1}: "expected ')'",
  1122  		{198, -1}: "expected ')'",
  1123  		{201, -1}: "expected ')'",
  1124  		{209, -1}: "expected ')'",
  1125  		{214, -1}: "expected ')'",
  1126  		{220, -1}: "expected ')'",
  1127  		{236, -1}: "expected ')'",
  1128  		{241, -1}: "expected ')'",
  1129  		{252, -1}: "expected ')'",
  1130  		{253, -1}: "expected ')'",
  1131  		{343, -1}: "expected ')'",
  1132  		{349, -1}: "expected ')'",
  1133  		{433, -1}: "expected ')'",
  1134  		{489, -1}: "expected ')'",
  1135  		{547, -1}: "expected ')'",
  1136  		{548, -1}: "expected ')'",
  1137  		{555, -1}: "expected ')'",
  1138  		{558, -1}: "expected ')'",
  1139  		{52, -1}:  "expected ','",
  1140  		{267, -1}: "expected ':'",
  1141  		{293, -1}: "expected ':'",
  1142  		{377, -1}: "expected ':'",
  1143  		{479, -1}: "expected ':'",
  1144  		{45, -1}:  "expected ';'",
  1145  		{55, -1}:  "expected ';'",
  1146  		{273, -1}: "expected ';'",
  1147  		{280, -1}: "expected ';'",
  1148  		{281, -1}: "expected ';'",
  1149  		{330, -1}: "expected ';'",
  1150  		{339, -1}: "expected ';'",
  1151  		{341, -1}: "expected ';'",
  1152  		{347, -1}: "expected ';'",
  1153  		{356, -1}: "expected ';'",
  1154  		{380, -1}: "expected ';'",
  1155  		{448, -1}: "expected ';'",
  1156  		{387, -1}: "expected '='",
  1157  		{91, -1}:  "expected '['",
  1158  		{527, -1}: "expected '\\n'",
  1159  		{531, -1}: "expected '\\n'",
  1160  		{535, -1}: "expected '\\n'",
  1161  		{538, -1}: "expected '\\n'",
  1162  		{540, -1}: "expected '\\n'",
  1163  		{562, -1}: "expected '\\n'",
  1164  		{567, -1}: "expected '\\n'",
  1165  		{570, -1}: "expected '\\n'",
  1166  		{577, -1}: "expected '\\n'",
  1167  		{582, -1}: "expected '\\n'",
  1168  		{588, -1}: "expected '\\n'",
  1169  		{97, -1}:  "expected ']'",
  1170  		{188, -1}: "expected ']'",
  1171  		{232, -1}: "expected ']'",
  1172  		{299, -1}: "expected ']'",
  1173  		{401, -1}: "expected ']'",
  1174  		{452, -1}: "expected '{'",
  1175  		{454, -1}: "expected '{'",
  1176  		{466, -1}: "expected '{'",
  1177  		{268, -1}: "expected '}'",
  1178  		{407, -1}: "expected '}'",
  1179  		{423, -1}: "expected '}'",
  1180  		{463, -1}: "expected '}'",
  1181  		{0, -1}:   "expected Start or one of [constant expression prefix, preprocessing file prefix, translation unit prefix]",
  1182  		{208, -1}: "expected abstract declarator or declarator or optional parameter type list or one of ['(', ')', '*', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1183  		{90, -1}:  "expected abstract declarator or optional parameter type list or one of ['(', ')', '*', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1184  		{287, -1}: "expected assembler instructions or string literal",
  1185  		{289, -1}: "expected assembler instructions or string literal",
  1186  		{436, -1}: "expected assembler instructions or string literal",
  1187  		{301, -1}: "expected assembler operand or one of ['[', string literal]",
  1188  		{317, -1}: "expected assembler operands or one of [')', ':', '[', string literal]",
  1189  		{294, -1}: "expected assembler operands or one of ['[', string literal]",
  1190  		{320, -1}: "expected assembler operands or one of ['[', string literal]",
  1191  		{324, -1}: "expected assembler operands or one of ['[', string literal]",
  1192  		{447, -1}: "expected assembler statement or asm",
  1193  		{270, -1}: "expected block item or one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1194  		{302, -1}: "expected clobbers or string literal",
  1195  		{327, -1}: "expected clobbers or string literal",
  1196  		{446, -1}: "expected compound statement or '{'",
  1197  		{64, -1}:  "expected compound statement or expression list or type name or one of [&&, '!', '&', '(', '*', '+', '-', '{', '~', ++, --, _Alignof, _Bool, _Complex, char, character constant, const, double, enum, float, floating-point constant, identifier, int, integer constant, long, long character constant, long string constant, restrict, short, signed, sizeof, string literal, struct, typedefname, typeof, union, unsigned, void, volatile]",
  1198  		{249, -1}: "expected compound statement or expression list or type name or one of [&&, '!', '&', '(', '*', '+', '-', '{', '~', ++, --, _Alignof, _Bool, _Complex, char, character constant, const, double, enum, float, floating-point constant, identifier, int, integer constant, long, long character constant, long string constant, restrict, short, signed, sizeof, string literal, struct, typedefname, typeof, union, unsigned, void, volatile]",
  1199  		{3, -1}:   "expected constant expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1200  		{50, -1}:  "expected constant expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1201  		{266, -1}: "expected constant expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1202  		{398, -1}: "expected constant expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1203  		{460, -1}: "expected constant expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1204  		{480, -1}: "expected constant expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1205  		{502, -1}: "expected constant expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1206  		{440, -1}: "expected declaration list or one of [_Bool, _Complex, _Noreturn, _Static_assert, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1207  		{442, -1}: "expected declaration or one of ['{', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1208  		{338, -1}: "expected declaration or optional expression list or one of [&&, '!', '&', '(', '*', '+', '-', ';', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, auto, char, character constant, const, double, enum, extern, float, floating-point constant, identifier, inline, int, integer constant, long, long character constant, long string constant, register, restrict, short, signed, sizeof, static, string literal, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1209  		{47, -1}:  "expected declarator or one of ['(', '*', identifier]",
  1210  		{386, -1}: "expected declarator or one of ['(', '*', identifier]",
  1211  		{200, -1}: "expected declarator or optional abstract declarator or one of ['(', ')', '*', ',', '[', identifier]",
  1212  		{7, -1}:   "expected declarator or optional init declarator list or one of ['(', '*', ';', identifier]",
  1213  		{395, -1}: "expected designator or one of ['.', '=', '[']",
  1214  		{203, -1}: "expected direct abstract declarator or direct declarator or one of ['(', '[', identifier]",
  1215  		{87, -1}:  "expected direct abstract declarator or one of ['(', '[']",
  1216  		{384, -1}: "expected direct declarator or one of ['(', identifier]",
  1217  		{575, -1}: "expected elif group or one of [#elif, #else, #endif]",
  1218  		{581, -1}: "expected endif line or #endif",
  1219  		{512, -1}: "expected endif line or optional elif group list or optional else group or one of [#elif, #else, #endif]",
  1220  		{573, -1}: "expected endif line or optional else group or one of [#else, #endif]",
  1221  		{455, -1}: "expected enumerator list or identifier",
  1222  		{462, -1}: "expected enumerator or one of ['}', identifier]",
  1223  		{126, -1}: "expected expression list or one of [&&, '!', '&', '(', '*', '+', '-', ':', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1224  		{102, -1}: "expected expression list or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1225  		{354, -1}: "expected expression list or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1226  		{358, -1}: "expected expression list or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1227  		{362, -1}: "expected expression list or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1228  		{366, -1}: "expected expression list or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1229  		{419, -1}: "expected expression or one of [!=, $end, %=, &&, &=, '!', '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '{', '|', '}', '~', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal, |=, ||]",
  1230  		{94, -1}:  "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', ']', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1231  		{231, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', ']', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1232  		{434, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '{', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1233  		{51, -1}:  "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1234  		{66, -1}:  "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1235  		{67, -1}:  "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1236  		{68, -1}:  "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1237  		{69, -1}:  "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1238  		{70, -1}:  "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1239  		{71, -1}:  "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1240  		{72, -1}:  "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1241  		{73, -1}:  "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1242  		{74, -1}:  "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1243  		{100, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1244  		{108, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1245  		{109, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1246  		{110, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1247  		{111, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1248  		{112, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1249  		{113, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1250  		{114, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1251  		{115, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1252  		{116, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1253  		{117, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1254  		{118, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1255  		{119, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1256  		{120, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1257  		{121, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1258  		{122, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1259  		{123, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1260  		{124, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1261  		{125, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1262  		{127, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1263  		{128, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1264  		{129, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1265  		{130, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1266  		{131, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1267  		{132, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1268  		{133, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1269  		{134, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1270  		{135, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1271  		{136, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1272  		{137, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1273  		{152, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1274  		{154, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1275  		{155, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1276  		{182, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1277  		{189, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1278  		{225, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1279  		{228, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1280  		{279, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1281  		{312, -1}: "expected expression or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1282  		{98, -1}:  "expected expression or optional type qualifier list or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, const, floating-point constant, identifier, integer constant, long character constant, long string constant, restrict, sizeof, string literal, volatile]",
  1283  		{223, -1}: "expected expression or optional type qualifier list or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, character constant, const, floating-point constant, identifier, integer constant, long character constant, long string constant, restrict, sizeof, string literal, volatile]",
  1284  		{487, -1}: "expected expression or type name or one of [&&, '!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, _Bool, _Complex, char, character constant, const, double, enum, float, floating-point constant, identifier, int, integer constant, long, long character constant, long string constant, restrict, short, signed, sizeof, string literal, struct, typedefname, typeof, union, unsigned, void, volatile]",
  1285  		{6, -1}:   "expected external declaration or one of [$end, '(', '*', ';', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1286  		{439, -1}: "expected function body or one of ['{', asm]",
  1287  		{444, -1}: "expected function body or one of ['{', asm]",
  1288  		{498, -1}: "expected function body or one of ['{', asm]",
  1289  		{499, -1}: "expected function body or one of ['{', asm]",
  1290  		{497, -1}: "expected function body or optional declaration list or one of [',', ';', '=', '{', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1291  		{438, -1}: "expected function body or optional declaration list or one of ['{', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1292  		{564, -1}: "expected group part or one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, '\\n', ppother]",
  1293  		{506, -1}: "expected group part or one of [#, #define, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1294  		{76, -1}:  "expected identifier",
  1295  		{104, -1}: "expected identifier",
  1296  		{105, -1}: "expected identifier",
  1297  		{217, -1}: "expected identifier",
  1298  		{298, -1}: "expected identifier",
  1299  		{399, -1}: "expected identifier",
  1300  		{514, -1}: "expected identifier",
  1301  		{515, -1}: "expected identifier",
  1302  		{522, -1}: "expected identifier",
  1303  		{306, -1}: "expected identifier list or identifier",
  1304  		{544, -1}: "expected identifier list or optional identifier list or one of [')', ..., identifier]",
  1305  		{413, -1}: "expected init declarator or one of ['(', '*', identifier]",
  1306  		{392, -1}: "expected initializer list or optional comma or one of [&&, '!', '&', '(', '*', '+', ',', '-', '.', '[', '{', '}', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1307  		{421, -1}: "expected initializer list or optional comma or one of [&&, '!', '&', '(', '*', '+', ',', '-', '.', '[', '{', '}', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1308  		{388, -1}: "expected initializer or one of [&&, '!', '&', '(', '*', '+', '-', '{', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1309  		{394, -1}: "expected initializer or one of [&&, '!', '&', '(', '*', '+', '-', '{', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1310  		{409, -1}: "expected initializer or one of [&&, '!', '&', '(', '*', '+', '-', '{', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1311  		{411, -1}: "expected initializer or one of [&&, '!', '&', '(', '*', '+', '-', '{', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1312  		{406, -1}: "expected initializer or optional designation or one of [&&, '!', '&', '(', '*', '+', '-', '.', '[', '{', '}', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1313  		{57, -1}:  "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1314  		{58, -1}:  "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1315  		{59, -1}:  "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1316  		{60, -1}:  "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1317  		{61, -1}:  "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1318  		{62, -1}:  "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1319  		{63, -1}:  "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1320  		{77, -1}:  "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1321  		{106, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1322  		{107, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1323  		{139, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1324  		{140, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1325  		{141, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1326  		{142, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1327  		{143, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1328  		{144, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1329  		{145, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1330  		{146, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1331  		{147, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1332  		{148, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1333  		{149, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1334  		{153, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1335  		{157, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1336  		{158, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1337  		{159, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1338  		{160, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1339  		{161, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1340  		{162, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1341  		{163, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1342  		{164, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1343  		{165, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1344  		{166, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1345  		{167, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1346  		{168, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1347  		{169, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1348  		{170, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1349  		{171, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1350  		{172, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1351  		{173, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1352  		{174, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1353  		{175, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1354  		{176, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1355  		{177, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1356  		{181, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1357  		{185, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1358  		{193, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1359  		{248, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1360  		{250, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1361  		{418, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1362  		{420, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1363  		{424, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1364  		{425, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1365  		{426, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1366  		{427, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1367  		{428, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1368  		{429, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1369  		{430, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1370  		{431, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1371  		{432, -1}: "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1372  		{65, -1}:  "expected one of [!=, $end, %=, &&, &=, '%', '&', '(', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1373  		{150, -1}: "expected one of [!=, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1374  		{156, -1}: "expected one of [!=, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '^', '|', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1375  		{178, -1}: "expected one of [!=, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', '<', '=', '>', '?', '[', '^', '|', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1376  		{183, -1}: "expected one of [!=, %=, &&, &=, '%', '&', '(', ')', '*', '+', ',', '-', '.', '/', '<', '=', '>', '?', '[', '^', '|', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1377  		{313, -1}: "expected one of [!=, %=, &&, &=, '%', '&', '(', ')', '*', '+', '-', '.', '/', '<', '=', '>', '?', '[', '^', '|', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1378  		{488, -1}: "expected one of [!=, %=, &&, &=, '%', '&', '(', ')', '*', '+', '-', '.', '/', '<', '=', '>', '?', '[', '^', '|', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1379  		{389, -1}: "expected one of [!=, %=, &&, &=, '%', '&', '(', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1380  		{256, -1}: "expected one of [!=, %=, &&, &=, '%', '&', '(', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', '^', '|', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1381  		{390, -1}: "expected one of [!=, %=, &&, &=, '%', '&', '(', '*', '+', ',', '-', '.', '/', ';', '<', '=', '>', '?', '[', '^', '|', '}', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1382  		{334, -1}: "expected one of [!=, %=, &&, &=, '%', '&', '(', '*', '+', '-', '.', '/', ';', '<', '=', '>', '?', '[', '^', '|', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1383  		{335, -1}: "expected one of [!=, %=, &&, &=, '%', '&', '(', '*', '+', '-', '.', '/', ';', '<', '=', '>', '?', '[', '^', '|', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1384  		{93, -1}:  "expected one of [!=, %=, &&, &=, '%', '&', '(', '*', '+', '-', '.', '/', '<', '=', '>', '?', '[', ']', '^', '|', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1385  		{101, -1}: "expected one of [!=, %=, &&, &=, '%', '&', '(', '*', '+', '-', '.', '/', '<', '=', '>', '?', '[', ']', '^', '|', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1386  		{190, -1}: "expected one of [!=, %=, &&, &=, '%', '&', '(', '*', '+', '-', '.', '/', '<', '=', '>', '?', '[', ']', '^', '|', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1387  		{226, -1}: "expected one of [!=, %=, &&, &=, '%', '&', '(', '*', '+', '-', '.', '/', '<', '=', '>', '?', '[', ']', '^', '|', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1388  		{229, -1}: "expected one of [!=, %=, &&, &=, '%', '&', '(', '*', '+', '-', '.', '/', '<', '=', '>', '?', '[', ']', '^', '|', *=, ++, +=, --, -=, ->, /=, <<, <<=, <=, ==, >=, >>, >>=, ^=, |=, ||]",
  1389  		{507, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1390  		{508, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1391  		{509, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1392  		{511, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1393  		{518, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1394  		{524, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1395  		{526, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1396  		{529, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1397  		{532, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1398  		{534, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1399  		{536, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1400  		{537, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1401  		{539, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1402  		{541, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1403  		{542, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1404  		{545, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1405  		{550, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1406  		{551, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1407  		{553, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1408  		{557, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1409  		{560, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1410  		{561, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1411  		{566, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1412  		{586, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1413  		{587, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1414  		{589, -1}: "expected one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, $end, '\\n', ppother]",
  1415  		{565, -1}: "expected one of [#elif, #else, #endif]",
  1416  		{569, -1}: "expected one of [#elif, #else, #endif]",
  1417  		{572, -1}: "expected one of [#elif, #else, #endif]",
  1418  		{574, -1}: "expected one of [#elif, #else, #endif]",
  1419  		{579, -1}: "expected one of [#elif, #else, #endif]",
  1420  		{580, -1}: "expected one of [#elif, #else, #endif]",
  1421  		{374, -1}: "expected one of [$end, &&, '!', '&', '(', ')', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1422  		{8, -1}:   "expected one of [$end, &&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1423  		{56, -1}:  "expected one of [$end, &&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1424  		{415, -1}: "expected one of [$end, &&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1425  		{42, -1}:  "expected one of [$end, '(', '*', ';', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1426  		{43, -1}:  "expected one of [$end, '(', '*', ';', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1427  		{44, -1}:  "expected one of [$end, '(', '*', ';', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1428  		{46, -1}:  "expected one of [$end, '(', '*', ';', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1429  		{445, -1}: "expected one of [$end, '(', '*', ';', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1430  		{449, -1}: "expected one of [$end, '(', '*', ';', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1431  		{450, -1}: "expected one of [$end, '(', '*', ';', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1432  		{451, -1}: "expected one of [$end, '(', '*', ';', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1433  		{500, -1}: "expected one of [$end, '(', '*', ';', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1434  		{501, -1}: "expected one of [$end, '(', '*', ';', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1435  		{37, -1}:  "expected one of [&&, '!', '&', '(', ')', '*', '+', ',', '-', ':', ';', '[', ']', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, auto, char, character constant, const, double, enum, extern, float, floating-point constant, identifier, inline, int, integer constant, long, long character constant, long string constant, register, restrict, short, signed, sizeof, static, string literal, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1436  		{38, -1}:  "expected one of [&&, '!', '&', '(', ')', '*', '+', ',', '-', ':', ';', '[', ']', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, auto, char, character constant, const, double, enum, extern, float, floating-point constant, identifier, inline, int, integer constant, long, long character constant, long string constant, register, restrict, short, signed, sizeof, static, string literal, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1437  		{39, -1}:  "expected one of [&&, '!', '&', '(', ')', '*', '+', ',', '-', ':', ';', '[', ']', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, auto, char, character constant, const, double, enum, extern, float, floating-point constant, identifier, inline, int, integer constant, long, long character constant, long string constant, register, restrict, short, signed, sizeof, static, string literal, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1438  		{95, -1}:  "expected one of [&&, '!', '&', '(', ')', '*', '+', ',', '-', '[', ']', '~', ++, --, _Alignof, character constant, const, floating-point constant, identifier, integer constant, long character constant, long string constant, restrict, sizeof, static, string literal, volatile]",
  1439  		{186, -1}: "expected one of [&&, '!', '&', '(', ')', '*', '+', ',', '-', '[', ']', '~', ++, --, _Alignof, character constant, const, floating-point constant, identifier, integer constant, long character constant, long string constant, restrict, sizeof, static, string literal, volatile]",
  1440  		{259, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1441  		{260, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1442  		{261, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1443  		{262, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1444  		{263, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1445  		{264, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1446  		{265, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1447  		{284, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1448  		{308, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1449  		{316, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1450  		{319, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1451  		{322, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1452  		{323, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1453  		{326, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1454  		{329, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1455  		{331, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1456  		{332, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1457  		{333, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1458  		{336, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1459  		{337, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1460  		{345, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1461  		{351, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1462  		{357, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1463  		{361, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1464  		{365, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1465  		{369, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1466  		{371, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1467  		{372, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1468  		{376, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1469  		{379, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1470  		{417, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, else, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1471  		{269, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1472  		{271, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1473  		{272, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1474  		{373, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1475  		{396, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', '{', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1476  		{403, -1}: "expected one of [&&, '!', '&', '(', '*', '+', '-', '{', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1477  		{453, -1}: "expected one of ['(', ')', '*', ',', ':', ';', '[', '{', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1478  		{467, -1}: "expected one of ['(', ')', '*', ',', ':', ';', '[', '{', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1479  		{18, -1}:  "expected one of ['(', ')', '*', ',', ':', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1480  		{19, -1}:  "expected one of ['(', ')', '*', ',', ':', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1481  		{20, -1}:  "expected one of ['(', ')', '*', ',', ':', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1482  		{21, -1}:  "expected one of ['(', ')', '*', ',', ':', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1483  		{22, -1}:  "expected one of ['(', ')', '*', ',', ':', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1484  		{23, -1}:  "expected one of ['(', ')', '*', ',', ':', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1485  		{24, -1}:  "expected one of ['(', ')', '*', ',', ':', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1486  		{25, -1}:  "expected one of ['(', ')', '*', ',', ':', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1487  		{26, -1}:  "expected one of ['(', ')', '*', ',', ':', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1488  		{27, -1}:  "expected one of ['(', ')', '*', ',', ':', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1489  		{28, -1}:  "expected one of ['(', ')', '*', ',', ':', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1490  		{29, -1}:  "expected one of ['(', ')', '*', ',', ':', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1491  		{30, -1}:  "expected one of ['(', ')', '*', ',', ':', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1492  		{31, -1}:  "expected one of ['(', ')', '*', ',', ':', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1493  		{464, -1}: "expected one of ['(', ')', '*', ',', ':', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1494  		{470, -1}: "expected one of ['(', ')', '*', ',', ':', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1495  		{485, -1}: "expected one of ['(', ')', '*', ',', ':', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1496  		{490, -1}: "expected one of ['(', ')', '*', ',', ':', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1497  		{491, -1}: "expected one of ['(', ')', '*', ',', ':', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1498  		{13, -1}:  "expected one of ['(', ')', '*', ',', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1499  		{14, -1}:  "expected one of ['(', ')', '*', ',', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1500  		{15, -1}:  "expected one of ['(', ')', '*', ',', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1501  		{16, -1}:  "expected one of ['(', ')', '*', ',', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1502  		{17, -1}:  "expected one of ['(', ')', '*', ',', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1503  		{40, -1}:  "expected one of ['(', ')', '*', ',', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1504  		{41, -1}:  "expected one of ['(', ')', '*', ',', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1505  		{492, -1}: "expected one of ['(', ')', '*', ',', ';', '[', identifier]",
  1506  		{493, -1}: "expected one of ['(', ')', '*', ',', ';', '[', identifier]",
  1507  		{494, -1}: "expected one of ['(', ')', '*', ',', ';', '[', identifier]",
  1508  		{495, -1}: "expected one of ['(', ')', '*', ',', ';', '[', identifier]",
  1509  		{496, -1}: "expected one of ['(', ')', '*', ',', ';', '[', identifier]",
  1510  		{245, -1}: "expected one of ['(', ')', '*', ':', ';', '[', identifier]",
  1511  		{246, -1}: "expected one of ['(', ')', '*', ':', ';', '[', identifier]",
  1512  		{247, -1}: "expected one of ['(', ')', '*', ':', ';', '[', identifier]",
  1513  		{206, -1}: "expected one of ['(', ')', ',', ':', ';', '=', '[', '{', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1514  		{207, -1}: "expected one of ['(', ')', ',', ':', ';', '=', '[', '{', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1515  		{210, -1}: "expected one of ['(', ')', ',', ':', ';', '=', '[', '{', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1516  		{219, -1}: "expected one of ['(', ')', ',', ':', ';', '=', '[', '{', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1517  		{221, -1}: "expected one of ['(', ')', ',', ':', ';', '=', '[', '{', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1518  		{227, -1}: "expected one of ['(', ')', ',', ':', ';', '=', '[', '{', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1519  		{230, -1}: "expected one of ['(', ')', ',', ':', ';', '=', '[', '{', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1520  		{233, -1}: "expected one of ['(', ')', ',', ':', ';', '=', '[', '{', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1521  		{234, -1}: "expected one of ['(', ')', ',', ':', ';', '=', '[', '{', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1522  		{85, -1}:  "expected one of ['(', ')', ',', '[', identifier]",
  1523  		{244, -1}: "expected one of ['(', ')', ',', '[', identifier]",
  1524  		{89, -1}:  "expected one of ['(', ')', ',', '[']",
  1525  		{138, -1}: "expected one of ['(', ')', ',', '[']",
  1526  		{187, -1}: "expected one of ['(', ')', ',', '[']",
  1527  		{191, -1}: "expected one of ['(', ')', ',', '[']",
  1528  		{192, -1}: "expected one of ['(', ')', ',', '[']",
  1529  		{194, -1}: "expected one of ['(', ')', ',', '[']",
  1530  		{202, -1}: "expected one of ['(', ')', ',', '[']",
  1531  		{238, -1}: "expected one of ['(', ')', ',', '[']",
  1532  		{242, -1}: "expected one of ['(', ')', ',', '[']",
  1533  		{285, -1}: "expected one of ['(', goto]",
  1534  		{286, -1}: "expected one of ['(', goto]",
  1535  		{385, -1}: "expected one of ['(', identifier]",
  1536  		{296, -1}: "expected one of [')', ',', ':']",
  1537  		{303, -1}: "expected one of [')', ',', ':']",
  1538  		{309, -1}: "expected one of [')', ',', ':']",
  1539  		{310, -1}: "expected one of [')', ',', ':']",
  1540  		{314, -1}: "expected one of [')', ',', ':']",
  1541  		{318, -1}: "expected one of [')', ',', ':']",
  1542  		{325, -1}: "expected one of [')', ',', ':']",
  1543  		{257, -1}: "expected one of [')', ',', ';']",
  1544  		{215, -1}: "expected one of [')', ',', ...]",
  1545  		{218, -1}: "expected one of [')', ',', ...]",
  1546  		{546, -1}: "expected one of [')', ',', ...]",
  1547  		{88, -1}:  "expected one of [')', ',']",
  1548  		{179, -1}: "expected one of [')', ',']",
  1549  		{197, -1}: "expected one of [')', ',']",
  1550  		{199, -1}: "expected one of [')', ',']",
  1551  		{204, -1}: "expected one of [')', ',']",
  1552  		{205, -1}: "expected one of [')', ',']",
  1553  		{216, -1}: "expected one of [')', ',']",
  1554  		{237, -1}: "expected one of [')', ',']",
  1555  		{251, -1}: "expected one of [')', ',']",
  1556  		{307, -1}: "expected one of [')', ',']",
  1557  		{321, -1}: "expected one of [')', ',']",
  1558  		{328, -1}: "expected one of [')', ',']",
  1559  		{355, -1}: "expected one of [')', ',']",
  1560  		{359, -1}: "expected one of [')', ',']",
  1561  		{363, -1}: "expected one of [')', ',']",
  1562  		{367, -1}: "expected one of [')', ',']",
  1563  		{290, -1}: "expected one of [')', ':', string literal]",
  1564  		{292, -1}: "expected one of [')', ':', string literal]",
  1565  		{315, -1}: "expected one of [')', ':', string literal]",
  1566  		{437, -1}: "expected one of [')', string literal]",
  1567  		{478, -1}: "expected one of [',', ':', ';']",
  1568  		{151, -1}: "expected one of [',', ':']",
  1569  		{297, -1}: "expected one of [',', ':']",
  1570  		{304, -1}: "expected one of [',', ':']",
  1571  		{383, -1}: "expected one of [',', ';', '=']",
  1572  		{408, -1}: "expected one of [',', ';', '}']",
  1573  		{412, -1}: "expected one of [',', ';', '}']",
  1574  		{381, -1}: "expected one of [',', ';']",
  1575  		{382, -1}: "expected one of [',', ';']",
  1576  		{391, -1}: "expected one of [',', ';']",
  1577  		{414, -1}: "expected one of [',', ';']",
  1578  		{475, -1}: "expected one of [',', ';']",
  1579  		{477, -1}: "expected one of [',', ';']",
  1580  		{481, -1}: "expected one of [',', ';']",
  1581  		{484, -1}: "expected one of [',', ';']",
  1582  		{456, -1}: "expected one of [',', '=', '}']",
  1583  		{459, -1}: "expected one of [',', '=', '}']",
  1584  		{184, -1}: "expected one of [',', ']']",
  1585  		{405, -1}: "expected one of [',', '}']",
  1586  		{410, -1}: "expected one of [',', '}']",
  1587  		{458, -1}: "expected one of [',', '}']",
  1588  		{461, -1}: "expected one of [',', '}']",
  1589  		{465, -1}: "expected one of [',', '}']",
  1590  		{397, -1}: "expected one of ['.', '=', '[']",
  1591  		{400, -1}: "expected one of ['.', '=', '[']",
  1592  		{402, -1}: "expected one of ['.', '=', '[']",
  1593  		{404, -1}: "expected one of ['.', '=', '[']",
  1594  		{291, -1}: "expected one of [':', string literal]",
  1595  		{516, -1}: "expected one of ['\\n', identifier, identifier immediatelly followed by '(']",
  1596  		{525, -1}: "expected one of ['\\n', ppother]",
  1597  		{528, -1}: "expected one of ['\\n', ppother]",
  1598  		{530, -1}: "expected one of ['\\n', ppother]",
  1599  		{441, -1}: "expected one of ['{', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1600  		{443, -1}: "expected one of ['{', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1601  		{34, -1}:  "expected one of ['{', identifier]",
  1602  		{35, -1}:  "expected one of ['{', identifier]",
  1603  		{472, -1}: "expected one of ['}', _Bool, _Complex, _Static_assert, char, const, double, enum, float, int, long, restrict, short, signed, struct, typedefname, typeof, union, unsigned, void, volatile]",
  1604  		{474, -1}: "expected one of ['}', _Bool, _Complex, _Static_assert, char, const, double, enum, float, int, long, restrict, short, signed, struct, typedefname, typeof, union, unsigned, void, volatile]",
  1605  		{476, -1}: "expected one of ['}', _Bool, _Complex, _Static_assert, char, const, double, enum, float, int, long, restrict, short, signed, struct, typedefname, typeof, union, unsigned, void, volatile]",
  1606  		{482, -1}: "expected one of ['}', _Bool, _Complex, _Static_assert, char, const, double, enum, float, int, long, restrict, short, signed, struct, typedefname, typeof, union, unsigned, void, volatile]",
  1607  		{486, -1}: "expected one of ['}', _Bool, _Complex, _Static_assert, char, const, double, enum, float, int, long, restrict, short, signed, struct, typedefname, typeof, union, unsigned, void, volatile]",
  1608  		{554, -1}: "expected one of [..., identifier]",
  1609  		{83, -1}:  "expected optional abstract declarator or one of ['(', ')', '*', '[']",
  1610  		{103, -1}: "expected optional argument expression list or one of [&&, '!', '&', '(', ')', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1611  		{254, -1}: "expected optional block item list or one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1612  		{255, -1}: "expected optional block item list or one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '}', '~', ++, --, _Alignof, _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, break, case, char, character constant, const, continue, default, do, double, enum, extern, float, floating-point constant, for, goto, identifier, if, inline, int, integer constant, long, long character constant, long string constant, register, restrict, return, short, signed, sizeof, static, string literal, struct, switch, typedef, typedefname, typeof, union, unsigned, void, volatile, while]",
  1613  		{393, -1}: "expected optional comma or one of [',', '}']",
  1614  		{422, -1}: "expected optional comma or one of [',', '}']",
  1615  		{457, -1}: "expected optional comma or one of [',', '}']",
  1616  		{9, -1}:   "expected optional declaration specifiers or one of ['(', ')', '*', ',', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1617  		{10, -1}:  "expected optional declaration specifiers or one of ['(', ')', '*', ',', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1618  		{11, -1}:  "expected optional declaration specifiers or one of ['(', ')', '*', ',', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1619  		{12, -1}:  "expected optional declaration specifiers or one of ['(', ')', '*', ',', ';', '[', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1620  		{342, -1}: "expected optional expression list or one of [&&, '!', '&', '(', ')', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1621  		{348, -1}: "expected optional expression list or one of [&&, '!', '&', '(', ')', '*', '+', '-', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1622  		{282, -1}: "expected optional expression list or one of [&&, '!', '&', '(', '*', '+', '-', ';', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1623  		{340, -1}: "expected optional expression list or one of [&&, '!', '&', '(', '*', '+', '-', ';', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1624  		{346, -1}: "expected optional expression list or one of [&&, '!', '&', '(', '*', '+', '-', ';', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1625  		{222, -1}: "expected optional expression or one of [&&, '!', '&', '(', '*', '+', '-', ']', '~', ++, --, _Alignof, character constant, floating-point constant, identifier, integer constant, long character constant, long string constant, sizeof, string literal]",
  1626  		{211, -1}: "expected optional expression or optional type qualifier list or type qualifier list or one of [&&, '!', '&', '(', '*', '+', '-', ']', '~', ++, --, _Alignof, character constant, const, floating-point constant, identifier, integer constant, long character constant, long string constant, restrict, sizeof, static, string literal, volatile]",
  1627  		{92, -1}:  "expected optional expression or type qualifier list or one of [&&, '!', '&', '(', '*', '+', '-', ']', '~', ++, --, _Alignof, character constant, const, floating-point constant, identifier, integer constant, long character constant, long string constant, restrict, sizeof, static, string literal, volatile]",
  1628  		{96, -1}:  "expected optional expression or type qualifier or one of [&&, '!', '&', '(', '*', '+', '-', ']', '~', ++, --, _Alignof, character constant, const, floating-point constant, identifier, integer constant, long character constant, long string constant, restrict, sizeof, static, string literal, volatile]",
  1629  		{563, -1}: "expected optional group list or one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, '\\n', ppother]",
  1630  		{568, -1}: "expected optional group list or one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, '\\n', ppother]",
  1631  		{571, -1}: "expected optional group list or one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, '\\n', ppother]",
  1632  		{578, -1}: "expected optional group list or one of [#, #define, #elif, #else, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, '\\n', ppother]",
  1633  		{584, -1}: "expected optional group list or one of [#, #define, #endif, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, '\\n', ppother]",
  1634  		{212, -1}: "expected optional identifier list or parameter type list or one of [')', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1635  		{33, -1}:  "expected optional identifier or one of ['{', identifier]",
  1636  		{36, -1}:  "expected optional identifier or one of ['{', identifier]",
  1637  		{258, -1}: "expected optional init declarator list or one of ['(', '*', ';', identifier]",
  1638  		{196, -1}: "expected optional parameter type list or one of [')', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1639  		{239, -1}: "expected optional parameter type list or one of [')', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1640  		{240, -1}: "expected optional parameter type list or one of [')', _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1641  		{81, -1}:  "expected optional specifier qualifier list or one of ['(', ')', '*', ':', ';', '[', _Bool, _Complex, char, const, double, enum, float, identifier, int, long, restrict, short, signed, struct, typedefname, typeof, union, unsigned, void, volatile]",
  1642  		{82, -1}:  "expected optional specifier qualifier list or one of ['(', ')', '*', ':', ';', '[', _Bool, _Complex, char, const, double, enum, float, identifier, int, long, restrict, short, signed, struct, typedefname, typeof, union, unsigned, void, volatile]",
  1643  		{517, -1}: "expected optional token list or one of ['\\n', ppother]",
  1644  		{521, -1}: "expected optional token list or one of ['\\n', ppother]",
  1645  		{84, -1}:  "expected optional type qualifier list or pointer or one of ['(', ')', '*', ',', '[', const, identifier, restrict, volatile]",
  1646  		{283, -1}: "expected optional volatile or one of ['(', goto, volatile]",
  1647  		{48, -1}:  "expected optional volatile or one of ['(', volatile]",
  1648  		{235, -1}: "expected parameter declaration or one of [..., _Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1649  		{213, -1}: "expected parameter type list or one of [_Bool, _Complex, _Noreturn, auto, char, const, double, enum, extern, float, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1650  		{243, -1}: "expected pointer or one of ['(', ')', '*', ',', '[', identifier]",
  1651  		{2, -1}:   "expected preprocessing file or one of [#, #define, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, '\\n', ppother]",
  1652  		{504, -1}: "expected preprocessing file or one of [#, #define, #error, #foo, #if, #ifdef, #ifndef, #include, #include_next, #line, #pragma, #undef, '\\n', ppother]",
  1653  		{543, -1}: "expected replacement list or one of ['\\n', ppother]",
  1654  		{549, -1}: "expected replacement list or one of ['\\n', ppother]",
  1655  		{552, -1}: "expected replacement list or one of ['\\n', ppother]",
  1656  		{556, -1}: "expected replacement list or one of ['\\n', ppother]",
  1657  		{559, -1}: "expected replacement list or one of ['\\n', ppother]",
  1658  		{80, -1}:  "expected specifier qualifier list or one of [_Bool, _Complex, char, const, double, enum, float, int, long, restrict, short, signed, struct, typedefname, typeof, union, unsigned, void, volatile]",
  1659  		{277, -1}: "expected statement or one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '~', ++, --, _Alignof, asm, break, case, character constant, continue, default, do, floating-point constant, for, goto, identifier, if, integer constant, long character constant, long string constant, return, sizeof, string literal, switch, while]",
  1660  		{344, -1}: "expected statement or one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '~', ++, --, _Alignof, asm, break, case, character constant, continue, default, do, floating-point constant, for, goto, identifier, if, integer constant, long character constant, long string constant, return, sizeof, string literal, switch, while]",
  1661  		{350, -1}: "expected statement or one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '~', ++, --, _Alignof, asm, break, case, character constant, continue, default, do, floating-point constant, for, goto, identifier, if, integer constant, long character constant, long string constant, return, sizeof, string literal, switch, while]",
  1662  		{360, -1}: "expected statement or one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '~', ++, --, _Alignof, asm, break, case, character constant, continue, default, do, floating-point constant, for, goto, identifier, if, integer constant, long character constant, long string constant, return, sizeof, string literal, switch, while]",
  1663  		{364, -1}: "expected statement or one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '~', ++, --, _Alignof, asm, break, case, character constant, continue, default, do, floating-point constant, for, goto, identifier, if, integer constant, long character constant, long string constant, return, sizeof, string literal, switch, while]",
  1664  		{368, -1}: "expected statement or one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '~', ++, --, _Alignof, asm, break, case, character constant, continue, default, do, floating-point constant, for, goto, identifier, if, integer constant, long character constant, long string constant, return, sizeof, string literal, switch, while]",
  1665  		{370, -1}: "expected statement or one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '~', ++, --, _Alignof, asm, break, case, character constant, continue, default, do, floating-point constant, for, goto, identifier, if, integer constant, long character constant, long string constant, return, sizeof, string literal, switch, while]",
  1666  		{375, -1}: "expected statement or one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '~', ++, --, _Alignof, asm, break, case, character constant, continue, default, do, floating-point constant, for, goto, identifier, if, integer constant, long character constant, long string constant, return, sizeof, string literal, switch, while]",
  1667  		{378, -1}: "expected statement or one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '~', ++, --, _Alignof, asm, break, case, character constant, continue, default, do, floating-point constant, for, goto, identifier, if, integer constant, long character constant, long string constant, return, sizeof, string literal, switch, while]",
  1668  		{416, -1}: "expected statement or one of [&&, '!', '&', '(', '*', '+', '-', ';', '{', '~', ++, --, _Alignof, asm, break, case, character constant, continue, default, do, floating-point constant, for, goto, identifier, if, integer constant, long character constant, long string constant, return, sizeof, string literal, switch, while]",
  1669  		{53, -1}:  "expected string literal",
  1670  		{295, -1}: "expected string literal",
  1671  		{300, -1}: "expected string literal",
  1672  		{305, -1}: "expected string literal",
  1673  		{468, -1}: "expected struct declaration list or one of ['}', _Bool, _Complex, _Static_assert, char, const, double, enum, float, int, long, restrict, short, signed, struct, typedefname, typeof, union, unsigned, void, volatile]",
  1674  		{469, -1}: "expected struct declaration list or one of [_Bool, _Complex, _Static_assert, char, const, double, enum, float, int, long, restrict, short, signed, struct, typedefname, typeof, union, unsigned, void, volatile]",
  1675  		{471, -1}: "expected struct declaration or one of ['}', _Bool, _Complex, _Static_assert, char, const, double, enum, float, int, long, restrict, short, signed, struct, typedefname, typeof, union, unsigned, void, volatile]",
  1676  		{473, -1}: "expected struct declarator list or one of ['(', '*', ':', ';', identifier]",
  1677  		{483, -1}: "expected struct declarator or one of ['(', '*', ':', identifier]",
  1678  		{533, -1}: "expected token list or one of ['\\n', ppother]",
  1679  		{510, -1}: "expected token list or ppother",
  1680  		{513, -1}: "expected token list or ppother",
  1681  		{519, -1}: "expected token list or ppother",
  1682  		{520, -1}: "expected token list or ppother",
  1683  		{523, -1}: "expected token list or ppother",
  1684  		{576, -1}: "expected token list or ppother",
  1685  		{4, -1}:   "expected translation unit or one of ['(', '*', ';', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1686  		{5, -1}:   "expected translation unit or one of ['(', '*', ';', _Bool, _Complex, _Noreturn, _Static_assert, asm, auto, char, const, double, enum, extern, float, identifier, inline, int, long, register, restrict, short, signed, static, struct, typedef, typedefname, typeof, union, unsigned, void, volatile]",
  1687  		{78, -1}:  "expected type name or one of [_Bool, _Complex, char, const, double, enum, float, int, long, restrict, short, signed, struct, typedefname, typeof, union, unsigned, void, volatile]",
  1688  		{99, -1}:  "expected type qualifier or one of [&&, '!', '&', '(', ')', '*', '+', ',', '-', '[', '~', ++, --, _Alignof, character constant, const, floating-point constant, identifier, integer constant, long character constant, long string constant, restrict, sizeof, string literal, volatile]",
  1689  		{224, -1}: "expected type qualifier or one of [&&, '!', '&', '(', '*', '+', '-', ']', '~', ++, --, _Alignof, character constant, const, floating-point constant, identifier, integer constant, long character constant, long string constant, restrict, sizeof, static, string literal, volatile]",
  1690  		{352, -1}: "expected while",
  1691  		{3, 51}:   "unexpected EOF",
  1692  		{2, 51}:   "unexpected EOF",
  1693  		{4, 51}:   "unexpected EOF",
  1694  	}
  1695  
  1696  	yyParseTab = [590][]uint16{
  1697  		// 0
  1698  		{218: 331, 227: 330, 229: 329, 232: 332},
  1699  		{51: 328},
  1700  		{84: 327, 94: 327, 100: 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 204: 832},
  1701  		{325, 325, 325, 325, 325, 325, 325, 325, 325, 12: 325, 14: 325, 325, 325, 325, 325, 325, 325, 325, 325, 209: 830},
  1702  		{323, 323, 323, 9: 323, 23: 323, 323, 323, 27: 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 44: 323, 323, 323, 323, 323, 323, 323, 57: 323, 323, 210: 333},
  1703  		// 5
  1704  		{75, 75, 75, 9: 374, 23: 367, 365, 366, 27: 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 44: 343, 344, 342, 368, 369, 345, 341, 57: 376, 377, 113: 339, 117: 358, 361, 357, 338, 122: 373, 124: 335, 340, 127: 337, 138: 336, 144: 372, 175: 375, 191: 370, 193: 371, 233: 334},
  1705  		{75, 75, 75, 9: 374, 23: 367, 365, 366, 27: 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 44: 343, 344, 342, 368, 369, 345, 341, 322, 57: 376, 377, 113: 339, 117: 358, 361, 357, 338, 122: 373, 124: 335, 340, 127: 337, 138: 336, 144: 372, 175: 375, 191: 829, 193: 371},
  1706  		{165, 412, 165, 9: 238, 133: 713, 136: 712, 825, 171: 709, 196: 710, 708},
  1707  		{247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 12: 247, 14: 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 44: 247, 247, 247, 247, 247, 247, 247, 247, 53: 247, 57: 247, 247, 85: 247, 247, 247, 247, 247, 247, 247, 247, 247, 95: 247, 247},
  1708  		{242, 242, 242, 9: 242, 242, 242, 13: 242, 23: 367, 365, 366, 27: 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 44: 343, 344, 342, 368, 369, 345, 341, 113: 339, 117: 358, 361, 357, 338, 124: 821, 340, 127: 337, 158: 824},
  1709  		// 10
  1710  		{242, 242, 242, 9: 242, 242, 242, 13: 242, 23: 367, 365, 366, 27: 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 44: 343, 344, 342, 368, 369, 345, 341, 113: 339, 117: 358, 361, 357, 338, 124: 821, 340, 127: 337, 158: 823},
  1711  		{242, 242, 242, 9: 242, 242, 242, 13: 242, 23: 367, 365, 366, 27: 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 44: 343, 344, 342, 368, 369, 345, 341, 113: 339, 117: 358, 361, 357, 338, 124: 821, 340, 127: 337, 158: 822},
  1712  		{242, 242, 242, 9: 242, 242, 242, 13: 242, 23: 367, 365, 366, 27: 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 44: 343, 344, 342, 368, 369, 345, 341, 113: 339, 117: 358, 361, 357, 338, 124: 821, 340, 127: 337, 158: 820},
  1713  		{233, 233, 233, 9: 233, 233, 233, 13: 233, 23: 233, 233, 233, 27: 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 44: 233, 233, 233, 233, 233, 233, 233},
  1714  		{232, 232, 232, 9: 232, 232, 232, 13: 232, 23: 232, 232, 232, 27: 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 44: 232, 232, 232, 232, 232, 232, 232},
  1715  		// 15
  1716  		{231, 231, 231, 9: 231, 231, 231, 13: 231, 23: 231, 231, 231, 27: 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 44: 231, 231, 231, 231, 231, 231, 231},
  1717  		{230, 230, 230, 9: 230, 230, 230, 13: 230, 23: 230, 230, 230, 27: 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 44: 230, 230, 230, 230, 230, 230, 230},
  1718  		{229, 229, 229, 9: 229, 229, 229, 13: 229, 23: 229, 229, 229, 27: 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 44: 229, 229, 229, 229, 229, 229, 229},
  1719  		{228, 228, 228, 9: 228, 228, 228, 13: 228, 23: 228, 228, 228, 27: 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228},
  1720  		{227, 227, 227, 9: 227, 227, 227, 13: 227, 23: 227, 227, 227, 27: 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227},
  1721  		// 20
  1722  		{226, 226, 226, 9: 226, 226, 226, 13: 226, 23: 226, 226, 226, 27: 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226},
  1723  		{225, 225, 225, 9: 225, 225, 225, 13: 225, 23: 225, 225, 225, 27: 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225},
  1724  		{224, 224, 224, 9: 224, 224, 224, 13: 224, 23: 224, 224, 224, 27: 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224},
  1725  		{223, 223, 223, 9: 223, 223, 223, 13: 223, 23: 223, 223, 223, 27: 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223},
  1726  		{222, 222, 222, 9: 222, 222, 222, 13: 222, 23: 222, 222, 222, 27: 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222},
  1727  		// 25
  1728  		{221, 221, 221, 9: 221, 221, 221, 13: 221, 23: 221, 221, 221, 27: 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221},
  1729  		{220, 220, 220, 9: 220, 220, 220, 13: 220, 23: 220, 220, 220, 27: 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220},
  1730  		{219, 219, 219, 9: 219, 219, 219, 13: 219, 23: 219, 219, 219, 27: 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219},
  1731  		{218, 218, 218, 9: 218, 218, 218, 13: 218, 23: 218, 218, 218, 27: 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218},
  1732  		{217, 217, 217, 9: 217, 217, 217, 13: 217, 23: 217, 217, 217, 27: 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217},
  1733  		// 30
  1734  		{216, 216, 216, 9: 216, 216, 216, 13: 216, 23: 216, 216, 216, 27: 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216},
  1735  		{215, 215, 215, 9: 215, 215, 215, 13: 215, 23: 215, 215, 215, 27: 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215},
  1736  		{815},
  1737  		{2: 795, 53: 147, 195: 794},
  1738  		{2: 208, 53: 208},
  1739  		// 35
  1740  		{2: 207, 53: 207},
  1741  		{2: 781, 53: 147, 195: 780},
  1742  		{184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 27: 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 55: 184},
  1743  		{183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 27: 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 55: 183},
  1744  		{182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 27: 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 55: 182},
  1745  		// 40
  1746  		{181, 181, 181, 9: 181, 181, 181, 13: 181, 23: 181, 181, 181, 27: 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 44: 181, 181, 181, 181, 181, 181, 181},
  1747  		{180, 180, 180, 9: 180, 180, 180, 13: 180, 23: 180, 180, 180, 27: 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 44: 180, 180, 180, 180, 180, 180, 180},
  1748  		{83, 83, 83, 9: 83, 23: 83, 83, 83, 27: 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 44: 83, 83, 83, 83, 83, 83, 83, 83, 57: 83, 83},
  1749  		{81, 81, 81, 9: 81, 23: 81, 81, 81, 27: 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 44: 81, 81, 81, 81, 81, 81, 81, 81, 57: 81, 81},
  1750  		{80, 80, 80, 9: 80, 23: 80, 80, 80, 27: 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 44: 80, 80, 80, 80, 80, 80, 80, 80, 57: 80, 80},
  1751  		// 45
  1752  		{9: 779},
  1753  		{78, 78, 78, 9: 78, 23: 78, 78, 78, 27: 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 44: 78, 78, 78, 78, 78, 78, 78, 78, 57: 78, 78},
  1754  		{165, 412, 165, 133: 713, 136: 712, 766},
  1755  		{60, 23: 614, 203: 763},
  1756  		{378},
  1757  		// 50
  1758  		{250, 250, 250, 250, 250, 250, 250, 250, 250, 12: 250, 14: 250, 250, 250, 250, 250, 250, 250, 250, 250, 145: 379, 380},
  1759  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 393},
  1760  		{11: 381},
  1761  		{12: 382},
  1762  		{10: 383},
  1763  		// 55
  1764  		{9: 384},
  1765  		{44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 12: 44, 14: 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44: 44, 44, 44, 44, 44, 44, 44, 44, 53: 44, 57: 44, 44, 85: 44, 44, 44, 44, 44, 44, 44, 44, 44, 95: 44, 44},
  1766  		{316, 316, 3: 316, 316, 316, 316, 316, 316, 316, 316, 316, 13: 316, 26: 316, 43: 316, 51: 316, 316, 55: 316, 316, 59: 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316},
  1767  		{315, 315, 3: 315, 315, 315, 315, 315, 315, 315, 315, 315, 13: 315, 26: 315, 43: 315, 51: 315, 315, 55: 315, 315, 59: 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315},
  1768  		{314, 314, 3: 314, 314, 314, 314, 314, 314, 314, 314, 314, 13: 314, 26: 314, 43: 314, 51: 314, 314, 55: 314, 314, 59: 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314},
  1769  		// 60
  1770  		{313, 313, 3: 313, 313, 313, 313, 313, 313, 313, 313, 313, 13: 313, 26: 313, 43: 313, 51: 313, 313, 55: 313, 313, 59: 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313},
  1771  		{312, 312, 3: 312, 312, 312, 312, 312, 312, 312, 312, 312, 13: 312, 26: 312, 43: 312, 51: 312, 312, 55: 312, 312, 59: 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312},
  1772  		{311, 311, 3: 311, 311, 311, 311, 311, 311, 311, 311, 311, 13: 311, 26: 311, 43: 311, 51: 311, 311, 55: 311, 311, 59: 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311},
  1773  		{310, 310, 3: 310, 310, 310, 310, 310, 310, 310, 310, 310, 13: 310, 26: 310, 43: 310, 51: 310, 310, 55: 310, 310, 59: 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310},
  1774  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 145, 145, 145, 27: 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 53: 582, 478, 114: 579, 123: 581, 155: 408, 162: 761},
  1775  		// 65
  1776  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 249, 11: 249, 13: 430, 26: 249, 43: 249, 51: 249, 455, 55: 249, 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1777  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 760},
  1778  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 759},
  1779  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 758},
  1780  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 521},
  1781  		// 70
  1782  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 757},
  1783  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 756},
  1784  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 755},
  1785  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 754},
  1786  		{577, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 578},
  1787  		// 75
  1788  		{406},
  1789  		{2: 405},
  1790  		{258, 258, 3: 258, 258, 258, 258, 258, 258, 258, 258, 258, 13: 258, 26: 258, 43: 258, 51: 258, 258, 55: 258, 258, 59: 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258},
  1791  		{23: 145, 145, 145, 27: 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 155: 408, 162: 407},
  1792  		{10: 576},
  1793  		// 80
  1794  		{23: 367, 365, 366, 27: 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 113: 410, 117: 358, 361, 357, 409, 153: 411},
  1795  		{199, 199, 199, 9: 199, 199, 13: 199, 23: 367, 365, 366, 27: 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 199, 113: 410, 117: 358, 361, 357, 409, 153: 574, 200: 575},
  1796  		{199, 199, 199, 9: 199, 199, 13: 199, 23: 367, 365, 366, 27: 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 199, 113: 410, 117: 358, 361, 357, 409, 153: 574, 200: 573},
  1797  		{165, 412, 10: 141, 13: 165, 133: 413, 136: 415, 156: 416, 180: 414},
  1798  		{161, 161, 161, 10: 161, 161, 13: 161, 23: 367, 365, 366, 113: 423, 154: 427, 163: 571},
  1799  		// 85
  1800  		{164, 2: 164, 10: 143, 143, 13: 164},
  1801  		{10: 144},
  1802  		{418, 13: 129, 185: 417, 419},
  1803  		{10: 140, 140},
  1804  		{567, 10: 142, 142, 13: 128},
  1805  		// 90
  1806  		{165, 412, 10: 133, 13: 165, 23: 133, 133, 133, 27: 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 44: 133, 133, 133, 133, 133, 133, 133, 133: 413, 136: 415, 156: 523, 174: 524},
  1807  		{13: 420},
  1808  		{392, 422, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 367, 365, 366, 44: 426, 54: 421, 256, 113: 423, 154: 424, 169: 425},
  1809  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 13: 430, 52: 455, 55: 255, 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1810  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 521, 522},
  1811  		// 95
  1812  		{163, 163, 163, 163, 163, 163, 163, 163, 163, 10: 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 44: 163, 55: 163},
  1813  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 367, 365, 366, 44: 517, 54: 421, 256, 113: 514, 169: 516},
  1814  		{55: 515},
  1815  		{161, 161, 161, 161, 161, 161, 161, 161, 161, 12: 161, 14: 161, 161, 161, 161, 161, 161, 161, 161, 161, 367, 365, 366, 113: 423, 154: 427, 163: 428},
  1816  		{160, 160, 160, 160, 160, 160, 160, 160, 160, 10: 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 367, 365, 366, 113: 514},
  1817  		// 100
  1818  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 429},
  1819  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 13: 430, 52: 455, 55: 466, 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1820  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 478, 114: 512},
  1821  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 10: 318, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 506, 214: 507, 508},
  1822  		{2: 505},
  1823  		// 105
  1824  		{2: 504},
  1825  		{304, 304, 3: 304, 304, 304, 304, 304, 304, 304, 304, 304, 13: 304, 26: 304, 43: 304, 51: 304, 304, 55: 304, 304, 59: 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304},
  1826  		{303, 303, 3: 303, 303, 303, 303, 303, 303, 303, 303, 303, 13: 303, 26: 303, 43: 303, 51: 303, 303, 55: 303, 303, 59: 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303},
  1827  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 503},
  1828  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 502},
  1829  		// 110
  1830  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 501},
  1831  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 500},
  1832  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 499},
  1833  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 498},
  1834  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 497},
  1835  		// 115
  1836  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 496},
  1837  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 495},
  1838  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 494},
  1839  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 493},
  1840  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 492},
  1841  		// 120
  1842  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 491},
  1843  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 490},
  1844  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 489},
  1845  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 488},
  1846  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 487},
  1847  		// 125
  1848  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 486},
  1849  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 43: 480, 54: 478, 114: 479},
  1850  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 477},
  1851  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 476},
  1852  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 475},
  1853  		// 130
  1854  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 474},
  1855  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 473},
  1856  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 472},
  1857  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 471},
  1858  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 470},
  1859  		// 135
  1860  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 469},
  1861  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 468},
  1862  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 467},
  1863  		{136, 10: 136, 136, 13: 136},
  1864  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 261, 261, 261, 13: 430, 26: 261, 43: 261, 51: 261, 455, 55: 261, 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1865  		// 140
  1866  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 262, 262, 262, 13: 430, 26: 262, 43: 262, 51: 262, 455, 55: 262, 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1867  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 263, 263, 263, 13: 430, 26: 263, 43: 263, 51: 263, 455, 55: 263, 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1868  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 264, 264, 264, 13: 430, 26: 264, 43: 264, 51: 264, 455, 55: 264, 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1869  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 265, 265, 265, 13: 430, 26: 265, 43: 265, 51: 265, 455, 55: 265, 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1870  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 266, 266, 266, 13: 430, 26: 266, 43: 266, 51: 266, 455, 55: 266, 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1871  		// 145
  1872  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 267, 267, 267, 13: 430, 26: 267, 43: 267, 51: 267, 455, 55: 267, 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1873  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 268, 268, 268, 13: 430, 26: 268, 43: 268, 51: 268, 455, 55: 268, 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1874  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 269, 269, 269, 13: 430, 26: 269, 43: 269, 51: 269, 455, 55: 269, 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1875  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 270, 270, 270, 13: 430, 26: 270, 43: 270, 51: 270, 455, 55: 270, 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1876  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 271, 271, 271, 13: 430, 26: 271, 43: 271, 51: 271, 455, 55: 271, 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1877  		// 150
  1878  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 254, 254, 254, 13: 430, 43: 254, 52: 455, 55: 254, 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1879  		{11: 483, 43: 482},
  1880  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 481},
  1881  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 257, 257, 257, 13: 430, 26: 257, 43: 257, 51: 257, 257, 55: 257, 432, 59: 438, 437, 443, 444, 454, 450, 451, 257, 257, 433, 257, 447, 446, 445, 441, 257, 257, 257, 448, 257, 453, 442, 257, 257, 257},
  1882  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 485},
  1883  		// 155
  1884  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 484},
  1885  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 253, 253, 253, 13: 430, 43: 253, 52: 455, 55: 253, 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1886  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 272, 272, 272, 13: 430, 26: 272, 43: 272, 51: 272, 272, 55: 272, 432, 59: 438, 437, 443, 444, 454, 450, 451, 272, 272, 433, 272, 447, 446, 445, 441, 272, 272, 272, 448, 272, 453, 442, 272, 272, 272},
  1887  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 273, 273, 273, 13: 430, 26: 273, 43: 273, 51: 273, 273, 55: 273, 432, 59: 438, 437, 443, 444, 273, 450, 451, 273, 273, 433, 273, 447, 446, 445, 441, 273, 273, 273, 448, 273, 273, 442, 273, 273, 273},
  1888  		{431, 436, 3: 449, 439, 440, 274, 435, 434, 274, 274, 274, 13: 430, 26: 274, 43: 274, 51: 274, 274, 55: 274, 432, 59: 438, 437, 443, 444, 274, 450, 451, 274, 274, 433, 274, 447, 446, 445, 441, 274, 274, 274, 448, 274, 274, 442, 274, 274, 274},
  1889  		// 160
  1890  		{431, 436, 3: 449, 439, 440, 275, 435, 434, 275, 275, 275, 13: 430, 26: 275, 43: 275, 51: 275, 275, 55: 275, 432, 59: 438, 437, 443, 444, 275, 450, 275, 275, 275, 433, 275, 447, 446, 445, 441, 275, 275, 275, 448, 275, 275, 442, 275, 275, 275},
  1891  		{431, 436, 3: 449, 439, 440, 276, 435, 434, 276, 276, 276, 13: 430, 26: 276, 43: 276, 51: 276, 276, 55: 276, 432, 59: 438, 437, 443, 444, 276, 276, 276, 276, 276, 433, 276, 447, 446, 445, 441, 276, 276, 276, 448, 276, 276, 442, 276, 276, 276},
  1892  		{431, 436, 3: 277, 439, 440, 277, 435, 434, 277, 277, 277, 13: 430, 26: 277, 43: 277, 51: 277, 277, 55: 277, 432, 59: 438, 437, 443, 444, 277, 277, 277, 277, 277, 433, 277, 447, 446, 445, 441, 277, 277, 277, 448, 277, 277, 442, 277, 277, 277},
  1893  		{431, 436, 3: 278, 439, 440, 278, 435, 434, 278, 278, 278, 13: 430, 26: 278, 43: 278, 51: 278, 278, 55: 278, 432, 59: 438, 437, 443, 444, 278, 278, 278, 278, 278, 433, 278, 278, 446, 445, 441, 278, 278, 278, 278, 278, 278, 442, 278, 278, 278},
  1894  		{431, 436, 3: 279, 439, 440, 279, 435, 434, 279, 279, 279, 13: 430, 26: 279, 43: 279, 51: 279, 279, 55: 279, 432, 59: 438, 437, 443, 444, 279, 279, 279, 279, 279, 433, 279, 279, 446, 445, 441, 279, 279, 279, 279, 279, 279, 442, 279, 279, 279},
  1895  		// 165
  1896  		{431, 436, 3: 280, 439, 440, 280, 435, 434, 280, 280, 280, 13: 430, 26: 280, 43: 280, 51: 280, 280, 55: 280, 432, 59: 438, 437, 280, 280, 280, 280, 280, 280, 280, 433, 280, 280, 280, 280, 441, 280, 280, 280, 280, 280, 280, 442, 280, 280, 280},
  1897  		{431, 436, 3: 281, 439, 440, 281, 435, 434, 281, 281, 281, 13: 430, 26: 281, 43: 281, 51: 281, 281, 55: 281, 432, 59: 438, 437, 281, 281, 281, 281, 281, 281, 281, 433, 281, 281, 281, 281, 441, 281, 281, 281, 281, 281, 281, 442, 281, 281, 281},
  1898  		{431, 436, 3: 282, 439, 440, 282, 435, 434, 282, 282, 282, 13: 430, 26: 282, 43: 282, 51: 282, 282, 55: 282, 432, 59: 438, 437, 282, 282, 282, 282, 282, 282, 282, 433, 282, 282, 282, 282, 441, 282, 282, 282, 282, 282, 282, 442, 282, 282, 282},
  1899  		{431, 436, 3: 283, 439, 440, 283, 435, 434, 283, 283, 283, 13: 430, 26: 283, 43: 283, 51: 283, 283, 55: 283, 432, 59: 438, 437, 283, 283, 283, 283, 283, 283, 283, 433, 283, 283, 283, 283, 441, 283, 283, 283, 283, 283, 283, 442, 283, 283, 283},
  1900  		{431, 436, 3: 284, 439, 440, 284, 435, 434, 284, 284, 284, 13: 430, 26: 284, 43: 284, 51: 284, 284, 55: 284, 432, 59: 438, 437, 284, 284, 284, 284, 284, 284, 284, 433, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284},
  1901  		// 170
  1902  		{431, 436, 3: 285, 439, 440, 285, 435, 434, 285, 285, 285, 13: 430, 26: 285, 43: 285, 51: 285, 285, 55: 285, 432, 59: 438, 437, 285, 285, 285, 285, 285, 285, 285, 433, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285},
  1903  		{431, 436, 3: 286, 286, 286, 286, 435, 434, 286, 286, 286, 13: 430, 26: 286, 43: 286, 51: 286, 286, 55: 286, 432, 59: 438, 437, 286, 286, 286, 286, 286, 286, 286, 433, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286},
  1904  		{431, 436, 3: 287, 287, 287, 287, 435, 434, 287, 287, 287, 13: 430, 26: 287, 43: 287, 51: 287, 287, 55: 287, 432, 59: 438, 437, 287, 287, 287, 287, 287, 287, 287, 433, 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 287},
  1905  		{431, 288, 3: 288, 288, 288, 288, 435, 434, 288, 288, 288, 13: 430, 26: 288, 43: 288, 51: 288, 288, 55: 288, 432, 59: 288, 288, 288, 288, 288, 288, 288, 288, 288, 433, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288},
  1906  		{431, 289, 3: 289, 289, 289, 289, 435, 434, 289, 289, 289, 13: 430, 26: 289, 43: 289, 51: 289, 289, 55: 289, 432, 59: 289, 289, 289, 289, 289, 289, 289, 289, 289, 433, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289},
  1907  		// 175
  1908  		{431, 290, 3: 290, 290, 290, 290, 435, 434, 290, 290, 290, 13: 430, 26: 290, 43: 290, 51: 290, 290, 55: 290, 432, 59: 290, 290, 290, 290, 290, 290, 290, 290, 290, 433, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290},
  1909  		{305, 305, 3: 305, 305, 305, 305, 305, 305, 305, 305, 305, 13: 305, 26: 305, 43: 305, 51: 305, 305, 55: 305, 305, 59: 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305},
  1910  		{306, 306, 3: 306, 306, 306, 306, 306, 306, 306, 306, 306, 13: 306, 26: 306, 43: 306, 51: 306, 306, 55: 306, 306, 59: 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306},
  1911  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 10: 320, 320, 13: 430, 52: 455, 56: 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1912  		{10: 317, 510},
  1913  		// 180
  1914  		{10: 509},
  1915  		{307, 307, 3: 307, 307, 307, 307, 307, 307, 307, 307, 307, 13: 307, 26: 307, 43: 307, 51: 307, 307, 55: 307, 307, 59: 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307},
  1916  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 511},
  1917  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 10: 319, 319, 13: 430, 52: 455, 56: 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1918  		{11: 483, 55: 513},
  1919  		// 185
  1920  		{308, 308, 3: 308, 308, 308, 308, 308, 308, 308, 308, 308, 13: 308, 26: 308, 43: 308, 51: 308, 308, 55: 308, 308, 59: 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308},
  1921  		{162, 162, 162, 162, 162, 162, 162, 162, 162, 10: 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 44: 162, 55: 162},
  1922  		{138, 10: 138, 138, 13: 138},
  1923  		{55: 520},
  1924  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 518},
  1925  		// 190
  1926  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 13: 430, 52: 455, 55: 519, 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1927  		{135, 10: 135, 135, 13: 135},
  1928  		{137, 10: 137, 137, 13: 137},
  1929  		{431, 298, 3: 298, 298, 298, 298, 435, 434, 298, 298, 298, 13: 430, 26: 298, 43: 298, 51: 298, 298, 55: 298, 432, 59: 298, 298, 298, 298, 298, 298, 298, 298, 298, 433, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298},
  1930  		{134, 10: 134, 134, 13: 134},
  1931  		// 195
  1932  		{10: 566},
  1933  		{10: 157, 23: 367, 365, 366, 27: 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 44: 343, 344, 342, 368, 369, 345, 341, 113: 339, 117: 358, 361, 357, 338, 124: 528, 340, 127: 337, 161: 527, 172: 525, 526, 199: 529},
  1934  		{10: 159, 563},
  1935  		{10: 156},
  1936  		{10: 155, 155},
  1937  		// 200
  1938  		{165, 412, 165, 10: 141, 141, 13: 165, 133: 413, 136: 531, 532, 156: 416, 180: 533},
  1939  		{10: 530},
  1940  		{132, 10: 132, 132, 13: 132},
  1941  		{536, 2: 535, 13: 129, 185: 417, 419, 534},
  1942  		{10: 153, 153},
  1943  		// 205
  1944  		{10: 152, 152},
  1945  		{540, 9: 179, 179, 179, 13: 539, 23: 179, 179, 179, 27: 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 52: 179, 179, 57: 179, 179},
  1946  		{176, 9: 176, 176, 176, 13: 176, 23: 176, 176, 176, 27: 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 52: 176, 176, 57: 176, 176},
  1947  		{165, 412, 165, 10: 133, 13: 165, 23: 133, 133, 133, 27: 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 44: 133, 133, 133, 133, 133, 133, 133, 133: 413, 136: 531, 537, 156: 523, 174: 524},
  1948  		{10: 538},
  1949  		// 210
  1950  		{175, 9: 175, 175, 175, 13: 175, 23: 175, 175, 175, 27: 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 52: 175, 175, 57: 175, 175},
  1951  		{161, 161, 161, 161, 161, 161, 161, 161, 161, 12: 161, 14: 161, 161, 161, 161, 161, 161, 161, 161, 161, 367, 365, 366, 44: 551, 55: 161, 113: 423, 154: 552, 163: 550},
  1952  		{2: 543, 10: 149, 23: 170, 170, 170, 27: 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 44: 170, 170, 170, 170, 170, 170, 170, 170: 544, 194: 542, 213: 541},
  1953  		{23: 367, 365, 366, 27: 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 44: 343, 344, 342, 368, 369, 345, 341, 113: 339, 117: 358, 361, 357, 338, 124: 528, 340, 127: 337, 161: 527, 172: 525, 548},
  1954  		{10: 547},
  1955  		// 215
  1956  		{10: 151, 151, 147: 151},
  1957  		{10: 148, 545},
  1958  		{2: 546},
  1959  		{10: 150, 150, 147: 150},
  1960  		{168, 9: 168, 168, 168, 13: 168, 23: 168, 168, 168, 27: 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 52: 168, 168, 57: 168, 168},
  1961  		// 220
  1962  		{10: 549},
  1963  		{169, 9: 169, 169, 169, 13: 169, 23: 169, 169, 169, 27: 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 52: 169, 169, 57: 169, 169},
  1964  		{392, 559, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 421, 256, 169: 560},
  1965  		{161, 161, 161, 161, 161, 161, 161, 161, 161, 12: 161, 14: 161, 161, 161, 161, 161, 161, 161, 161, 161, 367, 365, 366, 113: 423, 154: 427, 163: 556},
  1966  		{160, 160, 160, 160, 160, 160, 160, 160, 160, 12: 160, 14: 160, 160, 160, 160, 160, 160, 160, 160, 160, 367, 365, 366, 44: 553, 55: 160, 113: 514},
  1967  		// 225
  1968  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 554},
  1969  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 13: 430, 52: 455, 55: 555, 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1970  		{172, 9: 172, 172, 172, 13: 172, 23: 172, 172, 172, 27: 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 52: 172, 172, 57: 172, 172},
  1971  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 557},
  1972  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 13: 430, 52: 455, 55: 558, 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  1973  		// 230
  1974  		{173, 9: 173, 173, 173, 13: 173, 23: 173, 173, 173, 27: 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 52: 173, 173, 57: 173, 173},
  1975  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 521, 562},
  1976  		{55: 561},
  1977  		{174, 9: 174, 174, 174, 13: 174, 23: 174, 174, 174, 27: 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 52: 174, 174, 57: 174, 174},
  1978  		{171, 9: 171, 171, 171, 13: 171, 23: 171, 171, 171, 27: 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 52: 171, 171, 57: 171, 171},
  1979  		// 235
  1980  		{23: 367, 365, 366, 27: 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 44: 343, 344, 342, 368, 369, 345, 341, 113: 339, 117: 358, 361, 357, 338, 124: 528, 340, 127: 337, 147: 564, 161: 565},
  1981  		{10: 158},
  1982  		{10: 154, 154},
  1983  		{139, 10: 139, 139, 13: 139},
  1984  		{10: 131, 23: 131, 131, 131, 27: 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 44: 131, 131, 131, 131, 131, 131, 131, 205: 568},
  1985  		// 240
  1986  		{10: 157, 23: 367, 365, 366, 27: 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 44: 343, 344, 342, 368, 369, 345, 341, 113: 339, 117: 358, 361, 357, 338, 124: 528, 340, 127: 337, 161: 527, 172: 525, 526, 199: 569},
  1987  		{10: 570},
  1988  		{130, 10: 130, 130, 13: 130},
  1989  		{167, 412, 167, 10: 167, 167, 13: 167, 133: 572},
  1990  		{166, 2: 166, 10: 166, 166, 13: 166},
  1991  		// 245
  1992  		{200, 200, 200, 9: 200, 200, 13: 200, 43: 200},
  1993  		{198, 198, 198, 9: 198, 198, 13: 198, 43: 198},
  1994  		{201, 201, 201, 9: 201, 201, 13: 201, 43: 201},
  1995  		{260, 260, 3: 260, 260, 260, 260, 260, 260, 260, 260, 260, 13: 260, 26: 260, 43: 260, 51: 260, 260, 55: 260, 260, 59: 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260},
  1996  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 145, 145, 145, 27: 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 53: 582, 478, 114: 579, 123: 581, 155: 408, 162: 580},
  1997  		// 250
  1998  		{431, 293, 3: 293, 293, 293, 293, 435, 434, 293, 293, 293, 13: 430, 26: 293, 43: 293, 51: 293, 293, 55: 293, 432, 59: 293, 293, 293, 293, 293, 293, 293, 293, 293, 433, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293},
  1999  		{10: 753, 483},
  2000  		{10: 747},
  2001  		{10: 746},
  2002  		{104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 12: 104, 14: 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 44: 104, 104, 104, 104, 104, 104, 104, 53: 104, 57: 104, 104, 85: 104, 104, 104, 104, 104, 104, 104, 104, 104, 95: 104, 104, 206: 583},
  2003  		// 255
  2004  		{392, 397, 584, 396, 398, 399, 404, 395, 394, 252, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 367, 365, 366, 100, 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 44: 343, 344, 342, 368, 369, 345, 341, 53: 582, 478, 57: 611, 377, 85: 607, 604, 609, 594, 608, 595, 605, 606, 602, 95: 610, 603, 113: 339, 585, 117: 358, 361, 357, 338, 601, 612, 588, 586, 340, 127: 337, 593, 589, 591, 592, 587, 134: 590, 600, 138: 336, 144: 599, 181: 597, 216: 598, 596},
  2005  		{316, 316, 3: 316, 316, 316, 316, 316, 316, 316, 11: 316, 13: 316, 43: 744, 52: 316, 56: 316, 59: 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316},
  2006  		{9: 251, 251, 483},
  2007  		{165, 412, 165, 9: 238, 133: 713, 136: 712, 711, 171: 709, 196: 710, 708},
  2008  		{114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 12: 114, 14: 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 44: 114, 114, 114, 114, 114, 114, 114, 53: 114, 57: 114, 114, 85: 114, 114, 114, 114, 114, 114, 114, 114, 114, 95: 114, 114, 112: 114},
  2009  		// 260
  2010  		{113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 12: 113, 14: 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 44: 113, 113, 113, 113, 113, 113, 113, 53: 113, 57: 113, 113, 85: 113, 113, 113, 113, 113, 113, 113, 113, 113, 95: 113, 113, 112: 113},
  2011  		{112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 12: 112, 14: 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 44: 112, 112, 112, 112, 112, 112, 112, 53: 112, 57: 112, 112, 85: 112, 112, 112, 112, 112, 112, 112, 112, 112, 95: 112, 112, 112: 112},
  2012  		{111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 12: 111, 14: 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 44: 111, 111, 111, 111, 111, 111, 111, 53: 111, 57: 111, 111, 85: 111, 111, 111, 111, 111, 111, 111, 111, 111, 95: 111, 111, 112: 111},
  2013  		{110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 12: 110, 14: 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 44: 110, 110, 110, 110, 110, 110, 110, 53: 110, 57: 110, 110, 85: 110, 110, 110, 110, 110, 110, 110, 110, 110, 95: 110, 110, 112: 110},
  2014  		{109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 12: 109, 14: 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 44: 109, 109, 109, 109, 109, 109, 109, 53: 109, 57: 109, 109, 85: 109, 109, 109, 109, 109, 109, 109, 109, 109, 95: 109, 109, 112: 109},
  2015  		// 265
  2016  		{108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 12: 108, 14: 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 44: 108, 108, 108, 108, 108, 108, 108, 53: 108, 57: 108, 108, 85: 108, 108, 108, 108, 108, 108, 108, 108, 108, 95: 108, 108, 112: 108},
  2017  		{250, 250, 250, 250, 250, 250, 250, 250, 250, 12: 250, 14: 250, 250, 250, 250, 250, 250, 250, 250, 250, 145: 379, 705},
  2018  		{43: 703},
  2019  		{26: 702},
  2020  		{102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 12: 102, 14: 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 44: 102, 102, 102, 102, 102, 102, 102, 53: 102, 57: 102, 102, 85: 102, 102, 102, 102, 102, 102, 102, 102, 102, 95: 102, 102},
  2021  		// 270
  2022  		{392, 397, 584, 396, 398, 399, 404, 395, 394, 252, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 367, 365, 366, 99, 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 44: 343, 344, 342, 368, 369, 345, 341, 53: 582, 478, 57: 611, 377, 85: 607, 604, 609, 594, 608, 595, 605, 606, 602, 95: 610, 603, 113: 339, 585, 117: 358, 361, 357, 338, 601, 612, 588, 586, 340, 127: 337, 593, 589, 591, 592, 587, 134: 590, 600, 138: 336, 144: 599, 181: 701},
  2023  		{98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 12: 98, 14: 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 44: 98, 98, 98, 98, 98, 98, 98, 53: 98, 57: 98, 98, 85: 98, 98, 98, 98, 98, 98, 98, 98, 98, 95: 98, 98},
  2024  		{97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 12: 97, 14: 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 44: 97, 97, 97, 97, 97, 97, 97, 53: 97, 57: 97, 97, 85: 97, 97, 97, 97, 97, 97, 97, 97, 97, 95: 97, 97},
  2025  		{9: 700},
  2026  		{694},
  2027  		// 275
  2028  		{690},
  2029  		{686},
  2030  		{392, 397, 584, 396, 398, 399, 404, 395, 394, 252, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 53: 582, 478, 57: 611, 85: 607, 604, 609, 594, 608, 595, 605, 606, 602, 95: 610, 603, 114: 585, 121: 601, 612, 588, 128: 593, 589, 591, 592, 587, 134: 590, 680},
  2031  		{666},
  2032  		{392, 397, 662, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 663},
  2033  		// 280
  2034  		{9: 661},
  2035  		{9: 660},
  2036  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 252, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 478, 114: 585, 121: 658},
  2037  		{60, 23: 614, 85: 60, 203: 613},
  2038  		{51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 12: 51, 14: 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 44: 51, 51, 51, 51, 51, 51, 51, 53: 51, 57: 51, 51, 85: 51, 51, 51, 51, 51, 51, 51, 51, 51, 95: 51, 51, 112: 51},
  2039  		// 285
  2040  		{615, 85: 616},
  2041  		{59, 85: 59},
  2042  		{12: 618, 164: 643},
  2043  		{617},
  2044  		{12: 618, 164: 619},
  2045  		// 290
  2046  		{10: 63, 12: 63, 43: 63},
  2047  		{12: 620, 43: 621},
  2048  		{10: 62, 12: 62, 43: 62},
  2049  		{43: 622},
  2050  		{12: 55, 626, 149: 624, 623, 157: 625},
  2051  		// 295
  2052  		{12: 639},
  2053  		{10: 57, 57, 43: 57},
  2054  		{11: 629, 43: 630},
  2055  		{2: 627},
  2056  		{55: 628},
  2057  		// 300
  2058  		{12: 54},
  2059  		{12: 55, 626, 149: 638, 623},
  2060  		{12: 631, 182: 632},
  2061  		{10: 53, 53, 43: 53},
  2062  		{11: 633, 43: 634},
  2063  		// 305
  2064  		{12: 637},
  2065  		{2: 543, 170: 635},
  2066  		{10: 636, 545},
  2067  		{47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 12: 47, 14: 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 44: 47, 47, 47, 47, 47, 47, 47, 53: 47, 57: 47, 47, 85: 47, 47, 47, 47, 47, 47, 47, 47, 47, 95: 47, 47, 112: 47},
  2068  		{10: 52, 52, 43: 52},
  2069  		// 310
  2070  		{10: 56, 56, 43: 56},
  2071  		{640},
  2072  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 641},
  2073  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 10: 642, 13: 430, 52: 455, 56: 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  2074  		{10: 58, 58, 43: 58},
  2075  		// 315
  2076  		{10: 644, 12: 620, 43: 645},
  2077  		{61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 12: 61, 14: 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 44: 61, 61, 61, 61, 61, 61, 61, 53: 61, 57: 61, 61, 85: 61, 61, 61, 61, 61, 61, 61, 61, 61, 95: 61, 61, 112: 61},
  2078  		{10: 647, 12: 55, 626, 43: 648, 149: 624, 623, 157: 646},
  2079  		{10: 651, 629, 43: 652},
  2080  		{46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 12: 46, 14: 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 44: 46, 46, 46, 46, 46, 46, 46, 53: 46, 57: 46, 46, 85: 46, 46, 46, 46, 46, 46, 46, 46, 46, 95: 46, 46, 112: 46},
  2081  		// 320
  2082  		{12: 55, 626, 149: 624, 623, 157: 649},
  2083  		{10: 650, 629},
  2084  		{45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 12: 45, 14: 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 44: 45, 45, 45, 45, 45, 45, 45, 53: 45, 57: 45, 45, 85: 45, 45, 45, 45, 45, 45, 45, 45, 45, 95: 45, 45, 112: 45},
  2085  		{50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 12: 50, 14: 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 44: 50, 50, 50, 50, 50, 50, 50, 53: 50, 57: 50, 50, 85: 50, 50, 50, 50, 50, 50, 50, 50, 50, 95: 50, 50, 112: 50},
  2086  		{12: 55, 626, 149: 624, 623, 157: 653},
  2087  		// 325
  2088  		{10: 654, 629, 43: 655},
  2089  		{49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 12: 49, 14: 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 44: 49, 49, 49, 49, 49, 49, 49, 53: 49, 57: 49, 49, 85: 49, 49, 49, 49, 49, 49, 49, 49, 49, 95: 49, 49, 112: 49},
  2090  		{12: 631, 182: 656},
  2091  		{10: 657, 633},
  2092  		{48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 12: 48, 14: 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 44: 48, 48, 48, 48, 48, 48, 48, 53: 48, 57: 48, 48, 85: 48, 48, 48, 48, 48, 48, 48, 48, 48, 95: 48, 48, 112: 48},
  2093  		// 330
  2094  		{9: 659},
  2095  		{85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 12: 85, 14: 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 44: 85, 85, 85, 85, 85, 85, 85, 53: 85, 57: 85, 85, 85: 85, 85, 85, 85, 85, 85, 85, 85, 85, 95: 85, 85, 112: 85},
  2096  		{86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 12: 86, 14: 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 44: 86, 86, 86, 86, 86, 86, 86, 53: 86, 57: 86, 86, 85: 86, 86, 86, 86, 86, 86, 86, 86, 86, 95: 86, 86, 112: 86},
  2097  		{87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 12: 87, 14: 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 44: 87, 87, 87, 87, 87, 87, 87, 53: 87, 57: 87, 87, 85: 87, 87, 87, 87, 87, 87, 87, 87, 87, 95: 87, 87, 112: 87},
  2098  		{316, 316, 3: 316, 316, 316, 316, 316, 316, 665, 13: 316, 52: 316, 56: 316, 59: 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316},
  2099  		// 335
  2100  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 664, 13: 430, 52: 455, 56: 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  2101  		{84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 12: 84, 14: 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 44: 84, 84, 84, 84, 84, 84, 84, 53: 84, 57: 84, 84, 85: 84, 84, 84, 84, 84, 84, 84, 84, 84, 95: 84, 84, 112: 84},
  2102  		{88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 12: 88, 14: 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 44: 88, 88, 88, 88, 88, 88, 88, 53: 88, 57: 88, 88, 85: 88, 88, 88, 88, 88, 88, 88, 88, 88, 95: 88, 88, 112: 88},
  2103  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 252, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 367, 365, 366, 27: 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 44: 343, 344, 342, 368, 369, 345, 341, 54: 478, 58: 377, 113: 339, 585, 117: 358, 361, 357, 338, 667, 124: 586, 340, 127: 337, 138: 336, 144: 668},
  2104  		{9: 674},
  2105  		// 340
  2106  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 252, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 478, 114: 585, 121: 669},
  2107  		{9: 670},
  2108  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 10: 252, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 478, 114: 585, 121: 671},
  2109  		{10: 672},
  2110  		{392, 397, 584, 396, 398, 399, 404, 395, 394, 252, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 53: 582, 478, 57: 611, 85: 607, 604, 609, 594, 608, 595, 605, 606, 602, 95: 610, 603, 114: 585, 121: 601, 612, 588, 128: 593, 589, 591, 592, 587, 134: 590, 673},
  2111  		// 345
  2112  		{89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 12: 89, 14: 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 44: 89, 89, 89, 89, 89, 89, 89, 53: 89, 57: 89, 89, 85: 89, 89, 89, 89, 89, 89, 89, 89, 89, 95: 89, 89, 112: 89},
  2113  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 252, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 478, 114: 585, 121: 675},
  2114  		{9: 676},
  2115  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 10: 252, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 478, 114: 585, 121: 677},
  2116  		{10: 678},
  2117  		// 350
  2118  		{392, 397, 584, 396, 398, 399, 404, 395, 394, 252, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 53: 582, 478, 57: 611, 85: 607, 604, 609, 594, 608, 595, 605, 606, 602, 95: 610, 603, 114: 585, 121: 601, 612, 588, 128: 593, 589, 591, 592, 587, 134: 590, 679},
  2119  		{90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 12: 90, 14: 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 44: 90, 90, 90, 90, 90, 90, 90, 53: 90, 57: 90, 90, 85: 90, 90, 90, 90, 90, 90, 90, 90, 90, 95: 90, 90, 112: 90},
  2120  		{86: 681},
  2121  		{682},
  2122  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 478, 114: 683},
  2123  		// 355
  2124  		{10: 684, 483},
  2125  		{9: 685},
  2126  		{91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 12: 91, 14: 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 44: 91, 91, 91, 91, 91, 91, 91, 53: 91, 57: 91, 91, 85: 91, 91, 91, 91, 91, 91, 91, 91, 91, 95: 91, 91, 112: 91},
  2127  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 478, 114: 687},
  2128  		{10: 688, 483},
  2129  		// 360
  2130  		{392, 397, 584, 396, 398, 399, 404, 395, 394, 252, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 53: 582, 478, 57: 611, 85: 607, 604, 609, 594, 608, 595, 605, 606, 602, 95: 610, 603, 114: 585, 121: 601, 612, 588, 128: 593, 589, 591, 592, 587, 134: 590, 689},
  2131  		{92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 12: 92, 14: 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 44: 92, 92, 92, 92, 92, 92, 92, 53: 92, 57: 92, 92, 85: 92, 92, 92, 92, 92, 92, 92, 92, 92, 95: 92, 92, 112: 92},
  2132  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 478, 114: 691},
  2133  		{10: 692, 483},
  2134  		{392, 397, 584, 396, 398, 399, 404, 395, 394, 252, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 53: 582, 478, 57: 611, 85: 607, 604, 609, 594, 608, 595, 605, 606, 602, 95: 610, 603, 114: 585, 121: 601, 612, 588, 128: 593, 589, 591, 592, 587, 134: 590, 693},
  2135  		// 365
  2136  		{93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 12: 93, 14: 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 44: 93, 93, 93, 93, 93, 93, 93, 53: 93, 57: 93, 93, 85: 93, 93, 93, 93, 93, 93, 93, 93, 93, 95: 93, 93, 112: 93},
  2137  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 54: 478, 114: 695},
  2138  		{10: 696, 483},
  2139  		{392, 397, 584, 396, 398, 399, 404, 395, 394, 252, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 53: 582, 478, 57: 611, 85: 607, 604, 609, 594, 608, 595, 605, 606, 602, 95: 610, 603, 114: 585, 121: 601, 612, 588, 128: 593, 589, 591, 592, 587, 134: 590, 697},
  2140  		{95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 12: 95, 14: 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 44: 95, 95, 95, 95, 95, 95, 95, 53: 95, 57: 95, 95, 85: 95, 95, 95, 95, 95, 95, 95, 95, 95, 95: 95, 95, 112: 698},
  2141  		// 370
  2142  		{392, 397, 584, 396, 398, 399, 404, 395, 394, 252, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 53: 582, 478, 57: 611, 85: 607, 604, 609, 594, 608, 595, 605, 606, 602, 95: 610, 603, 114: 585, 121: 601, 612, 588, 128: 593, 589, 591, 592, 587, 134: 590, 699},
  2143  		{94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 12: 94, 14: 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 44: 94, 94, 94, 94, 94, 94, 94, 53: 94, 57: 94, 94, 85: 94, 94, 94, 94, 94, 94, 94, 94, 94, 95: 94, 94, 112: 94},
  2144  		{96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 12: 96, 14: 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 44: 96, 96, 96, 96, 96, 96, 96, 53: 96, 57: 96, 96, 85: 96, 96, 96, 96, 96, 96, 96, 96, 96, 95: 96, 96, 112: 96},
  2145  		{101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 12: 101, 14: 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 44: 101, 101, 101, 101, 101, 101, 101, 53: 101, 57: 101, 101, 85: 101, 101, 101, 101, 101, 101, 101, 101, 101, 95: 101, 101},
  2146  		{103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 12: 103, 14: 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 44: 103, 103, 103, 103, 103, 103, 103, 103, 53: 103, 57: 103, 103, 85: 103, 103, 103, 103, 103, 103, 103, 103, 103, 95: 103, 103, 112: 103},
  2147  		// 375
  2148  		{392, 397, 584, 396, 398, 399, 404, 395, 394, 252, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 53: 582, 478, 57: 611, 85: 607, 604, 609, 594, 608, 595, 605, 606, 602, 95: 610, 603, 114: 585, 121: 601, 612, 588, 128: 593, 589, 591, 592, 587, 134: 590, 704},
  2149  		{105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 12: 105, 14: 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 44: 105, 105, 105, 105, 105, 105, 105, 53: 105, 57: 105, 105, 85: 105, 105, 105, 105, 105, 105, 105, 105, 105, 95: 105, 105, 112: 105},
  2150  		{43: 706},
  2151  		{392, 397, 584, 396, 398, 399, 404, 395, 394, 252, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 53: 582, 478, 57: 611, 85: 607, 604, 609, 594, 608, 595, 605, 606, 602, 95: 610, 603, 114: 585, 121: 601, 612, 588, 128: 593, 589, 591, 592, 587, 134: 590, 707},
  2152  		{106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 12: 106, 14: 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 44: 106, 106, 106, 106, 106, 106, 106, 53: 106, 57: 106, 106, 85: 106, 106, 106, 106, 106, 106, 106, 106, 106, 95: 106, 106, 112: 106},
  2153  		// 380
  2154  		{9: 743},
  2155  		{9: 240, 11: 240},
  2156  		{9: 237, 11: 741},
  2157  		{9: 236, 11: 236, 52: 235, 179: 715},
  2158  		{714, 2: 535, 187: 534},
  2159  		// 385
  2160  		{164, 2: 164},
  2161  		{165, 412, 165, 133: 713, 136: 712, 537},
  2162  		{52: 716},
  2163  		{392, 397, 717, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 53: 720, 718, 160: 719},
  2164  		{316, 316, 3: 316, 316, 316, 316, 316, 316, 316, 11: 316, 13: 316, 26: 316, 43: 739, 52: 316, 56: 316, 59: 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316},
  2165  		// 390
  2166  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 127, 11: 127, 13: 430, 26: 127, 52: 455, 56: 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  2167  		{9: 234, 11: 234},
  2168  		{120, 120, 120, 120, 120, 120, 120, 120, 120, 11: 122, 120, 726, 120, 120, 120, 120, 120, 120, 120, 120, 120, 26: 122, 53: 120, 56: 727, 159: 725, 166: 724, 722, 723, 198: 721},
  2169  		{11: 734, 26: 193, 165: 735},
  2170  		{392, 397, 717, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 53: 720, 718, 160: 733},
  2171  		// 395
  2172  		{13: 726, 52: 731, 56: 727, 159: 732},
  2173  		{119, 119, 119, 119, 119, 119, 119, 119, 119, 12: 119, 14: 119, 119, 119, 119, 119, 119, 119, 119, 119, 53: 119},
  2174  		{13: 118, 52: 118, 56: 118},
  2175  		{250, 250, 250, 250, 250, 250, 250, 250, 250, 12: 250, 14: 250, 250, 250, 250, 250, 250, 250, 250, 250, 145: 379, 729},
  2176  		{2: 728},
  2177  		// 400
  2178  		{13: 115, 52: 115, 56: 115},
  2179  		{55: 730},
  2180  		{13: 116, 52: 116, 56: 116},
  2181  		{121, 121, 121, 121, 121, 121, 121, 121, 121, 12: 121, 14: 121, 121, 121, 121, 121, 121, 121, 121, 121, 53: 121},
  2182  		{13: 117, 52: 117, 56: 117},
  2183  		// 405
  2184  		{11: 124, 26: 124},
  2185  		{120, 120, 120, 120, 120, 120, 120, 120, 120, 12: 120, 726, 120, 120, 120, 120, 120, 120, 120, 120, 120, 26: 192, 53: 120, 56: 727, 159: 725, 166: 724, 737, 723},
  2186  		{26: 736},
  2187  		{9: 126, 11: 126, 26: 126},
  2188  		{392, 397, 717, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 53: 720, 718, 160: 738},
  2189  		// 410
  2190  		{11: 123, 26: 123},
  2191  		{392, 397, 717, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 53: 720, 718, 160: 740},
  2192  		{9: 125, 11: 125, 26: 125},
  2193  		{165, 412, 165, 133: 713, 136: 712, 711, 171: 742},
  2194  		{9: 239, 11: 239},
  2195  		// 415
  2196  		{248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 12: 248, 14: 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 44: 248, 248, 248, 248, 248, 248, 248, 248, 53: 248, 57: 248, 248, 85: 248, 248, 248, 248, 248, 248, 248, 248, 248, 95: 248, 248},
  2197  		{392, 397, 584, 396, 398, 399, 404, 395, 394, 252, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 53: 582, 478, 57: 611, 85: 607, 604, 609, 594, 608, 595, 605, 606, 602, 95: 610, 603, 114: 585, 121: 601, 612, 588, 128: 593, 589, 591, 592, 587, 134: 590, 745},
  2198  		{107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 12: 107, 14: 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 44: 107, 107, 107, 107, 107, 107, 107, 53: 107, 57: 107, 107, 85: 107, 107, 107, 107, 107, 107, 107, 107, 107, 95: 107, 107, 112: 107},
  2199  		{259, 259, 3: 259, 259, 259, 259, 259, 259, 259, 259, 259, 13: 259, 26: 259, 43: 259, 51: 259, 259, 55: 259, 259, 59: 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259},
  2200  		{392, 292, 385, 292, 292, 292, 292, 395, 394, 292, 292, 292, 391, 292, 401, 400, 403, 386, 387, 388, 389, 390, 402, 26: 292, 43: 292, 51: 292, 292, 749, 748, 292, 292, 59: 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292},
  2201  		// 420
  2202  		{431, 291, 3: 291, 291, 291, 291, 435, 434, 291, 291, 291, 13: 430, 26: 291, 43: 291, 51: 291, 291, 55: 291, 432, 59: 291, 291, 291, 291, 291, 291, 291, 291, 291, 433, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291},
  2203  		{120, 120, 120, 120, 120, 120, 120, 120, 120, 11: 122, 120, 726, 120, 120, 120, 120, 120, 120, 120, 120, 120, 26: 122, 53: 120, 56: 727, 159: 725, 166: 724, 722, 723, 198: 750},
  2204  		{11: 734, 26: 193, 165: 751},
  2205  		{26: 752},
  2206  		{302, 302, 3: 302, 302, 302, 302, 302, 302, 302, 302, 302, 13: 302, 26: 302, 43: 302, 51: 302, 302, 55: 302, 302, 59: 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302},
  2207  		// 425
  2208  		{309, 309, 3: 309, 309, 309, 309, 309, 309, 309, 309, 309, 13: 309, 26: 309, 43: 309, 51: 309, 309, 55: 309, 309, 59: 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309},
  2209  		{431, 294, 3: 294, 294, 294, 294, 435, 434, 294, 294, 294, 13: 430, 26: 294, 43: 294, 51: 294, 294, 55: 294, 432, 59: 294, 294, 294, 294, 294, 294, 294, 294, 294, 433, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294},
  2210  		{431, 295, 3: 295, 295, 295, 295, 435, 434, 295, 295, 295, 13: 430, 26: 295, 43: 295, 51: 295, 295, 55: 295, 432, 59: 295, 295, 295, 295, 295, 295, 295, 295, 295, 433, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295},
  2211  		{431, 296, 3: 296, 296, 296, 296, 435, 434, 296, 296, 296, 13: 430, 26: 296, 43: 296, 51: 296, 296, 55: 296, 432, 59: 296, 296, 296, 296, 296, 296, 296, 296, 296, 433, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296},
  2212  		{431, 297, 3: 297, 297, 297, 297, 435, 434, 297, 297, 297, 13: 430, 26: 297, 43: 297, 51: 297, 297, 55: 297, 432, 59: 297, 297, 297, 297, 297, 297, 297, 297, 297, 433, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297},
  2213  		// 430
  2214  		{431, 299, 3: 299, 299, 299, 299, 435, 434, 299, 299, 299, 13: 430, 26: 299, 43: 299, 51: 299, 299, 55: 299, 432, 59: 299, 299, 299, 299, 299, 299, 299, 299, 299, 433, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299},
  2215  		{431, 300, 3: 300, 300, 300, 300, 435, 434, 300, 300, 300, 13: 430, 26: 300, 43: 300, 51: 300, 300, 55: 300, 432, 59: 300, 300, 300, 300, 300, 300, 300, 300, 300, 433, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300},
  2216  		{431, 301, 3: 301, 301, 301, 301, 435, 434, 301, 301, 301, 13: 430, 26: 301, 43: 301, 51: 301, 301, 55: 301, 432, 59: 301, 301, 301, 301, 301, 301, 301, 301, 301, 433, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301},
  2217  		{10: 762},
  2218  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 53: 749, 748},
  2219  		// 435
  2220  		{764},
  2221  		{12: 618, 164: 765},
  2222  		{10: 644, 12: 620},
  2223  		{23: 65, 65, 65, 27: 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 44: 65, 65, 65, 65, 65, 65, 65, 53: 66, 57: 66, 65, 178: 768, 183: 767},
  2224  		{53: 74, 57: 74, 208: 772},
  2225  		// 440
  2226  		{23: 367, 365, 366, 27: 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 44: 343, 344, 342, 368, 369, 345, 341, 58: 377, 113: 339, 117: 358, 361, 357, 338, 124: 586, 340, 127: 337, 138: 336, 144: 769, 219: 770},
  2227  		{23: 68, 68, 68, 27: 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 44: 68, 68, 68, 68, 68, 68, 68, 53: 68, 57: 68, 68},
  2228  		{23: 367, 365, 366, 27: 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 44: 343, 344, 342, 368, 369, 345, 341, 53: 64, 57: 64, 377, 113: 339, 117: 358, 361, 357, 338, 124: 586, 340, 127: 337, 138: 336, 144: 771},
  2229  		{23: 67, 67, 67, 27: 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 44: 67, 67, 67, 67, 67, 67, 67, 53: 67, 57: 67, 67},
  2230  		{53: 72, 57: 70, 176: 774, 775, 192: 773},
  2231  		// 445
  2232  		{73, 73, 73, 9: 73, 23: 73, 73, 73, 27: 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 44: 73, 73, 73, 73, 73, 73, 73, 73, 57: 73, 73},
  2233  		{53: 582, 123: 778},
  2234  		{57: 611, 122: 612, 128: 776},
  2235  		{9: 777},
  2236  		{69, 69, 69, 9: 69, 23: 69, 69, 69, 27: 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 44: 69, 69, 69, 69, 69, 69, 69, 69, 57: 69, 69},
  2237  		// 450
  2238  		{71, 71, 71, 9: 71, 23: 71, 71, 71, 27: 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 44: 71, 71, 71, 71, 71, 71, 71, 71, 57: 71, 71},
  2239  		{79, 79, 79, 9: 79, 23: 79, 79, 79, 27: 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 44: 79, 79, 79, 79, 79, 79, 79, 79, 57: 79, 79},
  2240  		{53: 191, 212: 782},
  2241  		{189, 189, 189, 9: 189, 189, 189, 13: 189, 23: 189, 189, 189, 27: 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 53: 146},
  2242  		{53: 783},
  2243  		// 455
  2244  		{2: 784, 189: 787, 786, 225: 785},
  2245  		{11: 321, 26: 321, 52: 321},
  2246  		{11: 790, 26: 193, 165: 791},
  2247  		{11: 188, 26: 188},
  2248  		{11: 186, 26: 186, 52: 788},
  2249  		// 460
  2250  		{250, 250, 250, 250, 250, 250, 250, 250, 250, 12: 250, 14: 250, 250, 250, 250, 250, 250, 250, 250, 250, 145: 379, 789},
  2251  		{11: 185, 26: 185},
  2252  		{2: 784, 26: 192, 189: 787, 793},
  2253  		{26: 792},
  2254  		{190, 190, 190, 9: 190, 190, 190, 13: 190, 23: 190, 190, 190, 27: 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190},
  2255  		// 465
  2256  		{11: 187, 26: 187},
  2257  		{53: 796},
  2258  		{210, 210, 210, 9: 210, 210, 210, 13: 210, 23: 210, 210, 210, 27: 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 53: 146},
  2259  		{23: 212, 212, 212, 798, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 58: 212, 211: 797},
  2260  		{23: 367, 365, 366, 27: 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 58: 377, 113: 410, 117: 358, 361, 357, 409, 138: 802, 153: 801, 201: 800, 230: 799},
  2261  		// 470
  2262  		{209, 209, 209, 9: 209, 209, 209, 13: 209, 23: 209, 209, 209, 27: 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209},
  2263  		{23: 367, 365, 366, 813, 355, 347, 356, 352, 364, 351, 349, 350, 348, 353, 362, 359, 360, 363, 354, 346, 58: 377, 113: 410, 117: 358, 361, 357, 409, 138: 802, 153: 801, 201: 814},
  2264  		{23: 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 58: 206},
  2265  		{165, 412, 165, 9: 804, 43: 178, 133: 713, 136: 712, 806, 184: 807, 202: 805, 231: 803},
  2266  		{23: 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 58: 202},
  2267  		// 475
  2268  		{9: 810, 11: 811},
  2269  		{23: 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 58: 203},
  2270  		{9: 197, 11: 197},
  2271  		{9: 195, 11: 195, 43: 177},
  2272  		{43: 808},
  2273  		// 480
  2274  		{250, 250, 250, 250, 250, 250, 250, 250, 250, 12: 250, 14: 250, 250, 250, 250, 250, 250, 250, 250, 250, 145: 379, 809},
  2275  		{9: 194, 11: 194},
  2276  		{23: 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 58: 204},
  2277  		{165, 412, 165, 43: 178, 133: 713, 136: 712, 806, 184: 807, 202: 812},
  2278  		{9: 196, 11: 196},
  2279  		// 485
  2280  		{211, 211, 211, 9: 211, 211, 211, 13: 211, 23: 211, 211, 211, 27: 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211},
  2281  		{23: 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 58: 205},
  2282  		{392, 397, 385, 396, 398, 399, 404, 395, 394, 12: 391, 14: 401, 400, 403, 386, 387, 388, 389, 390, 402, 145, 145, 145, 27: 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 54: 816, 155: 408, 162: 817},
  2283  		{431, 436, 3: 449, 439, 440, 452, 435, 434, 10: 819, 13: 430, 52: 455, 56: 432, 59: 438, 437, 443, 444, 454, 450, 451, 459, 463, 433, 457, 447, 446, 445, 441, 461, 458, 456, 448, 465, 453, 442, 462, 460, 464},
  2284  		{10: 818},
  2285  		// 490
  2286  		{213, 213, 213, 9: 213, 213, 213, 13: 213, 23: 213, 213, 213, 27: 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213},
  2287  		{214, 214, 214, 9: 214, 214, 214, 13: 214, 23: 214, 214, 214, 27: 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214},
  2288  		{243, 243, 243, 9: 243, 243, 243, 13: 243},
  2289  		{241, 241, 241, 9: 241, 241, 241, 13: 241},
  2290  		{244, 244, 244, 9: 244, 244, 244, 13: 244},
  2291  		// 495
  2292  		{245, 245, 245, 9: 245, 245, 245, 13: 245},
  2293  		{246, 246, 246, 9: 246, 246, 246, 13: 246},
  2294  		{9: 236, 11: 236, 23: 65, 65, 65, 27: 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 44: 65, 65, 65, 65, 65, 65, 65, 52: 235, 66, 57: 66, 65, 178: 768, 715, 183: 826},
  2295  		{53: 77, 57: 77, 207: 827},
  2296  		{53: 72, 57: 70, 176: 774, 775, 192: 828},
  2297  		// 500
  2298  		{76, 76, 76, 9: 76, 23: 76, 76, 76, 27: 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 44: 76, 76, 76, 76, 76, 76, 76, 76, 57: 76, 76},
  2299  		{82, 82, 82, 9: 82, 23: 82, 82, 82, 27: 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 44: 82, 82, 82, 82, 82, 82, 82, 82, 57: 82, 82},
  2300  		{250, 250, 250, 250, 250, 250, 250, 250, 250, 12: 250, 14: 250, 250, 250, 250, 250, 250, 250, 250, 250, 145: 379, 831},
  2301  		{51: 324},
  2302  		{84: 854, 94: 856, 100: 844, 845, 846, 841, 842, 843, 847, 851, 848, 838, 849, 850, 115: 855, 853, 126: 852, 139: 836, 835, 840, 837, 839, 148: 834, 228: 833},
  2303  		// 505
  2304  		{51: 326},
  2305  		{51: 43, 84: 854, 94: 856, 100: 844, 845, 846, 841, 842, 843, 847, 851, 848, 838, 849, 850, 115: 855, 853, 126: 852, 139: 836, 894, 840, 837, 839},
  2306  		{51: 42, 84: 42, 94: 42, 97: 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42},
  2307  		{51: 38, 84: 38, 94: 38, 97: 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38},
  2308  		{51: 37, 84: 37, 94: 37, 97: 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37},
  2309  		// 510
  2310  		{94: 856, 115: 916, 853},
  2311  		{51: 35, 84: 35, 94: 35, 97: 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35},
  2312  		{97: 28, 28, 904, 188: 902, 220: 903, 901},
  2313  		{94: 856, 115: 898, 853},
  2314  		{2: 895},
  2315  		// 515
  2316  		{2: 890},
  2317  		{2: 871, 84: 873, 226: 872},
  2318  		{84: 854, 94: 856, 115: 855, 853, 126: 870},
  2319  		{51: 16, 84: 16, 94: 16, 97: 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16},
  2320  		{94: 856, 115: 868, 853},
  2321  		// 520
  2322  		{94: 856, 115: 866, 853},
  2323  		{84: 854, 94: 856, 115: 855, 853, 126: 865},
  2324  		{2: 861},
  2325  		{94: 856, 115: 859, 853},
  2326  		{51: 7, 84: 7, 94: 7, 97: 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7},
  2327  		// 525
  2328  		{84: 5, 94: 858},
  2329  		{51: 4, 84: 4, 94: 4, 97: 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4},
  2330  		{84: 857},
  2331  		{84: 2, 94: 2},
  2332  		{51: 3, 84: 3, 94: 3, 97: 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3},
  2333  		// 530
  2334  		{84: 1, 94: 1},
  2335  		{84: 860},
  2336  		{51: 8, 84: 8, 94: 8, 97: 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8},
  2337  		{84: 862, 94: 856, 115: 863, 853},
  2338  		{51: 12, 84: 12, 94: 12, 97: 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
  2339  		// 535
  2340  		{84: 864},
  2341  		{51: 9, 84: 9, 94: 9, 97: 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9},
  2342  		{51: 13, 84: 13, 94: 13, 97: 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13},
  2343  		{84: 867},
  2344  		{51: 14, 84: 14, 94: 14, 97: 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
  2345  		// 540
  2346  		{84: 869},
  2347  		{51: 15, 84: 15, 94: 15, 97: 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
  2348  		{51: 17, 84: 17, 94: 17, 97: 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17},
  2349  		{84: 854, 94: 856, 115: 855, 853, 126: 879, 152: 889},
  2350  		{2: 543, 10: 149, 147: 875, 170: 874, 194: 876},
  2351  		// 545
  2352  		{51: 10, 84: 10, 94: 10, 97: 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
  2353  		{10: 148, 882, 147: 883},
  2354  		{10: 880},
  2355  		{10: 877},
  2356  		{84: 854, 94: 856, 115: 855, 853, 126: 879, 152: 878},
  2357  		// 550
  2358  		{51: 18, 84: 18, 94: 18, 97: 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18},
  2359  		{51: 6, 84: 6, 94: 6, 97: 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6},
  2360  		{84: 854, 94: 856, 115: 855, 853, 126: 879, 152: 881},
  2361  		{51: 20, 84: 20, 94: 20, 97: 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20},
  2362  		{2: 546, 147: 886},
  2363  		// 555
  2364  		{10: 884},
  2365  		{84: 854, 94: 856, 115: 855, 853, 126: 879, 152: 885},
  2366  		{51: 11, 84: 11, 94: 11, 97: 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11},
  2367  		{10: 887},
  2368  		{84: 854, 94: 856, 115: 855, 853, 126: 879, 152: 888},
  2369  		// 560
  2370  		{51: 19, 84: 19, 94: 19, 97: 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19},
  2371  		{51: 21, 84: 21, 94: 21, 97: 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21},
  2372  		{84: 891},
  2373  		{84: 854, 94: 856, 97: 40, 40, 40, 844, 845, 846, 841, 842, 843, 847, 851, 848, 838, 849, 850, 115: 855, 853, 126: 852, 139: 836, 835, 840, 837, 839, 148: 892, 151: 893},
  2374  		{84: 854, 94: 856, 97: 39, 39, 39, 844, 845, 846, 841, 842, 843, 847, 851, 848, 838, 849, 850, 115: 855, 853, 126: 852, 139: 836, 894, 840, 837, 839},
  2375  		// 565
  2376  		{97: 31, 31, 31},
  2377  		{51: 41, 84: 41, 94: 41, 97: 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41},
  2378  		{84: 896},
  2379  		{84: 854, 94: 856, 97: 40, 40, 40, 844, 845, 846, 841, 842, 843, 847, 851, 848, 838, 849, 850, 115: 855, 853, 126: 852, 139: 836, 835, 840, 837, 839, 148: 892, 151: 897},
  2380  		{97: 32, 32, 32},
  2381  		// 570
  2382  		{84: 899},
  2383  		{84: 854, 94: 856, 97: 40, 40, 40, 844, 845, 846, 841, 842, 843, 847, 851, 848, 838, 849, 850, 115: 855, 853, 126: 852, 139: 836, 835, 840, 837, 839, 148: 892, 151: 900},
  2384  		{97: 33, 33, 33},
  2385  		{97: 24, 910, 222: 911, 909},
  2386  		{97: 30, 30, 30},
  2387  		// 575
  2388  		{97: 27, 27, 904, 188: 908},
  2389  		{94: 856, 115: 905, 853},
  2390  		{84: 906},
  2391  		{84: 854, 94: 856, 97: 40, 40, 40, 844, 845, 846, 841, 842, 843, 847, 851, 848, 838, 849, 850, 115: 855, 853, 126: 852, 139: 836, 835, 840, 837, 839, 148: 892, 151: 907},
  2392  		{97: 26, 26, 26},
  2393  		// 580
  2394  		{97: 29, 29, 29},
  2395  		{97: 915, 224: 914},
  2396  		{84: 912},
  2397  		{97: 23},
  2398  		{84: 854, 94: 856, 97: 40, 100: 844, 845, 846, 841, 842, 843, 847, 851, 848, 838, 849, 850, 115: 855, 853, 126: 852, 139: 836, 835, 840, 837, 839, 148: 892, 151: 913},
  2399  		// 585
  2400  		{97: 25},
  2401  		{51: 34, 84: 34, 94: 34, 97: 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34},
  2402  		{51: 22, 84: 22, 94: 22, 97: 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22},
  2403  		{84: 917},
  2404  		{51: 36, 84: 36, 94: 36, 97: 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36},
  2405  	}
  2406  )
  2407  
  2408  var yyDebug = 0
  2409  
  2410  type yyLexer interface {
  2411  	Lex(lval *yySymType) int
  2412  	Error(s string)
  2413  }
  2414  
  2415  type yyLexerEx interface {
  2416  	yyLexer
  2417  	Reduced(rule, state int, lval *yySymType) bool
  2418  }
  2419  
  2420  func yySymName(c int) (s string) {
  2421  	x, ok := yyXLAT[c]
  2422  	if ok {
  2423  		return yySymNames[x]
  2424  	}
  2425  
  2426  	if c < 0x7f {
  2427  		return __yyfmt__.Sprintf("'%c'", c)
  2428  	}
  2429  
  2430  	return __yyfmt__.Sprintf("%d", c)
  2431  }
  2432  
  2433  func yylex1(yylex yyLexer, lval *yySymType) (n int) {
  2434  	n = yylex.Lex(lval)
  2435  	if n <= 0 {
  2436  		n = yyEofCode
  2437  	}
  2438  	if yyDebug >= 3 {
  2439  		__yyfmt__.Printf("\nlex %s(%#x %d), PrettyString(lval.Token): %v\n", yySymName(n), n, n, PrettyString(lval.Token))
  2440  	}
  2441  	return n
  2442  }
  2443  
  2444  func yyParse(yylex yyLexer) int {
  2445  	const yyError = 236
  2446  
  2447  	yyEx, _ := yylex.(yyLexerEx)
  2448  	var yyn int
  2449  	var yylval yySymType
  2450  	var yyVAL yySymType
  2451  	yyS := make([]yySymType, 200)
  2452  
  2453  	Nerrs := 0   /* number of errors */
  2454  	Errflag := 0 /* error recovery flag */
  2455  	yyerrok := func() {
  2456  		if yyDebug >= 2 {
  2457  			__yyfmt__.Printf("yyerrok()\n")
  2458  		}
  2459  		Errflag = 0
  2460  	}
  2461  	_ = yyerrok
  2462  	yystate := 0
  2463  	yychar := -1
  2464  	var yyxchar int
  2465  	var yyshift int
  2466  	yyp := -1
  2467  	goto yystack
  2468  
  2469  ret0:
  2470  	return 0
  2471  
  2472  ret1:
  2473  	return 1
  2474  
  2475  yystack:
  2476  	/* put a state and value onto the stack */
  2477  	yyp++
  2478  	if yyp >= len(yyS) {
  2479  		nyys := make([]yySymType, len(yyS)*2)
  2480  		copy(nyys, yyS)
  2481  		yyS = nyys
  2482  	}
  2483  	yyS[yyp] = yyVAL
  2484  	yyS[yyp].yys = yystate
  2485  
  2486  yynewstate:
  2487  	if yychar < 0 {
  2488  		yylval.yys = yystate
  2489  		yychar = yylex1(yylex, &yylval)
  2490  		var ok bool
  2491  		if yyxchar, ok = yyXLAT[yychar]; !ok {
  2492  			yyxchar = len(yySymNames) // > tab width
  2493  		}
  2494  	}
  2495  	if yyDebug >= 4 {
  2496  		var a []int
  2497  		for _, v := range yyS[:yyp+1] {
  2498  			a = append(a, v.yys)
  2499  		}
  2500  		__yyfmt__.Printf("state stack %v\n", a)
  2501  	}
  2502  	row := yyParseTab[yystate]
  2503  	yyn = 0
  2504  	if yyxchar < len(row) {
  2505  		if yyn = int(row[yyxchar]); yyn != 0 {
  2506  			yyn += yyTabOfs
  2507  		}
  2508  	}
  2509  	switch {
  2510  	case yyn > 0: // shift
  2511  		yychar = -1
  2512  		yyVAL = yylval
  2513  		yystate = yyn
  2514  		yyshift = yyn
  2515  		if yyDebug >= 2 {
  2516  			__yyfmt__.Printf("shift, and goto state %d\n", yystate)
  2517  		}
  2518  		if Errflag > 0 {
  2519  			Errflag--
  2520  		}
  2521  		goto yystack
  2522  	case yyn < 0: // reduce
  2523  	case yystate == 1: // accept
  2524  		if yyDebug >= 2 {
  2525  			__yyfmt__.Println("accept")
  2526  		}
  2527  		goto ret0
  2528  	}
  2529  
  2530  	if yyn == 0 {
  2531  		/* error ... attempt to resume parsing */
  2532  		switch Errflag {
  2533  		case 0: /* brand new error */
  2534  			if yyDebug >= 1 {
  2535  				__yyfmt__.Printf("no action for %s in state %d\n", yySymName(yychar), yystate)
  2536  			}
  2537  			msg, ok := yyXErrors[yyXError{yystate, yyxchar}]
  2538  			if !ok {
  2539  				msg, ok = yyXErrors[yyXError{yystate, -1}]
  2540  			}
  2541  			if !ok && yyshift != 0 {
  2542  				msg, ok = yyXErrors[yyXError{yyshift, yyxchar}]
  2543  			}
  2544  			if !ok {
  2545  				msg, ok = yyXErrors[yyXError{yyshift, -1}]
  2546  			}
  2547  			if yychar > 0 {
  2548  				ls := yyTokenLiteralStrings[yychar]
  2549  				if ls == "" {
  2550  					ls = yySymName(yychar)
  2551  				}
  2552  				if ls != "" {
  2553  					switch {
  2554  					case msg == "":
  2555  						msg = __yyfmt__.Sprintf("unexpected %s", ls)
  2556  					default:
  2557  						msg = __yyfmt__.Sprintf("unexpected %s, %s", ls, msg)
  2558  					}
  2559  				}
  2560  			}
  2561  			if msg == "" {
  2562  				msg = "syntax error"
  2563  			}
  2564  			yylex.Error(msg)
  2565  			Nerrs++
  2566  			fallthrough
  2567  
  2568  		case 1, 2: /* incompletely recovered error ... try again */
  2569  			Errflag = 3
  2570  
  2571  			/* find a state where "error" is a legal shift action */
  2572  			for yyp >= 0 {
  2573  				row := yyParseTab[yyS[yyp].yys]
  2574  				if yyError < len(row) {
  2575  					yyn = int(row[yyError]) + yyTabOfs
  2576  					if yyn > 0 { // hit
  2577  						if yyDebug >= 2 {
  2578  							__yyfmt__.Printf("error recovery found error shift in state %d\n", yyS[yyp].yys)
  2579  						}
  2580  						yystate = yyn /* simulate a shift of "error" */
  2581  						goto yystack
  2582  					}
  2583  				}
  2584  
  2585  				/* the current p has no shift on "error", pop stack */
  2586  				if yyDebug >= 2 {
  2587  					__yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys)
  2588  				}
  2589  				yyp--
  2590  			}
  2591  			/* there is no state on the stack with an error shift ... abort */
  2592  			if yyDebug >= 2 {
  2593  				__yyfmt__.Printf("error recovery failed\n")
  2594  			}
  2595  			goto ret1
  2596  
  2597  		case 3: /* no shift yet; clobber input char */
  2598  			if yyDebug >= 2 {
  2599  				__yyfmt__.Printf("error recovery discards %s\n", yySymName(yychar))
  2600  			}
  2601  			if yychar == yyEofCode {
  2602  				goto ret1
  2603  			}
  2604  
  2605  			yychar = -1
  2606  			goto yynewstate /* try again in the same state */
  2607  		}
  2608  	}
  2609  
  2610  	r := -yyn
  2611  	x0 := yyReductions[r]
  2612  	x, n := x0.xsym, x0.components
  2613  	yypt := yyp
  2614  	_ = yypt // guard against "declared and not used"
  2615  
  2616  	yyp -= n
  2617  	if yyp+1 >= len(yyS) {
  2618  		nyys := make([]yySymType, len(yyS)*2)
  2619  		copy(nyys, yyS)
  2620  		yyS = nyys
  2621  	}
  2622  	yyVAL = yyS[yyp+1]
  2623  
  2624  	/* consult goto table to find next state */
  2625  	exState := yystate
  2626  	yystate = int(yyParseTab[yyS[yyp].yys][x]) + yyTabOfs
  2627  	/* reduction by production r */
  2628  	if yyDebug >= 2 {
  2629  		__yyfmt__.Printf("reduce using rule %v (%s), and goto state %d\n", r, yySymNames[x], yystate)
  2630  	}
  2631  
  2632  	switch r {
  2633  	case 1:
  2634  		{
  2635  			lx := yylex.(*lexer)
  2636  			lx.preprocessingFile = nil
  2637  		}
  2638  	case 2:
  2639  		{
  2640  			lx := yylex.(*lexer)
  2641  			lx.preprocessingFile = yyS[yypt-0].node.(*PreprocessingFile)
  2642  		}
  2643  	case 3:
  2644  		{
  2645  			lx := yylex.(*lexer)
  2646  			lx.constantExpression = nil
  2647  		}
  2648  	case 4:
  2649  		{
  2650  			lx := yylex.(*lexer)
  2651  			lx.constantExpression = yyS[yypt-0].node.(*ConstantExpression)
  2652  		}
  2653  	case 5:
  2654  		{
  2655  			lx := yylex.(*lexer)
  2656  			lx.translationUnit = nil
  2657  		}
  2658  	case 6:
  2659  		{
  2660  			lx := yylex.(*lexer)
  2661  			if lx.report.Errors(false) == nil && lx.scope.kind != ScopeFile {
  2662  				panic("internal error")
  2663  			}
  2664  
  2665  			lx.translationUnit = yyS[yypt-0].node.(*TranslationUnit).reverse()
  2666  			lx.translationUnit.Declarations = lx.scope
  2667  		}
  2668  	case 7:
  2669  		{
  2670  			yyVAL.node = &EnumerationConstant{
  2671  				Token: yyS[yypt-0].Token,
  2672  			}
  2673  		}
  2674  	case 8:
  2675  		{
  2676  			yyVAL.node = &ArgumentExpressionList{
  2677  				Expression: yyS[yypt-0].node.(*Expression),
  2678  			}
  2679  		}
  2680  	case 9:
  2681  		{
  2682  			yyVAL.node = &ArgumentExpressionList{
  2683  				Case:                   1,
  2684  				ArgumentExpressionList: yyS[yypt-2].node.(*ArgumentExpressionList),
  2685  				Token:                  yyS[yypt-1].Token,
  2686  				Expression:             yyS[yypt-0].node.(*Expression),
  2687  			}
  2688  		}
  2689  	case 10:
  2690  		{
  2691  			yyVAL.node = (*ArgumentExpressionListOpt)(nil)
  2692  		}
  2693  	case 11:
  2694  		{
  2695  			yyVAL.node = &ArgumentExpressionListOpt{
  2696  				ArgumentExpressionList: yyS[yypt-0].node.(*ArgumentExpressionList).reverse(),
  2697  			}
  2698  		}
  2699  	case 12:
  2700  		{
  2701  			lx := yylex.(*lexer)
  2702  			lhs := &Expression{
  2703  				Token: yyS[yypt-0].Token,
  2704  			}
  2705  			yyVAL.node = lhs
  2706  			lhs.scope = lx.scope
  2707  		}
  2708  	case 13:
  2709  		{
  2710  			yyVAL.node = &Expression{
  2711  				Case:  1,
  2712  				Token: yyS[yypt-0].Token,
  2713  			}
  2714  		}
  2715  	case 14:
  2716  		{
  2717  			yyVAL.node = &Expression{
  2718  				Case:  2,
  2719  				Token: yyS[yypt-0].Token,
  2720  			}
  2721  		}
  2722  	case 15:
  2723  		{
  2724  			yyVAL.node = &Expression{
  2725  				Case:  3,
  2726  				Token: yyS[yypt-0].Token,
  2727  			}
  2728  		}
  2729  	case 16:
  2730  		{
  2731  			yyVAL.node = &Expression{
  2732  				Case:  4,
  2733  				Token: yyS[yypt-0].Token,
  2734  			}
  2735  		}
  2736  	case 17:
  2737  		{
  2738  			yyVAL.node = &Expression{
  2739  				Case:  5,
  2740  				Token: yyS[yypt-0].Token,
  2741  			}
  2742  		}
  2743  	case 18:
  2744  		{
  2745  			yyVAL.node = &Expression{
  2746  				Case:  6,
  2747  				Token: yyS[yypt-0].Token,
  2748  			}
  2749  		}
  2750  	case 19:
  2751  		{
  2752  			yyVAL.node = &Expression{
  2753  				Case:           7,
  2754  				Token:          yyS[yypt-2].Token,
  2755  				ExpressionList: yyS[yypt-1].node.(*ExpressionList).reverse(),
  2756  				Token2:         yyS[yypt-0].Token,
  2757  			}
  2758  		}
  2759  	case 20:
  2760  		{
  2761  			yyVAL.node = &Expression{
  2762  				Case:           8,
  2763  				Expression:     yyS[yypt-3].node.(*Expression),
  2764  				Token:          yyS[yypt-2].Token,
  2765  				ExpressionList: yyS[yypt-1].node.(*ExpressionList).reverse(),
  2766  				Token2:         yyS[yypt-0].Token,
  2767  			}
  2768  		}
  2769  	case 21:
  2770  		{
  2771  			lx := yylex.(*lexer)
  2772  			lhs := &Expression{
  2773  				Case:                      9,
  2774  				Expression:                yyS[yypt-3].node.(*Expression),
  2775  				Token:                     yyS[yypt-2].Token,
  2776  				ArgumentExpressionListOpt: yyS[yypt-1].node.(*ArgumentExpressionListOpt),
  2777  				Token2:                    yyS[yypt-0].Token,
  2778  			}
  2779  			yyVAL.node = lhs
  2780  			o := lhs.ArgumentExpressionListOpt
  2781  			if o == nil {
  2782  				break
  2783  			}
  2784  
  2785  			if lhs.Expression.Case == 0 { // IDENTIFIER
  2786  				if lx.tweaks.enableBuiltinConstantP && lhs.Expression.Token.Val == idBuiltinConstantP {
  2787  					break
  2788  				}
  2789  
  2790  				b := lhs.Expression.scope.Lookup(NSIdentifiers, lhs.Expression.Token.Val)
  2791  				if b.Node == nil && lx.tweaks.enableImplicitFuncDef {
  2792  					for l := o.ArgumentExpressionList; l != nil; l = l.ArgumentExpressionList {
  2793  						l.Expression.eval(lx)
  2794  					}
  2795  					break
  2796  				}
  2797  			}
  2798  
  2799  			lhs.Expression.eval(lx)
  2800  			for l := o.ArgumentExpressionList; l != nil; l = l.ArgumentExpressionList {
  2801  				l.Expression.eval(lx)
  2802  			}
  2803  		}
  2804  	case 22:
  2805  		{
  2806  			yyVAL.node = &Expression{
  2807  				Case:       10,
  2808  				Expression: yyS[yypt-2].node.(*Expression),
  2809  				Token:      yyS[yypt-1].Token,
  2810  				Token2:     yyS[yypt-0].Token,
  2811  			}
  2812  		}
  2813  	case 23:
  2814  		{
  2815  			yyVAL.node = &Expression{
  2816  				Case:       11,
  2817  				Expression: yyS[yypt-2].node.(*Expression),
  2818  				Token:      yyS[yypt-1].Token,
  2819  				Token2:     yyS[yypt-0].Token,
  2820  			}
  2821  		}
  2822  	case 24:
  2823  		{
  2824  			yyVAL.node = &Expression{
  2825  				Case:       12,
  2826  				Expression: yyS[yypt-1].node.(*Expression),
  2827  				Token:      yyS[yypt-0].Token,
  2828  			}
  2829  		}
  2830  	case 25:
  2831  		{
  2832  			yyVAL.node = &Expression{
  2833  				Case:       13,
  2834  				Expression: yyS[yypt-1].node.(*Expression),
  2835  				Token:      yyS[yypt-0].Token,
  2836  			}
  2837  		}
  2838  	case 26:
  2839  		{
  2840  			yyVAL.node = &Expression{
  2841  				Case:            14,
  2842  				Token:           yyS[yypt-6].Token,
  2843  				TypeName:        yyS[yypt-5].node.(*TypeName),
  2844  				Token2:          yyS[yypt-4].Token,
  2845  				Token3:          yyS[yypt-3].Token,
  2846  				InitializerList: yyS[yypt-2].node.(*InitializerList).reverse(),
  2847  				CommaOpt:        yyS[yypt-1].node.(*CommaOpt),
  2848  				Token4:          yyS[yypt-0].Token,
  2849  			}
  2850  		}
  2851  	case 27:
  2852  		{
  2853  			yyVAL.node = &Expression{
  2854  				Case:       15,
  2855  				Token:      yyS[yypt-1].Token,
  2856  				Expression: yyS[yypt-0].node.(*Expression),
  2857  			}
  2858  		}
  2859  	case 28:
  2860  		{
  2861  			yyVAL.node = &Expression{
  2862  				Case:       16,
  2863  				Token:      yyS[yypt-1].Token,
  2864  				Expression: yyS[yypt-0].node.(*Expression),
  2865  			}
  2866  		}
  2867  	case 29:
  2868  		{
  2869  			yyVAL.node = &Expression{
  2870  				Case:       17,
  2871  				Token:      yyS[yypt-1].Token,
  2872  				Expression: yyS[yypt-0].node.(*Expression),
  2873  			}
  2874  		}
  2875  	case 30:
  2876  		{
  2877  			yyVAL.node = &Expression{
  2878  				Case:       18,
  2879  				Token:      yyS[yypt-1].Token,
  2880  				Expression: yyS[yypt-0].node.(*Expression),
  2881  			}
  2882  		}
  2883  	case 31:
  2884  		{
  2885  			yyVAL.node = &Expression{
  2886  				Case:       19,
  2887  				Token:      yyS[yypt-1].Token,
  2888  				Expression: yyS[yypt-0].node.(*Expression),
  2889  			}
  2890  		}
  2891  	case 32:
  2892  		{
  2893  			yyVAL.node = &Expression{
  2894  				Case:       20,
  2895  				Token:      yyS[yypt-1].Token,
  2896  				Expression: yyS[yypt-0].node.(*Expression),
  2897  			}
  2898  		}
  2899  	case 33:
  2900  		{
  2901  			yyVAL.node = &Expression{
  2902  				Case:       21,
  2903  				Token:      yyS[yypt-1].Token,
  2904  				Expression: yyS[yypt-0].node.(*Expression),
  2905  			}
  2906  		}
  2907  	case 34:
  2908  		{
  2909  			yyVAL.node = &Expression{
  2910  				Case:       22,
  2911  				Token:      yyS[yypt-1].Token,
  2912  				Expression: yyS[yypt-0].node.(*Expression),
  2913  			}
  2914  		}
  2915  	case 35:
  2916  		{
  2917  			yyVAL.node = &Expression{
  2918  				Case:       23,
  2919  				Token:      yyS[yypt-1].Token,
  2920  				Expression: yyS[yypt-0].node.(*Expression),
  2921  			}
  2922  		}
  2923  	case 36:
  2924  		{
  2925  			yyVAL.node = &Expression{
  2926  				Case:     24,
  2927  				Token:    yyS[yypt-3].Token,
  2928  				Token2:   yyS[yypt-2].Token,
  2929  				TypeName: yyS[yypt-1].node.(*TypeName),
  2930  				Token3:   yyS[yypt-0].Token,
  2931  			}
  2932  		}
  2933  	case 37:
  2934  		{
  2935  			yyVAL.node = &Expression{
  2936  				Case:       25,
  2937  				Token:      yyS[yypt-3].Token,
  2938  				TypeName:   yyS[yypt-2].node.(*TypeName),
  2939  				Token2:     yyS[yypt-1].Token,
  2940  				Expression: yyS[yypt-0].node.(*Expression),
  2941  			}
  2942  		}
  2943  	case 38:
  2944  		{
  2945  			yyVAL.node = &Expression{
  2946  				Case:        26,
  2947  				Expression:  yyS[yypt-2].node.(*Expression),
  2948  				Token:       yyS[yypt-1].Token,
  2949  				Expression2: yyS[yypt-0].node.(*Expression),
  2950  			}
  2951  		}
  2952  	case 39:
  2953  		{
  2954  			yyVAL.node = &Expression{
  2955  				Case:        27,
  2956  				Expression:  yyS[yypt-2].node.(*Expression),
  2957  				Token:       yyS[yypt-1].Token,
  2958  				Expression2: yyS[yypt-0].node.(*Expression),
  2959  			}
  2960  		}
  2961  	case 40:
  2962  		{
  2963  			yyVAL.node = &Expression{
  2964  				Case:        28,
  2965  				Expression:  yyS[yypt-2].node.(*Expression),
  2966  				Token:       yyS[yypt-1].Token,
  2967  				Expression2: yyS[yypt-0].node.(*Expression),
  2968  			}
  2969  		}
  2970  	case 41:
  2971  		{
  2972  			yyVAL.node = &Expression{
  2973  				Case:        29,
  2974  				Expression:  yyS[yypt-2].node.(*Expression),
  2975  				Token:       yyS[yypt-1].Token,
  2976  				Expression2: yyS[yypt-0].node.(*Expression),
  2977  			}
  2978  		}
  2979  	case 42:
  2980  		{
  2981  			yyVAL.node = &Expression{
  2982  				Case:        30,
  2983  				Expression:  yyS[yypt-2].node.(*Expression),
  2984  				Token:       yyS[yypt-1].Token,
  2985  				Expression2: yyS[yypt-0].node.(*Expression),
  2986  			}
  2987  		}
  2988  	case 43:
  2989  		{
  2990  			yyVAL.node = &Expression{
  2991  				Case:        31,
  2992  				Expression:  yyS[yypt-2].node.(*Expression),
  2993  				Token:       yyS[yypt-1].Token,
  2994  				Expression2: yyS[yypt-0].node.(*Expression),
  2995  			}
  2996  		}
  2997  	case 44:
  2998  		{
  2999  			yyVAL.node = &Expression{
  3000  				Case:        32,
  3001  				Expression:  yyS[yypt-2].node.(*Expression),
  3002  				Token:       yyS[yypt-1].Token,
  3003  				Expression2: yyS[yypt-0].node.(*Expression),
  3004  			}
  3005  		}
  3006  	case 45:
  3007  		{
  3008  			yyVAL.node = &Expression{
  3009  				Case:        33,
  3010  				Expression:  yyS[yypt-2].node.(*Expression),
  3011  				Token:       yyS[yypt-1].Token,
  3012  				Expression2: yyS[yypt-0].node.(*Expression),
  3013  			}
  3014  		}
  3015  	case 46:
  3016  		{
  3017  			yyVAL.node = &Expression{
  3018  				Case:        34,
  3019  				Expression:  yyS[yypt-2].node.(*Expression),
  3020  				Token:       yyS[yypt-1].Token,
  3021  				Expression2: yyS[yypt-0].node.(*Expression),
  3022  			}
  3023  		}
  3024  	case 47:
  3025  		{
  3026  			yyVAL.node = &Expression{
  3027  				Case:        35,
  3028  				Expression:  yyS[yypt-2].node.(*Expression),
  3029  				Token:       yyS[yypt-1].Token,
  3030  				Expression2: yyS[yypt-0].node.(*Expression),
  3031  			}
  3032  		}
  3033  	case 48:
  3034  		{
  3035  			yyVAL.node = &Expression{
  3036  				Case:        36,
  3037  				Expression:  yyS[yypt-2].node.(*Expression),
  3038  				Token:       yyS[yypt-1].Token,
  3039  				Expression2: yyS[yypt-0].node.(*Expression),
  3040  			}
  3041  		}
  3042  	case 49:
  3043  		{
  3044  			yyVAL.node = &Expression{
  3045  				Case:        37,
  3046  				Expression:  yyS[yypt-2].node.(*Expression),
  3047  				Token:       yyS[yypt-1].Token,
  3048  				Expression2: yyS[yypt-0].node.(*Expression),
  3049  			}
  3050  		}
  3051  	case 50:
  3052  		{
  3053  			yyVAL.node = &Expression{
  3054  				Case:        38,
  3055  				Expression:  yyS[yypt-2].node.(*Expression),
  3056  				Token:       yyS[yypt-1].Token,
  3057  				Expression2: yyS[yypt-0].node.(*Expression),
  3058  			}
  3059  		}
  3060  	case 51:
  3061  		{
  3062  			yyVAL.node = &Expression{
  3063  				Case:        39,
  3064  				Expression:  yyS[yypt-2].node.(*Expression),
  3065  				Token:       yyS[yypt-1].Token,
  3066  				Expression2: yyS[yypt-0].node.(*Expression),
  3067  			}
  3068  		}
  3069  	case 52:
  3070  		{
  3071  			yyVAL.node = &Expression{
  3072  				Case:        40,
  3073  				Expression:  yyS[yypt-2].node.(*Expression),
  3074  				Token:       yyS[yypt-1].Token,
  3075  				Expression2: yyS[yypt-0].node.(*Expression),
  3076  			}
  3077  		}
  3078  	case 53:
  3079  		{
  3080  			yyVAL.node = &Expression{
  3081  				Case:        41,
  3082  				Expression:  yyS[yypt-2].node.(*Expression),
  3083  				Token:       yyS[yypt-1].Token,
  3084  				Expression2: yyS[yypt-0].node.(*Expression),
  3085  			}
  3086  		}
  3087  	case 54:
  3088  		{
  3089  			yyVAL.node = &Expression{
  3090  				Case:        42,
  3091  				Expression:  yyS[yypt-2].node.(*Expression),
  3092  				Token:       yyS[yypt-1].Token,
  3093  				Expression2: yyS[yypt-0].node.(*Expression),
  3094  			}
  3095  		}
  3096  	case 55:
  3097  		{
  3098  			yyVAL.node = &Expression{
  3099  				Case:        43,
  3100  				Expression:  yyS[yypt-2].node.(*Expression),
  3101  				Token:       yyS[yypt-1].Token,
  3102  				Expression2: yyS[yypt-0].node.(*Expression),
  3103  			}
  3104  		}
  3105  	case 56:
  3106  		{
  3107  			yyVAL.node = &Expression{
  3108  				Case:           44,
  3109  				Expression:     yyS[yypt-4].node.(*Expression),
  3110  				Token:          yyS[yypt-3].Token,
  3111  				ExpressionList: yyS[yypt-2].node.(*ExpressionList).reverse(),
  3112  				Token2:         yyS[yypt-1].Token,
  3113  				Expression2:    yyS[yypt-0].node.(*Expression),
  3114  			}
  3115  		}
  3116  	case 57:
  3117  		{
  3118  			yyVAL.node = &Expression{
  3119  				Case:        45,
  3120  				Expression:  yyS[yypt-2].node.(*Expression),
  3121  				Token:       yyS[yypt-1].Token,
  3122  				Expression2: yyS[yypt-0].node.(*Expression),
  3123  			}
  3124  		}
  3125  	case 58:
  3126  		{
  3127  			yyVAL.node = &Expression{
  3128  				Case:        46,
  3129  				Expression:  yyS[yypt-2].node.(*Expression),
  3130  				Token:       yyS[yypt-1].Token,
  3131  				Expression2: yyS[yypt-0].node.(*Expression),
  3132  			}
  3133  		}
  3134  	case 59:
  3135  		{
  3136  			yyVAL.node = &Expression{
  3137  				Case:        47,
  3138  				Expression:  yyS[yypt-2].node.(*Expression),
  3139  				Token:       yyS[yypt-1].Token,
  3140  				Expression2: yyS[yypt-0].node.(*Expression),
  3141  			}
  3142  		}
  3143  	case 60:
  3144  		{
  3145  			yyVAL.node = &Expression{
  3146  				Case:        48,
  3147  				Expression:  yyS[yypt-2].node.(*Expression),
  3148  				Token:       yyS[yypt-1].Token,
  3149  				Expression2: yyS[yypt-0].node.(*Expression),
  3150  			}
  3151  		}
  3152  	case 61:
  3153  		{
  3154  			yyVAL.node = &Expression{
  3155  				Case:        49,
  3156  				Expression:  yyS[yypt-2].node.(*Expression),
  3157  				Token:       yyS[yypt-1].Token,
  3158  				Expression2: yyS[yypt-0].node.(*Expression),
  3159  			}
  3160  		}
  3161  	case 62:
  3162  		{
  3163  			yyVAL.node = &Expression{
  3164  				Case:        50,
  3165  				Expression:  yyS[yypt-2].node.(*Expression),
  3166  				Token:       yyS[yypt-1].Token,
  3167  				Expression2: yyS[yypt-0].node.(*Expression),
  3168  			}
  3169  		}
  3170  	case 63:
  3171  		{
  3172  			yyVAL.node = &Expression{
  3173  				Case:        51,
  3174  				Expression:  yyS[yypt-2].node.(*Expression),
  3175  				Token:       yyS[yypt-1].Token,
  3176  				Expression2: yyS[yypt-0].node.(*Expression),
  3177  			}
  3178  		}
  3179  	case 64:
  3180  		{
  3181  			yyVAL.node = &Expression{
  3182  				Case:        52,
  3183  				Expression:  yyS[yypt-2].node.(*Expression),
  3184  				Token:       yyS[yypt-1].Token,
  3185  				Expression2: yyS[yypt-0].node.(*Expression),
  3186  			}
  3187  		}
  3188  	case 65:
  3189  		{
  3190  			yyVAL.node = &Expression{
  3191  				Case:        53,
  3192  				Expression:  yyS[yypt-2].node.(*Expression),
  3193  				Token:       yyS[yypt-1].Token,
  3194  				Expression2: yyS[yypt-0].node.(*Expression),
  3195  			}
  3196  		}
  3197  	case 66:
  3198  		{
  3199  			yyVAL.node = &Expression{
  3200  				Case:        54,
  3201  				Expression:  yyS[yypt-2].node.(*Expression),
  3202  				Token:       yyS[yypt-1].Token,
  3203  				Expression2: yyS[yypt-0].node.(*Expression),
  3204  			}
  3205  		}
  3206  	case 67:
  3207  		{
  3208  			yyVAL.node = &Expression{
  3209  				Case:        55,
  3210  				Expression:  yyS[yypt-2].node.(*Expression),
  3211  				Token:       yyS[yypt-1].Token,
  3212  				Expression2: yyS[yypt-0].node.(*Expression),
  3213  			}
  3214  		}
  3215  	case 68:
  3216  		{
  3217  			yyVAL.node = &Expression{
  3218  				Case:     56,
  3219  				Token:    yyS[yypt-3].Token,
  3220  				Token2:   yyS[yypt-2].Token,
  3221  				TypeName: yyS[yypt-1].node.(*TypeName),
  3222  				Token3:   yyS[yypt-0].Token,
  3223  			}
  3224  		}
  3225  	case 69:
  3226  		{
  3227  			yyVAL.node = &Expression{
  3228  				Case:              57,
  3229  				Token:             yyS[yypt-2].Token,
  3230  				CompoundStatement: yyS[yypt-1].node.(*CompoundStatement),
  3231  				Token2:            yyS[yypt-0].Token,
  3232  			}
  3233  		}
  3234  	case 70:
  3235  		{
  3236  			lx := yylex.(*lexer)
  3237  			lhs := &Expression{
  3238  				Case:   58,
  3239  				Token:  yyS[yypt-1].Token,
  3240  				Token2: yyS[yypt-0].Token,
  3241  			}
  3242  			yyVAL.node = lhs
  3243  			if !lx.tweaks.enableComputedGotos {
  3244  				lx.report.Err(lhs.Pos(), "computed gotos not enabled")
  3245  			}
  3246  		}
  3247  	case 71:
  3248  		{
  3249  			lx := yylex.(*lexer)
  3250  			lhs := &Expression{
  3251  				Case:        59,
  3252  				Expression:  yyS[yypt-3].node.(*Expression),
  3253  				Token:       yyS[yypt-2].Token,
  3254  				Token2:      yyS[yypt-1].Token,
  3255  				Expression2: yyS[yypt-0].node.(*Expression),
  3256  			}
  3257  			yyVAL.node = lhs
  3258  			if !lx.tweaks.enableOmitConditionalOperand {
  3259  				lx.report.Err(lhs.Pos(), "omitting conditional operand not enabled")
  3260  			}
  3261  		}
  3262  	case 72:
  3263  		{
  3264  			yyVAL.node = (*ExpressionOpt)(nil)
  3265  		}
  3266  	case 73:
  3267  		{
  3268  			lx := yylex.(*lexer)
  3269  			lhs := &ExpressionOpt{
  3270  				Expression: yyS[yypt-0].node.(*Expression),
  3271  			}
  3272  			yyVAL.node = lhs
  3273  			lhs.Expression.eval(lx)
  3274  		}
  3275  	case 74:
  3276  		{
  3277  			yyVAL.node = &ExpressionList{
  3278  				Expression: yyS[yypt-0].node.(*Expression),
  3279  			}
  3280  		}
  3281  	case 75:
  3282  		{
  3283  			yyVAL.node = &ExpressionList{
  3284  				Case:           1,
  3285  				ExpressionList: yyS[yypt-2].node.(*ExpressionList),
  3286  				Token:          yyS[yypt-1].Token,
  3287  				Expression:     yyS[yypt-0].node.(*Expression),
  3288  			}
  3289  		}
  3290  	case 76:
  3291  		{
  3292  			yyVAL.node = (*ExpressionListOpt)(nil)
  3293  		}
  3294  	case 77:
  3295  		{
  3296  			lx := yylex.(*lexer)
  3297  			lhs := &ExpressionListOpt{
  3298  				ExpressionList: yyS[yypt-0].node.(*ExpressionList).reverse(),
  3299  			}
  3300  			yyVAL.node = lhs
  3301  			lhs.ExpressionList.eval(lx)
  3302  		}
  3303  	case 78:
  3304  		{
  3305  			lx := yylex.(*lexer)
  3306  			lx.constExprToks = []xc.Token{lx.last}
  3307  		}
  3308  	case 79:
  3309  		{
  3310  			lx := yylex.(*lexer)
  3311  			lhs := &ConstantExpression{
  3312  				Expression: yyS[yypt-0].node.(*Expression),
  3313  			}
  3314  			yyVAL.node = lhs
  3315  			lhs.Value, lhs.Type = lhs.Expression.eval(lx)
  3316  			if lhs.Value == nil {
  3317  				lx.report.Err(lhs.Pos(), "not a constant expression")
  3318  			}
  3319  			l := lx.constExprToks
  3320  			lhs.toks = l[:len(l)-1]
  3321  			lx.constExprToks = nil
  3322  		}
  3323  	case 80:
  3324  		{
  3325  			lx := yylex.(*lexer)
  3326  			lhs := &Declaration{
  3327  				DeclarationSpecifiers: yyS[yypt-2].node.(*DeclarationSpecifiers),
  3328  				InitDeclaratorListOpt: yyS[yypt-1].node.(*InitDeclaratorListOpt),
  3329  				Token:                 yyS[yypt-0].Token,
  3330  			}
  3331  			yyVAL.node = lhs
  3332  			ts0 := lhs.DeclarationSpecifiers.typeSpecifiers()
  3333  			if ts0 == 0 && lx.tweaks.enableImplicitIntType {
  3334  				lhs.DeclarationSpecifiers.typeSpecifier = tsEncode(tsInt)
  3335  			}
  3336  			ts := tsDecode(lhs.DeclarationSpecifiers.typeSpecifiers())
  3337  			ok := false
  3338  			for _, v := range ts {
  3339  				if v == tsStructSpecifier || v == tsUnionSpecifier {
  3340  					ok = true
  3341  					break
  3342  				}
  3343  			}
  3344  			if ok {
  3345  				s := lhs.DeclarationSpecifiers
  3346  				d := &Declarator{specifier: s}
  3347  				dd := &DirectDeclarator{
  3348  					Token:      xc.Token{Char: lex.NewChar(lhs.Pos(), 0)},
  3349  					declarator: d,
  3350  					idScope:    lx.scope,
  3351  					specifier:  s,
  3352  				}
  3353  				d.DirectDeclarator = dd
  3354  				d.setFull(lx)
  3355  				for l := lhs.DeclarationSpecifiers; l != nil; {
  3356  					ts := l.TypeSpecifier
  3357  					if ts != nil && ts.Case == 11 && ts.StructOrUnionSpecifier.Case == 0 { // StructOrUnion IdentifierOpt '{' StructDeclarationList '}'
  3358  						ts.StructOrUnionSpecifier.declarator = d
  3359  						break
  3360  					}
  3361  
  3362  					if o := l.DeclarationSpecifiersOpt; o != nil {
  3363  						l = o.DeclarationSpecifiers
  3364  						continue
  3365  					}
  3366  
  3367  					break
  3368  				}
  3369  			}
  3370  
  3371  			o := lhs.InitDeclaratorListOpt
  3372  			if o != nil {
  3373  				break
  3374  			}
  3375  
  3376  			s := lhs.DeclarationSpecifiers
  3377  			d := &Declarator{specifier: s}
  3378  			dd := &DirectDeclarator{
  3379  				Token:      xc.Token{Char: lex.NewChar(lhs.Pos(), 0)},
  3380  				declarator: d,
  3381  				idScope:    lx.scope,
  3382  				specifier:  s,
  3383  			}
  3384  			d.DirectDeclarator = dd
  3385  			d.setFull(lx)
  3386  			lhs.declarator = d
  3387  		}
  3388  	case 81:
  3389  		{
  3390  			yyVAL.node = &Declaration{
  3391  				Case:                    1,
  3392  				StaticAssertDeclaration: yyS[yypt-0].node.(*StaticAssertDeclaration),
  3393  			}
  3394  		}
  3395  	case 82:
  3396  		{
  3397  			lx := yylex.(*lexer)
  3398  			lhs := &DeclarationSpecifiers{
  3399  				StorageClassSpecifier:    yyS[yypt-1].node.(*StorageClassSpecifier),
  3400  				DeclarationSpecifiersOpt: yyS[yypt-0].node.(*DeclarationSpecifiersOpt),
  3401  			}
  3402  			yyVAL.node = lhs
  3403  			lx.scope.specifier = lhs
  3404  			a := lhs.StorageClassSpecifier
  3405  			b := lhs.DeclarationSpecifiersOpt
  3406  			if b == nil {
  3407  				lhs.attr = a.attr
  3408  				break
  3409  			}
  3410  
  3411  			if a.attr&b.attr != 0 {
  3412  				lx.report.Err(a.Pos(), "invalid storage class specifier")
  3413  				break
  3414  			}
  3415  
  3416  			lhs.attr = a.attr | b.attr
  3417  			lhs.typeSpecifier = b.typeSpecifier
  3418  			if lhs.StorageClassSpecifier.Case != 0 /* "typedef" */ && lhs.IsTypedef() {
  3419  				lx.report.Err(a.Pos(), "invalid storage class specifier")
  3420  			}
  3421  		}
  3422  	case 83:
  3423  		{
  3424  			lx := yylex.(*lexer)
  3425  			lhs := &DeclarationSpecifiers{
  3426  				Case:                     1,
  3427  				TypeSpecifier:            yyS[yypt-1].node.(*TypeSpecifier),
  3428  				DeclarationSpecifiersOpt: yyS[yypt-0].node.(*DeclarationSpecifiersOpt),
  3429  			}
  3430  			yyVAL.node = lhs
  3431  			lx.scope.specifier = lhs
  3432  			a := lhs.TypeSpecifier
  3433  			b := lhs.DeclarationSpecifiersOpt
  3434  			if b == nil {
  3435  				lhs.typeSpecifier = a.typeSpecifier
  3436  				break
  3437  			}
  3438  
  3439  			lhs.attr = b.attr
  3440  			tsb := tsDecode(b.typeSpecifier)
  3441  			if len(tsb) == 1 && tsb[0] == tsTypedefName && lx.tweaks.allowCompatibleTypedefRedefinitions {
  3442  				tsb[0] = 0
  3443  			}
  3444  			ts := tsEncode(append(tsDecode(a.typeSpecifier), tsb...)...)
  3445  			if _, ok := tsValid[ts]; !ok {
  3446  				ts = tsEncode(tsInt)
  3447  				lx.report.Err(a.Pos(), "invalid type specifier")
  3448  			}
  3449  			lhs.typeSpecifier = ts
  3450  		}
  3451  	case 84:
  3452  		{
  3453  			lx := yylex.(*lexer)
  3454  			lhs := &DeclarationSpecifiers{
  3455  				Case:                     2,
  3456  				TypeQualifier:            yyS[yypt-1].node.(*TypeQualifier),
  3457  				DeclarationSpecifiersOpt: yyS[yypt-0].node.(*DeclarationSpecifiersOpt),
  3458  			}
  3459  			yyVAL.node = lhs
  3460  			lx.scope.specifier = lhs
  3461  			a := lhs.TypeQualifier
  3462  			b := lhs.DeclarationSpecifiersOpt
  3463  			if b == nil {
  3464  				lhs.attr = a.attr
  3465  				break
  3466  			}
  3467  
  3468  			if a.attr&b.attr != 0 {
  3469  				lx.report.Err(a.Pos(), "invalid type qualifier")
  3470  				break
  3471  			}
  3472  
  3473  			lhs.attr = a.attr | b.attr
  3474  			lhs.typeSpecifier = b.typeSpecifier
  3475  			if lhs.IsTypedef() {
  3476  				lx.report.Err(a.Pos(), "invalid type qualifier")
  3477  			}
  3478  		}
  3479  	case 85:
  3480  		{
  3481  			lx := yylex.(*lexer)
  3482  			lhs := &DeclarationSpecifiers{
  3483  				Case:                     3,
  3484  				FunctionSpecifier:        yyS[yypt-1].node.(*FunctionSpecifier),
  3485  				DeclarationSpecifiersOpt: yyS[yypt-0].node.(*DeclarationSpecifiersOpt),
  3486  			}
  3487  			yyVAL.node = lhs
  3488  			lx.scope.specifier = lhs
  3489  			a := lhs.FunctionSpecifier
  3490  			b := lhs.DeclarationSpecifiersOpt
  3491  			if b == nil {
  3492  				lhs.attr = a.attr
  3493  				break
  3494  			}
  3495  
  3496  			if a.attr&b.attr != 0 {
  3497  				lx.report.Err(a.Pos(), "invalid function specifier")
  3498  				break
  3499  			}
  3500  
  3501  			lhs.attr = a.attr | b.attr
  3502  			lhs.typeSpecifier = b.typeSpecifier
  3503  			if lhs.IsTypedef() {
  3504  				lx.report.Err(a.Pos(), "invalid function specifier")
  3505  			}
  3506  		}
  3507  	case 86:
  3508  		{
  3509  			yyVAL.node = (*DeclarationSpecifiersOpt)(nil)
  3510  		}
  3511  	case 87:
  3512  		{
  3513  			lhs := &DeclarationSpecifiersOpt{
  3514  				DeclarationSpecifiers: yyS[yypt-0].node.(*DeclarationSpecifiers),
  3515  			}
  3516  			yyVAL.node = lhs
  3517  			lhs.attr = lhs.DeclarationSpecifiers.attr
  3518  			lhs.typeSpecifier = lhs.DeclarationSpecifiers.typeSpecifier
  3519  		}
  3520  	case 88:
  3521  		{
  3522  			yyVAL.node = &InitDeclaratorList{
  3523  				InitDeclarator: yyS[yypt-0].node.(*InitDeclarator),
  3524  			}
  3525  		}
  3526  	case 89:
  3527  		{
  3528  			yyVAL.node = &InitDeclaratorList{
  3529  				Case:               1,
  3530  				InitDeclaratorList: yyS[yypt-2].node.(*InitDeclaratorList),
  3531  				Token:              yyS[yypt-1].Token,
  3532  				InitDeclarator:     yyS[yypt-0].node.(*InitDeclarator),
  3533  			}
  3534  		}
  3535  	case 90:
  3536  		{
  3537  			yyVAL.node = (*InitDeclaratorListOpt)(nil)
  3538  		}
  3539  	case 91:
  3540  		{
  3541  			yyVAL.node = &InitDeclaratorListOpt{
  3542  				InitDeclaratorList: yyS[yypt-0].node.(*InitDeclaratorList).reverse(),
  3543  			}
  3544  		}
  3545  	case 92:
  3546  		{
  3547  			lx := yylex.(*lexer)
  3548  			lhs := &InitDeclarator{
  3549  				Declarator: yyS[yypt-0].node.(*Declarator),
  3550  			}
  3551  			yyVAL.node = lhs
  3552  			lhs.Declarator.setFull(lx)
  3553  		}
  3554  	case 93:
  3555  		{
  3556  			lx := yylex.(*lexer)
  3557  			d := yyS[yypt-0].node.(*Declarator)
  3558  			d.setFull(lx)
  3559  		}
  3560  	case 94:
  3561  		{
  3562  			lx := yylex.(*lexer)
  3563  			lhs := &InitDeclarator{
  3564  				Case:        1,
  3565  				Declarator:  yyS[yypt-3].node.(*Declarator),
  3566  				Token:       yyS[yypt-1].Token,
  3567  				Initializer: yyS[yypt-0].node.(*Initializer),
  3568  			}
  3569  			yyVAL.node = lhs
  3570  			d := lhs.Declarator
  3571  			lhs.Initializer.typeCheck(&d.Type, d.Type, lhs.Declarator.specifier.IsStatic(), lx)
  3572  			if d.Type.Specifier().IsExtern() {
  3573  				id, _ := d.Identifier()
  3574  				lx.report.Err(d.Pos(), "'%s' initialized and declared 'extern'", dict.S(id))
  3575  			}
  3576  		}
  3577  	case 95:
  3578  		{
  3579  			lhs := &StorageClassSpecifier{
  3580  				Token: yyS[yypt-0].Token,
  3581  			}
  3582  			yyVAL.node = lhs
  3583  			lhs.attr = saTypedef
  3584  		}
  3585  	case 96:
  3586  		{
  3587  			lhs := &StorageClassSpecifier{
  3588  				Case:  1,
  3589  				Token: yyS[yypt-0].Token,
  3590  			}
  3591  			yyVAL.node = lhs
  3592  			lhs.attr = saExtern
  3593  		}
  3594  	case 97:
  3595  		{
  3596  			lhs := &StorageClassSpecifier{
  3597  				Case:  2,
  3598  				Token: yyS[yypt-0].Token,
  3599  			}
  3600  			yyVAL.node = lhs
  3601  			lhs.attr = saStatic
  3602  		}
  3603  	case 98:
  3604  		{
  3605  			lhs := &StorageClassSpecifier{
  3606  				Case:  3,
  3607  				Token: yyS[yypt-0].Token,
  3608  			}
  3609  			yyVAL.node = lhs
  3610  			lhs.attr = saAuto
  3611  		}
  3612  	case 99:
  3613  		{
  3614  			lhs := &StorageClassSpecifier{
  3615  				Case:  4,
  3616  				Token: yyS[yypt-0].Token,
  3617  			}
  3618  			yyVAL.node = lhs
  3619  			lhs.attr = saRegister
  3620  		}
  3621  	case 100:
  3622  		{
  3623  			lhs := &TypeSpecifier{
  3624  				Token: yyS[yypt-0].Token,
  3625  			}
  3626  			yyVAL.node = lhs
  3627  			lhs.typeSpecifier = tsEncode(tsVoid)
  3628  		}
  3629  	case 101:
  3630  		{
  3631  			lhs := &TypeSpecifier{
  3632  				Case:  1,
  3633  				Token: yyS[yypt-0].Token,
  3634  			}
  3635  			yyVAL.node = lhs
  3636  			lhs.typeSpecifier = tsEncode(tsChar)
  3637  		}
  3638  	case 102:
  3639  		{
  3640  			lhs := &TypeSpecifier{
  3641  				Case:  2,
  3642  				Token: yyS[yypt-0].Token,
  3643  			}
  3644  			yyVAL.node = lhs
  3645  			lhs.typeSpecifier = tsEncode(tsShort)
  3646  		}
  3647  	case 103:
  3648  		{
  3649  			lhs := &TypeSpecifier{
  3650  				Case:  3,
  3651  				Token: yyS[yypt-0].Token,
  3652  			}
  3653  			yyVAL.node = lhs
  3654  			lhs.typeSpecifier = tsEncode(tsInt)
  3655  		}
  3656  	case 104:
  3657  		{
  3658  			lhs := &TypeSpecifier{
  3659  				Case:  4,
  3660  				Token: yyS[yypt-0].Token,
  3661  			}
  3662  			yyVAL.node = lhs
  3663  			lhs.typeSpecifier = tsEncode(tsLong)
  3664  		}
  3665  	case 105:
  3666  		{
  3667  			lhs := &TypeSpecifier{
  3668  				Case:  5,
  3669  				Token: yyS[yypt-0].Token,
  3670  			}
  3671  			yyVAL.node = lhs
  3672  			lhs.typeSpecifier = tsEncode(tsFloat)
  3673  		}
  3674  	case 106:
  3675  		{
  3676  			lhs := &TypeSpecifier{
  3677  				Case:  6,
  3678  				Token: yyS[yypt-0].Token,
  3679  			}
  3680  			yyVAL.node = lhs
  3681  			lhs.typeSpecifier = tsEncode(tsDouble)
  3682  		}
  3683  	case 107:
  3684  		{
  3685  			lhs := &TypeSpecifier{
  3686  				Case:  7,
  3687  				Token: yyS[yypt-0].Token,
  3688  			}
  3689  			yyVAL.node = lhs
  3690  			lhs.typeSpecifier = tsEncode(tsSigned)
  3691  		}
  3692  	case 108:
  3693  		{
  3694  			lhs := &TypeSpecifier{
  3695  				Case:  8,
  3696  				Token: yyS[yypt-0].Token,
  3697  			}
  3698  			yyVAL.node = lhs
  3699  			lhs.typeSpecifier = tsEncode(tsUnsigned)
  3700  		}
  3701  	case 109:
  3702  		{
  3703  			lhs := &TypeSpecifier{
  3704  				Case:  9,
  3705  				Token: yyS[yypt-0].Token,
  3706  			}
  3707  			yyVAL.node = lhs
  3708  			lhs.typeSpecifier = tsEncode(tsBool)
  3709  		}
  3710  	case 110:
  3711  		{
  3712  			lhs := &TypeSpecifier{
  3713  				Case:  10,
  3714  				Token: yyS[yypt-0].Token,
  3715  			}
  3716  			yyVAL.node = lhs
  3717  			lhs.typeSpecifier = tsEncode(tsComplex)
  3718  		}
  3719  	case 111:
  3720  		{
  3721  			lhs := &TypeSpecifier{
  3722  				Case:                   11,
  3723  				StructOrUnionSpecifier: yyS[yypt-0].node.(*StructOrUnionSpecifier),
  3724  			}
  3725  			yyVAL.node = lhs
  3726  			lhs.typeSpecifier = tsEncode(lhs.StructOrUnionSpecifier.typeSpecifiers())
  3727  		}
  3728  	case 112:
  3729  		{
  3730  			lhs := &TypeSpecifier{
  3731  				Case:          12,
  3732  				EnumSpecifier: yyS[yypt-0].node.(*EnumSpecifier),
  3733  			}
  3734  			yyVAL.node = lhs
  3735  			lhs.typeSpecifier = tsEncode(tsEnumSpecifier)
  3736  		}
  3737  	case 113:
  3738  		{
  3739  			lx := yylex.(*lexer)
  3740  			lhs := &TypeSpecifier{
  3741  				Case:  13,
  3742  				Token: yyS[yypt-0].Token,
  3743  			}
  3744  			yyVAL.node = lhs
  3745  			lhs.typeSpecifier = tsEncode(tsTypedefName)
  3746  			_, lhs.scope = lx.scope.Lookup2(NSIdentifiers, lhs.Token.Val)
  3747  		}
  3748  	case 114:
  3749  		{
  3750  			lx := yylex.(*lexer)
  3751  			lhs := &TypeSpecifier{
  3752  				Case:       14,
  3753  				Token:      yyS[yypt-3].Token,
  3754  				Token2:     yyS[yypt-2].Token,
  3755  				Expression: yyS[yypt-1].node.(*Expression),
  3756  				Token3:     yyS[yypt-0].Token,
  3757  			}
  3758  			yyVAL.node = lhs
  3759  			lhs.typeSpecifier = tsEncode(tsTypeof)
  3760  			_, lhs.Type = lhs.Expression.eval(lx)
  3761  		}
  3762  	case 115:
  3763  		{
  3764  			lhs := &TypeSpecifier{
  3765  				Case:     15,
  3766  				Token:    yyS[yypt-3].Token,
  3767  				Token2:   yyS[yypt-2].Token,
  3768  				TypeName: yyS[yypt-1].node.(*TypeName),
  3769  				Token3:   yyS[yypt-0].Token,
  3770  			}
  3771  			yyVAL.node = lhs
  3772  			lhs.typeSpecifier = tsEncode(tsTypeof)
  3773  			lhs.Type = undefined
  3774  			if t := lhs.TypeName.Type; t != nil {
  3775  				lhs.Type = t
  3776  			}
  3777  		}
  3778  	case 116:
  3779  		{
  3780  			lx := yylex.(*lexer)
  3781  			if o := yyS[yypt-1].node.(*IdentifierOpt); o != nil {
  3782  				lx.scope.declareStructTag(o.Token, lx.report)
  3783  			}
  3784  			lx.pushScope(ScopeMembers)
  3785  			lx.scope.isUnion = yyS[yypt-2].node.(*StructOrUnion).Case == 1 // "union"
  3786  			lx.scope.prevStructDeclarator = nil
  3787  		}
  3788  	case 117:
  3789  		{
  3790  			lx := yylex.(*lexer)
  3791  			lhs := &StructOrUnionSpecifier{
  3792  				StructOrUnion:         yyS[yypt-5].node.(*StructOrUnion),
  3793  				IdentifierOpt:         yyS[yypt-4].node.(*IdentifierOpt),
  3794  				Token:                 yyS[yypt-3].Token,
  3795  				StructDeclarationList: yyS[yypt-1].node.(*StructDeclarationList).reverse(),
  3796  				Token2:                yyS[yypt-0].Token,
  3797  			}
  3798  			yyVAL.node = lhs
  3799  			sc := lx.scope
  3800  			lhs.scope = sc
  3801  			if sc.bitOffset != 0 {
  3802  				finishBitField(lhs, lx)
  3803  			}
  3804  
  3805  			i := 0
  3806  			var bt Type
  3807  			var d *Declarator
  3808  			for l := lhs.StructDeclarationList; l != nil; l = l.StructDeclarationList {
  3809  				for l := l.StructDeclaration.StructDeclaratorList; l != nil; l = l.StructDeclaratorList {
  3810  					switch sd := l.StructDeclarator; sd.Case {
  3811  					case 0: // Declarator
  3812  						d = sd.Declarator
  3813  					case 1: // DeclaratorOpt ':' ConstantExpression
  3814  						if o := sd.DeclaratorOpt; o != nil {
  3815  							x := o.Declarator
  3816  							if x.bitOffset == 0 {
  3817  								d = x
  3818  								bt = lx.scope.bitFieldTypes[i]
  3819  								i++
  3820  							}
  3821  							x.bitFieldType = bt
  3822  						}
  3823  					}
  3824  				}
  3825  			}
  3826  			lx.scope.bitFieldTypes = nil
  3827  
  3828  			lhs.alignOf = sc.maxAlign
  3829  			switch {
  3830  			case sc.isUnion:
  3831  				lhs.sizeOf = align(sc.maxSize, sc.maxAlign)
  3832  			default:
  3833  				off := sc.offset
  3834  				lhs.sizeOf = align(sc.offset, sc.maxAlign)
  3835  				if d != nil {
  3836  					d.padding = lhs.sizeOf - off
  3837  				}
  3838  			}
  3839  
  3840  			lx.popScope(lhs.Token2)
  3841  			if o := lhs.IdentifierOpt; o != nil {
  3842  				lx.scope.defineStructTag(o.Token, lhs, lx.report)
  3843  			}
  3844  		}
  3845  	case 118:
  3846  		{
  3847  			lx := yylex.(*lexer)
  3848  			lhs := &StructOrUnionSpecifier{
  3849  				Case:          1,
  3850  				StructOrUnion: yyS[yypt-1].node.(*StructOrUnion),
  3851  				Token:         yyS[yypt-0].Token,
  3852  			}
  3853  			yyVAL.node = lhs
  3854  			lx.scope.declareStructTag(lhs.Token, lx.report)
  3855  			lhs.scope = lx.scope
  3856  		}
  3857  	case 119:
  3858  		{
  3859  			lx := yylex.(*lexer)
  3860  			lhs := &StructOrUnionSpecifier{
  3861  				Case:          2,
  3862  				StructOrUnion: yyS[yypt-3].node.(*StructOrUnion),
  3863  				IdentifierOpt: yyS[yypt-2].node.(*IdentifierOpt),
  3864  				Token:         yyS[yypt-1].Token,
  3865  				Token2:        yyS[yypt-0].Token,
  3866  			}
  3867  			yyVAL.node = lhs
  3868  			if !lx.tweaks.enableEmptyStructs {
  3869  				lx.report.Err(lhs.Token.Pos(), "empty structs/unions not allowed")
  3870  			}
  3871  			if o := yyS[yypt-2].node.(*IdentifierOpt); o != nil {
  3872  				lx.scope.declareStructTag(o.Token, lx.report)
  3873  			}
  3874  			lx.scope.isUnion = yyS[yypt-3].node.(*StructOrUnion).Case == 1 // "union"
  3875  			lx.scope.prevStructDeclarator = nil
  3876  			lhs.alignOf = 1
  3877  			lhs.sizeOf = 0
  3878  			if o := lhs.IdentifierOpt; o != nil {
  3879  				lx.scope.defineStructTag(o.Token, lhs, lx.report)
  3880  			}
  3881  		}
  3882  	case 120:
  3883  		{
  3884  			yyVAL.node = &StructOrUnion{
  3885  				Token: yyS[yypt-0].Token,
  3886  			}
  3887  		}
  3888  	case 121:
  3889  		{
  3890  			yyVAL.node = &StructOrUnion{
  3891  				Case:  1,
  3892  				Token: yyS[yypt-0].Token,
  3893  			}
  3894  		}
  3895  	case 122:
  3896  		{
  3897  			yyVAL.node = &StructDeclarationList{
  3898  				StructDeclaration: yyS[yypt-0].node.(*StructDeclaration),
  3899  			}
  3900  		}
  3901  	case 123:
  3902  		{
  3903  			yyVAL.node = &StructDeclarationList{
  3904  				Case:                  1,
  3905  				StructDeclarationList: yyS[yypt-1].node.(*StructDeclarationList),
  3906  				StructDeclaration:     yyS[yypt-0].node.(*StructDeclaration),
  3907  			}
  3908  		}
  3909  	case 124:
  3910  		{
  3911  			lx := yylex.(*lexer)
  3912  			lhs := &StructDeclaration{
  3913  				SpecifierQualifierList: yyS[yypt-2].node.(*SpecifierQualifierList),
  3914  				StructDeclaratorList:   yyS[yypt-1].node.(*StructDeclaratorList).reverse(),
  3915  				Token:                  yyS[yypt-0].Token,
  3916  			}
  3917  			yyVAL.node = lhs
  3918  			s := lhs.SpecifierQualifierList
  3919  			if k := s.kind(); k != Struct && k != Union {
  3920  				break
  3921  			}
  3922  
  3923  			d := &Declarator{specifier: s}
  3924  			dd := &DirectDeclarator{
  3925  				Token:      xc.Token{Char: lex.NewChar(lhs.Pos(), 0)},
  3926  				declarator: d,
  3927  				idScope:    lx.scope,
  3928  				specifier:  s,
  3929  			}
  3930  			d.DirectDeclarator = dd
  3931  			d.setFull(lx)
  3932  			for l := lhs.SpecifierQualifierList; l != nil; {
  3933  				ts := l.TypeSpecifier
  3934  				if ts != nil && ts.Case == 11 && ts.StructOrUnionSpecifier.Case == 0 { // StructOrUnion IdentifierOpt '{' StructDeclarationList '}'
  3935  					ts.StructOrUnionSpecifier.declarator = d
  3936  					break
  3937  				}
  3938  
  3939  				if o := l.SpecifierQualifierListOpt; o != nil {
  3940  					l = o.SpecifierQualifierList
  3941  					continue
  3942  				}
  3943  
  3944  				break
  3945  			}
  3946  		}
  3947  	case 125:
  3948  		{
  3949  			lx := yylex.(*lexer)
  3950  			lhs := &StructDeclaration{
  3951  				Case:                   1,
  3952  				SpecifierQualifierList: yyS[yypt-1].node.(*SpecifierQualifierList),
  3953  				Token:                  yyS[yypt-0].Token,
  3954  			}
  3955  			yyVAL.node = lhs
  3956  			s := lhs.SpecifierQualifierList
  3957  			if !lx.tweaks.enableAnonymousStructFields {
  3958  				lx.report.Err(lhs.Token.Pos(), "unnamed fields not allowed")
  3959  			} else if k := s.kind(); k != Struct && k != Union {
  3960  				lx.report.Err(lhs.Token.Pos(), "only unnamed structs and unions are allowed")
  3961  				break
  3962  			}
  3963  
  3964  			d := &Declarator{specifier: s}
  3965  			dd := &DirectDeclarator{
  3966  				Token:      xc.Token{Char: lex.NewChar(lhs.Pos(), 0)},
  3967  				declarator: d,
  3968  				idScope:    lx.scope,
  3969  				specifier:  s,
  3970  			}
  3971  			d.DirectDeclarator = dd
  3972  			d.setFull(lx)
  3973  
  3974  			// we have no struct declarators to parse, so we have to create the case of one implicit declarator
  3975  			// because else the size of anonymous members is not included in the struct size!
  3976  			dummy := &StructDeclarator{Declarator: d}
  3977  			dummy.post(lx)
  3978  
  3979  			for l := lhs.SpecifierQualifierList; l != nil; {
  3980  				ts := l.TypeSpecifier
  3981  				if ts != nil && ts.Case == 11 && ts.StructOrUnionSpecifier.Case == 0 { // StructOrUnion IdentifierOpt '{' StructDeclarationList '}'
  3982  					ts.StructOrUnionSpecifier.declarator = d
  3983  					break
  3984  				}
  3985  
  3986  				if o := l.SpecifierQualifierListOpt; o != nil {
  3987  					l = o.SpecifierQualifierList
  3988  					continue
  3989  				}
  3990  
  3991  				break
  3992  			}
  3993  		}
  3994  	case 126:
  3995  		{
  3996  			yyVAL.node = &StructDeclaration{
  3997  				Case:                    2,
  3998  				StaticAssertDeclaration: yyS[yypt-0].node.(*StaticAssertDeclaration),
  3999  			}
  4000  		}
  4001  	case 127:
  4002  		{
  4003  			lx := yylex.(*lexer)
  4004  			lhs := &SpecifierQualifierList{
  4005  				TypeSpecifier:             yyS[yypt-1].node.(*TypeSpecifier),
  4006  				SpecifierQualifierListOpt: yyS[yypt-0].node.(*SpecifierQualifierListOpt),
  4007  			}
  4008  			yyVAL.node = lhs
  4009  			lx.scope.specifier = lhs
  4010  			a := lhs.TypeSpecifier
  4011  			b := lhs.SpecifierQualifierListOpt
  4012  			if b == nil {
  4013  				lhs.typeSpecifier = a.typeSpecifier
  4014  				break
  4015  			}
  4016  
  4017  			lhs.attr = b.attr
  4018  			ts := tsEncode(append(tsDecode(a.typeSpecifier), tsDecode(b.typeSpecifier)...)...)
  4019  			if _, ok := tsValid[ts]; !ok {
  4020  				lx.report.Err(a.Pos(), "invalid type specifier")
  4021  				break
  4022  			}
  4023  
  4024  			lhs.typeSpecifier = ts
  4025  		}
  4026  	case 128:
  4027  		{
  4028  			lx := yylex.(*lexer)
  4029  			lhs := &SpecifierQualifierList{
  4030  				Case:                      1,
  4031  				TypeQualifier:             yyS[yypt-1].node.(*TypeQualifier),
  4032  				SpecifierQualifierListOpt: yyS[yypt-0].node.(*SpecifierQualifierListOpt),
  4033  			}
  4034  			yyVAL.node = lhs
  4035  			lx.scope.specifier = lhs
  4036  			a := lhs.TypeQualifier
  4037  			b := lhs.SpecifierQualifierListOpt
  4038  			if b == nil {
  4039  				lhs.attr = a.attr
  4040  				break
  4041  			}
  4042  
  4043  			if a.attr&b.attr != 0 {
  4044  				lx.report.Err(a.Pos(), "invalid type qualifier")
  4045  				break
  4046  			}
  4047  
  4048  			lhs.attr = a.attr | b.attr
  4049  			lhs.typeSpecifier = b.typeSpecifier
  4050  		}
  4051  	case 129:
  4052  		{
  4053  			yyVAL.node = (*SpecifierQualifierListOpt)(nil)
  4054  		}
  4055  	case 130:
  4056  		{
  4057  			lhs := &SpecifierQualifierListOpt{
  4058  				SpecifierQualifierList: yyS[yypt-0].node.(*SpecifierQualifierList),
  4059  			}
  4060  			yyVAL.node = lhs
  4061  			lhs.attr = lhs.SpecifierQualifierList.attr
  4062  			lhs.typeSpecifier = lhs.SpecifierQualifierList.typeSpecifier
  4063  		}
  4064  	case 131:
  4065  		{
  4066  			yyVAL.node = &StructDeclaratorList{
  4067  				StructDeclarator: yyS[yypt-0].node.(*StructDeclarator),
  4068  			}
  4069  		}
  4070  	case 132:
  4071  		{
  4072  			yyVAL.node = &StructDeclaratorList{
  4073  				Case:                 1,
  4074  				StructDeclaratorList: yyS[yypt-2].node.(*StructDeclaratorList),
  4075  				Token:                yyS[yypt-1].Token,
  4076  				StructDeclarator:     yyS[yypt-0].node.(*StructDeclarator),
  4077  			}
  4078  		}
  4079  	case 133:
  4080  		{
  4081  			lx := yylex.(*lexer)
  4082  			lhs := &StructDeclarator{
  4083  				Declarator: yyS[yypt-0].node.(*Declarator),
  4084  			}
  4085  			yyVAL.node = lhs
  4086  			lhs.Declarator.setFull(lx)
  4087  			lhs.post(lx)
  4088  		}
  4089  	case 134:
  4090  		{
  4091  			lx := yylex.(*lexer)
  4092  			lhs := &StructDeclarator{
  4093  				Case:               1,
  4094  				DeclaratorOpt:      yyS[yypt-2].node.(*DeclaratorOpt),
  4095  				Token:              yyS[yypt-1].Token,
  4096  				ConstantExpression: yyS[yypt-0].node.(*ConstantExpression),
  4097  			}
  4098  			yyVAL.node = lhs
  4099  			m := lx.model
  4100  			e := lhs.ConstantExpression
  4101  			if e.Value == nil {
  4102  				e.Value, e.Type = m.value2(1, m.IntType)
  4103  			}
  4104  			if !IsIntType(e.Type) {
  4105  				lx.report.Err(e.Pos(), "bit field width not an integer (have '%s')", e.Type)
  4106  				e.Value, e.Type = m.value2(1, m.IntType)
  4107  			}
  4108  			if o := lhs.DeclaratorOpt; o != nil {
  4109  				o.Declarator.setFull(lx)
  4110  			}
  4111  			lhs.post(lx)
  4112  		}
  4113  	case 135:
  4114  		{
  4115  			yyVAL.node = (*CommaOpt)(nil)
  4116  		}
  4117  	case 136:
  4118  		{
  4119  			yyVAL.node = &CommaOpt{
  4120  				Token: yyS[yypt-0].Token,
  4121  			}
  4122  		}
  4123  	case 137:
  4124  		{
  4125  			lx := yylex.(*lexer)
  4126  			if o := yyS[yypt-0].node.(*IdentifierOpt); o != nil {
  4127  				lx.scope.declareEnumTag(o.Token, lx.report)
  4128  			}
  4129  			lx.iota = 0
  4130  		}
  4131  	case 138:
  4132  		{
  4133  			lx := yylex.(*lexer)
  4134  			lhs := &EnumSpecifier{
  4135  				Token:          yyS[yypt-6].Token,
  4136  				IdentifierOpt:  yyS[yypt-5].node.(*IdentifierOpt),
  4137  				Token2:         yyS[yypt-3].Token,
  4138  				EnumeratorList: yyS[yypt-2].node.(*EnumeratorList).reverse(),
  4139  				CommaOpt:       yyS[yypt-1].node.(*CommaOpt),
  4140  				Token3:         yyS[yypt-0].Token,
  4141  			}
  4142  			yyVAL.node = lhs
  4143  			if o := lhs.IdentifierOpt; o != nil {
  4144  				lx.scope.defineEnumTag(o.Token, lhs, lx.report)
  4145  			}
  4146  			if !lx.tweaks.enableUnsignedEnums {
  4147  				break
  4148  			}
  4149  
  4150  			lhs.unsigned = true
  4151  		loop:
  4152  			for l := lhs.EnumeratorList; l != nil; l = l.EnumeratorList {
  4153  				switch e := l.Enumerator; x := e.Value.(type) {
  4154  				case int32:
  4155  					if x < 0 {
  4156  						lhs.unsigned = false
  4157  						break loop
  4158  					}
  4159  				case int64:
  4160  					if x < 0 {
  4161  						lhs.unsigned = false
  4162  						break loop
  4163  					}
  4164  				default:
  4165  					panic(fmt.Errorf("%s: TODO Enumerator.Value type %T", position(e.Pos()), x))
  4166  				}
  4167  			}
  4168  		}
  4169  	case 139:
  4170  		{
  4171  			lx := yylex.(*lexer)
  4172  			lhs := &EnumSpecifier{
  4173  				Case:   1,
  4174  				Token:  yyS[yypt-1].Token,
  4175  				Token2: yyS[yypt-0].Token,
  4176  			}
  4177  			yyVAL.node = lhs
  4178  			lx.scope.declareEnumTag(lhs.Token2, lx.report)
  4179  		}
  4180  	case 140:
  4181  		{
  4182  			yyVAL.node = &EnumeratorList{
  4183  				Enumerator: yyS[yypt-0].node.(*Enumerator),
  4184  			}
  4185  		}
  4186  	case 141:
  4187  		{
  4188  			yyVAL.node = &EnumeratorList{
  4189  				Case:           1,
  4190  				EnumeratorList: yyS[yypt-2].node.(*EnumeratorList),
  4191  				Token:          yyS[yypt-1].Token,
  4192  				Enumerator:     yyS[yypt-0].node.(*Enumerator),
  4193  			}
  4194  		}
  4195  	case 142:
  4196  		{
  4197  			lx := yylex.(*lexer)
  4198  			lhs := &Enumerator{
  4199  				EnumerationConstant: yyS[yypt-0].node.(*EnumerationConstant),
  4200  			}
  4201  			yyVAL.node = lhs
  4202  			m := lx.model
  4203  			v := m.MustConvert(lx.iota, m.IntType)
  4204  			lhs.Value = v
  4205  			lx.scope.defineEnumConst(lx, lhs.EnumerationConstant.Token, v)
  4206  		}
  4207  	case 143:
  4208  		{
  4209  			lx := yylex.(*lexer)
  4210  			lhs := &Enumerator{
  4211  				Case:                1,
  4212  				EnumerationConstant: yyS[yypt-2].node.(*EnumerationConstant),
  4213  				Token:               yyS[yypt-1].Token,
  4214  				ConstantExpression:  yyS[yypt-0].node.(*ConstantExpression),
  4215  			}
  4216  			yyVAL.node = lhs
  4217  			m := lx.model
  4218  			e := lhs.ConstantExpression
  4219  			var v interface{}
  4220  			// [0], 6.7.2.2
  4221  			// The expression that defines the value of an enumeration
  4222  			// constant shall be an integer constant expression that has a
  4223  			// value representable as an int.
  4224  			switch {
  4225  			case !IsIntType(e.Type):
  4226  				lx.report.Err(e.Pos(), "not an integer constant expression (have '%s')", e.Type)
  4227  				v = m.MustConvert(int32(0), m.IntType)
  4228  			default:
  4229  				var ok bool
  4230  				if v, ok = m.enumValueToInt(e.Value); !ok {
  4231  					lx.report.Err(e.Pos(), "overflow in enumeration value: %v", e.Value)
  4232  				}
  4233  			}
  4234  
  4235  			lhs.Value = v
  4236  			lx.scope.defineEnumConst(lx, lhs.EnumerationConstant.Token, v)
  4237  		}
  4238  	case 144:
  4239  		{
  4240  			lhs := &TypeQualifier{
  4241  				Token: yyS[yypt-0].Token,
  4242  			}
  4243  			yyVAL.node = lhs
  4244  			lhs.attr = saConst
  4245  		}
  4246  	case 145:
  4247  		{
  4248  			lhs := &TypeQualifier{
  4249  				Case:  1,
  4250  				Token: yyS[yypt-0].Token,
  4251  			}
  4252  			yyVAL.node = lhs
  4253  			lhs.attr = saRestrict
  4254  		}
  4255  	case 146:
  4256  		{
  4257  			lhs := &TypeQualifier{
  4258  				Case:  2,
  4259  				Token: yyS[yypt-0].Token,
  4260  			}
  4261  			yyVAL.node = lhs
  4262  			lhs.attr = saVolatile
  4263  		}
  4264  	case 147:
  4265  		{
  4266  			lhs := &FunctionSpecifier{
  4267  				Token: yyS[yypt-0].Token,
  4268  			}
  4269  			yyVAL.node = lhs
  4270  			lhs.attr = saInline
  4271  		}
  4272  	case 148:
  4273  		{
  4274  			lhs := &FunctionSpecifier{
  4275  				Case:  1,
  4276  				Token: yyS[yypt-0].Token,
  4277  			}
  4278  			yyVAL.node = lhs
  4279  			lhs.attr = saNoreturn
  4280  		}
  4281  	case 149:
  4282  		{
  4283  			lx := yylex.(*lexer)
  4284  			lhs := &Declarator{
  4285  				PointerOpt:       yyS[yypt-1].node.(*PointerOpt),
  4286  				DirectDeclarator: yyS[yypt-0].node.(*DirectDeclarator),
  4287  			}
  4288  			yyVAL.node = lhs
  4289  			lhs.specifier = lx.scope.specifier
  4290  			lhs.DirectDeclarator.declarator = lhs
  4291  		}
  4292  	case 150:
  4293  		{
  4294  			yyVAL.node = (*DeclaratorOpt)(nil)
  4295  		}
  4296  	case 151:
  4297  		{
  4298  			yyVAL.node = &DeclaratorOpt{
  4299  				Declarator: yyS[yypt-0].node.(*Declarator),
  4300  			}
  4301  		}
  4302  	case 152:
  4303  		{
  4304  			lx := yylex.(*lexer)
  4305  			lhs := &DirectDeclarator{
  4306  				Token: yyS[yypt-0].Token,
  4307  			}
  4308  			yyVAL.node = lhs
  4309  			lhs.specifier = lx.scope.specifier
  4310  			lx.scope.declareIdentifier(lhs.Token, lhs, lx.report)
  4311  			lhs.idScope = lx.scope
  4312  		}
  4313  	case 153:
  4314  		{
  4315  			lhs := &DirectDeclarator{
  4316  				Case:       1,
  4317  				Token:      yyS[yypt-2].Token,
  4318  				Declarator: yyS[yypt-1].node.(*Declarator),
  4319  				Token2:     yyS[yypt-0].Token,
  4320  			}
  4321  			yyVAL.node = lhs
  4322  			lhs.Declarator.specifier = nil
  4323  			lhs.Declarator.DirectDeclarator.parent = lhs
  4324  		}
  4325  	case 154:
  4326  		{
  4327  			lx := yylex.(*lexer)
  4328  			lhs := &DirectDeclarator{
  4329  				Case:                 2,
  4330  				DirectDeclarator:     yyS[yypt-4].node.(*DirectDeclarator),
  4331  				Token:                yyS[yypt-3].Token,
  4332  				TypeQualifierListOpt: yyS[yypt-2].node.(*TypeQualifierListOpt),
  4333  				ExpressionOpt:        yyS[yypt-1].node.(*ExpressionOpt),
  4334  				Token2:               yyS[yypt-0].Token,
  4335  			}
  4336  			yyVAL.node = lhs
  4337  			lhs.elements = -1
  4338  			if o := lhs.ExpressionOpt; o != nil {
  4339  				var err error
  4340  				if lhs.elements, err = elements(o.Expression.eval(lx)); err != nil {
  4341  					lx.report.Err(o.Expression.Pos(), "%s", err)
  4342  				}
  4343  
  4344  			}
  4345  			lhs.DirectDeclarator.parent = lhs
  4346  		}
  4347  	case 155:
  4348  		{
  4349  			lx := yylex.(*lexer)
  4350  			lhs := &DirectDeclarator{
  4351  				Case:                 3,
  4352  				DirectDeclarator:     yyS[yypt-5].node.(*DirectDeclarator),
  4353  				Token:                yyS[yypt-4].Token,
  4354  				Token2:               yyS[yypt-3].Token,
  4355  				TypeQualifierListOpt: yyS[yypt-2].node.(*TypeQualifierListOpt),
  4356  				Expression:           yyS[yypt-1].node.(*Expression),
  4357  				Token3:               yyS[yypt-0].Token,
  4358  			}
  4359  			yyVAL.node = lhs
  4360  			var err error
  4361  			if lhs.elements, err = elements(lhs.Expression.eval(lx)); err != nil {
  4362  				lx.report.Err(lhs.Expression.Pos(), "%s", err)
  4363  			}
  4364  			lhs.DirectDeclarator.parent = lhs
  4365  		}
  4366  	case 156:
  4367  		{
  4368  			lx := yylex.(*lexer)
  4369  			lhs := &DirectDeclarator{
  4370  				Case:              4,
  4371  				DirectDeclarator:  yyS[yypt-5].node.(*DirectDeclarator),
  4372  				Token:             yyS[yypt-4].Token,
  4373  				TypeQualifierList: yyS[yypt-3].node.(*TypeQualifierList).reverse(),
  4374  				Token2:            yyS[yypt-2].Token,
  4375  				Expression:        yyS[yypt-1].node.(*Expression),
  4376  				Token3:            yyS[yypt-0].Token,
  4377  			}
  4378  			yyVAL.node = lhs
  4379  			var err error
  4380  			if lhs.elements, err = elements(lhs.Expression.eval(lx)); err != nil {
  4381  				lx.report.Err(lhs.Expression.Pos(), "%s", err)
  4382  			}
  4383  			lhs.DirectDeclarator.parent = lhs
  4384  		}
  4385  	case 157:
  4386  		{
  4387  			lhs := &DirectDeclarator{
  4388  				Case:                 5,
  4389  				DirectDeclarator:     yyS[yypt-4].node.(*DirectDeclarator),
  4390  				Token:                yyS[yypt-3].Token,
  4391  				TypeQualifierListOpt: yyS[yypt-2].node.(*TypeQualifierListOpt),
  4392  				Token2:               yyS[yypt-1].Token,
  4393  				Token3:               yyS[yypt-0].Token,
  4394  			}
  4395  			yyVAL.node = lhs
  4396  			lhs.DirectDeclarator.parent = lhs
  4397  			lhs.elements = -1
  4398  		}
  4399  	case 158:
  4400  		{
  4401  			lx := yylex.(*lexer)
  4402  			lx.pushScope(ScopeParams)
  4403  		}
  4404  	case 159:
  4405  		{
  4406  			lx := yylex.(*lexer)
  4407  			lhs := &DirectDeclarator{
  4408  				Case:              6,
  4409  				DirectDeclarator:  yyS[yypt-4].node.(*DirectDeclarator),
  4410  				Token:             yyS[yypt-3].Token,
  4411  				ParameterTypeList: yyS[yypt-1].node.(*ParameterTypeList),
  4412  				Token2:            yyS[yypt-0].Token,
  4413  			}
  4414  			yyVAL.node = lhs
  4415  			lhs.paramsScope, _ = lx.popScope(lhs.Token2)
  4416  			lhs.DirectDeclarator.parent = lhs
  4417  		}
  4418  	case 160:
  4419  		{
  4420  			lhs := &DirectDeclarator{
  4421  				Case:              7,
  4422  				DirectDeclarator:  yyS[yypt-3].node.(*DirectDeclarator),
  4423  				Token:             yyS[yypt-2].Token,
  4424  				IdentifierListOpt: yyS[yypt-1].node.(*IdentifierListOpt),
  4425  				Token2:            yyS[yypt-0].Token,
  4426  			}
  4427  			yyVAL.node = lhs
  4428  			lhs.DirectDeclarator.parent = lhs
  4429  		}
  4430  	case 161:
  4431  		{
  4432  			yyVAL.node = &Pointer{
  4433  				Token:                yyS[yypt-1].Token,
  4434  				TypeQualifierListOpt: yyS[yypt-0].node.(*TypeQualifierListOpt),
  4435  			}
  4436  		}
  4437  	case 162:
  4438  		{
  4439  			yyVAL.node = &Pointer{
  4440  				Case:                 1,
  4441  				Token:                yyS[yypt-2].Token,
  4442  				TypeQualifierListOpt: yyS[yypt-1].node.(*TypeQualifierListOpt),
  4443  				Pointer:              yyS[yypt-0].node.(*Pointer),
  4444  			}
  4445  		}
  4446  	case 163:
  4447  		{
  4448  			yyVAL.node = (*PointerOpt)(nil)
  4449  		}
  4450  	case 164:
  4451  		{
  4452  			yyVAL.node = &PointerOpt{
  4453  				Pointer: yyS[yypt-0].node.(*Pointer),
  4454  			}
  4455  		}
  4456  	case 165:
  4457  		{
  4458  			lhs := &TypeQualifierList{
  4459  				TypeQualifier: yyS[yypt-0].node.(*TypeQualifier),
  4460  			}
  4461  			yyVAL.node = lhs
  4462  			lhs.attr = lhs.TypeQualifier.attr
  4463  		}
  4464  	case 166:
  4465  		{
  4466  			lx := yylex.(*lexer)
  4467  			lhs := &TypeQualifierList{
  4468  				Case:              1,
  4469  				TypeQualifierList: yyS[yypt-1].node.(*TypeQualifierList),
  4470  				TypeQualifier:     yyS[yypt-0].node.(*TypeQualifier),
  4471  			}
  4472  			yyVAL.node = lhs
  4473  			a := lhs.TypeQualifierList
  4474  			b := lhs.TypeQualifier
  4475  			if a.attr&b.attr != 0 {
  4476  				lx.report.Err(b.Pos(), "invalid type qualifier")
  4477  				break
  4478  			}
  4479  
  4480  			lhs.attr = a.attr | b.attr
  4481  		}
  4482  	case 167:
  4483  		{
  4484  			yyVAL.node = (*TypeQualifierListOpt)(nil)
  4485  		}
  4486  	case 168:
  4487  		{
  4488  			yyVAL.node = &TypeQualifierListOpt{
  4489  				TypeQualifierList: yyS[yypt-0].node.(*TypeQualifierList).reverse(),
  4490  			}
  4491  		}
  4492  	case 169:
  4493  		{
  4494  			lhs := &ParameterTypeList{
  4495  				ParameterList: yyS[yypt-0].node.(*ParameterList).reverse(),
  4496  			}
  4497  			yyVAL.node = lhs
  4498  			lhs.post()
  4499  		}
  4500  	case 170:
  4501  		{
  4502  			lhs := &ParameterTypeList{
  4503  				Case:          1,
  4504  				ParameterList: yyS[yypt-2].node.(*ParameterList).reverse(),
  4505  				Token:         yyS[yypt-1].Token,
  4506  				Token2:        yyS[yypt-0].Token,
  4507  			}
  4508  			yyVAL.node = lhs
  4509  			lhs.post()
  4510  		}
  4511  	case 171:
  4512  		{
  4513  			yyVAL.node = (*ParameterTypeListOpt)(nil)
  4514  		}
  4515  	case 172:
  4516  		{
  4517  			yyVAL.node = &ParameterTypeListOpt{
  4518  				ParameterTypeList: yyS[yypt-0].node.(*ParameterTypeList),
  4519  			}
  4520  		}
  4521  	case 173:
  4522  		{
  4523  			yyVAL.node = &ParameterList{
  4524  				ParameterDeclaration: yyS[yypt-0].node.(*ParameterDeclaration),
  4525  			}
  4526  		}
  4527  	case 174:
  4528  		{
  4529  			yyVAL.node = &ParameterList{
  4530  				Case:                 1,
  4531  				ParameterList:        yyS[yypt-2].node.(*ParameterList),
  4532  				Token:                yyS[yypt-1].Token,
  4533  				ParameterDeclaration: yyS[yypt-0].node.(*ParameterDeclaration),
  4534  			}
  4535  		}
  4536  	case 175:
  4537  		{
  4538  			lx := yylex.(*lexer)
  4539  			lhs := &ParameterDeclaration{
  4540  				DeclarationSpecifiers: yyS[yypt-1].node.(*DeclarationSpecifiers),
  4541  				Declarator:            yyS[yypt-0].node.(*Declarator),
  4542  			}
  4543  			yyVAL.node = lhs
  4544  			lhs.Declarator.setFull(lx)
  4545  			lhs.declarator = lhs.Declarator
  4546  		}
  4547  	case 176:
  4548  		{
  4549  			lx := yylex.(*lexer)
  4550  			lhs := &ParameterDeclaration{
  4551  				Case:                  1,
  4552  				DeclarationSpecifiers: yyS[yypt-1].node.(*DeclarationSpecifiers),
  4553  				AbstractDeclaratorOpt: yyS[yypt-0].node.(*AbstractDeclaratorOpt),
  4554  			}
  4555  			yyVAL.node = lhs
  4556  			if o := lhs.AbstractDeclaratorOpt; o != nil {
  4557  				lhs.declarator = o.AbstractDeclarator.declarator
  4558  				lhs.declarator.setFull(lx)
  4559  				break
  4560  			}
  4561  
  4562  			d := &Declarator{
  4563  				specifier: lx.scope.specifier,
  4564  				DirectDeclarator: &DirectDeclarator{
  4565  					Case: 0, // IDENTIFIER
  4566  				},
  4567  			}
  4568  			d.DirectDeclarator.declarator = d
  4569  			lhs.declarator = d
  4570  			d.setFull(lx)
  4571  		}
  4572  	case 177:
  4573  		{
  4574  			yyVAL.node = &IdentifierList{
  4575  				Token: yyS[yypt-0].Token,
  4576  			}
  4577  		}
  4578  	case 178:
  4579  		{
  4580  			yyVAL.node = &IdentifierList{
  4581  				Case:           1,
  4582  				IdentifierList: yyS[yypt-2].node.(*IdentifierList),
  4583  				Token:          yyS[yypt-1].Token,
  4584  				Token2:         yyS[yypt-0].Token,
  4585  			}
  4586  		}
  4587  	case 179:
  4588  		{
  4589  			yyVAL.node = (*IdentifierListOpt)(nil)
  4590  		}
  4591  	case 180:
  4592  		{
  4593  			yyVAL.node = &IdentifierListOpt{
  4594  				IdentifierList: yyS[yypt-0].node.(*IdentifierList).reverse(),
  4595  			}
  4596  		}
  4597  	case 181:
  4598  		{
  4599  			yyVAL.node = (*IdentifierOpt)(nil)
  4600  		}
  4601  	case 182:
  4602  		{
  4603  			yyVAL.node = &IdentifierOpt{
  4604  				Token: yyS[yypt-0].Token,
  4605  			}
  4606  		}
  4607  	case 183:
  4608  		{
  4609  			lx := yylex.(*lexer)
  4610  			lx.pushScope(ScopeBlock)
  4611  		}
  4612  	case 184:
  4613  		{
  4614  			lx := yylex.(*lexer)
  4615  			lhs := &TypeName{
  4616  				SpecifierQualifierList: yyS[yypt-1].node.(*SpecifierQualifierList),
  4617  				AbstractDeclaratorOpt:  yyS[yypt-0].node.(*AbstractDeclaratorOpt),
  4618  			}
  4619  			yyVAL.node = lhs
  4620  			if o := lhs.AbstractDeclaratorOpt; o != nil {
  4621  				lhs.declarator = o.AbstractDeclarator.declarator
  4622  			} else {
  4623  				d := &Declarator{
  4624  					specifier: lhs.SpecifierQualifierList,
  4625  					DirectDeclarator: &DirectDeclarator{
  4626  						Case:    0, // IDENTIFIER
  4627  						idScope: lx.scope,
  4628  					},
  4629  				}
  4630  				d.DirectDeclarator.declarator = d
  4631  				lhs.declarator = d
  4632  			}
  4633  			lhs.Type = lhs.declarator.setFull(lx)
  4634  			lhs.scope = lx.scope
  4635  			lx.popScope(xc.Token{})
  4636  		}
  4637  	case 185:
  4638  		{
  4639  			lx := yylex.(*lexer)
  4640  			lhs := &AbstractDeclarator{
  4641  				Pointer: yyS[yypt-0].node.(*Pointer),
  4642  			}
  4643  			yyVAL.node = lhs
  4644  			d := &Declarator{
  4645  				specifier: lx.scope.specifier,
  4646  				PointerOpt: &PointerOpt{
  4647  					Pointer: lhs.Pointer,
  4648  				},
  4649  				DirectDeclarator: &DirectDeclarator{
  4650  					Case:    0, // IDENTIFIER
  4651  					idScope: lx.scope,
  4652  				},
  4653  			}
  4654  			d.DirectDeclarator.declarator = d
  4655  			lhs.declarator = d
  4656  		}
  4657  	case 186:
  4658  		{
  4659  			lx := yylex.(*lexer)
  4660  			lhs := &AbstractDeclarator{
  4661  				Case:                     1,
  4662  				PointerOpt:               yyS[yypt-1].node.(*PointerOpt),
  4663  				DirectAbstractDeclarator: yyS[yypt-0].node.(*DirectAbstractDeclarator),
  4664  			}
  4665  			yyVAL.node = lhs
  4666  			d := &Declarator{
  4667  				specifier:        lx.scope.specifier,
  4668  				PointerOpt:       lhs.PointerOpt,
  4669  				DirectDeclarator: lhs.DirectAbstractDeclarator.directDeclarator,
  4670  			}
  4671  			d.DirectDeclarator.declarator = d
  4672  			lhs.declarator = d
  4673  		}
  4674  	case 187:
  4675  		{
  4676  			yyVAL.node = (*AbstractDeclaratorOpt)(nil)
  4677  		}
  4678  	case 188:
  4679  		{
  4680  			yyVAL.node = &AbstractDeclaratorOpt{
  4681  				AbstractDeclarator: yyS[yypt-0].node.(*AbstractDeclarator),
  4682  			}
  4683  		}
  4684  	case 189:
  4685  		{
  4686  			lhs := &DirectAbstractDeclarator{
  4687  				Token:              yyS[yypt-2].Token,
  4688  				AbstractDeclarator: yyS[yypt-1].node.(*AbstractDeclarator),
  4689  				Token2:             yyS[yypt-0].Token,
  4690  			}
  4691  			yyVAL.node = lhs
  4692  			lhs.AbstractDeclarator.declarator.specifier = nil
  4693  			lhs.directDeclarator = &DirectDeclarator{
  4694  				Case:       1, // '(' Declarator ')'
  4695  				Declarator: lhs.AbstractDeclarator.declarator,
  4696  			}
  4697  			lhs.AbstractDeclarator.declarator.DirectDeclarator.parent = lhs.directDeclarator
  4698  		}
  4699  	case 190:
  4700  		{
  4701  			lx := yylex.(*lexer)
  4702  			lhs := &DirectAbstractDeclarator{
  4703  				Case:                        1,
  4704  				DirectAbstractDeclaratorOpt: yyS[yypt-3].node.(*DirectAbstractDeclaratorOpt),
  4705  				Token:                       yyS[yypt-2].Token,
  4706  				ExpressionOpt:               yyS[yypt-1].node.(*ExpressionOpt),
  4707  				Token2:                      yyS[yypt-0].Token,
  4708  			}
  4709  			yyVAL.node = lhs
  4710  			nElements := -1
  4711  			if o := lhs.ExpressionOpt; o != nil {
  4712  				var err error
  4713  				if nElements, err = elements(o.Expression.eval(lx)); err != nil {
  4714  					lx.report.Err(o.Expression.Pos(), "%s", err)
  4715  				}
  4716  			}
  4717  			var dd *DirectDeclarator
  4718  			switch o := lhs.DirectAbstractDeclaratorOpt; {
  4719  			case o == nil:
  4720  				dd = &DirectDeclarator{
  4721  					Case: 0, // IDENTIFIER
  4722  				}
  4723  			default:
  4724  				dd = o.DirectAbstractDeclarator.directDeclarator
  4725  			}
  4726  			lhs.directDeclarator = &DirectDeclarator{
  4727  				Case:             2, // DirectDeclarator '[' TypeQualifierListOpt ExpressionOpt ']'
  4728  				DirectDeclarator: dd,
  4729  				ExpressionOpt:    lhs.ExpressionOpt,
  4730  				elements:         nElements,
  4731  			}
  4732  			dd.parent = lhs.directDeclarator
  4733  		}
  4734  	case 191:
  4735  		{
  4736  			lx := yylex.(*lexer)
  4737  			lhs := &DirectAbstractDeclarator{
  4738  				Case:                        2,
  4739  				DirectAbstractDeclaratorOpt: yyS[yypt-4].node.(*DirectAbstractDeclaratorOpt),
  4740  				Token:                       yyS[yypt-3].Token,
  4741  				TypeQualifierList:           yyS[yypt-2].node.(*TypeQualifierList).reverse(),
  4742  				ExpressionOpt:               yyS[yypt-1].node.(*ExpressionOpt),
  4743  				Token2:                      yyS[yypt-0].Token,
  4744  			}
  4745  			yyVAL.node = lhs
  4746  			if o := lhs.ExpressionOpt; o != nil {
  4747  				o.Expression.eval(lx)
  4748  			}
  4749  			var dd *DirectDeclarator
  4750  			switch o := lhs.DirectAbstractDeclaratorOpt; {
  4751  			case o == nil:
  4752  				dd = &DirectDeclarator{
  4753  					Case: 0, // IDENTIFIER
  4754  				}
  4755  			default:
  4756  				dd = o.DirectAbstractDeclarator.directDeclarator
  4757  			}
  4758  			lhs.directDeclarator = &DirectDeclarator{
  4759  				Case:                 2, // DirectDeclarator '[' TypeQualifierListOpt ExpressionOpt ']'
  4760  				DirectDeclarator:     dd,
  4761  				TypeQualifierListOpt: &TypeQualifierListOpt{lhs.TypeQualifierList},
  4762  				ExpressionOpt:        lhs.ExpressionOpt,
  4763  			}
  4764  			dd.parent = lhs.directDeclarator
  4765  		}
  4766  	case 192:
  4767  		{
  4768  			lx := yylex.(*lexer)
  4769  			lhs := &DirectAbstractDeclarator{
  4770  				Case:                        3,
  4771  				DirectAbstractDeclaratorOpt: yyS[yypt-5].node.(*DirectAbstractDeclaratorOpt),
  4772  				Token:                       yyS[yypt-4].Token,
  4773  				Token2:                      yyS[yypt-3].Token,
  4774  				TypeQualifierListOpt:        yyS[yypt-2].node.(*TypeQualifierListOpt),
  4775  				Expression:                  yyS[yypt-1].node.(*Expression),
  4776  				Token3:                      yyS[yypt-0].Token,
  4777  			}
  4778  			yyVAL.node = lhs
  4779  			lhs.Expression.eval(lx)
  4780  			var dd *DirectDeclarator
  4781  			switch o := lhs.DirectAbstractDeclaratorOpt; {
  4782  			case o == nil:
  4783  				dd = &DirectDeclarator{
  4784  					Case: 0, // IDENTIFIER
  4785  				}
  4786  			default:
  4787  				dd = o.DirectAbstractDeclarator.directDeclarator
  4788  			}
  4789  			lhs.directDeclarator = &DirectDeclarator{
  4790  				Case:                 2, // DirectDeclarator '[' "static" TypeQualifierListOpt Expression ']'
  4791  				DirectDeclarator:     dd,
  4792  				TypeQualifierListOpt: lhs.TypeQualifierListOpt,
  4793  				Expression:           lhs.Expression,
  4794  			}
  4795  			dd.parent = lhs.directDeclarator
  4796  		}
  4797  	case 193:
  4798  		{
  4799  			lx := yylex.(*lexer)
  4800  			lhs := &DirectAbstractDeclarator{
  4801  				Case:                        4,
  4802  				DirectAbstractDeclaratorOpt: yyS[yypt-5].node.(*DirectAbstractDeclaratorOpt),
  4803  				Token:                       yyS[yypt-4].Token,
  4804  				TypeQualifierList:           yyS[yypt-3].node.(*TypeQualifierList).reverse(),
  4805  				Token2:                      yyS[yypt-2].Token,
  4806  				Expression:                  yyS[yypt-1].node.(*Expression),
  4807  				Token3:                      yyS[yypt-0].Token,
  4808  			}
  4809  			yyVAL.node = lhs
  4810  			lhs.Expression.eval(lx)
  4811  			var dd *DirectDeclarator
  4812  			switch o := lhs.DirectAbstractDeclaratorOpt; {
  4813  			case o == nil:
  4814  				dd = &DirectDeclarator{
  4815  					Case: 0, // IDENTIFIER
  4816  				}
  4817  			default:
  4818  				dd = o.DirectAbstractDeclarator.directDeclarator
  4819  			}
  4820  			lhs.directDeclarator = &DirectDeclarator{
  4821  				Case:              4, // DirectDeclarator '[' TypeQualifierList "static" Expression ']'
  4822  				DirectDeclarator:  dd,
  4823  				TypeQualifierList: lhs.TypeQualifierList,
  4824  				Expression:        lhs.Expression,
  4825  			}
  4826  			dd.parent = lhs.directDeclarator
  4827  		}
  4828  	case 194:
  4829  		{
  4830  			lhs := &DirectAbstractDeclarator{
  4831  				Case:                        5,
  4832  				DirectAbstractDeclaratorOpt: yyS[yypt-3].node.(*DirectAbstractDeclaratorOpt),
  4833  				Token:                       yyS[yypt-2].Token,
  4834  				Token2:                      yyS[yypt-1].Token,
  4835  				Token3:                      yyS[yypt-0].Token,
  4836  			}
  4837  			yyVAL.node = lhs
  4838  			var dd *DirectDeclarator
  4839  			switch o := lhs.DirectAbstractDeclaratorOpt; {
  4840  			case o == nil:
  4841  				dd = &DirectDeclarator{
  4842  					Case: 0, // IDENTIFIER
  4843  				}
  4844  			default:
  4845  				dd = o.DirectAbstractDeclarator.directDeclarator
  4846  			}
  4847  			lhs.directDeclarator = &DirectDeclarator{
  4848  				Case:             5, // DirectDeclarator '[' TypeQualifierListOpt '*' ']'
  4849  				DirectDeclarator: dd,
  4850  			}
  4851  			dd.parent = lhs.directDeclarator
  4852  		}
  4853  	case 195:
  4854  		{
  4855  			lx := yylex.(*lexer)
  4856  			lx.pushScope(ScopeParams)
  4857  		}
  4858  	case 196:
  4859  		{
  4860  			lx := yylex.(*lexer)
  4861  			lhs := &DirectAbstractDeclarator{
  4862  				Case:                 6,
  4863  				Token:                yyS[yypt-3].Token,
  4864  				ParameterTypeListOpt: yyS[yypt-1].node.(*ParameterTypeListOpt),
  4865  				Token2:               yyS[yypt-0].Token,
  4866  			}
  4867  			yyVAL.node = lhs
  4868  			lhs.paramsScope, _ = lx.popScope(lhs.Token2)
  4869  			switch o := lhs.ParameterTypeListOpt; {
  4870  			case o != nil:
  4871  				lhs.directDeclarator = &DirectDeclarator{
  4872  					Case: 6, // DirectDeclarator '(' ParameterTypeList ')'
  4873  					DirectDeclarator: &DirectDeclarator{
  4874  						Case: 0, // IDENTIFIER
  4875  					},
  4876  					ParameterTypeList: o.ParameterTypeList,
  4877  				}
  4878  			default:
  4879  				lhs.directDeclarator = &DirectDeclarator{
  4880  					Case: 7, // DirectDeclarator '(' IdentifierListOpt ')'
  4881  					DirectDeclarator: &DirectDeclarator{
  4882  						Case: 0, // IDENTIFIER
  4883  					},
  4884  				}
  4885  			}
  4886  			lhs.directDeclarator.DirectDeclarator.parent = lhs.directDeclarator
  4887  		}
  4888  	case 197:
  4889  		{
  4890  			lx := yylex.(*lexer)
  4891  			lx.pushScope(ScopeParams)
  4892  		}
  4893  	case 198:
  4894  		{
  4895  			lx := yylex.(*lexer)
  4896  			lhs := &DirectAbstractDeclarator{
  4897  				Case:                     7,
  4898  				DirectAbstractDeclarator: yyS[yypt-4].node.(*DirectAbstractDeclarator),
  4899  				Token:                    yyS[yypt-3].Token,
  4900  				ParameterTypeListOpt:     yyS[yypt-1].node.(*ParameterTypeListOpt),
  4901  				Token2:                   yyS[yypt-0].Token,
  4902  			}
  4903  			yyVAL.node = lhs
  4904  			lhs.paramsScope, _ = lx.popScope(lhs.Token2)
  4905  			switch o := lhs.ParameterTypeListOpt; {
  4906  			case o != nil:
  4907  				lhs.directDeclarator = &DirectDeclarator{
  4908  					Case:              6, // DirectDeclarator '(' ParameterTypeList ')'
  4909  					DirectDeclarator:  lhs.DirectAbstractDeclarator.directDeclarator,
  4910  					ParameterTypeList: o.ParameterTypeList,
  4911  				}
  4912  			default:
  4913  				lhs.directDeclarator = &DirectDeclarator{
  4914  					Case:             7, // DirectDeclarator '(' IdentifierListOpt ')'
  4915  					DirectDeclarator: lhs.DirectAbstractDeclarator.directDeclarator,
  4916  				}
  4917  			}
  4918  			lhs.directDeclarator.DirectDeclarator.parent = lhs.directDeclarator
  4919  		}
  4920  	case 199:
  4921  		{
  4922  			yyVAL.node = (*DirectAbstractDeclaratorOpt)(nil)
  4923  		}
  4924  	case 200:
  4925  		{
  4926  			yyVAL.node = &DirectAbstractDeclaratorOpt{
  4927  				DirectAbstractDeclarator: yyS[yypt-0].node.(*DirectAbstractDeclarator),
  4928  			}
  4929  		}
  4930  	case 201:
  4931  		{
  4932  			lx := yylex.(*lexer)
  4933  			lhs := &Initializer{
  4934  				Expression: yyS[yypt-0].node.(*Expression),
  4935  			}
  4936  			yyVAL.node = lhs
  4937  			lhs.Expression.eval(lx)
  4938  		}
  4939  	case 202:
  4940  		{
  4941  			yyVAL.node = &Initializer{
  4942  				Case:            1,
  4943  				Token:           yyS[yypt-3].Token,
  4944  				InitializerList: yyS[yypt-2].node.(*InitializerList).reverse(),
  4945  				CommaOpt:        yyS[yypt-1].node.(*CommaOpt),
  4946  				Token2:          yyS[yypt-0].Token,
  4947  			}
  4948  		}
  4949  	case 203:
  4950  		{
  4951  			lx := yylex.(*lexer)
  4952  			lhs := &Initializer{
  4953  				Case:        2,
  4954  				Token:       yyS[yypt-2].Token,
  4955  				Token2:      yyS[yypt-1].Token,
  4956  				Initializer: yyS[yypt-0].node.(*Initializer),
  4957  			}
  4958  			yyVAL.node = lhs
  4959  			if !lx.tweaks.enableLegacyDesignators {
  4960  				lx.report.Err(lhs.Pos(), "legacy designators not enabled")
  4961  			}
  4962  		}
  4963  	case 204:
  4964  		{
  4965  			yyVAL.node = &InitializerList{
  4966  				DesignationOpt: yyS[yypt-1].node.(*DesignationOpt),
  4967  				Initializer:    yyS[yypt-0].node.(*Initializer),
  4968  			}
  4969  		}
  4970  	case 205:
  4971  		{
  4972  			yyVAL.node = &InitializerList{
  4973  				Case:            1,
  4974  				InitializerList: yyS[yypt-3].node.(*InitializerList),
  4975  				Token:           yyS[yypt-2].Token,
  4976  				DesignationOpt:  yyS[yypt-1].node.(*DesignationOpt),
  4977  				Initializer:     yyS[yypt-0].node.(*Initializer),
  4978  			}
  4979  		}
  4980  	case 206:
  4981  		{
  4982  			yyVAL.node = (*InitializerList)(nil)
  4983  		}
  4984  	case 207:
  4985  		{
  4986  			yyVAL.node = &Designation{
  4987  				DesignatorList: yyS[yypt-1].node.(*DesignatorList).reverse(),
  4988  				Token:          yyS[yypt-0].Token,
  4989  			}
  4990  		}
  4991  	case 208:
  4992  		{
  4993  			yyVAL.node = (*DesignationOpt)(nil)
  4994  		}
  4995  	case 209:
  4996  		{
  4997  			yyVAL.node = &DesignationOpt{
  4998  				Designation: yyS[yypt-0].node.(*Designation),
  4999  			}
  5000  		}
  5001  	case 210:
  5002  		{
  5003  			yyVAL.node = &DesignatorList{
  5004  				Designator: yyS[yypt-0].node.(*Designator),
  5005  			}
  5006  		}
  5007  	case 211:
  5008  		{
  5009  			yyVAL.node = &DesignatorList{
  5010  				Case:           1,
  5011  				DesignatorList: yyS[yypt-1].node.(*DesignatorList),
  5012  				Designator:     yyS[yypt-0].node.(*Designator),
  5013  			}
  5014  		}
  5015  	case 212:
  5016  		{
  5017  			yyVAL.node = &Designator{
  5018  				Token:              yyS[yypt-2].Token,
  5019  				ConstantExpression: yyS[yypt-1].node.(*ConstantExpression),
  5020  				Token2:             yyS[yypt-0].Token,
  5021  			}
  5022  		}
  5023  	case 213:
  5024  		{
  5025  			yyVAL.node = &Designator{
  5026  				Case:   1,
  5027  				Token:  yyS[yypt-1].Token,
  5028  				Token2: yyS[yypt-0].Token,
  5029  			}
  5030  		}
  5031  	case 214:
  5032  		{
  5033  			yyVAL.node = &Statement{
  5034  				LabeledStatement: yyS[yypt-0].node.(*LabeledStatement),
  5035  			}
  5036  		}
  5037  	case 215:
  5038  		{
  5039  			yyVAL.node = &Statement{
  5040  				Case:              1,
  5041  				CompoundStatement: yyS[yypt-0].node.(*CompoundStatement),
  5042  			}
  5043  		}
  5044  	case 216:
  5045  		{
  5046  			yyVAL.node = &Statement{
  5047  				Case:                2,
  5048  				ExpressionStatement: yyS[yypt-0].node.(*ExpressionStatement),
  5049  			}
  5050  		}
  5051  	case 217:
  5052  		{
  5053  			yyVAL.node = &Statement{
  5054  				Case:               3,
  5055  				SelectionStatement: yyS[yypt-0].node.(*SelectionStatement),
  5056  			}
  5057  		}
  5058  	case 218:
  5059  		{
  5060  			yyVAL.node = &Statement{
  5061  				Case:               4,
  5062  				IterationStatement: yyS[yypt-0].node.(*IterationStatement),
  5063  			}
  5064  		}
  5065  	case 219:
  5066  		{
  5067  			yyVAL.node = &Statement{
  5068  				Case:          5,
  5069  				JumpStatement: yyS[yypt-0].node.(*JumpStatement),
  5070  			}
  5071  		}
  5072  	case 220:
  5073  		{
  5074  			yyVAL.node = &Statement{
  5075  				Case:               6,
  5076  				AssemblerStatement: yyS[yypt-0].node.(*AssemblerStatement),
  5077  			}
  5078  		}
  5079  	case 221:
  5080  		{
  5081  			yyVAL.node = &LabeledStatement{
  5082  				Token:     yyS[yypt-2].Token,
  5083  				Token2:    yyS[yypt-1].Token,
  5084  				Statement: yyS[yypt-0].node.(*Statement),
  5085  			}
  5086  		}
  5087  	case 222:
  5088  		{
  5089  			yyVAL.node = &LabeledStatement{
  5090  				Case:               1,
  5091  				Token:              yyS[yypt-3].Token,
  5092  				ConstantExpression: yyS[yypt-2].node.(*ConstantExpression),
  5093  				Token2:             yyS[yypt-1].Token,
  5094  				Statement:          yyS[yypt-0].node.(*Statement),
  5095  			}
  5096  		}
  5097  	case 223:
  5098  		{
  5099  			yyVAL.node = &LabeledStatement{
  5100  				Case:      2,
  5101  				Token:     yyS[yypt-2].Token,
  5102  				Token2:    yyS[yypt-1].Token,
  5103  				Statement: yyS[yypt-0].node.(*Statement),
  5104  			}
  5105  		}
  5106  	case 224:
  5107  		{
  5108  			lx := yylex.(*lexer)
  5109  			m := lx.scope.mergeScope
  5110  			lx.pushScope(ScopeBlock)
  5111  			if m != nil {
  5112  				lx.scope.merge(m)
  5113  			}
  5114  			lx.scope.mergeScope = nil
  5115  		}
  5116  	case 225:
  5117  		{
  5118  			lx := yylex.(*lexer)
  5119  			lhs := &CompoundStatement{
  5120  				Token:            yyS[yypt-3].Token,
  5121  				BlockItemListOpt: yyS[yypt-1].node.(*BlockItemListOpt),
  5122  				Token2:           yyS[yypt-0].Token,
  5123  			}
  5124  			yyVAL.node = lhs
  5125  			lhs.scope = lx.scope
  5126  			lx.popScope(lhs.Token2)
  5127  		}
  5128  	case 226:
  5129  		{
  5130  			yyVAL.node = &BlockItemList{
  5131  				BlockItem: yyS[yypt-0].node.(*BlockItem),
  5132  			}
  5133  		}
  5134  	case 227:
  5135  		{
  5136  			yyVAL.node = &BlockItemList{
  5137  				Case:          1,
  5138  				BlockItemList: yyS[yypt-1].node.(*BlockItemList),
  5139  				BlockItem:     yyS[yypt-0].node.(*BlockItem),
  5140  			}
  5141  		}
  5142  	case 228:
  5143  		{
  5144  			yyVAL.node = (*BlockItemListOpt)(nil)
  5145  		}
  5146  	case 229:
  5147  		{
  5148  			yyVAL.node = &BlockItemListOpt{
  5149  				BlockItemList: yyS[yypt-0].node.(*BlockItemList).reverse(),
  5150  			}
  5151  		}
  5152  	case 230:
  5153  		{
  5154  			yyVAL.node = &BlockItem{
  5155  				Declaration: yyS[yypt-0].node.(*Declaration),
  5156  			}
  5157  		}
  5158  	case 231:
  5159  		{
  5160  			yyVAL.node = &BlockItem{
  5161  				Case:      1,
  5162  				Statement: yyS[yypt-0].node.(*Statement),
  5163  			}
  5164  		}
  5165  	case 232:
  5166  		{
  5167  			yyVAL.node = &ExpressionStatement{
  5168  				ExpressionListOpt: yyS[yypt-1].node.(*ExpressionListOpt),
  5169  				Token:             yyS[yypt-0].Token,
  5170  			}
  5171  		}
  5172  	case 233:
  5173  		{
  5174  			lx := yylex.(*lexer)
  5175  			lhs := &SelectionStatement{
  5176  				Token:          yyS[yypt-4].Token,
  5177  				Token2:         yyS[yypt-3].Token,
  5178  				ExpressionList: yyS[yypt-2].node.(*ExpressionList).reverse(),
  5179  				Token3:         yyS[yypt-1].Token,
  5180  				Statement:      yyS[yypt-0].node.(*Statement),
  5181  			}
  5182  			yyVAL.node = lhs
  5183  			lhs.ExpressionList.eval(lx)
  5184  		}
  5185  	case 234:
  5186  		{
  5187  			lx := yylex.(*lexer)
  5188  			lhs := &SelectionStatement{
  5189  				Case:           1,
  5190  				Token:          yyS[yypt-6].Token,
  5191  				Token2:         yyS[yypt-5].Token,
  5192  				ExpressionList: yyS[yypt-4].node.(*ExpressionList).reverse(),
  5193  				Token3:         yyS[yypt-3].Token,
  5194  				Statement:      yyS[yypt-2].node.(*Statement),
  5195  				Token4:         yyS[yypt-1].Token,
  5196  				Statement2:     yyS[yypt-0].node.(*Statement),
  5197  			}
  5198  			yyVAL.node = lhs
  5199  			lhs.ExpressionList.eval(lx)
  5200  		}
  5201  	case 235:
  5202  		{
  5203  			lx := yylex.(*lexer)
  5204  			lhs := &SelectionStatement{
  5205  				Case:           2,
  5206  				Token:          yyS[yypt-4].Token,
  5207  				Token2:         yyS[yypt-3].Token,
  5208  				ExpressionList: yyS[yypt-2].node.(*ExpressionList).reverse(),
  5209  				Token3:         yyS[yypt-1].Token,
  5210  				Statement:      yyS[yypt-0].node.(*Statement),
  5211  			}
  5212  			yyVAL.node = lhs
  5213  			lhs.ExpressionList.eval(lx)
  5214  		}
  5215  	case 236:
  5216  		{
  5217  			lx := yylex.(*lexer)
  5218  			lhs := &IterationStatement{
  5219  				Token:          yyS[yypt-4].Token,
  5220  				Token2:         yyS[yypt-3].Token,
  5221  				ExpressionList: yyS[yypt-2].node.(*ExpressionList).reverse(),
  5222  				Token3:         yyS[yypt-1].Token,
  5223  				Statement:      yyS[yypt-0].node.(*Statement),
  5224  			}
  5225  			yyVAL.node = lhs
  5226  			lhs.ExpressionList.eval(lx)
  5227  		}
  5228  	case 237:
  5229  		{
  5230  			lx := yylex.(*lexer)
  5231  			lhs := &IterationStatement{
  5232  				Case:           1,
  5233  				Token:          yyS[yypt-6].Token,
  5234  				Statement:      yyS[yypt-5].node.(*Statement),
  5235  				Token2:         yyS[yypt-4].Token,
  5236  				Token3:         yyS[yypt-3].Token,
  5237  				ExpressionList: yyS[yypt-2].node.(*ExpressionList).reverse(),
  5238  				Token4:         yyS[yypt-1].Token,
  5239  				Token5:         yyS[yypt-0].Token,
  5240  			}
  5241  			yyVAL.node = lhs
  5242  			lhs.ExpressionList.eval(lx)
  5243  		}
  5244  	case 238:
  5245  		{
  5246  			yyVAL.node = &IterationStatement{
  5247  				Case:               2,
  5248  				Token:              yyS[yypt-8].Token,
  5249  				Token2:             yyS[yypt-7].Token,
  5250  				ExpressionListOpt:  yyS[yypt-6].node.(*ExpressionListOpt),
  5251  				Token3:             yyS[yypt-5].Token,
  5252  				ExpressionListOpt2: yyS[yypt-4].node.(*ExpressionListOpt),
  5253  				Token4:             yyS[yypt-3].Token,
  5254  				ExpressionListOpt3: yyS[yypt-2].node.(*ExpressionListOpt),
  5255  				Token5:             yyS[yypt-1].Token,
  5256  				Statement:          yyS[yypt-0].node.(*Statement),
  5257  			}
  5258  		}
  5259  	case 239:
  5260  		{
  5261  			yyVAL.node = &IterationStatement{
  5262  				Case:               3,
  5263  				Token:              yyS[yypt-7].Token,
  5264  				Token2:             yyS[yypt-6].Token,
  5265  				Declaration:        yyS[yypt-5].node.(*Declaration),
  5266  				ExpressionListOpt:  yyS[yypt-4].node.(*ExpressionListOpt),
  5267  				Token3:             yyS[yypt-3].Token,
  5268  				ExpressionListOpt2: yyS[yypt-2].node.(*ExpressionListOpt),
  5269  				Token4:             yyS[yypt-1].Token,
  5270  				Statement:          yyS[yypt-0].node.(*Statement),
  5271  			}
  5272  		}
  5273  	case 240:
  5274  		{
  5275  			yyVAL.node = &JumpStatement{
  5276  				Token:  yyS[yypt-2].Token,
  5277  				Token2: yyS[yypt-1].Token,
  5278  				Token3: yyS[yypt-0].Token,
  5279  			}
  5280  		}
  5281  	case 241:
  5282  		{
  5283  			yyVAL.node = &JumpStatement{
  5284  				Case:   1,
  5285  				Token:  yyS[yypt-1].Token,
  5286  				Token2: yyS[yypt-0].Token,
  5287  			}
  5288  		}
  5289  	case 242:
  5290  		{
  5291  			yyVAL.node = &JumpStatement{
  5292  				Case:   2,
  5293  				Token:  yyS[yypt-1].Token,
  5294  				Token2: yyS[yypt-0].Token,
  5295  			}
  5296  		}
  5297  	case 243:
  5298  		{
  5299  			yyVAL.node = &JumpStatement{
  5300  				Case:              3,
  5301  				Token:             yyS[yypt-2].Token,
  5302  				ExpressionListOpt: yyS[yypt-1].node.(*ExpressionListOpt),
  5303  				Token2:            yyS[yypt-0].Token,
  5304  			}
  5305  		}
  5306  	case 244:
  5307  		{
  5308  			lx := yylex.(*lexer)
  5309  			lhs := &JumpStatement{
  5310  				Case:       4,
  5311  				Token:      yyS[yypt-2].Token,
  5312  				Expression: yyS[yypt-1].node.(*Expression),
  5313  				Token2:     yyS[yypt-0].Token,
  5314  			}
  5315  			yyVAL.node = lhs
  5316  			_, t := lhs.Expression.eval(lx)
  5317  			if t == nil {
  5318  				break
  5319  			}
  5320  
  5321  			for t != nil && t.Kind() == Ptr {
  5322  				t = t.Element()
  5323  			}
  5324  
  5325  			if t == nil || t.Kind() != Void {
  5326  				lx.report.Err(lhs.Pos(), "invalid computed goto argument type, have '%s'", t)
  5327  			}
  5328  
  5329  			if !lx.tweaks.enableComputedGotos {
  5330  				lx.report.Err(lhs.Pos(), "computed gotos not enabled")
  5331  			}
  5332  		}
  5333  	case 245:
  5334  		{
  5335  			yyVAL.node = &TranslationUnit{
  5336  				ExternalDeclaration: yyS[yypt-0].node.(*ExternalDeclaration),
  5337  			}
  5338  		}
  5339  	case 246:
  5340  		{
  5341  			yyVAL.node = &TranslationUnit{
  5342  				Case:                1,
  5343  				TranslationUnit:     yyS[yypt-1].node.(*TranslationUnit),
  5344  				ExternalDeclaration: yyS[yypt-0].node.(*ExternalDeclaration),
  5345  			}
  5346  		}
  5347  	case 247:
  5348  		{
  5349  			yyVAL.node = &ExternalDeclaration{
  5350  				FunctionDefinition: yyS[yypt-0].node.(*FunctionDefinition),
  5351  			}
  5352  		}
  5353  	case 248:
  5354  		{
  5355  			yyVAL.node = &ExternalDeclaration{
  5356  				Case:        1,
  5357  				Declaration: yyS[yypt-0].node.(*Declaration),
  5358  			}
  5359  		}
  5360  	case 249:
  5361  		{
  5362  			yyVAL.node = &ExternalDeclaration{
  5363  				Case:                    2,
  5364  				BasicAssemblerStatement: yyS[yypt-1].node.(*BasicAssemblerStatement),
  5365  				Token:                   yyS[yypt-0].Token,
  5366  			}
  5367  		}
  5368  	case 250:
  5369  		{
  5370  			lx := yylex.(*lexer)
  5371  			lhs := &ExternalDeclaration{
  5372  				Case:  3,
  5373  				Token: yyS[yypt-0].Token,
  5374  			}
  5375  			yyVAL.node = lhs
  5376  			if !lx.tweaks.enableEmptyDeclarations {
  5377  				lx.report.Err(lhs.Pos(), "C++11 empty declarations are illegal in C99.")
  5378  			}
  5379  		}
  5380  	case 251:
  5381  		{
  5382  			lx := yylex.(*lexer)
  5383  			if ds := yyS[yypt-2].node.(*DeclarationSpecifiers); ds.typeSpecifier == 0 {
  5384  				ds.typeSpecifier = tsEncode(tsInt)
  5385  				yyS[yypt-1].node.(*Declarator).Type = lx.model.IntType
  5386  				if !lx.tweaks.enableOmitFuncRetType {
  5387  					lx.report.Err(yyS[yypt-1].node.Pos(), "missing function return type")
  5388  				}
  5389  			}
  5390  			var fd *FunctionDefinition
  5391  			fd.post(lx, yyS[yypt-1].node.(*Declarator), yyS[yypt-0].node.(*DeclarationListOpt))
  5392  		}
  5393  	case 252:
  5394  		{
  5395  			yyVAL.node = &FunctionDefinition{
  5396  				DeclarationSpecifiers: yyS[yypt-4].node.(*DeclarationSpecifiers),
  5397  				Declarator:            yyS[yypt-3].node.(*Declarator),
  5398  				DeclarationListOpt:    yyS[yypt-2].node.(*DeclarationListOpt),
  5399  				FunctionBody:          yyS[yypt-0].node.(*FunctionBody),
  5400  			}
  5401  		}
  5402  	case 253:
  5403  		{
  5404  			lx := yylex.(*lexer)
  5405  			lx.scope.specifier = &DeclarationSpecifiers{typeSpecifier: tsEncode(tsInt)}
  5406  		}
  5407  	case 254:
  5408  		{
  5409  			lx := yylex.(*lexer)
  5410  			if !lx.tweaks.enableOmitFuncRetType {
  5411  				lx.report.Err(yyS[yypt-1].node.Pos(), "missing function return type")
  5412  			}
  5413  			var fd *FunctionDefinition
  5414  			fd.post(lx, yyS[yypt-1].node.(*Declarator), yyS[yypt-0].node.(*DeclarationListOpt))
  5415  		}
  5416  	case 255:
  5417  		{
  5418  			yyVAL.node = &FunctionDefinition{
  5419  				Case:               1,
  5420  				Declarator:         yyS[yypt-3].node.(*Declarator),
  5421  				DeclarationListOpt: yyS[yypt-2].node.(*DeclarationListOpt),
  5422  				FunctionBody:       yyS[yypt-0].node.(*FunctionBody),
  5423  			}
  5424  		}
  5425  	case 256:
  5426  		{
  5427  			lx := yylex.(*lexer)
  5428  			// Handle __func__, [0], 6.4.2.2.
  5429  			id, _ := lx.fnDeclarator.Identifier()
  5430  			lx.injectFunc = []xc.Token{
  5431  				{lex.Char{Rune: STATIC}, idStatic},
  5432  				{lex.Char{Rune: CONST}, idConst},
  5433  				{lex.Char{Rune: CHAR}, idChar},
  5434  				{lex.Char{Rune: IDENTIFIER}, idMagicFunc},
  5435  				{lex.Char{Rune: '['}, 0},
  5436  				{lex.Char{Rune: ']'}, 0},
  5437  				{lex.Char{Rune: '='}, 0},
  5438  				{lex.Char{Rune: STRINGLITERAL}, xc.Dict.SID(fmt.Sprintf("%q", xc.Dict.S(id)))},
  5439  				{lex.Char{Rune: ';'}, 0},
  5440  			}
  5441  		}
  5442  	case 257:
  5443  		{
  5444  			lhs := &FunctionBody{
  5445  				CompoundStatement: yyS[yypt-0].node.(*CompoundStatement),
  5446  			}
  5447  			yyVAL.node = lhs
  5448  			lhs.scope = lhs.CompoundStatement.scope
  5449  		}
  5450  	case 258:
  5451  		{
  5452  			lx := yylex.(*lexer)
  5453  			m := lx.scope.mergeScope
  5454  			lx.pushScope(ScopeBlock)
  5455  			if m != nil {
  5456  				lx.scope.merge(m)
  5457  			}
  5458  			lx.scope.mergeScope = nil
  5459  		}
  5460  	case 259:
  5461  		{
  5462  			lx := yylex.(*lexer)
  5463  			lhs := &FunctionBody{
  5464  				Case:               1,
  5465  				AssemblerStatement: yyS[yypt-1].node.(*AssemblerStatement),
  5466  				Token:              yyS[yypt-0].Token,
  5467  			}
  5468  			yyVAL.node = lhs
  5469  			lhs.scope = lx.scope
  5470  			lx.popScope(lx.tokPrev)
  5471  		}
  5472  	case 260:
  5473  		{
  5474  			yyVAL.node = &DeclarationList{
  5475  				Declaration: yyS[yypt-0].node.(*Declaration),
  5476  			}
  5477  		}
  5478  	case 261:
  5479  		{
  5480  			yyVAL.node = &DeclarationList{
  5481  				Case:            1,
  5482  				DeclarationList: yyS[yypt-1].node.(*DeclarationList),
  5483  				Declaration:     yyS[yypt-0].node.(*Declaration),
  5484  			}
  5485  		}
  5486  	case 262:
  5487  		{
  5488  			yyVAL.node = (*DeclarationListOpt)(nil)
  5489  		}
  5490  	case 263:
  5491  		{
  5492  			lx := yylex.(*lexer)
  5493  			lx.pushScope(ScopeParams)
  5494  		}
  5495  	case 264:
  5496  		{
  5497  			lx := yylex.(*lexer)
  5498  			lhs := &DeclarationListOpt{
  5499  				DeclarationList: yyS[yypt-0].node.(*DeclarationList).reverse(),
  5500  			}
  5501  			yyVAL.node = lhs
  5502  			lhs.paramsScope, _ = lx.popScopePos(lhs.Pos())
  5503  		}
  5504  	case 265:
  5505  		{
  5506  			yyVAL.node = &AssemblerInstructions{
  5507  				Token: yyS[yypt-0].Token,
  5508  			}
  5509  		}
  5510  	case 266:
  5511  		{
  5512  			yyVAL.node = &AssemblerInstructions{
  5513  				Case:                  1,
  5514  				AssemblerInstructions: yyS[yypt-1].node.(*AssemblerInstructions),
  5515  				Token:                 yyS[yypt-0].Token,
  5516  			}
  5517  		}
  5518  	case 267:
  5519  		{
  5520  			yyVAL.node = &BasicAssemblerStatement{
  5521  				Token:                 yyS[yypt-4].Token,
  5522  				VolatileOpt:           yyS[yypt-3].node.(*VolatileOpt),
  5523  				Token2:                yyS[yypt-2].Token,
  5524  				AssemblerInstructions: yyS[yypt-1].node.(*AssemblerInstructions).reverse(),
  5525  				Token3:                yyS[yypt-0].Token,
  5526  			}
  5527  		}
  5528  	case 268:
  5529  		{
  5530  			yyVAL.node = (*VolatileOpt)(nil)
  5531  		}
  5532  	case 269:
  5533  		{
  5534  			yyVAL.node = &VolatileOpt{
  5535  				Token: yyS[yypt-0].Token,
  5536  			}
  5537  		}
  5538  	case 270:
  5539  		{
  5540  			yyVAL.node = &AssemblerOperand{
  5541  				AssemblerSymbolicNameOpt: yyS[yypt-4].node.(*AssemblerSymbolicNameOpt),
  5542  				Token:                    yyS[yypt-3].Token,
  5543  				Token2:                   yyS[yypt-2].Token,
  5544  				Expression:               yyS[yypt-1].node.(*Expression),
  5545  				Token3:                   yyS[yypt-0].Token,
  5546  			}
  5547  		}
  5548  	case 271:
  5549  		{
  5550  			yyVAL.node = &AssemblerOperands{
  5551  				AssemblerOperand: yyS[yypt-0].node.(*AssemblerOperand),
  5552  			}
  5553  		}
  5554  	case 272:
  5555  		{
  5556  			yyVAL.node = &AssemblerOperands{
  5557  				Case:              1,
  5558  				AssemblerOperands: yyS[yypt-2].node.(*AssemblerOperands),
  5559  				Token:             yyS[yypt-1].Token,
  5560  				AssemblerOperand:  yyS[yypt-0].node.(*AssemblerOperand),
  5561  			}
  5562  		}
  5563  	case 273:
  5564  		{
  5565  			yyVAL.node = (*AssemblerSymbolicNameOpt)(nil)
  5566  		}
  5567  	case 274:
  5568  		{
  5569  			yyVAL.node = &AssemblerSymbolicNameOpt{
  5570  				Token:  yyS[yypt-2].Token,
  5571  				Token2: yyS[yypt-1].Token,
  5572  				Token3: yyS[yypt-0].Token,
  5573  			}
  5574  		}
  5575  	case 275:
  5576  		{
  5577  			yyVAL.node = &Clobbers{
  5578  				Token: yyS[yypt-0].Token,
  5579  			}
  5580  		}
  5581  	case 276:
  5582  		{
  5583  			yyVAL.node = &Clobbers{
  5584  				Case:     1,
  5585  				Clobbers: yyS[yypt-2].node.(*Clobbers),
  5586  				Token:    yyS[yypt-1].Token,
  5587  				Token2:   yyS[yypt-0].Token,
  5588  			}
  5589  		}
  5590  	case 277:
  5591  		{
  5592  			yyVAL.node = &AssemblerStatement{
  5593  				BasicAssemblerStatement: yyS[yypt-0].node.(*BasicAssemblerStatement),
  5594  			}
  5595  		}
  5596  	case 278:
  5597  		{
  5598  			yyVAL.node = &AssemblerStatement{
  5599  				Case:                  1,
  5600  				Token:                 yyS[yypt-6].Token,
  5601  				VolatileOpt:           yyS[yypt-5].node.(*VolatileOpt),
  5602  				Token2:                yyS[yypt-4].Token,
  5603  				AssemblerInstructions: yyS[yypt-3].node.(*AssemblerInstructions).reverse(),
  5604  				Token3:                yyS[yypt-2].Token,
  5605  				AssemblerOperands:     yyS[yypt-1].node.(*AssemblerOperands).reverse(),
  5606  				Token4:                yyS[yypt-0].Token,
  5607  			}
  5608  		}
  5609  	case 279:
  5610  		{
  5611  			yyVAL.node = &AssemblerStatement{
  5612  				Case:                  2,
  5613  				Token:                 yyS[yypt-8].Token,
  5614  				VolatileOpt:           yyS[yypt-7].node.(*VolatileOpt),
  5615  				Token2:                yyS[yypt-6].Token,
  5616  				AssemblerInstructions: yyS[yypt-5].node.(*AssemblerInstructions).reverse(),
  5617  				Token3:                yyS[yypt-4].Token,
  5618  				AssemblerOperands:     yyS[yypt-3].node.(*AssemblerOperands).reverse(),
  5619  				Token4:                yyS[yypt-2].Token,
  5620  				AssemblerOperands2:    yyS[yypt-1].node.(*AssemblerOperands).reverse(),
  5621  				Token5:                yyS[yypt-0].Token,
  5622  			}
  5623  		}
  5624  	case 280:
  5625  		{
  5626  			yyVAL.node = &AssemblerStatement{
  5627  				Case:                  3,
  5628  				Token:                 yyS[yypt-10].Token,
  5629  				VolatileOpt:           yyS[yypt-9].node.(*VolatileOpt),
  5630  				Token2:                yyS[yypt-8].Token,
  5631  				AssemblerInstructions: yyS[yypt-7].node.(*AssemblerInstructions).reverse(),
  5632  				Token3:                yyS[yypt-6].Token,
  5633  				AssemblerOperands:     yyS[yypt-5].node.(*AssemblerOperands).reverse(),
  5634  				Token4:                yyS[yypt-4].Token,
  5635  				AssemblerOperands2:    yyS[yypt-3].node.(*AssemblerOperands).reverse(),
  5636  				Token5:                yyS[yypt-2].Token,
  5637  				Clobbers:              yyS[yypt-1].node.(*Clobbers).reverse(),
  5638  				Token6:                yyS[yypt-0].Token,
  5639  			}
  5640  		}
  5641  	case 281:
  5642  		{
  5643  			yyVAL.node = &AssemblerStatement{
  5644  				Case:                  4,
  5645  				Token:                 yyS[yypt-12].Token,
  5646  				VolatileOpt:           yyS[yypt-11].node.(*VolatileOpt),
  5647  				Token2:                yyS[yypt-10].Token,
  5648  				Token3:                yyS[yypt-9].Token,
  5649  				AssemblerInstructions: yyS[yypt-8].node.(*AssemblerInstructions).reverse(),
  5650  				Token4:                yyS[yypt-7].Token,
  5651  				Token5:                yyS[yypt-6].Token,
  5652  				AssemblerOperands:     yyS[yypt-5].node.(*AssemblerOperands).reverse(),
  5653  				Token6:                yyS[yypt-4].Token,
  5654  				Clobbers:              yyS[yypt-3].node.(*Clobbers).reverse(),
  5655  				Token7:                yyS[yypt-2].Token,
  5656  				IdentifierList:        yyS[yypt-1].node.(*IdentifierList).reverse(),
  5657  				Token8:                yyS[yypt-0].Token,
  5658  			}
  5659  		}
  5660  	case 282:
  5661  		{
  5662  			yyVAL.node = &AssemblerStatement{
  5663  				Case:                  5,
  5664  				Token:                 yyS[yypt-5].Token,
  5665  				VolatileOpt:           yyS[yypt-4].node.(*VolatileOpt),
  5666  				Token2:                yyS[yypt-3].Token,
  5667  				AssemblerInstructions: yyS[yypt-2].node.(*AssemblerInstructions).reverse(),
  5668  				Token3:                yyS[yypt-1].Token,
  5669  				Token4:                yyS[yypt-0].Token,
  5670  			}
  5671  		}
  5672  	case 283:
  5673  		{
  5674  			yyVAL.node = &AssemblerStatement{
  5675  				Case:                  6,
  5676  				Token:                 yyS[yypt-7].Token,
  5677  				VolatileOpt:           yyS[yypt-6].node.(*VolatileOpt),
  5678  				Token2:                yyS[yypt-5].Token,
  5679  				AssemblerInstructions: yyS[yypt-4].node.(*AssemblerInstructions).reverse(),
  5680  				Token3:                yyS[yypt-3].Token,
  5681  				Token4:                yyS[yypt-2].Token,
  5682  				AssemblerOperands:     yyS[yypt-1].node.(*AssemblerOperands).reverse(),
  5683  				Token5:                yyS[yypt-0].Token,
  5684  			}
  5685  		}
  5686  	case 284:
  5687  		{
  5688  			lx := yylex.(*lexer)
  5689  			lhs := &StaticAssertDeclaration{
  5690  				Token:              yyS[yypt-6].Token,
  5691  				Token2:             yyS[yypt-5].Token,
  5692  				ConstantExpression: yyS[yypt-4].node.(*ConstantExpression),
  5693  				Token3:             yyS[yypt-3].Token,
  5694  				Token4:             yyS[yypt-2].Token,
  5695  				Token5:             yyS[yypt-1].Token,
  5696  				Token6:             yyS[yypt-0].Token,
  5697  			}
  5698  			yyVAL.node = lhs
  5699  			ce := lhs.ConstantExpression
  5700  			if ce.Type == nil || ce.Type.Kind() == Undefined || ce.Value == nil || !IsIntType(ce.Type) {
  5701  				lx.report.Err(ce.Pos(), "invalid static assert expression (have '%v')", ce.Type)
  5702  				break
  5703  			}
  5704  
  5705  			if !isNonZero(ce.Value) {
  5706  				lx.report.ErrTok(lhs.Token, "%s", lhs.Token4.S())
  5707  			}
  5708  		}
  5709  	case 285:
  5710  		{
  5711  			lx := yylex.(*lexer)
  5712  			lhs := &PreprocessingFile{
  5713  				GroupList: yyS[yypt-0].node.(*GroupList).reverse(),
  5714  			}
  5715  			yyVAL.node = lhs
  5716  			lhs.path = lx.file.Name()
  5717  		}
  5718  	case 286:
  5719  		{
  5720  			yyVAL.node = &GroupList{
  5721  				GroupPart: yyS[yypt-0].groupPart,
  5722  			}
  5723  		}
  5724  	case 287:
  5725  		{
  5726  			yyVAL.node = &GroupList{
  5727  				Case:      1,
  5728  				GroupList: yyS[yypt-1].node.(*GroupList),
  5729  				GroupPart: yyS[yypt-0].groupPart,
  5730  			}
  5731  		}
  5732  	case 288:
  5733  		{
  5734  			yyVAL.node = (*GroupListOpt)(nil)
  5735  		}
  5736  	case 289:
  5737  		{
  5738  			yyVAL.node = &GroupListOpt{
  5739  				GroupList: yyS[yypt-0].node.(*GroupList).reverse(),
  5740  			}
  5741  		}
  5742  	case 290:
  5743  		{
  5744  			yyVAL.groupPart = yyS[yypt-0].node.(Node)
  5745  		}
  5746  	case 291:
  5747  		{
  5748  			yyVAL.groupPart = yyS[yypt-0].node.(Node)
  5749  		}
  5750  	case 292:
  5751  		{
  5752  			yyVAL.groupPart = yyS[yypt-2].Token
  5753  		}
  5754  	case 293:
  5755  		{
  5756  			yyVAL.groupPart = yyS[yypt-0].toks
  5757  		}
  5758  	case 294:
  5759  		{
  5760  			yyVAL.node = &IfSection{
  5761  				IfGroup:          yyS[yypt-3].node.(*IfGroup),
  5762  				ElifGroupListOpt: yyS[yypt-2].node.(*ElifGroupListOpt),
  5763  				ElseGroupOpt:     yyS[yypt-1].node.(*ElseGroupOpt),
  5764  				EndifLine:        yyS[yypt-0].node.(*EndifLine),
  5765  			}
  5766  		}
  5767  	case 295:
  5768  		{
  5769  			yyVAL.node = &IfGroup{
  5770  				Token:        yyS[yypt-3].Token,
  5771  				PPTokenList:  yyS[yypt-2].toks,
  5772  				Token2:       yyS[yypt-1].Token,
  5773  				GroupListOpt: yyS[yypt-0].node.(*GroupListOpt),
  5774  			}
  5775  		}
  5776  	case 296:
  5777  		{
  5778  			yyVAL.node = &IfGroup{
  5779  				Case:         1,
  5780  				Token:        yyS[yypt-3].Token,
  5781  				Token2:       yyS[yypt-2].Token,
  5782  				Token3:       yyS[yypt-1].Token,
  5783  				GroupListOpt: yyS[yypt-0].node.(*GroupListOpt),
  5784  			}
  5785  		}
  5786  	case 297:
  5787  		{
  5788  			yyVAL.node = &IfGroup{
  5789  				Case:         2,
  5790  				Token:        yyS[yypt-3].Token,
  5791  				Token2:       yyS[yypt-2].Token,
  5792  				Token3:       yyS[yypt-1].Token,
  5793  				GroupListOpt: yyS[yypt-0].node.(*GroupListOpt),
  5794  			}
  5795  		}
  5796  	case 298:
  5797  		{
  5798  			yyVAL.node = &ElifGroupList{
  5799  				ElifGroup: yyS[yypt-0].node.(*ElifGroup),
  5800  			}
  5801  		}
  5802  	case 299:
  5803  		{
  5804  			yyVAL.node = &ElifGroupList{
  5805  				Case:          1,
  5806  				ElifGroupList: yyS[yypt-1].node.(*ElifGroupList),
  5807  				ElifGroup:     yyS[yypt-0].node.(*ElifGroup),
  5808  			}
  5809  		}
  5810  	case 300:
  5811  		{
  5812  			yyVAL.node = (*ElifGroupListOpt)(nil)
  5813  		}
  5814  	case 301:
  5815  		{
  5816  			yyVAL.node = &ElifGroupListOpt{
  5817  				ElifGroupList: yyS[yypt-0].node.(*ElifGroupList).reverse(),
  5818  			}
  5819  		}
  5820  	case 302:
  5821  		{
  5822  			yyVAL.node = &ElifGroup{
  5823  				Token:        yyS[yypt-3].Token,
  5824  				PPTokenList:  yyS[yypt-2].toks,
  5825  				Token2:       yyS[yypt-1].Token,
  5826  				GroupListOpt: yyS[yypt-0].node.(*GroupListOpt),
  5827  			}
  5828  		}
  5829  	case 303:
  5830  		{
  5831  			yyVAL.node = &ElseGroup{
  5832  				Token:        yyS[yypt-2].Token,
  5833  				Token2:       yyS[yypt-1].Token,
  5834  				GroupListOpt: yyS[yypt-0].node.(*GroupListOpt),
  5835  			}
  5836  		}
  5837  	case 304:
  5838  		{
  5839  			yyVAL.node = (*ElseGroupOpt)(nil)
  5840  		}
  5841  	case 305:
  5842  		{
  5843  			yyVAL.node = &ElseGroupOpt{
  5844  				ElseGroup: yyS[yypt-0].node.(*ElseGroup),
  5845  			}
  5846  		}
  5847  	case 306:
  5848  		{
  5849  			yyVAL.node = &EndifLine{
  5850  				Token: yyS[yypt-0].Token,
  5851  			}
  5852  		}
  5853  	case 307:
  5854  		{
  5855  			yyVAL.node = &ControlLine{
  5856  				Token:           yyS[yypt-2].Token,
  5857  				Token2:          yyS[yypt-1].Token,
  5858  				ReplacementList: yyS[yypt-0].toks,
  5859  			}
  5860  		}
  5861  	case 308:
  5862  		{
  5863  			yyVAL.node = &ControlLine{
  5864  				Case:            1,
  5865  				Token:           yyS[yypt-4].Token,
  5866  				Token2:          yyS[yypt-3].Token,
  5867  				Token3:          yyS[yypt-2].Token,
  5868  				Token4:          yyS[yypt-1].Token,
  5869  				ReplacementList: yyS[yypt-0].toks,
  5870  			}
  5871  		}
  5872  	case 309:
  5873  		{
  5874  			yyVAL.node = &ControlLine{
  5875  				Case:            2,
  5876  				Token:           yyS[yypt-6].Token,
  5877  				Token2:          yyS[yypt-5].Token,
  5878  				IdentifierList:  yyS[yypt-4].node.(*IdentifierList).reverse(),
  5879  				Token3:          yyS[yypt-3].Token,
  5880  				Token4:          yyS[yypt-2].Token,
  5881  				Token5:          yyS[yypt-1].Token,
  5882  				ReplacementList: yyS[yypt-0].toks,
  5883  			}
  5884  		}
  5885  	case 310:
  5886  		{
  5887  			yyVAL.node = &ControlLine{
  5888  				Case:              3,
  5889  				Token:             yyS[yypt-4].Token,
  5890  				Token2:            yyS[yypt-3].Token,
  5891  				IdentifierListOpt: yyS[yypt-2].node.(*IdentifierListOpt),
  5892  				Token3:            yyS[yypt-1].Token,
  5893  				ReplacementList:   yyS[yypt-0].toks,
  5894  			}
  5895  		}
  5896  	case 311:
  5897  		{
  5898  			yyVAL.node = &ControlLine{
  5899  				Case:           4,
  5900  				Token:          yyS[yypt-1].Token,
  5901  				PPTokenListOpt: yyS[yypt-0].toks,
  5902  			}
  5903  		}
  5904  	case 312:
  5905  		{
  5906  			yyVAL.node = &ControlLine{
  5907  				Case:  5,
  5908  				Token: yyS[yypt-0].Token,
  5909  			}
  5910  		}
  5911  	case 313:
  5912  		{
  5913  			yyVAL.node = &ControlLine{
  5914  				Case:        6,
  5915  				Token:       yyS[yypt-2].Token,
  5916  				PPTokenList: yyS[yypt-1].toks,
  5917  				Token2:      yyS[yypt-0].Token,
  5918  			}
  5919  		}
  5920  	case 314:
  5921  		{
  5922  			yyVAL.node = &ControlLine{
  5923  				Case:        7,
  5924  				Token:       yyS[yypt-2].Token,
  5925  				PPTokenList: yyS[yypt-1].toks,
  5926  				Token2:      yyS[yypt-0].Token,
  5927  			}
  5928  		}
  5929  	case 315:
  5930  		{
  5931  			yyVAL.node = &ControlLine{
  5932  				Case:           8,
  5933  				Token:          yyS[yypt-1].Token,
  5934  				PPTokenListOpt: yyS[yypt-0].toks,
  5935  			}
  5936  		}
  5937  	case 316:
  5938  		{
  5939  			yyVAL.node = &ControlLine{
  5940  				Case:   9,
  5941  				Token:  yyS[yypt-2].Token,
  5942  				Token2: yyS[yypt-1].Token,
  5943  				Token3: yyS[yypt-0].Token,
  5944  			}
  5945  		}
  5946  	case 317:
  5947  		{
  5948  			lx := yylex.(*lexer)
  5949  			lhs := &ControlLine{
  5950  				Case:            10,
  5951  				Token:           yyS[yypt-5].Token,
  5952  				Token2:          yyS[yypt-4].Token,
  5953  				IdentifierList:  yyS[yypt-3].node.(*IdentifierList).reverse(),
  5954  				Token3:          yyS[yypt-2].Token,
  5955  				Token4:          yyS[yypt-1].Token,
  5956  				ReplacementList: yyS[yypt-0].toks,
  5957  			}
  5958  			yyVAL.node = lhs
  5959  			if !lx.tweaks.enableDefineOmitCommaBeforeDDD {
  5960  				lx.report.ErrTok(lhs.Token4, "missing comma before \"...\"")
  5961  			}
  5962  		}
  5963  	case 318:
  5964  		{
  5965  			lx := yylex.(*lexer)
  5966  			lhs := &ControlLine{
  5967  				Case:   11,
  5968  				Token:  yyS[yypt-1].Token,
  5969  				Token2: yyS[yypt-0].Token,
  5970  			}
  5971  			yyVAL.node = lhs
  5972  			if !lx.tweaks.enableEmptyDefine {
  5973  				lx.report.ErrTok(lhs.Token2, "expected identifier")
  5974  			}
  5975  		}
  5976  	case 319:
  5977  		{
  5978  			lx := yylex.(*lexer)
  5979  			lhs := &ControlLine{
  5980  				Case:        12,
  5981  				Token:       yyS[yypt-3].Token,
  5982  				Token2:      yyS[yypt-2].Token,
  5983  				PPTokenList: yyS[yypt-1].toks,
  5984  				Token3:      yyS[yypt-0].Token,
  5985  			}
  5986  			yyVAL.node = lhs
  5987  			toks := decodeTokens(lhs.PPTokenList, nil, false)
  5988  			if len(toks) == 0 {
  5989  				lhs.Case = 9 // PPUNDEF IDENTIFIER '\n'
  5990  				break
  5991  			}
  5992  
  5993  			lx.report.ErrTok(toks[0], "extra tokens after #undef argument")
  5994  		}
  5995  	case 320:
  5996  		{
  5997  			yyVAL.node = &ControlLine{
  5998  				Case:        13,
  5999  				Token:       yyS[yypt-2].Token,
  6000  				PPTokenList: yyS[yypt-1].toks,
  6001  				Token2:      yyS[yypt-0].Token,
  6002  			}
  6003  		}
  6004  	case 323:
  6005  		{
  6006  			lx := yylex.(*lexer)
  6007  			yyVAL.toks = PPTokenList(dict.ID(lx.encBuf))
  6008  			lx.encBuf = lx.encBuf[:0]
  6009  			lx.encPos = 0
  6010  		}
  6011  	case 324:
  6012  		{
  6013  			yyVAL.toks = 0
  6014  		}
  6015  
  6016  	}
  6017  
  6018  	if yyEx != nil && yyEx.Reduced(r, exState, &yyVAL) {
  6019  		return -1
  6020  	}
  6021  	goto yystack /* stack new state and value */
  6022  }