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 41 "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 
     87 using namespace glslang;
     88 
     89 
     90 #line 91 "MachineIndependent/glslang_tab.cpp" /* yacc.c:339  */
     91 
     92 # ifndef YY_NULLPTR
     93 #  if defined __cplusplus && 201103L <= __cplusplus
     94 #   define YY_NULLPTR nullptr
     95 #  else
     96 #   define YY_NULLPTR 0
     97 #  endif
     98 # endif
     99 
    100 /* Enabling verbose error messages.  */
    101 #ifdef YYERROR_VERBOSE
    102 # undef YYERROR_VERBOSE
    103 # define YYERROR_VERBOSE 1
    104 #else
    105 # define YYERROR_VERBOSE 1
    106 #endif
    107 
    108 /* In a future release of Bison, this section will be replaced
    109    by #include "glslang_tab.cpp.h".  */
    110 #ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
    111 # define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
    112 /* Debug traces.  */
    113 #ifndef YYDEBUG
    114 # define YYDEBUG 1
    115 #endif
    116 #if YYDEBUG
    117 extern int yydebug;
    118 #endif
    119 
    120 /* Token type.  */
    121 #ifndef YYTOKENTYPE
    122 # define YYTOKENTYPE
    123   enum yytokentype
    124   {
    125     ATTRIBUTE = 258,
    126     VARYING = 259,
    127     CONST = 260,
    128     BOOL = 261,
    129     FLOAT = 262,
    130     DOUBLE = 263,
    131     INT = 264,
    132     UINT = 265,
    133     INT64_T = 266,
    134     UINT64_T = 267,
    135     INT16_T = 268,
    136     UINT16_T = 269,
    137     FLOAT16_T = 270,
    138     BREAK = 271,
    139     CONTINUE = 272,
    140     DO = 273,
    141     ELSE = 274,
    142     FOR = 275,
    143     IF = 276,
    144     DISCARD = 277,
    145     RETURN = 278,
    146     SWITCH = 279,
    147     CASE = 280,
    148     DEFAULT = 281,
    149     SUBROUTINE = 282,
    150     BVEC2 = 283,
    151     BVEC3 = 284,
    152     BVEC4 = 285,
    153     IVEC2 = 286,
    154     IVEC3 = 287,
    155     IVEC4 = 288,
    156     I64VEC2 = 289,
    157     I64VEC3 = 290,
    158     I64VEC4 = 291,
    159     UVEC2 = 292,
    160     UVEC3 = 293,
    161     UVEC4 = 294,
    162     U64VEC2 = 295,
    163     U64VEC3 = 296,
    164     U64VEC4 = 297,
    165     VEC2 = 298,
    166     VEC3 = 299,
    167     VEC4 = 300,
    168     MAT2 = 301,
    169     MAT3 = 302,
    170     MAT4 = 303,
    171     CENTROID = 304,
    172     IN = 305,
    173     OUT = 306,
    174     INOUT = 307,
    175     UNIFORM = 308,
    176     PATCH = 309,
    177     SAMPLE = 310,
    178     BUFFER = 311,
    179     SHARED = 312,
    180     COHERENT = 313,
    181     VOLATILE = 314,
    182     RESTRICT = 315,
    183     READONLY = 316,
    184     WRITEONLY = 317,
    185     DVEC2 = 318,
    186     DVEC3 = 319,
    187     DVEC4 = 320,
    188     DMAT2 = 321,
    189     DMAT3 = 322,
    190     DMAT4 = 323,
    191     F16VEC2 = 324,
    192     F16VEC3 = 325,
    193     F16VEC4 = 326,
    194     F16MAT2 = 327,
    195     F16MAT3 = 328,
    196     F16MAT4 = 329,
    197     I16VEC2 = 330,
    198     I16VEC3 = 331,
    199     I16VEC4 = 332,
    200     U16VEC2 = 333,
    201     U16VEC3 = 334,
    202     U16VEC4 = 335,
    203     NOPERSPECTIVE = 336,
    204     FLAT = 337,
    205     SMOOTH = 338,
    206     LAYOUT = 339,
    207     __EXPLICITINTERPAMD = 340,
    208     MAT2X2 = 341,
    209     MAT2X3 = 342,
    210     MAT2X4 = 343,
    211     MAT3X2 = 344,
    212     MAT3X3 = 345,
    213     MAT3X4 = 346,
    214     MAT4X2 = 347,
    215     MAT4X3 = 348,
    216     MAT4X4 = 349,
    217     DMAT2X2 = 350,
    218     DMAT2X3 = 351,
    219     DMAT2X4 = 352,
    220     DMAT3X2 = 353,
    221     DMAT3X3 = 354,
    222     DMAT3X4 = 355,
    223     DMAT4X2 = 356,
    224     DMAT4X3 = 357,
    225     DMAT4X4 = 358,
    226     F16MAT2X2 = 359,
    227     F16MAT2X3 = 360,
    228     F16MAT2X4 = 361,
    229     F16MAT3X2 = 362,
    230     F16MAT3X3 = 363,
    231     F16MAT3X4 = 364,
    232     F16MAT4X2 = 365,
    233     F16MAT4X3 = 366,
    234     F16MAT4X4 = 367,
    235     ATOMIC_UINT = 368,
    236     SAMPLER1D = 369,
    237     SAMPLER2D = 370,
    238     SAMPLER3D = 371,
    239     SAMPLERCUBE = 372,
    240     SAMPLER1DSHADOW = 373,
    241     SAMPLER2DSHADOW = 374,
    242     SAMPLERCUBESHADOW = 375,
    243     SAMPLER1DARRAY = 376,
    244     SAMPLER2DARRAY = 377,
    245     SAMPLER1DARRAYSHADOW = 378,
    246     SAMPLER2DARRAYSHADOW = 379,
    247     ISAMPLER1D = 380,
    248     ISAMPLER2D = 381,
    249     ISAMPLER3D = 382,
    250     ISAMPLERCUBE = 383,
    251     ISAMPLER1DARRAY = 384,
    252     ISAMPLER2DARRAY = 385,
    253     USAMPLER1D = 386,
    254     USAMPLER2D = 387,
    255     USAMPLER3D = 388,
    256     USAMPLERCUBE = 389,
    257     USAMPLER1DARRAY = 390,
    258     USAMPLER2DARRAY = 391,
    259     SAMPLER2DRECT = 392,
    260     SAMPLER2DRECTSHADOW = 393,
    261     ISAMPLER2DRECT = 394,
    262     USAMPLER2DRECT = 395,
    263     SAMPLERBUFFER = 396,
    264     ISAMPLERBUFFER = 397,
    265     USAMPLERBUFFER = 398,
    266     SAMPLERCUBEARRAY = 399,
    267     SAMPLERCUBEARRAYSHADOW = 400,
    268     ISAMPLERCUBEARRAY = 401,
    269     USAMPLERCUBEARRAY = 402,
    270     SAMPLER2DMS = 403,
    271     ISAMPLER2DMS = 404,
    272     USAMPLER2DMS = 405,
    273     SAMPLER2DMSARRAY = 406,
    274     ISAMPLER2DMSARRAY = 407,
    275     USAMPLER2DMSARRAY = 408,
    276     SAMPLEREXTERNALOES = 409,
    277     SAMPLER = 410,
    278     SAMPLERSHADOW = 411,
    279     TEXTURE1D = 412,
    280     TEXTURE2D = 413,
    281     TEXTURE3D = 414,
    282     TEXTURECUBE = 415,
    283     TEXTURE1DARRAY = 416,
    284     TEXTURE2DARRAY = 417,
    285     ITEXTURE1D = 418,
    286     ITEXTURE2D = 419,
    287     ITEXTURE3D = 420,
    288     ITEXTURECUBE = 421,
    289     ITEXTURE1DARRAY = 422,
    290     ITEXTURE2DARRAY = 423,
    291     UTEXTURE1D = 424,
    292     UTEXTURE2D = 425,
    293     UTEXTURE3D = 426,
    294     UTEXTURECUBE = 427,
    295     UTEXTURE1DARRAY = 428,
    296     UTEXTURE2DARRAY = 429,
    297     TEXTURE2DRECT = 430,
    298     ITEXTURE2DRECT = 431,
    299     UTEXTURE2DRECT = 432,
    300     TEXTUREBUFFER = 433,
    301     ITEXTUREBUFFER = 434,
    302     UTEXTUREBUFFER = 435,
    303     TEXTURECUBEARRAY = 436,
    304     ITEXTURECUBEARRAY = 437,
    305     UTEXTURECUBEARRAY = 438,
    306     TEXTURE2DMS = 439,
    307     ITEXTURE2DMS = 440,
    308     UTEXTURE2DMS = 441,
    309     TEXTURE2DMSARRAY = 442,
    310     ITEXTURE2DMSARRAY = 443,
    311     UTEXTURE2DMSARRAY = 444,
    312     SUBPASSINPUT = 445,
    313     SUBPASSINPUTMS = 446,
    314     ISUBPASSINPUT = 447,
    315     ISUBPASSINPUTMS = 448,
    316     USUBPASSINPUT = 449,
    317     USUBPASSINPUTMS = 450,
    318     IMAGE1D = 451,
    319     IIMAGE1D = 452,
    320     UIMAGE1D = 453,
    321     IMAGE2D = 454,
    322     IIMAGE2D = 455,
    323     UIMAGE2D = 456,
    324     IMAGE3D = 457,
    325     IIMAGE3D = 458,
    326     UIMAGE3D = 459,
    327     IMAGE2DRECT = 460,
    328     IIMAGE2DRECT = 461,
    329     UIMAGE2DRECT = 462,
    330     IMAGECUBE = 463,
    331     IIMAGECUBE = 464,
    332     UIMAGECUBE = 465,
    333     IMAGEBUFFER = 466,
    334     IIMAGEBUFFER = 467,
    335     UIMAGEBUFFER = 468,
    336     IMAGE1DARRAY = 469,
    337     IIMAGE1DARRAY = 470,
    338     UIMAGE1DARRAY = 471,
    339     IMAGE2DARRAY = 472,
    340     IIMAGE2DARRAY = 473,
    341     UIMAGE2DARRAY = 474,
    342     IMAGECUBEARRAY = 475,
    343     IIMAGECUBEARRAY = 476,
    344     UIMAGECUBEARRAY = 477,
    345     IMAGE2DMS = 478,
    346     IIMAGE2DMS = 479,
    347     UIMAGE2DMS = 480,
    348     IMAGE2DMSARRAY = 481,
    349     IIMAGE2DMSARRAY = 482,
    350     UIMAGE2DMSARRAY = 483,
    351     STRUCT = 484,
    352     VOID = 485,
    353     WHILE = 486,
    354     IDENTIFIER = 487,
    355     TYPE_NAME = 488,
    356     FLOATCONSTANT = 489,
    357     DOUBLECONSTANT = 490,
    358     INTCONSTANT = 491,
    359     UINTCONSTANT = 492,
    360     INT64CONSTANT = 493,
    361     UINT64CONSTANT = 494,
    362     INT16CONSTANT = 495,
    363     UINT16CONSTANT = 496,
    364     BOOLCONSTANT = 497,
    365     FLOAT16CONSTANT = 498,
    366     LEFT_OP = 499,
    367     RIGHT_OP = 500,
    368     INC_OP = 501,
    369     DEC_OP = 502,
    370     LE_OP = 503,
    371     GE_OP = 504,
    372     EQ_OP = 505,
    373     NE_OP = 506,
    374     AND_OP = 507,
    375     OR_OP = 508,
    376     XOR_OP = 509,
    377     MUL_ASSIGN = 510,
    378     DIV_ASSIGN = 511,
    379     ADD_ASSIGN = 512,
    380     MOD_ASSIGN = 513,
    381     LEFT_ASSIGN = 514,
    382     RIGHT_ASSIGN = 515,
    383     AND_ASSIGN = 516,
    384     XOR_ASSIGN = 517,
    385     OR_ASSIGN = 518,
    386     SUB_ASSIGN = 519,
    387     LEFT_PAREN = 520,
    388     RIGHT_PAREN = 521,
    389     LEFT_BRACKET = 522,
    390     RIGHT_BRACKET = 523,
    391     LEFT_BRACE = 524,
    392     RIGHT_BRACE = 525,
    393     DOT = 526,
    394     COMMA = 527,
    395     COLON = 528,
    396     EQUAL = 529,
    397     SEMICOLON = 530,
    398     BANG = 531,
    399     DASH = 532,
    400     TILDE = 533,
    401     PLUS = 534,
    402     STAR = 535,
    403     SLASH = 536,
    404     PERCENT = 537,
    405     LEFT_ANGLE = 538,
    406     RIGHT_ANGLE = 539,
    407     VERTICAL_BAR = 540,
    408     CARET = 541,
    409     AMPERSAND = 542,
    410     QUESTION = 543,
    411     INVARIANT = 544,
    412     PRECISE = 545,
    413     HIGH_PRECISION = 546,
    414     MEDIUM_PRECISION = 547,
    415     LOW_PRECISION = 548,
    416     PRECISION = 549,
    417     PACKED = 550,
    418     RESOURCE = 551,
    419     SUPERP = 552
    420   };
    421 #endif
    422 
    423 /* Value type.  */
    424 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    425 
    426 union YYSTYPE
    427 {
    428 #line 68 "MachineIndependent/glslang.y" /* yacc.c:355  */
    429 
    430     struct {
    431         glslang::TSourceLoc loc;
    432         union {
    433             glslang::TString *string;
    434             int i;
    435             unsigned int u;
    436             long long i64;
    437             unsigned long long u64;
    438             bool b;
    439             double d;
    440         };
    441         glslang::TSymbol* symbol;
    442     } lex;
    443     struct {
    444         glslang::TSourceLoc loc;
    445         glslang::TOperator op;
    446         union {
    447             TIntermNode* intermNode;
    448             glslang::TIntermNodePair nodePair;
    449             glslang::TIntermTyped* intermTypedNode;
    450         };
    451         union {
    452             glslang::TPublicType type;
    453             glslang::TFunction* function;
    454             glslang::TParameter param;
    455             glslang::TTypeLoc typeLine;
    456             glslang::TTypeList* typeList;
    457             glslang::TArraySizes* arraySizes;
    458             glslang::TIdentifierList* identifierList;
    459         };
    460     } interm;
    461 
    462 #line 463 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355  */
    463 };
    464 
    465 typedef union YYSTYPE YYSTYPE;
    466 # define YYSTYPE_IS_TRIVIAL 1
    467 # define YYSTYPE_IS_DECLARED 1
    468 #endif
    469 
    470 
    471 
    472 int yyparse (glslang::TParseContext* pParseContext);
    473 
    474 #endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED  */
    475 
    476 /* Copy the second part of user declarations.  */
    477 #line 102 "MachineIndependent/glslang.y" /* yacc.c:358  */
    478 
    479 
    480 /* windows only pragma */
    481 #ifdef _MSC_VER
    482     #pragma warning(disable : 4065)
    483     #pragma warning(disable : 4127)
    484     #pragma warning(disable : 4244)
    485 #endif
    486 
    487 #define parseContext (*pParseContext)
    488 #define yyerror(context, msg) context->parserError(msg)
    489 
    490 extern int yylex(YYSTYPE*, TParseContext&);
    491 
    492 
    493 #line 494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358  */
    494 
    495 #ifdef short
    496 # undef short
    497 #endif
    498 
    499 #ifdef YYTYPE_UINT8
    500 typedef YYTYPE_UINT8 yytype_uint8;
    501 #else
    502 typedef unsigned char yytype_uint8;
    503 #endif
    504 
    505 #ifdef YYTYPE_INT8
    506 typedef YYTYPE_INT8 yytype_int8;
    507 #else
    508 typedef signed char yytype_int8;
    509 #endif
    510 
    511 #ifdef YYTYPE_UINT16
    512 typedef YYTYPE_UINT16 yytype_uint16;
    513 #else
    514 typedef unsigned short int yytype_uint16;
    515 #endif
    516 
    517 #ifdef YYTYPE_INT16
    518 typedef YYTYPE_INT16 yytype_int16;
    519 #else
    520 typedef short int yytype_int16;
    521 #endif
    522 
    523 #ifndef YYSIZE_T
    524 # ifdef __SIZE_TYPE__
    525 #  define YYSIZE_T __SIZE_TYPE__
    526 # elif defined size_t
    527 #  define YYSIZE_T size_t
    528 # elif ! defined YYSIZE_T
    529 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
    530 #  define YYSIZE_T size_t
    531 # else
    532 #  define YYSIZE_T unsigned int
    533 # endif
    534 #endif
    535 
    536 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
    537 
    538 #ifndef YY_
    539 # if defined YYENABLE_NLS && YYENABLE_NLS
    540 #  if ENABLE_NLS
    541 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
    542 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
    543 #  endif
    544 # endif
    545 # ifndef YY_
    546 #  define YY_(Msgid) Msgid
    547 # endif
    548 #endif
    549 
    550 #ifndef YY_ATTRIBUTE
    551 # if (defined __GNUC__                                               \
    552       && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
    553      || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
    554 #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
    555 # else
    556 #  define YY_ATTRIBUTE(Spec) /* empty */
    557 # endif
    558 #endif
    559 
    560 #ifndef YY_ATTRIBUTE_PURE
    561 # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
    562 #endif
    563 
    564 #ifndef YY_ATTRIBUTE_UNUSED
    565 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
    566 #endif
    567 
    568 #if !defined _Noreturn \
    569      && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
    570 # if defined _MSC_VER && 1200 <= _MSC_VER
    571 #  define _Noreturn __declspec (noreturn)
    572 # else
    573 #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
    574 # endif
    575 #endif
    576 
    577 /* Suppress unused-variable warnings by "using" E.  */
    578 #if ! defined lint || defined __GNUC__
    579 # define YYUSE(E) ((void) (E))
    580 #else
    581 # define YYUSE(E) /* empty */
    582 #endif
    583 
    584 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
    585 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
    586 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
    587     _Pragma ("GCC diagnostic push") \
    588     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
    589     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
    590 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
    591     _Pragma ("GCC diagnostic pop")
    592 #else
    593 # define YY_INITIAL_VALUE(Value) Value
    594 #endif
    595 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    596 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    597 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
    598 #endif
    599 #ifndef YY_INITIAL_VALUE
    600 # define YY_INITIAL_VALUE(Value) /* Nothing. */
    601 #endif
    602 
    603 
    604 #if ! defined yyoverflow || YYERROR_VERBOSE
    605 
    606 /* The parser invokes alloca or malloc; define the necessary symbols.  */
    607 
    608 # ifdef YYSTACK_USE_ALLOCA
    609 #  if YYSTACK_USE_ALLOCA
    610 #   ifdef __GNUC__
    611 #    define YYSTACK_ALLOC __builtin_alloca
    612 #   elif defined __BUILTIN_VA_ARG_INCR
    613 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
    614 #   elif defined _AIX
    615 #    define YYSTACK_ALLOC __alloca
    616 #   elif defined _MSC_VER
    617 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
    618 #    define alloca _alloca
    619 #   else
    620 #    define YYSTACK_ALLOC alloca
    621 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
    622 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    623       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
    624 #     ifndef EXIT_SUCCESS
    625 #      define EXIT_SUCCESS 0
    626 #     endif
    627 #    endif
    628 #   endif
    629 #  endif
    630 # endif
    631 
    632 # ifdef YYSTACK_ALLOC
    633    /* Pacify GCC's 'empty if-body' warning.  */
    634 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
    635 #  ifndef YYSTACK_ALLOC_MAXIMUM
    636     /* The OS might guarantee only one guard page at the bottom of the stack,
    637        and a page size can be as small as 4096 bytes.  So we cannot safely
    638        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
    639        to allow for a few compiler-allocated temporary stack slots.  */
    640 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
    641 #  endif
    642 # else
    643 #  define YYSTACK_ALLOC YYMALLOC
    644 #  define YYSTACK_FREE YYFREE
    645 #  ifndef YYSTACK_ALLOC_MAXIMUM
    646 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
    647 #  endif
    648 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
    649        && ! ((defined YYMALLOC || defined malloc) \
    650              && (defined YYFREE || defined free)))
    651 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    652 #   ifndef EXIT_SUCCESS
    653 #    define EXIT_SUCCESS 0
    654 #   endif
    655 #  endif
    656 #  ifndef YYMALLOC
    657 #   define YYMALLOC malloc
    658 #   if ! defined malloc && ! defined EXIT_SUCCESS
    659 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
    660 #   endif
    661 #  endif
    662 #  ifndef YYFREE
    663 #   define YYFREE free
    664 #   if ! defined free && ! defined EXIT_SUCCESS
    665 void free (void *); /* INFRINGES ON USER NAME SPACE */
    666 #   endif
    667 #  endif
    668 # endif
    669 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
    670 
    671 
    672 #if (! defined yyoverflow \
    673      && (! defined __cplusplus \
    674          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
    675 
    676 /* A type that is properly aligned for any stack member.  */
    677 union yyalloc
    678 {
    679   yytype_int16 yyss_alloc;
    680   YYSTYPE yyvs_alloc;
    681 };
    682 
    683 /* The size of the maximum gap between one aligned stack and the next.  */
    684 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
    685 
    686 /* The size of an array large to enough to hold all stacks, each with
    687    N elements.  */
    688 # define YYSTACK_BYTES(N) \
    689      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
    690       + YYSTACK_GAP_MAXIMUM)
    691 
    692 # define YYCOPY_NEEDED 1
    693 
    694 /* Relocate STACK from its old location to the new one.  The
    695    local variables YYSIZE and YYSTACKSIZE give the old and new number of
    696    elements in the stack, and YYPTR gives the new location of the
    697    stack.  Advance YYPTR to a properly aligned location for the next
    698    stack.  */
    699 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
    700     do                                                                  \
    701       {                                                                 \
    702         YYSIZE_T yynewbytes;                                            \
    703         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
    704         Stack = &yyptr->Stack_alloc;                                    \
    705         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
    706         yyptr += yynewbytes / sizeof (*yyptr);                          \
    707       }                                                                 \
    708     while (0)
    709 
    710 #endif
    711 
    712 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
    713 /* Copy COUNT objects from SRC to DST.  The source and destination do
    714    not overlap.  */
    715 # ifndef YYCOPY
    716 #  if defined __GNUC__ && 1 < __GNUC__
    717 #   define YYCOPY(Dst, Src, Count) \
    718       __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
    719 #  else
    720 #   define YYCOPY(Dst, Src, Count)              \
    721       do                                        \
    722         {                                       \
    723           YYSIZE_T yyi;                         \
    724           for (yyi = 0; yyi < (Count); yyi++)   \
    725             (Dst)[yyi] = (Src)[yyi];            \
    726         }                                       \
    727       while (0)
    728 #  endif
    729 # endif
    730 #endif /* !YYCOPY_NEEDED */
    731 
    732 /* YYFINAL -- State number of the termination state.  */
    733 #define YYFINAL  274
    734 /* YYLAST -- Last index in YYTABLE.  */
    735 #define YYLAST   6614
    736 
    737 /* YYNTOKENS -- Number of terminals.  */
    738 #define YYNTOKENS  298
    739 /* YYNNTS -- Number of nonterminals.  */
    740 #define YYNNTS  100
    741 /* YYNRULES -- Number of rules.  */
    742 #define YYNRULES  450
    743 /* YYNSTATES -- Number of states.  */
    744 #define YYNSTATES  582
    745 
    746 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
    747    by yylex, with out-of-bounds checking.  */
    748 #define YYUNDEFTOK  2
    749 #define YYMAXUTOK   552
    750 
    751 #define YYTRANSLATE(YYX)                                                \
    752   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
    753 
    754 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
    755    as returned by yylex, without out-of-bounds checking.  */
    756 static const yytype_uint16 yytranslate[] =
    757 {
    758        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    759        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    760        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    761        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    762        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    763        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    764        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    765        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    766        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    767        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    768        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    769        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    770        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    771        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    772        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    773        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    774        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    775        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    776        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    777        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    778        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    779        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    780        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    781        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    782        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    783        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
    784        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    785       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    786       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
    787       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
    788       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
    789       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
    790       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
    791       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
    792       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
    793       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
    794      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
    795      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
    796      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
    797      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
    798      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
    799      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
    800      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
    801      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
    802      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
    803      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
    804      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
    805      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
    806      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
    807      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
    808      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
    809      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
    810      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
    811      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
    812      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
    813      295,   296,   297
    814 };
    815 
    816 #if YYDEBUG
    817   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
    818 static const yytype_uint16 yyrline[] =
    819 {
    820        0,   253,   253,   259,   262,   265,   269,   273,   277,   283,
    821      289,   292,   296,   302,   305,   313,   316,   319,   322,   325,
    822      330,   338,   345,   352,   358,   362,   369,   372,   378,   385,
    823      395,   403,   408,   438,   444,   448,   452,   472,   473,   474,
    824      475,   481,   482,   487,   492,   501,   502,   507,   515,   516,
    825      522,   531,   532,   537,   542,   547,   555,   556,   564,   575,
    826      576,   585,   586,   595,   596,   605,   606,   614,   615,   623,
    827      624,   632,   633,   633,   651,   652,   667,   671,   675,   679,
    828      684,   688,   692,   696,   700,   704,   708,   715,   718,   729,
    829      736,   741,   746,   754,   758,   762,   766,   771,   776,   785,
    830      785,   796,   800,   807,   814,   817,   824,   832,   852,   870,
    831      885,   908,   919,   929,   939,   949,   958,   961,   965,   969,
    832      974,   982,   987,   992,   997,  1002,  1011,  1022,  1049,  1058,
    833     1065,  1072,  1079,  1091,  1097,  1100,  1107,  1111,  1115,  1123,
    834     1132,  1135,  1146,  1149,  1152,  1156,  1160,  1164,  1171,  1175,
    835     1187,  1201,  1206,  1212,  1218,  1225,  1231,  1236,  1241,  1246,
    836     1254,  1258,  1262,  1266,  1270,  1274,  1280,  1289,  1292,  1300,
    837     1304,  1313,  1318,  1326,  1330,  1340,  1344,  1348,  1353,  1360,
    838     1364,  1369,  1374,  1379,  1386,  1393,  1397,  1402,  1407,  1412,
    839     1418,  1424,  1430,  1438,  1446,  1454,  1459,  1464,  1469,  1474,
    840     1479,  1484,  1490,  1496,  1502,  1510,  1518,  1526,  1532,  1538,
    841     1544,  1550,  1556,  1562,  1570,  1578,  1586,  1591,  1596,  1601,
    842     1606,  1611,  1616,  1621,  1626,  1631,  1636,  1641,  1646,  1652,
    843     1658,  1664,  1670,  1676,  1682,  1688,  1694,  1700,  1706,  1712,
    844     1718,  1726,  1734,  1742,  1750,  1758,  1766,  1774,  1782,  1790,
    845     1798,  1806,  1814,  1819,  1824,  1829,  1834,  1839,  1844,  1849,
    846     1854,  1859,  1864,  1869,  1874,  1879,  1884,  1889,  1894,  1899,
    847     1904,  1909,  1914,  1919,  1924,  1929,  1934,  1939,  1944,  1949,
    848     1954,  1959,  1964,  1969,  1974,  1979,  1984,  1989,  1994,  1999,
    849     2004,  2009,  2014,  2019,  2024,  2029,  2034,  2039,  2044,  2049,
    850     2054,  2059,  2064,  2069,  2074,  2079,  2084,  2089,  2094,  2099,
    851     2104,  2109,  2114,  2119,  2124,  2129,  2134,  2139,  2144,  2149,
    852     2154,  2159,  2164,  2169,  2174,  2179,  2184,  2189,  2194,  2199,
    853     2204,  2209,  2214,  2219,  2224,  2229,  2234,  2239,  2244,  2249,
    854     2254,  2259,  2264,  2269,  2274,  2279,  2284,  2289,  2294,  2299,
    855     2304,  2309,  2314,  2319,  2324,  2329,  2334,  2339,  2344,  2349,
    856     2354,  2359,  2365,  2371,  2377,  2383,  2389,  2395,  2401,  2406,
    857     2422,  2427,  2432,  2440,  2440,  2451,  2451,  2461,  2464,  2477,
    858     2495,  2519,  2523,  2529,  2534,  2545,  2548,  2554,  2563,  2566,
    859     2572,  2576,  2577,  2583,  2584,  2585,  2586,  2587,  2588,  2589,
    860     2593,  2594,  2598,  2594,  2610,  2611,  2615,  2615,  2622,  2622,
    861     2636,  2639,  2647,  2655,  2666,  2667,  2671,  2678,  2682,  2690,
    862     2694,  2707,  2707,  2727,  2730,  2736,  2748,  2760,  2760,  2775,
    863     2775,  2791,  2791,  2812,  2815,  2821,  2824,  2830,  2834,  2841,
    864     2846,  2851,  2858,  2861,  2870,  2874,  2883,  2886,  2889,  2897,
    865     2897
    866 };
    867 #endif
    868 
    869 #if YYDEBUG || YYERROR_VERBOSE || 1
    870 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    871    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
    872 static const char *const yytname[] =
    873 {
    874   "$end", "error", "$undefined", "ATTRIBUTE", "VARYING", "CONST", "BOOL",
    875   "FLOAT", "DOUBLE", "INT", "UINT", "INT64_T", "UINT64_T", "INT16_T",
    876   "UINT16_T", "FLOAT16_T", "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF",
    877   "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "SUBROUTINE", "BVEC2",
    878   "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", "I64VEC2", "I64VEC3",
    879   "I64VEC4", "UVEC2", "UVEC3", "UVEC4", "U64VEC2", "U64VEC3", "U64VEC4",
    880   "VEC2", "VEC3", "VEC4", "MAT2", "MAT3", "MAT4", "CENTROID", "IN", "OUT",
    881   "INOUT", "UNIFORM", "PATCH", "SAMPLE", "BUFFER", "SHARED", "COHERENT",
    882   "VOLATILE", "RESTRICT", "READONLY", "WRITEONLY", "DVEC2", "DVEC3",
    883   "DVEC4", "DMAT2", "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4",
    884   "F16MAT2", "F16MAT3", "F16MAT4", "I16VEC2", "I16VEC3", "I16VEC4",
    885   "U16VEC2", "U16VEC3", "U16VEC4", "NOPERSPECTIVE", "FLAT", "SMOOTH",
    886   "LAYOUT", "__EXPLICITINTERPAMD", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2",
    887   "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3", "MAT4X4", "DMAT2X2", "DMAT2X3",
    888   "DMAT2X4", "DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3",
    889   "DMAT4X4", "F16MAT2X2", "F16MAT2X3", "F16MAT2X4", "F16MAT3X2",
    890   "F16MAT3X3", "F16MAT3X4", "F16MAT4X2", "F16MAT4X3", "F16MAT4X4",
    891   "ATOMIC_UINT", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
    892   "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW",
    893   "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW",
    894   "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D",
    895   "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D",
    896   "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY",
    897   "USAMPLER2DARRAY", "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW",
    898   "ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER",
    899   "USAMPLERBUFFER", "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW",
    900   "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY", "SAMPLER2DMS", "ISAMPLER2DMS",
    901   "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY",
    902   "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "SAMPLER", "SAMPLERSHADOW",
    903   "TEXTURE1D", "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE", "TEXTURE1DARRAY",
    904   "TEXTURE2DARRAY", "ITEXTURE1D", "ITEXTURE2D", "ITEXTURE3D",
    905   "ITEXTURECUBE", "ITEXTURE1DARRAY", "ITEXTURE2DARRAY", "UTEXTURE1D",
    906   "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE", "UTEXTURE1DARRAY",
    907   "UTEXTURE2DARRAY", "TEXTURE2DRECT", "ITEXTURE2DRECT", "UTEXTURE2DRECT",
    908   "TEXTUREBUFFER", "ITEXTUREBUFFER", "UTEXTUREBUFFER", "TEXTURECUBEARRAY",
    909   "ITEXTURECUBEARRAY", "UTEXTURECUBEARRAY", "TEXTURE2DMS", "ITEXTURE2DMS",
    910   "UTEXTURE2DMS", "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY",
    911   "UTEXTURE2DMSARRAY", "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT",
    912   "ISUBPASSINPUTMS", "USUBPASSINPUT", "USUBPASSINPUTMS", "IMAGE1D",
    913   "IIMAGE1D", "UIMAGE1D", "IMAGE2D", "IIMAGE2D", "UIMAGE2D", "IMAGE3D",
    914   "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", "IIMAGE2DRECT", "UIMAGE2DRECT",
    915   "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", "IMAGEBUFFER", "IIMAGEBUFFER",
    916   "UIMAGEBUFFER", "IMAGE1DARRAY", "IIMAGE1DARRAY", "UIMAGE1DARRAY",
    917   "IMAGE2DARRAY", "IIMAGE2DARRAY", "UIMAGE2DARRAY", "IMAGECUBEARRAY",
    918   "IIMAGECUBEARRAY", "UIMAGECUBEARRAY", "IMAGE2DMS", "IIMAGE2DMS",
    919   "UIMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY",
    920   "STRUCT", "VOID", "WHILE", "IDENTIFIER", "TYPE_NAME", "FLOATCONSTANT",
    921   "DOUBLECONSTANT", "INTCONSTANT", "UINTCONSTANT", "INT64CONSTANT",
    922   "UINT64CONSTANT", "INT16CONSTANT", "UINT16CONSTANT", "BOOLCONSTANT",
    923   "FLOAT16CONSTANT", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
    924   "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
    925   "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
    926   "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN",
    927   "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE",
    928   "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG",
    929   "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT", "LEFT_ANGLE",
    930   "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND", "QUESTION",
    931   "INVARIANT", "PRECISE", "HIGH_PRECISION", "MEDIUM_PRECISION",
    932   "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP", "$accept",
    933   "variable_identifier", "primary_expression", "postfix_expression",
    934   "integer_expression", "function_call", "function_call_or_method",
    935   "function_call_generic", "function_call_header_no_parameters",
    936   "function_call_header_with_parameters", "function_call_header",
    937   "function_identifier", "unary_expression", "unary_operator",
    938   "multiplicative_expression", "additive_expression", "shift_expression",
    939   "relational_expression", "equality_expression", "and_expression",
    940   "exclusive_or_expression", "inclusive_or_expression",
    941   "logical_and_expression", "logical_xor_expression",
    942   "logical_or_expression", "conditional_expression", "$@1",
    943   "assignment_expression", "assignment_operator", "expression",
    944   "constant_expression", "declaration", "block_structure", "$@2",
    945   "identifier_list", "function_prototype", "function_declarator",
    946   "function_header_with_parameters", "function_header",
    947   "parameter_declarator", "parameter_declaration",
    948   "parameter_type_specifier", "init_declarator_list", "single_declaration",
    949   "fully_specified_type", "invariant_qualifier", "interpolation_qualifier",
    950   "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
    951   "precise_qualifier", "type_qualifier", "single_type_qualifier",
    952   "storage_qualifier", "type_name_list", "type_specifier",
    953   "array_specifier", "type_specifier_nonarray", "precision_qualifier",
    954   "struct_specifier", "$@3", "$@4", "struct_declaration_list",
    955   "struct_declaration", "struct_declarator_list", "struct_declarator",
    956   "initializer", "initializer_list", "declaration_statement", "statement",
    957   "simple_statement", "compound_statement", "$@5", "$@6",
    958   "statement_no_new_scope", "statement_scoped", "$@7", "$@8",
    959   "compound_statement_no_new_scope", "statement_list",
    960   "expression_statement", "selection_statement",
    961   "selection_rest_statement", "condition", "switch_statement", "$@9",
    962   "switch_statement_list", "case_label", "iteration_statement", "$@10",
    963   "$@11", "$@12", "for_init_statement", "conditionopt",
    964   "for_rest_statement", "jump_statement", "translation_unit",
    965   "external_declaration", "function_definition", "$@13", YY_NULLPTR
    966 };
    967 #endif
    968 
    969 # ifdef YYPRINT
    970 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
    971    (internal) symbol number NUM (which must be that of a token).  */
    972 static const yytype_uint16 yytoknum[] =
    973 {
    974        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
    975      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
    976      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
    977      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
    978      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
    979      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
    980      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
    981      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
    982      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
    983      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
    984      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
    985      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
    986      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
    987      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
    988      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
    989      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
    990      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
    991      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
    992      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
    993      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
    994      455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
    995      465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
    996      475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
    997      485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
    998      495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
    999      505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
   1000      515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
   1001      525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
   1002      535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
   1003      545,   546,   547,   548,   549,   550,   551,   552
   1004 };
   1005 # endif
   1006 
   1007 #define YYPACT_NINF -525
   1008 
   1009 #define yypact_value_is_default(Yystate) \
   1010   (!!((Yystate) == (-525)))
   1011 
   1012 #define YYTABLE_NINF -407
   1013 
   1014 #define yytable_value_is_error(Yytable_value) \
   1015   0
   1016 
   1017   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
   1018      STATE-NUM.  */
   1019 static const yytype_int16 yypact[] =
   1020 {
   1021     2619,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1022     -525,  -525,  -525,  -525,  -243,  -525,  -525,  -525,  -525,  -525,
   1023     -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1024     -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1025     -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1026     -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1027     -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1028     -525,  -228,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1029     -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1030     -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1031     -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1032     -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1033     -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1034     -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1035     -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1036     -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1037     -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1038     -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1039     -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1040     -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1041     -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1042     -525,  -525,  -525,  -525,  -525,  -525,  -215,  -525,  -525,  -525,
   1043     -525,  -525,  -525,  -525,  -525,  -157,  -525,  -216,  -218,  -205,
   1044     -141,  4260,  -165,  -525,   -94,  -525,  -525,  -525,  -525,  3183,
   1045     -525,  -525,  -525,  -117,  -525,  -525,   575,  -525,  -525,   -80,
   1046      -48,  -114,  -525,  6381,  -242,  -525,  -525,  -113,  -525,  4260,
   1047     -525,  -525,  -525,  4260,   -75,   -74,  -525,  -235,  -190,  -525,
   1048     -525,  -525,  4765,  -108,  -525,  -525,  -525,  -186,  -525,  -112,
   1049     -178,  -525,  -525,  4260,  -115,  -525,  -226,   867,  -525,  -525,
   1050     -525,  -525,  -117,  -229,  -525,  5039,  -224,  -525,   -71,  -525,
   1051     -158,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1052     -525,  -525,  5861,  5861,  5861,  -525,  -525,  -525,  -525,  -525,
   1053     -525,  -525,  -223,  -525,  -525,  -525,  -102,  -177,  6121,  -100,
   1054     -525,  5861,  -204,  -171,  -132,  -221,  -199,  -124,  -120,  -111,
   1055      -84,   -83,  -233,   -98,  -525,  5313,  -525,   -60,  5861,  -525,
   1056      -48,  4260,  4260,   -59,  3456,  -525,  -525,  -525,   -99,   -97,
   1057     -525,   -90,   -88,   -96,  5587,   -85,  5861,   -92,   -79,   -81,
   1058     -525,  -525,  -191,  -525,  -525,  -153,  -525,  -218,   -78,  -525,
   1059     -525,  -525,  -525,  1159,  -525,  -525,  -525,  -525,  -525,  -525,
   1060     -108,  5039,  -193,  5039,  -525,  -525,  5039,  4260,  -525,   -47,
   1061     -525,  -525,  -525,  -176,  -525,  -525,  5861,   -42,  -525,  -525,
   1062     5861,   -73,  -525,  -525,  -525,  5861,  5861,  5861,  5861,  5861,
   1063     5861,  5861,  5861,  5861,  5861,  5861,  5861,  5861,  5861,  5861,
   1064     5861,  5861,  5861,  5861,  -525,  -525,  -525,   -76,  -525,  -525,
   1065     -525,  -525,  3724,   -59,  -117,  -152,  -525,  -525,  -525,  -525,
   1066     -525,  1451,  -525,  5861,  -525,  -525,  -143,  5861,  -180,  -525,
   1067     -525,  -525,  1451,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1068     -525,  -525,  -525,  -525,  5861,  5861,  -525,  -525,  -525,  -525,
   1069     5039,  -525,  -133,  -525,  3992,  -525,  -525,   -72,   -77,  -525,
   1070     -525,  -525,  -525,  -525,  -204,  -204,  -171,  -171,  -132,  -132,
   1071     -132,  -132,  -221,  -221,  -199,  -124,  -120,  -111,   -84,   -83,
   1072     5861,  -525,  -525,  -142,  -108,   -59,  -525,   -37,  2327,  -175,
   1073     -525,  -163,  -525,  2892,  1451,  -525,  -525,  -525,  -525,  4491,
   1074     -525,  -525,  -129,  -525,  -525,   -68,  -525,  -525,  2892,   -70,
   1075     -525,   -77,   -32,  4260,   -63,   -66,  -525,  -525,  5861,  5861,
   1076     -525,   -69,   -61,   188,   -58,  2035,  -525,   -56,   -57,  1743,
   1077     -525,  -525,  -161,  5861,  1743,   -70,  -525,  -525,  1451,  5039,
   1078     -525,  -525,  -525,   -67,   -77,  -525,  -525,  1451,   -54,  -525,
   1079     -525,  -525
   1080 };
   1081 
   1082   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
   1083      Performed when YYTABLE does not specify something else to do.  Zero
   1084      means the default is an error.  */
   1085 static const yytype_uint16 yydefact[] =
   1086 {
   1087        0,   149,   150,   148,   185,   176,   177,   179,   180,   181,
   1088      182,   183,   184,   178,   165,   195,   196,   197,   198,   199,
   1089      200,   201,   202,   203,   207,   208,   209,   210,   211,   212,
   1090      186,   187,   188,   216,   217,   218,   154,   152,   153,   151,
   1091      157,   155,   156,   158,   159,   160,   161,   162,   163,   164,
   1092      189,   190,   191,   228,   229,   230,   192,   193,   194,   240,
   1093      241,   242,   204,   205,   206,   213,   214,   215,   131,   130,
   1094      129,     0,   132,   219,   220,   221,   222,   223,   224,   225,
   1095      226,   227,   231,   232,   233,   234,   235,   236,   237,   238,
   1096      239,   243,   244,   245,   246,   247,   248,   249,   250,   251,
   1097      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
   1098      262,   263,   266,   267,   268,   269,   270,   271,   273,   274,
   1099      275,   276,   277,   278,   280,   281,   282,   283,   284,   285,
   1100      286,   264,   265,   272,   279,   287,   288,   289,   290,   291,
   1101      292,   361,   293,   294,   295,   296,   297,   298,   299,   300,
   1102      302,   303,   304,   305,   306,   307,   309,   310,   311,   312,
   1103      313,   314,   316,   317,   318,   319,   320,   321,   301,   308,
   1104      315,   322,   323,   324,   325,   326,   327,   362,   363,   364,
   1105      365,   366,   367,   328,   329,   330,   331,   332,   333,   334,
   1106      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
   1107      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
   1108      355,   356,   357,   358,   359,   360,     0,   175,   369,   448,
   1109      128,   139,   370,   371,   372,     0,   447,     0,   449,     0,
   1110      105,   104,     0,   116,   121,   146,   145,   143,   147,     0,
   1111      140,   142,   126,   169,   144,   368,     0,   444,   446,     0,
   1112        0,     0,   375,     0,     0,    93,    90,     0,   103,     0,
   1113      112,   106,   114,     0,   115,     0,    91,   122,     0,    96,
   1114      141,   127,     0,   170,     1,   445,   167,     0,   138,   136,
   1115        0,   134,   373,     0,     0,    94,     0,     0,   450,   107,
   1116      111,   113,   109,   117,   108,     0,   123,    99,     0,    97,
   1117        0,     2,    10,    11,     4,     5,     6,     7,     8,     9,
   1118       13,    12,     0,     0,     0,   171,    39,    38,    40,    37,
   1119        3,    15,    33,    17,    22,    23,     0,     0,    27,     0,
   1120       41,     0,    45,    48,    51,    56,    59,    61,    63,    65,
   1121       67,    69,    71,     0,    31,     0,   166,     0,     0,   133,
   1122        0,     0,     0,     0,     0,   377,    92,    95,     0,     0,
   1123      429,     0,     0,     0,     0,     0,     0,     0,     0,   401,
   1124      410,   414,    41,    74,    87,     0,   390,     0,   126,   393,
   1125      412,   392,   391,     0,   394,   395,   396,   397,   398,   399,
   1126      110,     0,   118,     0,   385,   125,     0,     0,   101,     0,
   1127       98,    34,    35,     0,    19,    20,     0,     0,    25,    24,
   1128        0,   175,    28,    30,    36,     0,     0,     0,     0,     0,
   1129        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1130        0,     0,     0,     0,    72,   172,   173,     0,   168,    89,
   1131      137,   135,     0,     0,   383,     0,   381,   376,   378,   440,
   1132      439,     0,   431,     0,   443,   441,     0,     0,     0,   426,
   1133      427,   400,     0,    77,    78,    80,    79,    82,    83,    84,
   1134       85,    86,    81,    76,     0,     0,   415,   411,   413,   120,
   1135        0,   388,     0,   124,     0,   102,    14,     0,    21,    18,
   1136       29,    42,    43,    44,    47,    46,    49,    50,    54,    55,
   1137       52,    53,    57,    58,    60,    62,    64,    66,    68,    70,
   1138        0,   174,   374,     0,   384,     0,   379,     0,     0,     0,
   1139      442,     0,   425,     0,   402,    75,    88,   119,   386,     0,
   1140      100,    16,     0,   380,   382,     0,   434,   433,   436,   408,
   1141      421,   419,     0,     0,     0,     0,   387,   389,     0,     0,
   1142      435,     0,     0,   418,     0,     0,   416,     0,     0,     0,
   1143      403,    73,     0,   437,     0,   408,   407,   409,   423,     0,
   1144      405,   428,   404,     0,   438,   432,   417,   424,     0,   420,
   1145      430,   422
   1146 };
   1147 
   1148   /* YYPGOTO[NTERM-NUM].  */
   1149 static const yytype_int16 yypgoto[] =
   1150 {
   1151     -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,  -525,
   1152     -525,  -525,  -103,  -525,  -278,  -274,  -297,  -273,  -214,  -211,
   1153     -210,  -212,  -209,  -208,  -525,  -261,  -525,  -292,  -525,  -308,
   1154     -525,     4,  -525,  -525,  -525,     5,  -525,  -525,  -525,   -41,
   1155      -38,   -39,  -525,  -525,  -504,  -525,  -525,  -525,  -525,  -123,
   1156     -525,  -230,  -237,  -525,  -525,     0,  -246,  -525,     1,  -525,
   1157     -525,  -525,  -337,  -342,  -207,  -286,  -378,  -525,  -285,  -376,
   1158     -524,  -322,  -525,  -525,  -330,  -327,  -525,  -525,   -22,  -452,
   1159     -275,  -525,  -525,  -298,  -525,  -525,  -525,  -525,  -525,  -525,
   1160     -525,  -525,  -525,  -525,  -525,  -525,  -525,    -2,  -525,  -525
   1161 };
   1162 
   1163   /* YYDEFGOTO[NTERM-NUM].  */
   1164 static const yytype_int16 yydefgoto[] =
   1165 {
   1166       -1,   320,   321,   322,   487,   323,   324,   325,   326,   327,
   1167      328,   329,   372,   331,   332,   333,   334,   335,   336,   337,
   1168      338,   339,   340,   341,   342,   373,   510,   374,   474,   375,
   1169      440,   376,   227,   397,   300,   377,   229,   230,   231,   260,
   1170      261,   262,   232,   233,   234,   235,   236,   237,   280,   281,
   1171      238,   239,   240,   241,   277,   344,   273,   243,   244,   245,
   1172      351,   283,   354,   355,   445,   446,   395,   482,   379,   380,
   1173      381,   382,   462,   545,   571,   553,   554,   555,   572,   383,
   1174      384,   385,   556,   544,   386,   557,   578,   387,   388,   523,
   1175      451,   518,   538,   551,   552,   389,   246,   247,   248,   257
   1176 };
   1177 
   1178   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
   1179      positive, shift that token.  If negative, reduce the rule whose
   1180      number is the opposite.  If YYTABLE_NINF, syntax error.  */
   1181 static const yytype_int16 yytable[] =
   1182 {
   1183      242,   263,   270,   394,   226,   228,   403,   478,   286,   278,
   1184      524,   343,   448,   479,   442,   481,   254,   251,   483,   542,
   1185      433,   296,   249,   404,   405,   272,   270,   422,   423,   263,
   1186      294,   567,   272,   285,   542,   570,   412,   250,   272,   295,
   1187      570,   345,   -32,   345,   406,   391,   390,   392,   407,   357,
   1188      396,   426,   427,   352,   252,   434,   456,   256,   458,   255,
   1189      484,   258,   424,   425,   463,   464,   465,   466,   467,   468,
   1190      469,   470,   471,   472,   345,   517,   415,   416,   417,   297,
   1191      346,   480,   298,   473,   437,   299,   347,   439,   349,   409,
   1192      486,   539,   475,   522,   350,   410,   475,   475,   488,   394,
   1193      448,   394,   527,   540,   394,   573,   418,   265,   419,   475,
   1194      266,   475,   420,   421,   399,   270,   577,   400,   490,   475,
   1195      515,   352,   476,   516,   352,   498,   499,   500,   501,   475,
   1196      515,   259,   520,   533,   222,   223,   224,   528,   267,   529,
   1197      494,   495,   448,   475,   548,   519,   496,   497,   478,   521,
   1198      272,   547,   276,   502,   503,   282,   287,   292,   293,   345,
   1199      356,   398,   348,   428,   408,   413,   429,   352,   431,   330,
   1200      435,   432,   438,   444,   430,   452,   449,   453,   450,   454,
   1201      457,   459,   525,   526,   279,   485,   460,   -31,   394,   461,
   1202      489,   579,   511,   -26,   535,   475,   531,   549,   514,  -406,
   1203      558,   478,   532,   559,   560,   564,   563,   565,   580,   401,
   1204      402,   369,   352,   568,   504,   541,   581,   569,   505,   507,
   1205      506,   289,   290,   508,   291,   509,   253,   441,   414,   534,
   1206      541,   264,   566,   536,   575,   288,   513,   394,   576,   271,
   1207      550,   562,   330,   537,   275,   330,   242,     0,     0,     0,
   1208      226,   228,     0,   284,   352,   574,   561,     0,     0,   264,
   1209        0,     0,     0,   264,     0,     0,     0,     0,     0,     0,
   1210        0,     0,     0,     0,     0,     0,     0,   394,     0,     0,
   1211        0,     0,     0,   353,     0,     0,     0,   378,     0,     0,
   1212        0,     0,     0,   543,     0,     0,     0,     0,     0,     0,
   1213        0,     0,     0,     0,     0,     0,   270,     0,   543,     0,
   1214        0,     0,   491,   492,   493,   330,   330,   330,   330,   330,
   1215      330,   330,   330,   330,   330,   330,   330,   330,   330,   330,
   1216      330,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1217        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1218        0,   353,   443,     0,   353,     0,     0,     0,     0,     0,
   1219        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1220        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1221        0,     0,     0,   378,     0,     0,     0,     0,     0,     0,
   1222        0,     0,     0,     0,     0,     0,     0,   353,     0,     0,
   1223        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1224        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1225        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1226        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1227        0,     0,   353,     0,     0,     0,     0,     0,     0,     0,
   1228        0,   378,     0,     0,     0,     0,     0,     0,     0,     0,
   1229        0,     0,   378,     0,     0,     0,     0,     0,     0,     0,
   1230        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1231        0,     0,     0,     0,   353,     0,     0,     0,     0,     0,
   1232        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1233        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1234        0,     0,     0,     0,     0,     0,     0,     0,   378,     0,
   1235        0,     0,     0,   378,   378,     0,     0,     0,     0,     0,
   1236        0,     0,     0,     0,     0,     0,     0,     0,   378,     0,
   1237        0,     0,     0,   271,     0,     0,     0,     0,     0,     0,
   1238        0,     0,     0,     0,     0,   378,     0,     0,     0,   378,
   1239        0,     0,     0,     0,   378,     0,     0,     0,   378,     0,
   1240        0,     0,     0,     0,     0,   274,     0,   378,     1,     2,
   1241        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
   1242       13,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1243        0,     0,    14,    15,    16,    17,    18,    19,    20,    21,
   1244       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
   1245       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
   1246       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
   1247       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
   1248       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
   1249       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
   1250       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
   1251       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
   1252      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
   1253      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
   1254      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
   1255      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
   1256      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
   1257      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
   1258      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
   1259      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
   1260      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
   1261      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
   1262      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
   1263      212,   213,   214,   215,   216,   217,     0,     0,   218,     0,
   1264        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1265        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1266        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1267        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1268      219,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1269        0,     0,     0,     0,   220,   221,   222,   223,   224,   225,
   1270        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
   1271       11,    12,    13,   358,   359,   360,     0,   361,   362,   363,
   1272      364,   365,   366,   367,    14,    15,    16,    17,    18,    19,
   1273       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
   1274       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
   1275       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
   1276       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
   1277       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
   1278       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
   1279       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
   1280       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
   1281      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
   1282      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
   1283      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
   1284      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
   1285      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
   1286      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
   1287      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
   1288      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
   1289      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
   1290      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
   1291      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
   1292      210,   211,   212,   213,   214,   215,   216,   217,   368,   301,
   1293      218,   302,   303,   304,   305,   306,   307,   308,   309,   310,
   1294      311,     0,     0,   312,   313,     0,     0,     0,     0,     0,
   1295        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1296        0,     0,   314,     0,     0,     0,   369,   370,     0,     0,
   1297        0,     0,   371,   316,   317,   318,   319,     0,     0,     0,
   1298        0,     0,     0,     0,     0,     0,   220,   221,   222,   223,
   1299      224,   225,     1,     2,     3,     4,     5,     6,     7,     8,
   1300        9,    10,    11,    12,    13,   358,   359,   360,     0,   361,
   1301      362,   363,   364,   365,   366,   367,    14,    15,    16,    17,
   1302       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
   1303       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
   1304       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
   1305       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
   1306       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
   1307       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
   1308       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
   1309       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
   1310       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
   1311      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
   1312      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
   1313      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
   1314      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
   1315      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
   1316      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
   1317      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
   1318      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
   1319      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
   1320      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
   1321      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
   1322      368,   301,   218,   302,   303,   304,   305,   306,   307,   308,
   1323      309,   310,   311,     0,     0,   312,   313,     0,     0,     0,
   1324        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1325        0,     0,     0,     0,   314,     0,     0,     0,   369,   477,
   1326        0,     0,     0,     0,   371,   316,   317,   318,   319,     0,
   1327        0,     0,     0,     0,     0,     0,     0,     0,   220,   221,
   1328      222,   223,   224,   225,     1,     2,     3,     4,     5,     6,
   1329        7,     8,     9,    10,    11,    12,    13,   358,   359,   360,
   1330        0,   361,   362,   363,   364,   365,   366,   367,    14,    15,
   1331       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
   1332       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
   1333       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
   1334       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
   1335       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
   1336       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
   1337       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
   1338       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
   1339       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
   1340      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
   1341      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
   1342      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
   1343      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
   1344      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
   1345      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
   1346      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
   1347      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
   1348      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
   1349      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
   1350      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
   1351      216,   217,   368,   301,   218,   302,   303,   304,   305,   306,
   1352      307,   308,   309,   310,   311,     0,     0,   312,   313,     0,
   1353        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1354        0,     0,     0,     0,     0,     0,   314,     0,     0,     0,
   1355      369,     0,     0,     0,     0,     0,   371,   316,   317,   318,
   1356      319,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1357      220,   221,   222,   223,   224,   225,     1,     2,     3,     4,
   1358        5,     6,     7,     8,     9,    10,    11,    12,    13,   358,
   1359      359,   360,     0,   361,   362,   363,   364,   365,   366,   367,
   1360       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
   1361       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
   1362       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
   1363       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
   1364       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
   1365       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
   1366       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
   1367       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
   1368       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
   1369      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
   1370      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
   1371      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
   1372      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
   1373      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
   1374      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
   1375      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
   1376      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
   1377      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
   1378      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
   1379      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
   1380      214,   215,   216,   217,   368,   301,   218,   302,   303,   304,
   1381      305,   306,   307,   308,   309,   310,   311,     0,     0,   312,
   1382      313,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1383        0,     0,     0,     0,     0,     0,     0,     0,   314,     0,
   1384        0,     0,   287,     0,     0,     0,     0,     0,   371,   316,
   1385      317,   318,   319,     0,     0,     0,     0,     0,     0,     0,
   1386        0,     0,   220,   221,   222,   223,   224,   225,     1,     2,
   1387        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
   1388       13,   358,   359,   360,     0,   361,   362,   363,   364,   365,
   1389      366,   367,    14,    15,    16,    17,    18,    19,    20,    21,
   1390       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
   1391       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
   1392       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
   1393       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
   1394       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
   1395       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
   1396       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
   1397       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
   1398      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
   1399      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
   1400      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
   1401      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
   1402      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
   1403      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
   1404      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
   1405      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
   1406      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
   1407      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
   1408      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
   1409      212,   213,   214,   215,   216,   217,   368,   301,   218,   302,
   1410      303,   304,   305,   306,   307,   308,   309,   310,   311,     0,
   1411        0,   312,   313,     0,     0,     0,     0,     0,     0,     0,
   1412        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1413      314,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1414      371,   316,   317,   318,   319,     0,     0,     0,     0,     0,
   1415        0,     0,     0,     0,   220,   221,   222,   223,   224,   225,
   1416        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
   1417       11,    12,    13,     0,     0,     0,     0,     0,     0,     0,
   1418        0,     0,     0,     0,    14,    15,    16,    17,    18,    19,
   1419       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
   1420       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
   1421       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
   1422       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
   1423       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
   1424       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
   1425       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
   1426       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
   1427      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
   1428      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
   1429      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
   1430      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
   1431      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
   1432      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
   1433      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
   1434      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
   1435      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
   1436      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
   1437      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
   1438      210,   211,   212,   213,   214,   215,   216,   217,     0,   301,
   1439      218,   302,   303,   304,   305,   306,   307,   308,   309,   310,
   1440      311,     0,     0,   312,   313,     0,     0,     0,     0,     0,
   1441        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1442        0,     0,   314,     0,     0,     0,     0,     0,     0,     0,
   1443        0,     0,   371,   316,   317,   318,   319,     0,     0,     0,
   1444        0,     0,     0,     0,     0,     0,   220,   221,   222,   223,
   1445      224,   225,     1,     2,     3,     4,     5,     6,     7,     8,
   1446        9,    10,    11,    12,    13,     0,     0,     0,     0,     0,
   1447        0,     0,     0,     0,     0,     0,    14,    15,    16,    17,
   1448       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
   1449       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
   1450       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
   1451       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
   1452       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
   1453       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
   1454       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
   1455       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
   1456       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
   1457      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
   1458      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
   1459      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
   1460      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
   1461      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
   1462      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
   1463      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
   1464      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
   1465      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
   1466      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
   1467      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
   1468        0,     0,   218,     0,     0,     0,     0,     0,     0,     0,
   1469        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1470        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1471        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1472        0,     0,     0,     0,   219,     1,     2,     3,     4,     5,
   1473        6,     7,     8,     9,    10,    11,    12,    13,   220,   221,
   1474      222,   223,   224,   225,     0,     0,     0,     0,     0,    14,
   1475       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
   1476       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
   1477       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
   1478       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
   1479       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
   1480       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
   1481       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
   1482       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
   1483       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
   1484      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
   1485      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
   1486      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
   1487      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
   1488      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
   1489      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
   1490      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
   1491      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
   1492      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
   1493      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
   1494      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
   1495      215,   216,   217,     0,   301,   218,   302,   303,   304,   305,
   1496      306,   307,   308,   309,   310,   311,     0,     0,   312,   313,
   1497        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1498        0,     0,     0,     0,     0,     0,     0,   314,     0,     0,
   1499        0,     0,     0,     0,     0,     0,     0,     0,   316,   317,
   1500      318,   319,     0,     0,     0,     0,     0,     0,     0,     0,
   1501        0,   220,   221,   222,   223,   224,     1,     2,     3,     4,
   1502        5,     6,     7,     8,     9,    10,    11,    12,    13,     0,
   1503        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1504       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
   1505       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
   1506       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
   1507       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
   1508       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
   1509       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
   1510       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
   1511       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
   1512       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
   1513      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
   1514      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
   1515      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
   1516      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
   1517      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
   1518      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
   1519      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
   1520      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
   1521      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
   1522      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
   1523      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
   1524      214,   215,   216,   217,     0,   268,   218,     0,     0,     0,
   1525        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1526        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1527        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1528        0,     0,     0,     0,     0,     0,     0,     0,   269,     1,
   1529        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
   1530       12,    13,   220,   221,   222,   223,   224,     0,     0,     0,
   1531        0,     0,     0,    14,    15,    16,    17,    18,    19,    20,
   1532       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
   1533       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
   1534       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
   1535       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
   1536       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
   1537       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
   1538       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
   1539       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
   1540      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
   1541      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
   1542      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
   1543      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
   1544      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
   1545      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
   1546      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
   1547      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
   1548      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
   1549      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
   1550      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
   1551      211,   212,   213,   214,   215,   216,   217,     0,     0,   218,
   1552        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1553        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1554        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1555        0,     0,     0,     0,     0,     0,   447,     1,     2,     3,
   1556        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
   1557        0,     0,     0,     0,     0,   220,   221,   222,   223,   224,
   1558        0,    14,    15,    16,    17,    18,    19,    20,    21,    22,
   1559       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
   1560       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
   1561       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
   1562       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
   1563       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
   1564       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
   1565       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
   1566       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
   1567      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
   1568      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
   1569      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
   1570      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
   1571      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
   1572      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
   1573      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
   1574      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
   1575      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
   1576      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
   1577      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
   1578      213,   214,   215,   216,   217,     0,     0,   218,     0,     0,
   1579        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1580        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1581        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1582        0,     0,     0,     0,   512,     1,     2,     3,     4,     5,
   1583        6,     7,     8,     9,    10,    11,    12,    13,     0,     0,
   1584        0,     0,     0,   220,   221,   222,   223,   224,     0,    14,
   1585       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
   1586       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
   1587       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
   1588       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
   1589       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
   1590       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
   1591       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
   1592       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
   1593       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
   1594      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
   1595      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
   1596      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
   1597      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
   1598      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
   1599      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
   1600      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
   1601      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
   1602      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
   1603      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
   1604      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
   1605      215,   216,   217,     0,     0,   218,     0,     0,     0,     0,
   1606        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1607        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1608        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1609        0,     0,   530,     1,     2,     3,     4,     5,     6,     7,
   1610        8,     9,    10,    11,    12,    13,     0,     0,     0,     0,
   1611        0,   220,   221,   222,   223,   224,     0,    14,    15,    16,
   1612       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
   1613       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
   1614       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
   1615       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
   1616       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
   1617       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
   1618       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
   1619       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
   1620       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
   1621      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
   1622      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
   1623      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
   1624      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
   1625      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
   1626      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
   1627      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
   1628      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
   1629      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
   1630      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
   1631      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
   1632      217,     0,     0,   218,     0,     0,     0,     4,     5,     6,
   1633        7,     8,     9,    10,    11,    12,    13,     0,     0,     0,
   1634        0,     0,     0,     0,     0,     0,     0,     0,     0,    15,
   1635       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
   1636       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
   1637        0,     0,     0,     0,     0,     0,     0,     0,     0,   220,
   1638      221,   222,   223,   224,    50,    51,    52,    53,    54,    55,
   1639       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
   1640       66,    67,     0,     0,     0,     0,     0,    73,    74,    75,
   1641       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
   1642       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
   1643       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
   1644      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
   1645      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
   1646      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
   1647      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
   1648      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
   1649      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
   1650      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
   1651      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
   1652      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
   1653      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
   1654      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
   1655      216,   217,     0,   301,   218,   302,   303,   304,   305,   306,
   1656      307,   308,   309,   310,   311,     0,     0,   312,   313,     0,
   1657        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1658        0,     0,     0,     0,     0,     0,   314,     0,     0,     0,
   1659      393,   546,     0,     0,     0,     0,     0,   316,   317,   318,
   1660      319,     4,     5,     6,     7,     8,     9,    10,    11,    12,
   1661       13,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1662        0,     0,     0,    15,    16,    17,    18,    19,    20,    21,
   1663       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
   1664       32,    33,    34,    35,     0,     0,     0,     0,     0,     0,
   1665        0,     0,     0,     0,     0,     0,     0,     0,    50,    51,
   1666       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
   1667       62,    63,    64,    65,    66,    67,     0,     0,     0,     0,
   1668        0,    73,    74,    75,    76,    77,    78,    79,    80,    81,
   1669       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
   1670       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
   1671      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
   1672      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
   1673      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
   1674      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
   1675      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
   1676      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
   1677      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
   1678      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
   1679      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
   1680      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
   1681      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
   1682      212,   213,   214,   215,   216,   217,     0,   301,   218,   302,
   1683      303,   304,   305,   306,   307,   308,   309,   310,   311,     0,
   1684        0,   312,   313,     0,     0,     0,     0,     0,     0,     0,
   1685        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1686      314,     0,     0,   315,     0,     0,     0,     0,     0,     0,
   1687        0,   316,   317,   318,   319,     4,     5,     6,     7,     8,
   1688        9,    10,    11,    12,    13,     0,     0,     0,     0,     0,
   1689        0,     0,     0,     0,     0,     0,     0,    15,    16,    17,
   1690       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
   1691       28,    29,    30,    31,    32,    33,    34,    35,     0,     0,
   1692        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1693        0,     0,    50,    51,    52,    53,    54,    55,    56,    57,
   1694       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
   1695        0,     0,     0,     0,     0,    73,    74,    75,    76,    77,
   1696       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
   1697       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
   1698       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
   1699      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
   1700      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
   1701      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
   1702      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
   1703      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
   1704      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
   1705      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
   1706      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
   1707      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
   1708      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
   1709      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
   1710        0,   301,   218,   302,   303,   304,   305,   306,   307,   308,
   1711      309,   310,   311,     0,     0,   312,   313,     0,     0,     0,
   1712        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1713        0,     0,     0,     0,   314,     0,     0,     0,   393,     0,
   1714        0,     0,     0,     0,     0,   316,   317,   318,   319,     4,
   1715        5,     6,     7,     8,     9,    10,    11,    12,    13,     0,
   1716        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1717        0,    15,    16,    17,    18,    19,    20,    21,    22,    23,
   1718       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
   1719       34,    35,     0,     0,     0,     0,     0,     0,     0,     0,
   1720        0,     0,     0,     0,     0,     0,    50,    51,    52,    53,
   1721       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
   1722       64,    65,    66,    67,     0,     0,     0,     0,     0,    73,
   1723       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
   1724       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
   1725       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
   1726      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
   1727      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
   1728      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
   1729      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
   1730      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
   1731      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
   1732      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
   1733      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
   1734      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
   1735      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
   1736      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
   1737      214,   215,   216,   217,     0,   301,   218,   302,   303,   304,
   1738      305,   306,   307,   308,   309,   310,   311,     0,     0,   312,
   1739      313,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1740        0,     0,     0,     0,     0,     0,     0,     0,   314,     0,
   1741        0,   436,     0,     0,     0,     0,     0,     0,     0,   316,
   1742      317,   318,   319,     4,     5,     6,     7,     8,     9,    10,
   1743       11,    12,    13,     0,     0,     0,     0,     0,     0,     0,
   1744        0,     0,     0,     0,     0,    15,    16,    17,    18,    19,
   1745       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
   1746       30,    31,    32,    33,    34,    35,     0,     0,     0,     0,
   1747        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1748       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
   1749       60,    61,    62,    63,    64,    65,    66,    67,     0,     0,
   1750        0,     0,     0,    73,    74,    75,    76,    77,    78,    79,
   1751       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
   1752       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
   1753      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
   1754      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
   1755      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
   1756      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
   1757      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
   1758      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
   1759      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
   1760      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
   1761      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
   1762      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
   1763      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
   1764      210,   211,   212,   213,   214,   215,   216,   217,     0,   301,
   1765      218,   302,   303,   304,   305,   306,   307,   308,   309,   310,
   1766      311,     0,     0,   312,   313,     0,     0,     0,     0,     0,
   1767        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1768        0,     0,   314,     0,     0,     0,     0,     0,     0,     0,
   1769        0,     0,   455,   316,   317,   318,   319,     4,     5,     6,
   1770        7,     8,     9,    10,    11,    12,    13,     0,     0,     0,
   1771        0,     0,     0,     0,     0,     0,     0,     0,     0,    15,
   1772       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
   1773       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
   1774        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1775        0,     0,     0,     0,    50,    51,    52,    53,    54,    55,
   1776       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
   1777       66,    67,     0,     0,     0,     0,     0,    73,    74,    75,
   1778       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
   1779       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
   1780       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
   1781      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
   1782      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
   1783      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
   1784      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
   1785      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
   1786      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
   1787      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
   1788      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
   1789      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
   1790      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
   1791      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
   1792      216,   217,     0,   301,   218,   302,   303,   304,   305,   306,
   1793      307,   308,   309,   310,   311,     0,     0,   312,   313,     0,
   1794        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1795        0,     0,     0,     0,     0,     0,   314,     4,     5,     6,
   1796        7,     8,     9,    10,    11,    12,    13,   316,   317,   318,
   1797      319,     0,     0,     0,     0,     0,     0,     0,     0,    15,
   1798       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
   1799       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
   1800        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1801        0,     0,     0,     0,    50,    51,    52,    53,    54,    55,
   1802       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
   1803       66,    67,     0,     0,     0,     0,     0,    73,    74,    75,
   1804       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
   1805       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
   1806       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
   1807      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
   1808      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
   1809      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
   1810      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
   1811      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
   1812      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
   1813      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
   1814      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
   1815      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
   1816      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
   1817      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
   1818      216,   411,     0,   301,   218,   302,   303,   304,   305,   306,
   1819      307,   308,   309,   310,   311,     0,     0,   312,   313,     0,
   1820        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1821        0,     0,     0,     0,     0,     0,   314,     4,     5,     6,
   1822        7,     8,     9,    10,    11,    12,    13,   316,   317,   318,
   1823      319,     0,     0,     0,     0,     0,     0,     0,     0,    15,
   1824       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
   1825       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
   1826        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1827        0,     0,     0,     0,    50,    51,    52,    53,    54,    55,
   1828       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
   1829       66,    67,     0,     0,     0,     0,     0,    73,    74,    75,
   1830       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
   1831       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
   1832       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
   1833      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
   1834      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
   1835      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
   1836      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
   1837      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
   1838      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
   1839      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
   1840      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
   1841      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
   1842      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
   1843      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
   1844      216,   217,     0,     0,   218
   1845 };
   1846 
   1847 static const yytype_int16 yycheck[] =
   1848 {
   1849        0,   231,   239,   295,     0,     0,   314,   383,   254,    57,
   1850      462,   272,   354,   391,   351,   393,   232,   232,   396,   523,
   1851      253,   267,   265,   246,   247,   267,   263,   248,   249,   259,
   1852      265,   555,   267,   275,   538,   559,   328,   265,   267,   274,
   1853      564,   267,   265,   267,   267,   274,   292,   293,   271,   275,
   1854      274,   250,   251,   283,   269,   288,   364,   275,   366,   275,
   1855      397,   266,   283,   284,   255,   256,   257,   258,   259,   260,
   1856      261,   262,   263,   264,   267,   451,   280,   281,   282,   269,
   1857      266,   274,   272,   274,   345,   275,   272,   348,   266,   266,
   1858      266,   266,   272,   273,   272,   272,   272,   272,   406,   391,
   1859      442,   393,   480,   266,   396,   266,   277,   272,   279,   272,
   1860      275,   272,   244,   245,   272,   352,   568,   275,   410,   272,
   1861      272,   351,   275,   275,   354,   422,   423,   424,   425,   272,
   1862      272,   272,   275,   275,   291,   292,   293,   270,   232,   272,
   1863      418,   419,   484,   272,   273,   453,   420,   421,   524,   457,
   1864      267,   529,   232,   426,   427,   269,   269,   232,   232,   267,
   1865      275,   232,   274,   287,   266,   265,   286,   397,   252,   272,
   1866      268,   254,   232,   232,   285,   265,   275,   265,   275,   275,
   1867      265,   273,   474,   475,   232,   232,   265,   265,   480,   270,
   1868      232,   569,   268,   266,   231,   272,   268,   265,   444,   269,
   1869      232,   577,   510,   266,   270,   266,   275,    19,   275,   312,
   1870      313,   269,   442,   269,   428,   523,   270,   274,   429,   431,
   1871      430,   259,   263,   432,   263,   433,   225,   350,   331,   515,
   1872      538,   231,   554,   518,   564,   257,   443,   529,   565,   239,
   1873      538,   549,   345,   518,   246,   348,   246,    -1,    -1,    -1,
   1874      246,   246,    -1,   253,   484,   563,   548,    -1,    -1,   259,
   1875       -1,    -1,    -1,   263,    -1,    -1,    -1,    -1,    -1,    -1,
   1876       -1,    -1,    -1,    -1,    -1,    -1,    -1,   569,    -1,    -1,
   1877       -1,    -1,    -1,   283,    -1,    -1,    -1,   287,    -1,    -1,
   1878       -1,    -1,    -1,   523,    -1,    -1,    -1,    -1,    -1,    -1,
   1879       -1,    -1,    -1,    -1,    -1,    -1,   543,    -1,   538,    -1,
   1880       -1,    -1,   415,   416,   417,   418,   419,   420,   421,   422,
   1881      423,   424,   425,   426,   427,   428,   429,   430,   431,   432,
   1882      433,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1883       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1884       -1,   351,   352,    -1,   354,    -1,    -1,    -1,    -1,    -1,
   1885       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1886       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1887       -1,    -1,    -1,   383,    -1,    -1,    -1,    -1,    -1,    -1,
   1888       -1,    -1,    -1,    -1,    -1,    -1,    -1,   397,    -1,    -1,
   1889       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1890       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1891       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1892       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1893       -1,    -1,   442,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1894       -1,   451,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1895       -1,    -1,   462,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1896       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1897       -1,    -1,    -1,    -1,   484,    -1,    -1,    -1,    -1,    -1,
   1898       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1899       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1900       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   518,    -1,
   1901       -1,    -1,    -1,   523,   524,    -1,    -1,    -1,    -1,    -1,
   1902       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,
   1903       -1,    -1,    -1,   543,    -1,    -1,    -1,    -1,    -1,    -1,
   1904       -1,    -1,    -1,    -1,    -1,   555,    -1,    -1,    -1,   559,
   1905       -1,    -1,    -1,    -1,   564,    -1,    -1,    -1,   568,    -1,
   1906       -1,    -1,    -1,    -1,    -1,     0,    -1,   577,     3,     4,
   1907        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
   1908       15,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1909       -1,    -1,    27,    28,    29,    30,    31,    32,    33,    34,
   1910       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
   1911       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
   1912       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
   1913       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
   1914       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
   1915       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
   1916       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
   1917      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
   1918      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
   1919      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
   1920      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
   1921      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
   1922      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
   1923      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
   1924      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
   1925      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
   1926      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
   1927      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
   1928      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
   1929      225,   226,   227,   228,   229,   230,    -1,    -1,   233,    -1,
   1930       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1931       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1932       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1933       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1934      275,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1935       -1,    -1,    -1,    -1,   289,   290,   291,   292,   293,   294,
   1936        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
   1937       13,    14,    15,    16,    17,    18,    -1,    20,    21,    22,
   1938       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
   1939       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
   1940       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
   1941       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
   1942       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
   1943       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
   1944       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
   1945       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
   1946      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
   1947      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
   1948      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
   1949      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
   1950      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
   1951      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
   1952      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
   1953      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
   1954      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
   1955      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
   1956      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
   1957      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
   1958      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
   1959      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
   1960      243,    -1,    -1,   246,   247,    -1,    -1,    -1,    -1,    -1,
   1961       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1962       -1,    -1,   265,    -1,    -1,    -1,   269,   270,    -1,    -1,
   1963       -1,    -1,   275,   276,   277,   278,   279,    -1,    -1,    -1,
   1964       -1,    -1,    -1,    -1,    -1,    -1,   289,   290,   291,   292,
   1965      293,   294,     3,     4,     5,     6,     7,     8,     9,    10,
   1966       11,    12,    13,    14,    15,    16,    17,    18,    -1,    20,
   1967       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
   1968       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
   1969       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
   1970       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
   1971       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
   1972       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
   1973       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
   1974       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
   1975      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
   1976      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
   1977      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
   1978      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
   1979      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
   1980      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
   1981      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
   1982      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
   1983      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
   1984      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
   1985      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
   1986      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
   1987      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
   1988      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
   1989      241,   242,   243,    -1,    -1,   246,   247,    -1,    -1,    -1,
   1990       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1991       -1,    -1,    -1,    -1,   265,    -1,    -1,    -1,   269,   270,
   1992       -1,    -1,    -1,    -1,   275,   276,   277,   278,   279,    -1,
   1993       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   289,   290,
   1994      291,   292,   293,   294,     3,     4,     5,     6,     7,     8,
   1995        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
   1996       -1,    20,    21,    22,    23,    24,    25,    26,    27,    28,
   1997       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
   1998       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
   1999       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
   2000       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
   2001       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
   2002       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
   2003       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
   2004       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
   2005      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
   2006      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
   2007      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
   2008      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
   2009      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
   2010      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
   2011      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
   2012      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
   2013      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
   2014      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
   2015      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
   2016      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
   2017      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
   2018      239,   240,   241,   242,   243,    -1,    -1,   246,   247,    -1,
   2019       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2020       -1,    -1,    -1,    -1,    -1,    -1,   265,    -1,    -1,    -1,
   2021      269,    -1,    -1,    -1,    -1,    -1,   275,   276,   277,   278,
   2022      279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2023      289,   290,   291,   292,   293,   294,     3,     4,     5,     6,
   2024        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
   2025       17,    18,    -1,    20,    21,    22,    23,    24,    25,    26,
   2026       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
   2027       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
   2028       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
   2029       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
   2030       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
   2031       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
   2032       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
   2033       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
   2034      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
   2035      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
   2036      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
   2037      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
   2038      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
   2039      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
   2040      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
   2041      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
   2042      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
   2043      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
   2044      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
   2045      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
   2046      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
   2047      237,   238,   239,   240,   241,   242,   243,    -1,    -1,   246,
   2048      247,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2049       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   265,    -1,
   2050       -1,    -1,   269,    -1,    -1,    -1,    -1,    -1,   275,   276,
   2051      277,   278,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2052       -1,    -1,   289,   290,   291,   292,   293,   294,     3,     4,
   2053        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
   2054       15,    16,    17,    18,    -1,    20,    21,    22,    23,    24,
   2055       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
   2056       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
   2057       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
   2058       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
   2059       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
   2060       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
   2061       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
   2062       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
   2063      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
   2064      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
   2065      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
   2066      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
   2067      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
   2068      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
   2069      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
   2070      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
   2071      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
   2072      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
   2073      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
   2074      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
   2075      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
   2076      235,   236,   237,   238,   239,   240,   241,   242,   243,    -1,
   2077       -1,   246,   247,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2078       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2079      265,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2080      275,   276,   277,   278,   279,    -1,    -1,    -1,    -1,    -1,
   2081       -1,    -1,    -1,    -1,   289,   290,   291,   292,   293,   294,
   2082        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
   2083       13,    14,    15,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2084       -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,    32,
   2085       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
   2086       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
   2087       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
   2088       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
   2089       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
   2090       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
   2091       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
   2092      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
   2093      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
   2094      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
   2095      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
   2096      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
   2097      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
   2098      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
   2099      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
   2100      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
   2101      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
   2102      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
   2103      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
   2104      223,   224,   225,   226,   227,   228,   229,   230,    -1,   232,
   2105      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
   2106      243,    -1,    -1,   246,   247,    -1,    -1,    -1,    -1,    -1,
   2107       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2108       -1,    -1,   265,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2109       -1,    -1,   275,   276,   277,   278,   279,    -1,    -1,    -1,
   2110       -1,    -1,    -1,    -1,    -1,    -1,   289,   290,   291,   292,
   2111      293,   294,     3,     4,     5,     6,     7,     8,     9,    10,
   2112       11,    12,    13,    14,    15,    -1,    -1,    -1,    -1,    -1,
   2113       -1,    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    30,
   2114       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
   2115       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
   2116       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
   2117       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
   2118       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
   2119       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
   2120       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
   2121      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
   2122      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
   2123      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
   2124      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
   2125      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
   2126      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
   2127      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
   2128      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
   2129      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
   2130      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
   2131      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
   2132      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
   2133      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
   2134       -1,    -1,   233,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2135       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2136       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2137       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2138       -1,    -1,    -1,    -1,   275,     3,     4,     5,     6,     7,
   2139        8,     9,    10,    11,    12,    13,    14,    15,   289,   290,
   2140      291,   292,   293,   294,    -1,    -1,    -1,    -1,    -1,    27,
   2141       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
   2142       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
   2143       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
   2144       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
   2145       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
   2146       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
   2147       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
   2148       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
   2149      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
   2150      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
   2151      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
   2152      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
   2153      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
   2154      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
   2155      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
   2156      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
   2157      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
   2158      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
   2159      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
   2160      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
   2161      228,   229,   230,    -1,   232,   233,   234,   235,   236,   237,
   2162      238,   239,   240,   241,   242,   243,    -1,    -1,   246,   247,
   2163       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2164       -1,    -1,    -1,    -1,    -1,    -1,    -1,   265,    -1,    -1,
   2165       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   276,   277,
   2166      278,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2167       -1,   289,   290,   291,   292,   293,     3,     4,     5,     6,
   2168        7,     8,     9,    10,    11,    12,    13,    14,    15,    -1,
   2169       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2170       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
   2171       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
   2172       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
   2173       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
   2174       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
   2175       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
   2176       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
   2177       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
   2178      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
   2179      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
   2180      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
   2181      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
   2182      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
   2183      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
   2184      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
   2185      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
   2186      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
   2187      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
   2188      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
   2189      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
   2190      227,   228,   229,   230,    -1,   232,   233,    -1,    -1,    -1,
   2191       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2192       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2193       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2194       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   275,     3,
   2195        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
   2196       14,    15,   289,   290,   291,   292,   293,    -1,    -1,    -1,
   2197       -1,    -1,    -1,    27,    28,    29,    30,    31,    32,    33,
   2198       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
   2199       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
   2200       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
   2201       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
   2202       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
   2203       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
   2204       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
   2205      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
   2206      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
   2207      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
   2208      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
   2209      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
   2210      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
   2211      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
   2212      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
   2213      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
   2214      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
   2215      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
   2216      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
   2217      224,   225,   226,   227,   228,   229,   230,    -1,    -1,   233,
   2218       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2219       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2220       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2221       -1,    -1,    -1,    -1,    -1,    -1,   270,     3,     4,     5,
   2222        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
   2223       -1,    -1,    -1,    -1,    -1,   289,   290,   291,   292,   293,
   2224       -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
   2225       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
   2226       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
   2227       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
   2228       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
   2229       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
   2230       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
   2231       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
   2232      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
   2233      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
   2234      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
   2235      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
   2236      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
   2237      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
   2238      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
   2239      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
   2240      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
   2241      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
   2242      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
   2243      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
   2244      226,   227,   228,   229,   230,    -1,    -1,   233,    -1,    -1,
   2245       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2246       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2247       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2248       -1,    -1,    -1,    -1,   270,     3,     4,     5,     6,     7,
   2249        8,     9,    10,    11,    12,    13,    14,    15,    -1,    -1,
   2250       -1,    -1,    -1,   289,   290,   291,   292,   293,    -1,    27,
   2251       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
   2252       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
   2253       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
   2254       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
   2255       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
   2256       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
   2257       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
   2258       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
   2259      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
   2260      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
   2261      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
   2262      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
   2263      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
   2264      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
   2265      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
   2266      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
   2267      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
   2268      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
   2269      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
   2270      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
   2271      228,   229,   230,    -1,    -1,   233,    -1,    -1,    -1,    -1,
   2272       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2273       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2274       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2275       -1,    -1,   270,     3,     4,     5,     6,     7,     8,     9,
   2276       10,    11,    12,    13,    14,    15,    -1,    -1,    -1,    -1,
   2277       -1,   289,   290,   291,   292,   293,    -1,    27,    28,    29,
   2278       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
   2279       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
   2280       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
   2281       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
   2282       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
   2283       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
   2284       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
   2285      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
   2286      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
   2287      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
   2288      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
   2289      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
   2290      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
   2291      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
   2292      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
   2293      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
   2294      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
   2295      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
   2296      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
   2297      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
   2298      230,    -1,    -1,   233,    -1,    -1,    -1,     6,     7,     8,
   2299        9,    10,    11,    12,    13,    14,    15,    -1,    -1,    -1,
   2300       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
   2301       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
   2302       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
   2303       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   289,
   2304      290,   291,   292,   293,    63,    64,    65,    66,    67,    68,
   2305       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
   2306       79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
   2307       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
   2308       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
   2309      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
   2310      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
   2311      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
   2312      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
   2313      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
   2314      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
   2315      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
   2316      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
   2317      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
   2318      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
   2319      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
   2320      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
   2321      229,   230,    -1,   232,   233,   234,   235,   236,   237,   238,
   2322      239,   240,   241,   242,   243,    -1,    -1,   246,   247,    -1,
   2323       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2324       -1,    -1,    -1,    -1,    -1,    -1,   265,    -1,    -1,    -1,
   2325      269,   270,    -1,    -1,    -1,    -1,    -1,   276,   277,   278,
   2326      279,     6,     7,     8,     9,    10,    11,    12,    13,    14,
   2327       15,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2328       -1,    -1,    -1,    28,    29,    30,    31,    32,    33,    34,
   2329       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
   2330       45,    46,    47,    48,    -1,    -1,    -1,    -1,    -1,    -1,
   2331       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    64,
   2332       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
   2333       75,    76,    77,    78,    79,    80,    -1,    -1,    -1,    -1,
   2334       -1,    86,    87,    88,    89,    90,    91,    92,    93,    94,
   2335       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
   2336      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
   2337      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
   2338      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
   2339      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
   2340      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
   2341      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
   2342      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
   2343      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
   2344      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
   2345      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
   2346      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
   2347      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
   2348      225,   226,   227,   228,   229,   230,    -1,   232,   233,   234,
   2349      235,   236,   237,   238,   239,   240,   241,   242,   243,    -1,
   2350       -1,   246,   247,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2351       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2352      265,    -1,    -1,   268,    -1,    -1,    -1,    -1,    -1,    -1,
   2353       -1,   276,   277,   278,   279,     6,     7,     8,     9,    10,
   2354       11,    12,    13,    14,    15,    -1,    -1,    -1,    -1,    -1,
   2355       -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
   2356       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
   2357       41,    42,    43,    44,    45,    46,    47,    48,    -1,    -1,
   2358       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2359       -1,    -1,    63,    64,    65,    66,    67,    68,    69,    70,
   2360       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
   2361       -1,    -1,    -1,    -1,    -1,    86,    87,    88,    89,    90,
   2362       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
   2363      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
   2364      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
   2365      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
   2366      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
   2367      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
   2368      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
   2369      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
   2370      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
   2371      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
   2372      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
   2373      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
   2374      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
   2375      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
   2376       -1,   232,   233,   234,   235,   236,   237,   238,   239,   240,
   2377      241,   242,   243,    -1,    -1,   246,   247,    -1,    -1,    -1,
   2378       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2379       -1,    -1,    -1,    -1,   265,    -1,    -1,    -1,   269,    -1,
   2380       -1,    -1,    -1,    -1,    -1,   276,   277,   278,   279,     6,
   2381        7,     8,     9,    10,    11,    12,    13,    14,    15,    -1,
   2382       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2383       -1,    28,    29,    30,    31,    32,    33,    34,    35,    36,
   2384       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
   2385       47,    48,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2386       -1,    -1,    -1,    -1,    -1,    -1,    63,    64,    65,    66,
   2387       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
   2388       77,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
   2389       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
   2390       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
   2391      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
   2392      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
   2393      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
   2394      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
   2395      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
   2396      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
   2397      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
   2398      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
   2399      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
   2400      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
   2401      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
   2402      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
   2403      227,   228,   229,   230,    -1,   232,   233,   234,   235,   236,
   2404      237,   238,   239,   240,   241,   242,   243,    -1,    -1,   246,
   2405      247,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2406       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   265,    -1,
   2407       -1,   268,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   276,
   2408      277,   278,   279,     6,     7,     8,     9,    10,    11,    12,
   2409       13,    14,    15,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2410       -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
   2411       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
   2412       43,    44,    45,    46,    47,    48,    -1,    -1,    -1,    -1,
   2413       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2414       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
   2415       73,    74,    75,    76,    77,    78,    79,    80,    -1,    -1,
   2416       -1,    -1,    -1,    86,    87,    88,    89,    90,    91,    92,
   2417       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
   2418      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
   2419      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
   2420      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
   2421      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
   2422      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
   2423      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
   2424      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
   2425      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
   2426      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
   2427      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
   2428      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
   2429      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
   2430      223,   224,   225,   226,   227,   228,   229,   230,    -1,   232,
   2431      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
   2432      243,    -1,    -1,   246,   247,    -1,    -1,    -1,    -1,    -1,
   2433       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2434       -1,    -1,   265,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2435       -1,    -1,   275,   276,   277,   278,   279,     6,     7,     8,
   2436        9,    10,    11,    12,    13,    14,    15,    -1,    -1,    -1,
   2437       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
   2438       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
   2439       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
   2440       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2441       -1,    -1,    -1,    -1,    63,    64,    65,    66,    67,    68,
   2442       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
   2443       79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
   2444       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
   2445       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
   2446      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
   2447      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
   2448      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
   2449      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
   2450      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
   2451      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
   2452      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
   2453      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
   2454      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
   2455      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
   2456      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
   2457      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
   2458      229,   230,    -1,   232,   233,   234,   235,   236,   237,   238,
   2459      239,   240,   241,   242,   243,    -1,    -1,   246,   247,    -1,
   2460       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2461       -1,    -1,    -1,    -1,    -1,    -1,   265,     6,     7,     8,
   2462        9,    10,    11,    12,    13,    14,    15,   276,   277,   278,
   2463      279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
   2464       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
   2465       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
   2466       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2467       -1,    -1,    -1,    -1,    63,    64,    65,    66,    67,    68,
   2468       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
   2469       79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
   2470       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
   2471       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
   2472      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
   2473      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
   2474      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
   2475      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
   2476      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
   2477      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
   2478      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
   2479      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
   2480      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
   2481      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
   2482      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
   2483      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
   2484      229,   230,    -1,   232,   233,   234,   235,   236,   237,   238,
   2485      239,   240,   241,   242,   243,    -1,    -1,   246,   247,    -1,
   2486       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2487       -1,    -1,    -1,    -1,    -1,    -1,   265,     6,     7,     8,
   2488        9,    10,    11,    12,    13,    14,    15,   276,   277,   278,
   2489      279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
   2490       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
   2491       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
   2492       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   2493       -1,    -1,    -1,    -1,    63,    64,    65,    66,    67,    68,
   2494       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
   2495       79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
   2496       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
   2497       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
   2498      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
   2499      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
   2500      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
   2501      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
   2502      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
   2503      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
   2504      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
   2505      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
   2506      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
   2507      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
   2508      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
   2509      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
   2510      229,   230,    -1,    -1,   233
   2511 };
   2512 
   2513   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
   2514      symbol of state STATE-NUM.  */
   2515 static const yytype_uint16 yystos[] =
   2516 {
   2517        0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
   2518       12,    13,    14,    15,    27,    28,    29,    30,    31,    32,
   2519       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
   2520       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
   2521       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
   2522       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
   2523       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
   2524       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
   2525       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
   2526      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
   2527      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
   2528      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
   2529      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
   2530      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
   2531      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
   2532      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
   2533      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
   2534      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
   2535      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
   2536      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
   2537      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
   2538      223,   224,   225,   226,   227,   228,   229,   230,   233,   275,
   2539      289,   290,   291,   292,   293,   294,   329,   330,   333,   334,
   2540      335,   336,   340,   341,   342,   343,   344,   345,   348,   349,
   2541      350,   351,   353,   355,   356,   357,   394,   395,   396,   265,
   2542      265,   232,   269,   356,   232,   275,   275,   397,   266,   272,
   2543      337,   338,   339,   349,   353,   272,   275,   232,   232,   275,
   2544      350,   353,   267,   354,     0,   395,   232,   352,    57,   232,
   2545      346,   347,   269,   359,   353,   275,   354,   269,   376,   338,
   2546      337,   339,   232,   232,   265,   274,   354,   269,   272,   275,
   2547      332,   232,   234,   235,   236,   237,   238,   239,   240,   241,
   2548      242,   243,   246,   247,   265,   268,   276,   277,   278,   279,
   2549      299,   300,   301,   303,   304,   305,   306,   307,   308,   309,
   2550      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
   2551      320,   321,   322,   323,   353,   267,   266,   272,   274,   266,
   2552      272,   358,   349,   353,   360,   361,   275,   275,    16,    17,
   2553       18,    20,    21,    22,    23,    24,    25,    26,   231,   269,
   2554      270,   275,   310,   323,   325,   327,   329,   333,   353,   366,
   2555      367,   368,   369,   377,   378,   379,   382,   385,   386,   393,
   2556      354,   274,   354,   269,   325,   364,   274,   331,   232,   272,
   2557      275,   310,   310,   327,   246,   247,   267,   271,   266,   266,
   2558      272,   230,   325,   265,   310,   280,   281,   282,   277,   279,
   2559      244,   245,   248,   249,   283,   284,   250,   251,   287,   286,
   2560      285,   252,   254,   253,   288,   268,   268,   323,   232,   323,
   2561      328,   347,   360,   353,   232,   362,   363,   270,   361,   275,
   2562      275,   388,   265,   265,   275,   275,   327,   265,   327,   273,
   2563      265,   270,   370,   255,   256,   257,   258,   259,   260,   261,
   2564      262,   263,   264,   274,   326,   272,   275,   270,   367,   364,
   2565      274,   364,   365,   364,   360,   232,   266,   302,   327,   232,
   2566      325,   310,   310,   310,   312,   312,   313,   313,   314,   314,
   2567      314,   314,   315,   315,   316,   317,   318,   319,   320,   321,
   2568      324,   268,   270,   362,   354,   272,   275,   367,   389,   327,
   2569      275,   327,   273,   387,   377,   325,   325,   364,   270,   272,
   2570      270,   268,   327,   275,   363,   231,   366,   378,   390,   266,
   2571      266,   327,   342,   349,   381,   371,   270,   364,   273,   265,
   2572      381,   391,   392,   373,   374,   375,   380,   383,   232,   266,
   2573      270,   325,   327,   275,   266,    19,   369,   368,   269,   274,
   2574      368,   372,   376,   266,   327,   372,   373,   377,   384,   364,
   2575      275,   270
   2576 };
   2577 
   2578   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
   2579 static const yytype_uint16 yyr1[] =
   2580 {
   2581        0,   298,   299,   300,   300,   300,   300,   300,   300,   300,
   2582      300,   300,   300,   300,   300,   301,   301,   301,   301,   301,
   2583      301,   302,   303,   304,   305,   305,   306,   306,   307,   307,
   2584      308,   309,   309,   310,   310,   310,   310,   311,   311,   311,
   2585      311,   312,   312,   312,   312,   313,   313,   313,   314,   314,
   2586      314,   315,   315,   315,   315,   315,   316,   316,   316,   317,
   2587      317,   318,   318,   319,   319,   320,   320,   321,   321,   322,
   2588      322,   323,   324,   323,   325,   325,   326,   326,   326,   326,
   2589      326,   326,   326,   326,   326,   326,   326,   327,   327,   328,
   2590      329,   329,   329,   329,   329,   329,   329,   329,   329,   331,
   2591      330,   332,   332,   333,   334,   334,   335,   335,   336,   337,
   2592      337,   338,   338,   338,   338,   339,   340,   340,   340,   340,
   2593      340,   341,   341,   341,   341,   341,   342,   342,   343,   344,
   2594      344,   344,   344,   345,   346,   346,   347,   347,   347,   348,
   2595      349,   349,   350,   350,   350,   350,   350,   350,   351,   351,
   2596      351,   351,   351,   351,   351,   351,   351,   351,   351,   351,
   2597      351,   351,   351,   351,   351,   351,   351,   352,   352,   353,
   2598      353,   354,   354,   354,   354,   355,   355,   355,   355,   355,
   2599      355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
   2600      355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
   2601      355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
   2602      355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
   2603      355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
   2604      355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
   2605      355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
   2606      355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
   2607      355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
   2608      355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
   2609      355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
   2610      355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
   2611      355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
   2612      355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
   2613      355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
   2614      355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
   2615      355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
   2616      355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
   2617      355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
   2618      356,   356,   356,   358,   357,   359,   357,   360,   360,   361,
   2619      361,   362,   362,   363,   363,   364,   364,   364,   365,   365,
   2620      366,   367,   367,   368,   368,   368,   368,   368,   368,   368,
   2621      369,   370,   371,   369,   372,   372,   374,   373,   375,   373,
   2622      376,   376,   377,   377,   378,   378,   379,   380,   380,   381,
   2623      381,   383,   382,   384,   384,   385,   385,   387,   386,   388,
   2624      386,   389,   386,   390,   390,   391,   391,   392,   392,   393,
   2625      393,   393,   393,   393,   394,   394,   395,   395,   395,   397,
   2626      396
   2627 };
   2628 
   2629   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
   2630 static const yytype_uint8 yyr2[] =
   2631 {
   2632        0,     2,     1,     1,     1,     1,     1,     1,     1,     1,
   2633        1,     1,     1,     1,     3,     1,     4,     1,     3,     2,
   2634        2,     1,     1,     1,     2,     2,     2,     1,     2,     3,
   2635        2,     1,     1,     1,     2,     2,     2,     1,     1,     1,
   2636        1,     1,     3,     3,     3,     1,     3,     3,     1,     3,
   2637        3,     1,     3,     3,     3,     3,     1,     3,     3,     1,
   2638        3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
   2639        3,     1,     0,     6,     1,     3,     1,     1,     1,     1,
   2640        1,     1,     1,     1,     1,     1,     1,     1,     3,     1,
   2641        2,     2,     4,     2,     3,     4,     2,     3,     4,     0,
   2642        6,     2,     3,     2,     1,     1,     2,     3,     3,     2,
   2643        3,     2,     1,     2,     1,     1,     1,     3,     4,     6,
   2644        5,     1,     2,     3,     5,     4,     1,     2,     1,     1,
   2645        1,     1,     1,     4,     1,     3,     1,     3,     1,     1,
   2646        1,     2,     1,     1,     1,     1,     1,     1,     1,     1,
   2647        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2648        1,     1,     1,     1,     1,     1,     4,     1,     3,     1,
   2649        2,     2,     3,     3,     4,     1,     1,     1,     1,     1,
   2650        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2651        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2652        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2653        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2654        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2655        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2656        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2657        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2658        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2659        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2660        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2661        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2662        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2663        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2664        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2665        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2666        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2667        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2668        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2669        1,     1,     1,     0,     6,     0,     5,     1,     2,     3,
   2670        4,     1,     3,     1,     2,     1,     3,     4,     1,     3,
   2671        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   2672        2,     0,     0,     5,     1,     1,     0,     2,     0,     2,
   2673        2,     3,     1,     2,     1,     2,     5,     3,     1,     1,
   2674        4,     0,     8,     0,     1,     3,     2,     0,     6,     0,
   2675        8,     0,     7,     1,     1,     1,     0,     2,     3,     2,
   2676        2,     2,     3,     2,     1,     2,     1,     1,     1,     0,
   2677        3
   2678 };
   2679 
   2680 
   2681 #define yyerrok         (yyerrstatus = 0)
   2682 #define yyclearin       (yychar = YYEMPTY)
   2683 #define YYEMPTY         (-2)
   2684 #define YYEOF           0
   2685 
   2686 #define YYACCEPT        goto yyacceptlab
   2687 #define YYABORT         goto yyabortlab
   2688 #define YYERROR         goto yyerrorlab
   2689 
   2690 
   2691 #define YYRECOVERING()  (!!yyerrstatus)
   2692 
   2693 #define YYBACKUP(Token, Value)                                  \
   2694 do                                                              \
   2695   if (yychar == YYEMPTY)                                        \
   2696     {                                                           \
   2697       yychar = (Token);                                         \
   2698       yylval = (Value);                                         \
   2699       YYPOPSTACK (yylen);                                       \
   2700       yystate = *yyssp;                                         \
   2701       goto yybackup;                                            \
   2702     }                                                           \
   2703   else                                                          \
   2704     {                                                           \
   2705       yyerror (pParseContext, YY_("syntax error: cannot back up")); \
   2706       YYERROR;                                                  \
   2707     }                                                           \
   2708 while (0)
   2709 
   2710 /* Error token number */
   2711 #define YYTERROR        1
   2712 #define YYERRCODE       256
   2713 
   2714 
   2715 
   2716 /* Enable debugging if requested.  */
   2717 #if YYDEBUG
   2718 
   2719 # ifndef YYFPRINTF
   2720 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
   2721 #  define YYFPRINTF fprintf
   2722 # endif
   2723 
   2724 # define YYDPRINTF(Args)                        \
   2725 do {                                            \
   2726   if (yydebug)                                  \
   2727     YYFPRINTF Args;                             \
   2728 } while (0)
   2729 
   2730 /* This macro is provided for backward compatibility. */
   2731 #ifndef YY_LOCATION_PRINT
   2732 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
   2733 #endif
   2734 
   2735 
   2736 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
   2737 do {                                                                      \
   2738   if (yydebug)                                                            \
   2739     {                                                                     \
   2740       YYFPRINTF (stderr, "%s ", Title);                                   \
   2741       yy_symbol_print (stderr,                                            \
   2742                   Type, Value, pParseContext); \
   2743       YYFPRINTF (stderr, "\n");                                           \
   2744     }                                                                     \
   2745 } while (0)
   2746 
   2747 
   2748 /*----------------------------------------.
   2749 | Print this symbol's value on YYOUTPUT.  |
   2750 `----------------------------------------*/
   2751 
   2752 static void
   2753 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
   2754 {
   2755   FILE *yyo = yyoutput;
   2756   YYUSE (yyo);
   2757   YYUSE (pParseContext);
   2758   if (!yyvaluep)
   2759     return;
   2760 # ifdef YYPRINT
   2761   if (yytype < YYNTOKENS)
   2762     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
   2763 # endif
   2764   YYUSE (yytype);
   2765 }
   2766 
   2767 
   2768 /*--------------------------------.
   2769 | Print this symbol on YYOUTPUT.  |
   2770 `--------------------------------*/
   2771 
   2772 static void
   2773 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
   2774 {
   2775   YYFPRINTF (yyoutput, "%s %s (",
   2776              yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
   2777 
   2778   yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext);
   2779   YYFPRINTF (yyoutput, ")");
   2780 }
   2781 
   2782 /*------------------------------------------------------------------.
   2783 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
   2784 | TOP (included).                                                   |
   2785 `------------------------------------------------------------------*/
   2786 
   2787 static void
   2788 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
   2789 {
   2790   YYFPRINTF (stderr, "Stack now");
   2791   for (; yybottom <= yytop; yybottom++)
   2792     {
   2793       int yybot = *yybottom;
   2794       YYFPRINTF (stderr, " %d", yybot);
   2795     }
   2796   YYFPRINTF (stderr, "\n");
   2797 }
   2798 
   2799 # define YY_STACK_PRINT(Bottom, Top)                            \
   2800 do {                                                            \
   2801   if (yydebug)                                                  \
   2802     yy_stack_print ((Bottom), (Top));                           \
   2803 } while (0)
   2804 
   2805 
   2806 /*------------------------------------------------.
   2807 | Report that the YYRULE is going to be reduced.  |
   2808 `------------------------------------------------*/
   2809 
   2810 static void
   2811 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext)
   2812 {
   2813   unsigned long int yylno = yyrline[yyrule];
   2814   int yynrhs = yyr2[yyrule];
   2815   int yyi;
   2816   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
   2817              yyrule - 1, yylno);
   2818   /* The symbols being reduced.  */
   2819   for (yyi = 0; yyi < yynrhs; yyi++)
   2820     {
   2821       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
   2822       yy_symbol_print (stderr,
   2823                        yystos[yyssp[yyi + 1 - yynrhs]],
   2824                        &(yyvsp[(yyi + 1) - (yynrhs)])
   2825                                               , pParseContext);
   2826       YYFPRINTF (stderr, "\n");
   2827     }
   2828 }
   2829 
   2830 # define YY_REDUCE_PRINT(Rule)          \
   2831 do {                                    \
   2832   if (yydebug)                          \
   2833     yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \
   2834 } while (0)
   2835 
   2836 /* Nonzero means print parse trace.  It is left uninitialized so that
   2837    multiple parsers can coexist.  */
   2838 int yydebug;
   2839 #else /* !YYDEBUG */
   2840 # define YYDPRINTF(Args)
   2841 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
   2842 # define YY_STACK_PRINT(Bottom, Top)
   2843 # define YY_REDUCE_PRINT(Rule)
   2844 #endif /* !YYDEBUG */
   2845 
   2846 
   2847 /* YYINITDEPTH -- initial size of the parser's stacks.  */
   2848 #ifndef YYINITDEPTH
   2849 # define YYINITDEPTH 200
   2850 #endif
   2851 
   2852 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
   2853    if the built-in stack extension method is used).
   2854 
   2855    Do not make this value too large; the results are undefined if
   2856    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
   2857    evaluated with infinite-precision integer arithmetic.  */
   2858 
   2859 #ifndef YYMAXDEPTH
   2860 # define YYMAXDEPTH 10000
   2861 #endif
   2862 
   2863 
   2864 #if YYERROR_VERBOSE
   2865 
   2866 # ifndef yystrlen
   2867 #  if defined __GLIBC__ && defined _STRING_H
   2868 #   define yystrlen strlen
   2869 #  else
   2870 /* Return the length of YYSTR.  */
   2871 static YYSIZE_T
   2872 yystrlen (const char *yystr)
   2873 {
   2874   YYSIZE_T yylen;
   2875   for (yylen = 0; yystr[yylen]; yylen++)
   2876     continue;
   2877   return yylen;
   2878 }
   2879 #  endif
   2880 # endif
   2881 
   2882 # ifndef yystpcpy
   2883 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
   2884 #   define yystpcpy stpcpy
   2885 #  else
   2886 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
   2887    YYDEST.  */
   2888 static char *
   2889 yystpcpy (char *yydest, const char *yysrc)
   2890 {
   2891   char *yyd = yydest;
   2892   const char *yys = yysrc;
   2893 
   2894   while ((*yyd++ = *yys++) != '\0')
   2895     continue;
   2896 
   2897   return yyd - 1;
   2898 }
   2899 #  endif
   2900 # endif
   2901 
   2902 # ifndef yytnamerr
   2903 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
   2904    quotes and backslashes, so that it's suitable for yyerror.  The
   2905    heuristic is that double-quoting is unnecessary unless the string
   2906    contains an apostrophe, a comma, or backslash (other than
   2907    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
   2908    null, do not copy; instead, return the length of what the result
   2909    would have been.  */
   2910 static YYSIZE_T
   2911 yytnamerr (char *yyres, const char *yystr)
   2912 {
   2913   if (*yystr == '"')
   2914     {
   2915       YYSIZE_T yyn = 0;
   2916       char const *yyp = yystr;
   2917 
   2918       for (;;)
   2919         switch (*++yyp)
   2920           {
   2921           case '\'':
   2922           case ',':
   2923             goto do_not_strip_quotes;
   2924 
   2925           case '\\':
   2926             if (*++yyp != '\\')
   2927               goto do_not_strip_quotes;
   2928             /* Fall through.  */
   2929           default:
   2930             if (yyres)
   2931               yyres[yyn] = *yyp;
   2932             yyn++;
   2933             break;
   2934 
   2935           case '"':
   2936             if (yyres)
   2937               yyres[yyn] = '\0';
   2938             return yyn;
   2939           }
   2940     do_not_strip_quotes: ;
   2941     }
   2942 
   2943   if (! yyres)
   2944     return yystrlen (yystr);
   2945 
   2946   return yystpcpy (yyres, yystr) - yyres;
   2947 }
   2948 # endif
   2949 
   2950 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
   2951    about the unexpected token YYTOKEN for the state stack whose top is
   2952    YYSSP.
   2953 
   2954    Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
   2955    not large enough to hold the message.  In that case, also set
   2956    *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
   2957    required number of bytes is too large to store.  */
   2958 static int
   2959 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
   2960                 yytype_int16 *yyssp, int yytoken)
   2961 {
   2962   YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
   2963   YYSIZE_T yysize = yysize0;
   2964   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
   2965   /* Internationalized format string. */
   2966   const char *yyformat = YY_NULLPTR;
   2967   /* Arguments of yyformat. */
   2968   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
   2969   /* Number of reported tokens (one for the "unexpected", one per
   2970      "expected"). */
   2971   int yycount = 0;
   2972 
   2973   /* There are many possibilities here to consider:
   2974      - If this state is a consistent state with a default action, then
   2975        the only way this function was invoked is if the default action
   2976        is an error action.  In that case, don't check for expected
   2977        tokens because there are none.
   2978      - The only way there can be no lookahead present (in yychar) is if
   2979        this state is a consistent state with a default action.  Thus,
   2980        detecting the absence of a lookahead is sufficient to determine
   2981        that there is no unexpected or expected token to report.  In that
   2982        case, just report a simple "syntax error".
   2983      - Don't assume there isn't a lookahead just because this state is a
   2984        consistent state with a default action.  There might have been a
   2985        previous inconsistent state, consistent state with a non-default
   2986        action, or user semantic action that manipulated yychar.
   2987      - Of course, the expected token list depends on states to have
   2988        correct lookahead information, and it depends on the parser not
   2989        to perform extra reductions after fetching a lookahead from the
   2990        scanner and before detecting a syntax error.  Thus, state merging
   2991        (from LALR or IELR) and default reductions corrupt the expected
   2992        token list.  However, the list is correct for canonical LR with
   2993        one exception: it will still contain any token that will not be
   2994        accepted due to an error action in a later state.
   2995   */
   2996   if (yytoken != YYEMPTY)
   2997     {
   2998       int yyn = yypact[*yyssp];
   2999       yyarg[yycount++] = yytname[yytoken];
   3000       if (!yypact_value_is_default (yyn))
   3001         {
   3002           /* Start YYX at -YYN if negative to avoid negative indexes in
   3003              YYCHECK.  In other words, skip the first -YYN actions for
   3004              this state because they are default actions.  */
   3005           int yyxbegin = yyn < 0 ? -yyn : 0;
   3006           /* Stay within bounds of both yycheck and yytname.  */
   3007           int yychecklim = YYLAST - yyn + 1;
   3008           int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
   3009           int yyx;
   3010 
   3011           for (yyx = yyxbegin; yyx < yyxend; ++yyx)
   3012             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
   3013                 && !yytable_value_is_error (yytable[yyx + yyn]))
   3014               {
   3015                 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
   3016                   {
   3017                     yycount = 1;
   3018                     yysize = yysize0;
   3019                     break;
   3020                   }
   3021                 yyarg[yycount++] = yytname[yyx];
   3022                 {
   3023                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
   3024                   if (! (yysize <= yysize1
   3025                          && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
   3026                     return 2;
   3027                   yysize = yysize1;
   3028                 }
   3029               }
   3030         }
   3031     }
   3032 
   3033   switch (yycount)
   3034     {
   3035 # define YYCASE_(N, S)                      \
   3036       case N:                               \
   3037         yyformat = S;                       \
   3038       break
   3039       YYCASE_(0, YY_("syntax error"));
   3040       YYCASE_(1, YY_("syntax error, unexpected %s"));
   3041       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
   3042       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
   3043       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
   3044       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
   3045 # undef YYCASE_
   3046     }
   3047 
   3048   {
   3049     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
   3050     if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
   3051       return 2;
   3052     yysize = yysize1;
   3053   }
   3054 
   3055   if (*yymsg_alloc < yysize)
   3056     {
   3057       *yymsg_alloc = 2 * yysize;
   3058       if (! (yysize <= *yymsg_alloc
   3059              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
   3060         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
   3061       return 1;
   3062     }
   3063 
   3064   /* Avoid sprintf, as that infringes on the user's name space.
   3065      Don't have undefined behavior even if the translation
   3066      produced a string with the wrong number of "%s"s.  */
   3067   {
   3068     char *yyp = *yymsg;
   3069     int yyi = 0;
   3070     while ((*yyp = *yyformat) != '\0')
   3071       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
   3072         {
   3073           yyp += yytnamerr (yyp, yyarg[yyi++]);
   3074           yyformat += 2;
   3075         }
   3076       else
   3077         {
   3078           yyp++;
   3079           yyformat++;
   3080         }
   3081   }
   3082   return 0;
   3083 }
   3084 #endif /* YYERROR_VERBOSE */
   3085 
   3086 /*-----------------------------------------------.
   3087 | Release the memory associated to this symbol.  |
   3088 `-----------------------------------------------*/
   3089 
   3090 static void
   3091 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext)
   3092 {
   3093   YYUSE (yyvaluep);
   3094   YYUSE (pParseContext);
   3095   if (!yymsg)
   3096     yymsg = "Deleting";
   3097   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
   3098 
   3099   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   3100   YYUSE (yytype);
   3101   YY_IGNORE_MAYBE_UNINITIALIZED_END
   3102 }
   3103 
   3104 
   3105 
   3106 
   3107 /*----------.
   3108 | yyparse.  |
   3109 `----------*/
   3110 
   3111 int
   3112 yyparse (glslang::TParseContext* pParseContext)
   3113 {
   3114 /* The lookahead symbol.  */
   3115 int yychar;
   3116 
   3117 
   3118 /* The semantic value of the lookahead symbol.  */
   3119 /* Default value used for initialization, for pacifying older GCCs
   3120    or non-GCC compilers.  */
   3121 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
   3122 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
   3123 
   3124     /* Number of syntax errors so far.  */
   3125     int yynerrs;
   3126 
   3127     int yystate;
   3128     /* Number of tokens to shift before error messages enabled.  */
   3129     int yyerrstatus;
   3130 
   3131     /* The stacks and their tools:
   3132        'yyss': related to states.
   3133        'yyvs': related to semantic values.
   3134 
   3135        Refer to the stacks through separate pointers, to allow yyoverflow
   3136        to reallocate them elsewhere.  */
   3137 
   3138     /* The state stack.  */
   3139     yytype_int16 yyssa[YYINITDEPTH];
   3140     yytype_int16 *yyss;
   3141     yytype_int16 *yyssp;
   3142 
   3143     /* The semantic value stack.  */
   3144     YYSTYPE yyvsa[YYINITDEPTH];
   3145     YYSTYPE *yyvs;
   3146     YYSTYPE *yyvsp;
   3147 
   3148     YYSIZE_T yystacksize;
   3149 
   3150   int yyn;
   3151   int yyresult;
   3152   /* Lookahead token as an internal (translated) token number.  */
   3153   int yytoken = 0;
   3154   /* The variables used to return semantic value and location from the
   3155      action routines.  */
   3156   YYSTYPE yyval;
   3157 
   3158 #if YYERROR_VERBOSE
   3159   /* Buffer for error messages, and its allocated size.  */
   3160   char yymsgbuf[128];
   3161   char *yymsg = yymsgbuf;
   3162   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
   3163 #endif
   3164 
   3165 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
   3166 
   3167   /* The number of symbols on the RHS of the reduced rule.
   3168      Keep to zero when no symbol should be popped.  */
   3169   int yylen = 0;
   3170 
   3171   yyssp = yyss = yyssa;
   3172   yyvsp = yyvs = yyvsa;
   3173   yystacksize = YYINITDEPTH;
   3174 
   3175   YYDPRINTF ((stderr, "Starting parse\n"));
   3176 
   3177   yystate = 0;
   3178   yyerrstatus = 0;
   3179   yynerrs = 0;
   3180   yychar = YYEMPTY; /* Cause a token to be read.  */
   3181   goto yysetstate;
   3182 
   3183 /*------------------------------------------------------------.
   3184 | yynewstate -- Push a new state, which is found in yystate.  |
   3185 `------------------------------------------------------------*/
   3186  yynewstate:
   3187   /* In all cases, when you get here, the value and location stacks
   3188      have just been pushed.  So pushing a state here evens the stacks.  */
   3189   yyssp++;
   3190 
   3191  yysetstate:
   3192   *yyssp = yystate;
   3193 
   3194   if (yyss + yystacksize - 1 <= yyssp)
   3195     {
   3196       /* Get the current used size of the three stacks, in elements.  */
   3197       YYSIZE_T yysize = yyssp - yyss + 1;
   3198 
   3199 #ifdef yyoverflow
   3200       {
   3201         /* Give user a chance to reallocate the stack.  Use copies of
   3202            these so that the &'s don't force the real ones into
   3203            memory.  */
   3204         YYSTYPE *yyvs1 = yyvs;
   3205         yytype_int16 *yyss1 = yyss;
   3206 
   3207         /* Each stack pointer address is followed by the size of the
   3208            data in use in that stack, in bytes.  This used to be a
   3209            conditional around just the two extra args, but that might
   3210            be undefined if yyoverflow is a macro.  */
   3211         yyoverflow (YY_("memory exhausted"),
   3212                     &yyss1, yysize * sizeof (*yyssp),
   3213                     &yyvs1, yysize * sizeof (*yyvsp),
   3214                     &yystacksize);
   3215 
   3216         yyss = yyss1;
   3217         yyvs = yyvs1;
   3218       }
   3219 #else /* no yyoverflow */
   3220 # ifndef YYSTACK_RELOCATE
   3221       goto yyexhaustedlab;
   3222 # else
   3223       /* Extend the stack our own way.  */
   3224       if (YYMAXDEPTH <= yystacksize)
   3225         goto yyexhaustedlab;
   3226       yystacksize *= 2;
   3227       if (YYMAXDEPTH < yystacksize)
   3228         yystacksize = YYMAXDEPTH;
   3229 
   3230       {
   3231         yytype_int16 *yyss1 = yyss;
   3232         union yyalloc *yyptr =
   3233           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
   3234         if (! yyptr)
   3235           goto yyexhaustedlab;
   3236         YYSTACK_RELOCATE (yyss_alloc, yyss);
   3237         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
   3238 #  undef YYSTACK_RELOCATE
   3239         if (yyss1 != yyssa)
   3240           YYSTACK_FREE (yyss1);
   3241       }
   3242 # endif
   3243 #endif /* no yyoverflow */
   3244 
   3245       yyssp = yyss + yysize - 1;
   3246       yyvsp = yyvs + yysize - 1;
   3247 
   3248       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
   3249                   (unsigned long int) yystacksize));
   3250 
   3251       if (yyss + yystacksize - 1 <= yyssp)
   3252         YYABORT;
   3253     }
   3254 
   3255   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
   3256 
   3257   if (yystate == YYFINAL)
   3258     YYACCEPT;
   3259 
   3260   goto yybackup;
   3261 
   3262 /*-----------.
   3263 | yybackup.  |
   3264 `-----------*/
   3265 yybackup:
   3266 
   3267   /* Do appropriate processing given the current state.  Read a
   3268      lookahead token if we need one and don't already have one.  */
   3269 
   3270   /* First try to decide what to do without reference to lookahead token.  */
   3271   yyn = yypact[yystate];
   3272   if (yypact_value_is_default (yyn))
   3273     goto yydefault;
   3274 
   3275   /* Not known => get a lookahead token if don't already have one.  */
   3276 
   3277   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
   3278   if (yychar == YYEMPTY)
   3279     {
   3280       YYDPRINTF ((stderr, "Reading a token: "));
   3281       yychar = yylex (&yylval, parseContext);
   3282     }
   3283 
   3284   if (yychar <= YYEOF)
   3285     {
   3286       yychar = yytoken = YYEOF;
   3287       YYDPRINTF ((stderr, "Now at end of input.\n"));
   3288     }
   3289   else
   3290     {
   3291       yytoken = YYTRANSLATE (yychar);
   3292       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
   3293     }
   3294 
   3295   /* If the proper action on seeing token YYTOKEN is to reduce or to
   3296      detect an error, take that action.  */
   3297   yyn += yytoken;
   3298   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
   3299     goto yydefault;
   3300   yyn = yytable[yyn];
   3301   if (yyn <= 0)
   3302     {
   3303       if (yytable_value_is_error (yyn))
   3304         goto yyerrlab;
   3305       yyn = -yyn;
   3306       goto yyreduce;
   3307     }
   3308 
   3309   /* Count tokens shifted since error; after three, turn off error
   3310      status.  */
   3311   if (yyerrstatus)
   3312     yyerrstatus--;
   3313 
   3314   /* Shift the lookahead token.  */
   3315   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
   3316 
   3317   /* Discard the shifted token.  */
   3318   yychar = YYEMPTY;
   3319 
   3320   yystate = yyn;
   3321   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   3322   *++yyvsp = yylval;
   3323   YY_IGNORE_MAYBE_UNINITIALIZED_END
   3324 
   3325   goto yynewstate;
   3326 
   3327 
   3328 /*-----------------------------------------------------------.
   3329 | yydefault -- do the default action for the current state.  |
   3330 `-----------------------------------------------------------*/
   3331 yydefault:
   3332   yyn = yydefact[yystate];
   3333   if (yyn == 0)
   3334     goto yyerrlab;
   3335   goto yyreduce;
   3336 
   3337 
   3338 /*-----------------------------.
   3339 | yyreduce -- Do a reduction.  |
   3340 `-----------------------------*/
   3341 yyreduce:
   3342   /* yyn is the number of a rule to reduce with.  */
   3343   yylen = yyr2[yyn];
   3344 
   3345   /* If YYLEN is nonzero, implement the default value of the action:
   3346      '$$ = $1'.
   3347 
   3348      Otherwise, the following line sets YYVAL to garbage.
   3349      This behavior is undocumented and Bison
   3350      users should not rely upon it.  Assigning to YYVAL
   3351      unconditionally makes the parser a bit smaller, and it avoids a
   3352      GCC warning that YYVAL may be used uninitialized.  */
   3353   yyval = yyvsp[1-yylen];
   3354 
   3355 
   3356   YY_REDUCE_PRINT (yyn);
   3357   switch (yyn)
   3358     {
   3359         case 2:
   3360 #line 253 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3361     {
   3362         (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
   3363     }
   3364 #line 3365 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3365     break;
   3366 
   3367   case 3:
   3368 #line 259 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3369     {
   3370         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   3371     }
   3372 #line 3373 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3373     break;
   3374 
   3375   case 4:
   3376 #line 262 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3377     {
   3378         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
   3379     }
   3380 #line 3381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3381     break;
   3382 
   3383   case 5:
   3384 #line 265 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3385     {
   3386         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
   3387         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
   3388     }
   3389 #line 3390 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3390     break;
   3391 
   3392   case 6:
   3393 #line 269 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3394     {
   3395         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
   3396         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
   3397     }
   3398 #line 3399 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3399     break;
   3400 
   3401   case 7:
   3402 #line 273 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3403     {
   3404         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
   3405         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
   3406     }
   3407 #line 3408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3408     break;
   3409 
   3410   case 8:
   3411 #line 277 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3412     {
   3413 #ifdef AMD_EXTENSIONS
   3414         parseContext.int16Check((yyvsp[0].lex).loc, "16-bit integer literal");
   3415         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
   3416 #endif
   3417     }
   3418 #line 3419 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3419     break;
   3420 
   3421   case 9:
   3422 #line 283 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3423     {
   3424 #ifdef AMD_EXTENSIONS
   3425         parseContext.int16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal");
   3426         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
   3427 #endif
   3428     }
   3429 #line 3430 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3430     break;
   3431 
   3432   case 10:
   3433 #line 289 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3434     {
   3435         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
   3436     }
   3437 #line 3438 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3438     break;
   3439 
   3440   case 11:
   3441 #line 292 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3442     {
   3443         parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
   3444         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
   3445     }
   3446 #line 3447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3447     break;
   3448 
   3449   case 12:
   3450 #line 296 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3451     {
   3452 #ifdef AMD_EXTENSIONS
   3453         parseContext.float16Check((yyvsp[0].lex).loc, "half float literal");
   3454         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true);
   3455 #endif
   3456     }
   3457 #line 3458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3458     break;
   3459 
   3460   case 13:
   3461 #line 302 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3462     {
   3463         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
   3464     }
   3465 #line 3466 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3466     break;
   3467 
   3468   case 14:
   3469 #line 305 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3470     {
   3471         (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
   3472         if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
   3473             (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
   3474     }
   3475 #line 3476 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3476     break;
   3477 
   3478   case 15:
   3479 #line 313 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3480     {
   3481         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   3482     }
   3483 #line 3484 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3484     break;
   3485 
   3486   case 16:
   3487 #line 316 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3488     {
   3489         (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
   3490     }
   3491 #line 3492 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3492     break;
   3493 
   3494   case 17:
   3495 #line 319 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3496     {
   3497         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   3498     }
   3499 #line 3500 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3500     break;
   3501 
   3502   case 18:
   3503 #line 322 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3504     {
   3505         (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
   3506     }
   3507 #line 3508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3508     break;
   3509 
   3510   case 19:
   3511 #line 325 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3512     {
   3513         parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
   3514         parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
   3515         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
   3516     }
   3517 #line 3518 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3518     break;
   3519 
   3520   case 20:
   3521 #line 330 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3522     {
   3523         parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
   3524         parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
   3525         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
   3526     }
   3527 #line 3528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3528     break;
   3529 
   3530   case 21:
   3531 #line 338 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3532     {
   3533         parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
   3534         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   3535     }
   3536 #line 3537 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3537     break;
   3538 
   3539   case 22:
   3540 #line 345 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3541     {
   3542         (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
   3543         delete (yyvsp[0].interm).function;
   3544     }
   3545 #line 3546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3546     break;
   3547 
   3548   case 23:
   3549 #line 352 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3550     {
   3551         (yyval.interm) = (yyvsp[0].interm);
   3552     }
   3553 #line 3554 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3554     break;
   3555 
   3556   case 24:
   3557 #line 358 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3558     {
   3559         (yyval.interm) = (yyvsp[-1].interm);
   3560         (yyval.interm).loc = (yyvsp[0].lex).loc;
   3561     }
   3562 #line 3563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3563     break;
   3564 
   3565   case 25:
   3566 #line 362 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3567     {
   3568         (yyval.interm) = (yyvsp[-1].interm);
   3569         (yyval.interm).loc = (yyvsp[0].lex).loc;
   3570     }
   3571 #line 3572 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3572     break;
   3573 
   3574   case 26:
   3575 #line 369 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3576     {
   3577         (yyval.interm) = (yyvsp[-1].interm);
   3578     }
   3579 #line 3580 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3580     break;
   3581 
   3582   case 27:
   3583 #line 372 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3584     {
   3585         (yyval.interm) = (yyvsp[0].interm);
   3586     }
   3587 #line 3588 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3588     break;
   3589 
   3590   case 28:
   3591 #line 378 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3592     {
   3593         TParameter param = { 0, new TType };
   3594         param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
   3595         (yyvsp[-1].interm).function->addParameter(param);
   3596         (yyval.interm).function = (yyvsp[-1].interm).function;
   3597         (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
   3598     }
   3599 #line 3600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3600     break;
   3601 
   3602   case 29:
   3603 #line 385 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3604     {
   3605         TParameter param = { 0, new TType };
   3606         param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
   3607         (yyvsp[-2].interm).function->addParameter(param);
   3608         (yyval.interm).function = (yyvsp[-2].interm).function;
   3609         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
   3610     }
   3611 #line 3612 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3612     break;
   3613 
   3614   case 30:
   3615 #line 395 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3616     {
   3617         (yyval.interm) = (yyvsp[-1].interm);
   3618     }
   3619 #line 3620 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3620     break;
   3621 
   3622   case 31:
   3623 #line 403 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3624     {
   3625         // Constructor
   3626         (yyval.interm).intermNode = 0;
   3627         (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
   3628     }
   3629 #line 3630 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3630     break;
   3631 
   3632   case 32:
   3633 #line 408 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3634     {
   3635         //
   3636         // Should be a method or subroutine call, but we haven't recognized the arguments yet.
   3637         //
   3638         (yyval.interm).function = 0;
   3639         (yyval.interm).intermNode = 0;
   3640 
   3641         TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode();
   3642         if (method) {
   3643             (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength);
   3644             (yyval.interm).intermNode = method->getObject();
   3645         } else {
   3646             TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode();
   3647             if (symbol) {
   3648                 parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName());
   3649                 TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid));
   3650                 (yyval.interm).function = function;
   3651             } else
   3652                 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", "");
   3653         }
   3654 
   3655         if ((yyval.interm).function == 0) {
   3656             // error recover
   3657             TString empty("");
   3658             (yyval.interm).function = new TFunction(&empty, TType(EbtVoid), EOpNull);
   3659         }
   3660     }
   3661 #line 3662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3662     break;
   3663 
   3664   case 33:
   3665 #line 438 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3666     {
   3667         parseContext.variableCheck((yyvsp[0].interm.intermTypedNode));
   3668         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   3669         if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
   3670             parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
   3671     }
   3672 #line 3673 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3673     break;
   3674 
   3675   case 34:
   3676 #line 444 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3677     {
   3678         parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode));
   3679         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode));
   3680     }
   3681 #line 3682 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3682     break;
   3683 
   3684   case 35:
   3685 #line 448 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3686     {
   3687         parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode));
   3688         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode));
   3689     }
   3690 #line 3691 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3691     break;
   3692 
   3693   case 36:
   3694 #line 452 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3695     {
   3696         if ((yyvsp[-1].interm).op != EOpNull) {
   3697             char errorOp[2] = {0, 0};
   3698             switch((yyvsp[-1].interm).op) {
   3699             case EOpNegative:   errorOp[0] = '-'; break;
   3700             case EOpLogicalNot: errorOp[0] = '!'; break;
   3701             case EOpBitwiseNot: errorOp[0] = '~'; break;
   3702             default: break; // some compilers want this
   3703             }
   3704             (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode));
   3705         } else {
   3706             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   3707             if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
   3708                 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
   3709         }
   3710     }
   3711 #line 3712 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3712     break;
   3713 
   3714   case 37:
   3715 #line 472 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3716     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
   3717 #line 3718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3718     break;
   3719 
   3720   case 38:
   3721 #line 473 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3722     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
   3723 #line 3724 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3724     break;
   3725 
   3726   case 39:
   3727 #line 474 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3728     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
   3729 #line 3730 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3730     break;
   3731 
   3732   case 40:
   3733 #line 475 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3734     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
   3735               parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
   3736 #line 3737 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3737     break;
   3738 
   3739   case 41:
   3740 #line 481 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3741     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   3742 #line 3743 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3743     break;
   3744 
   3745   case 42:
   3746 #line 482 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3747     {
   3748         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   3749         if ((yyval.interm.intermTypedNode) == 0)
   3750             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   3751     }
   3752 #line 3753 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3753     break;
   3754 
   3755   case 43:
   3756 #line 487 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3757     {
   3758         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   3759         if ((yyval.interm.intermTypedNode) == 0)
   3760             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   3761     }
   3762 #line 3763 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3763     break;
   3764 
   3765   case 44:
   3766 #line 492 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3767     {
   3768         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%");
   3769         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   3770         if ((yyval.interm.intermTypedNode) == 0)
   3771             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   3772     }
   3773 #line 3774 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3774     break;
   3775 
   3776   case 45:
   3777 #line 501 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3778     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   3779 #line 3780 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3780     break;
   3781 
   3782   case 46:
   3783 #line 502 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3784     {
   3785         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   3786         if ((yyval.interm.intermTypedNode) == 0)
   3787             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   3788     }
   3789 #line 3790 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3790     break;
   3791 
   3792   case 47:
   3793 #line 507 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3794     {
   3795         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   3796         if ((yyval.interm.intermTypedNode) == 0)
   3797             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   3798     }
   3799 #line 3800 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3800     break;
   3801 
   3802   case 48:
   3803 #line 515 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3804     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   3805 #line 3806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3806     break;
   3807 
   3808   case 49:
   3809 #line 516 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3810     {
   3811         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left");
   3812         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   3813         if ((yyval.interm.intermTypedNode) == 0)
   3814             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   3815     }
   3816 #line 3817 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3817     break;
   3818 
   3819   case 50:
   3820 #line 522 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3821     {
   3822         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right");
   3823         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   3824         if ((yyval.interm.intermTypedNode) == 0)
   3825             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   3826     }
   3827 #line 3828 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3828     break;
   3829 
   3830   case 51:
   3831 #line 531 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3832     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   3833 #line 3834 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3834     break;
   3835 
   3836   case 52:
   3837 #line 532 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3838     {
   3839         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   3840         if ((yyval.interm.intermTypedNode) == 0)
   3841             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
   3842     }
   3843 #line 3844 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3844     break;
   3845 
   3846   case 53:
   3847 #line 537 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3848     {
   3849         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   3850         if ((yyval.interm.intermTypedNode) == 0)
   3851             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
   3852     }
   3853 #line 3854 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3854     break;
   3855 
   3856   case 54:
   3857 #line 542 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3858     {
   3859         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   3860         if ((yyval.interm.intermTypedNode) == 0)
   3861             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
   3862     }
   3863 #line 3864 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3864     break;
   3865 
   3866   case 55:
   3867 #line 547 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3868     {
   3869         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   3870         if ((yyval.interm.intermTypedNode) == 0)
   3871             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
   3872     }
   3873 #line 3874 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3874     break;
   3875 
   3876   case 56:
   3877 #line 555 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3878     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   3879 #line 3880 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3880     break;
   3881 
   3882   case 57:
   3883 #line 556 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3884     {
   3885         parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
   3886         parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
   3887         parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
   3888         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   3889         if ((yyval.interm.intermTypedNode) == 0)
   3890             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
   3891     }
   3892 #line 3893 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3893     break;
   3894 
   3895   case 58:
   3896 #line 564 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3897     {
   3898         parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
   3899         parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
   3900         parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
   3901         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   3902         if ((yyval.interm.intermTypedNode) == 0)
   3903             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
   3904     }
   3905 #line 3906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3906     break;
   3907 
   3908   case 59:
   3909 #line 575 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3910     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   3911 #line 3912 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3912     break;
   3913 
   3914   case 60:
   3915 #line 576 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3916     {
   3917         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and");
   3918         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   3919         if ((yyval.interm.intermTypedNode) == 0)
   3920             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   3921     }
   3922 #line 3923 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3923     break;
   3924 
   3925   case 61:
   3926 #line 585 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3927     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   3928 #line 3929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3929     break;
   3930 
   3931   case 62:
   3932 #line 586 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3933     {
   3934         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or");
   3935         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   3936         if ((yyval.interm.intermTypedNode) == 0)
   3937             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   3938     }
   3939 #line 3940 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3940     break;
   3941 
   3942   case 63:
   3943 #line 595 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3944     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   3945 #line 3946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3946     break;
   3947 
   3948   case 64:
   3949 #line 596 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3950     {
   3951         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or");
   3952         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   3953         if ((yyval.interm.intermTypedNode) == 0)
   3954             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   3955     }
   3956 #line 3957 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3957     break;
   3958 
   3959   case 65:
   3960 #line 605 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3961     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   3962 #line 3963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3963     break;
   3964 
   3965   case 66:
   3966 #line 606 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3967     {
   3968         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   3969         if ((yyval.interm.intermTypedNode) == 0)
   3970             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
   3971     }
   3972 #line 3973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3973     break;
   3974 
   3975   case 67:
   3976 #line 614 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3977     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   3978 #line 3979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3979     break;
   3980 
   3981   case 68:
   3982 #line 615 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3983     {
   3984         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   3985         if ((yyval.interm.intermTypedNode) == 0)
   3986             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
   3987     }
   3988 #line 3989 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3989     break;
   3990 
   3991   case 69:
   3992 #line 623 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3993     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   3994 #line 3995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   3995     break;
   3996 
   3997   case 70:
   3998 #line 624 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   3999     {
   4000         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   4001         if ((yyval.interm.intermTypedNode) == 0)
   4002             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
   4003     }
   4004 #line 4005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4005     break;
   4006 
   4007   case 71:
   4008 #line 632 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4009     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   4010 #line 4011 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4011     break;
   4012 
   4013   case 72:
   4014 #line 633 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4015     {
   4016         ++parseContext.controlFlowNestingLevel;
   4017     }
   4018 #line 4019 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4019     break;
   4020 
   4021   case 73:
   4022 #line 636 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4023     {
   4024         --parseContext.controlFlowNestingLevel;
   4025         parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
   4026         parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode));
   4027         parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode));
   4028         parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode));
   4029         (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc);
   4030         if ((yyval.interm.intermTypedNode) == 0) {
   4031             parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
   4032             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   4033         }
   4034     }
   4035 #line 4036 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4036     break;
   4037 
   4038   case 74:
   4039 #line 651 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4040     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
   4041 #line 4042 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4042     break;
   4043 
   4044   case 75:
   4045 #line 652 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4046     {
   4047         parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment");
   4048         parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
   4049         parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
   4050         parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode));
   4051         parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode));
   4052         (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].interm).loc);
   4053         if ((yyval.interm.intermTypedNode) == 0) {
   4054             parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
   4055             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   4056         }
   4057     }
   4058 #line 4059 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4059     break;
   4060 
   4061   case 76:
   4062 #line 667 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4063     {
   4064         (yyval.interm).loc = (yyvsp[0].lex).loc;
   4065         (yyval.interm).op = EOpAssign;
   4066     }
   4067 #line 4068 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4068     break;
   4069 
   4070   case 77:
   4071 #line 671 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4072     {
   4073         (yyval.interm).loc = (yyvsp[0].lex).loc;
   4074         (yyval.interm).op = EOpMulAssign;
   4075     }
   4076 #line 4077 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4077     break;
   4078 
   4079   case 78:
   4080 #line 675 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4081     {
   4082         (yyval.interm).loc = (yyvsp[0].lex).loc;
   4083         (yyval.interm).op = EOpDivAssign;
   4084     }
   4085 #line 4086 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4086     break;
   4087 
   4088   case 79:
   4089 #line 679 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4090     {
   4091         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
   4092         (yyval.interm).loc = (yyvsp[0].lex).loc;
   4093         (yyval.interm).op = EOpModAssign;
   4094     }
   4095 #line 4096 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4096     break;
   4097 
   4098   case 80:
   4099 #line 684 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4100     {
   4101         (yyval.interm).loc = (yyvsp[0].lex).loc;
   4102         (yyval.interm).op = EOpAddAssign;
   4103     }
   4104 #line 4105 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4105     break;
   4106 
   4107   case 81:
   4108 #line 688 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4109     {
   4110         (yyval.interm).loc = (yyvsp[0].lex).loc;
   4111         (yyval.interm).op = EOpSubAssign;
   4112     }
   4113 #line 4114 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4114     break;
   4115 
   4116   case 82:
   4117 #line 692 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4118     {
   4119         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
   4120         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
   4121     }
   4122 #line 4123 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4123     break;
   4124 
   4125   case 83:
   4126 #line 696 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4127     {
   4128         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
   4129         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
   4130     }
   4131 #line 4132 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4132     break;
   4133 
   4134   case 84:
   4135 #line 700 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4136     {
   4137         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
   4138         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
   4139     }
   4140 #line 4141 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4141     break;
   4142 
   4143   case 85:
   4144 #line 704 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4145     {
   4146         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
   4147         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
   4148     }
   4149 #line 4150 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4150     break;
   4151 
   4152   case 86:
   4153 #line 708 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4154     {
   4155         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
   4156         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
   4157     }
   4158 #line 4159 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4159     break;
   4160 
   4161   case 87:
   4162 #line 715 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4163     {
   4164         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   4165     }
   4166 #line 4167 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4167     break;
   4168 
   4169   case 88:
   4170 #line 718 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4171     {
   4172         parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
   4173         (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
   4174         if ((yyval.interm.intermTypedNode) == 0) {
   4175             parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
   4176             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   4177         }
   4178     }
   4179 #line 4180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4180     break;
   4181 
   4182   case 89:
   4183 #line 729 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4184     {
   4185         parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
   4186         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   4187     }
   4188 #line 4189 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4189     break;
   4190 
   4191   case 90:
   4192 #line 736 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4193     {
   4194         parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
   4195         (yyval.interm.intermNode) = 0;
   4196         // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
   4197     }
   4198 #line 4199 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4199     break;
   4200 
   4201   case 91:
   4202 #line 741 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4203     {
   4204         if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate())
   4205             (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
   4206         (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
   4207     }
   4208 #line 4209 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4209     break;
   4210 
   4211   case 92:
   4212 #line 746 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4213     {
   4214         parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
   4215 
   4216         // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
   4217         parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]);
   4218         parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
   4219         (yyval.interm.intermNode) = 0;
   4220     }
   4221 #line 4222 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4222     break;
   4223 
   4224   case 93:
   4225 #line 754 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4226     {
   4227         parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
   4228         (yyval.interm.intermNode) = 0;
   4229     }
   4230 #line 4231 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4231     break;
   4232 
   4233   case 94:
   4234 #line 758 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4235     {
   4236         parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
   4237         (yyval.interm.intermNode) = 0;
   4238     }
   4239 #line 4240 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4240     break;
   4241 
   4242   case 95:
   4243 #line 762 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4244     {
   4245         parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
   4246         (yyval.interm.intermNode) = 0;
   4247     }
   4248 #line 4249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4249     break;
   4250 
   4251   case 96:
   4252 #line 766 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4253     {
   4254         parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
   4255         parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
   4256         (yyval.interm.intermNode) = 0;
   4257     }
   4258 #line 4259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4259     break;
   4260 
   4261   case 97:
   4262 #line 771 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4263     {
   4264         parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
   4265         parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
   4266         (yyval.interm.intermNode) = 0;
   4267     }
   4268 #line 4269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4269     break;
   4270 
   4271   case 98:
   4272 #line 776 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4273     {
   4274         parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
   4275         (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string);
   4276         parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
   4277         (yyval.interm.intermNode) = 0;
   4278     }
   4279 #line 4280 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4280     break;
   4281 
   4282   case 99:
   4283 #line 785 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4284     { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
   4285 #line 4286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4286     break;
   4287 
   4288   case 100:
   4289 #line 785 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4290     {
   4291         --parseContext.structNestingLevel;
   4292         parseContext.blockName = (yyvsp[-4].lex).string;
   4293         parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier);
   4294         parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers);
   4295         parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier;
   4296         (yyval.interm).loc = (yyvsp[-5].interm.type).loc;
   4297         (yyval.interm).typeList = (yyvsp[-1].interm.typeList);
   4298     }
   4299 #line 4300 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4300     break;
   4301 
   4302   case 101:
   4303 #line 796 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4304     {
   4305         (yyval.interm.identifierList) = new TIdentifierList;
   4306         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
   4307     }
   4308 #line 4309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4309     break;
   4310 
   4311   case 102:
   4312 #line 800 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4313     {
   4314         (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
   4315         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
   4316     }
   4317 #line 4318 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4318     break;
   4319 
   4320   case 103:
   4321 #line 807 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4322     {
   4323         (yyval.interm).function = (yyvsp[-1].interm.function);
   4324         (yyval.interm).loc = (yyvsp[0].lex).loc;
   4325     }
   4326 #line 4327 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4327     break;
   4328 
   4329   case 104:
   4330 #line 814 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4331     {
   4332         (yyval.interm.function) = (yyvsp[0].interm.function);
   4333     }
   4334 #line 4335 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4335     break;
   4336 
   4337   case 105:
   4338 #line 817 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4339     {
   4340         (yyval.interm.function) = (yyvsp[0].interm.function);
   4341     }
   4342 #line 4343 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4343     break;
   4344 
   4345   case 106:
   4346 #line 824 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4347     {
   4348         // Add the parameter
   4349         (yyval.interm.function) = (yyvsp[-1].interm.function);
   4350         if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid)
   4351             (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param);
   4352         else
   4353             delete (yyvsp[0].interm).param.type;
   4354     }
   4355 #line 4356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4356     break;
   4357 
   4358   case 107:
   4359 #line 832 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4360     {
   4361         //
   4362         // Only first parameter of one-parameter functions can be void
   4363         // The check for named parameters not being void is done in parameter_declarator
   4364         //
   4365         if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) {
   4366             //
   4367             // This parameter > first is void
   4368             //
   4369             parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", "");
   4370             delete (yyvsp[0].interm).param.type;
   4371         } else {
   4372             // Add the parameter
   4373             (yyval.interm.function) = (yyvsp[-2].interm.function);
   4374             (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
   4375         }
   4376     }
   4377 #line 4378 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4378     break;
   4379 
   4380   case 108:
   4381 #line 852 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4382     {
   4383         if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
   4384             parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
   4385                                GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), "");
   4386         }
   4387         if ((yyvsp[-2].interm.type).arraySizes)
   4388             parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
   4389 
   4390         // Add the function as a prototype after parsing it (we do not support recursion)
   4391         TFunction *function;
   4392         TType type((yyvsp[-2].interm.type));
   4393         function = new TFunction((yyvsp[-1].lex).string, type);
   4394         (yyval.interm.function) = function;
   4395     }
   4396 #line 4397 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4397     break;
   4398 
   4399   case 109:
   4400 #line 870 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4401     {
   4402         if ((yyvsp[-1].interm.type).arraySizes) {
   4403             parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
   4404             parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
   4405             parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes);
   4406         }
   4407         if ((yyvsp[-1].interm.type).basicType == EbtVoid) {
   4408             parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), "");
   4409         }
   4410         parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string);
   4411 
   4412         TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))};
   4413         (yyval.interm).loc = (yyvsp[0].lex).loc;
   4414         (yyval.interm).param = param;
   4415     }
   4416 #line 4417 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4417     break;
   4418 
   4419   case 110:
   4420 #line 885 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4421     {
   4422         if ((yyvsp[-2].interm.type).arraySizes) {
   4423             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
   4424             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
   4425             parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
   4426         }
   4427         parseContext.arrayDimCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.type).arraySizes, (yyvsp[0].interm).arraySizes);
   4428 
   4429         parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes);
   4430         parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string);
   4431 
   4432         (yyvsp[-2].interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
   4433 
   4434         TParameter param = { (yyvsp[-1].lex).string, new TType((yyvsp[-2].interm.type))};
   4435         (yyval.interm).loc = (yyvsp[-1].lex).loc;
   4436         (yyval.interm).param = param;
   4437     }
   4438 #line 4439 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4439     break;
   4440 
   4441   case 111:
   4442 #line 908 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4443     {
   4444         (yyval.interm) = (yyvsp[0].interm);
   4445         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
   4446             (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
   4447         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
   4448 
   4449         parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
   4450         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
   4451         parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
   4452 
   4453     }
   4454 #line 4455 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4455     break;
   4456 
   4457   case 112:
   4458 #line 919 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4459     {
   4460         (yyval.interm) = (yyvsp[0].interm);
   4461 
   4462         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
   4463         parseContext.paramCheckFix((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
   4464         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
   4465     }
   4466 #line 4467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4467     break;
   4468 
   4469   case 113:
   4470 #line 929 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4471     {
   4472         (yyval.interm) = (yyvsp[0].interm);
   4473         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
   4474             (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
   4475         parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
   4476 
   4477         parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
   4478         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
   4479         parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
   4480     }
   4481 #line 4482 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4482     break;
   4483 
   4484   case 114:
   4485 #line 939 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4486     {
   4487         (yyval.interm) = (yyvsp[0].interm);
   4488 
   4489         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
   4490         parseContext.paramCheckFix((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
   4491         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
   4492     }
   4493 #line 4494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4494     break;
   4495 
   4496   case 115:
   4497 #line 949 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4498     {
   4499         TParameter param = { 0, new TType((yyvsp[0].interm.type)) };
   4500         (yyval.interm).param = param;
   4501         if ((yyvsp[0].interm.type).arraySizes)
   4502             parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
   4503     }
   4504 #line 4505 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4505     break;
   4506 
   4507   case 116:
   4508 #line 958 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4509     {
   4510         (yyval.interm) = (yyvsp[0].interm);
   4511     }
   4512 #line 4513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4513     break;
   4514 
   4515   case 117:
   4516 #line 961 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4517     {
   4518         (yyval.interm) = (yyvsp[-2].interm);
   4519         parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
   4520     }
   4521 #line 4522 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4522     break;
   4523 
   4524   case 118:
   4525 #line 965 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4526     {
   4527         (yyval.interm) = (yyvsp[-3].interm);
   4528         parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
   4529     }
   4530 #line 4531 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4531     break;
   4532 
   4533   case 119:
   4534 #line 969 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4535     {
   4536         (yyval.interm).type = (yyvsp[-5].interm).type;
   4537         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
   4538         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
   4539     }
   4540 #line 4541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4541     break;
   4542 
   4543   case 120:
   4544 #line 974 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4545     {
   4546         (yyval.interm).type = (yyvsp[-4].interm).type;
   4547         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
   4548         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
   4549     }
   4550 #line 4551 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4551     break;
   4552 
   4553   case 121:
   4554 #line 982 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4555     {
   4556         (yyval.interm).type = (yyvsp[0].interm.type);
   4557         (yyval.interm).intermNode = 0;
   4558         parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
   4559     }
   4560 #line 4561 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4561     break;
   4562 
   4563   case 122:
   4564 #line 987 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4565     {
   4566         (yyval.interm).type = (yyvsp[-1].interm.type);
   4567         (yyval.interm).intermNode = 0;
   4568         parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
   4569     }
   4570 #line 4571 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4571     break;
   4572 
   4573   case 123:
   4574 #line 992 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4575     {
   4576         (yyval.interm).type = (yyvsp[-2].interm.type);
   4577         (yyval.interm).intermNode = 0;
   4578         parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
   4579     }
   4580 #line 4581 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4581     break;
   4582 
   4583   case 124:
   4584 #line 997 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4585     {
   4586         (yyval.interm).type = (yyvsp[-4].interm.type);
   4587         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
   4588         (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
   4589     }
   4590 #line 4591 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4591     break;
   4592 
   4593   case 125:
   4594 #line 1002 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4595     {
   4596         (yyval.interm).type = (yyvsp[-3].interm.type);
   4597         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
   4598         (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
   4599     }
   4600 #line 4601 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4601     break;
   4602 
   4603   case 126:
   4604 #line 1011 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4605     {
   4606         (yyval.interm.type) = (yyvsp[0].interm.type);
   4607 
   4608         parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type));
   4609         if ((yyvsp[0].interm.type).arraySizes) {
   4610             parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
   4611             parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
   4612         }
   4613 
   4614         parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
   4615     }
   4616 #line 4617 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4617     break;
   4618 
   4619   case 127:
   4620 #line 1022 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4621     {
   4622         parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
   4623         parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
   4624 
   4625         if ((yyvsp[0].interm.type).arraySizes) {
   4626             parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
   4627             parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
   4628         }
   4629 
   4630         if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier))
   4631             (yyvsp[0].interm.type).arraySizes = 0;
   4632 
   4633         parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
   4634         (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers);
   4635         parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true);
   4636         parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier);
   4637 
   4638         (yyval.interm.type) = (yyvsp[0].interm.type);
   4639 
   4640         if (! (yyval.interm.type).qualifier.isInterpolation() &&
   4641             ((parseContext.language == EShLangVertex   && (yyval.interm.type).qualifier.storage == EvqVaryingOut) ||
   4642              (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
   4643             (yyval.interm.type).qualifier.smooth = true;
   4644     }
   4645 #line 4646 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4646     break;
   4647 
   4648   case 128:
   4649 #line 1049 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4650     {
   4651         parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
   4652         parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
   4653         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4654         (yyval.interm.type).qualifier.invariant = true;
   4655     }
   4656 #line 4657 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4657     break;
   4658 
   4659   case 129:
   4660 #line 1058 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4661     {
   4662         parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
   4663         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
   4664         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth");
   4665         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4666         (yyval.interm.type).qualifier.smooth = true;
   4667     }
   4668 #line 4669 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4669     break;
   4670 
   4671   case 130:
   4672 #line 1065 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4673     {
   4674         parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
   4675         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
   4676         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat");
   4677         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4678         (yyval.interm.type).qualifier.flat = true;
   4679     }
   4680 #line 4681 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4681     break;
   4682 
   4683   case 131:
   4684 #line 1072 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4685     {
   4686         parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
   4687         parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "noperspective");
   4688         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective");
   4689         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4690         (yyval.interm.type).qualifier.nopersp = true;
   4691     }
   4692 #line 4693 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4693     break;
   4694 
   4695   case 132:
   4696 #line 1079 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4697     {
   4698 #ifdef AMD_EXTENSIONS
   4699         parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD");
   4700         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
   4701         parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
   4702         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4703         (yyval.interm.type).qualifier.explicitInterp = true;
   4704 #endif
   4705     }
   4706 #line 4707 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4707     break;
   4708 
   4709   case 133:
   4710 #line 1091 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4711     {
   4712         (yyval.interm.type) = (yyvsp[-1].interm.type);
   4713     }
   4714 #line 4715 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4715     break;
   4716 
   4717   case 134:
   4718 #line 1097 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4719     {
   4720         (yyval.interm.type) = (yyvsp[0].interm.type);
   4721     }
   4722 #line 4723 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4723     break;
   4724 
   4725   case 135:
   4726 #line 1100 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4727     {
   4728         (yyval.interm.type) = (yyvsp[-2].interm.type);
   4729         (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
   4730         parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
   4731     }
   4732 #line 4733 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4733     break;
   4734 
   4735   case 136:
   4736 #line 1107 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4737     {
   4738         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4739         parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
   4740     }
   4741 #line 4742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4742     break;
   4743 
   4744   case 137:
   4745 #line 1111 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4746     {
   4747         (yyval.interm.type).init((yyvsp[-2].lex).loc);
   4748         parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode));
   4749     }
   4750 #line 4751 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4751     break;
   4752 
   4753   case 138:
   4754 #line 1115 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4755     { // because "shared" is both an identifier and a keyword
   4756         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4757         TString strShared("shared");
   4758         parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
   4759     }
   4760 #line 4761 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4761     break;
   4762 
   4763   case 139:
   4764 #line 1123 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4765     {
   4766         parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
   4767         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
   4768         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4769         (yyval.interm.type).qualifier.noContraction = true;
   4770     }
   4771 #line 4772 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4772     break;
   4773 
   4774   case 140:
   4775 #line 1132 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4776     {
   4777         (yyval.interm.type) = (yyvsp[0].interm.type);
   4778     }
   4779 #line 4780 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4780     break;
   4781 
   4782   case 141:
   4783 #line 1135 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4784     {
   4785         (yyval.interm.type) = (yyvsp[-1].interm.type);
   4786         if ((yyval.interm.type).basicType == EbtVoid)
   4787             (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType;
   4788 
   4789         (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
   4790         parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
   4791     }
   4792 #line 4793 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4793     break;
   4794 
   4795   case 142:
   4796 #line 1146 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4797     {
   4798         (yyval.interm.type) = (yyvsp[0].interm.type);
   4799     }
   4800 #line 4801 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4801     break;
   4802 
   4803   case 143:
   4804 #line 1149 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4805     {
   4806         (yyval.interm.type) = (yyvsp[0].interm.type);
   4807     }
   4808 #line 4809 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4809     break;
   4810 
   4811   case 144:
   4812 #line 1152 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4813     {
   4814         parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
   4815         (yyval.interm.type) = (yyvsp[0].interm.type);
   4816     }
   4817 #line 4818 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4818     break;
   4819 
   4820   case 145:
   4821 #line 1156 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4822     {
   4823         // allow inheritance of storage qualifier from block declaration
   4824         (yyval.interm.type) = (yyvsp[0].interm.type);
   4825     }
   4826 #line 4827 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4827     break;
   4828 
   4829   case 146:
   4830 #line 1160 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4831     {
   4832         // allow inheritance of storage qualifier from block declaration
   4833         (yyval.interm.type) = (yyvsp[0].interm.type);
   4834     }
   4835 #line 4836 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4836     break;
   4837 
   4838   case 147:
   4839 #line 1164 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4840     {
   4841         // allow inheritance of storage qualifier from block declaration
   4842         (yyval.interm.type) = (yyvsp[0].interm.type);
   4843     }
   4844 #line 4845 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4845     break;
   4846 
   4847   case 148:
   4848 #line 1171 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4849     {
   4850         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4851         (yyval.interm.type).qualifier.storage = EvqConst;  // will later turn into EvqConstReadOnly, if the initializer is not constant
   4852     }
   4853 #line 4854 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4854     break;
   4855 
   4856   case 149:
   4857 #line 1175 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4858     {
   4859         parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
   4860         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
   4861         parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute");
   4862         parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute");
   4863         parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute");
   4864 
   4865         parseContext.globalCheck((yyvsp[0].lex).loc, "attribute");
   4866 
   4867         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4868         (yyval.interm.type).qualifier.storage = EvqVaryingIn;
   4869     }
   4870 #line 4871 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4871     break;
   4872 
   4873   case 150:
   4874 #line 1187 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4875     {
   4876         parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
   4877         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
   4878         parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying");
   4879         parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying");
   4880 
   4881         parseContext.globalCheck((yyvsp[0].lex).loc, "varying");
   4882 
   4883         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4884         if (parseContext.language == EShLangVertex)
   4885             (yyval.interm.type).qualifier.storage = EvqVaryingOut;
   4886         else
   4887             (yyval.interm.type).qualifier.storage = EvqVaryingIn;
   4888     }
   4889 #line 4890 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4890     break;
   4891 
   4892   case 151:
   4893 #line 1201 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4894     {
   4895         parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
   4896         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4897         (yyval.interm.type).qualifier.storage = EvqInOut;
   4898     }
   4899 #line 4900 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4900     break;
   4901 
   4902   case 152:
   4903 #line 1206 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4904     {
   4905         parseContext.globalCheck((yyvsp[0].lex).loc, "in");
   4906         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4907         // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
   4908         (yyval.interm.type).qualifier.storage = EvqIn;
   4909     }
   4910 #line 4911 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4911     break;
   4912 
   4913   case 153:
   4914 #line 1212 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4915     {
   4916         parseContext.globalCheck((yyvsp[0].lex).loc, "out");
   4917         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4918         // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
   4919         (yyval.interm.type).qualifier.storage = EvqOut;
   4920     }
   4921 #line 4922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4922     break;
   4923 
   4924   case 154:
   4925 #line 1218 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4926     {
   4927         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
   4928         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
   4929         parseContext.globalCheck((yyvsp[0].lex).loc, "centroid");
   4930         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4931         (yyval.interm.type).qualifier.centroid = true;
   4932     }
   4933 #line 4934 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4934     break;
   4935 
   4936   case 155:
   4937 #line 1225 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4938     {
   4939         parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
   4940         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
   4941         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4942         (yyval.interm.type).qualifier.patch = true;
   4943     }
   4944 #line 4945 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4945     break;
   4946 
   4947   case 156:
   4948 #line 1231 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4949     {
   4950         parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
   4951         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4952         (yyval.interm.type).qualifier.sample = true;
   4953     }
   4954 #line 4955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4955     break;
   4956 
   4957   case 157:
   4958 #line 1236 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4959     {
   4960         parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
   4961         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4962         (yyval.interm.type).qualifier.storage = EvqUniform;
   4963     }
   4964 #line 4965 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4965     break;
   4966 
   4967   case 158:
   4968 #line 1241 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4969     {
   4970         parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
   4971         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4972         (yyval.interm.type).qualifier.storage = EvqBuffer;
   4973     }
   4974 #line 4975 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4975     break;
   4976 
   4977   case 159:
   4978 #line 1246 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4979     {
   4980         parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
   4981         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
   4982         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared");
   4983         parseContext.requireStage((yyvsp[0].lex).loc, EShLangCompute, "shared");
   4984         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4985         (yyval.interm.type).qualifier.storage = EvqShared;
   4986     }
   4987 #line 4988 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4988     break;
   4989 
   4990   case 160:
   4991 #line 1254 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   4992     {
   4993         (yyval.interm.type).init((yyvsp[0].lex).loc);
   4994         (yyval.interm.type).qualifier.coherent = true;
   4995     }
   4996 #line 4997 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   4997     break;
   4998 
   4999   case 161:
   5000 #line 1258 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5001     {
   5002         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5003         (yyval.interm.type).qualifier.volatil = true;
   5004     }
   5005 #line 5006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5006     break;
   5007 
   5008   case 162:
   5009 #line 1262 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5010     {
   5011         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5012         (yyval.interm.type).qualifier.restrict = true;
   5013     }
   5014 #line 5015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5015     break;
   5016 
   5017   case 163:
   5018 #line 1266 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5019     {
   5020         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5021         (yyval.interm.type).qualifier.readonly = true;
   5022     }
   5023 #line 5024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5024     break;
   5025 
   5026   case 164:
   5027 #line 1270 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5028     {
   5029         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5030         (yyval.interm.type).qualifier.writeonly = true;
   5031     }
   5032 #line 5033 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5033     break;
   5034 
   5035   case 165:
   5036 #line 1274 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5037     {
   5038         parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine");
   5039         parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine");
   5040         parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine");
   5041         (yyval.interm.type).init((yyvsp[0].lex).loc);
   5042     }
   5043 #line 5044 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5044     break;
   5045 
   5046   case 166:
   5047 #line 1280 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5048     {
   5049         parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine");
   5050         parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine");
   5051         parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine");
   5052         (yyval.interm.type).init((yyvsp[-3].lex).loc);
   5053     }
   5054 #line 5055 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5055     break;
   5056 
   5057   case 167:
   5058 #line 1289 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5059     {
   5060         // TODO
   5061     }
   5062 #line 5063 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5063     break;
   5064 
   5065   case 168:
   5066 #line 1292 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5067     {
   5068         // TODO: 4.0 semantics: subroutines
   5069         // 1) make sure each identifier is a type declared earlier with SUBROUTINE
   5070         // 2) save all of the identifiers for future comparison with the declared function
   5071     }
   5072 #line 5073 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5073     break;
   5074 
   5075   case 169:
   5076 #line 1300 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5077     {
   5078         (yyval.interm.type) = (yyvsp[0].interm.type);
   5079         (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
   5080     }
   5081 #line 5082 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5082     break;
   5083 
   5084   case 170:
   5085 #line 1304 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5086     {
   5087         parseContext.arrayDimCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes, 0);
   5088         (yyval.interm.type) = (yyvsp[-1].interm.type);
   5089         (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
   5090         (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
   5091     }
   5092 #line 5093 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5093     break;
   5094 
   5095   case 171:
   5096 #line 1313 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5097     {
   5098         (yyval.interm).loc = (yyvsp[-1].lex).loc;
   5099         (yyval.interm).arraySizes = new TArraySizes;
   5100         (yyval.interm).arraySizes->addInnerSize();
   5101     }
   5102 #line 5103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5103     break;
   5104 
   5105   case 172:
   5106 #line 1318 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5107     {
   5108         (yyval.interm).loc = (yyvsp[-2].lex).loc;
   5109         (yyval.interm).arraySizes = new TArraySizes;
   5110 
   5111         TArraySize size;
   5112         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size);
   5113         (yyval.interm).arraySizes->addInnerSize(size);
   5114     }
   5115 #line 5116 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5116     break;
   5117 
   5118   case 173:
   5119 #line 1326 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5120     {
   5121         (yyval.interm) = (yyvsp[-2].interm);
   5122         (yyval.interm).arraySizes->addInnerSize();
   5123     }
   5124 #line 5125 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5125     break;
   5126 
   5127   case 174:
   5128 #line 1330 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5129     {
   5130         (yyval.interm) = (yyvsp[-3].interm);
   5131 
   5132         TArraySize size;
   5133         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size);
   5134         (yyval.interm).arraySizes->addInnerSize(size);
   5135     }
   5136 #line 5137 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5137     break;
   5138 
   5139   case 175:
   5140 #line 1340 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5141     {
   5142         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5143         (yyval.interm.type).basicType = EbtVoid;
   5144     }
   5145 #line 5146 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5146     break;
   5147 
   5148   case 176:
   5149 #line 1344 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5150     {
   5151         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5152         (yyval.interm.type).basicType = EbtFloat;
   5153     }
   5154 #line 5155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5155     break;
   5156 
   5157   case 177:
   5158 #line 1348 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5159     {
   5160         parseContext.doubleCheck((yyvsp[0].lex).loc, "double");
   5161         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5162         (yyval.interm.type).basicType = EbtDouble;
   5163     }
   5164 #line 5165 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5165     break;
   5166 
   5167   case 178:
   5168 #line 1353 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5169     {
   5170 #ifdef AMD_EXTENSIONS
   5171         parseContext.float16Check((yyvsp[0].lex).loc, "half float", parseContext.symbolTable.atBuiltInLevel());
   5172         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5173         (yyval.interm.type).basicType = EbtFloat16;
   5174 #endif
   5175     }
   5176 #line 5177 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5177     break;
   5178 
   5179   case 179:
   5180 #line 1360 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5181     {
   5182         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5183         (yyval.interm.type).basicType = EbtInt;
   5184     }
   5185 #line 5186 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5186     break;
   5187 
   5188   case 180:
   5189 #line 1364 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5190     {
   5191         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
   5192         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5193         (yyval.interm.type).basicType = EbtUint;
   5194     }
   5195 #line 5196 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5196     break;
   5197 
   5198   case 181:
   5199 #line 1369 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5200     {
   5201         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
   5202         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5203         (yyval.interm.type).basicType = EbtInt64;
   5204     }
   5205 #line 5206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5206     break;
   5207 
   5208   case 182:
   5209 #line 1374 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5210     {
   5211         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
   5212         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5213         (yyval.interm.type).basicType = EbtUint64;
   5214     }
   5215 #line 5216 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5216     break;
   5217 
   5218   case 183:
   5219 #line 1379 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5220     {
   5221 #ifdef AMD_EXTENSIONS
   5222         parseContext.int16Check((yyvsp[0].lex).loc, "16-bit integer", parseContext.symbolTable.atBuiltInLevel());
   5223         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5224         (yyval.interm.type).basicType = EbtInt16;
   5225 #endif
   5226     }
   5227 #line 5228 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5228     break;
   5229 
   5230   case 184:
   5231 #line 1386 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5232     {
   5233 #ifdef AMD_EXTENSIONS
   5234         parseContext.int16Check((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
   5235         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5236         (yyval.interm.type).basicType = EbtUint16;
   5237 #endif
   5238     }
   5239 #line 5240 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5240     break;
   5241 
   5242   case 185:
   5243 #line 1393 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5244     {
   5245         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5246         (yyval.interm.type).basicType = EbtBool;
   5247     }
   5248 #line 5249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5249     break;
   5250 
   5251   case 186:
   5252 #line 1397 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5253     {
   5254         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5255         (yyval.interm.type).basicType = EbtFloat;
   5256         (yyval.interm.type).setVector(2);
   5257     }
   5258 #line 5259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5259     break;
   5260 
   5261   case 187:
   5262 #line 1402 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5263     {
   5264         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5265         (yyval.interm.type).basicType = EbtFloat;
   5266         (yyval.interm.type).setVector(3);
   5267     }
   5268 #line 5269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5269     break;
   5270 
   5271   case 188:
   5272 #line 1407 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5273     {
   5274         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5275         (yyval.interm.type).basicType = EbtFloat;
   5276         (yyval.interm.type).setVector(4);
   5277     }
   5278 #line 5279 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5279     break;
   5280 
   5281   case 189:
   5282 #line 1412 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5283     {
   5284         parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
   5285         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5286         (yyval.interm.type).basicType = EbtDouble;
   5287         (yyval.interm.type).setVector(2);
   5288     }
   5289 #line 5290 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5290     break;
   5291 
   5292   case 190:
   5293 #line 1418 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5294     {
   5295         parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
   5296         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5297         (yyval.interm.type).basicType = EbtDouble;
   5298         (yyval.interm.type).setVector(3);
   5299     }
   5300 #line 5301 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5301     break;
   5302 
   5303   case 191:
   5304 #line 1424 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5305     {
   5306         parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
   5307         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5308         (yyval.interm.type).basicType = EbtDouble;
   5309         (yyval.interm.type).setVector(4);
   5310     }
   5311 #line 5312 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5312     break;
   5313 
   5314   case 192:
   5315 #line 1430 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5316     {
   5317 #ifdef AMD_EXTENSIONS
   5318         parseContext.float16Check((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
   5319         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5320         (yyval.interm.type).basicType = EbtFloat16;
   5321         (yyval.interm.type).setVector(2);
   5322 #endif
   5323     }
   5324 #line 5325 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5325     break;
   5326 
   5327   case 193:
   5328 #line 1438 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5329     {
   5330 #ifdef AMD_EXTENSIONS
   5331         parseContext.float16Check((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
   5332         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5333         (yyval.interm.type).basicType = EbtFloat16;
   5334         (yyval.interm.type).setVector(3);
   5335 #endif
   5336     }
   5337 #line 5338 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5338     break;
   5339 
   5340   case 194:
   5341 #line 1446 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5342     {
   5343 #ifdef AMD_EXTENSIONS
   5344         parseContext.float16Check((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
   5345         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5346         (yyval.interm.type).basicType = EbtFloat16;
   5347         (yyval.interm.type).setVector(4);
   5348 #endif
   5349     }
   5350 #line 5351 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5351     break;
   5352 
   5353   case 195:
   5354 #line 1454 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5355     {
   5356         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5357         (yyval.interm.type).basicType = EbtBool;
   5358         (yyval.interm.type).setVector(2);
   5359     }
   5360 #line 5361 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5361     break;
   5362 
   5363   case 196:
   5364 #line 1459 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5365     {
   5366         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5367         (yyval.interm.type).basicType = EbtBool;
   5368         (yyval.interm.type).setVector(3);
   5369     }
   5370 #line 5371 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5371     break;
   5372 
   5373   case 197:
   5374 #line 1464 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5375     {
   5376         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5377         (yyval.interm.type).basicType = EbtBool;
   5378         (yyval.interm.type).setVector(4);
   5379     }
   5380 #line 5381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5381     break;
   5382 
   5383   case 198:
   5384 #line 1469 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5385     {
   5386         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5387         (yyval.interm.type).basicType = EbtInt;
   5388         (yyval.interm.type).setVector(2);
   5389     }
   5390 #line 5391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5391     break;
   5392 
   5393   case 199:
   5394 #line 1474 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5395     {
   5396         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5397         (yyval.interm.type).basicType = EbtInt;
   5398         (yyval.interm.type).setVector(3);
   5399     }
   5400 #line 5401 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5401     break;
   5402 
   5403   case 200:
   5404 #line 1479 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5405     {
   5406         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5407         (yyval.interm.type).basicType = EbtInt;
   5408         (yyval.interm.type).setVector(4);
   5409     }
   5410 #line 5411 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5411     break;
   5412 
   5413   case 201:
   5414 #line 1484 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5415     {
   5416         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
   5417         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5418         (yyval.interm.type).basicType = EbtInt64;
   5419         (yyval.interm.type).setVector(2);
   5420     }
   5421 #line 5422 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5422     break;
   5423 
   5424   case 202:
   5425 #line 1490 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5426     {
   5427         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
   5428         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5429         (yyval.interm.type).basicType = EbtInt64;
   5430         (yyval.interm.type).setVector(3);
   5431     }
   5432 #line 5433 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5433     break;
   5434 
   5435   case 203:
   5436 #line 1496 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5437     {
   5438         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
   5439         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5440         (yyval.interm.type).basicType = EbtInt64;
   5441         (yyval.interm.type).setVector(4);
   5442     }
   5443 #line 5444 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5444     break;
   5445 
   5446   case 204:
   5447 #line 1502 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5448     {
   5449 #ifdef AMD_EXTENSIONS
   5450         parseContext.int16Check((yyvsp[0].lex).loc, "16-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
   5451         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5452         (yyval.interm.type).basicType = EbtInt16;
   5453         (yyval.interm.type).setVector(2);
   5454 #endif
   5455     }
   5456 #line 5457 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5457     break;
   5458 
   5459   case 205:
   5460 #line 1510 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5461     {
   5462 #ifdef AMD_EXTENSIONS
   5463         parseContext.int16Check((yyvsp[0].lex).loc, "16-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
   5464         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5465         (yyval.interm.type).basicType = EbtInt16;
   5466         (yyval.interm.type).setVector(3);
   5467 #endif
   5468     }
   5469 #line 5470 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5470     break;
   5471 
   5472   case 206:
   5473 #line 1518 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5474     {
   5475 #ifdef AMD_EXTENSIONS
   5476         parseContext.int16Check((yyvsp[0].lex).loc, "16-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
   5477         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5478         (yyval.interm.type).basicType = EbtInt16;
   5479         (yyval.interm.type).setVector(4);
   5480 #endif
   5481     }
   5482 #line 5483 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5483     break;
   5484 
   5485   case 207:
   5486 #line 1526 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5487     {
   5488         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
   5489         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5490         (yyval.interm.type).basicType = EbtUint;
   5491         (yyval.interm.type).setVector(2);
   5492     }
   5493 #line 5494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5494     break;
   5495 
   5496   case 208:
   5497 #line 1532 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5498     {
   5499         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
   5500         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5501         (yyval.interm.type).basicType = EbtUint;
   5502         (yyval.interm.type).setVector(3);
   5503     }
   5504 #line 5505 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5505     break;
   5506 
   5507   case 209:
   5508 #line 1538 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5509     {
   5510         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
   5511         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5512         (yyval.interm.type).basicType = EbtUint;
   5513         (yyval.interm.type).setVector(4);
   5514     }
   5515 #line 5516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5516     break;
   5517 
   5518   case 210:
   5519 #line 1544 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5520     {
   5521         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
   5522         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5523         (yyval.interm.type).basicType = EbtUint64;
   5524         (yyval.interm.type).setVector(2);
   5525     }
   5526 #line 5527 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5527     break;
   5528 
   5529   case 211:
   5530 #line 1550 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5531     {
   5532         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
   5533         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5534         (yyval.interm.type).basicType = EbtUint64;
   5535         (yyval.interm.type).setVector(3);
   5536     }
   5537 #line 5538 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5538     break;
   5539 
   5540   case 212:
   5541 #line 1556 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5542     {
   5543         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
   5544         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5545         (yyval.interm.type).basicType = EbtUint64;
   5546         (yyval.interm.type).setVector(4);
   5547     }
   5548 #line 5549 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5549     break;
   5550 
   5551   case 213:
   5552 #line 1562 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5553     {
   5554 #ifdef AMD_EXTENSIONS
   5555         parseContext.int16Check((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
   5556         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5557         (yyval.interm.type).basicType = EbtUint16;
   5558         (yyval.interm.type).setVector(2);
   5559 #endif
   5560     }
   5561 #line 5562 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5562     break;
   5563 
   5564   case 214:
   5565 #line 1570 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5566     {
   5567 #ifdef AMD_EXTENSIONS
   5568         parseContext.int16Check((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
   5569         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5570         (yyval.interm.type).basicType = EbtUint16;
   5571         (yyval.interm.type).setVector(3);
   5572 #endif
   5573     }
   5574 #line 5575 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5575     break;
   5576 
   5577   case 215:
   5578 #line 1578 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5579     {
   5580 #ifdef AMD_EXTENSIONS
   5581         parseContext.int16Check((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
   5582         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5583         (yyval.interm.type).basicType = EbtUint16;
   5584         (yyval.interm.type).setVector(4);
   5585 #endif
   5586     }
   5587 #line 5588 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5588     break;
   5589 
   5590   case 216:
   5591 #line 1586 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5592     {
   5593         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5594         (yyval.interm.type).basicType = EbtFloat;
   5595         (yyval.interm.type).setMatrix(2, 2);
   5596     }
   5597 #line 5598 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5598     break;
   5599 
   5600   case 217:
   5601 #line 1591 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5602     {
   5603         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5604         (yyval.interm.type).basicType = EbtFloat;
   5605         (yyval.interm.type).setMatrix(3, 3);
   5606     }
   5607 #line 5608 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5608     break;
   5609 
   5610   case 218:
   5611 #line 1596 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5612     {
   5613         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5614         (yyval.interm.type).basicType = EbtFloat;
   5615         (yyval.interm.type).setMatrix(4, 4);
   5616     }
   5617 #line 5618 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5618     break;
   5619 
   5620   case 219:
   5621 #line 1601 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5622     {
   5623         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5624         (yyval.interm.type).basicType = EbtFloat;
   5625         (yyval.interm.type).setMatrix(2, 2);
   5626     }
   5627 #line 5628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5628     break;
   5629 
   5630   case 220:
   5631 #line 1606 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5632     {
   5633         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5634         (yyval.interm.type).basicType = EbtFloat;
   5635         (yyval.interm.type).setMatrix(2, 3);
   5636     }
   5637 #line 5638 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5638     break;
   5639 
   5640   case 221:
   5641 #line 1611 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5642     {
   5643         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5644         (yyval.interm.type).basicType = EbtFloat;
   5645         (yyval.interm.type).setMatrix(2, 4);
   5646     }
   5647 #line 5648 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5648     break;
   5649 
   5650   case 222:
   5651 #line 1616 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5652     {
   5653         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5654         (yyval.interm.type).basicType = EbtFloat;
   5655         (yyval.interm.type).setMatrix(3, 2);
   5656     }
   5657 #line 5658 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5658     break;
   5659 
   5660   case 223:
   5661 #line 1621 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5662     {
   5663         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5664         (yyval.interm.type).basicType = EbtFloat;
   5665         (yyval.interm.type).setMatrix(3, 3);
   5666     }
   5667 #line 5668 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5668     break;
   5669 
   5670   case 224:
   5671 #line 1626 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5672     {
   5673         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5674         (yyval.interm.type).basicType = EbtFloat;
   5675         (yyval.interm.type).setMatrix(3, 4);
   5676     }
   5677 #line 5678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5678     break;
   5679 
   5680   case 225:
   5681 #line 1631 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5682     {
   5683         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5684         (yyval.interm.type).basicType = EbtFloat;
   5685         (yyval.interm.type).setMatrix(4, 2);
   5686     }
   5687 #line 5688 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5688     break;
   5689 
   5690   case 226:
   5691 #line 1636 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5692     {
   5693         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5694         (yyval.interm.type).basicType = EbtFloat;
   5695         (yyval.interm.type).setMatrix(4, 3);
   5696     }
   5697 #line 5698 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5698     break;
   5699 
   5700   case 227:
   5701 #line 1641 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5702     {
   5703         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5704         (yyval.interm.type).basicType = EbtFloat;
   5705         (yyval.interm.type).setMatrix(4, 4);
   5706     }
   5707 #line 5708 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5708     break;
   5709 
   5710   case 228:
   5711 #line 1646 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5712     {
   5713         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   5714         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5715         (yyval.interm.type).basicType = EbtDouble;
   5716         (yyval.interm.type).setMatrix(2, 2);
   5717     }
   5718 #line 5719 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5719     break;
   5720 
   5721   case 229:
   5722 #line 1652 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5723     {
   5724         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   5725         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5726         (yyval.interm.type).basicType = EbtDouble;
   5727         (yyval.interm.type).setMatrix(3, 3);
   5728     }
   5729 #line 5730 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5730     break;
   5731 
   5732   case 230:
   5733 #line 1658 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5734     {
   5735         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   5736         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5737         (yyval.interm.type).basicType = EbtDouble;
   5738         (yyval.interm.type).setMatrix(4, 4);
   5739     }
   5740 #line 5741 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5741     break;
   5742 
   5743   case 231:
   5744 #line 1664 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5745     {
   5746         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   5747         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5748         (yyval.interm.type).basicType = EbtDouble;
   5749         (yyval.interm.type).setMatrix(2, 2);
   5750     }
   5751 #line 5752 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5752     break;
   5753 
   5754   case 232:
   5755 #line 1670 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5756     {
   5757         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   5758         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5759         (yyval.interm.type).basicType = EbtDouble;
   5760         (yyval.interm.type).setMatrix(2, 3);
   5761     }
   5762 #line 5763 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5763     break;
   5764 
   5765   case 233:
   5766 #line 1676 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5767     {
   5768         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   5769         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5770         (yyval.interm.type).basicType = EbtDouble;
   5771         (yyval.interm.type).setMatrix(2, 4);
   5772     }
   5773 #line 5774 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5774     break;
   5775 
   5776   case 234:
   5777 #line 1682 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5778     {
   5779         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   5780         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5781         (yyval.interm.type).basicType = EbtDouble;
   5782         (yyval.interm.type).setMatrix(3, 2);
   5783     }
   5784 #line 5785 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5785     break;
   5786 
   5787   case 235:
   5788 #line 1688 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5789     {
   5790         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   5791         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5792         (yyval.interm.type).basicType = EbtDouble;
   5793         (yyval.interm.type).setMatrix(3, 3);
   5794     }
   5795 #line 5796 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5796     break;
   5797 
   5798   case 236:
   5799 #line 1694 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5800     {
   5801         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   5802         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5803         (yyval.interm.type).basicType = EbtDouble;
   5804         (yyval.interm.type).setMatrix(3, 4);
   5805     }
   5806 #line 5807 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5807     break;
   5808 
   5809   case 237:
   5810 #line 1700 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5811     {
   5812         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   5813         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5814         (yyval.interm.type).basicType = EbtDouble;
   5815         (yyval.interm.type).setMatrix(4, 2);
   5816     }
   5817 #line 5818 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5818     break;
   5819 
   5820   case 238:
   5821 #line 1706 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5822     {
   5823         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   5824         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5825         (yyval.interm.type).basicType = EbtDouble;
   5826         (yyval.interm.type).setMatrix(4, 3);
   5827     }
   5828 #line 5829 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5829     break;
   5830 
   5831   case 239:
   5832 #line 1712 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5833     {
   5834         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
   5835         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5836         (yyval.interm.type).basicType = EbtDouble;
   5837         (yyval.interm.type).setMatrix(4, 4);
   5838     }
   5839 #line 5840 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5840     break;
   5841 
   5842   case 240:
   5843 #line 1718 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5844     {
   5845 #ifdef AMD_EXTENSIONS
   5846         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   5847         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5848         (yyval.interm.type).basicType = EbtFloat16;
   5849         (yyval.interm.type).setMatrix(2, 2);
   5850 #endif
   5851     }
   5852 #line 5853 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5853     break;
   5854 
   5855   case 241:
   5856 #line 1726 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5857     {
   5858 #ifdef AMD_EXTENSIONS
   5859         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   5860         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5861         (yyval.interm.type).basicType = EbtFloat16;
   5862         (yyval.interm.type).setMatrix(3, 3);
   5863 #endif
   5864     }
   5865 #line 5866 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5866     break;
   5867 
   5868   case 242:
   5869 #line 1734 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5870     {
   5871 #ifdef AMD_EXTENSIONS
   5872         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   5873         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5874         (yyval.interm.type).basicType = EbtFloat16;
   5875         (yyval.interm.type).setMatrix(4, 4);
   5876 #endif
   5877     }
   5878 #line 5879 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5879     break;
   5880 
   5881   case 243:
   5882 #line 1742 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5883     {
   5884 #ifdef AMD_EXTENSIONS
   5885         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   5886         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5887         (yyval.interm.type).basicType = EbtFloat16;
   5888         (yyval.interm.type).setMatrix(2, 2);
   5889 #endif
   5890     }
   5891 #line 5892 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5892     break;
   5893 
   5894   case 244:
   5895 #line 1750 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5896     {
   5897 #ifdef AMD_EXTENSIONS
   5898         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   5899         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5900         (yyval.interm.type).basicType = EbtFloat16;
   5901         (yyval.interm.type).setMatrix(2, 3);
   5902 #endif
   5903     }
   5904 #line 5905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5905     break;
   5906 
   5907   case 245:
   5908 #line 1758 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5909     {
   5910 #ifdef AMD_EXTENSIONS
   5911         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   5912         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5913         (yyval.interm.type).basicType = EbtFloat16;
   5914         (yyval.interm.type).setMatrix(2, 4);
   5915 #endif
   5916     }
   5917 #line 5918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5918     break;
   5919 
   5920   case 246:
   5921 #line 1766 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5922     {
   5923 #ifdef AMD_EXTENSIONS
   5924         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   5925         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5926         (yyval.interm.type).basicType = EbtFloat16;
   5927         (yyval.interm.type).setMatrix(3, 2);
   5928 #endif
   5929     }
   5930 #line 5931 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5931     break;
   5932 
   5933   case 247:
   5934 #line 1774 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5935     {
   5936 #ifdef AMD_EXTENSIONS
   5937         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   5938         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5939         (yyval.interm.type).basicType = EbtFloat16;
   5940         (yyval.interm.type).setMatrix(3, 3);
   5941 #endif
   5942     }
   5943 #line 5944 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5944     break;
   5945 
   5946   case 248:
   5947 #line 1782 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5948     {
   5949 #ifdef AMD_EXTENSIONS
   5950         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   5951         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5952         (yyval.interm.type).basicType = EbtFloat16;
   5953         (yyval.interm.type).setMatrix(3, 4);
   5954 #endif
   5955     }
   5956 #line 5957 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5957     break;
   5958 
   5959   case 249:
   5960 #line 1790 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5961     {
   5962 #ifdef AMD_EXTENSIONS
   5963         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   5964         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5965         (yyval.interm.type).basicType = EbtFloat16;
   5966         (yyval.interm.type).setMatrix(4, 2);
   5967 #endif
   5968     }
   5969 #line 5970 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5970     break;
   5971 
   5972   case 250:
   5973 #line 1798 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5974     {
   5975 #ifdef AMD_EXTENSIONS
   5976         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   5977         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5978         (yyval.interm.type).basicType = EbtFloat16;
   5979         (yyval.interm.type).setMatrix(4, 3);
   5980 #endif
   5981     }
   5982 #line 5983 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5983     break;
   5984 
   5985   case 251:
   5986 #line 1806 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   5987     {
   5988 #ifdef AMD_EXTENSIONS
   5989         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
   5990         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   5991         (yyval.interm.type).basicType = EbtFloat16;
   5992         (yyval.interm.type).setMatrix(4, 4);
   5993 #endif
   5994     }
   5995 #line 5996 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   5996     break;
   5997 
   5998   case 252:
   5999 #line 1814 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6000     {
   6001         parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types");
   6002         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6003         (yyval.interm.type).basicType = EbtAtomicUint;
   6004     }
   6005 #line 6006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6006     break;
   6007 
   6008   case 253:
   6009 #line 1819 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6010     {
   6011         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6012         (yyval.interm.type).basicType = EbtSampler;
   6013         (yyval.interm.type).sampler.set(EbtFloat, Esd1D);
   6014     }
   6015 #line 6016 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6016     break;
   6017 
   6018   case 254:
   6019 #line 1824 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6020     {
   6021         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6022         (yyval.interm.type).basicType = EbtSampler;
   6023         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
   6024     }
   6025 #line 6026 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6026     break;
   6027 
   6028   case 255:
   6029 #line 1829 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6030     {
   6031         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6032         (yyval.interm.type).basicType = EbtSampler;
   6033         (yyval.interm.type).sampler.set(EbtFloat, Esd3D);
   6034     }
   6035 #line 6036 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6036     break;
   6037 
   6038   case 256:
   6039 #line 1834 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6040     {
   6041         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6042         (yyval.interm.type).basicType = EbtSampler;
   6043         (yyval.interm.type).sampler.set(EbtFloat, EsdCube);
   6044     }
   6045 #line 6046 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6046     break;
   6047 
   6048   case 257:
   6049 #line 1839 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6050     {
   6051         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6052         (yyval.interm.type).basicType = EbtSampler;
   6053         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
   6054     }
   6055 #line 6056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6056     break;
   6057 
   6058   case 258:
   6059 #line 1844 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6060     {
   6061         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6062         (yyval.interm.type).basicType = EbtSampler;
   6063         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
   6064     }
   6065 #line 6066 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6066     break;
   6067 
   6068   case 259:
   6069 #line 1849 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6070     {
   6071         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6072         (yyval.interm.type).basicType = EbtSampler;
   6073         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
   6074     }
   6075 #line 6076 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6076     break;
   6077 
   6078   case 260:
   6079 #line 1854 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6080     {
   6081         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6082         (yyval.interm.type).basicType = EbtSampler;
   6083         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
   6084     }
   6085 #line 6086 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6086     break;
   6087 
   6088   case 261:
   6089 #line 1859 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6090     {
   6091         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6092         (yyval.interm.type).basicType = EbtSampler;
   6093         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
   6094     }
   6095 #line 6096 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6096     break;
   6097 
   6098   case 262:
   6099 #line 1864 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6100     {
   6101         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6102         (yyval.interm.type).basicType = EbtSampler;
   6103         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
   6104     }
   6105 #line 6106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6106     break;
   6107 
   6108   case 263:
   6109 #line 1869 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6110     {
   6111         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6112         (yyval.interm.type).basicType = EbtSampler;
   6113         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
   6114     }
   6115 #line 6116 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6116     break;
   6117 
   6118   case 264:
   6119 #line 1874 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6120     {
   6121         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6122         (yyval.interm.type).basicType = EbtSampler;
   6123         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
   6124     }
   6125 #line 6126 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6126     break;
   6127 
   6128   case 265:
   6129 #line 1879 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6130     {
   6131         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6132         (yyval.interm.type).basicType = EbtSampler;
   6133         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
   6134     }
   6135 #line 6136 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6136     break;
   6137 
   6138   case 266:
   6139 #line 1884 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6140     {
   6141         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6142         (yyval.interm.type).basicType = EbtSampler;
   6143         (yyval.interm.type).sampler.set(EbtInt, Esd1D);
   6144     }
   6145 #line 6146 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6146     break;
   6147 
   6148   case 267:
   6149 #line 1889 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6150     {
   6151         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6152         (yyval.interm.type).basicType = EbtSampler;
   6153         (yyval.interm.type).sampler.set(EbtInt, Esd2D);
   6154     }
   6155 #line 6156 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6156     break;
   6157 
   6158   case 268:
   6159 #line 1894 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6160     {
   6161         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6162         (yyval.interm.type).basicType = EbtSampler;
   6163         (yyval.interm.type).sampler.set(EbtInt, Esd3D);
   6164     }
   6165 #line 6166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6166     break;
   6167 
   6168   case 269:
   6169 #line 1899 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6170     {
   6171         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6172         (yyval.interm.type).basicType = EbtSampler;
   6173         (yyval.interm.type).sampler.set(EbtInt, EsdCube);
   6174     }
   6175 #line 6176 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6176     break;
   6177 
   6178   case 270:
   6179 #line 1904 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6180     {
   6181         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6182         (yyval.interm.type).basicType = EbtSampler;
   6183         (yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
   6184     }
   6185 #line 6186 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6186     break;
   6187 
   6188   case 271:
   6189 #line 1909 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6190     {
   6191         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6192         (yyval.interm.type).basicType = EbtSampler;
   6193         (yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
   6194     }
   6195 #line 6196 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6196     break;
   6197 
   6198   case 272:
   6199 #line 1914 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6200     {
   6201         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6202         (yyval.interm.type).basicType = EbtSampler;
   6203         (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
   6204     }
   6205 #line 6206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6206     break;
   6207 
   6208   case 273:
   6209 #line 1919 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6210     {
   6211         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6212         (yyval.interm.type).basicType = EbtSampler;
   6213         (yyval.interm.type).sampler.set(EbtUint, Esd1D);
   6214     }
   6215 #line 6216 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6216     break;
   6217 
   6218   case 274:
   6219 #line 1924 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6220     {
   6221         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6222         (yyval.interm.type).basicType = EbtSampler;
   6223         (yyval.interm.type).sampler.set(EbtUint, Esd2D);
   6224     }
   6225 #line 6226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6226     break;
   6227 
   6228   case 275:
   6229 #line 1929 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6230     {
   6231         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6232         (yyval.interm.type).basicType = EbtSampler;
   6233         (yyval.interm.type).sampler.set(EbtUint, Esd3D);
   6234     }
   6235 #line 6236 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6236     break;
   6237 
   6238   case 276:
   6239 #line 1934 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6240     {
   6241         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6242         (yyval.interm.type).basicType = EbtSampler;
   6243         (yyval.interm.type).sampler.set(EbtUint, EsdCube);
   6244     }
   6245 #line 6246 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6246     break;
   6247 
   6248   case 277:
   6249 #line 1939 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6250     {
   6251         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6252         (yyval.interm.type).basicType = EbtSampler;
   6253         (yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
   6254     }
   6255 #line 6256 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6256     break;
   6257 
   6258   case 278:
   6259 #line 1944 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6260     {
   6261         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6262         (yyval.interm.type).basicType = EbtSampler;
   6263         (yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
   6264     }
   6265 #line 6266 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6266     break;
   6267 
   6268   case 279:
   6269 #line 1949 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6270     {
   6271         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6272         (yyval.interm.type).basicType = EbtSampler;
   6273         (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
   6274     }
   6275 #line 6276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6276     break;
   6277 
   6278   case 280:
   6279 #line 1954 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6280     {
   6281         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6282         (yyval.interm.type).basicType = EbtSampler;
   6283         (yyval.interm.type).sampler.set(EbtFloat, EsdRect);
   6284     }
   6285 #line 6286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6286     break;
   6287 
   6288   case 281:
   6289 #line 1959 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6290     {
   6291         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6292         (yyval.interm.type).basicType = EbtSampler;
   6293         (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
   6294     }
   6295 #line 6296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6296     break;
   6297 
   6298   case 282:
   6299 #line 1964 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6300     {
   6301         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6302         (yyval.interm.type).basicType = EbtSampler;
   6303         (yyval.interm.type).sampler.set(EbtInt, EsdRect);
   6304     }
   6305 #line 6306 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6306     break;
   6307 
   6308   case 283:
   6309 #line 1969 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6310     {
   6311         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6312         (yyval.interm.type).basicType = EbtSampler;
   6313         (yyval.interm.type).sampler.set(EbtUint, EsdRect);
   6314     }
   6315 #line 6316 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6316     break;
   6317 
   6318   case 284:
   6319 #line 1974 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6320     {
   6321         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6322         (yyval.interm.type).basicType = EbtSampler;
   6323         (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
   6324     }
   6325 #line 6326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6326     break;
   6327 
   6328   case 285:
   6329 #line 1979 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6330     {
   6331         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6332         (yyval.interm.type).basicType = EbtSampler;
   6333         (yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
   6334     }
   6335 #line 6336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6336     break;
   6337 
   6338   case 286:
   6339 #line 1984 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6340     {
   6341         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6342         (yyval.interm.type).basicType = EbtSampler;
   6343         (yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
   6344     }
   6345 #line 6346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6346     break;
   6347 
   6348   case 287:
   6349 #line 1989 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6350     {
   6351         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6352         (yyval.interm.type).basicType = EbtSampler;
   6353         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
   6354     }
   6355 #line 6356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6356     break;
   6357 
   6358   case 288:
   6359 #line 1994 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6360     {
   6361         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6362         (yyval.interm.type).basicType = EbtSampler;
   6363         (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
   6364     }
   6365 #line 6366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6366     break;
   6367 
   6368   case 289:
   6369 #line 1999 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6370     {
   6371         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6372         (yyval.interm.type).basicType = EbtSampler;
   6373         (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
   6374     }
   6375 #line 6376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6376     break;
   6377 
   6378   case 290:
   6379 #line 2004 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6380     {
   6381         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6382         (yyval.interm.type).basicType = EbtSampler;
   6383         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
   6384     }
   6385 #line 6386 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6386     break;
   6387 
   6388   case 291:
   6389 #line 2009 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6390     {
   6391         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6392         (yyval.interm.type).basicType = EbtSampler;
   6393         (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
   6394     }
   6395 #line 6396 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6396     break;
   6397 
   6398   case 292:
   6399 #line 2014 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6400     {
   6401         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6402         (yyval.interm.type).basicType = EbtSampler;
   6403         (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
   6404     }
   6405 #line 6406 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6406     break;
   6407 
   6408   case 293:
   6409 #line 2019 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6410     {
   6411         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6412         (yyval.interm.type).basicType = EbtSampler;
   6413         (yyval.interm.type).sampler.setPureSampler(false);
   6414     }
   6415 #line 6416 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6416     break;
   6417 
   6418   case 294:
   6419 #line 2024 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6420     {
   6421         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6422         (yyval.interm.type).basicType = EbtSampler;
   6423         (yyval.interm.type).sampler.setPureSampler(true);
   6424     }
   6425 #line 6426 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6426     break;
   6427 
   6428   case 295:
   6429 #line 2029 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6430     {
   6431         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6432         (yyval.interm.type).basicType = EbtSampler;
   6433         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
   6434     }
   6435 #line 6436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6436     break;
   6437 
   6438   case 296:
   6439 #line 2034 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6440     {
   6441         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6442         (yyval.interm.type).basicType = EbtSampler;
   6443         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
   6444     }
   6445 #line 6446 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6446     break;
   6447 
   6448   case 297:
   6449 #line 2039 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6450     {
   6451         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6452         (yyval.interm.type).basicType = EbtSampler;
   6453         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
   6454     }
   6455 #line 6456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6456     break;
   6457 
   6458   case 298:
   6459 #line 2044 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6460     {
   6461         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6462         (yyval.interm.type).basicType = EbtSampler;
   6463         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
   6464     }
   6465 #line 6466 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6466     break;
   6467 
   6468   case 299:
   6469 #line 2049 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6470     {
   6471         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6472         (yyval.interm.type).basicType = EbtSampler;
   6473         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
   6474     }
   6475 #line 6476 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6476     break;
   6477 
   6478   case 300:
   6479 #line 2054 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6480     {
   6481         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6482         (yyval.interm.type).basicType = EbtSampler;
   6483         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
   6484     }
   6485 #line 6486 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6486     break;
   6487 
   6488   case 301:
   6489 #line 2059 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6490     {
   6491         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6492         (yyval.interm.type).basicType = EbtSampler;
   6493         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
   6494     }
   6495 #line 6496 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6496     break;
   6497 
   6498   case 302:
   6499 #line 2064 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6500     {
   6501         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6502         (yyval.interm.type).basicType = EbtSampler;
   6503         (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
   6504     }
   6505 #line 6506 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6506     break;
   6507 
   6508   case 303:
   6509 #line 2069 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6510     {
   6511         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6512         (yyval.interm.type).basicType = EbtSampler;
   6513         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
   6514     }
   6515 #line 6516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6516     break;
   6517 
   6518   case 304:
   6519 #line 2074 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6520     {
   6521         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6522         (yyval.interm.type).basicType = EbtSampler;
   6523         (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
   6524     }
   6525 #line 6526 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6526     break;
   6527 
   6528   case 305:
   6529 #line 2079 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6530     {
   6531         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6532         (yyval.interm.type).basicType = EbtSampler;
   6533         (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
   6534     }
   6535 #line 6536 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6536     break;
   6537 
   6538   case 306:
   6539 #line 2084 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6540     {
   6541         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6542         (yyval.interm.type).basicType = EbtSampler;
   6543         (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
   6544     }
   6545 #line 6546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6546     break;
   6547 
   6548   case 307:
   6549 #line 2089 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6550     {
   6551         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6552         (yyval.interm.type).basicType = EbtSampler;
   6553         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
   6554     }
   6555 #line 6556 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6556     break;
   6557 
   6558   case 308:
   6559 #line 2094 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6560     {
   6561         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6562         (yyval.interm.type).basicType = EbtSampler;
   6563         (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
   6564     }
   6565 #line 6566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6566     break;
   6567 
   6568   case 309:
   6569 #line 2099 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6570     {
   6571         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6572         (yyval.interm.type).basicType = EbtSampler;
   6573         (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
   6574     }
   6575 #line 6576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6576     break;
   6577 
   6578   case 310:
   6579 #line 2104 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6580     {
   6581         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6582         (yyval.interm.type).basicType = EbtSampler;
   6583         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
   6584     }
   6585 #line 6586 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6586     break;
   6587 
   6588   case 311:
   6589 #line 2109 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6590     {
   6591         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6592         (yyval.interm.type).basicType = EbtSampler;
   6593         (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
   6594     }
   6595 #line 6596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6596     break;
   6597 
   6598   case 312:
   6599 #line 2114 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6600     {
   6601         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6602         (yyval.interm.type).basicType = EbtSampler;
   6603         (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
   6604     }
   6605 #line 6606 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6606     break;
   6607 
   6608   case 313:
   6609 #line 2119 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6610     {
   6611         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6612         (yyval.interm.type).basicType = EbtSampler;
   6613         (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
   6614     }
   6615 #line 6616 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6616     break;
   6617 
   6618   case 314:
   6619 #line 2124 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6620     {
   6621         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6622         (yyval.interm.type).basicType = EbtSampler;
   6623         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
   6624     }
   6625 #line 6626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6626     break;
   6627 
   6628   case 315:
   6629 #line 2129 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6630     {
   6631         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6632         (yyval.interm.type).basicType = EbtSampler;
   6633         (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
   6634     }
   6635 #line 6636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6636     break;
   6637 
   6638   case 316:
   6639 #line 2134 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6640     {
   6641         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6642         (yyval.interm.type).basicType = EbtSampler;
   6643         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
   6644     }
   6645 #line 6646 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6646     break;
   6647 
   6648   case 317:
   6649 #line 2139 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6650     {
   6651         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6652         (yyval.interm.type).basicType = EbtSampler;
   6653         (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
   6654     }
   6655 #line 6656 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6656     break;
   6657 
   6658   case 318:
   6659 #line 2144 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6660     {
   6661         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6662         (yyval.interm.type).basicType = EbtSampler;
   6663         (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
   6664     }
   6665 #line 6666 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6666     break;
   6667 
   6668   case 319:
   6669 #line 2149 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6670     {
   6671         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6672         (yyval.interm.type).basicType = EbtSampler;
   6673         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
   6674     }
   6675 #line 6676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6676     break;
   6677 
   6678   case 320:
   6679 #line 2154 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6680     {
   6681         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6682         (yyval.interm.type).basicType = EbtSampler;
   6683         (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
   6684     }
   6685 #line 6686 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6686     break;
   6687 
   6688   case 321:
   6689 #line 2159 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6690     {
   6691         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6692         (yyval.interm.type).basicType = EbtSampler;
   6693         (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
   6694     }
   6695 #line 6696 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6696     break;
   6697 
   6698   case 322:
   6699 #line 2164 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6700     {
   6701         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6702         (yyval.interm.type).basicType = EbtSampler;
   6703         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
   6704     }
   6705 #line 6706 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6706     break;
   6707 
   6708   case 323:
   6709 #line 2169 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6710     {
   6711         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6712         (yyval.interm.type).basicType = EbtSampler;
   6713         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
   6714     }
   6715 #line 6716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6716     break;
   6717 
   6718   case 324:
   6719 #line 2174 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6720     {
   6721         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6722         (yyval.interm.type).basicType = EbtSampler;
   6723         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
   6724     }
   6725 #line 6726 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6726     break;
   6727 
   6728   case 325:
   6729 #line 2179 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6730     {
   6731         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6732         (yyval.interm.type).basicType = EbtSampler;
   6733         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
   6734     }
   6735 #line 6736 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6736     break;
   6737 
   6738   case 326:
   6739 #line 2184 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6740     {
   6741         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6742         (yyval.interm.type).basicType = EbtSampler;
   6743         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
   6744     }
   6745 #line 6746 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6746     break;
   6747 
   6748   case 327:
   6749 #line 2189 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6750     {
   6751         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6752         (yyval.interm.type).basicType = EbtSampler;
   6753         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
   6754     }
   6755 #line 6756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6756     break;
   6757 
   6758   case 328:
   6759 #line 2194 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6760     {
   6761         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6762         (yyval.interm.type).basicType = EbtSampler;
   6763         (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
   6764     }
   6765 #line 6766 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6766     break;
   6767 
   6768   case 329:
   6769 #line 2199 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6770     {
   6771         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6772         (yyval.interm.type).basicType = EbtSampler;
   6773         (yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
   6774     }
   6775 #line 6776 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6776     break;
   6777 
   6778   case 330:
   6779 #line 2204 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6780     {
   6781         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6782         (yyval.interm.type).basicType = EbtSampler;
   6783         (yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
   6784     }
   6785 #line 6786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6786     break;
   6787 
   6788   case 331:
   6789 #line 2209 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6790     {
   6791         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6792         (yyval.interm.type).basicType = EbtSampler;
   6793         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
   6794     }
   6795 #line 6796 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6796     break;
   6797 
   6798   case 332:
   6799 #line 2214 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6800     {
   6801         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6802         (yyval.interm.type).basicType = EbtSampler;
   6803         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D);
   6804     }
   6805 #line 6806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6806     break;
   6807 
   6808   case 333:
   6809 #line 2219 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6810     {
   6811         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6812         (yyval.interm.type).basicType = EbtSampler;
   6813         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D);
   6814     }
   6815 #line 6816 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6816     break;
   6817 
   6818   case 334:
   6819 #line 2224 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6820     {
   6821         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6822         (yyval.interm.type).basicType = EbtSampler;
   6823         (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
   6824     }
   6825 #line 6826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6826     break;
   6827 
   6828   case 335:
   6829 #line 2229 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6830     {
   6831         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6832         (yyval.interm.type).basicType = EbtSampler;
   6833         (yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
   6834     }
   6835 #line 6836 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6836     break;
   6837 
   6838   case 336:
   6839 #line 2234 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6840     {
   6841         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6842         (yyval.interm.type).basicType = EbtSampler;
   6843         (yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
   6844     }
   6845 #line 6846 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6846     break;
   6847 
   6848   case 337:
   6849 #line 2239 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6850     {
   6851         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6852         (yyval.interm.type).basicType = EbtSampler;
   6853         (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
   6854     }
   6855 #line 6856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6856     break;
   6857 
   6858   case 338:
   6859 #line 2244 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6860     {
   6861         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6862         (yyval.interm.type).basicType = EbtSampler;
   6863         (yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
   6864     }
   6865 #line 6866 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6866     break;
   6867 
   6868   case 339:
   6869 #line 2249 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6870     {
   6871         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6872         (yyval.interm.type).basicType = EbtSampler;
   6873         (yyval.interm.type).sampler.setImage(EbtUint, EsdRect);
   6874     }
   6875 #line 6876 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6876     break;
   6877 
   6878   case 340:
   6879 #line 2254 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6880     {
   6881         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6882         (yyval.interm.type).basicType = EbtSampler;
   6883         (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
   6884     }
   6885 #line 6886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6886     break;
   6887 
   6888   case 341:
   6889 #line 2259 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6890     {
   6891         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6892         (yyval.interm.type).basicType = EbtSampler;
   6893         (yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
   6894     }
   6895 #line 6896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6896     break;
   6897 
   6898   case 342:
   6899 #line 2264 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6900     {
   6901         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6902         (yyval.interm.type).basicType = EbtSampler;
   6903         (yyval.interm.type).sampler.setImage(EbtUint, EsdCube);
   6904     }
   6905 #line 6906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6906     break;
   6907 
   6908   case 343:
   6909 #line 2269 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6910     {
   6911         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6912         (yyval.interm.type).basicType = EbtSampler;
   6913         (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
   6914     }
   6915 #line 6916 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6916     break;
   6917 
   6918   case 344:
   6919 #line 2274 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6920     {
   6921         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6922         (yyval.interm.type).basicType = EbtSampler;
   6923         (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
   6924     }
   6925 #line 6926 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6926     break;
   6927 
   6928   case 345:
   6929 #line 2279 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6930     {
   6931         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6932         (yyval.interm.type).basicType = EbtSampler;
   6933         (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer);
   6934     }
   6935 #line 6936 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6936     break;
   6937 
   6938   case 346:
   6939 #line 2284 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6940     {
   6941         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6942         (yyval.interm.type).basicType = EbtSampler;
   6943         (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
   6944     }
   6945 #line 6946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6946     break;
   6947 
   6948   case 347:
   6949 #line 2289 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6950     {
   6951         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6952         (yyval.interm.type).basicType = EbtSampler;
   6953         (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
   6954     }
   6955 #line 6956 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6956     break;
   6957 
   6958   case 348:
   6959 #line 2294 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6960     {
   6961         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6962         (yyval.interm.type).basicType = EbtSampler;
   6963         (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true);
   6964     }
   6965 #line 6966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6966     break;
   6967 
   6968   case 349:
   6969 #line 2299 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6970     {
   6971         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6972         (yyval.interm.type).basicType = EbtSampler;
   6973         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
   6974     }
   6975 #line 6976 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6976     break;
   6977 
   6978   case 350:
   6979 #line 2304 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6980     {
   6981         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6982         (yyval.interm.type).basicType = EbtSampler;
   6983         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
   6984     }
   6985 #line 6986 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6986     break;
   6987 
   6988   case 351:
   6989 #line 2309 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   6990     {
   6991         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   6992         (yyval.interm.type).basicType = EbtSampler;
   6993         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
   6994     }
   6995 #line 6996 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   6996     break;
   6997 
   6998   case 352:
   6999 #line 2314 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7000     {
   7001         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7002         (yyval.interm.type).basicType = EbtSampler;
   7003         (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
   7004     }
   7005 #line 7006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7006     break;
   7007 
   7008   case 353:
   7009 #line 2319 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7010     {
   7011         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7012         (yyval.interm.type).basicType = EbtSampler;
   7013         (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
   7014     }
   7015 #line 7016 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7016     break;
   7017 
   7018   case 354:
   7019 #line 2324 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7020     {
   7021         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7022         (yyval.interm.type).basicType = EbtSampler;
   7023         (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
   7024     }
   7025 #line 7026 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7026     break;
   7027 
   7028   case 355:
   7029 #line 2329 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7030     {
   7031         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7032         (yyval.interm.type).basicType = EbtSampler;
   7033         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
   7034     }
   7035 #line 7036 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7036     break;
   7037 
   7038   case 356:
   7039 #line 2334 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7040     {
   7041         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7042         (yyval.interm.type).basicType = EbtSampler;
   7043         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
   7044     }
   7045 #line 7046 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7046     break;
   7047 
   7048   case 357:
   7049 #line 2339 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7050     {
   7051         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7052         (yyval.interm.type).basicType = EbtSampler;
   7053         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
   7054     }
   7055 #line 7056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7056     break;
   7057 
   7058   case 358:
   7059 #line 2344 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7060     {
   7061         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7062         (yyval.interm.type).basicType = EbtSampler;
   7063         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
   7064     }
   7065 #line 7066 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7066     break;
   7067 
   7068   case 359:
   7069 #line 2349 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7070     {
   7071         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7072         (yyval.interm.type).basicType = EbtSampler;
   7073         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
   7074     }
   7075 #line 7076 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7076     break;
   7077 
   7078   case 360:
   7079 #line 2354 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7080     {
   7081         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7082         (yyval.interm.type).basicType = EbtSampler;
   7083         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
   7084     }
   7085 #line 7086 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7086     break;
   7087 
   7088   case 361:
   7089 #line 2359 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7090     {  // GL_OES_EGL_image_external
   7091         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7092         (yyval.interm.type).basicType = EbtSampler;
   7093         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
   7094         (yyval.interm.type).sampler.external = true;
   7095     }
   7096 #line 7097 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7097     break;
   7098 
   7099   case 362:
   7100 #line 2365 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7101     {
   7102         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
   7103         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7104         (yyval.interm.type).basicType = EbtSampler;
   7105         (yyval.interm.type).sampler.setSubpass(EbtFloat);
   7106     }
   7107 #line 7108 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7108     break;
   7109 
   7110   case 363:
   7111 #line 2371 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7112     {
   7113         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
   7114         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7115         (yyval.interm.type).basicType = EbtSampler;
   7116         (yyval.interm.type).sampler.setSubpass(EbtFloat, true);
   7117     }
   7118 #line 7119 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7119     break;
   7120 
   7121   case 364:
   7122 #line 2377 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7123     {
   7124         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
   7125         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7126         (yyval.interm.type).basicType = EbtSampler;
   7127         (yyval.interm.type).sampler.setSubpass(EbtInt);
   7128     }
   7129 #line 7130 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7130     break;
   7131 
   7132   case 365:
   7133 #line 2383 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7134     {
   7135         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
   7136         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7137         (yyval.interm.type).basicType = EbtSampler;
   7138         (yyval.interm.type).sampler.setSubpass(EbtInt, true);
   7139     }
   7140 #line 7141 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7141     break;
   7142 
   7143   case 366:
   7144 #line 2389 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7145     {
   7146         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
   7147         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7148         (yyval.interm.type).basicType = EbtSampler;
   7149         (yyval.interm.type).sampler.setSubpass(EbtUint);
   7150     }
   7151 #line 7152 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7152     break;
   7153 
   7154   case 367:
   7155 #line 2395 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7156     {
   7157         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
   7158         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7159         (yyval.interm.type).basicType = EbtSampler;
   7160         (yyval.interm.type).sampler.setSubpass(EbtUint, true);
   7161     }
   7162 #line 7163 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7163     break;
   7164 
   7165   case 368:
   7166 #line 2401 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7167     {
   7168         (yyval.interm.type) = (yyvsp[0].interm.type);
   7169         (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
   7170         parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
   7171     }
   7172 #line 7173 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7173     break;
   7174 
   7175   case 369:
   7176 #line 2406 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7177     {
   7178         //
   7179         // This is for user defined type names.  The lexical phase looked up the
   7180         // type.
   7181         //
   7182         if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) {
   7183             const TType& structure = variable->getType();
   7184             (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7185             (yyval.interm.type).basicType = EbtStruct;
   7186             (yyval.interm.type).userDef = &structure;
   7187         } else
   7188             parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
   7189     }
   7190 #line 7191 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7191     break;
   7192 
   7193   case 370:
   7194 #line 2422 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7195     {
   7196         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
   7197         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7198         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
   7199     }
   7200 #line 7201 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7201     break;
   7202 
   7203   case 371:
   7204 #line 2427 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7205     {
   7206         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
   7207         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7208         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
   7209     }
   7210 #line 7211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7211     break;
   7212 
   7213   case 372:
   7214 #line 2432 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7215     {
   7216         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
   7217         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
   7218         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
   7219     }
   7220 #line 7221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7221     break;
   7222 
   7223   case 373:
   7224 #line 2440 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7225     { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
   7226 #line 7227 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7227     break;
   7228 
   7229   case 374:
   7230 #line 2440 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7231     {
   7232         TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
   7233         parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
   7234         TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true);
   7235         if (! parseContext.symbolTable.insert(*userTypeDef))
   7236             parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct");
   7237         (yyval.interm.type).init((yyvsp[-5].lex).loc);
   7238         (yyval.interm.type).basicType = EbtStruct;
   7239         (yyval.interm.type).userDef = structure;
   7240         --parseContext.structNestingLevel;
   7241     }
   7242 #line 7243 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7243     break;
   7244 
   7245   case 375:
   7246 #line 2451 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7247     { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
   7248 #line 7249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7249     break;
   7250 
   7251   case 376:
   7252 #line 2451 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7253     {
   7254         TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
   7255         (yyval.interm.type).init((yyvsp[-4].lex).loc);
   7256         (yyval.interm.type).basicType = EbtStruct;
   7257         (yyval.interm.type).userDef = structure;
   7258         --parseContext.structNestingLevel;
   7259     }
   7260 #line 7261 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7261     break;
   7262 
   7263   case 377:
   7264 #line 2461 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7265     {
   7266         (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
   7267     }
   7268 #line 7269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7269     break;
   7270 
   7271   case 378:
   7272 #line 2464 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7273     {
   7274         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
   7275         for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
   7276             for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) {
   7277                 if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName())
   7278                     parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str());
   7279             }
   7280             (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
   7281         }
   7282     }
   7283 #line 7284 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7284     break;
   7285 
   7286   case 379:
   7287 #line 2477 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7288     {
   7289         if ((yyvsp[-2].interm.type).arraySizes) {
   7290             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
   7291             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
   7292             if (parseContext.profile == EEsProfile)
   7293                 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
   7294         }
   7295 
   7296         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
   7297 
   7298         parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
   7299         parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
   7300 
   7301         for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
   7302             parseContext.arrayDimCheck((yyvsp[-2].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[-2].interm.type).arraySizes);
   7303             (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[-2].interm.type));
   7304         }
   7305     }
   7306 #line 7307 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7307     break;
   7308 
   7309   case 380:
   7310 #line 2495 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7311     {
   7312         parseContext.globalQualifierFixCheck((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier);
   7313         if ((yyvsp[-2].interm.type).arraySizes) {
   7314             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
   7315             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
   7316             if (parseContext.profile == EEsProfile)
   7317                 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
   7318         }
   7319 
   7320         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
   7321 
   7322         parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
   7323         parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
   7324         parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true);
   7325         parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
   7326 
   7327         for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
   7328             parseContext.arrayDimCheck((yyvsp[-3].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[-2].interm.type).arraySizes);
   7329             (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[-2].interm.type));
   7330         }
   7331     }
   7332 #line 7333 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7333     break;
   7334 
   7335   case 381:
   7336 #line 2519 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7337     {
   7338         (yyval.interm.typeList) = new TTypeList;
   7339         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
   7340     }
   7341 #line 7342 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7342     break;
   7343 
   7344   case 382:
   7345 #line 2523 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7346     {
   7347         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
   7348     }
   7349 #line 7350 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7350     break;
   7351 
   7352   case 383:
   7353 #line 2529 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7354     {
   7355         (yyval.interm.typeLine).type = new TType(EbtVoid);
   7356         (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
   7357         (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
   7358     }
   7359 #line 7360 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7360     break;
   7361 
   7362   case 384:
   7363 #line 2534 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7364     {
   7365         parseContext.arrayDimCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes, 0);
   7366 
   7367         (yyval.interm.typeLine).type = new TType(EbtVoid);
   7368         (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc;
   7369         (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
   7370         (yyval.interm.typeLine).type->newArraySizes(*(yyvsp[0].interm).arraySizes);
   7371     }
   7372 #line 7373 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7373     break;
   7374 
   7375   case 385:
   7376 #line 2545 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7377     {
   7378         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   7379     }
   7380 #line 7381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7381     break;
   7382 
   7383   case 386:
   7384 #line 2548 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7385     {
   7386         const char* initFeature = "{ } style initializers";
   7387         parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
   7388         parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
   7389         (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
   7390     }
   7391 #line 7392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7392     break;
   7393 
   7394   case 387:
   7395 #line 2554 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7396     {
   7397         const char* initFeature = "{ } style initializers";
   7398         parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
   7399         parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
   7400         (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
   7401     }
   7402 #line 7403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7403     break;
   7404 
   7405   case 388:
   7406 #line 2563 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7407     {
   7408         (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
   7409     }
   7410 #line 7411 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7411     break;
   7412 
   7413   case 389:
   7414 #line 2566 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7415     {
   7416         (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
   7417     }
   7418 #line 7419 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7419     break;
   7420 
   7421   case 390:
   7422 #line 2572 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7423     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   7424 #line 7425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7425     break;
   7426 
   7427   case 391:
   7428 #line 2576 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7429     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   7430 #line 7431 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7431     break;
   7432 
   7433   case 392:
   7434 #line 2577 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7435     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   7436 #line 7437 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7437     break;
   7438 
   7439   case 393:
   7440 #line 2583 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7441     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   7442 #line 7443 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7443     break;
   7444 
   7445   case 394:
   7446 #line 2584 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7447     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   7448 #line 7449 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7449     break;
   7450 
   7451   case 395:
   7452 #line 2585 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7453     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   7454 #line 7455 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7455     break;
   7456 
   7457   case 396:
   7458 #line 2586 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7459     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   7460 #line 7461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7461     break;
   7462 
   7463   case 397:
   7464 #line 2587 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7465     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   7466 #line 7467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7467     break;
   7468 
   7469   case 398:
   7470 #line 2588 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7471     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   7472 #line 7473 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7473     break;
   7474 
   7475   case 399:
   7476 #line 2589 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7477     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   7478 #line 7479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7479     break;
   7480 
   7481   case 400:
   7482 #line 2593 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7483     { (yyval.interm.intermNode) = 0; }
   7484 #line 7485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7485     break;
   7486 
   7487   case 401:
   7488 #line 2594 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7489     {
   7490         parseContext.symbolTable.push();
   7491         ++parseContext.statementNestingLevel;
   7492     }
   7493 #line 7494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7494     break;
   7495 
   7496   case 402:
   7497 #line 2598 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7498     {
   7499         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
   7500         --parseContext.statementNestingLevel;
   7501     }
   7502 #line 7503 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7503     break;
   7504 
   7505   case 403:
   7506 #line 2602 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7507     {
   7508         if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate())
   7509             (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
   7510         (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode);
   7511     }
   7512 #line 7513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7513     break;
   7514 
   7515   case 404:
   7516 #line 2610 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7517     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   7518 #line 7519 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7519     break;
   7520 
   7521   case 405:
   7522 #line 2611 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7523     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
   7524 #line 7525 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7525     break;
   7526 
   7527   case 406:
   7528 #line 2615 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7529     {
   7530         ++parseContext.controlFlowNestingLevel;
   7531     }
   7532 #line 7533 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7533     break;
   7534 
   7535   case 407:
   7536 #line 2618 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7537     {
   7538         --parseContext.controlFlowNestingLevel;
   7539         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   7540     }
   7541 #line 7542 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7542     break;
   7543 
   7544   case 408:
   7545 #line 2622 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7546     {
   7547         parseContext.symbolTable.push();
   7548         ++parseContext.statementNestingLevel;
   7549         ++parseContext.controlFlowNestingLevel;
   7550     }
   7551 #line 7552 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7552     break;
   7553 
   7554   case 409:
   7555 #line 2627 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7556     {
   7557         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
   7558         --parseContext.statementNestingLevel;
   7559         --parseContext.controlFlowNestingLevel;
   7560         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   7561     }
   7562 #line 7563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7563     break;
   7564 
   7565   case 410:
   7566 #line 2636 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7567     {
   7568         (yyval.interm.intermNode) = 0;
   7569     }
   7570 #line 7571 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7571     break;
   7572 
   7573   case 411:
   7574 #line 2639 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7575     {
   7576         if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate())
   7577             (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
   7578         (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode);
   7579     }
   7580 #line 7581 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7581     break;
   7582 
   7583   case 412:
   7584 #line 2647 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7585     {
   7586         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
   7587         if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
   7588                                             (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
   7589             parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode));
   7590             (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
   7591         }
   7592     }
   7593 #line 7594 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7594     break;
   7595 
   7596   case 413:
   7597 #line 2655 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7598     {
   7599         if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
   7600                                             (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
   7601             parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode));
   7602             (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
   7603         } else
   7604             (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
   7605     }
   7606 #line 7607 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7607     break;
   7608 
   7609   case 414:
   7610 #line 2666 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7611     { (yyval.interm.intermNode) = 0; }
   7612 #line 7613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7613     break;
   7614 
   7615   case 415:
   7616 #line 2667 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7617     { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
   7618 #line 7619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7619     break;
   7620 
   7621   case 416:
   7622 #line 2671 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7623     {
   7624         parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
   7625         (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
   7626     }
   7627 #line 7628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7628     break;
   7629 
   7630   case 417:
   7631 #line 2678 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7632     {
   7633         (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
   7634         (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
   7635     }
   7636 #line 7637 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7637     break;
   7638 
   7639   case 418:
   7640 #line 2682 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7641     {
   7642         (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
   7643         (yyval.interm.nodePair).node2 = 0;
   7644     }
   7645 #line 7646 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7646     break;
   7647 
   7648   case 419:
   7649 #line 2690 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7650     {
   7651         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   7652         parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
   7653     }
   7654 #line 7655 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7655     break;
   7656 
   7657   case 420:
   7658 #line 2694 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7659     {
   7660         parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
   7661 
   7662         TType type((yyvsp[-3].interm.type));
   7663         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
   7664         if (initNode)
   7665             (yyval.interm.intermTypedNode) = initNode->getAsTyped();
   7666         else
   7667             (yyval.interm.intermTypedNode) = 0;
   7668     }
   7669 #line 7670 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7670     break;
   7671 
   7672   case 421:
   7673 #line 2707 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7674     {
   7675         // start new switch sequence on the switch stack
   7676         ++parseContext.controlFlowNestingLevel;
   7677         ++parseContext.statementNestingLevel;
   7678         parseContext.switchSequenceStack.push_back(new TIntermSequence);
   7679         parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
   7680         parseContext.symbolTable.push();
   7681     }
   7682 #line 7683 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7683     break;
   7684 
   7685   case 422:
   7686 #line 2715 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7687     {
   7688         (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
   7689         delete parseContext.switchSequenceStack.back();
   7690         parseContext.switchSequenceStack.pop_back();
   7691         parseContext.switchLevel.pop_back();
   7692         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
   7693         --parseContext.statementNestingLevel;
   7694         --parseContext.controlFlowNestingLevel;
   7695     }
   7696 #line 7697 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7697     break;
   7698 
   7699   case 423:
   7700 #line 2727 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7701     {
   7702         (yyval.interm.intermNode) = 0;
   7703     }
   7704 #line 7705 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7705     break;
   7706 
   7707   case 424:
   7708 #line 2730 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7709     {
   7710         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   7711     }
   7712 #line 7713 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7713     break;
   7714 
   7715   case 425:
   7716 #line 2736 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7717     {
   7718         (yyval.interm.intermNode) = 0;
   7719         if (parseContext.switchLevel.size() == 0)
   7720             parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", "");
   7721         else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
   7722             parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", "");
   7723         else {
   7724             parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case");
   7725             parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case");
   7726             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
   7727         }
   7728     }
   7729 #line 7730 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7730     break;
   7731 
   7732   case 426:
   7733 #line 2748 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7734     {
   7735         (yyval.interm.intermNode) = 0;
   7736         if (parseContext.switchLevel.size() == 0)
   7737             parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", "");
   7738         else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
   7739             parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", "");
   7740         else
   7741             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
   7742     }
   7743 #line 7744 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7744     break;
   7745 
   7746   case 427:
   7747 #line 2760 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7748     {
   7749         if (! parseContext.limits.whileLoops)
   7750             parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
   7751         parseContext.symbolTable.push();
   7752         ++parseContext.loopNestingLevel;
   7753         ++parseContext.statementNestingLevel;
   7754         ++parseContext.controlFlowNestingLevel;
   7755     }
   7756 #line 7757 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7757     break;
   7758 
   7759   case 428:
   7760 #line 2768 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7761     {
   7762         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
   7763         (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
   7764         --parseContext.loopNestingLevel;
   7765         --parseContext.statementNestingLevel;
   7766         --parseContext.controlFlowNestingLevel;
   7767     }
   7768 #line 7769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7769     break;
   7770 
   7771   case 429:
   7772 #line 2775 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7773     {
   7774         ++parseContext.loopNestingLevel;
   7775         ++parseContext.statementNestingLevel;
   7776         ++parseContext.controlFlowNestingLevel;
   7777     }
   7778 #line 7779 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7779     break;
   7780 
   7781   case 430:
   7782 #line 2780 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7783     {
   7784         if (! parseContext.limits.whileLoops)
   7785             parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
   7786 
   7787         parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode));
   7788 
   7789         (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc);
   7790         --parseContext.loopNestingLevel;
   7791         --parseContext.statementNestingLevel;
   7792         --parseContext.controlFlowNestingLevel;
   7793     }
   7794 #line 7795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7795     break;
   7796 
   7797   case 431:
   7798 #line 2791 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7799     {
   7800         parseContext.symbolTable.push();
   7801         ++parseContext.loopNestingLevel;
   7802         ++parseContext.statementNestingLevel;
   7803         ++parseContext.controlFlowNestingLevel;
   7804     }
   7805 #line 7806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7806     break;
   7807 
   7808   case 432:
   7809 #line 2797 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7810     {
   7811         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
   7812         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
   7813         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);
   7814         if (! parseContext.limits.nonInductiveForLoops)
   7815             parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop);
   7816         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc);
   7817         (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
   7818         --parseContext.loopNestingLevel;
   7819         --parseContext.statementNestingLevel;
   7820         --parseContext.controlFlowNestingLevel;
   7821     }
   7822 #line 7823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7823     break;
   7824 
   7825   case 433:
   7826 #line 2812 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7827     {
   7828         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   7829     }
   7830 #line 7831 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7831     break;
   7832 
   7833   case 434:
   7834 #line 2815 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7835     {
   7836         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   7837     }
   7838 #line 7839 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7839     break;
   7840 
   7841   case 435:
   7842 #line 2821 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7843     {
   7844         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
   7845     }
   7846 #line 7847 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7847     break;
   7848 
   7849   case 436:
   7850 #line 2824 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7851     {
   7852         (yyval.interm.intermTypedNode) = 0;
   7853     }
   7854 #line 7855 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7855     break;
   7856 
   7857   case 437:
   7858 #line 2830 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7859     {
   7860         (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
   7861         (yyval.interm.nodePair).node2 = 0;
   7862     }
   7863 #line 7864 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7864     break;
   7865 
   7866   case 438:
   7867 #line 2834 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7868     {
   7869         (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
   7870         (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
   7871     }
   7872 #line 7873 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7873     break;
   7874 
   7875   case 439:
   7876 #line 2841 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7877     {
   7878         if (parseContext.loopNestingLevel <= 0)
   7879             parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
   7880         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
   7881     }
   7882 #line 7883 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7883     break;
   7884 
   7885   case 440:
   7886 #line 2846 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7887     {
   7888         if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
   7889             parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
   7890         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
   7891     }
   7892 #line 7893 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7893     break;
   7894 
   7895   case 441:
   7896 #line 2851 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7897     {
   7898         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
   7899         if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
   7900             parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", "");
   7901         if (parseContext.inMain)
   7902             parseContext.postEntryPointReturn = true;
   7903     }
   7904 #line 7905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7905     break;
   7906 
   7907   case 442:
   7908 #line 2858 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7909     {
   7910         (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
   7911     }
   7912 #line 7913 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7913     break;
   7914 
   7915   case 443:
   7916 #line 2861 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7917     {
   7918         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
   7919         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
   7920     }
   7921 #line 7922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7922     break;
   7923 
   7924   case 444:
   7925 #line 2870 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7926     {
   7927         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   7928         parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
   7929     }
   7930 #line 7931 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7931     break;
   7932 
   7933   case 445:
   7934 #line 2874 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7935     {
   7936         if ((yyvsp[0].interm.intermNode) != nullptr) {
   7937             (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
   7938             parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
   7939         }
   7940     }
   7941 #line 7942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7942     break;
   7943 
   7944   case 446:
   7945 #line 2883 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7946     {
   7947         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   7948     }
   7949 #line 7950 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7950     break;
   7951 
   7952   case 447:
   7953 #line 2886 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7954     {
   7955         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
   7956     }
   7957 #line 7958 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7958     break;
   7959 
   7960   case 448:
   7961 #line 2889 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7962     {
   7963         parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
   7964         parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
   7965         (yyval.interm.intermNode) = nullptr;
   7966     }
   7967 #line 7968 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7968     break;
   7969 
   7970   case 449:
   7971 #line 2897 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7972     {
   7973         (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
   7974         (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
   7975     }
   7976 #line 7977 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7977     break;
   7978 
   7979   case 450:
   7980 #line 2901 "MachineIndependent/glslang.y" /* yacc.c:1646  */
   7981     {
   7982         //   May be best done as post process phase on intermediate code
   7983         if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
   7984             parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str());
   7985         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
   7986         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode));
   7987         parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc);
   7988         (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str());
   7989 
   7990         // store the pragma information for debug and optimize and other vendor specific
   7991         // information. This information can be queried from the parse tree
   7992         (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize);
   7993         (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
   7994         (yyval.interm.intermNode)->getAsAggregate()->addToPragmaTable(parseContext.contextPragma.pragmaTable);
   7995     }
   7996 #line 7997 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   7997     break;
   7998 
   7999 
   8000 #line 8001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
   8001       default: break;
   8002     }
   8003   /* User semantic actions sometimes alter yychar, and that requires
   8004      that yytoken be updated with the new translation.  We take the
   8005      approach of translating immediately before every use of yytoken.
   8006      One alternative is translating here after every semantic action,
   8007      but that translation would be missed if the semantic action invokes
   8008      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
   8009      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
   8010      incorrect destructor might then be invoked immediately.  In the
   8011      case of YYERROR or YYBACKUP, subsequent parser actions might lead
   8012      to an incorrect destructor call or verbose syntax error message
   8013      before the lookahead is translated.  */
   8014   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
   8015 
   8016   YYPOPSTACK (yylen);
   8017   yylen = 0;
   8018   YY_STACK_PRINT (yyss, yyssp);
   8019 
   8020   *++yyvsp = yyval;
   8021 
   8022   /* Now 'shift' the result of the reduction.  Determine what state
   8023      that goes to, based on the state we popped back to and the rule
   8024      number reduced by.  */
   8025 
   8026   yyn = yyr1[yyn];
   8027 
   8028   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
   8029   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
   8030     yystate = yytable[yystate];
   8031   else
   8032     yystate = yydefgoto[yyn - YYNTOKENS];
   8033 
   8034   goto yynewstate;
   8035 
   8036 
   8037 /*--------------------------------------.
   8038 | yyerrlab -- here on detecting error.  |
   8039 `--------------------------------------*/
   8040 yyerrlab:
   8041   /* Make sure we have latest lookahead translation.  See comments at
   8042      user semantic actions for why this is necessary.  */
   8043   yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
   8044 
   8045   /* If not already recovering from an error, report this error.  */
   8046   if (!yyerrstatus)
   8047     {
   8048       ++yynerrs;
   8049 #if ! YYERROR_VERBOSE
   8050       yyerror (pParseContext, YY_("syntax error"));
   8051 #else
   8052 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
   8053                                         yyssp, yytoken)
   8054       {
   8055         char const *yymsgp = YY_("syntax error");
   8056         int yysyntax_error_status;
   8057         yysyntax_error_status = YYSYNTAX_ERROR;
   8058         if (yysyntax_error_status == 0)
   8059           yymsgp = yymsg;
   8060         else if (yysyntax_error_status == 1)
   8061           {
   8062             if (yymsg != yymsgbuf)
   8063               YYSTACK_FREE (yymsg);
   8064             yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
   8065             if (!yymsg)
   8066               {
   8067                 yymsg = yymsgbuf;
   8068                 yymsg_alloc = sizeof yymsgbuf;
   8069                 yysyntax_error_status = 2;
   8070               }
   8071             else
   8072               {
   8073                 yysyntax_error_status = YYSYNTAX_ERROR;
   8074                 yymsgp = yymsg;
   8075               }
   8076           }
   8077         yyerror (pParseContext, yymsgp);
   8078         if (yysyntax_error_status == 2)
   8079           goto yyexhaustedlab;
   8080       }
   8081 # undef YYSYNTAX_ERROR
   8082 #endif
   8083     }
   8084 
   8085 
   8086 
   8087   if (yyerrstatus == 3)
   8088     {
   8089       /* If just tried and failed to reuse lookahead token after an
   8090          error, discard it.  */
   8091 
   8092       if (yychar <= YYEOF)
   8093         {
   8094           /* Return failure if at end of input.  */
   8095           if (yychar == YYEOF)
   8096             YYABORT;
   8097         }
   8098       else
   8099         {
   8100           yydestruct ("Error: discarding",
   8101                       yytoken, &yylval, pParseContext);
   8102           yychar = YYEMPTY;
   8103         }
   8104     }
   8105 
   8106   /* Else will try to reuse lookahead token after shifting the error
   8107      token.  */
   8108   goto yyerrlab1;
   8109 
   8110 
   8111 /*---------------------------------------------------.
   8112 | yyerrorlab -- error raised explicitly by YYERROR.  |
   8113 `---------------------------------------------------*/
   8114 yyerrorlab:
   8115 
   8116   /* Pacify compilers like GCC when the user code never invokes
   8117      YYERROR and the label yyerrorlab therefore never appears in user
   8118      code.  */
   8119   if (/*CONSTCOND*/ 0)
   8120      goto yyerrorlab;
   8121 
   8122   /* Do not reclaim the symbols of the rule whose action triggered
   8123      this YYERROR.  */
   8124   YYPOPSTACK (yylen);
   8125   yylen = 0;
   8126   YY_STACK_PRINT (yyss, yyssp);
   8127   yystate = *yyssp;
   8128   goto yyerrlab1;
   8129 
   8130 
   8131 /*-------------------------------------------------------------.
   8132 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
   8133 `-------------------------------------------------------------*/
   8134 yyerrlab1:
   8135   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
   8136 
   8137   for (;;)
   8138     {
   8139       yyn = yypact[yystate];
   8140       if (!yypact_value_is_default (yyn))
   8141         {
   8142           yyn += YYTERROR;
   8143           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
   8144             {
   8145               yyn = yytable[yyn];
   8146               if (0 < yyn)
   8147                 break;
   8148             }
   8149         }
   8150 
   8151       /* Pop the current state because it cannot handle the error token.  */
   8152       if (yyssp == yyss)
   8153         YYABORT;
   8154 
   8155 
   8156       yydestruct ("Error: popping",
   8157                   yystos[yystate], yyvsp, pParseContext);
   8158       YYPOPSTACK (1);
   8159       yystate = *yyssp;
   8160       YY_STACK_PRINT (yyss, yyssp);
   8161     }
   8162 
   8163   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   8164   *++yyvsp = yylval;
   8165   YY_IGNORE_MAYBE_UNINITIALIZED_END
   8166 
   8167 
   8168   /* Shift the error token.  */
   8169   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
   8170 
   8171   yystate = yyn;
   8172   goto yynewstate;
   8173 
   8174 
   8175 /*-------------------------------------.
   8176 | yyacceptlab -- YYACCEPT comes here.  |
   8177 `-------------------------------------*/
   8178 yyacceptlab:
   8179   yyresult = 0;
   8180   goto yyreturn;
   8181 
   8182 /*-----------------------------------.
   8183 | yyabortlab -- YYABORT comes here.  |
   8184 `-----------------------------------*/
   8185 yyabortlab:
   8186   yyresult = 1;
   8187   goto yyreturn;
   8188 
   8189 #if !defined yyoverflow || YYERROR_VERBOSE
   8190 /*-------------------------------------------------.
   8191 | yyexhaustedlab -- memory exhaustion comes here.  |
   8192 `-------------------------------------------------*/
   8193 yyexhaustedlab:
   8194   yyerror (pParseContext, YY_("memory exhausted"));
   8195   yyresult = 2;
   8196   /* Fall through.  */
   8197 #endif
   8198 
   8199 yyreturn:
   8200   if (yychar != YYEMPTY)
   8201     {
   8202       /* Make sure we have latest lookahead translation.  See comments at
   8203          user semantic actions for why this is necessary.  */
   8204       yytoken = YYTRANSLATE (yychar);
   8205       yydestruct ("Cleanup: discarding lookahead",
   8206                   yytoken, &yylval, pParseContext);
   8207     }
   8208   /* Do not reclaim the symbols of the rule whose action triggered
   8209      this YYABORT or YYACCEPT.  */
   8210   YYPOPSTACK (yylen);
   8211   YY_STACK_PRINT (yyss, yyssp);
   8212   while (yyssp != yyss)
   8213     {
   8214       yydestruct ("Cleanup: popping",
   8215                   yystos[*yyssp], yyvsp, pParseContext);
   8216       YYPOPSTACK (1);
   8217     }
   8218 #ifndef yyoverflow
   8219   if (yyss != yyssa)
   8220     YYSTACK_FREE (yyss);
   8221 #endif
   8222 #if YYERROR_VERBOSE
   8223   if (yymsg != yymsgbuf)
   8224     YYSTACK_FREE (yymsg);
   8225 #endif
   8226   return yyresult;
   8227 }
   8228 #line 2918 "MachineIndependent/glslang.y" /* yacc.c:1906  */
   8229 
   8230