Home | History | Annotate | Download | only in MachineIndependent
      1 /* A Bison parser, made by GNU Bison 3.0.4.  */
      2 
      3 /* Bison implementation for Yacc-like parsers in C
      4 
      5    Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
      6 
      7    This program is free software: you can redistribute it and/or modify
      8    it under the terms of the GNU General Public License as published by
      9    the Free Software Foundation, either version 3 of the License, or
     10    (at your option) any later version.
     11 
     12    This program is distributed in the hope that it will be useful,
     13    but WITHOUT ANY WARRANTY; without even the implied warranty of
     14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15    GNU General Public License for more details.
     16 
     17    You should have received a copy of the GNU General Public License
     18    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     19 
     20 /* As a special exception, you may create a larger work that contains
     21    part or all of the Bison parser skeleton and distribute that work
     22    under terms of your choice, so long as that work isn't itself a
     23    parser generator using the skeleton or a modified version thereof
     24    as a parser skeleton.  Alternatively, if you modify or redistribute
     25    the parser skeleton itself, you may (at your option) remove this
     26    special exception, which will cause the skeleton and the resulting
     27    Bison output files to be licensed under the GNU General Public
     28    License without this special exception.
     29 
     30    This special exception was added by the Free Software Foundation in
     31    version 2.2 of Bison.  */
     32 
     33 /* C LALR(1) parser skeleton written by Richard Stallman, by
     34    simplifying the original so-called "semantic" parser.  */
     35 
     36 /* All symbols defined below should begin with yy or YY, to avoid
     37    infringing on user name space.  This should be done even for local
     38    variables, as they might otherwise be expanded by user macros.
     39    There are some unavoidable exceptions within include files to
     40    define necessary library symbols; they are noted "INFRINGES ON
     41    USER NAME SPACE" below.  */
     42 
     43 /* Identify Bison output.  */
     44 #define YYBISON 1
     45 
     46 /* Bison version.  */
     47 #define YYBISON_VERSION "3.0.4"
     48 
     49 /* Skeleton name.  */
     50 #define YYSKELETON_NAME "yacc.c"
     51 
     52 /* Pure parsers.  */
     53 #define YYPURE 1
     54 
     55 /* Push parsers.  */
     56 #define YYPUSH 0
     57 
     58 /* Pull parsers.  */
     59 #define YYPULL 1
     60 
     61 
     62 
     63 
     64 /* Copy the first part of user declarations.  */
     65 #line 42 "MachineIndependent/glslang.y" /* yacc.c:339  */
     66 
     67 
     68 /* Based on:
     69 ANSI C Yacc grammar
     70 
     71 In 1985, Jeff Lee published his Yacc grammar (which is accompanied by a
     72 matching Lex specification) for the April 30, 1985 draft version of the
     73 ANSI C standard.  Tom Stockfisch reposted it to net.sources in 1987; that
     74 original, as mentioned in the answer to question 17.25 of the comp.lang.c
     75 FAQ, can be ftp'ed from ftp.uu.net, file usenet/net.sources/ansi.c.grammar.Z.
     76 
     77 I intend to keep this version as close to the current C Standard grammar as
     78 possible; please let me know if you discover discrepancies.
     79 
     80 Jutta Degener, 1995
     81 */
     82 
     83 #include "SymbolTable.h"
     84 #include "ParseHelper.h"
     85 #include "../Public/ShaderLang.h"
     86 #include "attribute.h"
     87 
     88 using namespace glslang;
     89 
     90 
     91 #line 92 "MachineIndependent/glslang_tab.cpp" /* yacc.c:339  */
     92 
     93 # ifndef YY_NULLPTR
     94 #  if defined __cplusplus && 201103L <= __cplusplus
     95 #   define YY_NULLPTR nullptr
     96 #  else
     97 #   define YY_NULLPTR 0
     98 #  endif
     99 # endif
    100 
    101 /* Enabling verbose error messages.  */
    102 #ifdef YYERROR_VERBOSE
    103 # undef YYERROR_VERBOSE
    104 # define YYERROR_VERBOSE 1
    105 #else
    106 # define YYERROR_VERBOSE 1
    107 #endif
    108 
    109 /* In a future release of Bison, this section will be replaced
    110    by #include "glslang_tab.cpp.h".  */
    111 #ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
    112 # define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
    113 /* Debug traces.  */
    114 #ifndef YYDEBUG
    115 # define YYDEBUG 1
    116 #endif
    117 #if YYDEBUG
    118 extern int yydebug;
    119 #endif
    120 
    121 /* Token type.  */
    122 #ifndef YYTOKENTYPE
    123 # define YYTOKENTYPE
    124   enum yytokentype
    125   {
    126     ATTRIBUTE = 258,
    127     VARYING = 259,
    128     FLOAT16_T = 260,
    129     FLOAT = 261,
    130     FLOAT32_T = 262,
    131     DOUBLE = 263,
    132     FLOAT64_T = 264,
    133     CONST = 265,
    134     BOOL = 266,
    135     INT = 267,
    136     UINT = 268,
    137     INT64_T = 269,
    138     UINT64_T = 270,
    139     INT32_T = 271,
    140     UINT32_T = 272,
    141     INT16_T = 273,
    142     UINT16_T = 274,
    143     INT8_T = 275,
    144     UINT8_T = 276,
    145     BREAK = 277,
    146     CONTINUE = 278,
    147     DO = 279,
    148     ELSE = 280,
    149     FOR = 281,
    150     IF = 282,
    151     DISCARD = 283,
    152     RETURN = 284,
    153     SWITCH = 285,
    154     CASE = 286,
    155     DEFAULT = 287,
    156     SUBROUTINE = 288,
    157     BVEC2 = 289,
    158     BVEC3 = 290,
    159     BVEC4 = 291,
    160     IVEC2 = 292,
    161     IVEC3 = 293,
    162     IVEC4 = 294,
    163     UVEC2 = 295,
    164     UVEC3 = 296,
    165     UVEC4 = 297,
    166     I64VEC2 = 298,
    167     I64VEC3 = 299,
    168     I64VEC4 = 300,
    169     U64VEC2 = 301,
    170     U64VEC3 = 302,
    171     U64VEC4 = 303,
    172     I32VEC2 = 304,
    173     I32VEC3 = 305,
    174     I32VEC4 = 306,
    175     U32VEC2 = 307,
    176     U32VEC3 = 308,
    177     U32VEC4 = 309,
    178     I16VEC2 = 310,
    179     I16VEC3 = 311,
    180     I16VEC4 = 312,
    181     U16VEC2 = 313,
    182     U16VEC3 = 314,
    183     U16VEC4 = 315,
    184     I8VEC2 = 316,
    185     I8VEC3 = 317,
    186     I8VEC4 = 318,
    187     U8VEC2 = 319,
    188     U8VEC3 = 320,
    189     U8VEC4 = 321,
    190     VEC2 = 322,
    191     VEC3 = 323,
    192     VEC4 = 324,
    193     MAT2 = 325,
    194     MAT3 = 326,
    195     MAT4 = 327,
    196     CENTROID = 328,
    197     IN = 329,
    198     OUT = 330,
    199     INOUT = 331,
    200     UNIFORM = 332,
    201     PATCH = 333,
    202     SAMPLE = 334,
    203     BUFFER = 335,
    204     SHARED = 336,
    205     NONUNIFORM = 337,
    206     PAYLOADNV = 338,
    207     PAYLOADINNV = 339,
    208     HITATTRNV = 340,
    209     CALLDATANV = 341,
    210     CALLDATAINNV = 342,
    211     COHERENT = 343,
    212     VOLATILE = 344,
    213     RESTRICT = 345,
    214     READONLY = 346,
    215     WRITEONLY = 347,
    216     DEVICECOHERENT = 348,
    217     QUEUEFAMILYCOHERENT = 349,
    218     WORKGROUPCOHERENT = 350,
    219     SUBGROUPCOHERENT = 351,
    220     NONPRIVATE = 352,
    221     DVEC2 = 353,
    222     DVEC3 = 354,
    223     DVEC4 = 355,
    224     DMAT2 = 356,
    225     DMAT3 = 357,
    226     DMAT4 = 358,
    227     F16VEC2 = 359,
    228     F16VEC3 = 360,
    229     F16VEC4 = 361,
    230     F16MAT2 = 362,
    231     F16MAT3 = 363,
    232     F16MAT4 = 364,
    233     F32VEC2 = 365,
    234     F32VEC3 = 366,
    235     F32VEC4 = 367,
    236     F32MAT2 = 368,
    237     F32MAT3 = 369,
    238     F32MAT4 = 370,
    239     F64VEC2 = 371,
    240     F64VEC3 = 372,
    241     F64VEC4 = 373,
    242     F64MAT2 = 374,
    243     F64MAT3 = 375,
    244     F64MAT4 = 376,
    245     NOPERSPECTIVE = 377,
    246     FLAT = 378,
    247     SMOOTH = 379,
    248     LAYOUT = 380,
    249     EXPLICITINTERPAMD = 381,
    250     PERVERTEXNV = 382,
    251     PERPRIMITIVENV = 383,
    252     PERVIEWNV = 384,
    253     PERTASKNV = 385,
    254     MAT2X2 = 386,
    255     MAT2X3 = 387,
    256     MAT2X4 = 388,
    257     MAT3X2 = 389,
    258     MAT3X3 = 390,
    259     MAT3X4 = 391,
    260     MAT4X2 = 392,
    261     MAT4X3 = 393,
    262     MAT4X4 = 394,
    263     DMAT2X2 = 395,
    264     DMAT2X3 = 396,
    265     DMAT2X4 = 397,
    266     DMAT3X2 = 398,
    267     DMAT3X3 = 399,
    268     DMAT3X4 = 400,
    269     DMAT4X2 = 401,
    270     DMAT4X3 = 402,
    271     DMAT4X4 = 403,
    272     F16MAT2X2 = 404,
    273     F16MAT2X3 = 405,
    274     F16MAT2X4 = 406,
    275     F16MAT3X2 = 407,
    276     F16MAT3X3 = 408,
    277     F16MAT3X4 = 409,
    278     F16MAT4X2 = 410,
    279     F16MAT4X3 = 411,
    280     F16MAT4X4 = 412,
    281     F32MAT2X2 = 413,
    282     F32MAT2X3 = 414,
    283     F32MAT2X4 = 415,
    284     F32MAT3X2 = 416,
    285     F32MAT3X3 = 417,
    286     F32MAT3X4 = 418,
    287     F32MAT4X2 = 419,
    288     F32MAT4X3 = 420,
    289     F32MAT4X4 = 421,
    290     F64MAT2X2 = 422,
    291     F64MAT2X3 = 423,
    292     F64MAT2X4 = 424,
    293     F64MAT3X2 = 425,
    294     F64MAT3X3 = 426,
    295     F64MAT3X4 = 427,
    296     F64MAT4X2 = 428,
    297     F64MAT4X3 = 429,
    298     F64MAT4X4 = 430,
    299     ATOMIC_UINT = 431,
    300     ACCSTRUCTNV = 432,
    301     SAMPLER1D = 433,
    302     SAMPLER2D = 434,
    303     SAMPLER3D = 435,
    304     SAMPLERCUBE = 436,
    305     SAMPLER1DSHADOW = 437,
    306     SAMPLER2DSHADOW = 438,
    307     SAMPLERCUBESHADOW = 439,
    308     SAMPLER1DARRAY = 440,
    309     SAMPLER2DARRAY = 441,
    310     SAMPLER1DARRAYSHADOW = 442,
    311     SAMPLER2DARRAYSHADOW = 443,
    312     ISAMPLER1D = 444,
    313     ISAMPLER2D = 445,
    314     ISAMPLER3D = 446,
    315     ISAMPLERCUBE = 447,
    316     ISAMPLER1DARRAY = 448,
    317     ISAMPLER2DARRAY = 449,
    318     USAMPLER1D = 450,
    319     USAMPLER2D = 451,
    320     USAMPLER3D = 452,
    321     USAMPLERCUBE = 453,
    322     USAMPLER1DARRAY = 454,
    323     USAMPLER2DARRAY = 455,
    324     SAMPLER2DRECT = 456,
    325     SAMPLER2DRECTSHADOW = 457,
    326     ISAMPLER2DRECT = 458,
    327     USAMPLER2DRECT = 459,
    328     SAMPLERBUFFER = 460,
    329     ISAMPLERBUFFER = 461,
    330     USAMPLERBUFFER = 462,
    331     SAMPLERCUBEARRAY = 463,
    332     SAMPLERCUBEARRAYSHADOW = 464,
    333     ISAMPLERCUBEARRAY = 465,
    334     USAMPLERCUBEARRAY = 466,
    335     SAMPLER2DMS = 467,
    336     ISAMPLER2DMS = 468,
    337     USAMPLER2DMS = 469,
    338     SAMPLER2DMSARRAY = 470,
    339     ISAMPLER2DMSARRAY = 471,
    340     USAMPLER2DMSARRAY = 472,
    341     SAMPLEREXTERNALOES = 473,
    342     F16SAMPLER1D = 474,
    343     F16SAMPLER2D = 475,
    344     F16SAMPLER3D = 476,
    345     F16SAMPLER2DRECT = 477,
    346     F16SAMPLERCUBE = 478,
    347     F16SAMPLER1DARRAY = 479,
    348     F16SAMPLER2DARRAY = 480,
    349     F16SAMPLERCUBEARRAY = 481,
    350     F16SAMPLERBUFFER = 482,
    351     F16SAMPLER2DMS = 483,
    352     F16SAMPLER2DMSARRAY = 484,
    353     F16SAMPLER1DSHADOW = 485,
    354     F16SAMPLER2DSHADOW = 486,
    355     F16SAMPLER1DARRAYSHADOW = 487,
    356     F16SAMPLER2DARRAYSHADOW = 488,
    357     F16SAMPLER2DRECTSHADOW = 489,
    358     F16SAMPLERCUBESHADOW = 490,
    359     F16SAMPLERCUBEARRAYSHADOW = 491,
    360     SAMPLER = 492,
    361     SAMPLERSHADOW = 493,
    362     TEXTURE1D = 494,
    363     TEXTURE2D = 495,
    364     TEXTURE3D = 496,
    365     TEXTURECUBE = 497,
    366     TEXTURE1DARRAY = 498,
    367     TEXTURE2DARRAY = 499,
    368     ITEXTURE1D = 500,
    369     ITEXTURE2D = 501,
    370     ITEXTURE3D = 502,
    371     ITEXTURECUBE = 503,
    372     ITEXTURE1DARRAY = 504,
    373     ITEXTURE2DARRAY = 505,
    374     UTEXTURE1D = 506,
    375     UTEXTURE2D = 507,
    376     UTEXTURE3D = 508,
    377     UTEXTURECUBE = 509,
    378     UTEXTURE1DARRAY = 510,
    379     UTEXTURE2DARRAY = 511,
    380     TEXTURE2DRECT = 512,
    381     ITEXTURE2DRECT = 513,
    382     UTEXTURE2DRECT = 514,
    383     TEXTUREBUFFER = 515,
    384     ITEXTUREBUFFER = 516,
    385     UTEXTUREBUFFER = 517,
    386     TEXTURECUBEARRAY = 518,
    387     ITEXTURECUBEARRAY = 519,
    388     UTEXTURECUBEARRAY = 520,
    389     TEXTURE2DMS = 521,
    390     ITEXTURE2DMS = 522,
    391     UTEXTURE2DMS = 523,
    392     TEXTURE2DMSARRAY = 524,
    393     ITEXTURE2DMSARRAY = 525,
    394     UTEXTURE2DMSARRAY = 526,
    395     F16TEXTURE1D = 527,
    396     F16TEXTURE2D = 528,
    397     F16TEXTURE3D = 529,
    398     F16TEXTURE2DRECT = 530,
    399     F16TEXTURECUBE = 531,
    400     F16TEXTURE1DARRAY = 532,
    401     F16TEXTURE2DARRAY = 533,
    402     F16TEXTURECUBEARRAY = 534,
    403     F16TEXTUREBUFFER = 535,
    404     F16TEXTURE2DMS = 536,
    405     F16TEXTURE2DMSARRAY = 537,
    406     SUBPASSINPUT = 538,
    407     SUBPASSINPUTMS = 539,
    408     ISUBPASSINPUT = 540,
    409     ISUBPASSINPUTMS = 541,
    410     USUBPASSINPUT = 542,
    411     USUBPASSINPUTMS = 543,
    412     F16SUBPASSINPUT = 544,
    413     F16SUBPASSINPUTMS = 545,
    414     IMAGE1D = 546,
    415     IIMAGE1D = 547,
    416     UIMAGE1D = 548,
    417     IMAGE2D = 549,
    418     IIMAGE2D = 550,
    419     UIMAGE2D = 551,
    420     IMAGE3D = 552,
    421     IIMAGE3D = 553,
    422     UIMAGE3D = 554,
    423     IMAGE2DRECT = 555,
    424     IIMAGE2DRECT = 556,
    425     UIMAGE2DRECT = 557,
    426     IMAGECUBE = 558,
    427     IIMAGECUBE = 559,
    428     UIMAGECUBE = 560,
    429     IMAGEBUFFER = 561,
    430     IIMAGEBUFFER = 562,
    431     UIMAGEBUFFER = 563,
    432     IMAGE1DARRAY = 564,
    433     IIMAGE1DARRAY = 565,
    434     UIMAGE1DARRAY = 566,
    435     IMAGE2DARRAY = 567,
    436     IIMAGE2DARRAY = 568,
    437     UIMAGE2DARRAY = 569,
    438     IMAGECUBEARRAY = 570,
    439     IIMAGECUBEARRAY = 571,
    440     UIMAGECUBEARRAY = 572,
    441     IMAGE2DMS = 573,
    442     IIMAGE2DMS = 574,
    443     UIMAGE2DMS = 575,
    444     IMAGE2DMSARRAY = 576,
    445     IIMAGE2DMSARRAY = 577,
    446     UIMAGE2DMSARRAY = 578,
    447     F16IMAGE1D = 579,
    448     F16IMAGE2D = 580,
    449     F16IMAGE3D = 581,
    450     F16IMAGE2DRECT = 582,
    451     F16IMAGECUBE = 583,
    452     F16IMAGE1DARRAY = 584,
    453     F16IMAGE2DARRAY = 585,
    454     F16IMAGECUBEARRAY = 586,
    455     F16IMAGEBUFFER = 587,
    456     F16IMAGE2DMS = 588,
    457     F16IMAGE2DMSARRAY = 589,
    458     STRUCT = 590,
    459     VOID = 591,
    460     WHILE = 592,
    461     IDENTIFIER = 593,
    462     TYPE_NAME = 594,
    463     FLOATCONSTANT = 595,
    464     DOUBLECONSTANT = 596,
    465     INT16CONSTANT = 597,
    466     UINT16CONSTANT = 598,
    467     INT32CONSTANT = 599,
    468     UINT32CONSTANT = 600,
    469     INTCONSTANT = 601,
    470     UINTCONSTANT = 602,
    471     INT64CONSTANT = 603,
    472     UINT64CONSTANT = 604,
    473     BOOLCONSTANT = 605,
    474     FLOAT16CONSTANT = 606,
    475     LEFT_OP = 607,
    476     RIGHT_OP = 608,
    477     INC_OP = 609,
    478     DEC_OP = 610,
    479     LE_OP = 611,
    480     GE_OP = 612,
    481     EQ_OP = 613,
    482     NE_OP = 614,
    483     AND_OP = 615,
    484     OR_OP = 616,
    485     XOR_OP = 617,
    486     MUL_ASSIGN = 618,
    487     DIV_ASSIGN = 619,
    488     ADD_ASSIGN = 620,
    489     MOD_ASSIGN = 621,
    490     LEFT_ASSIGN = 622,
    491     RIGHT_ASSIGN = 623,
    492     AND_ASSIGN = 624,
    493     XOR_ASSIGN = 625,
    494     OR_ASSIGN = 626,
    495     SUB_ASSIGN = 627,
    496     LEFT_PAREN = 628,
    497     RIGHT_PAREN = 629,
    498     LEFT_BRACKET = 630,
    499     RIGHT_BRACKET = 631,
    500     LEFT_BRACE = 632,
    501     RIGHT_BRACE = 633,
    502     DOT = 634,
    503     COMMA = 635,
    504     COLON = 636,
    505     EQUAL = 637,
    506     SEMICOLON = 638,
    507     BANG = 639,
    508     DASH = 640,
    509     TILDE = 641,
    510     PLUS = 642,
    511     STAR = 643,
    512     SLASH = 644,
    513     PERCENT = 645,
    514     LEFT_ANGLE = 646,
    515     RIGHT_ANGLE = 647,
    516     VERTICAL_BAR = 648,
    517     CARET = 649,
    518     AMPERSAND = 650,
    519     QUESTION = 651,
    520     INVARIANT = 652,
    521     PRECISE = 653,
    522     HIGH_PRECISION = 654,
    523     MEDIUM_PRECISION = 655,
    524     LOW_PRECISION = 656,
    525     PRECISION = 657,
    526     PACKED = 658,
    527     RESOURCE = 659,
    528     SUPERP = 660
    529   };
    530 #endif
    531 
    532 /* Value type.  */
    533 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    534 
    535 union YYSTYPE
    536 {
    537 #line 70 "MachineIndependent/glslang.y" /* yacc.c:355  */
    538 
    539     struct {
    540         glslang::TSourceLoc loc;
    541         union {
    542             glslang::TString *string;
    543             int i;
    544             unsigned int u;
    545             long long i64;
    546             unsigned long long u64;
    547             bool b;
    548             double d;
    549         };
    550         glslang::TSymbol* symbol;
    551     } lex;
    552     struct {
    553         glslang::TSourceLoc loc;
    554         glslang::TOperator op;
    555         union {
    556             TIntermNode* intermNode;
    557             glslang::TIntermNodePair nodePair;
    558             glslang::TIntermTyped* intermTypedNode;
    559             glslang::TAttributes* attributes;
    560         };
    561         union {
    562             glslang::TPublicType type;
    563             glslang::TFunction* function;
    564             glslang::TParameter param;
    565             glslang::TTypeLoc typeLine;
    566             glslang::TTypeList* typeList;
    567             glslang::TArraySizes* arraySizes;
    568             glslang::TIdentifierList* identifierList;
    569         };
    570     } interm;
    571 
    572 #line 573 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355  */
    573 };
    574 
    575 typedef union YYSTYPE YYSTYPE;
    576 # define YYSTYPE_IS_TRIVIAL 1
    577 # define YYSTYPE_IS_DECLARED 1
    578 #endif
    579 
    580 
    581 
    582 int yyparse (glslang::TParseContext* pParseContext);
    583 
    584 #endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED  */
    585 
    586 /* Copy the second part of user declarations.  */
    587 #line 105 "MachineIndependent/glslang.y" /* yacc.c:358  */
    588 
    589 
    590 /* windows only pragma */
    591 #ifdef _MSC_VER
    592     #pragma warning(disable : 4065)
    593     #pragma warning(disable : 4127)
    594     #pragma warning(disable : 4244)
    595 #endif
    596 
    597 #define parseContext (*pParseContext)
    598 #define yyerror(context, msg) context->parserError(msg)
    599 
    600 extern int yylex(YYSTYPE*, TParseContext&);
    601 
    602 
    603 #line 604 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358  */
    604 
    605 #ifdef short
    606 # undef short
    607 #endif
    608 
    609 #ifdef YYTYPE_UINT8
    610 typedef YYTYPE_UINT8 yytype_uint8;
    611 #else
    612 typedef unsigned char yytype_uint8;
    613 #endif
    614 
    615 #ifdef YYTYPE_INT8
    616 typedef YYTYPE_INT8 yytype_int8;
    617 #else
    618 typedef signed char yytype_int8;
    619 #endif
    620 
    621 #ifdef YYTYPE_UINT16
    622 typedef YYTYPE_UINT16 yytype_uint16;
    623 #else
    624 typedef unsigned short int yytype_uint16;
    625 #endif
    626 
    627 #ifdef YYTYPE_INT16
    628 typedef YYTYPE_INT16 yytype_int16;
    629 #else
    630 typedef short int yytype_int16;
    631 #endif
    632 
    633 #ifndef YYSIZE_T
    634 # ifdef __SIZE_TYPE__
    635 #  define YYSIZE_T __SIZE_TYPE__
    636 # elif defined size_t
    637 #  define YYSIZE_T size_t
    638 # elif ! defined YYSIZE_T
    639 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
    640 #  define YYSIZE_T size_t
    641 # else
    642 #  define YYSIZE_T unsigned int
    643 # endif
    644 #endif
    645 
    646 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
    647 
    648 #ifndef YY_
    649 # if defined YYENABLE_NLS && YYENABLE_NLS
    650 #  if ENABLE_NLS
    651 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
    652 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
    653 #  endif
    654 # endif
    655 # ifndef YY_
    656 #  define YY_(Msgid) Msgid
    657 # endif
    658 #endif
    659 
    660 #ifndef YY_ATTRIBUTE
    661 # if (defined __GNUC__                                               \
    662       && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
    663      || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
    664 #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
    665 # else
    666 #  define YY_ATTRIBUTE(Spec) /* empty */
    667 # endif
    668 #endif
    669 
    670 #ifndef YY_ATTRIBUTE_PURE
    671 # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
    672 #endif
    673 
    674 #ifndef YY_ATTRIBUTE_UNUSED
    675 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
    676 #endif
    677 
    678 #if !defined _Noreturn \
    679      && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
    680 # if defined _MSC_VER && 1200 <= _MSC_VER
    681 #  define _Noreturn __declspec (noreturn)
    682 # else
    683 #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
    684 # endif
    685 #endif
    686 
    687 /* Suppress unused-variable warnings by "using" E.  */
    688 #if ! defined lint || defined __GNUC__
    689 # define YYUSE(E) ((void) (E))
    690 #else
    691 # define YYUSE(E) /* empty */
    692 #endif
    693 
    694 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
    695 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
    696 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
    697     _Pragma ("GCC diagnostic push") \
    698     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
    699     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
    700 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
    701     _Pragma ("GCC diagnostic pop")
    702 #else
    703 # define YY_INITIAL_VALUE(Value) Value
    704 #endif
    705 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    706 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    707 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
    708 #endif
    709 #ifndef YY_INITIAL_VALUE
    710 # define YY_INITIAL_VALUE(Value) /* Nothing. */
    711 #endif
    712 
    713 
    714 #if ! defined yyoverflow || YYERROR_VERBOSE
    715 
    716 /* The parser invokes alloca or malloc; define the necessary symbols.  */
    717 
    718 # ifdef YYSTACK_USE_ALLOCA
    719 #  if YYSTACK_USE_ALLOCA
    720 #   ifdef __GNUC__
    721 #    define YYSTACK_ALLOC __builtin_alloca
    722 #   elif defined __BUILTIN_VA_ARG_INCR
    723 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
    724 #   elif defined _AIX
    725 #    define YYSTACK_ALLOC __alloca
    726 #   elif defined _MSC_VER
    727 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
    728 #    define alloca _alloca
    729 #   else
    730 #    define YYSTACK_ALLOC alloca
    731 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
    732 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    733       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
    734 #     ifndef EXIT_SUCCESS
    735 #      define EXIT_SUCCESS 0
    736 #     endif
    737 #    endif
    738 #   endif
    739 #  endif
    740 # endif
    741 
    742 # ifdef YYSTACK_ALLOC
    743    /* Pacify GCC's 'empty if-body' warning.  */
    744 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
    745 #  ifndef YYSTACK_ALLOC_MAXIMUM
    746     /* The OS might guarantee only one guard page at the bottom of the stack,
    747        and a page size can be as small as 4096 bytes.  So we cannot safely
    748        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
    749        to allow for a few compiler-allocated temporary stack slots.  */
    750 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
    751 #  endif
    752 # else
    753 #  define YYSTACK_ALLOC YYMALLOC
    754 #  define YYSTACK_FREE YYFREE
    755 #  ifndef YYSTACK_ALLOC_MAXIMUM
    756 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
    757 #  endif
    758 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
    759        && ! ((defined YYMALLOC || defined malloc) \
    760              && (defined YYFREE || defined free)))
    761 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    762 #   ifndef EXIT_SUCCESS
    763 #    define EXIT_SUCCESS 0
    764 #   endif
    765 #  endif
    766 #  ifndef YYMALLOC
    767 #   define YYMALLOC malloc
    768 #   if ! defined malloc && ! defined EXIT_SUCCESS
    769 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
    770 #   endif
    771 #  endif
    772 #  ifndef YYFREE
    773 #   define YYFREE free
    774 #   if ! defined free && ! defined EXIT_SUCCESS
    775 void free (void *); /* INFRINGES ON USER NAME SPACE */
    776 #   endif
    777 #  endif
    778 # endif
    779 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
    780 
    781 
    782 #if (! defined yyoverflow \
    783      && (! defined __cplusplus \
    784          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
    785 
    786 /* A type that is properly aligned for any stack member.  */
    787 union yyalloc
    788 {
    789   yytype_int16 yyss_alloc;
    790   YYSTYPE yyvs_alloc;
    791 };
    792 
    793 /* The size of the maximum gap between one aligned stack and the next.  */
    794 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
    795 
    796 /* The size of an array large to enough to hold all stacks, each with
    797    N elements.  */
    798 # define YYSTACK_BYTES(N) \
    799      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
    800       + YYSTACK_GAP_MAXIMUM)
    801 
    802 # define YYCOPY_NEEDED 1
    803 
    804 /* Relocate STACK from its old location to the new one.  The
    805    local variables YYSIZE and YYSTACKSIZE give the old and new number of
    806    elements in the stack, and YYPTR gives the new location of the
    807    stack.  Advance YYPTR to a properly aligned location for the next
    808    stack.  */
    809 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
    810     do                                                                  \
    811       {                                                                 \
    812         YYSIZE_T yynewbytes;                                            \
    813         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
    814         Stack = &yyptr->Stack_alloc;                                    \
    815         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
    816         yyptr += yynewbytes / sizeof (*yyptr);                          \
    817       }                                                                 \
    818     while (0)
    819 
    820 #endif
    821 
    822 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
    823 /* Copy COUNT objects from SRC to DST.  The source and destination do
    824    not overlap.  */
    825 # ifndef YYCOPY
    826 #  if defined __GNUC__ && 1 < __GNUC__
    827 #   define YYCOPY(Dst, Src, Count) \
    828       __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
    829 #  else
    830 #   define YYCOPY(Dst, Src, Count)              \
    831       do                                        \
    832         {                                       \
    833           YYSIZE_T yyi;                         \
    834           for (yyi = 0; yyi < (Count); yyi++)   \
    835             (Dst)[yyi] = (Src)[yyi];            \
    836         }                                       \
    837       while (0)
    838 #  endif
    839 # endif
    840 #endif /* !YYCOPY_NEEDED */
    841 
    842 /* YYFINAL -- State number of the termination state.  */
    843 #define YYFINAL  381
    844 /* YYLAST -- Last index in YYTABLE.  */
    845 #define YYLAST   9294
    846 
    847 /* YYNTOKENS -- Number of terminals.  */
    848 #define YYNTOKENS  406
    849 /* YYNNTS -- Number of nonterminals.  */
    850 #define YYNNTS  107
    851 /* YYNRULES -- Number of rules.  */
    852 #define YYNRULES  571
    853 /* YYNSTATES -- Number of states.  */
    854 #define YYNSTATES  712
    855 
    856 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
    857    by yylex, with out-of-bounds checking.  */
    858 #define YYUNDEFTOK  2
    859 #define YYMAXUTOK   660
    860 
    861 #define YYTRANSLATE(YYX)                                                \
    862   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
    863 
    864 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
    865    as returned by yylex, without out-of-bounds checking.  */
    866 static const yytype_uint16 yytranslate[] =
    867 {
    868        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    869        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    870        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    871        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    872        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    873        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    874        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    875        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    876        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    877        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    878        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    879        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    880        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    881        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    882        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    883        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    884        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    885        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    886        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    887        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    888        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    889        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    890        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    891        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    892        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    893        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
    894        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    895       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    896       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
    897       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
    898       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
    899       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
    900       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
    901       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
    902       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
    903       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
    904      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
    905      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
    906      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
    907      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
    908      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
    909      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
    910      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
    911      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
    912      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
    913      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
    914      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
    915      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
    916      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
    917      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
    918      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
    919      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
    920      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
    921      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
    922      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
    923      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
    924      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
    925      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
    926      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
    927      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
    928      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
    929      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
    930      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
    931      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
    932      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
    933      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
    934      405
    935 };
    936 
    937 #if YYDEBUG
    938   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
    939 static const yytype_uint16 yyrline[] =
    940 {
    941        0,   294,   294,   300,   303,   307,   311,   314,   318,   322,
    942      326,   330,   334,   337,   341,   345,   348,   356,   359,   362,
    943      365,   368,   373,   381,   388,   395,   401,   405,   412,   415,
    944      421,   428,   438,   446,   451,   478,   486,   492,   496,   500,
    945      520,   521,   522,   523,   529,   530,   535,   540,   549,   550,
    946      555,   563,   564,   570,   579,   580,   585,   590,   595,   603,
    947      604,   612,   623,   624,   633,   634,   643,   644,   653,   654,
    948      662,   663,   671,   672,   680,   681,   681,   699,   700,   716,
    949      720,   724,   728,   733,   737,   741,   745,   749,   753,   757,
    950      764,   767,   778,   785,   790,   795,   803,   807,   811,   815,
    951      820,   825,   834,   834,   845,   849,   856,   863,   866,   873,
    952      881,   901,   924,   939,   964,   975,   985,   995,  1005,  1014,
    953     1017,  1021,  1025,  1030,  1038,  1043,  1048,  1053,  1058,  1067,
    954     1078,  1105,  1114,  1121,  1128,  1139,  1148,  1158,  1170,  1179,
    955     1191,  1197,  1200,  1207,  1211,  1215,  1223,  1232,  1235,  1246,
    956     1249,  1252,  1256,  1260,  1264,  1268,  1274,  1278,  1290,  1304,
    957     1309,  1315,  1321,  1328,  1334,  1339,  1344,  1349,  1359,  1369,
    958     1379,  1389,  1398,  1410,  1414,  1419,  1424,  1429,  1434,  1439,
    959     1443,  1447,  1451,  1455,  1461,  1470,  1477,  1480,  1488,  1492,
    960     1501,  1506,  1514,  1518,  1528,  1532,  1536,  1541,  1546,  1551,
    961     1556,  1560,  1565,  1570,  1575,  1580,  1585,  1590,  1595,  1600,
    962     1605,  1609,  1614,  1619,  1624,  1630,  1636,  1642,  1648,  1654,
    963     1660,  1666,  1672,  1678,  1684,  1690,  1696,  1701,  1706,  1711,
    964     1716,  1721,  1726,  1732,  1738,  1744,  1750,  1756,  1762,  1768,
    965     1774,  1780,  1786,  1792,  1798,  1804,  1810,  1816,  1822,  1828,
    966     1834,  1840,  1846,  1852,  1858,  1864,  1870,  1876,  1882,  1888,
    967     1893,  1898,  1903,  1908,  1913,  1918,  1923,  1928,  1933,  1938,
    968     1943,  1948,  1954,  1960,  1966,  1972,  1978,  1984,  1990,  1996,
    969     2002,  2008,  2014,  2020,  2026,  2032,  2038,  2044,  2050,  2056,
    970     2062,  2068,  2074,  2080,  2086,  2092,  2098,  2104,  2110,  2116,
    971     2122,  2128,  2134,  2140,  2146,  2152,  2158,  2164,  2170,  2176,
    972     2182,  2188,  2194,  2200,  2206,  2212,  2218,  2224,  2230,  2236,
    973     2242,  2247,  2252,  2257,  2262,  2267,  2272,  2277,  2282,  2287,
    974     2292,  2297,  2302,  2307,  2312,  2320,  2328,  2336,  2344,  2352,
    975     2360,  2368,  2376,  2384,  2392,  2400,  2408,  2416,  2421,  2426,
    976     2431,  2436,  2441,  2446,  2451,  2456,  2461,  2466,  2471,  2476,
    977     2481,  2486,  2491,  2496,  2504,  2512,  2517,  2522,  2527,  2535,
    978     2540,  2545,  2550,  2558,  2563,  2568,  2573,  2581,  2586,  2591,
    979     2596,  2601,  2606,  2614,  2619,  2627,  2632,  2640,  2645,  2653,
    980     2658,  2666,  2671,  2679,  2684,  2692,  2697,  2702,  2707,  2712,
    981     2717,  2722,  2727,  2732,  2737,  2742,  2747,  2752,  2757,  2762,
    982     2767,  2775,  2780,  2785,  2790,  2798,  2803,  2808,  2813,  2821,
    983     2826,  2831,  2836,  2844,  2849,  2854,  2859,  2867,  2872,  2877,
    984     2882,  2890,  2895,  2900,  2905,  2913,  2918,  2923,  2928,  2936,
    985     2941,  2946,  2951,  2959,  2964,  2969,  2974,  2982,  2987,  2992,
    986     2997,  3005,  3010,  3015,  3020,  3028,  3033,  3038,  3043,  3051,
    987     3056,  3061,  3066,  3074,  3079,  3084,  3089,  3097,  3102,  3107,
    988     3113,  3119,  3125,  3134,  3143,  3149,  3155,  3161,  3167,  3172,
    989     3188,  3193,  3198,  3206,  3206,  3217,  3217,  3227,  3230,  3243,
    990     3265,  3292,  3296,  3302,  3307,  3318,  3321,  3327,  3336,  3339,
    991     3345,  3349,  3350,  3356,  3357,  3358,  3359,  3360,  3361,  3362,
    992     3366,  3367,  3371,  3367,  3383,  3384,  3388,  3388,  3395,  3395,
    993     3409,  3412,  3420,  3428,  3439,  3440,  3444,  3447,  3453,  3460,
    994     3464,  3472,  3476,  3489,  3492,  3498,  3498,  3518,  3521,  3527,
    995     3539,  3551,  3554,  3560,  3560,  3575,  3575,  3591,  3591,  3612,
    996     3615,  3621,  3624,  3630,  3634,  3641,  3646,  3651,  3658,  3661,
    997     3670,  3674,  3683,  3686,  3689,  3697,  3697,  3719,  3725,  3728,
    998     3733,  3736
    999 };
   1000 #endif
   1001 
   1002 #if YYDEBUG || YYERROR_VERBOSE || 1
   1003 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
   1004    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
   1005 static const char *const yytname[] =
   1006 {
   1007   "$end", "error", "$undefined", "ATTRIBUTE", "VARYING", "FLOAT16_T",
   1008   "FLOAT", "FLOAT32_T", "DOUBLE", "FLOAT64_T", "CONST", "BOOL", "INT",
   1009   "UINT", "INT64_T", "UINT64_T", "INT32_T", "UINT32_T", "INT16_T",
   1010   "UINT16_T", "INT8_T", "UINT8_T", "BREAK", "CONTINUE", "DO", "ELSE",
   1011   "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT",
   1012   "SUBROUTINE", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4",
   1013   "UVEC2", "UVEC3", "UVEC4", "I64VEC2", "I64VEC3", "I64VEC4", "U64VEC2",
   1014   "U64VEC3", "U64VEC4", "I32VEC2", "I32VEC3", "I32VEC4", "U32VEC2",
   1015   "U32VEC3", "U32VEC4", "I16VEC2", "I16VEC3", "I16VEC4", "U16VEC2",
   1016   "U16VEC3", "U16VEC4", "I8VEC2", "I8VEC3", "I8VEC4", "U8VEC2", "U8VEC3",
   1017   "U8VEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3", "MAT4", "CENTROID",
   1018   "IN", "OUT", "INOUT", "UNIFORM", "PATCH", "SAMPLE", "BUFFER", "SHARED",
   1019   "NONUNIFORM", "PAYLOADNV", "PAYLOADINNV", "HITATTRNV", "CALLDATANV",
   1020   "CALLDATAINNV", "COHERENT", "VOLATILE", "RESTRICT", "READONLY",
   1021   "WRITEONLY", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT",
   1022   "WORKGROUPCOHERENT", "SUBGROUPCOHERENT", "NONPRIVATE", "DVEC2", "DVEC3",
   1023   "DVEC4", "DMAT2", "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4",
   1024   "F16MAT2", "F16MAT3", "F16MAT4", "F32VEC2", "F32VEC3", "F32VEC4",
   1025   "F32MAT2", "F32MAT3", "F32MAT4", "F64VEC2", "F64VEC3", "F64VEC4",
   1026   "F64MAT2", "F64MAT3", "F64MAT4", "NOPERSPECTIVE", "FLAT", "SMOOTH",
   1027   "LAYOUT", "EXPLICITINTERPAMD", "PERVERTEXNV", "PERPRIMITIVENV",
   1028   "PERVIEWNV", "PERTASKNV", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2",
   1029   "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3", "MAT4X4", "DMAT2X2", "DMAT2X3",
   1030   "DMAT2X4", "DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3",
   1031   "DMAT4X4", "F16MAT2X2", "F16MAT2X3", "F16MAT2X4", "F16MAT3X2",
   1032   "F16MAT3X3", "F16MAT3X4", "F16MAT4X2", "F16MAT4X3", "F16MAT4X4",
   1033   "F32MAT2X2", "F32MAT2X3", "F32MAT2X4", "F32MAT3X2", "F32MAT3X3",
   1034   "F32MAT3X4", "F32MAT4X2", "F32MAT4X3", "F32MAT4X4", "F64MAT2X2",
   1035   "F64MAT2X3", "F64MAT2X4", "F64MAT3X2", "F64MAT3X3", "F64MAT3X4",
   1036   "F64MAT4X2", "F64MAT4X3", "F64MAT4X4", "ATOMIC_UINT", "ACCSTRUCTNV",
   1037   "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE", "SAMPLER1DSHADOW",
   1038   "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER1DARRAY",
   1039   "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW", "SAMPLER2DARRAYSHADOW",
   1040   "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE",
   1041   "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D", "USAMPLER2D",
   1042   "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY", "USAMPLER2DARRAY",
   1043   "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT",
   1044   "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER",
   1045   "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY",
   1046   "USAMPLERCUBEARRAY", "SAMPLER2DMS", "ISAMPLER2DMS", "USAMPLER2DMS",
   1047   "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", "USAMPLER2DMSARRAY",
   1048   "SAMPLEREXTERNALOES", "F16SAMPLER1D", "F16SAMPLER2D", "F16SAMPLER3D",
   1049   "F16SAMPLER2DRECT", "F16SAMPLERCUBE", "F16SAMPLER1DARRAY",
   1050   "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY", "F16SAMPLERBUFFER",
   1051   "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY", "F16SAMPLER1DSHADOW",
   1052   "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW",
   1053   "F16SAMPLER2DARRAYSHADOW", "F16SAMPLER2DRECTSHADOW",
   1054   "F16SAMPLERCUBESHADOW", "F16SAMPLERCUBEARRAYSHADOW", "SAMPLER",
   1055   "SAMPLERSHADOW", "TEXTURE1D", "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE",
   1056   "TEXTURE1DARRAY", "TEXTURE2DARRAY", "ITEXTURE1D", "ITEXTURE2D",
   1057   "ITEXTURE3D", "ITEXTURECUBE", "ITEXTURE1DARRAY", "ITEXTURE2DARRAY",
   1058   "UTEXTURE1D", "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE",
   1059   "UTEXTURE1DARRAY", "UTEXTURE2DARRAY", "TEXTURE2DRECT", "ITEXTURE2DRECT",
   1060   "UTEXTURE2DRECT", "TEXTUREBUFFER", "ITEXTUREBUFFER", "UTEXTUREBUFFER",
   1061   "TEXTURECUBEARRAY", "ITEXTURECUBEARRAY", "UTEXTURECUBEARRAY",
   1062   "TEXTURE2DMS", "ITEXTURE2DMS", "UTEXTURE2DMS", "TEXTURE2DMSARRAY",
   1063   "ITEXTURE2DMSARRAY", "UTEXTURE2DMSARRAY", "F16TEXTURE1D", "F16TEXTURE2D",
   1064   "F16TEXTURE3D", "F16TEXTURE2DRECT", "F16TEXTURECUBE",
   1065   "F16TEXTURE1DARRAY", "F16TEXTURE2DARRAY", "F16TEXTURECUBEARRAY",
   1066   "F16TEXTUREBUFFER", "F16TEXTURE2DMS", "F16TEXTURE2DMSARRAY",
   1067   "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT", "ISUBPASSINPUTMS",
   1068   "USUBPASSINPUT", "USUBPASSINPUTMS", "F16SUBPASSINPUT",
   1069   "F16SUBPASSINPUTMS", "IMAGE1D", "IIMAGE1D", "UIMAGE1D", "IMAGE2D",
   1070   "IIMAGE2D", "UIMAGE2D", "IMAGE3D", "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT",
   1071   "IIMAGE2DRECT", "UIMAGE2DRECT", "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE",
   1072   "IMAGEBUFFER", "IIMAGEBUFFER", "UIMAGEBUFFER", "IMAGE1DARRAY",
   1073   "IIMAGE1DARRAY", "UIMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE2DARRAY",
   1074   "UIMAGE2DARRAY", "IMAGECUBEARRAY", "IIMAGECUBEARRAY", "UIMAGECUBEARRAY",
   1075   "IMAGE2DMS", "IIMAGE2DMS", "UIMAGE2DMS", "IMAGE2DMSARRAY",
   1076   "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY", "F16IMAGE1D", "F16IMAGE2D",
   1077   "F16IMAGE3D", "F16IMAGE2DRECT", "F16IMAGECUBE", "F16IMAGE1DARRAY",
   1078   "F16IMAGE2DARRAY", "F16IMAGECUBEARRAY", "F16IMAGEBUFFER", "F16IMAGE2DMS",
   1079   "F16IMAGE2DMSARRAY", "STRUCT", "VOID", "WHILE", "IDENTIFIER",
   1080   "TYPE_NAME", "FLOATCONSTANT", "DOUBLECONSTANT", "INT16CONSTANT",
   1081   "UINT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT", "INTCONSTANT",
   1082   "UINTCONSTANT", "INT64CONSTANT", "UINT64CONSTANT", "BOOLCONSTANT",
   1083   "FLOAT16CONSTANT", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
   1084   "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
   1085   "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
   1086   "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN",
   1087   "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE",
   1088   "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG",
   1089   "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT", "LEFT_ANGLE",
   1090   "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND", "QUESTION",
   1091   "INVARIANT", "PRECISE", "HIGH_PRECISION", "MEDIUM_PRECISION",
   1092   "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP", "$accept",
   1093   "variable_identifier", "primary_expression", "postfix_expression",
   1094   "integer_expression", "function_call", "function_call_or_method",
   1095   "function_call_generic", "function_call_header_no_parameters",
   1096   "function_call_header_with_parameters", "function_call_header",
   1097   "function_identifier", "unary_expression", "unary_operator",
   1098   "multiplicative_expression", "additive_expression", "shift_expression",
   1099   "relational_expression", "equality_expression", "and_expression",
   1100   "exclusive_or_expression", "inclusive_or_expression",
   1101   "logical_and_expression", "logical_xor_expression",
   1102   "logical_or_expression", "conditional_expression", "$@1",
   1103   "assignment_expression", "assignment_operator", "expression",
   1104   "constant_expression", "declaration", "block_structure", "$@2",
   1105   "identifier_list", "function_prototype", "function_declarator",
   1106   "function_header_with_parameters", "function_header",
   1107   "parameter_declarator", "parameter_declaration",
   1108   "parameter_type_specifier", "init_declarator_list", "single_declaration",
   1109   "fully_specified_type", "invariant_qualifier", "interpolation_qualifier",
   1110   "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
   1111   "precise_qualifier", "type_qualifier", "single_type_qualifier",
   1112   "storage_qualifier", "non_uniform_qualifier", "type_name_list",
   1113   "type_specifier", "array_specifier", "type_specifier_nonarray",
   1114   "precision_qualifier", "struct_specifier", "$@3", "$@4",
   1115   "struct_declaration_list", "struct_declaration",
   1116   "struct_declarator_list", "struct_declarator", "initializer",
   1117   "initializer_list", "declaration_statement", "statement",
   1118   "simple_statement", "compound_statement", "$@5", "$@6",
   1119   "statement_no_new_scope", "statement_scoped", "$@7", "$@8",
   1120   "compound_statement_no_new_scope", "statement_list",
   1121   "expression_statement", "selection_statement",
   1122   "selection_statement_nonattributed", "selection_rest_statement",
   1123   "condition", "switch_statement", "switch_statement_nonattributed", "$@9",
   1124   "switch_statement_list", "case_label", "iteration_statement",
   1125   "iteration_statement_nonattributed", "$@10", "$@11", "$@12",
   1126   "for_init_statement", "conditionopt", "for_rest_statement",
   1127   "jump_statement", "translation_unit", "external_declaration",
   1128   "function_definition", "$@13", "attribute", "attribute_list",
   1129   "single_attribute", YY_NULLPTR
   1130 };
   1131 #endif
   1132 
   1133 # ifdef YYPRINT
   1134 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
   1135    (internal) symbol number NUM (which must be that of a token).  */
   1136 static const yytype_uint16 yytoknum[] =
   1137 {
   1138        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
   1139      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
   1140      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
   1141      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
   1142      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
   1143      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
   1144      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
   1145      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
   1146      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
   1147      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
   1148      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
   1149      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
   1150      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
   1151      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
   1152      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
   1153      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
   1154      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
   1155      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
   1156      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
   1157      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
   1158      455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
   1159      465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
   1160      475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
   1161      485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
   1162      495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
   1163      505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
   1164      515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
   1165      525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
   1166      535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
   1167      545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
   1168      555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
   1169      565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
   1170      575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
   1171      585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
   1172      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
   1173      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
   1174      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
   1175      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
   1176      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
   1177      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
   1178      655,   656,   657,   658,   659,   660
   1179 };
   1180 # endif
   1181 
   1182 #define YYPACT_NINF -649
   1183 
   1184 #define yypact_value_is_default(Yystate) \
   1185   (!!((Yystate) == (-649)))
   1186 
   1187 #define YYTABLE_NINF -517
   1188 
   1189 #define yytable_value_is_error(Yytable_value) \
   1190   0
   1191 
   1192   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
   1193      STATE-NUM.  */
   1194 static const yytype_int16 yypact[] =
   1195 {
   1196     3511,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1197     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1198     -326,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1199     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1200     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1201     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1202     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1203     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1204     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1205     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1206     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1207     -649,  -649,  -310,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1208     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1209     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1210     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1211     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1212     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1213     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1214     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1215     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1216     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1217     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1218     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1219     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1220     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1221     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1222     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1223     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1224     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1225     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1226     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1227     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1228     -649,  -649,  -316,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1229     -649,  -256,  -649,  -317,  -357,  -305,  -269,  5906,  -315,  -649,
   1230     -225,  -649,  -649,  -649,  -649,  4310,  -649,  -649,  -649,  -649,
   1231     -234,  -649,  -649,   711,  -649,  -649,  -204,   -69,  -222,  -649,
   1232     8955,  -335,  -649,  -649,  -218,  -649,  5906,  -649,  -649,  -649,
   1233     5906,  -170,  -169,  -649,  -339,  -303,  -649,  -649,  -649,  6657,
   1234     -205,  -649,  -649,  -649,  -307,  -649,  -211,  -302,  -649,  -649,
   1235     5906,  -210,  -649,  -321,  1111,  -649,  -649,  -649,  -649,  -234,
   1236     -340,  -649,  7040,  -325,  -649,  -166,  -649,  -292,  -649,  -649,
   1237     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1238     -649,  8189,  8189,  8189,  -649,  -649,  -649,  -649,  -649,  -649,
   1239     -649,  -324,  -649,  -649,  -649,  -200,  -298,  8572,  -198,  -649,
   1240     8189,  -242,  -278,  -314,  -333,  -209,  -219,  -217,  -215,  -180,
   1241     -181,  -336,  -194,  -649,  -649,  7423,  -649,  -155,  8189,  -649,
   1242      -69,  5906,  5906,  -154,  4709,  -649,  -649,  -649,  -197,  -195,
   1243     -649,  -188,  -184,  -193,  7806,  -179,  8189,  -189,  -178,  -182,
   1244     -177,  -649,  -649,  -267,  -649,  -649,  -252,  -649,  -357,  -176,
   1245     -173,  -649,  -649,  -649,  -649,  1511,  -649,  -649,  -649,  -649,
   1246     -649,  -649,  -649,  -649,  -649,   -19,  -205,  7040,  -311,  7040,
   1247     -649,  -649,  7040,  5906,  -649,  -142,  -649,  -649,  -649,  -293,
   1248     -649,  -649,  8189,  -136,  -649,  -649,  8189,  -171,  -649,  -649,
   1249     -649,  8189,  8189,  8189,  8189,  8189,  8189,  8189,  8189,  8189,
   1250     8189,  8189,  8189,  8189,  8189,  8189,  8189,  8189,  8189,  8189,
   1251     -649,  -649,  -649,  -172,  -649,  -649,  -649,  -649,  5108,  -154,
   1252     -234,  -251,  -649,  -649,  -649,  -649,  -649,  1911,  -649,  8189,
   1253     -649,  -649,  -245,  8189,  -228,  -649,  -649,  -133,  -649,  1911,
   1254     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1255     -649,  8189,  8189,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1256     7040,  -649,  -285,  -649,  5507,  -649,  -649,  -168,  -165,  -649,
   1257     -649,  -649,  -649,  -649,  -242,  -242,  -278,  -278,  -314,  -314,
   1258     -314,  -314,  -333,  -333,  -209,  -219,  -217,  -215,  -180,  -181,
   1259     8189,  -649,  -649,  -241,  -205,  -154,  -649,  -128,  3111,  -290,
   1260     -649,  -268,  -649,  3911,  -163,  -297,  -649,  1911,  -649,  -649,
   1261     -649,  -649,  6274,  -649,  -649,  -223,  -649,  -649,  -162,  -649,
   1262     -649,  3911,  -161,  -649,  -165,  -126,  5906,  -160,  8189,  -159,
   1263     -133,  -158,  -649,  -649,  8189,  8189,  -649,  -164,  -156,   196,
   1264     -151,  2711,  -649,  -131,  -135,  2311,  -152,  -649,  -649,  -649,
   1265     -649,  -254,  8189,  2311,  -161,  -649,  -649,  1911,  7040,  -649,
   1266     -649,  -649,  -649,  -134,  -165,  -649,  -649,  1911,  -127,  -649,
   1267     -649,  -649
   1268 };
   1269 
   1270   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
   1271      Performed when YYTABLE does not specify something else to do.  Zero
   1272      means the default is an error.  */
   1273 static const yytype_uint16 yydefact[] =
   1274 {
   1275        0,   157,   158,   197,   195,   198,   196,   199,   156,   210,
   1276      200,   201,   208,   209,   206,   207,   204,   205,   202,   203,
   1277      183,   226,   227,   228,   229,   230,   231,   244,   245,   246,
   1278      241,   242,   243,   256,   257,   258,   238,   239,   240,   253,
   1279      254,   255,   235,   236,   237,   250,   251,   252,   232,   233,
   1280      234,   247,   248,   249,   211,   212,   213,   259,   260,   261,
   1281      162,   160,   161,   159,   165,   163,   164,   166,   172,   185,
   1282      168,   169,   167,   170,   171,   173,   179,   180,   181,   182,
   1283      174,   175,   176,   177,   178,   214,   215,   216,   271,   272,
   1284      273,   217,   218,   219,   283,   284,   285,   220,   221,   222,
   1285      295,   296,   297,   223,   224,   225,   307,   308,   309,   134,
   1286      133,   132,     0,   135,   136,   137,   138,   139,   262,   263,
   1287      264,   265,   266,   267,   268,   269,   270,   274,   275,   276,
   1288      277,   278,   279,   280,   281,   282,   286,   287,   288,   289,
   1289      290,   291,   292,   293,   294,   298,   299,   300,   301,   302,
   1290      303,   304,   305,   306,   310,   311,   312,   313,   314,   315,
   1291      316,   317,   318,   320,   319,   321,   322,   323,   324,   325,
   1292      326,   327,   328,   329,   330,   331,   347,   348,   349,   350,
   1293      351,   352,   354,   355,   356,   357,   358,   359,   361,   362,
   1294      365,   366,   367,   369,   370,   332,   333,   353,   360,   371,
   1295      373,   374,   375,   377,   378,   469,   334,   335,   336,   363,
   1296      337,   341,   342,   345,   368,   372,   376,   338,   339,   343,
   1297      344,   364,   340,   346,   379,   380,   381,   383,   385,   387,
   1298      389,   391,   395,   396,   397,   398,   399,   400,   402,   403,
   1299      404,   405,   406,   407,   409,   411,   412,   413,   415,   416,
   1300      393,   401,   408,   417,   419,   420,   421,   423,   424,   382,
   1301      384,   386,   410,   388,   390,   392,   394,   414,   418,   422,
   1302      470,   471,   474,   475,   476,   477,   472,   473,   425,   427,
   1303      428,   429,   431,   432,   433,   435,   436,   437,   439,   440,
   1304      441,   443,   444,   445,   447,   448,   449,   451,   452,   453,
   1305      455,   456,   457,   459,   460,   461,   463,   464,   465,   467,
   1306      468,   426,   430,   434,   438,   442,   450,   454,   458,   446,
   1307      462,   466,     0,   194,   479,   564,   131,   146,   480,   481,
   1308      482,     0,   563,     0,   565,     0,   108,   107,     0,   119,
   1309      124,   153,   152,   150,   154,     0,   147,   149,   155,   129,
   1310      188,   151,   478,     0,   560,   562,     0,     0,     0,   485,
   1311        0,     0,    96,    93,     0,   106,     0,   115,   109,   117,
   1312        0,   118,     0,    94,   125,     0,    99,   148,   130,     0,
   1313      189,     1,   561,   186,     0,   145,   143,     0,   141,   483,
   1314        0,     0,    97,     0,     0,   566,   110,   114,   116,   112,
   1315      120,   111,     0,   126,   102,     0,   100,     0,     2,    12,
   1316       13,    10,    11,     4,     5,     6,     7,     8,     9,    15,
   1317       14,     0,     0,     0,   190,    42,    41,    43,    40,     3,
   1318       17,    36,    19,    24,    25,     0,     0,    29,     0,    44,
   1319        0,    48,    51,    54,    59,    62,    64,    66,    68,    70,
   1320       72,    74,     0,    35,    33,     0,   184,     0,     0,   140,
   1321        0,     0,     0,     0,     0,   487,    95,    98,     0,     0,
   1322      545,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1323      511,   520,   524,    44,    77,    90,     0,   500,     0,   155,
   1324      129,   503,   522,   502,   501,     0,   504,   505,   526,   506,
   1325      533,   507,   508,   541,   509,     0,   113,     0,   121,     0,
   1326      495,   128,     0,     0,   104,     0,   101,    37,    38,     0,
   1327       21,    22,     0,     0,    27,    26,     0,   194,    30,    32,
   1328       39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1329        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1330       75,   191,   192,     0,   187,    92,   144,   142,     0,     0,
   1331      493,     0,   491,   486,   488,   556,   555,     0,   547,     0,
   1332      559,   557,     0,     0,     0,   540,   543,     0,   510,     0,
   1333       80,    81,    83,    82,    85,    86,    87,    88,    89,    84,
   1334       79,     0,     0,   525,   521,   523,   527,   534,   542,   123,
   1335        0,   498,     0,   127,     0,   105,    16,     0,    23,    20,
   1336       31,    45,    46,    47,    50,    49,    52,    53,    57,    58,
   1337       55,    56,    60,    61,    63,    65,    67,    69,    71,    73,
   1338        0,   193,   484,     0,   494,     0,   489,     0,     0,     0,
   1339      558,     0,   539,     0,   570,     0,   568,   512,    78,    91,
   1340      122,   496,     0,   103,    18,     0,   490,   492,     0,   550,
   1341      549,   552,   518,   535,   531,     0,     0,     0,     0,     0,
   1342        0,     0,   497,   499,     0,     0,   551,     0,     0,   530,
   1343        0,     0,   528,     0,     0,     0,     0,   567,   569,   513,
   1344       76,     0,   553,     0,   518,   517,   519,   537,     0,   515,
   1345      544,   514,   571,     0,   554,   548,   529,   538,     0,   532,
   1346      546,   536
   1347 };
   1348 
   1349   /* YYPGOTO[NTERM-NUM].  */
   1350 static const yytype_int16 yypgoto[] =
   1351 {
   1352     -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1353     -649,  -649,  -304,  -649,  -373,  -370,  -416,  -379,  -294,  -322,
   1354     -291,  -295,  -288,  -296,  -649,  -369,  -649,  -393,  -649,  -382,
   1355     -414,     1,  -649,  -649,  -649,     2,  -649,  -649,  -649,  -114,
   1356     -109,  -112,  -649,  -649,  -615,  -649,  -649,  -649,  -649,  -196,
   1357     -649,  -334,  -341,  -649,     6,  -649,     0,  -347,  -649,   -68,
   1358     -649,  -649,  -649,  -443,  -448,  -287,  -368,  -492,  -649,  -376,
   1359     -482,  -648,  -415,  -649,  -649,  -427,  -426,  -649,  -649,   -93,
   1360     -560,  -365,  -649,  -231,  -649,  -386,  -649,  -229,  -649,  -649,
   1361     -649,  -649,  -227,  -649,  -649,  -649,  -649,  -649,  -649,  -649,
   1362     -649,   -76,  -649,  -649,  -649,  -649,  -390
   1363 };
   1364 
   1365   /* YYDEFGOTO[NTERM-NUM].  */
   1366 static const yytype_int16 yydefgoto[] =
   1367 {
   1368       -1,   429,   430,   431,   607,   432,   433,   434,   435,   436,
   1369      437,   438,   483,   440,   441,   442,   443,   444,   445,   446,
   1370      447,   448,   449,   450,   451,   484,   630,   485,   591,   486,
   1371      556,   487,   333,   513,   407,   488,   335,   336,   337,   367,
   1372      368,   369,   338,   339,   340,   341,   342,   343,   387,   388,
   1373      344,   345,   346,   347,   453,   384,   454,   380,   350,   351,
   1374      352,   461,   390,   464,   465,   561,   562,   511,   602,   491,
   1375      492,   493,   494,   579,   671,   700,   679,   680,   681,   701,
   1376      495,   496,   497,   498,   682,   667,   499,   500,   683,   708,
   1377      501,   502,   503,   643,   567,   638,   661,   677,   678,   504,
   1378      353,   354,   355,   364,   505,   645,   646
   1379 };
   1380 
   1381   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
   1382      positive, shift that token.  If negative, reduce the rule whose
   1383      number is the opposite.  If YYTABLE_NINF, syntax error.  */
   1384 static const yytype_int16 yytable[] =
   1385 {
   1386      349,   332,   334,   370,   377,   470,   348,   471,   472,   510,
   1387      452,   475,   385,   595,   393,   599,   564,   601,   558,   647,
   1388      603,   361,   358,   538,   539,   549,   363,   403,   665,   377,
   1389      520,   521,   370,   696,   401,   379,   379,   699,   536,   537,
   1390      379,   519,   507,   402,   528,   699,   665,   356,   392,   -34,
   1391      455,   522,   506,   508,   455,   523,   462,   512,   540,   541,
   1392      550,   359,   467,   357,   455,   372,   362,   456,   373,   365,
   1393      604,   600,   459,   457,   404,   439,   525,   405,   460,   669,
   1394      406,   606,   526,   670,   662,   637,   553,   592,   515,   555,
   1395      592,   516,   572,   651,   574,   652,   580,   581,   582,   583,
   1396      584,   585,   586,   587,   588,   589,   663,   534,   650,   535,
   1397      564,   366,   592,   374,   510,   590,   510,   517,   518,   510,
   1398      703,   377,   618,   619,   620,   621,   592,   462,   592,   635,
   1399      462,   593,   636,   610,   383,   592,   530,   707,   640,   635,
   1400      608,   379,   656,   328,   329,   330,   531,   532,   533,   542,
   1401      543,   439,   592,   642,   439,   389,   564,   592,   674,   394,
   1402      673,   614,   615,   622,   623,   595,   616,   617,   399,   400,
   1403      455,   458,   514,   466,   524,   529,   544,   545,   546,   462,
   1404      547,   548,   551,   554,   560,   568,   565,   639,   566,   569,
   1405      570,   641,   575,   577,   573,   576,   605,   -35,   648,   649,
   1406      -33,   578,   609,   -28,   631,   644,   709,   510,   654,   658,
   1407      668,   675,   684,   634,   685,   592,  -516,   687,   693,   692,
   1408      689,   694,   702,   625,   462,   595,   480,   611,   612,   613,
   1409      439,   439,   439,   439,   439,   439,   439,   439,   439,   439,
   1410      439,   439,   439,   439,   439,   439,   697,   698,   655,   710,
   1411      624,   711,   627,   629,   686,   626,   397,   396,   398,   510,
   1412      628,   664,   659,   360,   557,   695,   705,   657,   706,   386,
   1413      462,   395,   633,   660,   596,   676,   597,   382,   598,   664,
   1414      688,   690,     0,     0,     0,     0,     0,     0,     0,     0,
   1415        0,     0,     0,   691,     0,     0,     0,     0,     0,   555,
   1416        0,     0,     0,     0,     0,   510,     0,     0,     0,   666,
   1417      704,     0,     0,     0,     0,     0,     0,     0,   478,     0,
   1418        0,     0,     0,     0,     0,   377,     0,   666,     0,     0,
   1419        0,     0,     0,     0,     0,     0,     0,   371,     0,     0,
   1420        0,     0,     0,   348,     0,   378,     0,     0,     0,     0,
   1421        0,   348,     0,   349,   332,   334,     0,     0,     0,   348,
   1422      391,     0,     0,     0,   439,     0,   371,     0,     0,     0,
   1423      371,     0,   348,     0,     0,     0,   348,     0,     0,     0,
   1424        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1425      463,     0,     0,     0,   490,     0,   348,     0,     0,     0,
   1426      489,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1427        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1428        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1429        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1430        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1431        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1432        0,   463,   559,     0,   463,     0,     0,   348,   348,     0,
   1433      348,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1434        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1435        0,     0,     0,     0,     0,   490,     0,     0,     0,     0,
   1436        0,   489,     0,     0,     0,     0,     0,     0,     0,     0,
   1437        0,     0,     0,   463,     0,     0,     0,     0,     0,   348,
   1438        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1439        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1440        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1441        0,     0,     0,     0,     0,     0,     0,     0,   463,     0,
   1442        0,     0,     0,     0,   348,     0,     0,   490,     0,     0,
   1443        0,     0,     0,   489,     0,     0,     0,     0,     0,   490,
   1444        0,     0,     0,     0,     0,   489,     0,     0,     0,     0,
   1445        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1446        0,     0,     0,     0,   463,     0,     0,     0,     0,     0,
   1447      348,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1448        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1449        0,     0,     0,     0,     0,     0,     0,     0,   490,     0,
   1450        0,     0,     0,   490,   489,     0,     0,   490,     0,   489,
   1451        0,     0,     0,   489,     0,     0,     0,     0,     0,     0,
   1452        0,   490,     0,     0,     0,     0,   378,   489,     0,     0,
   1453        0,     0,   348,     0,     0,     0,     0,     0,     0,     0,
   1454        0,   490,     0,     0,     0,   490,     0,   489,     0,     0,
   1455        0,   489,     0,   490,     0,     0,     0,   490,     0,   489,
   1456        0,     0,     0,   489,     0,     0,     0,   490,     0,     0,
   1457        0,   381,     0,   489,     1,     2,     3,     4,     5,     6,
   1458        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
   1459       17,    18,    19,     0,     0,     0,     0,     0,     0,     0,
   1460        0,     0,     0,     0,    20,    21,    22,    23,    24,    25,
   1461       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
   1462       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
   1463       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
   1464       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
   1465       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
   1466       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
   1467       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
   1468       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
   1469      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
   1470      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
   1471      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
   1472      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
   1473      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
   1474      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
   1475      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
   1476      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
   1477      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
   1478      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
   1479      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
   1480      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
   1481      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
   1482      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
   1483      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
   1484      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
   1485      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
   1486      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
   1487      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
   1488      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
   1489      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
   1490      316,   317,   318,   319,   320,   321,   322,   323,     0,     0,
   1491      324,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1492        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1493        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1494        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1495        0,     0,     0,     0,   325,     0,     0,     0,     0,     0,
   1496        0,     0,     0,     0,     0,     0,     0,     0,   326,   327,
   1497      328,   329,   330,   331,     1,     2,     3,     4,     5,     6,
   1498        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
   1499       17,    18,    19,   468,   469,   470,     0,   471,   472,   473,
   1500      474,   475,   476,   477,    20,    21,    22,    23,    24,    25,
   1501       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
   1502       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
   1503       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
   1504       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
   1505       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
   1506       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
   1507       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
   1508       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
   1509      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
   1510      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
   1511      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
   1512      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
   1513      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
   1514      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
   1515      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
   1516      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
   1517      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
   1518      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
   1519      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
   1520      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
   1521      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
   1522      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
   1523      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
   1524      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
   1525      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
   1526      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
   1527      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
   1528      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
   1529      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
   1530      316,   317,   318,   319,   320,   321,   322,   323,   478,   408,
   1531      324,   409,   410,   411,   412,   413,   414,   415,   416,   417,
   1532      418,   419,   420,     0,     0,   421,   422,     0,     0,     0,
   1533        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1534        0,     0,     0,     0,   423,     0,   479,     0,   480,   481,
   1535        0,     0,     0,     0,   482,   425,   426,   427,   428,     0,
   1536        0,     0,     0,     0,     0,     0,     0,     0,   326,   327,
   1537      328,   329,   330,   331,     1,     2,     3,     4,     5,     6,
   1538        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
   1539       17,    18,    19,   468,   469,   470,     0,   471,   472,   473,
   1540      474,   475,   476,   477,    20,    21,    22,    23,    24,    25,
   1541       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
   1542       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
   1543       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
   1544       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
   1545       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
   1546       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
   1547       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
   1548       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
   1549      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
   1550      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
   1551      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
   1552      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
   1553      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
   1554      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
   1555      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
   1556      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
   1557      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
   1558      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
   1559      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
   1560      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
   1561      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
   1562      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
   1563      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
   1564      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
   1565      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
   1566      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
   1567      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
   1568      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
   1569      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
   1570      316,   317,   318,   319,   320,   321,   322,   323,   478,   408,
   1571      324,   409,   410,   411,   412,   413,   414,   415,   416,   417,
   1572      418,   419,   420,     0,     0,   421,   422,     0,     0,     0,
   1573        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1574        0,     0,     0,     0,   423,     0,   479,     0,   480,   594,
   1575        0,     0,     0,     0,   482,   425,   426,   427,   428,     0,
   1576        0,     0,     0,     0,     0,     0,     0,     0,   326,   327,
   1577      328,   329,   330,   331,     1,     2,     3,     4,     5,     6,
   1578        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
   1579       17,    18,    19,   468,   469,   470,     0,   471,   472,   473,
   1580      474,   475,   476,   477,    20,    21,    22,    23,    24,    25,
   1581       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
   1582       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
   1583       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
   1584       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
   1585       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
   1586       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
   1587       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
   1588       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
   1589      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
   1590      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
   1591      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
   1592      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
   1593      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
   1594      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
   1595      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
   1596      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
   1597      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
   1598      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
   1599      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
   1600      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
   1601      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
   1602      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
   1603      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
   1604      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
   1605      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
   1606      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
   1607      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
   1608      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
   1609      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
   1610      316,   317,   318,   319,   320,   321,   322,   323,   478,   408,
   1611      324,   409,   410,   411,   412,   413,   414,   415,   416,   417,
   1612      418,   419,   420,     0,     0,   421,   422,     0,     0,     0,
   1613        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1614        0,     0,     0,     0,   423,     0,   479,     0,   480,     0,
   1615        0,     0,     0,     0,   482,   425,   426,   427,   428,     0,
   1616        0,     0,     0,     0,     0,     0,     0,     0,   326,   327,
   1617      328,   329,   330,   331,     1,     2,     3,     4,     5,     6,
   1618        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
   1619       17,    18,    19,   468,   469,   470,     0,   471,   472,   473,
   1620      474,   475,   476,   477,    20,    21,    22,    23,    24,    25,
   1621       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
   1622       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
   1623       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
   1624       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
   1625       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
   1626       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
   1627       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
   1628       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
   1629      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
   1630      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
   1631      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
   1632      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
   1633      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
   1634      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
   1635      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
   1636      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
   1637      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
   1638      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
   1639      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
   1640      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
   1641      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
   1642      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
   1643      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
   1644      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
   1645      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
   1646      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
   1647      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
   1648      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
   1649      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
   1650      316,   317,   318,   319,   320,   321,   322,   323,   478,   408,
   1651      324,   409,   410,   411,   412,   413,   414,   415,   416,   417,
   1652      418,   419,   420,     0,     0,   421,   422,     0,     0,     0,
   1653        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1654        0,     0,     0,     0,   423,     0,   479,     0,   394,     0,
   1655        0,     0,     0,     0,   482,   425,   426,   427,   428,     0,
   1656        0,     0,     0,     0,     0,     0,     0,     0,   326,   327,
   1657      328,   329,   330,   331,     1,     2,     3,     4,     5,     6,
   1658        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
   1659       17,    18,    19,   468,   469,   470,     0,   471,   472,   473,
   1660      474,   475,   476,   477,    20,    21,    22,    23,    24,    25,
   1661       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
   1662       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
   1663       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
   1664       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
   1665       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
   1666       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
   1667       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
   1668       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
   1669      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
   1670      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
   1671      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
   1672      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
   1673      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
   1674      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
   1675      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
   1676      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
   1677      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
   1678      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
   1679      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
   1680      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
   1681      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
   1682      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
   1683      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
   1684      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
   1685      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
   1686      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
   1687      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
   1688      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
   1689      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
   1690      316,   317,   318,   319,   320,   321,   322,   323,   478,   408,
   1691      324,   409,   410,   411,   412,   413,   414,   415,   416,   417,
   1692      418,   419,   420,     0,     0,   421,   422,     0,     0,     0,
   1693        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1694        0,     0,     0,     0,   423,     0,   479,     0,     0,     0,
   1695        0,     0,     0,     0,   482,   425,   426,   427,   428,     0,
   1696        0,     0,     0,     0,     0,     0,     0,     0,   326,   327,
   1697      328,   329,   330,   331,     1,     2,     3,     4,     5,     6,
   1698        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
   1699       17,    18,    19,     0,     0,     0,     0,     0,     0,     0,
   1700        0,     0,     0,     0,    20,    21,    22,    23,    24,    25,
   1701       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
   1702       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
   1703       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
   1704       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
   1705       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
   1706       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
   1707       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
   1708       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
   1709      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
   1710      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
   1711      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
   1712      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
   1713      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
   1714      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
   1715      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
   1716      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
   1717      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
   1718      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
   1719      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
   1720      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
   1721      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
   1722      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
   1723      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
   1724      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
   1725      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
   1726      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
   1727      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
   1728      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
   1729      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
   1730      316,   317,   318,   319,   320,   321,   322,   323,     0,   408,
   1731      324,   409,   410,   411,   412,   413,   414,   415,   416,   417,
   1732      418,   419,   420,     0,     0,   421,   422,     0,     0,     0,
   1733        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1734        0,     0,     0,     0,   423,     0,     0,     0,     0,     0,
   1735        0,     0,     0,     0,   482,   425,   426,   427,   428,     0,
   1736        0,     0,     0,     0,     0,     0,     0,     0,   326,   327,
   1737      328,   329,   330,   331,     1,     2,     3,     4,     5,     6,
   1738        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
   1739       17,    18,    19,     0,     0,     0,     0,     0,     0,     0,
   1740        0,     0,     0,     0,    20,    21,    22,    23,    24,    25,
   1741       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
   1742       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
   1743       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
   1744       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
   1745       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
   1746       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
   1747       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
   1748       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
   1749      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
   1750      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
   1751      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
   1752      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
   1753      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
   1754      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
   1755      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
   1756      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
   1757      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
   1758      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
   1759      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
   1760      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
   1761      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
   1762      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
   1763      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
   1764      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
   1765      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
   1766      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
   1767      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
   1768      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
   1769      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
   1770      316,   317,   318,   319,   320,   321,   322,   323,     0,     0,
   1771      324,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1772        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1773        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1774        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1775        0,     0,     0,     0,   325,     0,     0,     0,     0,     0,
   1776        0,     0,     0,     0,     0,     0,     0,     0,   326,   327,
   1777      328,   329,   330,   331,     1,     2,     3,     4,     5,     6,
   1778        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
   1779       17,    18,    19,     0,     0,     0,     0,     0,     0,     0,
   1780        0,     0,     0,     0,    20,    21,    22,    23,    24,    25,
   1781       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
   1782       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
   1783       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
   1784       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
   1785       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
   1786       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
   1787       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
   1788       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
   1789      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
   1790      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
   1791      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
   1792      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
   1793      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
   1794      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
   1795      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
   1796      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
   1797      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
   1798      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
   1799      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
   1800      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
   1801      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
   1802      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
   1803      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
   1804      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
   1805      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
   1806      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
   1807      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
   1808      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
   1809      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
   1810      316,   317,   318,   319,   320,   321,   322,   323,     0,   408,
   1811      324,   409,   410,   411,   412,   413,   414,   415,   416,   417,
   1812      418,   419,   420,     0,     0,   421,   422,     0,     0,     0,
   1813        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1814        0,     0,     0,     0,   423,     0,     0,     0,     0,     0,
   1815        0,     0,     0,     0,     0,   425,   426,   427,   428,     0,
   1816        0,     0,     0,     0,     0,     0,     0,     0,   326,   327,
   1817      328,   329,   330,     1,     2,     3,     4,     5,     6,     7,
   1818        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
   1819       18,    19,     0,     0,     0,     0,     0,     0,     0,     0,
   1820        0,     0,     0,    20,    21,    22,    23,    24,    25,    26,
   1821       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
   1822       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
   1823       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
   1824       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
   1825       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
   1826       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
   1827       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
   1828       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
   1829      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
   1830      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
   1831      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
   1832      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
   1833      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
   1834      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
   1835      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
   1836      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
   1837      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
   1838      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
   1839      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
   1840      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
   1841      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
   1842      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
   1843      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
   1844      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
   1845      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
   1846      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
   1847      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
   1848      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
   1849      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
   1850      317,   318,   319,   320,   321,   322,   323,     0,   375,   324,
   1851        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1852        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1853        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1854        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1855        0,     0,     0,   376,     0,     0,     0,     0,     0,     0,
   1856        0,     0,     0,     0,     0,     0,     0,   326,   327,   328,
   1857      329,   330,     1,     2,     3,     4,     5,     6,     7,     8,
   1858        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
   1859       19,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1860        0,     0,    20,    21,    22,    23,    24,    25,    26,    27,
   1861       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
   1862       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
   1863       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
   1864       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
   1865       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
   1866       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
   1867       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
   1868       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
   1869      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
   1870      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
   1871      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
   1872      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
   1873      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
   1874      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
   1875      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
   1876      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
   1877      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
   1878      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
   1879      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
   1880      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
   1881      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
   1882      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
   1883      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
   1884      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
   1885      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
   1886      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
   1887      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
   1888      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
   1889      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
   1890      318,   319,   320,   321,   322,   323,     0,     0,   324,     0,
   1891        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1892        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1893        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1894        0,     0,     0,     0,     0,     0,     0,   563,     0,     0,
   1895        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1896        0,     0,     0,     0,     0,     0,   326,   327,   328,   329,
   1897      330,     1,     2,     3,     4,     5,     6,     7,     8,     9,
   1898       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
   1899        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1900        0,    20,    21,    22,    23,    24,    25,    26,    27,    28,
   1901       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
   1902       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
   1903       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
   1904       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
   1905       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
   1906       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
   1907       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
   1908       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
   1909      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
   1910      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
   1911      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
   1912      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
   1913      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
   1914      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
   1915      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
   1916      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
   1917      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
   1918      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
   1919      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
   1920      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
   1921      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
   1922      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
   1923      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
   1924      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
   1925      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
   1926      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
   1927      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
   1928      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
   1929      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
   1930      319,   320,   321,   322,   323,     0,     0,   324,     0,     0,
   1931        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1932        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1933        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1934        0,     0,     0,     0,     0,     0,   632,     0,     0,     0,
   1935        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1936        0,     0,     0,     0,     0,   326,   327,   328,   329,   330,
   1937        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
   1938       11,    12,    13,    14,    15,    16,    17,    18,    19,     0,
   1939        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1940       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
   1941       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
   1942       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
   1943       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
   1944       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
   1945       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
   1946       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
   1947       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
   1948      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
   1949      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
   1950      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
   1951      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
   1952      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
   1953      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
   1954      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
   1955      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
   1956      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
   1957      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
   1958      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
   1959      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
   1960      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
   1961      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
   1962      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
   1963      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
   1964      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
   1965      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
   1966      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
   1967      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
   1968      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
   1969      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
   1970      320,   321,   322,   323,     0,     0,   324,     0,     0,     0,
   1971        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1972        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1973        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1974        0,     0,     0,     0,     0,   653,     0,     0,     0,     0,
   1975        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1976        0,     0,     0,     0,   326,   327,   328,   329,   330,     1,
   1977        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
   1978       12,    13,    14,    15,    16,    17,    18,    19,     0,     0,
   1979        0,     0,     0,     0,     0,     0,     0,     0,     0,    20,
   1980       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
   1981       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
   1982       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
   1983       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
   1984       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
   1985       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
   1986       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
   1987       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
   1988      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
   1989      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
   1990      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
   1991      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
   1992      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
   1993      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
   1994      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
   1995      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
   1996      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
   1997      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
   1998      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
   1999      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
   2000      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
   2001      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
   2002      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
   2003      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
   2004      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
   2005      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
   2006      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
   2007      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
   2008      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
   2009      311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
   2010      321,   322,   323,     0,     0,   324,     0,     0,     0,     0,
   2011        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   2012        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   2013        0,     0,     0,     0,     0,     0,     0,     0,     0,     3,
   2014        4,     5,     6,     7,     0,     9,    10,    11,    12,    13,
   2015       14,    15,    16,    17,    18,    19,     0,     0,     0,     0,
   2016        0,     0,     0,   326,   327,   328,   329,   330,    21,    22,
   2017       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
   2018       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
   2019       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
   2020       53,    54,    55,    56,    57,    58,    59,     0,     0,     0,
   2021        0,     0,     0,     0,     0,     0,    69,     0,     0,     0,
   2022        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   2023        0,     0,    85,    86,    87,    88,    89,    90,    91,    92,
   2024       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
   2025      103,   104,   105,   106,   107,   108,     0,     0,     0,     0,
   2026        0,     0,     0,     0,     0,   118,   119,   120,   121,   122,
   2027      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
   2028      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
   2029      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
   2030      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
   2031      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
   2032      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
   2033      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
   2034      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
   2035      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
   2036      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
   2037      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
   2038      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
   2039      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
   2040      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
   2041      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
   2042      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
   2043      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
   2044      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
   2045      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
   2046      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
   2047      323,     0,   408,   324,   409,   410,   411,   412,   413,   414,
   2048      415,   416,   417,   418,   419,   420,     0,     0,   421,   422,
   2049        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   2050        0,     0,     0,     0,     0,     0,     0,   423,     0,     0,
   2051        0,   509,   672,     0,     0,     0,     0,     0,   425,   426,
   2052      427,   428,     3,     4,     5,     6,     7,     0,     9,    10,
   2053       11,    12,    13,    14,    15,    16,    17,    18,    19,     0,
   2054        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   2055        0,    21,    22,    23,    24,    25,    26,    27,    28,    29,
   2056       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
   2057       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
   2058       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
   2059        0,     0,     0,     0,     0,     0,     0,     0,     0,    69,
   2060        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   2061        0,     0,     0,     0,     0,    85,    86,    87,    88,    89,
   2062       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
   2063      100,   101,   102,   103,   104,   105,   106,   107,   108,     0,
   2064        0,     0,     0,     0,     0,     0,     0,     0,   118,   119,
   2065      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
   2066      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
   2067      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
   2068      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
   2069      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
   2070      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
   2071      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
   2072      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
   2073      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
   2074      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
   2075      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
   2076      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
   2077      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
   2078      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
   2079      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
   2080      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
   2081      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
   2082      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
   2083      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
   2084      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
   2085      320,   321,   322,   323,     0,   408,   324,   409,   410,   411,
   2086      412,   413,   414,   415,   416,   417,   418,   419,   420,     0,
   2087        0,   421,   422,     0,     0,     0,     0,     0,     0,     0,
   2088        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   2089      423,     0,     0,   424,     0,     0,     0,     0,     0,     0,
   2090        0,   425,   426,   427,   428,     3,     4,     5,     6,     7,
   2091        0,     9,    10,    11,    12,    13,    14,    15,    16,    17,
   2092       18,    19,     0,     0,     0,     0,     0,     0,     0,     0,
   2093        0,     0,     0,     0,    21,    22,    23,    24,    25,    26,
   2094       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
   2095       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
   2096       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
   2097       57,    58,    59,     0,     0,     0,     0,     0,     0,     0,
   2098        0,     0,    69,     0,     0,     0,     0,     0,     0,     0,
   2099        0,     0,     0,     0,     0,     0,     0,     0,    85,    86,
   2100       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
   2101       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
   2102      107,   108,     0,     0,     0,     0,     0,     0,     0,     0,
   2103        0,   118,   119,   120,   121,   122,   123,   124,   125,   126,
   2104      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
   2105      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
   2106      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
   2107      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
   2108      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
   2109      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
   2110      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
   2111      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
   2112      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
   2113      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
   2114      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
   2115      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
   2116      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
   2117      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
   2118      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
   2119      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
   2120      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
   2121      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
   2122      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
   2123      317,   318,   319,   320,   321,   322,   323,     0,   408,   324,
   2124      409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
   2125      419,   420,     0,     0,   421,   422,     0,     0,     0,     0,
   2126        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   2127        0,     0,     0,   423,     0,     0,     0,   509,     0,     0,
   2128        0,     0,     0,     0,   425,   426,   427,   428,     3,     4,
   2129        5,     6,     7,     0,     9,    10,    11,    12,    13,    14,
   2130       15,    16,    17,    18,    19,     0,     0,     0,     0,     0,
   2131        0,     0,     0,     0,     0,     0,     0,    21,    22,    23,
   2132       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
   2133       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
   2134       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
   2135       54,    55,    56,    57,    58,    59,     0,     0,     0,     0,
   2136        0,     0,     0,     0,     0,    69,     0,     0,     0,     0,
   2137        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   2138        0,    85,    86,    87,    88,    89,    90,    91,    92,    93,
   2139       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
   2140      104,   105,   106,   107,   108,     0,     0,     0,     0,     0,
   2141        0,     0,     0,     0,   118,   119,   120,   121,   122,   123,
   2142      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
   2143      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
   2144      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
   2145      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
   2146      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
   2147      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
   2148      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
   2149      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
   2150      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
   2151      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
   2152      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
   2153      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
   2154      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
   2155      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
   2156      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
   2157      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
   2158      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
   2159      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
   2160      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
   2161      314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
   2162        0,   408,   324,   409,   410,   411,   412,   413,   414,   415,
   2163      416,   417,   418,   419,   420,     0,     0,   421,   422,     0,
   2164        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   2165        0,     0,     0,     0,     0,     0,   423,     0,     0,   552,
   2166        0,     0,     0,     0,     0,     0,     0,   425,   426,   427,
   2167      428,     3,     4,     5,     6,     7,     0,     9,    10,    11,
   2168       12,    13,    14,    15,    16,    17,    18,    19,     0,     0,
   2169        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   2170       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
   2171       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
   2172       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
   2173       51,    52,    53,    54,    55,    56,    57,    58,    59,     0,
   2174        0,     0,     0,     0,     0,     0,     0,     0,    69,     0,
   2175        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   2176        0,     0,     0,     0,    85,    86,    87,    88,    89,    90,
   2177       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
   2178      101,   102,   103,   104,   105,   106,   107,   108,     0,     0,
   2179        0,     0,     0,     0,     0,     0,     0,   118,   119,   120,
   2180      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
   2181      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
   2182      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
   2183      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
   2184      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
   2185      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
   2186      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
   2187      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
   2188      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
   2189      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
   2190      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
   2191      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
   2192      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
   2193      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
   2194      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
   2195      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
   2196      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
   2197      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
   2198      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
   2199      311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
   2200      321,   322,   323,     0,   408,   324,   409,   410,   411,   412,
   2201      413,   414,   415,   416,   417,   418,   419,   420,     0,     0,
   2202      421,   422,     0,     0,     0,     0,     0,     0,     0,     0,
   2203        0,     0,     0,     0,     0,     0,     0,     0,     0,   423,
   2204        0,     0,     0,     0,     0,     0,     0,     0,     0,   571,
   2205      425,   426,   427,   428,     3,     4,     5,     6,     7,     0,
   2206        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
   2207       19,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   2208        0,     0,     0,    21,    22,    23,    24,    25,    26,    27,
   2209       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
   2210       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
   2211       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
   2212       58,    59,     0,     0,     0,     0,     0,     0,     0,     0,
   2213        0,    69,     0,     0,     0,     0,     0,     0,     0,     0,
   2214        0,     0,     0,     0,     0,     0,     0,    85,    86,    87,
   2215       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
   2216       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
   2217      108,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   2218      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
   2219      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
   2220      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
   2221      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
   2222      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
   2223      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
   2224      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
   2225      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
   2226      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
   2227      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
   2228      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
   2229      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
   2230      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
   2231      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
   2232      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
   2233      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
   2234      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
   2235      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
   2236      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
   2237      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
   2238      318,   319,   320,   321,   322,   323,     0,   408,   324,   409,
   2239      410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
   2240      420,     0,     0,   421,   422,     0,     0,     0,     0,     0,
   2241        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   2242        0,     0,   423,     0,     0,     0,     0,     0,     0,     0,
   2243        0,     0,     0,   425,   426,   427,   428,     3,     4,     5,
   2244        6,     7,     0,     9,    10,    11,    12,    13,    14,    15,
   2245       16,    17,    18,    19,     0,     0,     0,     0,     0,     0,
   2246        0,     0,     0,     0,     0,     0,    21,    22,    23,    24,
   2247       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
   2248       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
   2249       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
   2250       55,    56,    57,    58,    59,     0,     0,     0,     0,     0,
   2251        0,     0,     0,     0,    69,     0,     0,     0,     0,     0,
   2252        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   2253       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
   2254       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
   2255      105,   106,   107,   108,     0,     0,     0,     0,     0,     0,
   2256        0,     0,     0,   118,   119,   120,   121,   122,   123,   124,
   2257      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
   2258      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
   2259      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
   2260      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
   2261      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
   2262      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
   2263      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
   2264      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
   2265      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
   2266      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
   2267      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
   2268      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
   2269      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
   2270      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
   2271      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
   2272      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
   2273      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
   2274      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
   2275      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
   2276      315,   316,   317,   318,   319,   320,   321,   322,   527,     0,
   2277      408,   324,   409,   410,   411,   412,   413,   414,   415,   416,
   2278      417,   418,   419,   420,     0,     0,   421,   422,     0,     0,
   2279        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   2280        0,     0,     0,     0,     0,   423,     0,     0,     0,     0,
   2281        0,     0,     0,     0,     0,     0,   425,   426,   427,   428,
   2282        3,     4,     5,     6,     7,     0,     9,    10,    11,    12,
   2283       13,    14,    15,    16,    17,    18,    19,     0,     0,     0,
   2284        0,     0,     0,     0,     0,     0,     0,     0,     0,    21,
   2285       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
   2286       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
   2287       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
   2288       52,    53,    54,    55,    56,    57,    58,    59,     0,     0,
   2289        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   2290        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   2291        0,     0,     0,    85,    86,    87,    88,    89,    90,    91,
   2292       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
   2293      102,   103,   104,   105,   106,   107,   108,     0,     0,     0,
   2294        0,     0,     0,     0,     0,     0,   118,   119,   120,   121,
   2295      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
   2296      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
   2297      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
   2298      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
   2299      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
   2300      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
   2301      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
   2302      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
   2303      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
   2304      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
   2305      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
   2306      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
   2307      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
   2308      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
   2309      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
   2310      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
   2311      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
   2312      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
   2313      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
   2314      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
   2315      322,   323,     0,     0,   324
   2316 };
   2317 
   2318 static const yytype_int16 yycheck[] =
   2319 {
   2320        0,     0,     0,   337,   345,    24,     0,    26,    27,   402,
   2321      379,    30,    81,   495,   361,   507,   464,   509,   461,   579,
   2322      512,   338,   338,   356,   357,   361,   383,   374,   643,   370,
   2323      354,   355,   366,   681,   373,   375,   375,   685,   352,   353,
   2324      375,   423,   382,   382,   437,   693,   661,   373,   383,   373,
   2325      375,   375,   399,   400,   375,   379,   390,   382,   391,   392,
   2326      396,   377,   383,   373,   375,   380,   383,   374,   383,   374,
   2327      513,   382,   374,   380,   377,   379,   374,   380,   380,   376,
   2328      383,   374,   380,   380,   374,   567,   455,   380,   380,   458,
   2329      380,   383,   474,   378,   476,   380,   363,   364,   365,   366,
   2330      367,   368,   369,   370,   371,   372,   374,   385,   600,   387,
   2331      558,   380,   380,   338,   507,   382,   509,   421,   422,   512,
   2332      374,   462,   538,   539,   540,   541,   380,   461,   380,   380,
   2333      464,   383,   383,   526,   338,   380,   440,   697,   383,   380,
   2334      522,   375,   383,   399,   400,   401,   388,   389,   390,   358,
   2335      359,   455,   380,   381,   458,   377,   604,   380,   381,   377,
   2336      652,   534,   535,   542,   543,   647,   536,   537,   338,   338,
   2337      375,   382,   338,   383,   374,   373,   395,   394,   393,   513,
   2338      360,   362,   376,   338,   338,   373,   383,   569,   383,   373,
   2339      383,   573,   381,   375,   373,   373,   338,   373,   591,   592,
   2340      373,   378,   338,   374,   376,   338,   698,   600,   376,   337,
   2341      373,   373,   338,   560,   374,   380,   377,   376,   374,   383,
   2342      378,    25,   374,   545,   558,   707,   377,   531,   532,   533,
   2343      534,   535,   536,   537,   538,   539,   540,   541,   542,   543,
   2344      544,   545,   546,   547,   548,   549,   377,   382,   630,   383,
   2345      544,   378,   547,   549,   668,   546,   370,   366,   370,   652,
   2346      548,   643,   638,   331,   460,   680,   693,   635,   694,   338,
   2347      604,   364,   559,   638,   505,   661,   505,   353,   505,   661,
   2348      670,   674,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2349       -1,    -1,    -1,   675,    -1,    -1,    -1,    -1,    -1,   668,
   2350       -1,    -1,    -1,    -1,    -1,   698,    -1,    -1,    -1,   643,
   2351      692,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   337,    -1,
   2352       -1,    -1,    -1,    -1,    -1,   666,    -1,   661,    -1,    -1,
   2353       -1,    -1,    -1,    -1,    -1,    -1,    -1,   337,    -1,    -1,
   2354       -1,    -1,    -1,   337,    -1,   345,    -1,    -1,    -1,    -1,
   2355       -1,   345,    -1,   353,   353,   353,    -1,    -1,    -1,   353,
   2356      360,    -1,    -1,    -1,   668,    -1,   366,    -1,    -1,    -1,
   2357      370,    -1,   366,    -1,    -1,    -1,   370,    -1,    -1,    -1,
   2358       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2359      390,    -1,    -1,    -1,   394,    -1,   390,    -1,    -1,    -1,
   2360      394,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2361       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2362       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2363       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2364       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2365       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2366       -1,   461,   462,    -1,   464,    -1,    -1,   461,   462,    -1,
   2367      464,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2368       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2369       -1,    -1,    -1,    -1,    -1,   495,    -1,    -1,    -1,    -1,
   2370       -1,   495,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2371       -1,    -1,    -1,   513,    -1,    -1,    -1,    -1,    -1,   513,
   2372       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2373       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2374       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2375       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   558,    -1,
   2376       -1,    -1,    -1,    -1,   558,    -1,    -1,   567,    -1,    -1,
   2377       -1,    -1,    -1,   567,    -1,    -1,    -1,    -1,    -1,   579,
   2378       -1,    -1,    -1,    -1,    -1,   579,    -1,    -1,    -1,    -1,
   2379       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2380       -1,    -1,    -1,    -1,   604,    -1,    -1,    -1,    -1,    -1,
   2381      604,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2382       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2383       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   638,    -1,
   2384       -1,    -1,    -1,   643,   638,    -1,    -1,   647,    -1,   643,
   2385       -1,    -1,    -1,   647,    -1,    -1,    -1,    -1,    -1,    -1,
   2386       -1,   661,    -1,    -1,    -1,    -1,   666,   661,    -1,    -1,
   2387       -1,    -1,   666,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2388       -1,   681,    -1,    -1,    -1,   685,    -1,   681,    -1,    -1,
   2389       -1,   685,    -1,   693,    -1,    -1,    -1,   697,    -1,   693,
   2390       -1,    -1,    -1,   697,    -1,    -1,    -1,   707,    -1,    -1,
   2391       -1,     0,    -1,   707,     3,     4,     5,     6,     7,     8,
   2392        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
   2393       19,    20,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2394       -1,    -1,    -1,    -1,    33,    34,    35,    36,    37,    38,
   2395       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
   2396       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
   2397       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
   2398       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
   2399       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
   2400       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
   2401       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
   2402      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
   2403      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
   2404      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
   2405      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
   2406      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
   2407      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
   2408      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
   2409      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
   2410      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
   2411      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
   2412      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
   2413      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
   2414      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
   2415      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
   2416      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
   2417      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
   2418      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
   2419      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
   2420      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
   2421      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
   2422      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
   2423      319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
   2424      329,   330,   331,   332,   333,   334,   335,   336,    -1,    -1,
   2425      339,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2426       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2427       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2428       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2429       -1,    -1,    -1,    -1,   383,    -1,    -1,    -1,    -1,    -1,
   2430       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   397,   398,
   2431      399,   400,   401,   402,     3,     4,     5,     6,     7,     8,
   2432        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
   2433       19,    20,    21,    22,    23,    24,    -1,    26,    27,    28,
   2434       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
   2435       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
   2436       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
   2437       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
   2438       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
   2439       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
   2440       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
   2441       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
   2442      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
   2443      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
   2444      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
   2445      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
   2446      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
   2447      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
   2448      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
   2449      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
   2450      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
   2451      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
   2452      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
   2453      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
   2454      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
   2455      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
   2456      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
   2457      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
   2458      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
   2459      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
   2460      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
   2461      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
   2462      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
   2463      319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
   2464      329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
   2465      339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
   2466      349,   350,   351,    -1,    -1,   354,   355,    -1,    -1,    -1,
   2467       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2468       -1,    -1,    -1,    -1,   373,    -1,   375,    -1,   377,   378,
   2469       -1,    -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,
   2470       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   397,   398,
   2471      399,   400,   401,   402,     3,     4,     5,     6,     7,     8,
   2472        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
   2473       19,    20,    21,    22,    23,    24,    -1,    26,    27,    28,
   2474       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
   2475       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
   2476       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
   2477       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
   2478       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
   2479       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
   2480       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
   2481       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
   2482      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
   2483      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
   2484      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
   2485      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
   2486      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
   2487      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
   2488      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
   2489      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
   2490      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
   2491      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
   2492      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
   2493      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
   2494      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
   2495      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
   2496      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
   2497      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
   2498      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
   2499      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
   2500      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
   2501      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
   2502      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
   2503      319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
   2504      329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
   2505      339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
   2506      349,   350,   351,    -1,    -1,   354,   355,    -1,    -1,    -1,
   2507       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2508       -1,    -1,    -1,    -1,   373,    -1,   375,    -1,   377,   378,
   2509       -1,    -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,
   2510       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   397,   398,
   2511      399,   400,   401,   402,     3,     4,     5,     6,     7,     8,
   2512        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
   2513       19,    20,    21,    22,    23,    24,    -1,    26,    27,    28,
   2514       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
   2515       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
   2516       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
   2517       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
   2518       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
   2519       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
   2520       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
   2521       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
   2522      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
   2523      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
   2524      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
   2525      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
   2526      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
   2527      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
   2528      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
   2529      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
   2530      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
   2531      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
   2532      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
   2533      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
   2534      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
   2535      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
   2536      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
   2537      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
   2538      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
   2539      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
   2540      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
   2541      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
   2542      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
   2543      319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
   2544      329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
   2545      339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
   2546      349,   350,   351,    -1,    -1,   354,   355,    -1,    -1,    -1,
   2547       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2548       -1,    -1,    -1,    -1,   373,    -1,   375,    -1,   377,    -1,
   2549       -1,    -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,
   2550       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   397,   398,
   2551      399,   400,   401,   402,     3,     4,     5,     6,     7,     8,
   2552        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
   2553       19,    20,    21,    22,    23,    24,    -1,    26,    27,    28,
   2554       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
   2555       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
   2556       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
   2557       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
   2558       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
   2559       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
   2560       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
   2561       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
   2562      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
   2563      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
   2564      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
   2565      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
   2566      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
   2567      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
   2568      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
   2569      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
   2570      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
   2571      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
   2572      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
   2573      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
   2574      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
   2575      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
   2576      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
   2577      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
   2578      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
   2579      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
   2580      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
   2581      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
   2582      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
   2583      319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
   2584      329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
   2585      339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
   2586      349,   350,   351,    -1,    -1,   354,   355,    -1,    -1,    -1,
   2587       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2588       -1,    -1,    -1,    -1,   373,    -1,   375,    -1,   377,    -1,
   2589       -1,    -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,
   2590       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   397,   398,
   2591      399,   400,   401,   402,     3,     4,     5,     6,     7,     8,
   2592        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
   2593       19,    20,    21,    22,    23,    24,    -1,    26,    27,    28,
   2594       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
   2595       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
   2596       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
   2597       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
   2598       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
   2599       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
   2600       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
   2601       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
   2602      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
   2603      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
   2604      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
   2605      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
   2606      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
   2607      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
   2608      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
   2609      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
   2610      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
   2611      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
   2612      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
   2613      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
   2614      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
   2615      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
   2616      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
   2617      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
   2618      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
   2619      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
   2620      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
   2621      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
   2622      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
   2623      319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
   2624      329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
   2625      339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
   2626      349,   350,   351,    -1,    -1,   354,   355,    -1,    -1,    -1,
   2627       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2628       -1,    -1,    -1,    -1,   373,    -1,   375,    -1,    -1,    -1,
   2629       -1,    -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,
   2630       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   397,   398,
   2631      399,   400,   401,   402,     3,     4,     5,     6,     7,     8,
   2632        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
   2633       19,    20,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2634       -1,    -1,    -1,    -1,    33,    34,    35,    36,    37,    38,
   2635       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
   2636       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
   2637       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
   2638       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
   2639       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
   2640       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
   2641       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
   2642      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
   2643      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
   2644      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
   2645      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
   2646      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
   2647      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
   2648      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
   2649      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
   2650      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
   2651      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
   2652      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
   2653      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
   2654      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
   2655      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
   2656      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
   2657      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
   2658      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
   2659      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
   2660      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
   2661      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
   2662      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
   2663      319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
   2664      329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
   2665      339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
   2666      349,   350,   351,    -1,    -1,   354,   355,    -1,    -1,    -1,
   2667       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2668       -1,    -1,    -1,    -1,   373,    -1,    -1,    -1,    -1,    -1,
   2669       -1,    -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,
   2670       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   397,   398,
   2671      399,   400,   401,   402,     3,     4,     5,     6,     7,     8,
   2672        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
   2673       19,    20,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2674       -1,    -1,    -1,    -1,    33,    34,    35,    36,    37,    38,
   2675       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
   2676       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
   2677       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
   2678       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
   2679       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
   2680       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
   2681       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
   2682      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
   2683      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
   2684      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
   2685      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
   2686      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
   2687      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
   2688      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
   2689      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
   2690      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
   2691      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
   2692      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
   2693      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
   2694      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
   2695      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
   2696      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
   2697      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
   2698      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
   2699      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
   2700      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
   2701      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
   2702      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
   2703      319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
   2704      329,   330,   331,   332,   333,   334,   335,   336,    -1,    -1,
   2705      339,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2706       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2707       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2708       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2709       -1,    -1,    -1,    -1,   383,    -1,    -1,    -1,    -1,    -1,
   2710       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   397,   398,
   2711      399,   400,   401,   402,     3,     4,     5,     6,     7,     8,
   2712        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
   2713       19,    20,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2714       -1,    -1,    -1,    -1,    33,    34,    35,    36,    37,    38,
   2715       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
   2716       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
   2717       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
   2718       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
   2719       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
   2720       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
   2721       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
   2722      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
   2723      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
   2724      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
   2725      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
   2726      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
   2727      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
   2728      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
   2729      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
   2730      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
   2731      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
   2732      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
   2733      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
   2734      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
   2735      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
   2736      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
   2737      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
   2738      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
   2739      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
   2740      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
   2741      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
   2742      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
   2743      319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
   2744      329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
   2745      339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
   2746      349,   350,   351,    -1,    -1,   354,   355,    -1,    -1,    -1,
   2747       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2748       -1,    -1,    -1,    -1,   373,    -1,    -1,    -1,    -1,    -1,
   2749       -1,    -1,    -1,    -1,    -1,   384,   385,   386,   387,    -1,
   2750       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   397,   398,
   2751      399,   400,   401,     3,     4,     5,     6,     7,     8,     9,
   2752       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
   2753       20,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2754       -1,    -1,    -1,    33,    34,    35,    36,    37,    38,    39,
   2755       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
   2756       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
   2757       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
   2758       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
   2759       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
   2760       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
   2761      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
   2762      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
   2763      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
   2764      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
   2765      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
   2766      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
   2767      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
   2768      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
   2769      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
   2770      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
   2771      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
   2772      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
   2773      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
   2774      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
   2775      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
   2776      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
   2777      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
   2778      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
   2779      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
   2780      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
   2781      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
   2782      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
   2783      320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
   2784      330,   331,   332,   333,   334,   335,   336,    -1,   338,   339,
   2785       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2786       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2787       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2788       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2789       -1,    -1,    -1,   383,    -1,    -1,    -1,    -1,    -1,    -1,
   2790       -1,    -1,    -1,    -1,    -1,    -1,    -1,   397,   398,   399,
   2791      400,   401,     3,     4,     5,     6,     7,     8,     9,    10,
   2792       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
   2793       21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2794       -1,    -1,    33,    34,    35,    36,    37,    38,    39,    40,
   2795       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
   2796       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
   2797       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
   2798       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
   2799       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
   2800       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
   2801      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
   2802      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
   2803      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
   2804      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
   2805      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
   2806      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
   2807      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
   2808      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
   2809      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
   2810      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
   2811      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
   2812      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
   2813      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
   2814      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
   2815      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
   2816      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
   2817      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
   2818      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
   2819      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
   2820      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
   2821      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
   2822      311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
   2823      321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
   2824      331,   332,   333,   334,   335,   336,    -1,    -1,   339,    -1,
   2825       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2826       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2827       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2828       -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,    -1,    -1,
   2829       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2830       -1,    -1,    -1,    -1,    -1,    -1,   397,   398,   399,   400,
   2831      401,     3,     4,     5,     6,     7,     8,     9,    10,    11,
   2832       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
   2833       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2834       -1,    33,    34,    35,    36,    37,    38,    39,    40,    41,
   2835       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
   2836       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
   2837       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
   2838       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
   2839       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
   2840       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
   2841      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
   2842      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
   2843      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
   2844      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
   2845      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
   2846      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
   2847      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
   2848      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
   2849      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
   2850      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
   2851      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
   2852      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
   2853      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
   2854      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
   2855      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
   2856      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
   2857      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
   2858      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
   2859      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
   2860      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
   2861      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
   2862      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
   2863      322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
   2864      332,   333,   334,   335,   336,    -1,    -1,   339,    -1,    -1,
   2865       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2866       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2867       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2868       -1,    -1,    -1,    -1,    -1,    -1,   378,    -1,    -1,    -1,
   2869       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2870       -1,    -1,    -1,    -1,    -1,   397,   398,   399,   400,   401,
   2871        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
   2872       13,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
   2873       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2874       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
   2875       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
   2876       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
   2877       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
   2878       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
   2879       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
   2880       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
   2881      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
   2882      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
   2883      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
   2884      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
   2885      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
   2886      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
   2887      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
   2888      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
   2889      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
   2890      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
   2891      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
   2892      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
   2893      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
   2894      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
   2895      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
   2896      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
   2897      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
   2898      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
   2899      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
   2900      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
   2901      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
   2902      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
   2903      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
   2904      333,   334,   335,   336,    -1,    -1,   339,    -1,    -1,    -1,
   2905       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2906       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2907       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2908       -1,    -1,    -1,    -1,    -1,   378,    -1,    -1,    -1,    -1,
   2909       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2910       -1,    -1,    -1,    -1,   397,   398,   399,   400,   401,     3,
   2911        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
   2912       14,    15,    16,    17,    18,    19,    20,    21,    -1,    -1,
   2913       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,
   2914       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
   2915       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
   2916       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
   2917       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
   2918       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
   2919       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
   2920       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
   2921      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
   2922      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
   2923      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
   2924      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
   2925      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
   2926      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
   2927      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
   2928      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
   2929      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
   2930      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
   2931      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
   2932      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
   2933      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
   2934      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
   2935      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
   2936      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
   2937      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
   2938      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
   2939      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
   2940      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
   2941      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
   2942      314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
   2943      324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
   2944      334,   335,   336,    -1,    -1,   339,    -1,    -1,    -1,    -1,
   2945       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2946       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2947       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,
   2948        6,     7,     8,     9,    -1,    11,    12,    13,    14,    15,
   2949       16,    17,    18,    19,    20,    21,    -1,    -1,    -1,    -1,
   2950       -1,    -1,    -1,   397,   398,   399,   400,   401,    34,    35,
   2951       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
   2952       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
   2953       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
   2954       66,    67,    68,    69,    70,    71,    72,    -1,    -1,    -1,
   2955       -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    -1,
   2956       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2957       -1,    -1,    98,    99,   100,   101,   102,   103,   104,   105,
   2958      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
   2959      116,   117,   118,   119,   120,   121,    -1,    -1,    -1,    -1,
   2960       -1,    -1,    -1,    -1,    -1,   131,   132,   133,   134,   135,
   2961      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
   2962      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
   2963      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
   2964      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
   2965      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
   2966      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
   2967      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
   2968      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
   2969      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
   2970      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
   2971      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
   2972      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
   2973      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
   2974      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
   2975      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
   2976      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
   2977      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
   2978      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
   2979      316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
   2980      326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
   2981      336,    -1,   338,   339,   340,   341,   342,   343,   344,   345,
   2982      346,   347,   348,   349,   350,   351,    -1,    -1,   354,   355,
   2983       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2984       -1,    -1,    -1,    -1,    -1,    -1,    -1,   373,    -1,    -1,
   2985       -1,   377,   378,    -1,    -1,    -1,    -1,    -1,   384,   385,
   2986      386,   387,     5,     6,     7,     8,     9,    -1,    11,    12,
   2987       13,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
   2988       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2989       -1,    34,    35,    36,    37,    38,    39,    40,    41,    42,
   2990       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
   2991       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
   2992       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
   2993       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    82,
   2994       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2995       -1,    -1,    -1,    -1,    -1,    98,    99,   100,   101,   102,
   2996      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
   2997      113,   114,   115,   116,   117,   118,   119,   120,   121,    -1,
   2998       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,
   2999      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
   3000      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
   3001      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
   3002      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
   3003      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
   3004      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
   3005      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
   3006      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
   3007      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
   3008      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
   3009      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
   3010      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
   3011      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
   3012      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
   3013      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
   3014      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
   3015      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
   3016      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
   3017      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
   3018      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
   3019      333,   334,   335,   336,    -1,   338,   339,   340,   341,   342,
   3020      343,   344,   345,   346,   347,   348,   349,   350,   351,    -1,
   3021       -1,   354,   355,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3022       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3023      373,    -1,    -1,   376,    -1,    -1,    -1,    -1,    -1,    -1,
   3024       -1,   384,   385,   386,   387,     5,     6,     7,     8,     9,
   3025       -1,    11,    12,    13,    14,    15,    16,    17,    18,    19,
   3026       20,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3027       -1,    -1,    -1,    -1,    34,    35,    36,    37,    38,    39,
   3028       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
   3029       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
   3030       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
   3031       70,    71,    72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3032       -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3033       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    99,
   3034      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
   3035      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
   3036      120,   121,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3037       -1,   131,   132,   133,   134,   135,   136,   137,   138,   139,
   3038      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
   3039      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
   3040      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
   3041      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
   3042      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
   3043      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
   3044      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
   3045      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
   3046      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
   3047      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
   3048      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
   3049      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
   3050      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
   3051      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
   3052      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
   3053      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
   3054      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
   3055      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
   3056      320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
   3057      330,   331,   332,   333,   334,   335,   336,    -1,   338,   339,
   3058      340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
   3059      350,   351,    -1,    -1,   354,   355,    -1,    -1,    -1,    -1,
   3060       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3061       -1,    -1,    -1,   373,    -1,    -1,    -1,   377,    -1,    -1,
   3062       -1,    -1,    -1,    -1,   384,   385,   386,   387,     5,     6,
   3063        7,     8,     9,    -1,    11,    12,    13,    14,    15,    16,
   3064       17,    18,    19,    20,    21,    -1,    -1,    -1,    -1,    -1,
   3065       -1,    -1,    -1,    -1,    -1,    -1,    -1,    34,    35,    36,
   3066       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
   3067       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
   3068       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
   3069       67,    68,    69,    70,    71,    72,    -1,    -1,    -1,    -1,
   3070       -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,
   3071       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3072       -1,    98,    99,   100,   101,   102,   103,   104,   105,   106,
   3073      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
   3074      117,   118,   119,   120,   121,    -1,    -1,    -1,    -1,    -1,
   3075       -1,    -1,    -1,    -1,   131,   132,   133,   134,   135,   136,
   3076      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
   3077      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
   3078      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
   3079      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
   3080      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
   3081      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
   3082      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
   3083      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
   3084      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
   3085      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
   3086      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
   3087      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
   3088      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
   3089      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
   3090      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
   3091      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
   3092      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
   3093      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
   3094      317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
   3095      327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
   3096       -1,   338,   339,   340,   341,   342,   343,   344,   345,   346,
   3097      347,   348,   349,   350,   351,    -1,    -1,   354,   355,    -1,
   3098       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3099       -1,    -1,    -1,    -1,    -1,    -1,   373,    -1,    -1,   376,
   3100       -1,    -1,    -1,    -1,    -1,    -1,    -1,   384,   385,   386,
   3101      387,     5,     6,     7,     8,     9,    -1,    11,    12,    13,
   3102       14,    15,    16,    17,    18,    19,    20,    21,    -1,    -1,
   3103       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3104       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
   3105       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
   3106       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
   3107       64,    65,    66,    67,    68,    69,    70,    71,    72,    -1,
   3108       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,
   3109       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3110       -1,    -1,    -1,    -1,    98,    99,   100,   101,   102,   103,
   3111      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
   3112      114,   115,   116,   117,   118,   119,   120,   121,    -1,    -1,
   3113       -1,    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,   133,
   3114      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
   3115      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
   3116      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
   3117      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
   3118      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
   3119      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
   3120      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
   3121      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
   3122      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
   3123      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
   3124      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
   3125      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
   3126      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
   3127      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
   3128      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
   3129      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
   3130      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
   3131      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
   3132      314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
   3133      324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
   3134      334,   335,   336,    -1,   338,   339,   340,   341,   342,   343,
   3135      344,   345,   346,   347,   348,   349,   350,   351,    -1,    -1,
   3136      354,   355,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3137       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   373,
   3138       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   383,
   3139      384,   385,   386,   387,     5,     6,     7,     8,     9,    -1,
   3140       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
   3141       21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3142       -1,    -1,    -1,    34,    35,    36,    37,    38,    39,    40,
   3143       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
   3144       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
   3145       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
   3146       71,    72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3147       -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3148       -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    99,   100,
   3149      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
   3150      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
   3151      121,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3152      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
   3153      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
   3154      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
   3155      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
   3156      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
   3157      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
   3158      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
   3159      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
   3160      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
   3161      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
   3162      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
   3163      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
   3164      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
   3165      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
   3166      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
   3167      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
   3168      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
   3169      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
   3170      311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
   3171      321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
   3172      331,   332,   333,   334,   335,   336,    -1,   338,   339,   340,
   3173      341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
   3174      351,    -1,    -1,   354,   355,    -1,    -1,    -1,    -1,    -1,
   3175       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3176       -1,    -1,   373,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3177       -1,    -1,    -1,   384,   385,   386,   387,     5,     6,     7,
   3178        8,     9,    -1,    11,    12,    13,    14,    15,    16,    17,
   3179       18,    19,    20,    21,    -1,    -1,    -1,    -1,    -1,    -1,
   3180       -1,    -1,    -1,    -1,    -1,    -1,    34,    35,    36,    37,
   3181       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
   3182       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
   3183       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
   3184       68,    69,    70,    71,    72,    -1,    -1,    -1,    -1,    -1,
   3185       -1,    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,
   3186       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3187       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
   3188      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
   3189      118,   119,   120,   121,    -1,    -1,    -1,    -1,    -1,    -1,
   3190       -1,    -1,    -1,   131,   132,   133,   134,   135,   136,   137,
   3191      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
   3192      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
   3193      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
   3194      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
   3195      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
   3196      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
   3197      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
   3198      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
   3199      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
   3200      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
   3201      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
   3202      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
   3203      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
   3204      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
   3205      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
   3206      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
   3207      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
   3208      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
   3209      318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
   3210      328,   329,   330,   331,   332,   333,   334,   335,   336,    -1,
   3211      338,   339,   340,   341,   342,   343,   344,   345,   346,   347,
   3212      348,   349,   350,   351,    -1,    -1,   354,   355,    -1,    -1,
   3213       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3214       -1,    -1,    -1,    -1,    -1,   373,    -1,    -1,    -1,    -1,
   3215       -1,    -1,    -1,    -1,    -1,    -1,   384,   385,   386,   387,
   3216        5,     6,     7,     8,     9,    -1,    11,    12,    13,    14,
   3217       15,    16,    17,    18,    19,    20,    21,    -1,    -1,    -1,
   3218       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    34,
   3219       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
   3220       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
   3221       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
   3222       65,    66,    67,    68,    69,    70,    71,    72,    -1,    -1,
   3223       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3224       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   3225       -1,    -1,    -1,    98,    99,   100,   101,   102,   103,   104,
   3226      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
   3227      115,   116,   117,   118,   119,   120,   121,    -1,    -1,    -1,
   3228       -1,    -1,    -1,    -1,    -1,    -1,   131,   132,   133,   134,
   3229      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
   3230      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
   3231      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
   3232      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
   3233      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
   3234      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
   3235      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
   3236      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
   3237      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
   3238      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
   3239      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
   3240      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
   3241      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
   3242      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
   3243      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
   3244      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
   3245      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
   3246      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
   3247      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
   3248      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
   3249      335,   336,    -1,    -1,   339
   3250 };
   3251 
   3252   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
   3253      symbol of state STATE-NUM.  */
   3254 static const yytype_uint16 yystos[] =
   3255 {
   3256        0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
   3257       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
   3258       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
   3259       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
   3260       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
   3261       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
   3262       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
   3263       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
   3264       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
   3265      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
   3266      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
   3267      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
   3268      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
   3269      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
   3270      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
   3271      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
   3272      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
   3273      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
   3274      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
   3275      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
   3276      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
   3277      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
   3278      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
   3279      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
   3280      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
   3281      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
   3282      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
   3283      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
   3284      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
   3285      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
   3286      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
   3287      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
   3288      333,   334,   335,   336,   339,   383,   397,   398,   399,   400,
   3289      401,   402,   437,   438,   441,   442,   443,   444,   448,   449,
   3290      450,   451,   452,   453,   456,   457,   458,   459,   460,   462,
   3291      464,   465,   466,   506,   507,   508,   373,   373,   338,   377,
   3292      465,   338,   383,   383,   509,   374,   380,   445,   446,   447,
   3293      457,   462,   380,   383,   338,   338,   383,   458,   462,   375,
   3294      463,     0,   507,   338,   461,    81,   338,   454,   455,   377,
   3295      468,   462,   383,   463,   377,   485,   446,   445,   447,   338,
   3296      338,   373,   382,   463,   377,   380,   383,   440,   338,   340,
   3297      341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
   3298      351,   354,   355,   373,   376,   384,   385,   386,   387,   407,
   3299      408,   409,   411,   412,   413,   414,   415,   416,   417,   418,
   3300      419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
   3301      429,   430,   431,   460,   462,   375,   374,   380,   382,   374,
   3302      380,   467,   457,   462,   469,   470,   383,   383,    22,    23,
   3303       24,    26,    27,    28,    29,    30,    31,    32,   337,   375,
   3304      377,   378,   383,   418,   431,   433,   435,   437,   441,   460,
   3305      462,   475,   476,   477,   478,   486,   487,   488,   489,   492,
   3306      493,   496,   497,   498,   505,   510,   463,   382,   463,   377,
   3307      433,   473,   382,   439,   338,   380,   383,   418,   418,   435,
   3308      354,   355,   375,   379,   374,   374,   380,   336,   433,   373,
   3309      418,   388,   389,   390,   385,   387,   352,   353,   356,   357,
   3310      391,   392,   358,   359,   395,   394,   393,   360,   362,   361,
   3311      396,   376,   376,   431,   338,   431,   436,   455,   469,   462,
   3312      338,   471,   472,   378,   470,   383,   383,   500,   373,   373,
   3313      383,   383,   435,   373,   435,   381,   373,   375,   378,   479,
   3314      363,   364,   365,   366,   367,   368,   369,   370,   371,   372,
   3315      382,   434,   380,   383,   378,   476,   489,   493,   498,   473,
   3316      382,   473,   474,   473,   469,   338,   374,   410,   435,   338,
   3317      433,   418,   418,   418,   420,   420,   421,   421,   422,   422,
   3318      422,   422,   423,   423,   424,   425,   426,   427,   428,   429,
   3319      432,   376,   378,   471,   463,   380,   383,   476,   501,   435,
   3320      383,   435,   381,   499,   338,   511,   512,   486,   433,   433,
   3321      473,   378,   380,   378,   376,   435,   383,   472,   337,   475,
   3322      487,   502,   374,   374,   435,   450,   457,   491,   373,   376,
   3323      380,   480,   378,   473,   381,   373,   491,   503,   504,   482,
   3324      483,   484,   490,   494,   338,   374,   436,   376,   512,   378,
   3325      433,   435,   383,   374,    25,   478,   477,   377,   382,   477,
   3326      481,   485,   374,   374,   435,   481,   482,   486,   495,   473,
   3327      383,   378
   3328 };
   3329 
   3330   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
   3331 static const yytype_uint16 yyr1[] =
   3332 {
   3333        0,   406,   407,   408,   408,   408,   408,   408,   408,   408,
   3334      408,   408,   408,   408,   408,   408,   408,   409,   409,   409,
   3335      409,   409,   409,   410,   411,   412,   413,   413,   414,   414,
   3336      415,   415,   416,   417,   417,   417,   418,   418,   418,   418,
   3337      419,   419,   419,   419,   420,   420,   420,   420,   421,   421,
   3338      421,   422,   422,   422,   423,   423,   423,   423,   423,   424,
   3339      424,   424,   425,   425,   426,   426,   427,   427,   428,   428,
   3340      429,   429,   430,   430,   431,   432,   431,   433,   433,   434,
   3341      434,   434,   434,   434,   434,   434,   434,   434,   434,   434,
   3342      435,   435,   436,   437,   437,   437,   437,   437,   437,   437,
   3343      437,   437,   439,   438,   440,   440,   441,   442,   442,   443,
   3344      443,   444,   445,   445,   446,   446,   446,   446,   447,   448,
   3345      448,   448,   448,   448,   449,   449,   449,   449,   449,   450,
   3346      450,   451,   452,   452,   452,   452,   452,   452,   452,   452,
   3347      453,   454,   454,   455,   455,   455,   456,   457,   457,   458,
   3348      458,   458,   458,   458,   458,   458,   459,   459,   459,   459,
   3349      459,   459,   459,   459,   459,   459,   459,   459,   459,   459,
   3350      459,   459,   459,   459,   459,   459,   459,   459,   459,   459,
   3351      459,   459,   459,   459,   459,   460,   461,   461,   462,   462,
   3352      463,   463,   463,   463,   464,   464,   464,   464,   464,   464,
   3353      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3354      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3355      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3356      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3357      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3358      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3359      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3360      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3361      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3362      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3363      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3364      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3365      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3366      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3367      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3368      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3369      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3370      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3371      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3372      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3373      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3374      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3375      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3376      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3377      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3378      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3379      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3380      464,   464,   464,   464,   464,   464,   464,   464,   464,   464,
   3381      465,   465,   465,   467,   466,   468,   466,   469,   469,   470,
   3382      470,   471,   471,   472,   472,   473,   473,   473,   474,   474,
   3383      475,   476,   476,   477,   477,   477,   477,   477,   477,   477,
   3384      478,   479,   480,   478,   481,   481,   483,   482,   484,   482,
   3385      485,   485,   486,   486,   487,   487,   488,   488,   489,   490,
   3386      490,   491,   491,   492,   492,   494,   493,   495,   495,   496,
   3387      496,   497,   497,   499,   498,   500,   498,   501,   498,   502,
   3388      502,   503,   503,   504,   504,   505,   505,   505,   505,   505,
   3389      506,   506,   507,   507,   507,   509,   508,   510,   511,   511,
   3390      512,   512
   3391 };
   3392 
   3393   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
   3394 static const yytype_uint8 yyr2[] =
   3395 {
   3396        0,     2,     1,     1,     1,     1,     1,     1,     1,     1,
   3397        1,     1,     1,     1,     1,     1,     3,     1,     4,     1,
   3398        3,     2,     2,     1,     1,     1,     2,     2,     2,     1,
   3399        2,     3,     2,     1,     1,     1,     1,     2,     2,     2,
   3400        1,     1,     1,     1,     1,     3,     3,     3,     1,     3,
   3401        3,     1,     3,     3,     1,     3,     3,     3,     3,     1,
   3402        3,     3,     1,     3,     1,     3,     1,     3,     1,     3,
   3403        1,     3,     1,     3,     1,     0,     6,     1,     3,     1,
   3404        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3405        1,     3,     1,     2,     2,     4,     2,     3,     4,     2,
   3406        3,     4,     0,     6,     2,     3,     2,     1,     1,     2,
   3407        3,     3,     2,     3,     2,     1,     2,     1,     1,     1,
   3408        3,     4,     6,     5,     1,     2,     3,     5,     4,     1,
   3409        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3410        4,     1,     3,     1,     3,     1,     1,     1,     2,     1,
   3411        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3412        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3413        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3414        1,     1,     1,     1,     4,     1,     1,     3,     1,     2,
   3415        2,     3,     3,     4,     1,     1,     1,     1,     1,     1,
   3416        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3417        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3418        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3419        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3420        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3421        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3422        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3423        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3424        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3425        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3426        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3427        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3428        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3429        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3430        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3431        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3432        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3433        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3434        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3435        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3436        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3437        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3438        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3439        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3440        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3441        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3442        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3443        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3444        1,     1,     1,     0,     6,     0,     5,     1,     2,     3,
   3445        4,     1,     3,     1,     2,     1,     3,     4,     1,     3,
   3446        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   3447        2,     0,     0,     5,     1,     1,     0,     2,     0,     2,
   3448        2,     3,     1,     2,     1,     2,     1,     2,     5,     3,
   3449        1,     1,     4,     1,     2,     0,     8,     0,     1,     3,
   3450        2,     1,     2,     0,     6,     0,     8,     0,     7,     1,
   3451        1,     1,     0,     2,     3,     2,     2,     2,     3,     2,
   3452        1,     2,     1,     1,     1,     0,     3,     5,     1,     3,
   3453        1,     4
   3454 };
   3455 
   3456 
   3457 #define yyerrok         (yyerrstatus = 0)
   3458 #define yyclearin       (yychar = YYEMPTY)
   3459 #define YYEMPTY         (-2)
   3460 #define YYEOF           0
   3461 
   3462 #define YYACCEPT        goto yyacceptlab
   3463 #define YYABORT         goto yyabortlab
   3464 #define YYERROR         goto yyerrorlab
   3465 
   3466 
   3467 #define YYRECOVERING()  (!!yyerrstatus)
   3468 
   3469 #define YYBACKUP(Token, Value)                                  \
   3470 do                                                              \
   3471   if (yychar == YYEMPTY)                                        \
   3472     {                                                           \
   3473       yychar = (Token);                                         \
   3474       yylval = (Value);                                         \
   3475       YYPOPSTACK (yylen);                                       \
   3476       yystate = *yyssp;                                         \
   3477       goto yybackup;                                            \
   3478     }                                                           \
   3479   else                                                          \
   3480     {                                                           \
   3481       yyerror (pParseContext, YY_("syntax error: cannot back up")); \
   3482       YYERROR;                                                  \
   3483     }                                                           \
   3484 while (0)
   3485 
   3486 /* Error token number */
   3487 #define YYTERROR        1
   3488 #define YYERRCODE       256
   3489 
   3490 
   3491 
   3492 /* Enable debugging if requested.  */
   3493 #if YYDEBUG
   3494 
   3495 # ifndef YYFPRINTF
   3496 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
   3497 #  define YYFPRINTF fprintf
   3498 # endif
   3499 
   3500 # define YYDPRINTF(Args)                        \
   3501 do {                                            \
   3502   if (yydebug)                                  \
   3503     YYFPRINTF Args;                             \
   3504 } while (0)
   3505 
   3506 /* This macro is provided for backward compatibility. */
   3507 #ifndef YY_LOCATION_PRINT
   3508 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
   3509 #endif
   3510 
   3511 
   3512 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
   3513 do {                                                                      \
   3514   if (yydebug)                                                            \
   3515     {                                                                     \
   3516       YYFPRINTF (stderr, "%s ", Title);                                   \
   3517       yy_symbol_print (stderr,                                            \
   3518                   Type, Value, pParseContext); \
   3519       YYFPRINTF (stderr, "\n");                                           \
   3520     }                                                                     \
   3521 } while (0)
   3522 
   3523 
   3524 /*----------------------------------------.
   3525 | Print this symbol's value on YYOUTPUT.  |
   3526 `----------------------------------------*/
   3527 
   3528 static void
   3529 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
   3530 {
   3531   FILE *yyo = yyoutput;
   3532   YYUSE (yyo);
   3533   YYUSE (pParseContext);
   3534   if (!yyvaluep)
   3535     return;
   3536 # ifdef YYPRINT
   3537   if (yytype < YYNTOKENS)
   3538     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
   3539 # endif
   3540   YYUSE (yytype);
   3541 }
   3542 
   3543 
   3544 /*--------------------------------.
   3545 | Print this symbol on YYOUTPUT.  |
   3546 `--------------------------------*/
   3547 
   3548 static void
   3549 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
   3550 {
   3551   YYFPRINTF (yyoutput, "%s %s (",
   3552              yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
   3553 
   3554   yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext);
   3555   YYFPRINTF (yyoutput, ")");
   3556 }
   3557 
   3558 /*------------------------------------------------------------------.
   3559 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
   3560 | TOP (included).                                                   |
   3561 `------------------------------------------------------------------*/
   3562 
   3563 static void
   3564 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
   3565 {
   3566   YYFPRINTF (stderr, "Stack now");
   3567   for (; yybottom <= yytop; yybottom++)
   3568     {
   3569       int yybot = *yybottom;
   3570       YYFPRINTF (stderr, " %d", yybot);
   3571     }
   3572   YYFPRINTF (stderr, "\n");
   3573 }
   3574 
   3575 # define YY_STACK_PRINT(Bottom, Top)                            \
   3576 do {                                                            \
   3577   if (yydebug)                                                  \
   3578     yy_stack_print ((Bottom), (Top));                           \
   3579 } while (0)
   3580 
   3581 
   3582 /*------------------------------------------------.
   3583 | Report that the YYRULE is going to be reduced.  |
   3584 `------------------------------------------------*/
   3585 
   3586 static void
   3587 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext)
   3588 {
   3589   unsigned long int yylno = yyrline[yyrule];
   3590   int yynrhs = yyr2[yyrule];
   3591   int yyi;
   3592   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
   3593              yyrule - 1, yylno);
   3594   /* The symbols being reduced.  */
   3595   for (yyi = 0; yyi < yynrhs; yyi++)
   3596     {
   3597       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
   3598       yy_symbol_print (stderr,
   3599                        yystos[yyssp[yyi + 1 - yynrhs]],
   3600                        &(yyvsp[(yyi + 1) - (yynrhs)])
   3601                                               , pParseContext);
   3602       YYFPRINTF (stderr, "\n");
   3603     }
   3604 }
   3605 
   3606 # define YY_REDUCE_PRINT(Rule)          \
   3607 do {                                    \
   3608   if (yydebug)                          \
   3609     yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \
   3610 } while (0)
   3611 
   3612 /* Nonzero means print parse trace.  It is left uninitialized so that
   3613    multiple parsers can coexist.  */
   3614 int yydebug;
   3615 #else /* !YYDEBUG */
   3616 # define YYDPRINTF(Args)
   3617 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
   3618 # define YY_STACK_PRINT(Bottom, Top)
   3619 # define YY_REDUCE_PRINT(Rule)
   3620 #endif /* !YYDEBUG */
   3621 
   3622 
   3623 /* YYINITDEPTH -- initial size of the parser's stacks.  */
   3624 #ifndef YYINITDEPTH
   3625 # define YYINITDEPTH 200
   3626 #endif
   3627 
   3628 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
   3629    if the built-in stack extension method is used).
   3630 
   3631    Do not make this value too large; the results are undefined if
   3632    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
   3633    evaluated with infinite-precision integer arithmetic.  */
   3634 
   3635 #ifndef YYMAXDEPTH
   3636 # define YYMAXDEPTH 10000
   3637 #endif
   3638 
   3639 
   3640 #if YYERROR_VERBOSE
   3641 
   3642 # ifndef yystrlen
   3643 #  if defined __GLIBC__ && defined _STRING_H
   3644 #   define yystrlen strlen
   3645 #  else
   3646 /* Return the length of YYSTR.  */
   3647 static YYSIZE_T
   3648 yystrlen (const char *yystr)
   3649 {
   3650   YYSIZE_T yylen;
   3651   for (yylen = 0; yystr[yylen]; yylen++)
   3652     continue;
   3653   return yylen;
   3654 }
   3655 #  endif
   3656 # endif
   3657 
   3658 # ifndef yystpcpy
   3659 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
   3660 #   define yystpcpy stpcpy
   3661 #  else
   3662 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
   3663    YYDEST.  */
   3664 static char *
   3665 yystpcpy (char *yydest, const char *yysrc)
   3666 {
   3667   char *yyd = yydest;
   3668   const char *yys = yysrc;
   3669 
   3670   while ((*yyd++ = *yys++) != '\0')
   3671     continue;
   3672 
   3673   return yyd - 1;
   3674 }
   3675 #  endif
   3676 # endif
   3677 
   3678 # ifndef yytnamerr
   3679 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
   3680    quotes and backslashes, so that it's suitable for yyerror.  The
   3681    heuristic is that double-quoting is unnecessary unless the string
   3682    contains an apostrophe, a comma, or backslash (other than
   3683    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
   3684    null, do not copy; instead, return the length of what the result
   3685    would have been.  */
   3686 static YYSIZE_T
   3687 yytnamerr (char *yyres, const char *yystr)
   3688 {
   3689   if (*yystr == '"')
   3690     {
   3691       YYSIZE_T yyn = 0;
   3692       char const *yyp = yystr;
   3693 
   3694       for (;;)
   3695         switch (*++yyp)
   3696           {
   3697           case '\'':
   3698           case ',':
   3699             goto do_not_strip_quotes;
   3700 
   3701           case '\\':
   3702             if (*++yyp != '\\')
   3703               goto do_not_strip_quotes;
   3704             /* Fall through.  */
   3705           default:
   3706             if (yyres)
   3707               yyres[yyn] = *yyp;
   3708             yyn++;
   3709             break;
   3710 
   3711           case '"':
   3712             if (yyres)
   3713               yyres[yyn] = '\0';
   3714             return yyn;
   3715           }
   3716     do_not_strip_quotes: ;
   3717     }
   3718 
   3719   if (! yyres)
   3720     return yystrlen (yystr);
   3721 
   3722   return yystpcpy (yyres, yystr) - yyres;
   3723 }
   3724 # endif
   3725 
   3726 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
   3727    about the unexpected token YYTOKEN for the state stack whose top is
   3728    YYSSP.
   3729 
   3730    Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
   3731    not large enough to hold the message.  In that case, also set
   3732    *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
   3733    required number of bytes is too large to store.  */
   3734 static int
   3735 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
   3736                 yytype_int16 *yyssp, int yytoken)
   3737 {
   3738   YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
   3739   YYSIZE_T yysize = yysize0;
   3740   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
   3741   /* Internationalized format string. */
   3742   const char *yyformat = YY_NULLPTR;
   3743   /* Arguments of yyformat. */
   3744   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
   3745   /* Number of reported tokens (one for the "unexpected", one per
   3746      "expected"). */
   3747   int yycount = 0;
   3748 
   3749   /* There are many possibilities here to consider:
   3750      - If this state is a consistent state with a default action, then
   3751        the only way this function was invoked is if the default action
   3752        is an error action.  In that case, don't check for expected
   3753        tokens because there are none.
   3754      - The only way there can be no lookahead present (in yychar) is if
   3755        this state is a consistent state with a default action.  Thus,
   3756        detecting the absence of a lookahead is sufficient to determine
   3757        that there is no unexpected or expected token to report.  In that
   3758        case, just report a simple "syntax error".
   3759      - Don't assume there isn't a lookahead just because this state is a
   3760        consistent state with a default action.  There might have been a
   3761        previous inconsistent state, consistent state with a non-default
   3762        action, or user semantic action that manipulated yychar.
   3763      - Of course, the expected token list depends on states to have
   3764        correct lookahead information, and it depends on the parser not
   3765        to perform extra reductions after fetching a lookahead from the
   3766        scanner and before detecting a syntax error.  Thus, state merging
   3767        (from LALR or IELR) and default reductions corrupt the expected
   3768        token list.  However, the list is correct for canonical LR with
   3769        one exception: it will still contain any token that will not be
   3770        accepted due to an error action in a later state.
   3771   */
   3772   if (yytoken != YYEMPTY)
   3773     {
   3774       int yyn = yypact[*yyssp];
   3775       yyarg[yycount++] = yytname[yytoken];
   3776       if (!yypact_value_is_default (yyn))
   3777         {
   3778           /* Start YYX at -YYN if negative to avoid negative indexes in
   3779              YYCHECK.  In other words, skip the first -YYN actions for
   3780              this state because they are default actions.  */
   3781           int yyxbegin = yyn < 0 ? -yyn : 0;
   3782           /* Stay within bounds of both yycheck and yytname.  */
   3783           int yychecklim = YYLAST - yyn + 1;
   3784           int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
   3785           int yyx;
   3786 
   3787           for (yyx = yyxbegin; yyx < yyxend; ++yyx)
   3788             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
   3789                 && !yytable_value_is_error (yytable[yyx + yyn]))
   3790               {
   3791                 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
   3792                   {
   3793                     yycount = 1;
   3794                     yysize = yysize0;
   3795                     break;
   3796                   }
   3797                 yyarg[yycount++] = yytname[yyx];
   3798                 {
   3799                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
   3800                   if (! (yysize <= yysize1
   3801                          && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
   3802                     return 2;
   3803                   yysize = yysize1;
   3804                 }
   3805               }
   3806         }
   3807     }
   3808 
   3809   switch (yycount)
   3810     {
   3811 # define YYCASE_(N, S)                      \
   3812       case N:                               \
   3813         yyformat = S;                       \
   3814       break
   3815       YYCASE_(0, YY_("syntax error"));
   3816       YYCASE_(1, YY_("syntax error, unexpected %s"));
   3817       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
   3818       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
   3819       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
   3820       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
   3821 # undef YYCASE_
   3822     }
   3823 
   3824   {
   3825     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
   3826     if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
   3827       return 2;
   3828     yysize = yysize1;
   3829   }
   3830 
   3831   if (*yymsg_alloc < yysize)
   3832     {
   3833       *yymsg_alloc = 2 * yysize;
   3834       if (! (yysize <= *yymsg_alloc
   3835              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
   3836         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
   3837       return 1;
   3838     }
   3839 
   3840   /* Avoid sprintf, as that infringes on the user's name space.
   3841      Don't have undefined behavior even if the translation
   3842      produced a string with the wrong number of "%s"s.  */
   3843   {
   3844     char *yyp = *yymsg;
   3845     int yyi = 0;
   3846     while ((*yyp = *yyformat) != '\0')
   3847       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
   3848         {
   3849           yyp += yytnamerr (yyp, yyarg[yyi++]);
   3850           yyformat += 2;
   3851         }
   3852       else
   3853         {
   3854           yyp++;
   3855           yyformat++;
   3856         }
   3857   }
   3858   return 0;
   3859 }
   3860 #endif /* YYERROR_VERBOSE */
   3861 
   3862 /*-----------------------------------------------.
   3863 | Release the memory associated to this symbol.  |
   3864 `-----------------------------------------------*/
   3865 
   3866 static void
   3867 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext)
   3868 {
   3869   YYUSE (yyvaluep);
   3870   YYUSE (pParseContext);
   3871   if (!yymsg)
   3872     yymsg = "Deleting";
   3873   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
   3874 
   3875   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   3876   YYUSE (yytype);
   3877   YY_IGNORE_MAYBE_UNINITIALIZED_END
   3878 }
   3879 
   3880 
   3881 
   3882 
   3883 /*----------.
   3884 | yyparse.  |
   3885 `----------*/
   3886 
   3887 int
   3888 yyparse (glslang::TParseContext* pParseContext)
   3889 {
   3890 /* The lookahead symbol.  */
   3891 int yychar;
   3892 
   3893 
   3894 /* The semantic value of the lookahead symbol.  */
   3895 /* Default value used for initialization, for pacifying older GCCs
   3896    or non-GCC compilers.  */
   3897 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
   3898 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
   3899 
   3900     /* Number of syntax errors so far.  */
   3901     int yynerrs;
   3902 
   3903     int yystate;
   3904     /* Number of tokens to shift before error messages enabled.  */
   3905     int yyerrstatus;
   3906 
   3907     /* The stacks and their tools:
   3908        'yyss': related to states.
   3909        'yyvs': related to semantic values.
   3910 
   3911        Refer to the stacks through separate pointers, to allow yyoverflow
   3912        to reallocate them elsewhere.  */
   3913 
   3914     /* The state stack.  */
   3915     yytype_int16 yyssa[YYINITDEPTH];
   3916     yytype_int16 *yyss;
   3917     yytype_int16 *yyssp;
   3918 
   3919     /* The semantic value stack.  */
   3920     YYSTYPE yyvsa[YYINITDEPTH];
   3921     YYSTYPE *yyvs;
   3922     YYSTYPE *yyvsp;
   3923 
   3924     YYSIZE_T yystacksize;
   3925 
   3926   int yyn;
   3927   int yyresult;
   3928   /* Lookahead token as an internal (translated) token number.  */
   3929   int yytoken = 0;
   3930   /* The variables used to return semantic value and location from the
   3931      action routines.  */
   3932   YYSTYPE yyval;
   3933 
   3934 #if YYERROR_VERBOSE
   3935   /* Buffer for error messages, and its allocated size.  */
   3936   char yymsgbuf[128];
   3937   char *yymsg = yymsgbuf;
   3938   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
   3939 #endif
   3940 
   3941 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
   3942 
   3943   /* The number of symbols on the RHS of the reduced rule.
   3944      Keep to zero when no symbol should be popped.  */
   3945   int yylen = 0;
   3946 
   3947   yyssp = yyss = yyssa;
   3948   yyvsp = yyvs = yyvsa;
   3949   yystacksize = YYINITDEPTH;
   3950 
   3951   YYDPRINTF ((stderr, "Starting parse\n"));
   3952 
   3953   yystate = 0;
   3954   yyerrstatus = 0;
   3955   yynerrs = 0;
   3956   yychar = YYEMPTY; /* Cause a token to be read.  */
   3957   goto yysetstate;
   3958 
   3959 /*------------------------------------------------------------.
   3960 | yynewstate -- Push a new state, which is found in yystate.  |
   3961 `------------------------------------------------------------*/
   3962  yynewstate:
   3963   /* In all cases, when you get here, the value and location stacks
   3964      have just been pushed.  So pushing a state here evens the stacks.  */
   3965   yyssp++;
   3966 
   3967  yysetstate:
   3968   *yyssp = yystate;
   3969 
   3970   if (yyss + yystacksize - 1 <= yyssp)
   3971     {
   3972       /* Get the current used size of the three stacks, in elements.  */
   3973       YYSIZE_T yysize = yyssp - yyss + 1;
   3974 
   3975 #ifdef yyoverflow
   3976       {
   3977         /* Give user a chance to reallocate the stack.  Use copies of
   3978            these so that the &'s don't force the real ones into
   3979            memory.  */
   3980         YYSTYPE *yyvs1 = yyvs;
   3981         yytype_int16 *yyss1 = yyss;
   3982 
   3983         /* Each stack pointer address is followed by the size of the
   3984            data in use in that stack, in bytes.  This used to be a
   3985            conditional around just the two extra args, but that might
   3986            be undefined if yyoverflow is a macro.  */
   3987         yyoverflow (YY_("memory exhausted"),
   3988                     &yyss1, yysize * sizeof (*yyssp),
   3989                     &yyvs1, yysize * sizeof (*yyvsp),
   3990                     &yystacksize);
   3991 
   3992         yyss = yyss1;
   3993         yyvs = yyvs1;
   3994       }
   3995 #else /* no yyoverflow */
   3996 # ifndef YYSTACK_RELOCATE
   3997       goto yyexhaustedlab;
   3998 # else
   3999       /* Extend the stack our own way.  */
   4000       if (YYMAXDEPTH <= yystacksize)
   4001         goto yyexhaustedlab;
   4002       yystacksize *= 2;
   4003       if (YYMAXDEPTH < yystacksize)
   4004         yystacksize = YYMAXDEPTH;
   4005 
   4006       {
   4007         yytype_int16 *yyss1 = yyss;
   4008         union yyalloc *yyptr =
   4009           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
   4010         if (! yyptr)
   4011           goto yyexhaustedlab;
   4012         YYSTACK_RELOCATE (yyss_alloc, yyss);
   4013         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
   4014 #  undef YYSTACK_RELOCATE
   4015         if (yyss1 != yyssa)
   4016           YYSTACK_FREE (yyss1);
   4017       }
   4018 # endif
   4019 #endif /* no yyoverflow */
   4020 
   4021       yyssp = yyss + yysize - 1;
   4022       yyvsp = yyvs + yysize - 1;
   4023 
   4024       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
   4025                   (unsigned long int) yystacksize));
   4026 
   4027       if (yyss + yystacksize - 1 <= yyssp)
   4028         YYABORT;
   4029     }
   4030 
   4031   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
   4032 
   4033   if (yystate == YYFINAL)
   4034     YYACCEPT;
   4035 
   4036   goto yybackup;
   4037 
   4038 /*-----------.
   4039 | yybackup.  |
   4040 `-----------*/
   4041 yybackup:
   4042 
   4043   /* Do appropriate processing given the current state.  Read a
   4044      lookahead token if we need one and don't already have one.  */
   4045 
   4046   /* First try to decide what to do without reference to lookahead token.  */
   4047   yyn = yypact[yystate];
   4048   if (yypact_value_is_default (yyn))
   4049     goto yydefault;
   4050 
   4051   /* Not known => get a lookahead token if don't already have one.  */
   4052 
   4053   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
   4054   if (yychar == YYEMPTY)
   4055     {
   4056       YYDPRINTF ((stderr, "Reading a token: "));
   4057       yychar = yylex (&yylval, parseContext);
   4058     }
   4059 
   4060   if (yychar <= YYEOF)
   4061     {
   4062       yychar = yytoken = YYEOF;
   4063       YYDPRINTF ((stderr, "Now at end of input.\n"));
   4064     }
   4065   else
   4066     {
   4067       yytoken = YYTRANSLATE (yychar);
   4068       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
   4069     }
   4070 
   4071   /* If the proper action on seeing token YYTOKEN is to reduce or to
   4072      detect an error, take that action.  */
   4073   yyn += yytoken;
   4074   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
   4075     goto yydefault;
   4076   yyn = yytable[yyn];
   4077   if (yyn <= 0)
   4078     {
   4079       if (yytable_value_is_error (yyn))
   4080         goto yyerrlab;
   4081       yyn = -yyn;
   4082       goto yyreduce;
   4083     }
   4084 
   4085   /* Count tokens shifted since error; after three, turn off error
   4086      status.  */
   4087   if (yyerrstatus)
   4088     yyerrstatus--;
   4089 
   4090   /* Shift the lookahead token.  */
   4091   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
   4092 
   4093   /* Discard the shifted token.  */
   4094   yychar = YYEMPTY;
   4095 
   4096   yystate = yyn;
   4097   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   4098   *++yyvsp = yylval;
   4099   YY_IGNORE_MAYBE_UNINITIALIZED_END
   4100 
   4101   goto yynewstate;
   4102 
   4103 
   4104 /*-----------------------------------------------------------.
   4105 | yydefault -- do the default action for the current state.  |
   4106 `-----------------------------------------------------------*/
   4107 yydefault:
   4108   yyn = yydefact[yystate];
   4109   if (yyn == 0)
   4110     goto yyerrlab;
   4111   goto yyreduce;
   4112 
   4113 
   4114 /*-----------------------------.
   4115 | yyreduce -- Do a reduction.  |
   4116 `-----------------------------*/
   4117 yyreduce:
   4118   /* yyn is the number of a rule to reduce with.  */
   4119   yylen = yyr2[yyn];
   4120 
   4121   /* If YYLEN is nonzero, implement the default value of the action:
   4122      '$$ = $1'.
   4123 
   4124      Otherwise, the following line sets YYVAL to garbage.
   4125      This behavior is undocumented and Bison
   4126      users should not rely upon it.  Assigning to YYVAL
   4127      unconditionally makes the parser a bit smaller, and it avoids a
   4128      GCC warning that YYVAL may be used uninitialized.  */
   4129   yyval = yyvsp[1-yylen];
   4130 
   4131 
   4132   YY_REDUCE_PRINT (yyn);
   4133   switch (yyn)
   4134     {
   4135         case 2:
   4136 #line 294 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4137     {
   4138         (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
   4139     }
   4140 #line 4141 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4141     break;
   4142 
   4143   case 3:
   4144 #line 300 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4145     {
   4146         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   4147     }
   4148 #line 4149 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4149     break;
   4150 
   4151   case 4:
   4152 #line 303 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4153     {
   4154         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
   4155         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
   4156     }
   4157 #line 4158 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4158     break;
   4159 
   4160   case 5:
   4161 #line 307 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4162     {
   4163         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
   4164         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
   4165     }
   4166 #line 4167 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4167     break;
   4168 
   4169   case 6:
   4170 #line 311 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4171     {
   4172         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
   4173     }
   4174 #line 4175 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4175     break;
   4176 
   4177   case 7:
   4178 #line 314 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4179     {
   4180         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
   4181         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
   4182     }
   4183 #line 4184 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4184     break;
   4185 
   4186   case 8:
   4187 #line 318 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4188     {
   4189         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
   4190         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
   4191     }
   4192 #line 4193 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4193     break;
   4194 
   4195   case 9:
   4196 #line 322 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4197     {
   4198         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
   4199         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
   4200     }
   4201 #line 4202 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4202     break;
   4203 
   4204   case 10:
   4205 #line 326 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4206     {
   4207         parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal");
   4208         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
   4209     }
   4210 #line 4211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4211     break;
   4212 
   4213   case 11:
   4214 #line 330 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4215     {
   4216         parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal");
   4217         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
   4218     }
   4219 #line 4220 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4220     break;
   4221 
   4222   case 12:
   4223 #line 334 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4224     {
   4225         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
   4226     }
   4227 #line 4228 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4228     break;
   4229 
   4230   case 13:
   4231 #line 337 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4232     {
   4233         parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
   4234         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
   4235     }
   4236 #line 4237 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4237     break;
   4238 
   4239   case 14:
   4240 #line 341 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4241     {
   4242         parseContext.float16Check((yyvsp[0].lex).loc, "half float literal");
   4243         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true);
   4244     }
   4245 #line 4246 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4246     break;
   4247 
   4248   case 15:
   4249 #line 345 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4250     {
   4251         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
   4252     }
   4253 #line 4254 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4254     break;
   4255 
   4256   case 16:
   4257 #line 348 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4258     {
   4259         (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
   4260         if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
   4261             (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
   4262     }
   4263 #line 4264 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4264     break;
   4265 
   4266   case 17:
   4267 #line 356 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4268     {
   4269         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   4270     }
   4271 #line 4272 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4272     break;
   4273 
   4274   case 18:
   4275 #line 359 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4276     {
   4277         (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
   4278     }
   4279 #line 4280 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4280     break;
   4281 
   4282   case 19:
   4283 #line 362 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4284     {
   4285         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   4286     }
   4287 #line 4288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4288     break;
   4289 
   4290   case 20:
   4291 #line 365 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4292     {
   4293         (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
   4294     }
   4295 #line 4296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4296     break;
   4297 
   4298   case 21:
   4299 #line 368 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4300     {
   4301         parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
   4302         parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
   4303         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
   4304     }
   4305 #line 4306 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4306     break;
   4307 
   4308   case 22:
   4309 #line 373 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4310     {
   4311         parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
   4312         parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
   4313         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
   4314     }
   4315 #line 4316 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4316     break;
   4317 
   4318   case 23:
   4319 #line 381 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4320     {
   4321         parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
   4322         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   4323     }
   4324 #line 4325 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4325     break;
   4326 
   4327   case 24:
   4328 #line 388 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4329     {
   4330         (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
   4331         delete (yyvsp[0].interm).function;
   4332     }
   4333 #line 4334 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4334     break;
   4335 
   4336   case 25:
   4337 #line 395 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4338     {
   4339         (yyval.interm) = (yyvsp[0].interm);
   4340     }
   4341 #line 4342 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4342     break;
   4343 
   4344   case 26:
   4345 #line 401 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4346     {
   4347         (yyval.interm) = (yyvsp[-1].interm);
   4348         (yyval.interm).loc = (yyvsp[0].lex).loc;
   4349     }
   4350 #line 4351 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4351     break;
   4352 
   4353   case 27:
   4354 #line 405 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4355     {
   4356         (yyval.interm) = (yyvsp[-1].interm);
   4357         (yyval.interm).loc = (yyvsp[0].lex).loc;
   4358     }
   4359 #line 4360 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4360     break;
   4361 
   4362   case 28:
   4363 #line 412 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4364     {
   4365         (yyval.interm) = (yyvsp[-1].interm);
   4366     }
   4367 #line 4368 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4368     break;
   4369 
   4370   case 29:
   4371 #line 415 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4372     {
   4373         (yyval.interm) = (yyvsp[0].interm);
   4374     }
   4375 #line 4376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4376     break;
   4377 
   4378   case 30:
   4379 #line 421 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4380     {
   4381         TParameter param = { 0, new TType };
   4382         param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
   4383         (yyvsp[-1].interm).function->addParameter(param);
   4384         (yyval.interm).function = (yyvsp[-1].interm).function;
   4385         (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
   4386     }
   4387 #line 4388 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4388     break;
   4389 
   4390   case 31:
   4391 #line 428 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4392     {
   4393         TParameter param = { 0, new TType };
   4394         param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
   4395         (yyvsp[-2].interm).function->addParameter(param);
   4396         (yyval.interm).function = (yyvsp[-2].interm).function;
   4397         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
   4398     }
   4399 #line 4400 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4400     break;
   4401 
   4402   case 32:
   4403 #line 438 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4404     {
   4405         (yyval.interm) = (yyvsp[-1].interm);
   4406     }
   4407 #line 4408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4408     break;
   4409 
   4410   case 33:
   4411 #line 446 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4412     {
   4413         // Constructor
   4414         (yyval.interm).intermNode = 0;
   4415         (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
   4416     }
   4417 #line 4418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4418     break;
   4419 
   4420   case 34:
   4421 #line 451 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4422     {
   4423         //
   4424         // Should be a method or subroutine call, but we haven't recognized the arguments yet.
   4425         //
   4426         (yyval.interm).function = 0;
   4427         (yyval.interm).intermNode = 0;
   4428 
   4429         TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode();
   4430         if (method) {
   4431             (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength);
   4432             (yyval.interm).intermNode = method->getObject();
   4433         } else {
   4434             TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode();
   4435             if (symbol) {
   4436                 parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName());
   4437                 TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid));
   4438                 (yyval.interm).function = function;
   4439             } else
   4440                 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", "");
   4441         }
   4442 
   4443         if ((yyval.interm).function == 0) {
   4444             // error recover
   4445             TString empty("");
   4446             (yyval.interm).function = new TFunction(&empty, TType(EbtVoid), EOpNull);
   4447         }
   4448     }
   4449 #line 4450 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4450     break;
   4451 
   4452   case 35:
   4453 #line 478 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4454     {
   4455         // Constructor
   4456         (yyval.interm).intermNode = 0;
   4457         (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
   4458     }
   4459 #line 4460 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4460     break;
   4461 
   4462   case 36:
   4463 #line 486 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4464     {
   4465         parseContext.variableCheck((yyvsp[0].interm.intermTypedNode));
   4466         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   4467         if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
   4468             parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
   4469     }
   4470 #line 4471 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4471     break;
   4472 
   4473   case 37:
   4474 #line 492 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4475     {
   4476         parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode));
   4477         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode));
   4478     }
   4479 #line 4480 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4480     break;
   4481 
   4482   case 38:
   4483 #line 496 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4484     {
   4485         parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode));
   4486         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode));
   4487     }
   4488 #line 4489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4489     break;
   4490 
   4491   case 39:
   4492 #line 500 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4493     {
   4494         if ((yyvsp[-1].interm).op != EOpNull) {
   4495             char errorOp[2] = {0, 0};
   4496             switch((yyvsp[-1].interm).op) {
   4497             case EOpNegative:   errorOp[0] = '-'; break;
   4498             case EOpLogicalNot: errorOp[0] = '!'; break;
   4499             case EOpBitwiseNot: errorOp[0] = '~'; break;
   4500             default: break; // some compilers want this
   4501             }
   4502             (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode));
   4503         } else {
   4504             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   4505             if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
   4506                 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
   4507         }
   4508     }
   4509 #line 4510 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4510     break;
   4511 
   4512   case 40:
   4513 #line 520 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4514     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
   4515 #line 4516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4516     break;
   4517 
   4518   case 41:
   4519 #line 521 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4520     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
   4521 #line 4522 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4522     break;
   4523 
   4524   case 42:
   4525 #line 522 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4526     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
   4527 #line 4528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4528     break;
   4529 
   4530   case 43:
   4531 #line 523 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4532     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
   4533               parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
   4534 #line 4535 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4535     break;
   4536 
   4537   case 44:
   4538 #line 529 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4539     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   4540 #line 4541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4541     break;
   4542 
   4543   case 45:
   4544 #line 530 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4545     {
   4546         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4547         if ((yyval.interm.intermTypedNode) == 0)
   4548             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   4549     }
   4550 #line 4551 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4551     break;
   4552 
   4553   case 46:
   4554 #line 535 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4555     {
   4556         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4557         if ((yyval.interm.intermTypedNode) == 0)
   4558             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   4559     }
   4560 #line 4561 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4561     break;
   4562 
   4563   case 47:
   4564 #line 540 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4565     {
   4566         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%");
   4567         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4568         if ((yyval.interm.intermTypedNode) == 0)
   4569             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   4570     }
   4571 #line 4572 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4572     break;
   4573 
   4574   case 48:
   4575 #line 549 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4576     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   4577 #line 4578 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4578     break;
   4579 
   4580   case 49:
   4581 #line 550 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4582     {
   4583         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4584         if ((yyval.interm.intermTypedNode) == 0)
   4585             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   4586     }
   4587 #line 4588 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4588     break;
   4589 
   4590   case 50:
   4591 #line 555 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4592     {
   4593         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4594         if ((yyval.interm.intermTypedNode) == 0)
   4595             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   4596     }
   4597 #line 4598 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4598     break;
   4599 
   4600   case 51:
   4601 #line 563 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4602     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   4603 #line 4604 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4604     break;
   4605 
   4606   case 52:
   4607 #line 564 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4608     {
   4609         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left");
   4610         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4611         if ((yyval.interm.intermTypedNode) == 0)
   4612             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   4613     }
   4614 #line 4615 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4615     break;
   4616 
   4617   case 53:
   4618 #line 570 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4619     {
   4620         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right");
   4621         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4622         if ((yyval.interm.intermTypedNode) == 0)
   4623             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   4624     }
   4625 #line 4626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4626     break;
   4627 
   4628   case 54:
   4629 #line 579 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4630     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   4631 #line 4632 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4632     break;
   4633 
   4634   case 55:
   4635 #line 580 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4636     {
   4637         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4638         if ((yyval.interm.intermTypedNode) == 0)
   4639             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
   4640     }
   4641 #line 4642 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4642     break;
   4643 
   4644   case 56:
   4645 #line 585 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4646     {
   4647         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4648         if ((yyval.interm.intermTypedNode) == 0)
   4649             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
   4650     }
   4651 #line 4652 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4652     break;
   4653 
   4654   case 57:
   4655 #line 590 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4656     {
   4657         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4658         if ((yyval.interm.intermTypedNode) == 0)
   4659             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
   4660     }
   4661 #line 4662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4662     break;
   4663 
   4664   case 58:
   4665 #line 595 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4666     {
   4667         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4668         if ((yyval.interm.intermTypedNode) == 0)
   4669             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
   4670     }
   4671 #line 4672 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4672     break;
   4673 
   4674   case 59:
   4675 #line 603 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4676     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   4677 #line 4678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4678     break;
   4679 
   4680   case 60:
   4681 #line 604 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4682     {
   4683         parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
   4684         parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
   4685         parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
   4686         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4687         if ((yyval.interm.intermTypedNode) == 0)
   4688             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
   4689     }
   4690 #line 4691 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4691     break;
   4692 
   4693   case 61:
   4694 #line 612 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4695     {
   4696         parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
   4697         parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
   4698         parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
   4699         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4700         if ((yyval.interm.intermTypedNode) == 0)
   4701             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
   4702     }
   4703 #line 4704 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4704     break;
   4705 
   4706   case 62:
   4707 #line 623 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4708     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   4709 #line 4710 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4710     break;
   4711 
   4712   case 63:
   4713 #line 624 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4714     {
   4715         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and");
   4716         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4717         if ((yyval.interm.intermTypedNode) == 0)
   4718             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   4719     }
   4720 #line 4721 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4721     break;
   4722 
   4723   case 64:
   4724 #line 633 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4725     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   4726 #line 4727 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4727     break;
   4728 
   4729   case 65:
   4730 #line 634 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4731     {
   4732         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or");
   4733         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4734         if ((yyval.interm.intermTypedNode) == 0)
   4735             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   4736     }
   4737 #line 4738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4738     break;
   4739 
   4740   case 66:
   4741 #line 643 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4742     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   4743 #line 4744 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4744     break;
   4745 
   4746   case 67:
   4747 #line 644 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4748     {
   4749         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or");
   4750         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4751         if ((yyval.interm.intermTypedNode) == 0)
   4752             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   4753     }
   4754 #line 4755 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4755     break;
   4756 
   4757   case 68:
   4758 #line 653 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4759     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   4760 #line 4761 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4761     break;
   4762 
   4763   case 69:
   4764 #line 654 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4765     {
   4766         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4767         if ((yyval.interm.intermTypedNode) == 0)
   4768             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
   4769     }
   4770 #line 4771 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4771     break;
   4772 
   4773   case 70:
   4774 #line 662 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4775     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   4776 #line 4777 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4777     break;
   4778 
   4779   case 71:
   4780 #line 663 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4781     {
   4782         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4783         if ((yyval.interm.intermTypedNode) == 0)
   4784             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
   4785     }
   4786 #line 4787 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4787     break;
   4788 
   4789   case 72:
   4790 #line 671 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4791     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   4792 #line 4793 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4793     break;
   4794 
   4795   case 73:
   4796 #line 672 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4797     {
   4798         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4799         if ((yyval.interm.intermTypedNode) == 0)
   4800             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
   4801     }
   4802 #line 4803 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4803     break;
   4804 
   4805   case 74:
   4806 #line 680 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4807     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   4808 #line 4809 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4809     break;
   4810 
   4811   case 75:
   4812 #line 681 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4813     {
   4814         ++parseContext.controlFlowNestingLevel;
   4815     }
   4816 #line 4817 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4817     break;
   4818 
   4819   case 76:
   4820 #line 684 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4821     {
   4822         --parseContext.controlFlowNestingLevel;
   4823         parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
   4824         parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode));
   4825         parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode));
   4826         parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode));
   4827         (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc);
   4828         if ((yyval.interm.intermTypedNode) == 0) {
   4829             parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
   4830             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   4831         }
   4832     }
   4833 #line 4834 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4834     break;
   4835 
   4836   case 77:
   4837 #line 699 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4838     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   4839 #line 4840 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4840     break;
   4841 
   4842   case 78:
   4843 #line 700 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4844     {
   4845         parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment");
   4846         parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
   4847         parseContext.storage16BitAssignmentCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
   4848         parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
   4849         parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode));
   4850         parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode));
   4851         (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].interm).loc);
   4852         if ((yyval.interm.intermTypedNode) == 0) {
   4853             parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
   4854             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   4855         }
   4856     }
   4857 #line 4858 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4858     break;
   4859 
   4860   case 79:
   4861 #line 716 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4862     {
   4863         (yyval.interm).loc = (yyvsp[0].lex).loc;
   4864         (yyval.interm).op = EOpAssign;
   4865     }
   4866 #line 4867 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4867     break;
   4868 
   4869   case 80:
   4870 #line 720 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4871     {
   4872         (yyval.interm).loc = (yyvsp[0].lex).loc;
   4873         (yyval.interm).op = EOpMulAssign;
   4874     }
   4875 #line 4876 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4876     break;
   4877 
   4878   case 81:
   4879 #line 724 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4880     {
   4881         (yyval.interm).loc = (yyvsp[0].lex).loc;
   4882         (yyval.interm).op = EOpDivAssign;
   4883     }
   4884 #line 4885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4885     break;
   4886 
   4887   case 82:
   4888 #line 728 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4889     {
   4890         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
   4891         (yyval.interm).loc = (yyvsp[0].lex).loc;
   4892         (yyval.interm).op = EOpModAssign;
   4893     }
   4894 #line 4895 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4895     break;
   4896 
   4897   case 83:
   4898 #line 733 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4899     {
   4900         (yyval.interm).loc = (yyvsp[0].lex).loc;
   4901         (yyval.interm).op = EOpAddAssign;
   4902     }
   4903 #line 4904 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4904     break;
   4905 
   4906   case 84:
   4907 #line 737 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4908     {
   4909         (yyval.interm).loc = (yyvsp[0].lex).loc;
   4910         (yyval.interm).op = EOpSubAssign;
   4911     }
   4912 #line 4913 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4913     break;
   4914 
   4915   case 85:
   4916 #line 741 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4917     {
   4918         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
   4919         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
   4920     }
   4921 #line 4922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4922     break;
   4923 
   4924   case 86:
   4925 #line 745 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4926     {
   4927         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
   4928         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
   4929     }
   4930 #line 4931 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4931     break;
   4932 
   4933   case 87:
   4934 #line 749 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4935     {
   4936         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
   4937         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
   4938     }
   4939 #line 4940 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4940     break;
   4941 
   4942   case 88:
   4943 #line 753 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4944     {
   4945         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
   4946         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
   4947     }
   4948 #line 4949 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4949     break;
   4950 
   4951   case 89:
   4952 #line 757 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4953     {
   4954         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
   4955         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
   4956     }
   4957 #line 4958 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4958     break;
   4959 
   4960   case 90:
   4961 #line 764 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4962     {
   4963         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   4964     }
   4965 #line 4966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4966     break;
   4967 
   4968   case 91:
   4969 #line 767 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4970     {
   4971         parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
   4972         (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
   4973         if ((yyval.interm.intermTypedNode) == 0) {
   4974             parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
   4975             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   4976         }
   4977     }
   4978 #line 4979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4979     break;
   4980 
   4981   case 92:
   4982 #line 778 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4983     {
   4984         parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
   4985         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   4986     }
   4987 #line 4988 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4988     break;
   4989 
   4990   case 93:
   4991 #line 785 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4992     {
   4993         parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
   4994         (yyval.interm.intermNode) = 0;
   4995         // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
   4996     }
   4997 #line 4998 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4998     break;
   4999 
   5000   case 94:
   5001 #line 790 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5002     {
   5003         if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate())
   5004             (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
   5005         (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
   5006     }
   5007 #line 5008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5008     break;
   5009 
   5010   case 95:
   5011 #line 795 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5012     {
   5013         parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
   5014 
   5015         // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
   5016         parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]);
   5017         parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
   5018         (yyval.interm.intermNode) = 0;
   5019     }
   5020 #line 5021 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5021     break;
   5022 
   5023   case 96:
   5024 #line 803 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5025     {
   5026         parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
   5027         (yyval.interm.intermNode) = 0;
   5028     }
   5029 #line 5030 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5030     break;
   5031 
   5032   case 97:
   5033 #line 807 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5034     {
   5035         parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
   5036         (yyval.interm.intermNode) = 0;
   5037     }
   5038 #line 5039 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5039     break;
   5040 
   5041   case 98:
   5042 #line 811 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5043     {
   5044         parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
   5045         (yyval.interm.intermNode) = 0;
   5046     }
   5047 #line 5048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5048     break;
   5049 
   5050   case 99:
   5051 #line 815 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5052     {
   5053         parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
   5054         parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
   5055         (yyval.interm.intermNode) = 0;
   5056     }
   5057 #line 5058 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5058     break;
   5059 
   5060   case 100:
   5061 #line 820 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5062     {
   5063         parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
   5064         parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
   5065         (yyval.interm.intermNode) = 0;
   5066     }
   5067 #line 5068 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5068     break;
   5069 
   5070   case 101:
   5071 #line 825 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5072     {
   5073         parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
   5074         (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string);
   5075         parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
   5076         (yyval.interm.intermNode) = 0;
   5077     }
   5078 #line 5079 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5079     break;
   5080 
   5081   case 102:
   5082 #line 834 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5083     { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
   5084 #line 5085 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5085     break;
   5086 
   5087   case 103:
   5088 #line 834 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5089     {
   5090         --parseContext.structNestingLevel;
   5091         parseContext.blockName = (yyvsp[-4].lex).string;
   5092         parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier);
   5093         parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers);
   5094         parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier;
   5095         (yyval.interm).loc = (yyvsp[-5].interm.type).loc;
   5096         (yyval.interm).typeList = (yyvsp[-1].interm.typeList);
   5097     }
   5098 #line 5099 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5099     break;
   5100 
   5101   case 104:
   5102 #line 845 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5103     {
   5104         (yyval.interm.identifierList) = new TIdentifierList;
   5105         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
   5106     }
   5107 #line 5108 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5108     break;
   5109 
   5110   case 105:
   5111 #line 849 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5112     {
   5113         (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
   5114         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
   5115     }
   5116 #line 5117 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5117     break;
   5118 
   5119   case 106:
   5120 #line 856 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5121     {
   5122         (yyval.interm).function = (yyvsp[-1].interm.function);
   5123         (yyval.interm).loc = (yyvsp[0].lex).loc;
   5124     }
   5125 #line 5126 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5126     break;
   5127 
   5128   case 107:
   5129 #line 863 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5130     {
   5131         (yyval.interm.function) = (yyvsp[0].interm.function);
   5132     }
   5133 #line 5134 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5134     break;
   5135 
   5136   case 108:
   5137 #line 866 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5138     {
   5139         (yyval.interm.function) = (yyvsp[0].interm.function);
   5140     }
   5141 #line 5142 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5142     break;
   5143 
   5144   case 109:
   5145 #line 873 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5146     {
   5147         // Add the parameter
   5148         (yyval.interm.function) = (yyvsp[-1].interm.function);
   5149         if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid)
   5150             (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param);
   5151         else
   5152             delete (yyvsp[0].interm).param.type;
   5153     }
   5154 #line 5155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5155     break;
   5156 
   5157   case 110:
   5158 #line 881 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5159     {
   5160         //
   5161         // Only first parameter of one-parameter functions can be void
   5162         // The check for named parameters not being void is done in parameter_declarator
   5163         //
   5164         if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) {
   5165             //
   5166             // This parameter > first is void
   5167             //
   5168             parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", "");
   5169             delete (yyvsp[0].interm).param.type;
   5170         } else {
   5171             // Add the parameter
   5172             (yyval.interm.function) = (yyvsp[-2].interm.function);
   5173             (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
   5174         }
   5175     }
   5176 #line 5177 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5177     break;
   5178 
   5179   case 111:
   5180 #line 901 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5181     {
   5182         if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
   5183             parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
   5184                                GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), "");
   5185         }
   5186         if ((yyvsp[-2].interm.type).arraySizes)
   5187             parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
   5188 
   5189         // Add the function as a prototype after parsing it (we do not support recursion)
   5190         TFunction *function;
   5191         TType type((yyvsp[-2].interm.type));
   5192 
   5193         // Potentially rename shader entry point function.  No-op most of the time.
   5194         parseContext.renameShaderFunction((yyvsp[-1].lex).string);
   5195 
   5196         // Make the function
   5197         function = new TFunction((yyvsp[-1].lex).string, type);
   5198         (yyval.interm.function) = function;
   5199     }
   5200 #line 5201 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5201     break;
   5202 
   5203   case 112:
   5204 #line 924 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5205     {
   5206         if ((yyvsp[-1].interm.type).arraySizes) {
   5207             parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
   5208             parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
   5209             parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes);
   5210         }
   5211         if ((yyvsp[-1].interm.type).basicType == EbtVoid) {
   5212             parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), "");
   5213         }
   5214         parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string);
   5215 
   5216         TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))};
   5217         (yyval.interm).loc = (yyvsp[0].lex).loc;
   5218         (yyval.interm).param = param;
   5219     }
   5220 #line 5221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5221     break;
   5222 
   5223   case 113:
   5224 #line 939 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5225     {
   5226         if ((yyvsp[-2].interm.type).arraySizes) {
   5227             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
   5228             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
   5229             parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
   5230         }
   5231         TType* type = new TType((yyvsp[-2].interm.type));
   5232         type->transferArraySizes((yyvsp[0].interm).arraySizes);
   5233         type->copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
   5234 
   5235         parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, type->getArraySizes());
   5236         parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes);
   5237         parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string);
   5238 
   5239         TParameter param = { (yyvsp[-1].lex).string, type };
   5240 
   5241         (yyval.interm).loc = (yyvsp[-1].lex).loc;
   5242         (yyval.interm).param = param;
   5243     }
   5244 #line 5245 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5245     break;
   5246 
   5247   case 114:
   5248 #line 964 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5249     {
   5250         (yyval.interm) = (yyvsp[0].interm);
   5251         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
   5252             (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
   5253         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
   5254 
   5255         parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
   5256         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
   5257         parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
   5258 
   5259     }
   5260 #line 5261 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5261     break;
   5262 
   5263   case 115:
   5264 #line 975 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5265     {
   5266         (yyval.interm) = (yyvsp[0].interm);
   5267 
   5268         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
   5269         parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
   5270         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
   5271     }
   5272 #line 5273 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5273     break;
   5274 
   5275   case 116:
   5276 #line 985 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5277     {
   5278         (yyval.interm) = (yyvsp[0].interm);
   5279         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
   5280             (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
   5281         parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
   5282 
   5283         parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
   5284         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
   5285         parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
   5286     }
   5287 #line 5288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5288     break;
   5289 
   5290   case 117:
   5291 #line 995 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5292     {
   5293         (yyval.interm) = (yyvsp[0].interm);
   5294 
   5295         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
   5296         parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
   5297         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
   5298     }
   5299 #line 5300 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5300     break;
   5301 
   5302   case 118:
   5303 #line 1005 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5304     {
   5305         TParameter param = { 0, new TType((yyvsp[0].interm.type)) };
   5306         (yyval.interm).param = param;
   5307         if ((yyvsp[0].interm.type).arraySizes)
   5308             parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
   5309     }
   5310 #line 5311 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5311     break;
   5312 
   5313   case 119:
   5314 #line 1014 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5315     {
   5316         (yyval.interm) = (yyvsp[0].interm);
   5317     }
   5318 #line 5319 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5319     break;
   5320 
   5321   case 120:
   5322 #line 1017 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5323     {
   5324         (yyval.interm) = (yyvsp[-2].interm);
   5325         parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
   5326     }
   5327 #line 5328 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5328     break;
   5329 
   5330   case 121:
   5331 #line 1021 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5332     {
   5333         (yyval.interm) = (yyvsp[-3].interm);
   5334         parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
   5335     }
   5336 #line 5337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5337     break;
   5338 
   5339   case 122:
   5340 #line 1025 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5341     {
   5342         (yyval.interm).type = (yyvsp[-5].interm).type;
   5343         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
   5344         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
   5345     }
   5346 #line 5347 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5347     break;
   5348 
   5349   case 123:
   5350 #line 1030 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5351     {
   5352         (yyval.interm).type = (yyvsp[-4].interm).type;
   5353         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
   5354         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
   5355     }
   5356 #line 5357 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5357     break;
   5358 
   5359   case 124:
   5360 #line 1038 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5361     {
   5362         (yyval.interm).type = (yyvsp[0].interm.type);
   5363         (yyval.interm).intermNode = 0;
   5364         parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
   5365     }
   5366 #line 5367 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5367     break;
   5368 
   5369   case 125:
   5370 #line 1043 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5371     {
   5372         (yyval.interm).type = (yyvsp[-1].interm.type);
   5373         (yyval.interm).intermNode = 0;
   5374         parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
   5375     }
   5376 #line 5377 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5377     break;
   5378 
   5379   case 126:
   5380 #line 1048 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5381     {
   5382         (yyval.interm).type = (yyvsp[-2].interm.type);
   5383         (yyval.interm).intermNode = 0;
   5384         parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
   5385     }
   5386 #line 5387 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5387     break;
   5388 
   5389   case 127:
   5390 #line 1053 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5391     {
   5392         (yyval.interm).type = (yyvsp[-4].interm.type);
   5393         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
   5394         (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
   5395     }
   5396 #line 5397 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5397     break;
   5398 
   5399   case 128:
   5400 #line 1058 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5401     {
   5402         (yyval.interm).type = (yyvsp[-3].interm.type);
   5403         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
   5404         (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
   5405     }
   5406 #line 5407 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5407     break;
   5408 
   5409   case 129:
   5410 #line 1067 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5411     {
   5412         (yyval.interm.type) = (yyvsp[0].interm.type);
   5413 
   5414         parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type));
   5415         if ((yyvsp[0].interm.type).arraySizes) {
   5416             parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
   5417             parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
   5418         }
   5419 
   5420         parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
   5421     }
   5422 #line 5423 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5423     break;
   5424 
   5425   case 130:
   5426 #line 1078 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5427     {
   5428         parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
   5429         parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
   5430 
   5431         if ((yyvsp[0].interm.type).arraySizes) {
   5432             parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
   5433             parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
   5434         }
   5435 
   5436         if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier))
   5437             (yyvsp[0].interm.type).arraySizes = nullptr;
   5438 
   5439         parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
   5440         (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers);
   5441         parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true);
   5442         parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier);
   5443 
   5444         (yyval.interm.type) = (yyvsp[0].interm.type);
   5445 
   5446         if (! (yyval.interm.type).qualifier.isInterpolation() &&
   5447             ((parseContext.language == EShLangVertex   && (yyval.interm.type).qualifier.storage == EvqVaryingOut) ||
   5448              (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
   5449             (yyval.interm.type).qualifier.smooth = true;
   5450     }
   5451 #line 5452 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5452     break;
   5453 
   5454   case 131:
   5455 #line 1105 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5456     {
   5457         parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
   5458         parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
   5459         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5460         (yyval.interm.type).qualifier.invariant = true;
   5461     }
   5462 #line 5463 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5463     break;
   5464 
   5465   case 132:
   5466 #line 1114 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5467     {
   5468         parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
   5469         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
   5470         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth");
   5471         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5472         (yyval.interm.type).qualifier.smooth = true;
   5473     }
   5474 #line 5475 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5475     break;
   5476 
   5477   case 133:
   5478 #line 1121 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5479     {
   5480         parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
   5481         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
   5482         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat");
   5483         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5484         (yyval.interm.type).qualifier.flat = true;
   5485     }
   5486 #line 5487 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5487     break;
   5488 
   5489   case 134:
   5490 #line 1128 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5491     {
   5492         parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
   5493 #ifdef NV_EXTENSIONS
   5494         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
   5495 #else
   5496         parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "noperspective");
   5497 #endif
   5498         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective");
   5499         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5500         (yyval.interm.type).qualifier.nopersp = true;
   5501     }
   5502 #line 5503 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5503     break;
   5504 
   5505   case 135:
   5506 #line 1139 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5507     {
   5508 #ifdef AMD_EXTENSIONS
   5509         parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD");
   5510         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
   5511         parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
   5512         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5513         (yyval.interm.type).qualifier.explicitInterp = true;
   5514 #endif
   5515     }
   5516 #line 5517 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5517     break;
   5518 
   5519   case 136:
   5520 #line 1148 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5521     {
   5522 #ifdef NV_EXTENSIONS
   5523         parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV");
   5524         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
   5525         parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
   5526         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
   5527         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5528         (yyval.interm.type).qualifier.pervertexNV = true;
   5529 #endif
   5530     }
   5531 #line 5532 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5532     break;
   5533 
   5534   case 137:
   5535 #line 1158 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5536     {
   5537 #ifdef NV_EXTENSIONS
   5538         // No need for profile version or extension check. Shader stage already checks both.
   5539         parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV");
   5540         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshNVMask), "perprimitiveNV");
   5541         // Fragment shader stage doesn't check for extension. So we explicitly add below extension check.
   5542         if (parseContext.language == EShLangFragment)
   5543             parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_NV_mesh_shader, "perprimitiveNV");
   5544         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5545         (yyval.interm.type).qualifier.perPrimitiveNV = true;
   5546 #endif
   5547     }
   5548 #line 5549 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5549     break;
   5550 
   5551   case 138:
   5552 #line 1170 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5553     {
   5554 #ifdef NV_EXTENSIONS
   5555         // No need for profile version or extension check. Shader stage already checks both.
   5556         parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV");
   5557         parseContext.requireStage((yyvsp[0].lex).loc, EShLangMeshNV, "perviewNV");
   5558         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5559         (yyval.interm.type).qualifier.perViewNV = true;
   5560 #endif
   5561     }
   5562 #line 5563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5563     break;
   5564 
   5565   case 139:
   5566 #line 1179 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5567     {
   5568 #ifdef NV_EXTENSIONS
   5569         // No need for profile version or extension check. Shader stage already checks both.
   5570         parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV");
   5571         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "taskNV");
   5572         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5573         (yyval.interm.type).qualifier.perTaskNV = true;
   5574 #endif
   5575     }
   5576 #line 5577 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5577     break;
   5578 
   5579   case 140:
   5580 #line 1191 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5581     {
   5582         (yyval.interm.type) = (yyvsp[-1].interm.type);
   5583     }
   5584 #line 5585 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5585     break;
   5586 
   5587   case 141:
   5588 #line 1197 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5589     {
   5590         (yyval.interm.type) = (yyvsp[0].interm.type);
   5591     }
   5592 #line 5593 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5593     break;
   5594 
   5595   case 142:
   5596 #line 1200 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5597     {
   5598         (yyval.interm.type) = (yyvsp[-2].interm.type);
   5599         (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
   5600         parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
   5601     }
   5602 #line 5603 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5603     break;
   5604 
   5605   case 143:
   5606 #line 1207 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5607     {
   5608         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5609         parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
   5610     }
   5611 #line 5612 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5612     break;
   5613 
   5614   case 144:
   5615 #line 1211 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5616     {
   5617         (yyval.interm.type).init((yyvsp[-2].lex).loc);
   5618         parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode));
   5619     }
   5620 #line 5621 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5621     break;
   5622 
   5623   case 145:
   5624 #line 1215 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5625     { // because "shared" is both an identifier and a keyword
   5626         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5627         TString strShared("shared");
   5628         parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
   5629     }
   5630 #line 5631 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5631     break;
   5632 
   5633   case 146:
   5634 #line 1223 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5635     {
   5636         parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
   5637         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
   5638         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5639         (yyval.interm.type).qualifier.noContraction = true;
   5640     }
   5641 #line 5642 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5642     break;
   5643 
   5644   case 147:
   5645 #line 1232 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5646     {
   5647         (yyval.interm.type) = (yyvsp[0].interm.type);
   5648     }
   5649 #line 5650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5650     break;
   5651 
   5652   case 148:
   5653 #line 1235 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5654     {
   5655         (yyval.interm.type) = (yyvsp[-1].interm.type);
   5656         if ((yyval.interm.type).basicType == EbtVoid)
   5657             (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType;
   5658 
   5659         (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
   5660         parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
   5661     }
   5662 #line 5663 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5663     break;
   5664 
   5665   case 149:
   5666 #line 1246 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5667     {
   5668         (yyval.interm.type) = (yyvsp[0].interm.type);
   5669     }
   5670 #line 5671 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5671     break;
   5672 
   5673   case 150:
   5674 #line 1249 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5675     {
   5676         (yyval.interm.type) = (yyvsp[0].interm.type);
   5677     }
   5678 #line 5679 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5679     break;
   5680 
   5681   case 151:
   5682 #line 1252 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5683     {
   5684         parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
   5685         (yyval.interm.type) = (yyvsp[0].interm.type);
   5686     }
   5687 #line 5688 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5688     break;
   5689 
   5690   case 152:
   5691 #line 1256 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5692     {
   5693         // allow inheritance of storage qualifier from block declaration
   5694         (yyval.interm.type) = (yyvsp[0].interm.type);
   5695     }
   5696 #line 5697 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5697     break;
   5698 
   5699   case 153:
   5700 #line 1260 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5701     {
   5702         // allow inheritance of storage qualifier from block declaration
   5703         (yyval.interm.type) = (yyvsp[0].interm.type);
   5704     }
   5705 #line 5706 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5706     break;
   5707 
   5708   case 154:
   5709 #line 1264 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5710     {
   5711         // allow inheritance of storage qualifier from block declaration
   5712         (yyval.interm.type) = (yyvsp[0].interm.type);
   5713     }
   5714 #line 5715 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5715     break;
   5716 
   5717   case 155:
   5718 #line 1268 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5719     {
   5720         (yyval.interm.type) = (yyvsp[0].interm.type);
   5721     }
   5722 #line 5723 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5723     break;
   5724 
   5725   case 156:
   5726 #line 1274 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5727     {
   5728         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5729         (yyval.interm.type).qualifier.storage = EvqConst;  // will later turn into EvqConstReadOnly, if the initializer is not constant
   5730     }
   5731 #line 5732 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5732     break;
   5733 
   5734   case 157:
   5735 #line 1278 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5736     {
   5737         parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
   5738         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
   5739         parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute");
   5740         parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute");
   5741         parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute");
   5742 
   5743         parseContext.globalCheck((yyvsp[0].lex).loc, "attribute");
   5744 
   5745         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5746         (yyval.interm.type).qualifier.storage = EvqVaryingIn;
   5747     }
   5748 #line 5749 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5749     break;
   5750 
   5751   case 158:
   5752 #line 1290 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5753     {
   5754         parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
   5755         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
   5756         parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying");
   5757         parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying");
   5758 
   5759         parseContext.globalCheck((yyvsp[0].lex).loc, "varying");
   5760 
   5761         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5762         if (parseContext.language == EShLangVertex)
   5763             (yyval.interm.type).qualifier.storage = EvqVaryingOut;
   5764         else
   5765             (yyval.interm.type).qualifier.storage = EvqVaryingIn;
   5766     }
   5767 #line 5768 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5768     break;
   5769 
   5770   case 159:
   5771 #line 1304 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5772     {
   5773         parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
   5774         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5775         (yyval.interm.type).qualifier.storage = EvqInOut;
   5776     }
   5777 #line 5778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5778     break;
   5779 
   5780   case 160:
   5781 #line 1309 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5782     {
   5783         parseContext.globalCheck((yyvsp[0].lex).loc, "in");
   5784         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5785         // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
   5786         (yyval.interm.type).qualifier.storage = EvqIn;
   5787     }
   5788 #line 5789 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5789     break;
   5790 
   5791   case 161:
   5792 #line 1315 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5793     {
   5794         parseContext.globalCheck((yyvsp[0].lex).loc, "out");
   5795         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5796         // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
   5797         (yyval.interm.type).qualifier.storage = EvqOut;
   5798     }
   5799 #line 5800 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5800     break;
   5801 
   5802   case 162:
   5803 #line 1321 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5804     {
   5805         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
   5806         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
   5807         parseContext.globalCheck((yyvsp[0].lex).loc, "centroid");
   5808         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5809         (yyval.interm.type).qualifier.centroid = true;
   5810     }
   5811 #line 5812 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5812     break;
   5813 
   5814   case 163:
   5815 #line 1328 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5816     {
   5817         parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
   5818         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
   5819         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5820         (yyval.interm.type).qualifier.patch = true;
   5821     }
   5822 #line 5823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5823     break;
   5824 
   5825   case 164:
   5826 #line 1334 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5827     {
   5828         parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
   5829         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5830         (yyval.interm.type).qualifier.sample = true;
   5831     }
   5832 #line 5833 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5833     break;
   5834 
   5835   case 165:
   5836 #line 1339 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5837     {
   5838         parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
   5839         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5840         (yyval.interm.type).qualifier.storage = EvqUniform;
   5841     }
   5842 #line 5843 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5843     break;
   5844 
   5845   case 166:
   5846 #line 1344 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5847     {
   5848         parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
   5849         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5850         (yyval.interm.type).qualifier.storage = EvqBuffer;
   5851     }
   5852 #line 5853 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5853     break;
   5854 
   5855   case 167:
   5856 #line 1349 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5857     {
   5858 #ifdef NV_EXTENSIONS
   5859         parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
   5860         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectNVMask | EShLangClosestHitNVMask
   5861             | EShLangAnyHitNVMask), "hitAttributeNV");
   5862         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV");
   5863         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5864         (yyval.interm.type).qualifier.storage = EvqHitAttrNV;
   5865 #endif
   5866     }
   5867 #line 5868 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5868     break;
   5869 
   5870   case 168:
   5871 #line 1359 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5872     {
   5873 #ifdef NV_EXTENSIONS
   5874         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV");
   5875         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangClosestHitNVMask |
   5876             EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadNV");
   5877         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV");
   5878         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5879         (yyval.interm.type).qualifier.storage = EvqPayloadNV;
   5880 #endif
   5881     }
   5882 #line 5883 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5883     break;
   5884 
   5885   case 169:
   5886 #line 1369 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5887     {
   5888 #ifdef NV_EXTENSIONS
   5889         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV");
   5890         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitNVMask |
   5891             EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadInNV");
   5892         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV");
   5893         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5894         (yyval.interm.type).qualifier.storage = EvqPayloadInNV;
   5895 #endif
   5896     }
   5897 #line 5898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5898     break;
   5899 
   5900   case 170:
   5901 #line 1379 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5902     {
   5903 #ifdef NV_EXTENSIONS
   5904         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV");
   5905         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenNVMask |
   5906             EShLangClosestHitNVMask | EShLangMissNVMask | EShLangCallableNVMask), "callableDataNV");
   5907         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV");
   5908         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5909         (yyval.interm.type).qualifier.storage = EvqCallableDataNV;
   5910 #endif
   5911     }
   5912 #line 5913 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5913     break;
   5914 
   5915   case 171:
   5916 #line 1389 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5917     {
   5918 #ifdef NV_EXTENSIONS
   5919         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV");
   5920         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableNVMask), "callableDataInNV");
   5921         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV");
   5922         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5923         (yyval.interm.type).qualifier.storage = EvqCallableDataInNV;
   5924 #endif
   5925     }
   5926 #line 5927 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5927     break;
   5928 
   5929   case 172:
   5930 #line 1398 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5931     {
   5932         parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
   5933         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
   5934         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared");
   5935 #ifdef NV_EXTENSIONS
   5936         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared");
   5937 #else
   5938         parseContext.requireStage((yyvsp[0].lex).loc, EShLangCompute, "shared");
   5939 #endif
   5940         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5941         (yyval.interm.type).qualifier.storage = EvqShared;
   5942     }
   5943 #line 5944 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5944     break;
   5945 
   5946   case 173:
   5947 #line 1410 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5948     {
   5949         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5950         (yyval.interm.type).qualifier.coherent = true;
   5951     }
   5952 #line 5953 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5953     break;
   5954 
   5955   case 174:
   5956 #line 1414 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5957     {
   5958         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5959         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
   5960         (yyval.interm.type).qualifier.devicecoherent = true;
   5961     }
   5962 #line 5963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5963     break;
   5964 
   5965   case 175:
   5966 #line 1419 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5967     {
   5968         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5969         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent");
   5970         (yyval.interm.type).qualifier.queuefamilycoherent = true;
   5971     }
   5972 #line 5973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5973     break;
   5974 
   5975   case 176:
   5976 #line 1424 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5977     {
   5978         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5979         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent");
   5980         (yyval.interm.type).qualifier.workgroupcoherent = true;
   5981     }
   5982 #line 5983 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5983     break;
   5984 
   5985   case 177:
   5986 #line 1429 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5987     {
   5988         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5989         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent");
   5990         (yyval.interm.type).qualifier.subgroupcoherent = true;
   5991     }
   5992 #line 5993 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5993     break;
   5994 
   5995   case 178:
   5996 #line 1434 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5997     {
   5998         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5999         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate");
   6000         (yyval.interm.type).qualifier.nonprivate = true;
   6001     }
   6002 #line 6003 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6003     break;
   6004 
   6005   case 179:
   6006 #line 1439 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6007     {
   6008         (yyval.interm.type).init((yyvsp[0].lex).loc);
   6009         (yyval.interm.type).qualifier.volatil = true;
   6010     }
   6011 #line 6012 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6012     break;
   6013 
   6014   case 180:
   6015 #line 1443 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6016     {
   6017         (yyval.interm.type).init((yyvsp[0].lex).loc);
   6018         (yyval.interm.type).qualifier.restrict = true;
   6019     }
   6020 #line 6021 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6021     break;
   6022 
   6023   case 181:
   6024 #line 1447 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6025     {
   6026         (yyval.interm.type).init((yyvsp[0].lex).loc);
   6027         (yyval.interm.type).qualifier.readonly = true;
   6028     }
   6029 #line 6030 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6030     break;
   6031 
   6032   case 182:
   6033 #line 1451 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6034     {
   6035         (yyval.interm.type).init((yyvsp[0].lex).loc);
   6036         (yyval.interm.type).qualifier.writeonly = true;
   6037     }
   6038 #line 6039 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6039     break;
   6040 
   6041   case 183:
   6042 #line 1455 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6043     {
   6044         parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine");
   6045         parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine");
   6046         parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine");
   6047         (yyval.interm.type).init((yyvsp[0].lex).loc);
   6048     }
   6049 #line 6050 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6050     break;
   6051 
   6052   case 184:
   6053 #line 1461 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6054     {
   6055         parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine");
   6056         parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine");
   6057         parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine");
   6058         (yyval.interm.type).init((yyvsp[-3].lex).loc);
   6059     }
   6060 #line 6061 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6061     break;
   6062 
   6063   case 185:
   6064 #line 1470 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6065     {
   6066         (yyval.interm.type).init((yyvsp[0].lex).loc);
   6067         (yyval.interm.type).qualifier.nonUniform = true;
   6068     }
   6069 #line 6070 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6070     break;
   6071 
   6072   case 186:
   6073 #line 1477 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6074     {
   6075         // TODO
   6076     }
   6077 #line 6078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6078     break;
   6079 
   6080   case 187:
   6081 #line 1480 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6082     {
   6083         // TODO: 4.0 semantics: subroutines
   6084         // 1) make sure each identifier is a type declared earlier with SUBROUTINE
   6085         // 2) save all of the identifiers for future comparison with the declared function
   6086     }
   6087 #line 6088 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6088     break;
   6089 
   6090   case 188:
   6091 #line 1488 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6092     {
   6093         (yyval.interm.type) = (yyvsp[0].interm.type);
   6094         (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
   6095     }
   6096 #line 6097 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6097     break;
   6098 
   6099   case 189:
   6100 #line 1492 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6101     {
   6102         parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes);
   6103         (yyval.interm.type) = (yyvsp[-1].interm.type);
   6104         (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
   6105         (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
   6106     }
   6107 #line 6108 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6108     break;
   6109 
   6110   case 190:
   6111 #line 1501 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6112     {
   6113         (yyval.interm).loc = (yyvsp[-1].lex).loc;
   6114         (yyval.interm).arraySizes = new TArraySizes;
   6115         (yyval.interm).arraySizes->addInnerSize();
   6116     }
   6117 #line 6118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6118     break;
   6119 
   6120   case 191:
   6121 #line 1506 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6122     {
   6123         (yyval.interm).loc = (yyvsp[-2].lex).loc;
   6124         (yyval.interm).arraySizes = new TArraySizes;
   6125 
   6126         TArraySize size;
   6127         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size);
   6128         (yyval.interm).arraySizes->addInnerSize(size);
   6129     }
   6130 #line 6131 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6131     break;
   6132 
   6133   case 192:
   6134 #line 1514 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6135     {
   6136         (yyval.interm) = (yyvsp[-2].interm);
   6137         (yyval.interm).arraySizes->addInnerSize();
   6138     }
   6139 #line 6140 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6140     break;
   6141 
   6142   case 193:
   6143 #line 1518 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6144     {
   6145         (yyval.interm) = (yyvsp[-3].interm);
   6146 
   6147         TArraySize size;
   6148         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size);
   6149         (yyval.interm).arraySizes->addInnerSize(size);
   6150     }
   6151 #line 6152 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6152     break;
   6153 
   6154   case 194:
   6155 #line 1528 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6156     {
   6157         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6158         (yyval.interm.type).basicType = EbtVoid;
   6159     }
   6160 #line 6161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6161     break;
   6162 
   6163   case 195:
   6164 #line 1532 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6165     {
   6166         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6167         (yyval.interm.type).basicType = EbtFloat;
   6168     }
   6169 #line 6170 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6170     break;
   6171 
   6172   case 196:
   6173 #line 1536 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6174     {
   6175         parseContext.doubleCheck((yyvsp[0].lex).loc, "double");
   6176         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6177         (yyval.interm.type).basicType = EbtDouble;
   6178     }
   6179 #line 6180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6180     break;
   6181 
   6182   case 197:
   6183 #line 1541 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6184     {
   6185         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel());
   6186         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6187         (yyval.interm.type).basicType = EbtFloat16;
   6188     }
   6189 #line 6190 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6190     break;
   6191 
   6192   case 198:
   6193 #line 1546 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6194     {
   6195         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel());
   6196         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6197         (yyval.interm.type).basicType = EbtFloat;
   6198     }
   6199 #line 6200 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6200     break;
   6201 
   6202   case 199:
   6203 #line 1551 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6204     {
   6205         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel());
   6206         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6207         (yyval.interm.type).basicType = EbtDouble;
   6208     }
   6209 #line 6210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6210     break;
   6211 
   6212   case 200:
   6213 #line 1556 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6214     {
   6215         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6216         (yyval.interm.type).basicType = EbtInt;
   6217     }
   6218 #line 6219 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6219     break;
   6220 
   6221   case 201:
   6222 #line 1560 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6223     {
   6224         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
   6225         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6226         (yyval.interm.type).basicType = EbtUint;
   6227     }
   6228 #line 6229 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6229     break;
   6230 
   6231   case 202:
   6232 #line 1565 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6233     {
   6234         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
   6235         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6236         (yyval.interm.type).basicType = EbtInt8;
   6237     }
   6238 #line 6239 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6239     break;
   6240 
   6241   case 203:
   6242 #line 1570 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6243     {
   6244         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
   6245         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6246         (yyval.interm.type).basicType = EbtUint8;
   6247     }
   6248 #line 6249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6249     break;
   6250 
   6251   case 204:
   6252 #line 1575 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6253     {
   6254         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
   6255         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6256         (yyval.interm.type).basicType = EbtInt16;
   6257     }
   6258 #line 6259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6259     break;
   6260 
   6261   case 205:
   6262 #line 1580 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6263     {
   6264         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
   6265         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6266         (yyval.interm.type).basicType = EbtUint16;
   6267     }
   6268 #line 6269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6269     break;
   6270 
   6271   case 206:
   6272 #line 1585 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6273     {
   6274         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
   6275         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6276         (yyval.interm.type).basicType = EbtInt;
   6277     }
   6278 #line 6279 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6279     break;
   6280 
   6281   case 207:
   6282 #line 1590 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6283     {
   6284         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
   6285         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6286         (yyval.interm.type).basicType = EbtUint;
   6287     }
   6288 #line 6289 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6289     break;
   6290 
   6291   case 208:
   6292 #line 1595 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6293     {
   6294         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
   6295         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6296         (yyval.interm.type).basicType = EbtInt64;
   6297     }
   6298 #line 6299 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6299     break;
   6300 
   6301   case 209:
   6302 #line 1600 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6303     {
   6304         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
   6305         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6306         (yyval.interm.type).basicType = EbtUint64;
   6307     }
   6308 #line 6309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6309     break;
   6310 
   6311   case 210:
   6312 #line 1605 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6313     {
   6314         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6315         (yyval.interm.type).basicType = EbtBool;
   6316     }
   6317 #line 6318 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6318     break;
   6319 
   6320   case 211:
   6321 #line 1609 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6322     {
   6323         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6324         (yyval.interm.type).basicType = EbtFloat;
   6325         (yyval.interm.type).setVector(2);
   6326     }
   6327 #line 6328 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6328     break;
   6329 
   6330   case 212:
   6331 #line 1614 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6332     {
   6333         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6334         (yyval.interm.type).basicType = EbtFloat;
   6335         (yyval.interm.type).setVector(3);
   6336     }
   6337 #line 6338 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6338     break;
   6339 
   6340   case 213:
   6341 #line 1619 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6342     {
   6343         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6344         (yyval.interm.type).basicType = EbtFloat;
   6345         (yyval.interm.type).setVector(4);
   6346     }
   6347 #line 6348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6348     break;
   6349 
   6350   case 214:
   6351 #line 1624 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6352     {
   6353         parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
   6354         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6355         (yyval.interm.type).basicType = EbtDouble;
   6356         (yyval.interm.type).setVector(2);
   6357     }
   6358 #line 6359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6359     break;
   6360 
   6361   case 215:
   6362 #line 1630 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6363     {
   6364         parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
   6365         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6366         (yyval.interm.type).basicType = EbtDouble;
   6367         (yyval.interm.type).setVector(3);
   6368     }
   6369 #line 6370 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6370     break;
   6371 
   6372   case 216:
   6373 #line 1636 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6374     {
   6375         parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
   6376         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6377         (yyval.interm.type).basicType = EbtDouble;
   6378         (yyval.interm.type).setVector(4);
   6379     }
   6380 #line 6381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6381     break;
   6382 
   6383   case 217:
   6384 #line 1642 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6385     {
   6386         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
   6387         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6388         (yyval.interm.type).basicType = EbtFloat16;
   6389         (yyval.interm.type).setVector(2);
   6390     }
   6391 #line 6392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6392     break;
   6393 
   6394   case 218:
   6395 #line 1648 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6396     {
   6397         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
   6398         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6399         (yyval.interm.type).basicType = EbtFloat16;
   6400         (yyval.interm.type).setVector(3);
   6401     }
   6402 #line 6403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6403     break;
   6404 
   6405   case 219:
   6406 #line 1654 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6407     {
   6408         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
   6409         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6410         (yyval.interm.type).basicType = EbtFloat16;
   6411         (yyval.interm.type).setVector(4);
   6412     }
   6413 #line 6414 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6414     break;
   6415 
   6416   case 220:
   6417 #line 1660 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6418     {
   6419         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
   6420         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6421         (yyval.interm.type).basicType = EbtFloat;
   6422         (yyval.interm.type).setVector(2);
   6423     }
   6424 #line 6425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6425     break;
   6426 
   6427   case 221:
   6428 #line 1666 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6429     {
   6430         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
   6431         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6432         (yyval.interm.type).basicType = EbtFloat;
   6433         (yyval.interm.type).setVector(3);
   6434     }
   6435 #line 6436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6436     break;
   6437 
   6438   case 222:
   6439 #line 1672 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6440     {
   6441         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
   6442         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6443         (yyval.interm.type).basicType = EbtFloat;
   6444         (yyval.interm.type).setVector(4);
   6445     }
   6446 #line 6447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6447     break;
   6448 
   6449   case 223:
   6450 #line 1678 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6451     {
   6452         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
   6453         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6454         (yyval.interm.type).basicType = EbtDouble;
   6455         (yyval.interm.type).setVector(2);
   6456     }
   6457 #line 6458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6458     break;
   6459 
   6460   case 224:
   6461 #line 1684 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6462     {
   6463         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
   6464         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6465         (yyval.interm.type).basicType = EbtDouble;
   6466         (yyval.interm.type).setVector(3);
   6467     }
   6468 #line 6469 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6469     break;
   6470 
   6471   case 225:
   6472 #line 1690 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6473     {
   6474         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
   6475         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6476         (yyval.interm.type).basicType = EbtDouble;
   6477         (yyval.interm.type).setVector(4);
   6478     }
   6479 #line 6480 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6480     break;
   6481 
   6482   case 226:
   6483 #line 1696 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6484     {
   6485         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6486         (yyval.interm.type).basicType = EbtBool;
   6487         (yyval.interm.type).setVector(2);
   6488     }
   6489 #line 6490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6490     break;
   6491 
   6492   case 227:
   6493 #line 1701 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6494     {
   6495         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6496         (yyval.interm.type).basicType = EbtBool;
   6497         (yyval.interm.type).setVector(3);
   6498     }
   6499 #line 6500 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6500     break;
   6501 
   6502   case 228:
   6503 #line 1706 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6504     {
   6505         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6506         (yyval.interm.type).basicType = EbtBool;
   6507         (yyval.interm.type).setVector(4);
   6508     }
   6509 #line 6510 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6510     break;
   6511 
   6512   case 229:
   6513 #line 1711 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6514     {
   6515         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6516         (yyval.interm.type).basicType = EbtInt;
   6517         (yyval.interm.type).setVector(2);
   6518     }
   6519 #line 6520 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6520     break;
   6521 
   6522   case 230:
   6523 #line 1716 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6524     {
   6525         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6526         (yyval.interm.type).basicType = EbtInt;
   6527         (yyval.interm.type).setVector(3);
   6528     }
   6529 #line 6530 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6530     break;
   6531 
   6532   case 231:
   6533 #line 1721 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6534     {
   6535         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6536         (yyval.interm.type).basicType = EbtInt;
   6537         (yyval.interm.type).setVector(4);
   6538     }
   6539 #line 6540 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6540     break;
   6541 
   6542   case 232:
   6543 #line 1726 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6544     {
   6545         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
   6546         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6547         (yyval.interm.type).basicType = EbtInt8;
   6548         (yyval.interm.type).setVector(2);
   6549     }
   6550 #line 6551 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6551     break;
   6552 
   6553   case 233:
   6554 #line 1732 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6555     {
   6556         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
   6557         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6558         (yyval.interm.type).basicType = EbtInt8;
   6559         (yyval.interm.type).setVector(3);
   6560     }
   6561 #line 6562 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6562     break;
   6563 
   6564   case 234:
   6565 #line 1738 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6566     {
   6567         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
   6568         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6569         (yyval.interm.type).basicType = EbtInt8;
   6570         (yyval.interm.type).setVector(4);
   6571     }
   6572 #line 6573 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6573     break;
   6574 
   6575   case 235:
   6576 #line 1744 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6577     {
   6578         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
   6579         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6580         (yyval.interm.type).basicType = EbtInt16;
   6581         (yyval.interm.type).setVector(2);
   6582     }
   6583 #line 6584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6584     break;
   6585 
   6586   case 236:
   6587 #line 1750 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6588     {
   6589         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
   6590         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6591         (yyval.interm.type).basicType = EbtInt16;
   6592         (yyval.interm.type).setVector(3);
   6593     }
   6594 #line 6595 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6595     break;
   6596 
   6597   case 237:
   6598 #line 1756 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6599     {
   6600         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
   6601         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6602         (yyval.interm.type).basicType = EbtInt16;
   6603         (yyval.interm.type).setVector(4);
   6604     }
   6605 #line 6606 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6606     break;
   6607 
   6608   case 238:
   6609 #line 1762 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6610     {
   6611         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
   6612         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6613         (yyval.interm.type).basicType = EbtInt;
   6614         (yyval.interm.type).setVector(2);
   6615     }
   6616 #line 6617 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6617     break;
   6618 
   6619   case 239:
   6620 #line 1768 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6621     {
   6622         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
   6623         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6624         (yyval.interm.type).basicType = EbtInt;
   6625         (yyval.interm.type).setVector(3);
   6626     }
   6627 #line 6628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6628     break;
   6629 
   6630   case 240:
   6631 #line 1774 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6632     {
   6633         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
   6634         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6635         (yyval.interm.type).basicType = EbtInt;
   6636         (yyval.interm.type).setVector(4);
   6637     }
   6638 #line 6639 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6639     break;
   6640 
   6641   case 241:
   6642 #line 1780 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6643     {
   6644         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
   6645         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6646         (yyval.interm.type).basicType = EbtInt64;
   6647         (yyval.interm.type).setVector(2);
   6648     }
   6649 #line 6650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6650     break;
   6651 
   6652   case 242:
   6653 #line 1786 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6654     {
   6655         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
   6656         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6657         (yyval.interm.type).basicType = EbtInt64;
   6658         (yyval.interm.type).setVector(3);
   6659     }
   6660 #line 6661 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6661     break;
   6662 
   6663   case 243:
   6664 #line 1792 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6665     {
   6666         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
   6667         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6668         (yyval.interm.type).basicType = EbtInt64;
   6669         (yyval.interm.type).setVector(4);
   6670     }
   6671 #line 6672 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6672     break;
   6673 
   6674   case 244:
   6675 #line 1798 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6676     {
   6677         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
   6678         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6679         (yyval.interm.type).basicType = EbtUint;
   6680         (yyval.interm.type).setVector(2);
   6681     }
   6682 #line 6683 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6683     break;
   6684 
   6685   case 245:
   6686 #line 1804 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6687     {
   6688         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
   6689         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6690         (yyval.interm.type).basicType = EbtUint;
   6691         (yyval.interm.type).setVector(3);
   6692     }
   6693 #line 6694 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6694     break;
   6695 
   6696   case 246:
   6697 #line 1810 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6698     {
   6699         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
   6700         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6701         (yyval.interm.type).basicType = EbtUint;
   6702         (yyval.interm.type).setVector(4);
   6703     }
   6704 #line 6705 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6705     break;
   6706 
   6707   case 247:
   6708 #line 1816 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6709     {
   6710         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
   6711         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6712         (yyval.interm.type).basicType = EbtUint8;
   6713         (yyval.interm.type).setVector(2);
   6714     }
   6715 #line 6716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6716     break;
   6717 
   6718   case 248:
   6719 #line 1822 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6720     {
   6721         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
   6722         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6723         (yyval.interm.type).basicType = EbtUint8;
   6724         (yyval.interm.type).setVector(3);
   6725     }
   6726 #line 6727 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6727     break;
   6728 
   6729   case 249:
   6730 #line 1828 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6731     {
   6732         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
   6733         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6734         (yyval.interm.type).basicType = EbtUint8;
   6735         (yyval.interm.type).setVector(4);
   6736     }
   6737 #line 6738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6738     break;
   6739 
   6740   case 250:
   6741 #line 1834 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6742     {
   6743         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
   6744         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6745         (yyval.interm.type).basicType = EbtUint16;
   6746         (yyval.interm.type).setVector(2);
   6747     }
   6748 #line 6749 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6749     break;
   6750 
   6751   case 251:
   6752 #line 1840 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6753     {
   6754         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
   6755         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6756         (yyval.interm.type).basicType = EbtUint16;
   6757         (yyval.interm.type).setVector(3);
   6758     }
   6759 #line 6760 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6760     break;
   6761 
   6762   case 252:
   6763 #line 1846 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6764     {
   6765         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
   6766         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6767         (yyval.interm.type).basicType = EbtUint16;
   6768         (yyval.interm.type).setVector(4);
   6769     }
   6770 #line 6771 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6771     break;
   6772 
   6773   case 253:
   6774 #line 1852 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6775     {
   6776         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
   6777         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6778         (yyval.interm.type).basicType = EbtUint;
   6779         (yyval.interm.type).setVector(2);
   6780     }
   6781 #line 6782 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6782     break;
   6783 
   6784   case 254:
   6785 #line 1858 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6786     {
   6787         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
   6788         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6789         (yyval.interm.type).basicType = EbtUint;
   6790         (yyval.interm.type).setVector(3);
   6791     }
   6792 #line 6793 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6793     break;
   6794 
   6795   case 255:
   6796 #line 1864 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6797     {
   6798         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
   6799         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6800         (yyval.interm.type).basicType = EbtUint;
   6801         (yyval.interm.type).setVector(4);
   6802     }
   6803 #line 6804 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6804     break;
   6805 
   6806   case 256:
   6807 #line 1870 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6808     {
   6809         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
   6810         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6811         (yyval.interm.type).basicType = EbtUint64;
   6812         (yyval.interm.type).setVector(2);
   6813     }
   6814 #line 6815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6815     break;
   6816 
   6817   case 257:
   6818 #line 1876 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6819     {
   6820         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
   6821         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6822         (yyval.interm.type).basicType = EbtUint64;
   6823         (yyval.interm.type).setVector(3);
   6824     }
   6825 #line 6826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6826     break;
   6827 
   6828   case 258:
   6829 #line 1882 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6830     {
   6831         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
   6832         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6833         (yyval.interm.type).basicType = EbtUint64;
   6834         (yyval.interm.type).setVector(4);
   6835     }
   6836 #line 6837 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6837     break;
   6838 
   6839   case 259:
   6840 #line 1888 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6841     {
   6842         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6843         (yyval.interm.type).basicType = EbtFloat;
   6844         (yyval.interm.type).setMatrix(2, 2);
   6845     }
   6846 #line 6847 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6847     break;
   6848 
   6849   case 260:
   6850 #line 1893 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6851     {
   6852         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6853         (yyval.interm.type).basicType = EbtFloat;
   6854         (yyval.interm.type).setMatrix(3, 3);
   6855     }
   6856 #line 6857 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6857     break;
   6858 
   6859   case 261:
   6860 #line 1898 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6861     {
   6862         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6863         (yyval.interm.type).basicType = EbtFloat;
   6864         (yyval.interm.type).setMatrix(4, 4);
   6865     }
   6866 #line 6867 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6867     break;
   6868 
   6869   case 262:
   6870 #line 1903 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6871     {
   6872         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6873         (yyval.interm.type).basicType = EbtFloat;
   6874         (yyval.interm.type).setMatrix(2, 2);
   6875     }
   6876 #line 6877 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6877     break;
   6878 
   6879   case 263:
   6880 #line 1908 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6881     {
   6882         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6883         (yyval.interm.type).basicType = EbtFloat;
   6884         (yyval.interm.type).setMatrix(2, 3);
   6885     }
   6886 #line 6887 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6887     break;
   6888 
   6889   case 264:
   6890 #line 1913 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6891     {
   6892         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6893         (yyval.interm.type).basicType = EbtFloat;
   6894         (yyval.interm.type).setMatrix(2, 4);
   6895     }
   6896 #line 6897 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6897     break;
   6898 
   6899   case 265:
   6900 #line 1918 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6901     {
   6902         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6903         (yyval.interm.type).basicType = EbtFloat;
   6904         (yyval.interm.type).setMatrix(3, 2);
   6905     }
   6906 #line 6907 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6907     break;
   6908 
   6909   case 266:
   6910 #line 1923 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6911     {
   6912         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6913         (yyval.interm.type).basicType = EbtFloat;
   6914         (yyval.interm.type).setMatrix(3, 3);
   6915     }
   6916 #line 6917 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6917     break;
   6918 
   6919   case 267:
   6920 #line 1928 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6921     {
   6922         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6923         (yyval.interm.type).basicType = EbtFloat;
   6924         (yyval.interm.type).setMatrix(3, 4);
   6925     }
   6926 #line 6927 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6927     break;
   6928 
   6929   case 268:
   6930 #line 1933 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6931     {
   6932         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6933         (yyval.interm.type).basicType = EbtFloat;
   6934         (yyval.interm.type).setMatrix(4, 2);
   6935     }
   6936 #line 6937 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6937     break;
   6938 
   6939   case 269:
   6940 #line 1938 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6941     {
   6942         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6943         (yyval.interm.type).basicType = EbtFloat;
   6944         (yyval.interm.type).setMatrix(4, 3);
   6945     }
   6946 #line 6947 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6947     break;
   6948 
   6949   case 270:
   6950 #line 1943 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6951     {
   6952         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6953         (yyval.interm.type).basicType = EbtFloat;
   6954         (yyval.interm.type).setMatrix(4, 4);
   6955     }
   6956 #line 6957 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6957     break;
   6958 
   6959   case 271:
   6960 #line 1948 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6961     {
   6962         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   6963         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6964         (yyval.interm.type).basicType = EbtDouble;
   6965         (yyval.interm.type).setMatrix(2, 2);
   6966     }
   6967 #line 6968 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6968     break;
   6969 
   6970   case 272:
   6971 #line 1954 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6972     {
   6973         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   6974         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6975         (yyval.interm.type).basicType = EbtDouble;
   6976         (yyval.interm.type).setMatrix(3, 3);
   6977     }
   6978 #line 6979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6979     break;
   6980 
   6981   case 273:
   6982 #line 1960 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6983     {
   6984         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   6985         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6986         (yyval.interm.type).basicType = EbtDouble;
   6987         (yyval.interm.type).setMatrix(4, 4);
   6988     }
   6989 #line 6990 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6990     break;
   6991 
   6992   case 274:
   6993 #line 1966 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6994     {
   6995         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   6996         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6997         (yyval.interm.type).basicType = EbtDouble;
   6998         (yyval.interm.type).setMatrix(2, 2);
   6999     }
   7000 #line 7001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7001     break;
   7002 
   7003   case 275:
   7004 #line 1972 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7005     {
   7006         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   7007         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7008         (yyval.interm.type).basicType = EbtDouble;
   7009         (yyval.interm.type).setMatrix(2, 3);
   7010     }
   7011 #line 7012 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7012     break;
   7013 
   7014   case 276:
   7015 #line 1978 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7016     {
   7017         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   7018         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7019         (yyval.interm.type).basicType = EbtDouble;
   7020         (yyval.interm.type).setMatrix(2, 4);
   7021     }
   7022 #line 7023 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7023     break;
   7024 
   7025   case 277:
   7026 #line 1984 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7027     {
   7028         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   7029         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7030         (yyval.interm.type).basicType = EbtDouble;
   7031         (yyval.interm.type).setMatrix(3, 2);
   7032     }
   7033 #line 7034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7034     break;
   7035 
   7036   case 278:
   7037 #line 1990 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7038     {
   7039         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   7040         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7041         (yyval.interm.type).basicType = EbtDouble;
   7042         (yyval.interm.type).setMatrix(3, 3);
   7043     }
   7044 #line 7045 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7045     break;
   7046 
   7047   case 279:
   7048 #line 1996 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7049     {
   7050         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   7051         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7052         (yyval.interm.type).basicType = EbtDouble;
   7053         (yyval.interm.type).setMatrix(3, 4);
   7054     }
   7055 #line 7056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7056     break;
   7057 
   7058   case 280:
   7059 #line 2002 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7060     {
   7061         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   7062         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7063         (yyval.interm.type).basicType = EbtDouble;
   7064         (yyval.interm.type).setMatrix(4, 2);
   7065     }
   7066 #line 7067 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7067     break;
   7068 
   7069   case 281:
   7070 #line 2008 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7071     {
   7072         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   7073         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7074         (yyval.interm.type).basicType = EbtDouble;
   7075         (yyval.interm.type).setMatrix(4, 3);
   7076     }
   7077 #line 7078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7078     break;
   7079 
   7080   case 282:
   7081 #line 2014 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7082     {
   7083         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   7084         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7085         (yyval.interm.type).basicType = EbtDouble;
   7086         (yyval.interm.type).setMatrix(4, 4);
   7087     }
   7088 #line 7089 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7089     break;
   7090 
   7091   case 283:
   7092 #line 2020 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7093     {
   7094         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   7095         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7096         (yyval.interm.type).basicType = EbtFloat16;
   7097         (yyval.interm.type).setMatrix(2, 2);
   7098     }
   7099 #line 7100 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7100     break;
   7101 
   7102   case 284:
   7103 #line 2026 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7104     {
   7105         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   7106         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7107         (yyval.interm.type).basicType = EbtFloat16;
   7108         (yyval.interm.type).setMatrix(3, 3);
   7109     }
   7110 #line 7111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7111     break;
   7112 
   7113   case 285:
   7114 #line 2032 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7115     {
   7116         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   7117         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7118         (yyval.interm.type).basicType = EbtFloat16;
   7119         (yyval.interm.type).setMatrix(4, 4);
   7120     }
   7121 #line 7122 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7122     break;
   7123 
   7124   case 286:
   7125 #line 2038 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7126     {
   7127         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   7128         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7129         (yyval.interm.type).basicType = EbtFloat16;
   7130         (yyval.interm.type).setMatrix(2, 2);
   7131     }
   7132 #line 7133 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7133     break;
   7134 
   7135   case 287:
   7136 #line 2044 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7137     {
   7138         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   7139         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7140         (yyval.interm.type).basicType = EbtFloat16;
   7141         (yyval.interm.type).setMatrix(2, 3);
   7142     }
   7143 #line 7144 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7144     break;
   7145 
   7146   case 288:
   7147 #line 2050 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7148     {
   7149         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   7150         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7151         (yyval.interm.type).basicType = EbtFloat16;
   7152         (yyval.interm.type).setMatrix(2, 4);
   7153     }
   7154 #line 7155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7155     break;
   7156 
   7157   case 289:
   7158 #line 2056 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7159     {
   7160         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   7161         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7162         (yyval.interm.type).basicType = EbtFloat16;
   7163         (yyval.interm.type).setMatrix(3, 2);
   7164     }
   7165 #line 7166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7166     break;
   7167 
   7168   case 290:
   7169 #line 2062 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7170     {
   7171         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   7172         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7173         (yyval.interm.type).basicType = EbtFloat16;
   7174         (yyval.interm.type).setMatrix(3, 3);
   7175     }
   7176 #line 7177 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7177     break;
   7178 
   7179   case 291:
   7180 #line 2068 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7181     {
   7182         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   7183         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7184         (yyval.interm.type).basicType = EbtFloat16;
   7185         (yyval.interm.type).setMatrix(3, 4);
   7186     }
   7187 #line 7188 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7188     break;
   7189 
   7190   case 292:
   7191 #line 2074 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7192     {
   7193         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   7194         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7195         (yyval.interm.type).basicType = EbtFloat16;
   7196         (yyval.interm.type).setMatrix(4, 2);
   7197     }
   7198 #line 7199 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7199     break;
   7200 
   7201   case 293:
   7202 #line 2080 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7203     {
   7204         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   7205         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7206         (yyval.interm.type).basicType = EbtFloat16;
   7207         (yyval.interm.type).setMatrix(4, 3);
   7208     }
   7209 #line 7210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7210     break;
   7211 
   7212   case 294:
   7213 #line 2086 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7214     {
   7215         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   7216         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7217         (yyval.interm.type).basicType = EbtFloat16;
   7218         (yyval.interm.type).setMatrix(4, 4);
   7219     }
   7220 #line 7221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7221     break;
   7222 
   7223   case 295:
   7224 #line 2092 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7225     {
   7226         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7227         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7228         (yyval.interm.type).basicType = EbtFloat;
   7229         (yyval.interm.type).setMatrix(2, 2);
   7230     }
   7231 #line 7232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7232     break;
   7233 
   7234   case 296:
   7235 #line 2098 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7236     {
   7237         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7238         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7239         (yyval.interm.type).basicType = EbtFloat;
   7240         (yyval.interm.type).setMatrix(3, 3);
   7241     }
   7242 #line 7243 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7243     break;
   7244 
   7245   case 297:
   7246 #line 2104 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7247     {
   7248         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7249         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7250         (yyval.interm.type).basicType = EbtFloat;
   7251         (yyval.interm.type).setMatrix(4, 4);
   7252     }
   7253 #line 7254 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7254     break;
   7255 
   7256   case 298:
   7257 #line 2110 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7258     {
   7259         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7260         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7261         (yyval.interm.type).basicType = EbtFloat;
   7262         (yyval.interm.type).setMatrix(2, 2);
   7263     }
   7264 #line 7265 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7265     break;
   7266 
   7267   case 299:
   7268 #line 2116 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7269     {
   7270         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7271         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7272         (yyval.interm.type).basicType = EbtFloat;
   7273         (yyval.interm.type).setMatrix(2, 3);
   7274     }
   7275 #line 7276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7276     break;
   7277 
   7278   case 300:
   7279 #line 2122 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7280     {
   7281         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7282         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7283         (yyval.interm.type).basicType = EbtFloat;
   7284         (yyval.interm.type).setMatrix(2, 4);
   7285     }
   7286 #line 7287 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7287     break;
   7288 
   7289   case 301:
   7290 #line 2128 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7291     {
   7292         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7293         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7294         (yyval.interm.type).basicType = EbtFloat;
   7295         (yyval.interm.type).setMatrix(3, 2);
   7296     }
   7297 #line 7298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7298     break;
   7299 
   7300   case 302:
   7301 #line 2134 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7302     {
   7303         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7304         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7305         (yyval.interm.type).basicType = EbtFloat;
   7306         (yyval.interm.type).setMatrix(3, 3);
   7307     }
   7308 #line 7309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7309     break;
   7310 
   7311   case 303:
   7312 #line 2140 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7313     {
   7314         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7315         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7316         (yyval.interm.type).basicType = EbtFloat;
   7317         (yyval.interm.type).setMatrix(3, 4);
   7318     }
   7319 #line 7320 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7320     break;
   7321 
   7322   case 304:
   7323 #line 2146 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7324     {
   7325         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7326         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7327         (yyval.interm.type).basicType = EbtFloat;
   7328         (yyval.interm.type).setMatrix(4, 2);
   7329     }
   7330 #line 7331 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7331     break;
   7332 
   7333   case 305:
   7334 #line 2152 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7335     {
   7336         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7337         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7338         (yyval.interm.type).basicType = EbtFloat;
   7339         (yyval.interm.type).setMatrix(4, 3);
   7340     }
   7341 #line 7342 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7342     break;
   7343 
   7344   case 306:
   7345 #line 2158 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7346     {
   7347         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7348         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7349         (yyval.interm.type).basicType = EbtFloat;
   7350         (yyval.interm.type).setMatrix(4, 4);
   7351     }
   7352 #line 7353 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7353     break;
   7354 
   7355   case 307:
   7356 #line 2164 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7357     {
   7358         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7359         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7360         (yyval.interm.type).basicType = EbtDouble;
   7361         (yyval.interm.type).setMatrix(2, 2);
   7362     }
   7363 #line 7364 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7364     break;
   7365 
   7366   case 308:
   7367 #line 2170 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7368     {
   7369         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7370         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7371         (yyval.interm.type).basicType = EbtDouble;
   7372         (yyval.interm.type).setMatrix(3, 3);
   7373     }
   7374 #line 7375 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7375     break;
   7376 
   7377   case 309:
   7378 #line 2176 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7379     {
   7380         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7381         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7382         (yyval.interm.type).basicType = EbtDouble;
   7383         (yyval.interm.type).setMatrix(4, 4);
   7384     }
   7385 #line 7386 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7386     break;
   7387 
   7388   case 310:
   7389 #line 2182 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7390     {
   7391         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7392         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7393         (yyval.interm.type).basicType = EbtDouble;
   7394         (yyval.interm.type).setMatrix(2, 2);
   7395     }
   7396 #line 7397 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7397     break;
   7398 
   7399   case 311:
   7400 #line 2188 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7401     {
   7402         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7403         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7404         (yyval.interm.type).basicType = EbtDouble;
   7405         (yyval.interm.type).setMatrix(2, 3);
   7406     }
   7407 #line 7408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7408     break;
   7409 
   7410   case 312:
   7411 #line 2194 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7412     {
   7413         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7414         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7415         (yyval.interm.type).basicType = EbtDouble;
   7416         (yyval.interm.type).setMatrix(2, 4);
   7417     }
   7418 #line 7419 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7419     break;
   7420 
   7421   case 313:
   7422 #line 2200 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7423     {
   7424         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7425         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7426         (yyval.interm.type).basicType = EbtDouble;
   7427         (yyval.interm.type).setMatrix(3, 2);
   7428     }
   7429 #line 7430 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7430     break;
   7431 
   7432   case 314:
   7433 #line 2206 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7434     {
   7435         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7436         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7437         (yyval.interm.type).basicType = EbtDouble;
   7438         (yyval.interm.type).setMatrix(3, 3);
   7439     }
   7440 #line 7441 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7441     break;
   7442 
   7443   case 315:
   7444 #line 2212 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7445     {
   7446         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7447         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7448         (yyval.interm.type).basicType = EbtDouble;
   7449         (yyval.interm.type).setMatrix(3, 4);
   7450     }
   7451 #line 7452 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7452     break;
   7453 
   7454   case 316:
   7455 #line 2218 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7456     {
   7457         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7458         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7459         (yyval.interm.type).basicType = EbtDouble;
   7460         (yyval.interm.type).setMatrix(4, 2);
   7461     }
   7462 #line 7463 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7463     break;
   7464 
   7465   case 317:
   7466 #line 2224 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7467     {
   7468         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7469         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7470         (yyval.interm.type).basicType = EbtDouble;
   7471         (yyval.interm.type).setMatrix(4, 3);
   7472     }
   7473 #line 7474 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7474     break;
   7475 
   7476   case 318:
   7477 #line 2230 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7478     {
   7479         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
   7480         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7481         (yyval.interm.type).basicType = EbtDouble;
   7482         (yyval.interm.type).setMatrix(4, 4);
   7483     }
   7484 #line 7485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7485     break;
   7486 
   7487   case 319:
   7488 #line 2236 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7489     {
   7490 #ifdef NV_EXTENSIONS
   7491        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7492        (yyval.interm.type).basicType = EbtAccStructNV;
   7493 #endif
   7494     }
   7495 #line 7496 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7496     break;
   7497 
   7498   case 320:
   7499 #line 2242 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7500     {
   7501         parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types");
   7502         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7503         (yyval.interm.type).basicType = EbtAtomicUint;
   7504     }
   7505 #line 7506 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7506     break;
   7507 
   7508   case 321:
   7509 #line 2247 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7510     {
   7511         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7512         (yyval.interm.type).basicType = EbtSampler;
   7513         (yyval.interm.type).sampler.set(EbtFloat, Esd1D);
   7514     }
   7515 #line 7516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7516     break;
   7517 
   7518   case 322:
   7519 #line 2252 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7520     {
   7521         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7522         (yyval.interm.type).basicType = EbtSampler;
   7523         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
   7524     }
   7525 #line 7526 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7526     break;
   7527 
   7528   case 323:
   7529 #line 2257 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7530     {
   7531         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7532         (yyval.interm.type).basicType = EbtSampler;
   7533         (yyval.interm.type).sampler.set(EbtFloat, Esd3D);
   7534     }
   7535 #line 7536 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7536     break;
   7537 
   7538   case 324:
   7539 #line 2262 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7540     {
   7541         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7542         (yyval.interm.type).basicType = EbtSampler;
   7543         (yyval.interm.type).sampler.set(EbtFloat, EsdCube);
   7544     }
   7545 #line 7546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7546     break;
   7547 
   7548   case 325:
   7549 #line 2267 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7550     {
   7551         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7552         (yyval.interm.type).basicType = EbtSampler;
   7553         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
   7554     }
   7555 #line 7556 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7556     break;
   7557 
   7558   case 326:
   7559 #line 2272 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7560     {
   7561         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7562         (yyval.interm.type).basicType = EbtSampler;
   7563         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
   7564     }
   7565 #line 7566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7566     break;
   7567 
   7568   case 327:
   7569 #line 2277 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7570     {
   7571         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7572         (yyval.interm.type).basicType = EbtSampler;
   7573         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
   7574     }
   7575 #line 7576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7576     break;
   7577 
   7578   case 328:
   7579 #line 2282 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7580     {
   7581         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7582         (yyval.interm.type).basicType = EbtSampler;
   7583         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
   7584     }
   7585 #line 7586 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7586     break;
   7587 
   7588   case 329:
   7589 #line 2287 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7590     {
   7591         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7592         (yyval.interm.type).basicType = EbtSampler;
   7593         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
   7594     }
   7595 #line 7596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7596     break;
   7597 
   7598   case 330:
   7599 #line 2292 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7600     {
   7601         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7602         (yyval.interm.type).basicType = EbtSampler;
   7603         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
   7604     }
   7605 #line 7606 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7606     break;
   7607 
   7608   case 331:
   7609 #line 2297 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7610     {
   7611         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7612         (yyval.interm.type).basicType = EbtSampler;
   7613         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
   7614     }
   7615 #line 7616 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7616     break;
   7617 
   7618   case 332:
   7619 #line 2302 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7620     {
   7621         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7622         (yyval.interm.type).basicType = EbtSampler;
   7623         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
   7624     }
   7625 #line 7626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7626     break;
   7627 
   7628   case 333:
   7629 #line 2307 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7630     {
   7631         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7632         (yyval.interm.type).basicType = EbtSampler;
   7633         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
   7634     }
   7635 #line 7636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7636     break;
   7637 
   7638   case 334:
   7639 #line 2312 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7640     {
   7641 #ifdef AMD_EXTENSIONS
   7642         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
   7643         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7644         (yyval.interm.type).basicType = EbtSampler;
   7645         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D);
   7646 #endif
   7647     }
   7648 #line 7649 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7649     break;
   7650 
   7651   case 335:
   7652 #line 2320 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7653     {
   7654 #ifdef AMD_EXTENSIONS
   7655         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
   7656         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7657         (yyval.interm.type).basicType = EbtSampler;
   7658         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D);
   7659 #endif
   7660     }
   7661 #line 7662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7662     break;
   7663 
   7664   case 336:
   7665 #line 2328 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7666     {
   7667 #ifdef AMD_EXTENSIONS
   7668         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
   7669         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7670         (yyval.interm.type).basicType = EbtSampler;
   7671         (yyval.interm.type).sampler.set(EbtFloat16, Esd3D);
   7672 #endif
   7673     }
   7674 #line 7675 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7675     break;
   7676 
   7677   case 337:
   7678 #line 2336 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7679     {
   7680 #ifdef AMD_EXTENSIONS
   7681         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
   7682         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7683         (yyval.interm.type).basicType = EbtSampler;
   7684         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube);
   7685 #endif
   7686     }
   7687 #line 7688 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7688     break;
   7689 
   7690   case 338:
   7691 #line 2344 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7692     {
   7693 #ifdef AMD_EXTENSIONS
   7694         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
   7695         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7696         (yyval.interm.type).basicType = EbtSampler;
   7697         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true);
   7698 #endif
   7699     }
   7700 #line 7701 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7701     break;
   7702 
   7703   case 339:
   7704 #line 2352 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7705     {
   7706 #ifdef AMD_EXTENSIONS
   7707         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
   7708         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7709         (yyval.interm.type).basicType = EbtSampler;
   7710         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true);
   7711 #endif
   7712     }
   7713 #line 7714 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7714     break;
   7715 
   7716   case 340:
   7717 #line 2360 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7718     {
   7719 #ifdef AMD_EXTENSIONS
   7720         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
   7721         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7722         (yyval.interm.type).basicType = EbtSampler;
   7723         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true);
   7724 #endif
   7725     }
   7726 #line 7727 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7727     break;
   7728 
   7729   case 341:
   7730 #line 2368 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7731     {
   7732 #ifdef AMD_EXTENSIONS
   7733         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
   7734         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7735         (yyval.interm.type).basicType = EbtSampler;
   7736         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true);
   7737 #endif
   7738     }
   7739 #line 7740 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7740     break;
   7741 
   7742   case 342:
   7743 #line 2376 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7744     {
   7745 #ifdef AMD_EXTENSIONS
   7746         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
   7747         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7748         (yyval.interm.type).basicType = EbtSampler;
   7749         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true);
   7750 #endif
   7751     }
   7752 #line 7753 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7753     break;
   7754 
   7755   case 343:
   7756 #line 2384 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7757     {
   7758 #ifdef AMD_EXTENSIONS
   7759         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
   7760         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7761         (yyval.interm.type).basicType = EbtSampler;
   7762         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true);
   7763 #endif
   7764     }
   7765 #line 7766 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7766     break;
   7767 
   7768   case 344:
   7769 #line 2392 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7770     {
   7771 #ifdef AMD_EXTENSIONS
   7772         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
   7773         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7774         (yyval.interm.type).basicType = EbtSampler;
   7775         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true);
   7776 #endif
   7777     }
   7778 #line 7779 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7779     break;
   7780 
   7781   case 345:
   7782 #line 2400 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7783     {
   7784 #ifdef AMD_EXTENSIONS
   7785         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
   7786         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7787         (yyval.interm.type).basicType = EbtSampler;
   7788         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true);
   7789 #endif
   7790     }
   7791 #line 7792 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7792     break;
   7793 
   7794   case 346:
   7795 #line 2408 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7796     {
   7797 #ifdef AMD_EXTENSIONS
   7798         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
   7799         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7800         (yyval.interm.type).basicType = EbtSampler;
   7801         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true);
   7802 #endif
   7803     }
   7804 #line 7805 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7805     break;
   7806 
   7807   case 347:
   7808 #line 2416 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7809     {
   7810         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7811         (yyval.interm.type).basicType = EbtSampler;
   7812         (yyval.interm.type).sampler.set(EbtInt, Esd1D);
   7813     }
   7814 #line 7815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7815     break;
   7816 
   7817   case 348:
   7818 #line 2421 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7819     {
   7820         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7821         (yyval.interm.type).basicType = EbtSampler;
   7822         (yyval.interm.type).sampler.set(EbtInt, Esd2D);
   7823     }
   7824 #line 7825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7825     break;
   7826 
   7827   case 349:
   7828 #line 2426 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7829     {
   7830         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7831         (yyval.interm.type).basicType = EbtSampler;
   7832         (yyval.interm.type).sampler.set(EbtInt, Esd3D);
   7833     }
   7834 #line 7835 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7835     break;
   7836 
   7837   case 350:
   7838 #line 2431 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7839     {
   7840         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7841         (yyval.interm.type).basicType = EbtSampler;
   7842         (yyval.interm.type).sampler.set(EbtInt, EsdCube);
   7843     }
   7844 #line 7845 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7845     break;
   7846 
   7847   case 351:
   7848 #line 2436 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7849     {
   7850         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7851         (yyval.interm.type).basicType = EbtSampler;
   7852         (yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
   7853     }
   7854 #line 7855 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7855     break;
   7856 
   7857   case 352:
   7858 #line 2441 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7859     {
   7860         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7861         (yyval.interm.type).basicType = EbtSampler;
   7862         (yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
   7863     }
   7864 #line 7865 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7865     break;
   7866 
   7867   case 353:
   7868 #line 2446 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7869     {
   7870         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7871         (yyval.interm.type).basicType = EbtSampler;
   7872         (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
   7873     }
   7874 #line 7875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7875     break;
   7876 
   7877   case 354:
   7878 #line 2451 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7879     {
   7880         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7881         (yyval.interm.type).basicType = EbtSampler;
   7882         (yyval.interm.type).sampler.set(EbtUint, Esd1D);
   7883     }
   7884 #line 7885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7885     break;
   7886 
   7887   case 355:
   7888 #line 2456 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7889     {
   7890         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7891         (yyval.interm.type).basicType = EbtSampler;
   7892         (yyval.interm.type).sampler.set(EbtUint, Esd2D);
   7893     }
   7894 #line 7895 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7895     break;
   7896 
   7897   case 356:
   7898 #line 2461 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7899     {
   7900         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7901         (yyval.interm.type).basicType = EbtSampler;
   7902         (yyval.interm.type).sampler.set(EbtUint, Esd3D);
   7903     }
   7904 #line 7905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7905     break;
   7906 
   7907   case 357:
   7908 #line 2466 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7909     {
   7910         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7911         (yyval.interm.type).basicType = EbtSampler;
   7912         (yyval.interm.type).sampler.set(EbtUint, EsdCube);
   7913     }
   7914 #line 7915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7915     break;
   7916 
   7917   case 358:
   7918 #line 2471 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7919     {
   7920         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7921         (yyval.interm.type).basicType = EbtSampler;
   7922         (yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
   7923     }
   7924 #line 7925 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7925     break;
   7926 
   7927   case 359:
   7928 #line 2476 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7929     {
   7930         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7931         (yyval.interm.type).basicType = EbtSampler;
   7932         (yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
   7933     }
   7934 #line 7935 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7935     break;
   7936 
   7937   case 360:
   7938 #line 2481 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7939     {
   7940         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7941         (yyval.interm.type).basicType = EbtSampler;
   7942         (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
   7943     }
   7944 #line 7945 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7945     break;
   7946 
   7947   case 361:
   7948 #line 2486 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7949     {
   7950         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7951         (yyval.interm.type).basicType = EbtSampler;
   7952         (yyval.interm.type).sampler.set(EbtFloat, EsdRect);
   7953     }
   7954 #line 7955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7955     break;
   7956 
   7957   case 362:
   7958 #line 2491 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7959     {
   7960         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7961         (yyval.interm.type).basicType = EbtSampler;
   7962         (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
   7963     }
   7964 #line 7965 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7965     break;
   7966 
   7967   case 363:
   7968 #line 2496 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7969     {
   7970 #ifdef AMD_EXTENSIONS
   7971         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
   7972         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7973         (yyval.interm.type).basicType = EbtSampler;
   7974         (yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
   7975 #endif
   7976     }
   7977 #line 7978 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7978     break;
   7979 
   7980   case 364:
   7981 #line 2504 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7982     {
   7983 #ifdef AMD_EXTENSIONS
   7984         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
   7985         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7986         (yyval.interm.type).basicType = EbtSampler;
   7987         (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
   7988 #endif
   7989     }
   7990 #line 7991 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7991     break;
   7992 
   7993   case 365:
   7994 #line 2512 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7995     {
   7996         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7997         (yyval.interm.type).basicType = EbtSampler;
   7998         (yyval.interm.type).sampler.set(EbtInt, EsdRect);
   7999     }
   8000 #line 8001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8001     break;
   8002 
   8003   case 366:
   8004 #line 2517 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8005     {
   8006         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8007         (yyval.interm.type).basicType = EbtSampler;
   8008         (yyval.interm.type).sampler.set(EbtUint, EsdRect);
   8009     }
   8010 #line 8011 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8011     break;
   8012 
   8013   case 367:
   8014 #line 2522 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8015     {
   8016         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8017         (yyval.interm.type).basicType = EbtSampler;
   8018         (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
   8019     }
   8020 #line 8021 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8021     break;
   8022 
   8023   case 368:
   8024 #line 2527 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8025     {
   8026 #ifdef AMD_EXTENSIONS
   8027         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
   8028         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8029         (yyval.interm.type).basicType = EbtSampler;
   8030         (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
   8031 #endif
   8032     }
   8033 #line 8034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8034     break;
   8035 
   8036   case 369:
   8037 #line 2535 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8038     {
   8039         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8040         (yyval.interm.type).basicType = EbtSampler;
   8041         (yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
   8042     }
   8043 #line 8044 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8044     break;
   8045 
   8046   case 370:
   8047 #line 2540 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8048     {
   8049         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8050         (yyval.interm.type).basicType = EbtSampler;
   8051         (yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
   8052     }
   8053 #line 8054 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8054     break;
   8055 
   8056   case 371:
   8057 #line 2545 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8058     {
   8059         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8060         (yyval.interm.type).basicType = EbtSampler;
   8061         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
   8062     }
   8063 #line 8064 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8064     break;
   8065 
   8066   case 372:
   8067 #line 2550 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8068     {
   8069 #ifdef AMD_EXTENSIONS
   8070         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
   8071         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8072         (yyval.interm.type).basicType = EbtSampler;
   8073         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
   8074 #endif
   8075     }
   8076 #line 8077 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8077     break;
   8078 
   8079   case 373:
   8080 #line 2558 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8081     {
   8082         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8083         (yyval.interm.type).basicType = EbtSampler;
   8084         (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
   8085     }
   8086 #line 8087 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8087     break;
   8088 
   8089   case 374:
   8090 #line 2563 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8091     {
   8092         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8093         (yyval.interm.type).basicType = EbtSampler;
   8094         (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
   8095     }
   8096 #line 8097 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8097     break;
   8098 
   8099   case 375:
   8100 #line 2568 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8101     {
   8102         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8103         (yyval.interm.type).basicType = EbtSampler;
   8104         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
   8105     }
   8106 #line 8107 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8107     break;
   8108 
   8109   case 376:
   8110 #line 2573 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8111     {
   8112 #ifdef AMD_EXTENSIONS
   8113         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
   8114         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8115         (yyval.interm.type).basicType = EbtSampler;
   8116         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
   8117 #endif
   8118     }
   8119 #line 8120 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8120     break;
   8121 
   8122   case 377:
   8123 #line 2581 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8124     {
   8125         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8126         (yyval.interm.type).basicType = EbtSampler;
   8127         (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
   8128     }
   8129 #line 8130 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8130     break;
   8131 
   8132   case 378:
   8133 #line 2586 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8134     {
   8135         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8136         (yyval.interm.type).basicType = EbtSampler;
   8137         (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
   8138     }
   8139 #line 8140 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8140     break;
   8141 
   8142   case 379:
   8143 #line 2591 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8144     {
   8145         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8146         (yyval.interm.type).basicType = EbtSampler;
   8147         (yyval.interm.type).sampler.setPureSampler(false);
   8148     }
   8149 #line 8150 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8150     break;
   8151 
   8152   case 380:
   8153 #line 2596 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8154     {
   8155         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8156         (yyval.interm.type).basicType = EbtSampler;
   8157         (yyval.interm.type).sampler.setPureSampler(true);
   8158     }
   8159 #line 8160 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8160     break;
   8161 
   8162   case 381:
   8163 #line 2601 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8164     {
   8165         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8166         (yyval.interm.type).basicType = EbtSampler;
   8167         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
   8168     }
   8169 #line 8170 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8170     break;
   8171 
   8172   case 382:
   8173 #line 2606 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8174     {
   8175 #ifdef AMD_EXTENSIONS
   8176         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
   8177         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8178         (yyval.interm.type).basicType = EbtSampler;
   8179         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
   8180 #endif
   8181     }
   8182 #line 8183 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8183     break;
   8184 
   8185   case 383:
   8186 #line 2614 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8187     {
   8188         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8189         (yyval.interm.type).basicType = EbtSampler;
   8190         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
   8191     }
   8192 #line 8193 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8193     break;
   8194 
   8195   case 384:
   8196 #line 2619 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8197     {
   8198 #ifdef AMD_EXTENSIONS
   8199         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
   8200         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8201         (yyval.interm.type).basicType = EbtSampler;
   8202         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
   8203 #endif
   8204     }
   8205 #line 8206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8206     break;
   8207 
   8208   case 385:
   8209 #line 2627 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8210     {
   8211         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8212         (yyval.interm.type).basicType = EbtSampler;
   8213         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
   8214     }
   8215 #line 8216 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8216     break;
   8217 
   8218   case 386:
   8219 #line 2632 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8220     {
   8221 #ifdef AMD_EXTENSIONS
   8222         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
   8223         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8224         (yyval.interm.type).basicType = EbtSampler;
   8225         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
   8226 #endif
   8227     }
   8228 #line 8229 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8229     break;
   8230 
   8231   case 387:
   8232 #line 2640 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8233     {
   8234         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8235         (yyval.interm.type).basicType = EbtSampler;
   8236         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
   8237     }
   8238 #line 8239 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8239     break;
   8240 
   8241   case 388:
   8242 #line 2645 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8243     {
   8244 #ifdef AMD_EXTENSIONS
   8245         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
   8246         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8247         (yyval.interm.type).basicType = EbtSampler;
   8248         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
   8249 #endif
   8250     }
   8251 #line 8252 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8252     break;
   8253 
   8254   case 389:
   8255 #line 2653 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8256     {
   8257         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8258         (yyval.interm.type).basicType = EbtSampler;
   8259         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
   8260     }
   8261 #line 8262 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8262     break;
   8263 
   8264   case 390:
   8265 #line 2658 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8266     {
   8267 #ifdef AMD_EXTENSIONS
   8268         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
   8269         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8270         (yyval.interm.type).basicType = EbtSampler;
   8271         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
   8272 #endif
   8273     }
   8274 #line 8275 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8275     break;
   8276 
   8277   case 391:
   8278 #line 2666 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8279     {
   8280         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8281         (yyval.interm.type).basicType = EbtSampler;
   8282         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
   8283     }
   8284 #line 8285 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8285     break;
   8286 
   8287   case 392:
   8288 #line 2671 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8289     {
   8290 #ifdef AMD_EXTENSIONS
   8291         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
   8292         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8293         (yyval.interm.type).basicType = EbtSampler;
   8294         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true);
   8295 #endif
   8296     }
   8297 #line 8298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8298     break;
   8299 
   8300   case 393:
   8301 #line 2679 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8302     {
   8303         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8304         (yyval.interm.type).basicType = EbtSampler;
   8305         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
   8306     }
   8307 #line 8308 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8308     break;
   8309 
   8310   case 394:
   8311 #line 2684 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8312     {
   8313 #ifdef AMD_EXTENSIONS
   8314         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
   8315         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8316         (yyval.interm.type).basicType = EbtSampler;
   8317         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
   8318 #endif
   8319     }
   8320 #line 8321 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8321     break;
   8322 
   8323   case 395:
   8324 #line 2692 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8325     {
   8326         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8327         (yyval.interm.type).basicType = EbtSampler;
   8328         (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
   8329     }
   8330 #line 8331 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8331     break;
   8332 
   8333   case 396:
   8334 #line 2697 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8335     {
   8336         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8337         (yyval.interm.type).basicType = EbtSampler;
   8338         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
   8339     }
   8340 #line 8341 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8341     break;
   8342 
   8343   case 397:
   8344 #line 2702 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8345     {
   8346         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8347         (yyval.interm.type).basicType = EbtSampler;
   8348         (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
   8349     }
   8350 #line 8351 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8351     break;
   8352 
   8353   case 398:
   8354 #line 2707 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8355     {
   8356         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8357         (yyval.interm.type).basicType = EbtSampler;
   8358         (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
   8359     }
   8360 #line 8361 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8361     break;
   8362 
   8363   case 399:
   8364 #line 2712 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8365     {
   8366         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8367         (yyval.interm.type).basicType = EbtSampler;
   8368         (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
   8369     }
   8370 #line 8371 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8371     break;
   8372 
   8373   case 400:
   8374 #line 2717 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8375     {
   8376         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8377         (yyval.interm.type).basicType = EbtSampler;
   8378         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
   8379     }
   8380 #line 8381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8381     break;
   8382 
   8383   case 401:
   8384 #line 2722 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8385     {
   8386         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8387         (yyval.interm.type).basicType = EbtSampler;
   8388         (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
   8389     }
   8390 #line 8391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8391     break;
   8392 
   8393   case 402:
   8394 #line 2727 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8395     {
   8396         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8397         (yyval.interm.type).basicType = EbtSampler;
   8398         (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
   8399     }
   8400 #line 8401 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8401     break;
   8402 
   8403   case 403:
   8404 #line 2732 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8405     {
   8406         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8407         (yyval.interm.type).basicType = EbtSampler;
   8408         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
   8409     }
   8410 #line 8411 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8411     break;
   8412 
   8413   case 404:
   8414 #line 2737 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8415     {
   8416         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8417         (yyval.interm.type).basicType = EbtSampler;
   8418         (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
   8419     }
   8420 #line 8421 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8421     break;
   8422 
   8423   case 405:
   8424 #line 2742 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8425     {
   8426         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8427         (yyval.interm.type).basicType = EbtSampler;
   8428         (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
   8429     }
   8430 #line 8431 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8431     break;
   8432 
   8433   case 406:
   8434 #line 2747 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8435     {
   8436         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8437         (yyval.interm.type).basicType = EbtSampler;
   8438         (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
   8439     }
   8440 #line 8441 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8441     break;
   8442 
   8443   case 407:
   8444 #line 2752 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8445     {
   8446         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8447         (yyval.interm.type).basicType = EbtSampler;
   8448         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
   8449     }
   8450 #line 8451 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8451     break;
   8452 
   8453   case 408:
   8454 #line 2757 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8455     {
   8456         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8457         (yyval.interm.type).basicType = EbtSampler;
   8458         (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
   8459     }
   8460 #line 8461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8461     break;
   8462 
   8463   case 409:
   8464 #line 2762 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8465     {
   8466         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8467         (yyval.interm.type).basicType = EbtSampler;
   8468         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
   8469     }
   8470 #line 8471 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8471     break;
   8472 
   8473   case 410:
   8474 #line 2767 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8475     {
   8476 #ifdef AMD_EXTENSIONS
   8477         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
   8478         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8479         (yyval.interm.type).basicType = EbtSampler;
   8480         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect);
   8481 #endif
   8482     }
   8483 #line 8484 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8484     break;
   8485 
   8486   case 411:
   8487 #line 2775 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8488     {
   8489         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8490         (yyval.interm.type).basicType = EbtSampler;
   8491         (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
   8492     }
   8493 #line 8494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8494     break;
   8495 
   8496   case 412:
   8497 #line 2780 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8498     {
   8499         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8500         (yyval.interm.type).basicType = EbtSampler;
   8501         (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
   8502     }
   8503 #line 8504 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8504     break;
   8505 
   8506   case 413:
   8507 #line 2785 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8508     {
   8509         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8510         (yyval.interm.type).basicType = EbtSampler;
   8511         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
   8512     }
   8513 #line 8514 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8514     break;
   8515 
   8516   case 414:
   8517 #line 2790 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8518     {
   8519 #ifdef AMD_EXTENSIONS
   8520         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
   8521         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8522         (yyval.interm.type).basicType = EbtSampler;
   8523         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer);
   8524 #endif
   8525     }
   8526 #line 8527 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8527     break;
   8528 
   8529   case 415:
   8530 #line 2798 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8531     {
   8532         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8533         (yyval.interm.type).basicType = EbtSampler;
   8534         (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
   8535     }
   8536 #line 8537 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8537     break;
   8538 
   8539   case 416:
   8540 #line 2803 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8541     {
   8542         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8543         (yyval.interm.type).basicType = EbtSampler;
   8544         (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
   8545     }
   8546 #line 8547 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8547     break;
   8548 
   8549   case 417:
   8550 #line 2808 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8551     {
   8552         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8553         (yyval.interm.type).basicType = EbtSampler;
   8554         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
   8555     }
   8556 #line 8557 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8557     break;
   8558 
   8559   case 418:
   8560 #line 2813 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8561     {
   8562 #ifdef AMD_EXTENSIONS
   8563         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
   8564         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8565         (yyval.interm.type).basicType = EbtSampler;
   8566         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
   8567 #endif
   8568     }
   8569 #line 8570 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8570     break;
   8571 
   8572   case 419:
   8573 #line 2821 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8574     {
   8575         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8576         (yyval.interm.type).basicType = EbtSampler;
   8577         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
   8578     }
   8579 #line 8580 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8580     break;
   8581 
   8582   case 420:
   8583 #line 2826 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8584     {
   8585         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8586         (yyval.interm.type).basicType = EbtSampler;
   8587         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
   8588     }
   8589 #line 8590 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8590     break;
   8591 
   8592   case 421:
   8593 #line 2831 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8594     {
   8595         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8596         (yyval.interm.type).basicType = EbtSampler;
   8597         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
   8598     }
   8599 #line 8600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8600     break;
   8601 
   8602   case 422:
   8603 #line 2836 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8604     {
   8605 #ifdef AMD_EXTENSIONS
   8606         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
   8607         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8608         (yyval.interm.type).basicType = EbtSampler;
   8609         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
   8610 #endif
   8611     }
   8612 #line 8613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8613     break;
   8614 
   8615   case 423:
   8616 #line 2844 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8617     {
   8618         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8619         (yyval.interm.type).basicType = EbtSampler;
   8620         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
   8621     }
   8622 #line 8623 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8623     break;
   8624 
   8625   case 424:
   8626 #line 2849 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8627     {
   8628         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8629         (yyval.interm.type).basicType = EbtSampler;
   8630         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
   8631     }
   8632 #line 8633 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8633     break;
   8634 
   8635   case 425:
   8636 #line 2854 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8637     {
   8638         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8639         (yyval.interm.type).basicType = EbtSampler;
   8640         (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
   8641     }
   8642 #line 8643 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8643     break;
   8644 
   8645   case 426:
   8646 #line 2859 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8647     {
   8648 #ifdef AMD_EXTENSIONS
   8649         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
   8650         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8651         (yyval.interm.type).basicType = EbtSampler;
   8652         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D);
   8653 #endif
   8654     }
   8655 #line 8656 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8656     break;
   8657 
   8658   case 427:
   8659 #line 2867 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8660     {
   8661         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8662         (yyval.interm.type).basicType = EbtSampler;
   8663         (yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
   8664     }
   8665 #line 8666 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8666     break;
   8667 
   8668   case 428:
   8669 #line 2872 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8670     {
   8671         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8672         (yyval.interm.type).basicType = EbtSampler;
   8673         (yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
   8674     }
   8675 #line 8676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8676     break;
   8677 
   8678   case 429:
   8679 #line 2877 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8680     {
   8681         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8682         (yyval.interm.type).basicType = EbtSampler;
   8683         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
   8684     }
   8685 #line 8686 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8686     break;
   8687 
   8688   case 430:
   8689 #line 2882 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8690     {
   8691 #ifdef AMD_EXTENSIONS
   8692         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
   8693         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8694         (yyval.interm.type).basicType = EbtSampler;
   8695         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D);
   8696 #endif
   8697     }
   8698 #line 8699 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8699     break;
   8700 
   8701   case 431:
   8702 #line 2890 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8703     {
   8704         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8705         (yyval.interm.type).basicType = EbtSampler;
   8706         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D);
   8707     }
   8708 #line 8709 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8709     break;
   8710 
   8711   case 432:
   8712 #line 2895 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8713     {
   8714         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8715         (yyval.interm.type).basicType = EbtSampler;
   8716         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D);
   8717     }
   8718 #line 8719 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8719     break;
   8720 
   8721   case 433:
   8722 #line 2900 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8723     {
   8724         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8725         (yyval.interm.type).basicType = EbtSampler;
   8726         (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
   8727     }
   8728 #line 8729 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8729     break;
   8730 
   8731   case 434:
   8732 #line 2905 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8733     {
   8734 #ifdef AMD_EXTENSIONS
   8735         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
   8736         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8737         (yyval.interm.type).basicType = EbtSampler;
   8738         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D);
   8739 #endif
   8740     }
   8741 #line 8742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8742     break;
   8743 
   8744   case 435:
   8745 #line 2913 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8746     {
   8747         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8748         (yyval.interm.type).basicType = EbtSampler;
   8749         (yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
   8750     }
   8751 #line 8752 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8752     break;
   8753 
   8754   case 436:
   8755 #line 2918 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8756     {
   8757         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8758         (yyval.interm.type).basicType = EbtSampler;
   8759         (yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
   8760     }
   8761 #line 8762 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8762     break;
   8763 
   8764   case 437:
   8765 #line 2923 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8766     {
   8767         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8768         (yyval.interm.type).basicType = EbtSampler;
   8769         (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
   8770     }
   8771 #line 8772 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8772     break;
   8773 
   8774   case 438:
   8775 #line 2928 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8776     {
   8777 #ifdef AMD_EXTENSIONS
   8778         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
   8779         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8780         (yyval.interm.type).basicType = EbtSampler;
   8781         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect);
   8782 #endif
   8783     }
   8784 #line 8785 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8785     break;
   8786 
   8787   case 439:
   8788 #line 2936 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8789     {
   8790         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8791         (yyval.interm.type).basicType = EbtSampler;
   8792         (yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
   8793     }
   8794 #line 8795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8795     break;
   8796 
   8797   case 440:
   8798 #line 2941 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8799     {
   8800         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8801         (yyval.interm.type).basicType = EbtSampler;
   8802         (yyval.interm.type).sampler.setImage(EbtUint, EsdRect);
   8803     }
   8804 #line 8805 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8805     break;
   8806 
   8807   case 441:
   8808 #line 2946 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8809     {
   8810         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8811         (yyval.interm.type).basicType = EbtSampler;
   8812         (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
   8813     }
   8814 #line 8815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8815     break;
   8816 
   8817   case 442:
   8818 #line 2951 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8819     {
   8820 #ifdef AMD_EXTENSIONS
   8821         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
   8822         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8823         (yyval.interm.type).basicType = EbtSampler;
   8824         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube);
   8825 #endif
   8826     }
   8827 #line 8828 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8828     break;
   8829 
   8830   case 443:
   8831 #line 2959 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8832     {
   8833         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8834         (yyval.interm.type).basicType = EbtSampler;
   8835         (yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
   8836     }
   8837 #line 8838 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8838     break;
   8839 
   8840   case 444:
   8841 #line 2964 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8842     {
   8843         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8844         (yyval.interm.type).basicType = EbtSampler;
   8845         (yyval.interm.type).sampler.setImage(EbtUint, EsdCube);
   8846     }
   8847 #line 8848 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8848     break;
   8849 
   8850   case 445:
   8851 #line 2969 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8852     {
   8853         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8854         (yyval.interm.type).basicType = EbtSampler;
   8855         (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
   8856     }
   8857 #line 8858 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8858     break;
   8859 
   8860   case 446:
   8861 #line 2974 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8862     {
   8863 #ifdef AMD_EXTENSIONS
   8864         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
   8865         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8866         (yyval.interm.type).basicType = EbtSampler;
   8867         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer);
   8868 #endif
   8869     }
   8870 #line 8871 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8871     break;
   8872 
   8873   case 447:
   8874 #line 2982 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8875     {
   8876         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8877         (yyval.interm.type).basicType = EbtSampler;
   8878         (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
   8879     }
   8880 #line 8881 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8881     break;
   8882 
   8883   case 448:
   8884 #line 2987 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8885     {
   8886         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8887         (yyval.interm.type).basicType = EbtSampler;
   8888         (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer);
   8889     }
   8890 #line 8891 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8891     break;
   8892 
   8893   case 449:
   8894 #line 2992 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8895     {
   8896         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8897         (yyval.interm.type).basicType = EbtSampler;
   8898         (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
   8899     }
   8900 #line 8901 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8901     break;
   8902 
   8903   case 450:
   8904 #line 2997 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8905     {
   8906 #ifdef AMD_EXTENSIONS
   8907         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
   8908         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8909         (yyval.interm.type).basicType = EbtSampler;
   8910         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true);
   8911 #endif
   8912     }
   8913 #line 8914 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8914     break;
   8915 
   8916   case 451:
   8917 #line 3005 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8918     {
   8919         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8920         (yyval.interm.type).basicType = EbtSampler;
   8921         (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
   8922     }
   8923 #line 8924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8924     break;
   8925 
   8926   case 452:
   8927 #line 3010 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8928     {
   8929         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8930         (yyval.interm.type).basicType = EbtSampler;
   8931         (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true);
   8932     }
   8933 #line 8934 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8934     break;
   8935 
   8936   case 453:
   8937 #line 3015 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8938     {
   8939         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8940         (yyval.interm.type).basicType = EbtSampler;
   8941         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
   8942     }
   8943 #line 8944 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8944     break;
   8945 
   8946   case 454:
   8947 #line 3020 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8948     {
   8949 #ifdef AMD_EXTENSIONS
   8950         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
   8951         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8952         (yyval.interm.type).basicType = EbtSampler;
   8953         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true);
   8954 #endif
   8955     }
   8956 #line 8957 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8957     break;
   8958 
   8959   case 455:
   8960 #line 3028 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8961     {
   8962         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8963         (yyval.interm.type).basicType = EbtSampler;
   8964         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
   8965     }
   8966 #line 8967 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8967     break;
   8968 
   8969   case 456:
   8970 #line 3033 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8971     {
   8972         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8973         (yyval.interm.type).basicType = EbtSampler;
   8974         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
   8975     }
   8976 #line 8977 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8977     break;
   8978 
   8979   case 457:
   8980 #line 3038 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8981     {
   8982         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8983         (yyval.interm.type).basicType = EbtSampler;
   8984         (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
   8985     }
   8986 #line 8987 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8987     break;
   8988 
   8989   case 458:
   8990 #line 3043 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   8991     {
   8992 #ifdef AMD_EXTENSIONS
   8993         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
   8994         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   8995         (yyval.interm.type).basicType = EbtSampler;
   8996         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true);
   8997 #endif
   8998     }
   8999 #line 9000 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9000     break;
   9001 
   9002   case 459:
   9003 #line 3051 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9004     {
   9005         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9006         (yyval.interm.type).basicType = EbtSampler;
   9007         (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
   9008     }
   9009 #line 9010 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9010     break;
   9011 
   9012   case 460:
   9013 #line 3056 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9014     {
   9015         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9016         (yyval.interm.type).basicType = EbtSampler;
   9017         (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
   9018     }
   9019 #line 9020 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9020     break;
   9021 
   9022   case 461:
   9023 #line 3061 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9024     {
   9025         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9026         (yyval.interm.type).basicType = EbtSampler;
   9027         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
   9028     }
   9029 #line 9030 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9030     break;
   9031 
   9032   case 462:
   9033 #line 3066 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9034     {
   9035 #ifdef AMD_EXTENSIONS
   9036         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
   9037         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9038         (yyval.interm.type).basicType = EbtSampler;
   9039         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true);
   9040 #endif
   9041     }
   9042 #line 9043 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9043     break;
   9044 
   9045   case 463:
   9046 #line 3074 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9047     {
   9048         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9049         (yyval.interm.type).basicType = EbtSampler;
   9050         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
   9051     }
   9052 #line 9053 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9053     break;
   9054 
   9055   case 464:
   9056 #line 3079 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9057     {
   9058         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9059         (yyval.interm.type).basicType = EbtSampler;
   9060         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
   9061     }
   9062 #line 9063 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9063     break;
   9064 
   9065   case 465:
   9066 #line 3084 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9067     {
   9068         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9069         (yyval.interm.type).basicType = EbtSampler;
   9070         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
   9071     }
   9072 #line 9073 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9073     break;
   9074 
   9075   case 466:
   9076 #line 3089 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9077     {
   9078 #ifdef AMD_EXTENSIONS
   9079         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
   9080         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9081         (yyval.interm.type).basicType = EbtSampler;
   9082         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true);
   9083 #endif
   9084     }
   9085 #line 9086 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9086     break;
   9087 
   9088   case 467:
   9089 #line 3097 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9090     {
   9091         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9092         (yyval.interm.type).basicType = EbtSampler;
   9093         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
   9094     }
   9095 #line 9096 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9096     break;
   9097 
   9098   case 468:
   9099 #line 3102 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9100     {
   9101         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9102         (yyval.interm.type).basicType = EbtSampler;
   9103         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
   9104     }
   9105 #line 9106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9106     break;
   9107 
   9108   case 469:
   9109 #line 3107 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9110     {  // GL_OES_EGL_image_external
   9111         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9112         (yyval.interm.type).basicType = EbtSampler;
   9113         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
   9114         (yyval.interm.type).sampler.external = true;
   9115     }
   9116 #line 9117 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9117     break;
   9118 
   9119   case 470:
   9120 #line 3113 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9121     {
   9122         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
   9123         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9124         (yyval.interm.type).basicType = EbtSampler;
   9125         (yyval.interm.type).sampler.setSubpass(EbtFloat);
   9126     }
   9127 #line 9128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9128     break;
   9129 
   9130   case 471:
   9131 #line 3119 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9132     {
   9133         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
   9134         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9135         (yyval.interm.type).basicType = EbtSampler;
   9136         (yyval.interm.type).sampler.setSubpass(EbtFloat, true);
   9137     }
   9138 #line 9139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9139     break;
   9140 
   9141   case 472:
   9142 #line 3125 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9143     {
   9144 #ifdef AMD_EXTENSIONS
   9145         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
   9146         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
   9147         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9148         (yyval.interm.type).basicType = EbtSampler;
   9149         (yyval.interm.type).sampler.setSubpass(EbtFloat16);
   9150 #endif
   9151     }
   9152 #line 9153 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9153     break;
   9154 
   9155   case 473:
   9156 #line 3134 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9157     {
   9158 #ifdef AMD_EXTENSIONS
   9159         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
   9160         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
   9161         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9162         (yyval.interm.type).basicType = EbtSampler;
   9163         (yyval.interm.type).sampler.setSubpass(EbtFloat16, true);
   9164 #endif
   9165     }
   9166 #line 9167 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9167     break;
   9168 
   9169   case 474:
   9170 #line 3143 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9171     {
   9172         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
   9173         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9174         (yyval.interm.type).basicType = EbtSampler;
   9175         (yyval.interm.type).sampler.setSubpass(EbtInt);
   9176     }
   9177 #line 9178 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9178     break;
   9179 
   9180   case 475:
   9181 #line 3149 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9182     {
   9183         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
   9184         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9185         (yyval.interm.type).basicType = EbtSampler;
   9186         (yyval.interm.type).sampler.setSubpass(EbtInt, true);
   9187     }
   9188 #line 9189 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9189     break;
   9190 
   9191   case 476:
   9192 #line 3155 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9193     {
   9194         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
   9195         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9196         (yyval.interm.type).basicType = EbtSampler;
   9197         (yyval.interm.type).sampler.setSubpass(EbtUint);
   9198     }
   9199 #line 9200 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9200     break;
   9201 
   9202   case 477:
   9203 #line 3161 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9204     {
   9205         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
   9206         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9207         (yyval.interm.type).basicType = EbtSampler;
   9208         (yyval.interm.type).sampler.setSubpass(EbtUint, true);
   9209     }
   9210 #line 9211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9211     break;
   9212 
   9213   case 478:
   9214 #line 3167 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9215     {
   9216         (yyval.interm.type) = (yyvsp[0].interm.type);
   9217         (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
   9218         parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
   9219     }
   9220 #line 9221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9221     break;
   9222 
   9223   case 479:
   9224 #line 3172 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9225     {
   9226         //
   9227         // This is for user defined type names.  The lexical phase looked up the
   9228         // type.
   9229         //
   9230         if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) {
   9231             const TType& structure = variable->getType();
   9232             (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9233             (yyval.interm.type).basicType = EbtStruct;
   9234             (yyval.interm.type).userDef = &structure;
   9235         } else
   9236             parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
   9237     }
   9238 #line 9239 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9239     break;
   9240 
   9241   case 480:
   9242 #line 3188 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9243     {
   9244         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
   9245         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9246         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
   9247     }
   9248 #line 9249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9249     break;
   9250 
   9251   case 481:
   9252 #line 3193 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9253     {
   9254         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
   9255         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9256         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
   9257     }
   9258 #line 9259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9259     break;
   9260 
   9261   case 482:
   9262 #line 3198 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9263     {
   9264         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
   9265         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   9266         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
   9267     }
   9268 #line 9269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9269     break;
   9270 
   9271   case 483:
   9272 #line 3206 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9273     { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
   9274 #line 9275 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9275     break;
   9276 
   9277   case 484:
   9278 #line 3206 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9279     {
   9280         TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
   9281         parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
   9282         TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true);
   9283         if (! parseContext.symbolTable.insert(*userTypeDef))
   9284             parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct");
   9285         (yyval.interm.type).init((yyvsp[-5].lex).loc);
   9286         (yyval.interm.type).basicType = EbtStruct;
   9287         (yyval.interm.type).userDef = structure;
   9288         --parseContext.structNestingLevel;
   9289     }
   9290 #line 9291 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9291     break;
   9292 
   9293   case 485:
   9294 #line 3217 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9295     { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
   9296 #line 9297 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9297     break;
   9298 
   9299   case 486:
   9300 #line 3217 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9301     {
   9302         TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
   9303         (yyval.interm.type).init((yyvsp[-4].lex).loc);
   9304         (yyval.interm.type).basicType = EbtStruct;
   9305         (yyval.interm.type).userDef = structure;
   9306         --parseContext.structNestingLevel;
   9307     }
   9308 #line 9309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9309     break;
   9310 
   9311   case 487:
   9312 #line 3227 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9313     {
   9314         (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
   9315     }
   9316 #line 9317 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9317     break;
   9318 
   9319   case 488:
   9320 #line 3230 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9321     {
   9322         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
   9323         for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
   9324             for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) {
   9325                 if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName())
   9326                     parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str());
   9327             }
   9328             (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
   9329         }
   9330     }
   9331 #line 9332 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9332     break;
   9333 
   9334   case 489:
   9335 #line 3243 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9336     {
   9337         if ((yyvsp[-2].interm.type).arraySizes) {
   9338             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
   9339             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
   9340             if (parseContext.profile == EEsProfile)
   9341                 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
   9342         }
   9343 
   9344         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
   9345 
   9346         parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
   9347         parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
   9348 
   9349         for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
   9350             TType type((yyvsp[-2].interm.type));
   9351             type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
   9352             type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
   9353             type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
   9354             parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
   9355             (*(yyval.interm.typeList))[i].type->shallowCopy(type);
   9356         }
   9357     }
   9358 #line 9359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9359     break;
   9360 
   9361   case 490:
   9362 #line 3265 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9363     {
   9364         if ((yyvsp[-2].interm.type).arraySizes) {
   9365             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
   9366             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
   9367             if (parseContext.profile == EEsProfile)
   9368                 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
   9369         }
   9370 
   9371         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
   9372 
   9373         parseContext.memberQualifierCheck((yyvsp[-3].interm.type));
   9374         parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
   9375         parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true);
   9376         parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
   9377 
   9378         for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
   9379             TType type((yyvsp[-2].interm.type));
   9380             type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
   9381             type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
   9382             type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
   9383             parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
   9384             (*(yyval.interm.typeList))[i].type->shallowCopy(type);
   9385         }
   9386     }
   9387 #line 9388 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9388     break;
   9389 
   9390   case 491:
   9391 #line 3292 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9392     {
   9393         (yyval.interm.typeList) = new TTypeList;
   9394         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
   9395     }
   9396 #line 9397 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9397     break;
   9398 
   9399   case 492:
   9400 #line 3296 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9401     {
   9402         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
   9403     }
   9404 #line 9405 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9405     break;
   9406 
   9407   case 493:
   9408 #line 3302 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9409     {
   9410         (yyval.interm.typeLine).type = new TType(EbtVoid);
   9411         (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
   9412         (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
   9413     }
   9414 #line 9415 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9415     break;
   9416 
   9417   case 494:
   9418 #line 3307 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9419     {
   9420         parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
   9421 
   9422         (yyval.interm.typeLine).type = new TType(EbtVoid);
   9423         (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc;
   9424         (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
   9425         (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
   9426     }
   9427 #line 9428 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9428     break;
   9429 
   9430   case 495:
   9431 #line 3318 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9432     {
   9433         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   9434     }
   9435 #line 9436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9436     break;
   9437 
   9438   case 496:
   9439 #line 3321 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9440     {
   9441         const char* initFeature = "{ } style initializers";
   9442         parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
   9443         parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
   9444         (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
   9445     }
   9446 #line 9447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9447     break;
   9448 
   9449   case 497:
   9450 #line 3327 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9451     {
   9452         const char* initFeature = "{ } style initializers";
   9453         parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
   9454         parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
   9455         (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   9456     }
   9457 #line 9458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9458     break;
   9459 
   9460   case 498:
   9461 #line 3336 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9462     {
   9463         (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
   9464     }
   9465 #line 9466 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9466     break;
   9467 
   9468   case 499:
   9469 #line 3339 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9470     {
   9471         (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   9472     }
   9473 #line 9474 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9474     break;
   9475 
   9476   case 500:
   9477 #line 3345 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9478     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   9479 #line 9480 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9480     break;
   9481 
   9482   case 501:
   9483 #line 3349 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9484     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   9485 #line 9486 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9486     break;
   9487 
   9488   case 502:
   9489 #line 3350 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9490     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   9491 #line 9492 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9492     break;
   9493 
   9494   case 503:
   9495 #line 3356 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9496     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   9497 #line 9498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9498     break;
   9499 
   9500   case 504:
   9501 #line 3357 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9502     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   9503 #line 9504 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9504     break;
   9505 
   9506   case 505:
   9507 #line 3358 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9508     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   9509 #line 9510 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9510     break;
   9511 
   9512   case 506:
   9513 #line 3359 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9514     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   9515 #line 9516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9516     break;
   9517 
   9518   case 507:
   9519 #line 3360 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9520     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   9521 #line 9522 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9522     break;
   9523 
   9524   case 508:
   9525 #line 3361 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9526     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   9527 #line 9528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9528     break;
   9529 
   9530   case 509:
   9531 #line 3362 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9532     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   9533 #line 9534 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9534     break;
   9535 
   9536   case 510:
   9537 #line 3366 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9538     { (yyval.interm.intermNode) = 0; }
   9539 #line 9540 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9540     break;
   9541 
   9542   case 511:
   9543 #line 3367 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9544     {
   9545         parseContext.symbolTable.push();
   9546         ++parseContext.statementNestingLevel;
   9547     }
   9548 #line 9549 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9549     break;
   9550 
   9551   case 512:
   9552 #line 3371 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9553     {
   9554         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
   9555         --parseContext.statementNestingLevel;
   9556     }
   9557 #line 9558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9558     break;
   9559 
   9560   case 513:
   9561 #line 3375 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9562     {
   9563         if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate())
   9564             (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
   9565         (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode);
   9566     }
   9567 #line 9568 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9568     break;
   9569 
   9570   case 514:
   9571 #line 3383 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9572     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   9573 #line 9574 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9574     break;
   9575 
   9576   case 515:
   9577 #line 3384 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9578     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   9579 #line 9580 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9580     break;
   9581 
   9582   case 516:
   9583 #line 3388 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9584     {
   9585         ++parseContext.controlFlowNestingLevel;
   9586     }
   9587 #line 9588 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9588     break;
   9589 
   9590   case 517:
   9591 #line 3391 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9592     {
   9593         --parseContext.controlFlowNestingLevel;
   9594         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   9595     }
   9596 #line 9597 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9597     break;
   9598 
   9599   case 518:
   9600 #line 3395 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9601     {
   9602         parseContext.symbolTable.push();
   9603         ++parseContext.statementNestingLevel;
   9604         ++parseContext.controlFlowNestingLevel;
   9605     }
   9606 #line 9607 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9607     break;
   9608 
   9609   case 519:
   9610 #line 3400 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9611     {
   9612         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
   9613         --parseContext.statementNestingLevel;
   9614         --parseContext.controlFlowNestingLevel;
   9615         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   9616     }
   9617 #line 9618 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9618     break;
   9619 
   9620   case 520:
   9621 #line 3409 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9622     {
   9623         (yyval.interm.intermNode) = 0;
   9624     }
   9625 #line 9626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9626     break;
   9627 
   9628   case 521:
   9629 #line 3412 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9630     {
   9631         if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate())
   9632             (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
   9633         (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode);
   9634     }
   9635 #line 9636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9636     break;
   9637 
   9638   case 522:
   9639 #line 3420 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9640     {
   9641         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
   9642         if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
   9643                                             (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
   9644             parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode));
   9645             (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
   9646         }
   9647     }
   9648 #line 9649 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9649     break;
   9650 
   9651   case 523:
   9652 #line 3428 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9653     {
   9654         if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
   9655                                             (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
   9656             parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode));
   9657             (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
   9658         } else
   9659             (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
   9660     }
   9661 #line 9662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9662     break;
   9663 
   9664   case 524:
   9665 #line 3439 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9666     { (yyval.interm.intermNode) = 0; }
   9667 #line 9668 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9668     break;
   9669 
   9670   case 525:
   9671 #line 3440 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9672     { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
   9673 #line 9674 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9674     break;
   9675 
   9676   case 526:
   9677 #line 3444 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9678     {
   9679         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   9680     }
   9681 #line 9682 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9682     break;
   9683 
   9684   case 527:
   9685 #line 3447 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9686     {
   9687         parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
   9688         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   9689     }
   9690 #line 9691 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9691     break;
   9692 
   9693   case 528:
   9694 #line 3453 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9695     {
   9696         parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
   9697         (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
   9698     }
   9699 #line 9700 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9700     break;
   9701 
   9702   case 529:
   9703 #line 3460 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9704     {
   9705         (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
   9706         (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
   9707     }
   9708 #line 9709 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9709     break;
   9710 
   9711   case 530:
   9712 #line 3464 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9713     {
   9714         (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
   9715         (yyval.interm.nodePair).node2 = 0;
   9716     }
   9717 #line 9718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9718     break;
   9719 
   9720   case 531:
   9721 #line 3472 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9722     {
   9723         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   9724         parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
   9725     }
   9726 #line 9727 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9727     break;
   9728 
   9729   case 532:
   9730 #line 3476 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9731     {
   9732         parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
   9733 
   9734         TType type((yyvsp[-3].interm.type));
   9735         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
   9736         if (initNode)
   9737             (yyval.interm.intermTypedNode) = initNode->getAsTyped();
   9738         else
   9739             (yyval.interm.intermTypedNode) = 0;
   9740     }
   9741 #line 9742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9742     break;
   9743 
   9744   case 533:
   9745 #line 3489 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9746     {
   9747         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   9748     }
   9749 #line 9750 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9750     break;
   9751 
   9752   case 534:
   9753 #line 3492 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9754     {
   9755         parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
   9756         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   9757     }
   9758 #line 9759 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9759     break;
   9760 
   9761   case 535:
   9762 #line 3498 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9763     {
   9764         // start new switch sequence on the switch stack
   9765         ++parseContext.controlFlowNestingLevel;
   9766         ++parseContext.statementNestingLevel;
   9767         parseContext.switchSequenceStack.push_back(new TIntermSequence);
   9768         parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
   9769         parseContext.symbolTable.push();
   9770     }
   9771 #line 9772 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9772     break;
   9773 
   9774   case 536:
   9775 #line 3506 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9776     {
   9777         (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
   9778         delete parseContext.switchSequenceStack.back();
   9779         parseContext.switchSequenceStack.pop_back();
   9780         parseContext.switchLevel.pop_back();
   9781         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
   9782         --parseContext.statementNestingLevel;
   9783         --parseContext.controlFlowNestingLevel;
   9784     }
   9785 #line 9786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9786     break;
   9787 
   9788   case 537:
   9789 #line 3518 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9790     {
   9791         (yyval.interm.intermNode) = 0;
   9792     }
   9793 #line 9794 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9794     break;
   9795 
   9796   case 538:
   9797 #line 3521 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9798     {
   9799         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   9800     }
   9801 #line 9802 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9802     break;
   9803 
   9804   case 539:
   9805 #line 3527 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9806     {
   9807         (yyval.interm.intermNode) = 0;
   9808         if (parseContext.switchLevel.size() == 0)
   9809             parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", "");
   9810         else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
   9811             parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", "");
   9812         else {
   9813             parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case");
   9814             parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case");
   9815             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
   9816         }
   9817     }
   9818 #line 9819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9819     break;
   9820 
   9821   case 540:
   9822 #line 3539 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9823     {
   9824         (yyval.interm.intermNode) = 0;
   9825         if (parseContext.switchLevel.size() == 0)
   9826             parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", "");
   9827         else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
   9828             parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", "");
   9829         else
   9830             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
   9831     }
   9832 #line 9833 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9833     break;
   9834 
   9835   case 541:
   9836 #line 3551 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9837     {
   9838         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   9839     }
   9840 #line 9841 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9841     break;
   9842 
   9843   case 542:
   9844 #line 3554 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9845     {
   9846         parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
   9847         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   9848     }
   9849 #line 9850 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9850     break;
   9851 
   9852   case 543:
   9853 #line 3560 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9854     {
   9855         if (! parseContext.limits.whileLoops)
   9856             parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
   9857         parseContext.symbolTable.push();
   9858         ++parseContext.loopNestingLevel;
   9859         ++parseContext.statementNestingLevel;
   9860         ++parseContext.controlFlowNestingLevel;
   9861     }
   9862 #line 9863 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9863     break;
   9864 
   9865   case 544:
   9866 #line 3568 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9867     {
   9868         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
   9869         (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
   9870         --parseContext.loopNestingLevel;
   9871         --parseContext.statementNestingLevel;
   9872         --parseContext.controlFlowNestingLevel;
   9873     }
   9874 #line 9875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9875     break;
   9876 
   9877   case 545:
   9878 #line 3575 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9879     {
   9880         ++parseContext.loopNestingLevel;
   9881         ++parseContext.statementNestingLevel;
   9882         ++parseContext.controlFlowNestingLevel;
   9883     }
   9884 #line 9885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9885     break;
   9886 
   9887   case 546:
   9888 #line 3580 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9889     {
   9890         if (! parseContext.limits.whileLoops)
   9891             parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
   9892 
   9893         parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode));
   9894 
   9895         (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc);
   9896         --parseContext.loopNestingLevel;
   9897         --parseContext.statementNestingLevel;
   9898         --parseContext.controlFlowNestingLevel;
   9899     }
   9900 #line 9901 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9901     break;
   9902 
   9903   case 547:
   9904 #line 3591 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9905     {
   9906         parseContext.symbolTable.push();
   9907         ++parseContext.loopNestingLevel;
   9908         ++parseContext.statementNestingLevel;
   9909         ++parseContext.controlFlowNestingLevel;
   9910     }
   9911 #line 9912 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9912     break;
   9913 
   9914   case 548:
   9915 #line 3597 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9916     {
   9917         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
   9918         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
   9919         TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node1), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node2), true, (yyvsp[-6].lex).loc);
   9920         if (! parseContext.limits.nonInductiveForLoops)
   9921             parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop);
   9922         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc);
   9923         (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
   9924         --parseContext.loopNestingLevel;
   9925         --parseContext.statementNestingLevel;
   9926         --parseContext.controlFlowNestingLevel;
   9927     }
   9928 #line 9929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9929     break;
   9930 
   9931   case 549:
   9932 #line 3612 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9933     {
   9934         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   9935     }
   9936 #line 9937 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9937     break;
   9938 
   9939   case 550:
   9940 #line 3615 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9941     {
   9942         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   9943     }
   9944 #line 9945 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9945     break;
   9946 
   9947   case 551:
   9948 #line 3621 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9949     {
   9950         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   9951     }
   9952 #line 9953 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9953     break;
   9954 
   9955   case 552:
   9956 #line 3624 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9957     {
   9958         (yyval.interm.intermTypedNode) = 0;
   9959     }
   9960 #line 9961 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9961     break;
   9962 
   9963   case 553:
   9964 #line 3630 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9965     {
   9966         (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
   9967         (yyval.interm.nodePair).node2 = 0;
   9968     }
   9969 #line 9970 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9970     break;
   9971 
   9972   case 554:
   9973 #line 3634 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9974     {
   9975         (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
   9976         (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
   9977     }
   9978 #line 9979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9979     break;
   9980 
   9981   case 555:
   9982 #line 3641 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9983     {
   9984         if (parseContext.loopNestingLevel <= 0)
   9985             parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
   9986         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
   9987     }
   9988 #line 9989 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9989     break;
   9990 
   9991   case 556:
   9992 #line 3646 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   9993     {
   9994         if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
   9995             parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
   9996         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
   9997     }
   9998 #line 9999 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   9999     break;
   10000 
   10001   case 557:
   10002 #line 3651 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   10003     {
   10004         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
   10005         if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
   10006             parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", "");
   10007         if (parseContext.inMain)
   10008             parseContext.postEntryPointReturn = true;
   10009     }
   10010 #line 10011 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   10011     break;
   10012 
   10013   case 558:
   10014 #line 3658 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   10015     {
   10016         (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
   10017     }
   10018 #line 10019 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   10019     break;
   10020 
   10021   case 559:
   10022 #line 3661 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   10023     {
   10024         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
   10025         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
   10026     }
   10027 #line 10028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   10028     break;
   10029 
   10030   case 560:
   10031 #line 3670 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   10032     {
   10033         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   10034         parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
   10035     }
   10036 #line 10037 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   10037     break;
   10038 
   10039   case 561:
   10040 #line 3674 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   10041     {
   10042         if ((yyvsp[0].interm.intermNode) != nullptr) {
   10043             (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
   10044             parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
   10045         }
   10046     }
   10047 #line 10048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   10048     break;
   10049 
   10050   case 562:
   10051 #line 3683 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   10052     {
   10053         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   10054     }
   10055 #line 10056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   10056     break;
   10057 
   10058   case 563:
   10059 #line 3686 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   10060     {
   10061         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   10062     }
   10063 #line 10064 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   10064     break;
   10065 
   10066   case 564:
   10067 #line 3689 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   10068     {
   10069         parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
   10070         parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
   10071         (yyval.interm.intermNode) = nullptr;
   10072     }
   10073 #line 10074 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   10074     break;
   10075 
   10076   case 565:
   10077 #line 3697 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   10078     {
   10079         (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
   10080         (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
   10081     }
   10082 #line 10083 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   10083     break;
   10084 
   10085   case 566:
   10086 #line 3701 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   10087     {
   10088         //   May be best done as post process phase on intermediate code
   10089         if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
   10090             parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str());
   10091         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
   10092         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode));
   10093         parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc);
   10094         (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str());
   10095 
   10096         // store the pragma information for debug and optimize and other vendor specific
   10097         // information. This information can be queried from the parse tree
   10098         (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize);
   10099         (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
   10100         (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable);
   10101     }
   10102 #line 10103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   10103     break;
   10104 
   10105   case 567:
   10106 #line 3719 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   10107     {
   10108         (yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
   10109         parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute");
   10110     }
   10111 #line 10112 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   10112     break;
   10113 
   10114   case 568:
   10115 #line 3725 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   10116     {
   10117         (yyval.interm.attributes) = (yyvsp[0].interm.attributes);
   10118     }
   10119 #line 10120 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   10120     break;
   10121 
   10122   case 569:
   10123 #line 3728 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   10124     {
   10125         (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
   10126     }
   10127 #line 10128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   10128     break;
   10129 
   10130   case 570:
   10131 #line 3733 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   10132     {
   10133         (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
   10134     }
   10135 #line 10136 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   10136     break;
   10137 
   10138   case 571:
   10139 #line 3736 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   10140     {
   10141         (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
   10142     }
   10143 #line 10144 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   10144     break;
   10145 
   10146 
   10147 #line 10148 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   10148       default: break;
   10149     }
   10150   /* User semantic actions sometimes alter yychar, and that requires
   10151      that yytoken be updated with the new translation.  We take the
   10152      approach of translating immediately before every use of yytoken.
   10153      One alternative is translating here after every semantic action,
   10154      but that translation would be missed if the semantic action invokes
   10155      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
   10156      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
   10157      incorrect destructor might then be invoked immediately.  In the
   10158      case of YYERROR or YYBACKUP, subsequent parser actions might lead
   10159      to an incorrect destructor call or verbose syntax error message
   10160      before the lookahead is translated.  */
   10161   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
   10162 
   10163   YYPOPSTACK (yylen);
   10164   yylen = 0;
   10165   YY_STACK_PRINT (yyss, yyssp);
   10166 
   10167   *++yyvsp = yyval;
   10168 
   10169   /* Now 'shift' the result of the reduction.  Determine what state
   10170      that goes to, based on the state we popped back to and the rule
   10171      number reduced by.  */
   10172 
   10173   yyn = yyr1[yyn];
   10174 
   10175   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
   10176   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
   10177     yystate = yytable[yystate];
   10178   else
   10179     yystate = yydefgoto[yyn - YYNTOKENS];
   10180 
   10181   goto yynewstate;
   10182 
   10183 
   10184 /*--------------------------------------.
   10185 | yyerrlab -- here on detecting error.  |
   10186 `--------------------------------------*/
   10187 yyerrlab:
   10188   /* Make sure we have latest lookahead translation.  See comments at
   10189      user semantic actions for why this is necessary.  */
   10190   yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
   10191 
   10192   /* If not already recovering from an error, report this error.  */
   10193   if (!yyerrstatus)
   10194     {
   10195       ++yynerrs;
   10196 #if ! YYERROR_VERBOSE
   10197       yyerror (pParseContext, YY_("syntax error"));
   10198 #else
   10199 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
   10200                                         yyssp, yytoken)
   10201       {
   10202         char const *yymsgp = YY_("syntax error");
   10203         int yysyntax_error_status;
   10204         yysyntax_error_status = YYSYNTAX_ERROR;
   10205         if (yysyntax_error_status == 0)
   10206           yymsgp = yymsg;
   10207         else if (yysyntax_error_status == 1)
   10208           {
   10209             if (yymsg != yymsgbuf)
   10210               YYSTACK_FREE (yymsg);
   10211             yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
   10212             if (!yymsg)
   10213               {
   10214                 yymsg = yymsgbuf;
   10215                 yymsg_alloc = sizeof yymsgbuf;
   10216                 yysyntax_error_status = 2;
   10217               }
   10218             else
   10219               {
   10220                 yysyntax_error_status = YYSYNTAX_ERROR;
   10221                 yymsgp = yymsg;
   10222               }
   10223           }
   10224         yyerror (pParseContext, yymsgp);
   10225         if (yysyntax_error_status == 2)
   10226           goto yyexhaustedlab;
   10227       }
   10228 # undef YYSYNTAX_ERROR
   10229 #endif
   10230     }
   10231 
   10232 
   10233 
   10234   if (yyerrstatus == 3)
   10235     {
   10236       /* If just tried and failed to reuse lookahead token after an
   10237          error, discard it.  */
   10238 
   10239       if (yychar <= YYEOF)
   10240         {
   10241           /* Return failure if at end of input.  */
   10242           if (yychar == YYEOF)
   10243             YYABORT;
   10244         }
   10245       else
   10246         {
   10247           yydestruct ("Error: discarding",
   10248                       yytoken, &yylval, pParseContext);
   10249           yychar = YYEMPTY;
   10250         }
   10251     }
   10252 
   10253   /* Else will try to reuse lookahead token after shifting the error
   10254      token.  */
   10255   goto yyerrlab1;
   10256 
   10257 
   10258 /*---------------------------------------------------.
   10259 | yyerrorlab -- error raised explicitly by YYERROR.  |
   10260 `---------------------------------------------------*/
   10261 yyerrorlab:
   10262 
   10263   /* Pacify compilers like GCC when the user code never invokes
   10264      YYERROR and the label yyerrorlab therefore never appears in user
   10265      code.  */
   10266   if (/*CONSTCOND*/ 0)
   10267      goto yyerrorlab;
   10268 
   10269   /* Do not reclaim the symbols of the rule whose action triggered
   10270      this YYERROR.  */
   10271   YYPOPSTACK (yylen);
   10272   yylen = 0;
   10273   YY_STACK_PRINT (yyss, yyssp);
   10274   yystate = *yyssp;
   10275   goto yyerrlab1;
   10276 
   10277 
   10278 /*-------------------------------------------------------------.
   10279 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
   10280 `-------------------------------------------------------------*/
   10281 yyerrlab1:
   10282   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
   10283 
   10284   for (;;)
   10285     {
   10286       yyn = yypact[yystate];
   10287       if (!yypact_value_is_default (yyn))
   10288         {
   10289           yyn += YYTERROR;
   10290           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
   10291             {
   10292               yyn = yytable[yyn];
   10293               if (0 < yyn)
   10294                 break;
   10295             }
   10296         }
   10297 
   10298       /* Pop the current state because it cannot handle the error token.  */
   10299       if (yyssp == yyss)
   10300         YYABORT;
   10301 
   10302 
   10303       yydestruct ("Error: popping",
   10304                   yystos[yystate], yyvsp, pParseContext);
   10305       YYPOPSTACK (1);
   10306       yystate = *yyssp;
   10307       YY_STACK_PRINT (yyss, yyssp);
   10308     }
   10309 
   10310   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   10311   *++yyvsp = yylval;
   10312   YY_IGNORE_MAYBE_UNINITIALIZED_END
   10313 
   10314 
   10315   /* Shift the error token.  */
   10316   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
   10317 
   10318   yystate = yyn;
   10319   goto yynewstate;
   10320 
   10321 
   10322 /*-------------------------------------.
   10323 | yyacceptlab -- YYACCEPT comes here.  |
   10324 `-------------------------------------*/
   10325 yyacceptlab:
   10326   yyresult = 0;
   10327   goto yyreturn;
   10328 
   10329 /*-----------------------------------.
   10330 | yyabortlab -- YYABORT comes here.  |
   10331 `-----------------------------------*/
   10332 yyabortlab:
   10333   yyresult = 1;
   10334   goto yyreturn;
   10335 
   10336 #if !defined yyoverflow || YYERROR_VERBOSE
   10337 /*-------------------------------------------------.
   10338 | yyexhaustedlab -- memory exhaustion comes here.  |
   10339 `-------------------------------------------------*/
   10340 yyexhaustedlab:
   10341   yyerror (pParseContext, YY_("memory exhausted"));
   10342   yyresult = 2;
   10343   /* Fall through.  */
   10344 #endif
   10345 
   10346 yyreturn:
   10347   if (yychar != YYEMPTY)
   10348     {
   10349       /* Make sure we have latest lookahead translation.  See comments at
   10350          user semantic actions for why this is necessary.  */
   10351       yytoken = YYTRANSLATE (yychar);
   10352       yydestruct ("Cleanup: discarding lookahead",
   10353                   yytoken, &yylval, pParseContext);
   10354     }
   10355   /* Do not reclaim the symbols of the rule whose action triggered
   10356      this YYABORT or YYACCEPT.  */
   10357   YYPOPSTACK (yylen);
   10358   YY_STACK_PRINT (yyss, yyssp);
   10359   while (yyssp != yyss)
   10360     {
   10361       yydestruct ("Cleanup: popping",
   10362                   yystos[*yyssp], yyvsp, pParseContext);
   10363       YYPOPSTACK (1);
   10364     }
   10365 #ifndef yyoverflow
   10366   if (yyss != yyssa)
   10367     YYSTACK_FREE (yyss);
   10368 #endif
   10369 #if YYERROR_VERBOSE
   10370   if (yymsg != yymsgbuf)
   10371     YYSTACK_FREE (yymsg);
   10372 #endif
   10373   return yyresult;
   10374 }
   10375 #line 3740 "MachineIndependent/glslang.y" /* yacc.c:1906  */
   10376 
   10377