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 43 "MachineIndependent/glslang.y" /* yacc.c:339  */
66 
67 
68 /* Based on:
69 ANSI C Yacc grammar
70 
71 In 1985, Jeff Lee published his Yacc grammar (which is accompanied by a
72 matching Lex specification) for the April 30, 1985 draft version of the
73 ANSI C standard.  Tom Stockfisch reposted it to net.sources in 1987; that
74 original, as mentioned in the answer to question 17.25 of the comp.lang.c
75 FAQ, can be ftp'ed from ftp.uu.net, file usenet/net.sources/ansi.c.grammar.Z.
76 
77 I intend to keep this version as close to the current C Standard grammar as
78 possible; please let me know if you discover discrepancies.
79 
80 Jutta Degener, 1995
81 */
82 
83 #include "SymbolTable.h"
84 #include "ParseHelper.h"
85 #include "../Public/ShaderLang.h"
86 #include "attribute.h"
87 
88 using namespace glslang;
89 
90 
91 #line 92 "MachineIndependent/glslang_tab.cpp" /* yacc.c:339  */
92 
93 # ifndef YY_NULLPTR
94 #  if defined __cplusplus && 201103L <= __cplusplus
95 #   define YY_NULLPTR nullptr
96 #  else
97 #   define YY_NULLPTR 0
98 #  endif
99 # endif
100 
101 /* Enabling verbose error messages.  */
102 #ifdef YYERROR_VERBOSE
103 # undef YYERROR_VERBOSE
104 # define YYERROR_VERBOSE 1
105 #else
106 # define YYERROR_VERBOSE 1
107 #endif
108 
109 /* In a future release of Bison, this section will be replaced
110    by #include "glslang_tab.cpp.h".  */
111 #ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
112 # define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
113 /* Debug traces.  */
114 #ifndef YYDEBUG
115 # define YYDEBUG 1
116 #endif
117 #if YYDEBUG
118 extern int yydebug;
119 #endif
120 
121 /* Token type.  */
122 #ifndef YYTOKENTYPE
123 # define YYTOKENTYPE
124   enum yytokentype
125   {
126     ATTRIBUTE = 258,
127     VARYING = 259,
128     FLOAT16_T = 260,
129     FLOAT = 261,
130     FLOAT32_T = 262,
131     DOUBLE = 263,
132     FLOAT64_T = 264,
133     CONST = 265,
134     BOOL = 266,
135     INT = 267,
136     UINT = 268,
137     INT64_T = 269,
138     UINT64_T = 270,
139     INT32_T = 271,
140     UINT32_T = 272,
141     INT16_T = 273,
142     UINT16_T = 274,
143     INT8_T = 275,
144     UINT8_T = 276,
145     BREAK = 277,
146     CONTINUE = 278,
147     DO = 279,
148     ELSE = 280,
149     FOR = 281,
150     IF = 282,
151     DISCARD = 283,
152     RETURN = 284,
153     SWITCH = 285,
154     CASE = 286,
155     DEFAULT = 287,
156     SUBROUTINE = 288,
157     BVEC2 = 289,
158     BVEC3 = 290,
159     BVEC4 = 291,
160     IVEC2 = 292,
161     IVEC3 = 293,
162     IVEC4 = 294,
163     UVEC2 = 295,
164     UVEC3 = 296,
165     UVEC4 = 297,
166     I64VEC2 = 298,
167     I64VEC3 = 299,
168     I64VEC4 = 300,
169     U64VEC2 = 301,
170     U64VEC3 = 302,
171     U64VEC4 = 303,
172     I32VEC2 = 304,
173     I32VEC3 = 305,
174     I32VEC4 = 306,
175     U32VEC2 = 307,
176     U32VEC3 = 308,
177     U32VEC4 = 309,
178     I16VEC2 = 310,
179     I16VEC3 = 311,
180     I16VEC4 = 312,
181     U16VEC2 = 313,
182     U16VEC3 = 314,
183     U16VEC4 = 315,
184     I8VEC2 = 316,
185     I8VEC3 = 317,
186     I8VEC4 = 318,
187     U8VEC2 = 319,
188     U8VEC3 = 320,
189     U8VEC4 = 321,
190     VEC2 = 322,
191     VEC3 = 323,
192     VEC4 = 324,
193     MAT2 = 325,
194     MAT3 = 326,
195     MAT4 = 327,
196     CENTROID = 328,
197     IN = 329,
198     OUT = 330,
199     INOUT = 331,
200     UNIFORM = 332,
201     PATCH = 333,
202     SAMPLE = 334,
203     BUFFER = 335,
204     SHARED = 336,
205     NONUNIFORM = 337,
206     PAYLOADNV = 338,
207     PAYLOADINNV = 339,
208     HITATTRNV = 340,
209     CALLDATANV = 341,
210     CALLDATAINNV = 342,
211     COHERENT = 343,
212     VOLATILE = 344,
213     RESTRICT = 345,
214     READONLY = 346,
215     WRITEONLY = 347,
216     DEVICECOHERENT = 348,
217     QUEUEFAMILYCOHERENT = 349,
218     WORKGROUPCOHERENT = 350,
219     SUBGROUPCOHERENT = 351,
220     NONPRIVATE = 352,
221     DVEC2 = 353,
222     DVEC3 = 354,
223     DVEC4 = 355,
224     DMAT2 = 356,
225     DMAT3 = 357,
226     DMAT4 = 358,
227     F16VEC2 = 359,
228     F16VEC3 = 360,
229     F16VEC4 = 361,
230     F16MAT2 = 362,
231     F16MAT3 = 363,
232     F16MAT4 = 364,
233     F32VEC2 = 365,
234     F32VEC3 = 366,
235     F32VEC4 = 367,
236     F32MAT2 = 368,
237     F32MAT3 = 369,
238     F32MAT4 = 370,
239     F64VEC2 = 371,
240     F64VEC3 = 372,
241     F64VEC4 = 373,
242     F64MAT2 = 374,
243     F64MAT3 = 375,
244     F64MAT4 = 376,
245     NOPERSPECTIVE = 377,
246     FLAT = 378,
247     SMOOTH = 379,
248     LAYOUT = 380,
249     EXPLICITINTERPAMD = 381,
250     PERVERTEXNV = 382,
251     PERPRIMITIVENV = 383,
252     PERVIEWNV = 384,
253     PERTASKNV = 385,
254     MAT2X2 = 386,
255     MAT2X3 = 387,
256     MAT2X4 = 388,
257     MAT3X2 = 389,
258     MAT3X3 = 390,
259     MAT3X4 = 391,
260     MAT4X2 = 392,
261     MAT4X3 = 393,
262     MAT4X4 = 394,
263     DMAT2X2 = 395,
264     DMAT2X3 = 396,
265     DMAT2X4 = 397,
266     DMAT3X2 = 398,
267     DMAT3X3 = 399,
268     DMAT3X4 = 400,
269     DMAT4X2 = 401,
270     DMAT4X3 = 402,
271     DMAT4X4 = 403,
272     F16MAT2X2 = 404,
273     F16MAT2X3 = 405,
274     F16MAT2X4 = 406,
275     F16MAT3X2 = 407,
276     F16MAT3X3 = 408,
277     F16MAT3X4 = 409,
278     F16MAT4X2 = 410,
279     F16MAT4X3 = 411,
280     F16MAT4X4 = 412,
281     F32MAT2X2 = 413,
282     F32MAT2X3 = 414,
283     F32MAT2X4 = 415,
284     F32MAT3X2 = 416,
285     F32MAT3X3 = 417,
286     F32MAT3X4 = 418,
287     F32MAT4X2 = 419,
288     F32MAT4X3 = 420,
289     F32MAT4X4 = 421,
290     F64MAT2X2 = 422,
291     F64MAT2X3 = 423,
292     F64MAT2X4 = 424,
293     F64MAT3X2 = 425,
294     F64MAT3X3 = 426,
295     F64MAT3X4 = 427,
296     F64MAT4X2 = 428,
297     F64MAT4X3 = 429,
298     F64MAT4X4 = 430,
299     ATOMIC_UINT = 431,
300     ACCSTRUCTNV = 432,
301     FCOOPMATNV = 433,
302     SAMPLER1D = 434,
303     SAMPLER2D = 435,
304     SAMPLER3D = 436,
305     SAMPLERCUBE = 437,
306     SAMPLER1DSHADOW = 438,
307     SAMPLER2DSHADOW = 439,
308     SAMPLERCUBESHADOW = 440,
309     SAMPLER1DARRAY = 441,
310     SAMPLER2DARRAY = 442,
311     SAMPLER1DARRAYSHADOW = 443,
312     SAMPLER2DARRAYSHADOW = 444,
313     ISAMPLER1D = 445,
314     ISAMPLER2D = 446,
315     ISAMPLER3D = 447,
316     ISAMPLERCUBE = 448,
317     ISAMPLER1DARRAY = 449,
318     ISAMPLER2DARRAY = 450,
319     USAMPLER1D = 451,
320     USAMPLER2D = 452,
321     USAMPLER3D = 453,
322     USAMPLERCUBE = 454,
323     USAMPLER1DARRAY = 455,
324     USAMPLER2DARRAY = 456,
325     SAMPLER2DRECT = 457,
326     SAMPLER2DRECTSHADOW = 458,
327     ISAMPLER2DRECT = 459,
328     USAMPLER2DRECT = 460,
329     SAMPLERBUFFER = 461,
330     ISAMPLERBUFFER = 462,
331     USAMPLERBUFFER = 463,
332     SAMPLERCUBEARRAY = 464,
333     SAMPLERCUBEARRAYSHADOW = 465,
334     ISAMPLERCUBEARRAY = 466,
335     USAMPLERCUBEARRAY = 467,
336     SAMPLER2DMS = 468,
337     ISAMPLER2DMS = 469,
338     USAMPLER2DMS = 470,
339     SAMPLER2DMSARRAY = 471,
340     ISAMPLER2DMSARRAY = 472,
341     USAMPLER2DMSARRAY = 473,
342     SAMPLEREXTERNALOES = 474,
343     SAMPLEREXTERNAL2DY2YEXT = 475,
344     F16SAMPLER1D = 476,
345     F16SAMPLER2D = 477,
346     F16SAMPLER3D = 478,
347     F16SAMPLER2DRECT = 479,
348     F16SAMPLERCUBE = 480,
349     F16SAMPLER1DARRAY = 481,
350     F16SAMPLER2DARRAY = 482,
351     F16SAMPLERCUBEARRAY = 483,
352     F16SAMPLERBUFFER = 484,
353     F16SAMPLER2DMS = 485,
354     F16SAMPLER2DMSARRAY = 486,
355     F16SAMPLER1DSHADOW = 487,
356     F16SAMPLER2DSHADOW = 488,
357     F16SAMPLER1DARRAYSHADOW = 489,
358     F16SAMPLER2DARRAYSHADOW = 490,
359     F16SAMPLER2DRECTSHADOW = 491,
360     F16SAMPLERCUBESHADOW = 492,
361     F16SAMPLERCUBEARRAYSHADOW = 493,
362     SAMPLER = 494,
363     SAMPLERSHADOW = 495,
364     TEXTURE1D = 496,
365     TEXTURE2D = 497,
366     TEXTURE3D = 498,
367     TEXTURECUBE = 499,
368     TEXTURE1DARRAY = 500,
369     TEXTURE2DARRAY = 501,
370     ITEXTURE1D = 502,
371     ITEXTURE2D = 503,
372     ITEXTURE3D = 504,
373     ITEXTURECUBE = 505,
374     ITEXTURE1DARRAY = 506,
375     ITEXTURE2DARRAY = 507,
376     UTEXTURE1D = 508,
377     UTEXTURE2D = 509,
378     UTEXTURE3D = 510,
379     UTEXTURECUBE = 511,
380     UTEXTURE1DARRAY = 512,
381     UTEXTURE2DARRAY = 513,
382     TEXTURE2DRECT = 514,
383     ITEXTURE2DRECT = 515,
384     UTEXTURE2DRECT = 516,
385     TEXTUREBUFFER = 517,
386     ITEXTUREBUFFER = 518,
387     UTEXTUREBUFFER = 519,
388     TEXTURECUBEARRAY = 520,
389     ITEXTURECUBEARRAY = 521,
390     UTEXTURECUBEARRAY = 522,
391     TEXTURE2DMS = 523,
392     ITEXTURE2DMS = 524,
393     UTEXTURE2DMS = 525,
394     TEXTURE2DMSARRAY = 526,
395     ITEXTURE2DMSARRAY = 527,
396     UTEXTURE2DMSARRAY = 528,
397     F16TEXTURE1D = 529,
398     F16TEXTURE2D = 530,
399     F16TEXTURE3D = 531,
400     F16TEXTURE2DRECT = 532,
401     F16TEXTURECUBE = 533,
402     F16TEXTURE1DARRAY = 534,
403     F16TEXTURE2DARRAY = 535,
404     F16TEXTURECUBEARRAY = 536,
405     F16TEXTUREBUFFER = 537,
406     F16TEXTURE2DMS = 538,
407     F16TEXTURE2DMSARRAY = 539,
408     SUBPASSINPUT = 540,
409     SUBPASSINPUTMS = 541,
410     ISUBPASSINPUT = 542,
411     ISUBPASSINPUTMS = 543,
412     USUBPASSINPUT = 544,
413     USUBPASSINPUTMS = 545,
414     F16SUBPASSINPUT = 546,
415     F16SUBPASSINPUTMS = 547,
416     IMAGE1D = 548,
417     IIMAGE1D = 549,
418     UIMAGE1D = 550,
419     IMAGE2D = 551,
420     IIMAGE2D = 552,
421     UIMAGE2D = 553,
422     IMAGE3D = 554,
423     IIMAGE3D = 555,
424     UIMAGE3D = 556,
425     IMAGE2DRECT = 557,
426     IIMAGE2DRECT = 558,
427     UIMAGE2DRECT = 559,
428     IMAGECUBE = 560,
429     IIMAGECUBE = 561,
430     UIMAGECUBE = 562,
431     IMAGEBUFFER = 563,
432     IIMAGEBUFFER = 564,
433     UIMAGEBUFFER = 565,
434     IMAGE1DARRAY = 566,
435     IIMAGE1DARRAY = 567,
436     UIMAGE1DARRAY = 568,
437     IMAGE2DARRAY = 569,
438     IIMAGE2DARRAY = 570,
439     UIMAGE2DARRAY = 571,
440     IMAGECUBEARRAY = 572,
441     IIMAGECUBEARRAY = 573,
442     UIMAGECUBEARRAY = 574,
443     IMAGE2DMS = 575,
444     IIMAGE2DMS = 576,
445     UIMAGE2DMS = 577,
446     IMAGE2DMSARRAY = 578,
447     IIMAGE2DMSARRAY = 579,
448     UIMAGE2DMSARRAY = 580,
449     F16IMAGE1D = 581,
450     F16IMAGE2D = 582,
451     F16IMAGE3D = 583,
452     F16IMAGE2DRECT = 584,
453     F16IMAGECUBE = 585,
454     F16IMAGE1DARRAY = 586,
455     F16IMAGE2DARRAY = 587,
456     F16IMAGECUBEARRAY = 588,
457     F16IMAGEBUFFER = 589,
458     F16IMAGE2DMS = 590,
459     F16IMAGE2DMSARRAY = 591,
460     STRUCT = 592,
461     VOID = 593,
462     WHILE = 594,
463     IDENTIFIER = 595,
464     TYPE_NAME = 596,
465     FLOATCONSTANT = 597,
466     DOUBLECONSTANT = 598,
467     INT16CONSTANT = 599,
468     UINT16CONSTANT = 600,
469     INT32CONSTANT = 601,
470     UINT32CONSTANT = 602,
471     INTCONSTANT = 603,
472     UINTCONSTANT = 604,
473     INT64CONSTANT = 605,
474     UINT64CONSTANT = 606,
475     BOOLCONSTANT = 607,
476     FLOAT16CONSTANT = 608,
477     LEFT_OP = 609,
478     RIGHT_OP = 610,
479     INC_OP = 611,
480     DEC_OP = 612,
481     LE_OP = 613,
482     GE_OP = 614,
483     EQ_OP = 615,
484     NE_OP = 616,
485     AND_OP = 617,
486     OR_OP = 618,
487     XOR_OP = 619,
488     MUL_ASSIGN = 620,
489     DIV_ASSIGN = 621,
490     ADD_ASSIGN = 622,
491     MOD_ASSIGN = 623,
492     LEFT_ASSIGN = 624,
493     RIGHT_ASSIGN = 625,
494     AND_ASSIGN = 626,
495     XOR_ASSIGN = 627,
496     OR_ASSIGN = 628,
497     SUB_ASSIGN = 629,
498     LEFT_PAREN = 630,
499     RIGHT_PAREN = 631,
500     LEFT_BRACKET = 632,
501     RIGHT_BRACKET = 633,
502     LEFT_BRACE = 634,
503     RIGHT_BRACE = 635,
504     DOT = 636,
505     COMMA = 637,
506     COLON = 638,
507     EQUAL = 639,
508     SEMICOLON = 640,
509     BANG = 641,
510     DASH = 642,
511     TILDE = 643,
512     PLUS = 644,
513     STAR = 645,
514     SLASH = 646,
515     PERCENT = 647,
516     LEFT_ANGLE = 648,
517     RIGHT_ANGLE = 649,
518     VERTICAL_BAR = 650,
519     CARET = 651,
520     AMPERSAND = 652,
521     QUESTION = 653,
522     INVARIANT = 654,
523     PRECISE = 655,
524     HIGH_PRECISION = 656,
525     MEDIUM_PRECISION = 657,
526     LOW_PRECISION = 658,
527     PRECISION = 659,
528     PACKED = 660,
529     RESOURCE = 661,
530     SUPERP = 662
531   };
532 #endif
533 
534 /* Value type.  */
535 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
536 
537 union YYSTYPE
538 {
539 #line 71 "MachineIndependent/glslang.y" /* yacc.c:355  */
540 
541     struct {
542         glslang::TSourceLoc loc;
543         union {
544             glslang::TString *string;
545             int i;
546             unsigned int u;
547             long long i64;
548             unsigned long long u64;
549             bool b;
550             double d;
551         };
552         glslang::TSymbol* symbol;
553     } lex;
554     struct {
555         glslang::TSourceLoc loc;
556         glslang::TOperator op;
557         union {
558             TIntermNode* intermNode;
559             glslang::TIntermNodePair nodePair;
560             glslang::TIntermTyped* intermTypedNode;
561             glslang::TAttributes* attributes;
562         };
563         union {
564             glslang::TPublicType type;
565             glslang::TFunction* function;
566             glslang::TParameter param;
567             glslang::TTypeLoc typeLine;
568             glslang::TTypeList* typeList;
569             glslang::TArraySizes* arraySizes;
570             glslang::TIdentifierList* identifierList;
571         };
572         glslang::TArraySizes* typeParameters;
573     } interm;
574 
575 #line 576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355  */
576 };
577 
578 typedef union YYSTYPE YYSTYPE;
579 # define YYSTYPE_IS_TRIVIAL 1
580 # define YYSTYPE_IS_DECLARED 1
581 #endif
582 
583 
584 
585 int yyparse (glslang::TParseContext* pParseContext);
586 
587 #endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED  */
588 
589 /* Copy the second part of user declarations.  */
590 #line 107 "MachineIndependent/glslang.y" /* yacc.c:358  */
591 
592 
593 /* windows only pragma */
594 #ifdef _MSC_VER
595     #pragma warning(disable : 4065)
596     #pragma warning(disable : 4127)
597     #pragma warning(disable : 4244)
598 #endif
599 
600 #define parseContext (*pParseContext)
601 #define yyerror(context, msg) context->parserError(msg)
602 
603 extern int yylex(YYSTYPE*, TParseContext&);
604 
605 
606 #line 607 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358  */
607 
608 #ifdef short
609 # undef short
610 #endif
611 
612 #ifdef YYTYPE_UINT8
613 typedef YYTYPE_UINT8 yytype_uint8;
614 #else
615 typedef unsigned char yytype_uint8;
616 #endif
617 
618 #ifdef YYTYPE_INT8
619 typedef YYTYPE_INT8 yytype_int8;
620 #else
621 typedef signed char yytype_int8;
622 #endif
623 
624 #ifdef YYTYPE_UINT16
625 typedef YYTYPE_UINT16 yytype_uint16;
626 #else
627 typedef unsigned short int yytype_uint16;
628 #endif
629 
630 #ifdef YYTYPE_INT16
631 typedef YYTYPE_INT16 yytype_int16;
632 #else
633 typedef short int yytype_int16;
634 #endif
635 
636 #ifndef YYSIZE_T
637 # ifdef __SIZE_TYPE__
638 #  define YYSIZE_T __SIZE_TYPE__
639 # elif defined size_t
640 #  define YYSIZE_T size_t
641 # elif ! defined YYSIZE_T
642 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
643 #  define YYSIZE_T size_t
644 # else
645 #  define YYSIZE_T unsigned int
646 # endif
647 #endif
648 
649 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
650 
651 #ifndef YY_
652 # if defined YYENABLE_NLS && YYENABLE_NLS
653 #  if ENABLE_NLS
654 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
655 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
656 #  endif
657 # endif
658 # ifndef YY_
659 #  define YY_(Msgid) Msgid
660 # endif
661 #endif
662 
663 #ifndef YY_ATTRIBUTE
664 # if (defined __GNUC__                                               \
665       && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
666      || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
667 #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
668 # else
669 #  define YY_ATTRIBUTE(Spec) /* empty */
670 # endif
671 #endif
672 
673 #ifndef YY_ATTRIBUTE_PURE
674 # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
675 #endif
676 
677 #ifndef YY_ATTRIBUTE_UNUSED
678 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
679 #endif
680 
681 #if !defined _Noreturn \
682      && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
683 # if defined _MSC_VER && 1200 <= _MSC_VER
684 #  define _Noreturn __declspec (noreturn)
685 # else
686 #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
687 # endif
688 #endif
689 
690 /* Suppress unused-variable warnings by "using" E.  */
691 #if ! defined lint || defined __GNUC__
692 # define YYUSE(E) ((void) (E))
693 #else
694 # define YYUSE(E) /* empty */
695 #endif
696 
697 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
698 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
699 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
700     _Pragma ("GCC diagnostic push") \
701     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
702     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
703 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
704     _Pragma ("GCC diagnostic pop")
705 #else
706 # define YY_INITIAL_VALUE(Value) Value
707 #endif
708 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
709 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
710 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
711 #endif
712 #ifndef YY_INITIAL_VALUE
713 # define YY_INITIAL_VALUE(Value) /* Nothing. */
714 #endif
715 
716 
717 #if ! defined yyoverflow || YYERROR_VERBOSE
718 
719 /* The parser invokes alloca or malloc; define the necessary symbols.  */
720 
721 # ifdef YYSTACK_USE_ALLOCA
722 #  if YYSTACK_USE_ALLOCA
723 #   ifdef __GNUC__
724 #    define YYSTACK_ALLOC __builtin_alloca
725 #   elif defined __BUILTIN_VA_ARG_INCR
726 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
727 #   elif defined _AIX
728 #    define YYSTACK_ALLOC __alloca
729 #   elif defined _MSC_VER
730 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
731 #    define alloca _alloca
732 #   else
733 #    define YYSTACK_ALLOC alloca
734 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
735 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
736       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
737 #     ifndef EXIT_SUCCESS
738 #      define EXIT_SUCCESS 0
739 #     endif
740 #    endif
741 #   endif
742 #  endif
743 # endif
744 
745 # ifdef YYSTACK_ALLOC
746    /* Pacify GCC's 'empty if-body' warning.  */
747 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
748 #  ifndef YYSTACK_ALLOC_MAXIMUM
749     /* The OS might guarantee only one guard page at the bottom of the stack,
750        and a page size can be as small as 4096 bytes.  So we cannot safely
751        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
752        to allow for a few compiler-allocated temporary stack slots.  */
753 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
754 #  endif
755 # else
756 #  define YYSTACK_ALLOC YYMALLOC
757 #  define YYSTACK_FREE YYFREE
758 #  ifndef YYSTACK_ALLOC_MAXIMUM
759 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
760 #  endif
761 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
762        && ! ((defined YYMALLOC || defined malloc) \
763              && (defined YYFREE || defined free)))
764 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
765 #   ifndef EXIT_SUCCESS
766 #    define EXIT_SUCCESS 0
767 #   endif
768 #  endif
769 #  ifndef YYMALLOC
770 #   define YYMALLOC malloc
771 #   if ! defined malloc && ! defined EXIT_SUCCESS
772 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
773 #   endif
774 #  endif
775 #  ifndef YYFREE
776 #   define YYFREE free
777 #   if ! defined free && ! defined EXIT_SUCCESS
778 void free (void *); /* INFRINGES ON USER NAME SPACE */
779 #   endif
780 #  endif
781 # endif
782 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
783 
784 
785 #if (! defined yyoverflow \
786      && (! defined __cplusplus \
787          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
788 
789 /* A type that is properly aligned for any stack member.  */
790 union yyalloc
791 {
792   yytype_int16 yyss_alloc;
793   YYSTYPE yyvs_alloc;
794 };
795 
796 /* The size of the maximum gap between one aligned stack and the next.  */
797 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
798 
799 /* The size of an array large to enough to hold all stacks, each with
800    N elements.  */
801 # define YYSTACK_BYTES(N) \
802      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
803       + YYSTACK_GAP_MAXIMUM)
804 
805 # define YYCOPY_NEEDED 1
806 
807 /* Relocate STACK from its old location to the new one.  The
808    local variables YYSIZE and YYSTACKSIZE give the old and new number of
809    elements in the stack, and YYPTR gives the new location of the
810    stack.  Advance YYPTR to a properly aligned location for the next
811    stack.  */
812 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
813     do                                                                  \
814       {                                                                 \
815         YYSIZE_T yynewbytes;                                            \
816         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
817         Stack = &yyptr->Stack_alloc;                                    \
818         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
819         yyptr += yynewbytes / sizeof (*yyptr);                          \
820       }                                                                 \
821     while (0)
822 
823 #endif
824 
825 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
826 /* Copy COUNT objects from SRC to DST.  The source and destination do
827    not overlap.  */
828 # ifndef YYCOPY
829 #  if defined __GNUC__ && 1 < __GNUC__
830 #   define YYCOPY(Dst, Src, Count) \
831       __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
832 #  else
833 #   define YYCOPY(Dst, Src, Count)              \
834       do                                        \
835         {                                       \
836           YYSIZE_T yyi;                         \
837           for (yyi = 0; yyi < (Count); yyi++)   \
838             (Dst)[yyi] = (Src)[yyi];            \
839         }                                       \
840       while (0)
841 #  endif
842 # endif
843 #endif /* !YYCOPY_NEEDED */
844 
845 /* YYFINAL -- State number of the termination state.  */
846 #define YYFINAL  384
847 /* YYLAST -- Last index in YYTABLE.  */
848 #define YYLAST   9348
849 
850 /* YYNTOKENS -- Number of terminals.  */
851 #define YYNTOKENS  408
852 /* YYNNTS -- Number of nonterminals.  */
853 #define YYNNTS  110
854 /* YYNRULES -- Number of rules.  */
855 #define YYNRULES  578
856 /* YYNSTATES -- Number of states.  */
857 #define YYNSTATES  722
858 
859 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
860    by yylex, with out-of-bounds checking.  */
861 #define YYUNDEFTOK  2
862 #define YYMAXUTOK   662
863 
864 #define YYTRANSLATE(YYX)                                                \
865   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
866 
867 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
868    as returned by yylex, without out-of-bounds checking.  */
869 static const yytype_uint16 yytranslate[] =
870 {
871        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
872        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
873        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
874        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
875        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
876        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
877        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
878        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
879        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
880        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
881        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
882        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
883        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
884        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
885        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
886        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
887        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
888        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
889        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
890        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
891        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
892        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
893        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
894        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
895        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
896        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
897        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
898       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
899       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
900       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
901       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
902       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
903       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
904       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
905       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
906       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
907      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
908      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
909      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
910      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
911      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
912      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
913      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
914      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
915      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
916      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
917      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
918      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
919      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
920      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
921      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
922      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
923      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
924      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
925      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
926      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
927      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
928      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
929      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
930      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
931      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
932      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
933      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
934      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
935      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
936      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
937      405,   406,   407
938 };
939 
940 #if YYDEBUG
941   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
942 static const yytype_uint16 yyrline[] =
943 {
944        0,   302,   302,   308,   311,   315,   319,   322,   326,   330,
945      334,   338,   342,   345,   349,   353,   356,   364,   367,   370,
946      373,   376,   381,   389,   396,   403,   409,   413,   420,   423,
947      429,   436,   446,   454,   459,   486,   494,   500,   504,   508,
948      528,   529,   530,   531,   537,   538,   543,   548,   557,   558,
949      563,   571,   572,   578,   587,   588,   593,   598,   603,   611,
950      612,   621,   633,   634,   643,   644,   653,   654,   663,   664,
951      672,   673,   681,   682,   690,   691,   691,   709,   710,   726,
952      730,   734,   738,   743,   747,   751,   755,   759,   763,   767,
953      774,   777,   788,   795,   800,   805,   813,   817,   821,   825,
954      830,   835,   844,   844,   855,   859,   866,   873,   876,   883,
955      891,   911,   934,   949,   974,   985,   995,  1005,  1015,  1024,
956     1027,  1031,  1035,  1040,  1048,  1053,  1058,  1063,  1068,  1077,
957     1088,  1115,  1124,  1131,  1138,  1149,  1158,  1168,  1180,  1189,
958     1201,  1207,  1210,  1217,  1221,  1225,  1233,  1242,  1245,  1256,
959     1259,  1262,  1266,  1270,  1274,  1278,  1284,  1288,  1300,  1314,
960     1319,  1325,  1331,  1338,  1344,  1349,  1354,  1359,  1369,  1379,
961     1389,  1399,  1408,  1420,  1424,  1429,  1434,  1439,  1444,  1449,
962     1453,  1457,  1461,  1465,  1471,  1480,  1487,  1490,  1498,  1503,
963     1513,  1518,  1526,  1530,  1540,  1543,  1549,  1555,  1562,  1572,
964     1576,  1580,  1585,  1590,  1595,  1600,  1604,  1609,  1614,  1619,
965     1624,  1629,  1634,  1639,  1644,  1649,  1653,  1658,  1663,  1668,
966     1674,  1680,  1686,  1692,  1698,  1704,  1710,  1716,  1722,  1728,
967     1734,  1740,  1745,  1750,  1755,  1760,  1765,  1770,  1776,  1782,
968     1788,  1794,  1800,  1806,  1812,  1818,  1824,  1830,  1836,  1842,
969     1848,  1854,  1860,  1866,  1872,  1878,  1884,  1890,  1896,  1902,
970     1908,  1914,  1920,  1926,  1932,  1937,  1942,  1947,  1952,  1957,
971     1962,  1967,  1972,  1977,  1982,  1987,  1992,  1998,  2004,  2010,
972     2016,  2022,  2028,  2034,  2040,  2046,  2052,  2058,  2064,  2070,
973     2076,  2082,  2088,  2094,  2100,  2106,  2112,  2118,  2124,  2130,
974     2136,  2142,  2148,  2154,  2160,  2166,  2172,  2178,  2184,  2190,
975     2196,  2202,  2208,  2214,  2220,  2226,  2232,  2238,  2244,  2250,
976     2256,  2262,  2268,  2274,  2280,  2286,  2291,  2296,  2301,  2306,
977     2311,  2316,  2321,  2326,  2331,  2336,  2341,  2346,  2351,  2356,
978     2364,  2372,  2380,  2388,  2396,  2404,  2412,  2420,  2428,  2436,
979     2444,  2452,  2460,  2465,  2470,  2475,  2480,  2485,  2490,  2495,
980     2500,  2505,  2510,  2515,  2520,  2525,  2530,  2535,  2540,  2548,
981     2556,  2561,  2566,  2571,  2579,  2584,  2589,  2594,  2602,  2607,
982     2612,  2617,  2625,  2630,  2635,  2640,  2645,  2650,  2658,  2663,
983     2671,  2676,  2684,  2689,  2697,  2702,  2710,  2715,  2723,  2728,
984     2736,  2741,  2746,  2751,  2756,  2761,  2766,  2771,  2776,  2781,
985     2786,  2791,  2796,  2801,  2806,  2811,  2819,  2824,  2829,  2834,
986     2842,  2847,  2852,  2857,  2865,  2870,  2875,  2880,  2888,  2893,
987     2898,  2903,  2911,  2916,  2921,  2926,  2934,  2939,  2944,  2949,
988     2957,  2962,  2967,  2972,  2980,  2985,  2990,  2995,  3003,  3008,
989     3013,  3018,  3026,  3031,  3036,  3041,  3049,  3054,  3059,  3064,
990     3072,  3077,  3082,  3087,  3095,  3100,  3105,  3110,  3118,  3123,
991     3128,  3133,  3141,  3146,  3151,  3157,  3163,  3169,  3175,  3184,
992     3193,  3199,  3205,  3211,  3217,  3223,  3228,  3244,  3249,  3254,
993     3262,  3262,  3273,  3273,  3283,  3286,  3299,  3321,  3348,  3352,
994     3358,  3363,  3374,  3377,  3383,  3392,  3395,  3401,  3405,  3406,
995     3412,  3413,  3414,  3415,  3416,  3417,  3418,  3422,  3423,  3427,
996     3423,  3439,  3440,  3444,  3444,  3451,  3451,  3465,  3468,  3476,
997     3484,  3495,  3496,  3500,  3503,  3509,  3516,  3520,  3528,  3532,
998     3545,  3548,  3554,  3554,  3574,  3577,  3583,  3595,  3607,  3610,
999     3616,  3616,  3631,  3631,  3647,  3647,  3668,  3671,  3677,  3680,
1000     3686,  3690,  3697,  3702,  3707,  3714,  3717,  3726,  3730,  3739,
1001     3742,  3745,  3753,  3753,  3775,  3781,  3784,  3789,  3792
1002 };
1003 #endif
1004 
1005 #if YYDEBUG || YYERROR_VERBOSE || 1
1006 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1007    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1008 static const char *const yytname[] =
1009 {
1010   "$end", "error", "$undefined", "ATTRIBUTE", "VARYING", "FLOAT16_T",
1011   "FLOAT", "FLOAT32_T", "DOUBLE", "FLOAT64_T", "CONST", "BOOL", "INT",
1012   "UINT", "INT64_T", "UINT64_T", "INT32_T", "UINT32_T", "INT16_T",
1013   "UINT16_T", "INT8_T", "UINT8_T", "BREAK", "CONTINUE", "DO", "ELSE",
1014   "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT",
1015   "SUBROUTINE", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4",
1016   "UVEC2", "UVEC3", "UVEC4", "I64VEC2", "I64VEC3", "I64VEC4", "U64VEC2",
1017   "U64VEC3", "U64VEC4", "I32VEC2", "I32VEC3", "I32VEC4", "U32VEC2",
1018   "U32VEC3", "U32VEC4", "I16VEC2", "I16VEC3", "I16VEC4", "U16VEC2",
1019   "U16VEC3", "U16VEC4", "I8VEC2", "I8VEC3", "I8VEC4", "U8VEC2", "U8VEC3",
1020   "U8VEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3", "MAT4", "CENTROID",
1021   "IN", "OUT", "INOUT", "UNIFORM", "PATCH", "SAMPLE", "BUFFER", "SHARED",
1022   "NONUNIFORM", "PAYLOADNV", "PAYLOADINNV", "HITATTRNV", "CALLDATANV",
1023   "CALLDATAINNV", "COHERENT", "VOLATILE", "RESTRICT", "READONLY",
1024   "WRITEONLY", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT",
1025   "WORKGROUPCOHERENT", "SUBGROUPCOHERENT", "NONPRIVATE", "DVEC2", "DVEC3",
1026   "DVEC4", "DMAT2", "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4",
1027   "F16MAT2", "F16MAT3", "F16MAT4", "F32VEC2", "F32VEC3", "F32VEC4",
1028   "F32MAT2", "F32MAT3", "F32MAT4", "F64VEC2", "F64VEC3", "F64VEC4",
1029   "F64MAT2", "F64MAT3", "F64MAT4", "NOPERSPECTIVE", "FLAT", "SMOOTH",
1030   "LAYOUT", "EXPLICITINTERPAMD", "PERVERTEXNV", "PERPRIMITIVENV",
1031   "PERVIEWNV", "PERTASKNV", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2",
1032   "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3", "MAT4X4", "DMAT2X2", "DMAT2X3",
1033   "DMAT2X4", "DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3",
1034   "DMAT4X4", "F16MAT2X2", "F16MAT2X3", "F16MAT2X4", "F16MAT3X2",
1035   "F16MAT3X3", "F16MAT3X4", "F16MAT4X2", "F16MAT4X3", "F16MAT4X4",
1036   "F32MAT2X2", "F32MAT2X3", "F32MAT2X4", "F32MAT3X2", "F32MAT3X3",
1037   "F32MAT3X4", "F32MAT4X2", "F32MAT4X3", "F32MAT4X4", "F64MAT2X2",
1038   "F64MAT2X3", "F64MAT2X4", "F64MAT3X2", "F64MAT3X3", "F64MAT3X4",
1039   "F64MAT4X2", "F64MAT4X3", "F64MAT4X4", "ATOMIC_UINT", "ACCSTRUCTNV",
1040   "FCOOPMATNV", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
1041   "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW",
1042   "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW",
1043   "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D",
1044   "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D",
1045   "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY",
1046   "USAMPLER2DARRAY", "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW",
1047   "ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER",
1048   "USAMPLERBUFFER", "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW",
1049   "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY", "SAMPLER2DMS", "ISAMPLER2DMS",
1050   "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY",
1051   "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT",
1052   "F16SAMPLER1D", "F16SAMPLER2D", "F16SAMPLER3D", "F16SAMPLER2DRECT",
1053   "F16SAMPLERCUBE", "F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY",
1054   "F16SAMPLERCUBEARRAY", "F16SAMPLERBUFFER", "F16SAMPLER2DMS",
1055   "F16SAMPLER2DMSARRAY", "F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW",
1056   "F16SAMPLER1DARRAYSHADOW", "F16SAMPLER2DARRAYSHADOW",
1057   "F16SAMPLER2DRECTSHADOW", "F16SAMPLERCUBESHADOW",
1058   "F16SAMPLERCUBEARRAYSHADOW", "SAMPLER", "SAMPLERSHADOW", "TEXTURE1D",
1059   "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE", "TEXTURE1DARRAY",
1060   "TEXTURE2DARRAY", "ITEXTURE1D", "ITEXTURE2D", "ITEXTURE3D",
1061   "ITEXTURECUBE", "ITEXTURE1DARRAY", "ITEXTURE2DARRAY", "UTEXTURE1D",
1062   "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE", "UTEXTURE1DARRAY",
1063   "UTEXTURE2DARRAY", "TEXTURE2DRECT", "ITEXTURE2DRECT", "UTEXTURE2DRECT",
1064   "TEXTUREBUFFER", "ITEXTUREBUFFER", "UTEXTUREBUFFER", "TEXTURECUBEARRAY",
1065   "ITEXTURECUBEARRAY", "UTEXTURECUBEARRAY", "TEXTURE2DMS", "ITEXTURE2DMS",
1066   "UTEXTURE2DMS", "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY",
1067   "UTEXTURE2DMSARRAY", "F16TEXTURE1D", "F16TEXTURE2D", "F16TEXTURE3D",
1068   "F16TEXTURE2DRECT", "F16TEXTURECUBE", "F16TEXTURE1DARRAY",
1069   "F16TEXTURE2DARRAY", "F16TEXTURECUBEARRAY", "F16TEXTUREBUFFER",
1070   "F16TEXTURE2DMS", "F16TEXTURE2DMSARRAY", "SUBPASSINPUT",
1071   "SUBPASSINPUTMS", "ISUBPASSINPUT", "ISUBPASSINPUTMS", "USUBPASSINPUT",
1072   "USUBPASSINPUTMS", "F16SUBPASSINPUT", "F16SUBPASSINPUTMS", "IMAGE1D",
1073   "IIMAGE1D", "UIMAGE1D", "IMAGE2D", "IIMAGE2D", "UIMAGE2D", "IMAGE3D",
1074   "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", "IIMAGE2DRECT", "UIMAGE2DRECT",
1075   "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", "IMAGEBUFFER", "IIMAGEBUFFER",
1076   "UIMAGEBUFFER", "IMAGE1DARRAY", "IIMAGE1DARRAY", "UIMAGE1DARRAY",
1077   "IMAGE2DARRAY", "IIMAGE2DARRAY", "UIMAGE2DARRAY", "IMAGECUBEARRAY",
1078   "IIMAGECUBEARRAY", "UIMAGECUBEARRAY", "IMAGE2DMS", "IIMAGE2DMS",
1079   "UIMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY",
1080   "F16IMAGE1D", "F16IMAGE2D", "F16IMAGE3D", "F16IMAGE2DRECT",
1081   "F16IMAGECUBE", "F16IMAGE1DARRAY", "F16IMAGE2DARRAY",
1082   "F16IMAGECUBEARRAY", "F16IMAGEBUFFER", "F16IMAGE2DMS",
1083   "F16IMAGE2DMSARRAY", "STRUCT", "VOID", "WHILE", "IDENTIFIER",
1084   "TYPE_NAME", "FLOATCONSTANT", "DOUBLECONSTANT", "INT16CONSTANT",
1085   "UINT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT", "INTCONSTANT",
1086   "UINTCONSTANT", "INT64CONSTANT", "UINT64CONSTANT", "BOOLCONSTANT",
1087   "FLOAT16CONSTANT", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
1088   "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
1089   "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
1090   "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN",
1091   "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE",
1092   "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG",
1093   "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT", "LEFT_ANGLE",
1094   "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND", "QUESTION",
1095   "INVARIANT", "PRECISE", "HIGH_PRECISION", "MEDIUM_PRECISION",
1096   "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP", "$accept",
1097   "variable_identifier", "primary_expression", "postfix_expression",
1098   "integer_expression", "function_call", "function_call_or_method",
1099   "function_call_generic", "function_call_header_no_parameters",
1100   "function_call_header_with_parameters", "function_call_header",
1101   "function_identifier", "unary_expression", "unary_operator",
1102   "multiplicative_expression", "additive_expression", "shift_expression",
1103   "relational_expression", "equality_expression", "and_expression",
1104   "exclusive_or_expression", "inclusive_or_expression",
1105   "logical_and_expression", "logical_xor_expression",
1106   "logical_or_expression", "conditional_expression", "$@1",
1107   "assignment_expression", "assignment_operator", "expression",
1108   "constant_expression", "declaration", "block_structure", "$@2",
1109   "identifier_list", "function_prototype", "function_declarator",
1110   "function_header_with_parameters", "function_header",
1111   "parameter_declarator", "parameter_declaration",
1112   "parameter_type_specifier", "init_declarator_list", "single_declaration",
1113   "fully_specified_type", "invariant_qualifier", "interpolation_qualifier",
1114   "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
1115   "precise_qualifier", "type_qualifier", "single_type_qualifier",
1116   "storage_qualifier", "non_uniform_qualifier", "type_name_list",
1117   "type_specifier", "array_specifier", "type_parameter_specifier_opt",
1118   "type_parameter_specifier", "type_parameter_specifier_list",
1119   "type_specifier_nonarray", "precision_qualifier", "struct_specifier",
1120   "$@3", "$@4", "struct_declaration_list", "struct_declaration",
1121   "struct_declarator_list", "struct_declarator", "initializer",
1122   "initializer_list", "declaration_statement", "statement",
1123   "simple_statement", "compound_statement", "$@5", "$@6",
1124   "statement_no_new_scope", "statement_scoped", "$@7", "$@8",
1125   "compound_statement_no_new_scope", "statement_list",
1126   "expression_statement", "selection_statement",
1127   "selection_statement_nonattributed", "selection_rest_statement",
1128   "condition", "switch_statement", "switch_statement_nonattributed", "$@9",
1129   "switch_statement_list", "case_label", "iteration_statement",
1130   "iteration_statement_nonattributed", "$@10", "$@11", "$@12",
1131   "for_init_statement", "conditionopt", "for_rest_statement",
1132   "jump_statement", "translation_unit", "external_declaration",
1133   "function_definition", "$@13", "attribute", "attribute_list",
1134   "single_attribute", YY_NULLPTR
1135 };
1136 #endif
1137 
1138 # ifdef YYPRINT
1139 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1140    (internal) symbol number NUM (which must be that of a token).  */
1141 static const yytype_uint16 yytoknum[] =
1142 {
1143        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1144      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1145      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1146      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1147      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
1148      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
1149      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1150      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1151      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1152      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1153      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1154      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1155      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1156      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
1157      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
1158      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
1159      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
1160      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
1161      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1162      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1163      455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1164      465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1165      475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1166      485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1167      495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
1168      505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
1169      515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
1170      525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
1171      535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
1172      545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
1173      555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
1174      565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
1175      575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
1176      585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
1177      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
1178      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
1179      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
1180      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
1181      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
1182      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
1183      655,   656,   657,   658,   659,   660,   661,   662
1184 };
1185 # endif
1186 
1187 #define YYPACT_NINF -659
1188 
1189 #define yypact_value_is_default(Yystate) \
1190   (!!((Yystate) == (-659)))
1191 
1192 #define YYTABLE_NINF -524
1193 
1194 #define yytable_value_is_error(Yytable_value) \
1195   0
1196 
1197   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1198      STATE-NUM.  */
1199 static const yytype_int16 yypact[] =
1200 {
1201     3535,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1202     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1203     -331,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1204     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1205     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1206     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1207     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1208     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1209     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1210     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1211     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1212     -659,  -659,  -324,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1213     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1214     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1215     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1216     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1217     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1218     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1219     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1220     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1221     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1222     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1223     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1224     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1225     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1226     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1227     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1228     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1229     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1230     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1231     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1232     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1233     -659,  -659,  -659,  -659,  -319,  -659,  -659,  -659,  -659,  -659,
1234     -659,  -659,  -659,  -256,  -659,  -314,  -351,  -309,  -306,  5942,
1235     -257,  -659,  -217,  -659,  -659,  -659,  -659,  4338,  -659,  -659,
1236     -659,  -659,  -241,  -659,  -659,   721,  -659,  -659,  -204,   -71,
1237     -219,  -659,  9007,  -349,  -659,  -659,  -215,  -659,  5942,  -659,
1238     -659,  -659,  5942,  -178,  -172,  -659,  -337,  -267,  -659,  -659,
1239     -659,  8237,  -207,  -659,  -659,  -659,  -659,  -341,  -659,  -211,
1240     -330,  -659,  -659,  5942,  -210,  6697,  -659,  -322,  1123,  -659,
1241     -659,  -659,  -659,  -207,  -328,  -659,  7082,  -304,  -659,  -163,
1242     -659,  -252,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1243     -659,  -659,  -659,  -659,  -659,  8237,  8237,  8237,  -659,  -659,
1244     -659,  -659,  -659,  -659,  -303,  -659,  -659,  -659,  -196,  -299,
1245     8622,  -194,  -659,  8237,  -659,  -659,  -355,  -195,  -659,  -157,
1246     8237,  -659,   -71,  5942,  5942,  -155,  4739,  -659,  -659,  -659,
1247     -659,  -242,  -236,  -249,  -335,  -206,  -191,  -187,  -209,  -149,
1248     -150,  -333,  -162,  7467,  -659,  -170,  -168,  -659,  -154,  -153,
1249     -167,  7852,  -152,  8237,  -159,  -148,  -151,  -160,  -659,  -659,
1250     -274,  -659,  -659,  -251,  -659,  -351,  -147,  -144,  -659,  -659,
1251     -659,  -659,  1525,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1252     -659,  -659,   -19,  -195,  7082,  -302,  7082,  -659,  -659,  7082,
1253     5942,  -659,  -115,  -659,  -659,  -659,  -292,  -659,  -659,  8237,
1254     -108,  -659,  -659,  8237,  -143,  -659,  -659,  -659,  8237,  -659,
1255     -659,  -659,  -659,  -659,  5140,  -155,  -207,  -250,  -659,  -659,
1256     -659,  8237,  8237,  8237,  8237,  8237,  8237,  8237,  8237,  8237,
1257     8237,  8237,  8237,  8237,  8237,  8237,  8237,  8237,  8237,  8237,
1258     -659,  -659,  -659,  -142,  -659,  -659,  1927,  -659,  8237,  -659,
1259     -659,  -245,  8237,  -226,  -659,  -659,  -106,  -659,  1927,  -659,
1260     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1261     8237,  8237,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  7082,
1262     -659,  -238,  -659,  5541,  -659,  -659,  -141,  -140,  -659,  -659,
1263     -659,  -659,  -244,  -195,  -155,  -659,  -659,  -659,  -659,  -242,
1264     -242,  -236,  -236,  -249,  -249,  -249,  -249,  -335,  -335,  -206,
1265     -191,  -187,  -209,  -149,  -150,  8237,  -659,  -104,  3133,  -263,
1266     -659,  -260,  -659,  3937,  -136,  -297,  -659,  1927,  -659,  -659,
1267     -659,  -659,  6312,  -659,  -659,  -659,  -659,  -224,  -135,  -659,
1268     -659,  3937,  -138,  -659,  -140,   -97,  5942,  -132,  8237,  -133,
1269     -106,  -134,  -659,  -659,  8237,  8237,  -659,  -137,  -129,   224,
1270     -128,  2731,  -659,  -127,  -131,  2329,  -126,  -659,  -659,  -659,
1271     -659,  -255,  8237,  2329,  -138,  -659,  -659,  1927,  7082,  -659,
1272     -659,  -659,  -659,  -130,  -140,  -659,  -659,  1927,  -123,  -659,
1273     -659,  -659
1274 };
1275 
1276   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1277      Performed when YYTABLE does not specify something else to do.  Zero
1278      means the default is an error.  */
1279 static const yytype_uint16 yydefact[] =
1280 {
1281        0,   157,   158,   202,   200,   203,   201,   204,   156,   215,
1282      205,   206,   213,   214,   211,   212,   209,   210,   207,   208,
1283      183,   231,   232,   233,   234,   235,   236,   249,   250,   251,
1284      246,   247,   248,   261,   262,   263,   243,   244,   245,   258,
1285      259,   260,   240,   241,   242,   255,   256,   257,   237,   238,
1286      239,   252,   253,   254,   216,   217,   218,   264,   265,   266,
1287      162,   160,   161,   159,   165,   163,   164,   166,   172,   185,
1288      168,   169,   167,   170,   171,   173,   179,   180,   181,   182,
1289      174,   175,   176,   177,   178,   219,   220,   221,   276,   277,
1290      278,   222,   223,   224,   288,   289,   290,   225,   226,   227,
1291      300,   301,   302,   228,   229,   230,   312,   313,   314,   134,
1292      133,   132,     0,   135,   136,   137,   138,   139,   267,   268,
1293      269,   270,   271,   272,   273,   274,   275,   279,   280,   281,
1294      282,   283,   284,   285,   286,   287,   291,   292,   293,   294,
1295      295,   296,   297,   298,   299,   303,   304,   305,   306,   307,
1296      308,   309,   310,   311,   315,   316,   317,   318,   319,   320,
1297      321,   322,   323,   325,   324,   484,   326,   327,   328,   329,
1298      330,   331,   332,   333,   334,   335,   336,   352,   353,   354,
1299      355,   356,   357,   359,   360,   361,   362,   363,   364,   366,
1300      367,   370,   371,   372,   374,   375,   337,   338,   358,   365,
1301      376,   378,   379,   380,   382,   383,   474,   475,   339,   340,
1302      341,   368,   342,   346,   347,   350,   373,   377,   381,   343,
1303      344,   348,   349,   369,   345,   351,   384,   385,   386,   388,
1304      390,   392,   394,   396,   400,   401,   402,   403,   404,   405,
1305      407,   408,   409,   410,   411,   412,   414,   416,   417,   418,
1306      420,   421,   398,   406,   413,   422,   424,   425,   426,   428,
1307      429,   387,   389,   391,   415,   393,   395,   397,   399,   419,
1308      423,   427,   476,   477,   480,   481,   482,   483,   478,   479,
1309      430,   432,   433,   434,   436,   437,   438,   440,   441,   442,
1310      444,   445,   446,   448,   449,   450,   452,   453,   454,   456,
1311      457,   458,   460,   461,   462,   464,   465,   466,   468,   469,
1312      470,   472,   473,   431,   435,   439,   443,   447,   455,   459,
1313      463,   451,   467,   471,     0,   199,   486,   571,   131,   146,
1314      487,   488,   489,     0,   570,     0,   572,     0,   108,   107,
1315        0,   119,   124,   153,   152,   150,   154,     0,   147,   149,
1316      155,   129,   195,   151,   485,     0,   567,   569,     0,     0,
1317        0,   492,     0,     0,    96,    93,     0,   106,     0,   115,
1318      109,   117,     0,   118,     0,    94,   125,     0,    99,   148,
1319      130,     0,   188,   194,     1,   568,   186,     0,   145,   143,
1320        0,   141,   490,     0,     0,     0,    97,     0,     0,   573,
1321      110,   114,   116,   112,   120,   111,     0,   126,   102,     0,
1322      100,     0,     2,    12,    13,    10,    11,     4,     5,     6,
1323        7,     8,     9,    15,    14,     0,     0,     0,    42,    41,
1324       43,    40,     3,    17,    36,    19,    24,    25,     0,     0,
1325       29,     0,   197,     0,    35,    33,     0,   189,   184,     0,
1326        0,   140,     0,     0,     0,     0,     0,   494,    95,   190,
1327       44,    48,    51,    54,    59,    62,    64,    66,    68,    70,
1328       72,    74,     0,     0,    98,     0,     0,   552,     0,     0,
1329        0,     0,     0,     0,     0,     0,     0,   518,   527,   531,
1330       44,    77,    90,     0,   507,     0,   155,   129,   510,   529,
1331      509,   508,     0,   511,   512,   533,   513,   540,   514,   515,
1332      548,   516,     0,   113,     0,   121,     0,   502,   128,     0,
1333        0,   104,     0,   101,    37,    38,     0,    21,    22,     0,
1334        0,    27,    26,     0,   199,    30,    32,    39,     0,   196,
1335      187,    92,   144,   142,     0,     0,   500,     0,   498,   493,
1336      495,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1337        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1338       75,   191,   192,     0,   563,   562,     0,   554,     0,   566,
1339      564,     0,     0,     0,   547,   550,     0,   517,     0,    80,
1340       81,    83,    82,    85,    86,    87,    88,    89,    84,    79,
1341        0,     0,   532,   528,   530,   534,   541,   549,   123,     0,
1342      505,     0,   127,     0,   105,    16,     0,    23,    20,    31,
1343      198,   491,     0,   501,     0,   496,    45,    46,    47,    50,
1344       49,    52,    53,    57,    58,    55,    56,    60,    61,    63,
1345       65,    67,    69,    71,    73,     0,   193,     0,     0,     0,
1346      565,     0,   546,     0,   577,     0,   575,   519,    78,    91,
1347      122,   503,     0,   103,    18,   497,   499,     0,     0,   557,
1348      556,   559,   525,   542,   538,     0,     0,     0,     0,     0,
1349        0,     0,   504,   506,     0,     0,   558,     0,     0,   537,
1350        0,     0,   535,     0,     0,     0,     0,   574,   576,   520,
1351       76,     0,   560,     0,   525,   524,   526,   544,     0,   522,
1352      551,   521,   578,     0,   561,   555,   536,   545,     0,   539,
1353      553,   543
1354 };
1355 
1356   /* YYPGOTO[NTERM-NUM].  */
1357 static const yytype_int16 yypgoto[] =
1358 {
1359     -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,  -659,
1360     -659,  -659,  -364,  -659,  -389,  -385,  -457,  -384,  -310,  -307,
1361     -305,  -308,  -301,  -298,  -659,  -386,  -659,  -390,  -659,  -415,
1362     -418,     1,  -659,  -659,  -659,     2,  -659,  -659,  -659,  -110,
1363     -105,  -107,  -659,  -659,  -628,  -659,  -659,  -659,  -659,  -188,
1364     -659,  -336,  -343,  -659,     6,  -659,     0,  -334,  -659,  -659,
1365     -659,  -659,   -67,  -659,  -659,  -659,  -431,  -437,  -277,  -350,
1366     -501,  -659,  -375,  -488,  -658,  -414,  -659,  -659,  -428,  -426,
1367     -659,  -659,   -87,  -568,  -368,  -659,  -231,  -659,  -388,  -659,
1368     -230,  -659,  -659,  -659,  -659,  -228,  -659,  -659,  -659,  -659,
1369     -659,  -659,  -659,  -659,   -70,  -659,  -659,  -659,  -659,  -394
1370 };
1371 
1372   /* YYDEFGOTO[NTERM-NUM].  */
1373 static const yytype_int16 yydefgoto[] =
1374 {
1375       -1,   432,   433,   434,   616,   435,   436,   437,   438,   439,
1376      440,   441,   490,   443,   461,   462,   463,   464,   465,   466,
1377      467,   468,   469,   470,   471,   491,   645,   492,   600,   493,
1378      542,   494,   335,   520,   411,   495,   337,   338,   339,   369,
1379      370,   371,   340,   341,   342,   343,   344,   345,   390,   391,
1380      346,   347,   348,   349,   444,   387,   445,   397,   382,   383,
1381      446,   352,   353,   354,   453,   393,   456,   457,   547,   548,
1382      518,   611,   498,   499,   500,   501,   588,   681,   710,   689,
1383      690,   691,   711,   502,   503,   504,   505,   692,   677,   506,
1384      507,   693,   718,   508,   509,   510,   653,   576,   648,   671,
1385      687,   688,   511,   355,   356,   357,   366,   512,   655,   656
1386 };
1387 
1388   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1389      positive, shift that token.  If negative, reduce the rule whose
1390      number is the opposite.  If YYTABLE_NINF, syntax error.  */
1391 static const yytype_int16 yytable[] =
1392 {
1393      351,   334,   336,   372,   379,   477,   350,   478,   479,   472,
1394      388,   482,   526,   608,   604,   610,   517,   442,   612,   550,
1395      657,   360,   544,   558,   559,   675,   363,   538,   395,   379,
1396      569,   460,   372,   706,   365,   448,   396,   709,   405,   539,
1397      395,   449,   407,   675,   358,   709,   451,   406,   447,   395,
1398      535,   359,   452,   527,   528,   473,   514,   454,   560,   561,
1399      361,   524,   525,   474,   541,   570,   581,   367,   583,   513,
1400      515,   364,   -34,   473,   529,   473,   368,   532,   530,   537,
1401      519,   679,   609,   533,   615,   680,   460,   573,   647,   613,
1402      601,   589,   590,   591,   592,   593,   594,   595,   596,   597,
1403      598,   633,   634,   635,   636,   556,   557,   550,   660,   460,
1404      599,   379,   408,   672,   617,   409,   673,   454,   410,   601,
1405      454,   713,   601,   376,   517,   374,   517,   601,   375,   517,
1406      522,   601,   624,   523,   602,   625,   386,   601,   624,   717,
1407      650,   665,   661,   619,   662,   330,   331,   332,   551,   552,
1408      553,   554,   381,   555,   562,   563,   601,   652,   601,   684,
1409      392,   683,   403,   649,   398,   629,   630,   651,   404,   604,
1410      395,   631,   632,   450,   620,   458,   550,   521,   637,   638,
1411      531,   536,   473,   540,   454,   546,   566,   626,   627,   628,
1412      460,   460,   460,   460,   460,   460,   460,   460,   460,   460,
1413      460,   460,   460,   460,   460,   460,   564,   719,   454,   565,
1414      658,   659,   623,   567,   568,   574,   571,   575,   579,   517,
1415      587,   577,   578,   582,   584,   614,   586,   585,   -35,   604,
1416      667,   -33,   618,   -28,   654,   668,   646,   664,   674,   678,
1417      685,  -523,   601,   694,   695,   697,   699,   703,   702,   704,
1418      712,   487,   707,   708,   639,   720,   674,   721,   640,   642,
1419      696,   641,   401,   400,   543,   402,   362,   643,   622,   389,
1420      701,   644,   517,   669,   666,   715,   705,   454,   716,   399,
1421      670,   605,   606,   686,   607,   385,   698,   714,     0,     0,
1422        0,     0,   541,     0,   700,     0,     0,     0,     0,     0,
1423        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1424        0,     0,     0,     0,   460,     0,     0,   676,   517,     0,
1425      485,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1426        0,     0,     0,   379,     0,   676,     0,     0,     0,   373,
1427        0,     0,     0,     0,     0,   350,     0,   380,     0,     0,
1428        0,     0,     0,   350,     0,   351,   334,   336,     0,     0,
1429        0,   350,   394,     0,     0,     0,     0,     0,   373,     0,
1430        0,     0,   373,     0,   350,     0,     0,     0,   350,     0,
1431        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1432        0,     0,     0,   455,     0,     0,     0,     0,   497,   350,
1433        0,     0,     0,     0,   496,     0,     0,     0,     0,     0,
1434        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1435        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1436        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1437        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1438        0,     0,     0,   455,   545,     0,   455,     0,     0,   350,
1439      350,     0,   350,     0,     0,     0,     0,     0,     0,     0,
1440        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1441        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1442        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1443        0,     0,   497,     0,     0,     0,     0,     0,   496,     0,
1444        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1445      455,     0,     0,     0,     0,     0,   350,     0,     0,     0,
1446        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1447        0,     0,     0,     0,   455,     0,     0,     0,     0,     0,
1448      350,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1449        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1450        0,     0,     0,     0,     0,     0,   497,     0,     0,     0,
1451        0,     0,   496,     0,     0,     0,     0,     0,   497,     0,
1452        0,     0,     0,     0,   496,     0,     0,     0,     0,     0,
1453        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1454        0,     0,     0,   455,     0,     0,     0,     0,     0,   350,
1455        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1456        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1457        0,     0,     0,     0,     0,     0,     0,     0,   497,     0,
1458        0,     0,     0,   497,   496,     0,     0,   497,     0,   496,
1459        0,     0,     0,   496,     0,     0,     0,     0,     0,     0,
1460        0,   497,     0,     0,     0,     0,   380,   496,     0,     0,
1461        0,     0,   350,     0,     0,     0,     0,     0,     0,     0,
1462        0,   497,     0,     0,     0,   497,     0,   496,     0,     0,
1463        0,   496,     0,   497,     0,     0,     0,   497,     0,   496,
1464        0,     0,     0,   496,     0,     0,     0,   497,     0,     0,
1465        0,   384,     0,   496,     1,     2,     3,     4,     5,     6,
1466        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1467       17,    18,    19,     0,     0,     0,     0,     0,     0,     0,
1468        0,     0,     0,     0,    20,    21,    22,    23,    24,    25,
1469       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1470       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1471       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1472       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1473       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1474       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1475       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1476       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1477      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1478      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1479      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1480      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1481      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1482      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1483      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1484      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1485      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1486      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1487      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1488      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1489      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1490      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1491      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1492      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
1493      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
1494      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
1495      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
1496      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
1497      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
1498      316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
1499        0,     0,   326,     0,     0,     0,     0,     0,     0,     0,
1500        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1501        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1502        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1503        0,     0,     0,     0,     0,     0,   327,     0,     0,     0,
1504        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1505      328,   329,   330,   331,   332,   333,     1,     2,     3,     4,
1506        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1507       15,    16,    17,    18,    19,   475,   476,   477,     0,   478,
1508      479,   480,   481,   482,   483,   484,    20,    21,    22,    23,
1509       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1510       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1511       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1512       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1513       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1514       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1515       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1516       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1517      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1518      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1519      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1520      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1521      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1522      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1523      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1524      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1525      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1526      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1527      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1528      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1529      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
1530      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1531      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1532      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
1533      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
1534      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
1535      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
1536      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
1537      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
1538      314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
1539      324,   325,   485,   412,   326,   413,   414,   415,   416,   417,
1540      418,   419,   420,   421,   422,   423,   424,     0,     0,   425,
1541      426,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1542        0,     0,     0,     0,     0,     0,     0,     0,   427,     0,
1543      486,     0,   487,   488,     0,     0,     0,     0,   489,   428,
1544      429,   430,   431,     0,     0,     0,     0,     0,     0,     0,
1545        0,     0,   328,   329,   330,   331,   332,   333,     1,     2,
1546        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1547       13,    14,    15,    16,    17,    18,    19,   475,   476,   477,
1548        0,   478,   479,   480,   481,   482,   483,   484,    20,    21,
1549       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1550       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1551       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1552       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1553       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1554       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1555       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1556       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1557      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1558      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1559      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1560      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1561      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1562      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1563      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1564      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1565      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1566      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1567      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1568      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1569      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
1570      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
1571      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
1572      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1573      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
1574      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
1575      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
1576      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
1577      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
1578      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
1579      322,   323,   324,   325,   485,   412,   326,   413,   414,   415,
1580      416,   417,   418,   419,   420,   421,   422,   423,   424,     0,
1581        0,   425,   426,     0,     0,     0,     0,     0,     0,     0,
1582        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1583      427,     0,   486,     0,   487,   603,     0,     0,     0,     0,
1584      489,   428,   429,   430,   431,     0,     0,     0,     0,     0,
1585        0,     0,     0,     0,   328,   329,   330,   331,   332,   333,
1586        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
1587       11,    12,    13,    14,    15,    16,    17,    18,    19,   475,
1588      476,   477,     0,   478,   479,   480,   481,   482,   483,   484,
1589       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
1590       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1591       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1592       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1593       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1594       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1595       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1596       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1597      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1598      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1599      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1600      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1601      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1602      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1603      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1604      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1605      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1606      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1607      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1608      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1609      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1610      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1611      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1612      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
1613      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
1614      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1615      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
1616      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
1617      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
1618      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
1619      320,   321,   322,   323,   324,   325,   485,   412,   326,   413,
1620      414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
1621      424,     0,     0,   425,   426,     0,     0,     0,     0,     0,
1622        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1623        0,     0,   427,     0,   486,     0,   487,     0,     0,     0,
1624        0,     0,   489,   428,   429,   430,   431,     0,     0,     0,
1625        0,     0,     0,     0,     0,     0,   328,   329,   330,   331,
1626      332,   333,     1,     2,     3,     4,     5,     6,     7,     8,
1627        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1628       19,   475,   476,   477,     0,   478,   479,   480,   481,   482,
1629      483,   484,    20,    21,    22,    23,    24,    25,    26,    27,
1630       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1631       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1632       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1633       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1634       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1635       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1636       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1637       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1638      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1639      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1640      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1641      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1642      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1643      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1644      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1645      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1646      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1647      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1648      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1649      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
1650      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
1651      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
1652      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1653      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
1654      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
1655      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
1656      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1657      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
1658      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
1659      318,   319,   320,   321,   322,   323,   324,   325,   485,   412,
1660      326,   413,   414,   415,   416,   417,   418,   419,   420,   421,
1661      422,   423,   424,     0,     0,   425,   426,     0,     0,     0,
1662        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1663        0,     0,     0,     0,   427,     0,   486,     0,   398,     0,
1664        0,     0,     0,     0,   489,   428,   429,   430,   431,     0,
1665        0,     0,     0,     0,     0,     0,     0,     0,   328,   329,
1666      330,   331,   332,   333,     1,     2,     3,     4,     5,     6,
1667        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1668       17,    18,    19,   475,   476,   477,     0,   478,   479,   480,
1669      481,   482,   483,   484,    20,    21,    22,    23,    24,    25,
1670       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1671       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1672       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1673       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1674       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1675       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1676       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1677       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1678      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1679      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1680      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1681      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1682      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1683      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1684      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1685      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1686      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1687      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1688      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1689      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1690      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1691      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1692      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1693      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
1694      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
1695      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
1696      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
1697      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
1698      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
1699      316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
1700      485,   412,   326,   413,   414,   415,   416,   417,   418,   419,
1701      420,   421,   422,   423,   424,     0,     0,   425,   426,     0,
1702        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1703        0,     0,     0,     0,     0,     0,   427,     0,   486,     0,
1704        0,     0,     0,     0,     0,     0,   489,   428,   429,   430,
1705      431,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1706      328,   329,   330,   331,   332,   333,     1,     2,     3,     4,
1707        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1708       15,    16,    17,    18,    19,     0,     0,     0,     0,     0,
1709        0,     0,     0,     0,     0,     0,    20,    21,    22,    23,
1710       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1711       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1712       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1713       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1714       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1715       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1716       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1717       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1718      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1719      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1720      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1721      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1722      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1723      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1724      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1725      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1726      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1727      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1728      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1729      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1730      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
1731      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1732      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1733      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
1734      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
1735      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
1736      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
1737      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
1738      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
1739      314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
1740      324,   325,     0,   412,   326,   413,   414,   415,   416,   417,
1741      418,   419,   420,   421,   422,   423,   424,     0,     0,   425,
1742      426,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1743        0,     0,     0,     0,     0,     0,     0,     0,   427,     0,
1744        0,     0,     0,     0,     0,     0,     0,     0,   489,   428,
1745      429,   430,   431,     0,     0,     0,     0,     0,     0,     0,
1746        0,     0,   328,   329,   330,   331,   332,   333,     1,     2,
1747        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1748       13,    14,    15,    16,    17,    18,    19,     0,     0,     0,
1749        0,     0,     0,     0,     0,     0,     0,     0,    20,    21,
1750       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1751       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1752       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1753       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1754       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1755       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1756       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1757       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1758      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1759      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1760      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1761      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1762      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1763      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1764      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1765      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1766      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1767      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1768      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1769      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1770      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
1771      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
1772      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
1773      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1774      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
1775      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
1776      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
1777      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
1778      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
1779      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
1780      322,   323,   324,   325,     0,     0,   326,     0,     0,     0,
1781        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1782        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1783        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1784        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1785      327,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1786        0,     0,     0,     0,   328,   329,   330,   331,   332,   333,
1787        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
1788       11,    12,    13,    14,    15,    16,    17,    18,    19,     0,
1789        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1790       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
1791       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1792       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1793       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1794       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1795       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1796       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1797       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1798      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1799      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1800      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1801      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1802      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1803      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1804      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1805      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1806      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1807      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1808      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1809      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1810      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1811      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1812      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1813      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
1814      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
1815      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1816      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
1817      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
1818      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
1819      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
1820      320,   321,   322,   323,   324,   325,     0,   412,   326,   413,
1821      414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
1822      424,     0,     0,   425,   426,     0,     0,     0,     0,     0,
1823        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1824        0,     0,   427,     0,     0,     0,     0,     0,     0,     0,
1825        0,     0,     0,   428,   429,   430,   431,     0,     0,     0,
1826        0,     0,     0,     0,     0,     0,   328,   329,   330,   331,
1827      332,     1,     2,     3,     4,     5,     6,     7,     8,     9,
1828       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1829        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1830        0,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1831       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1832       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1833       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1834       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1835       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1836       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1837       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1838       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1839      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1840      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1841      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1842      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1843      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1844      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1845      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1846      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1847      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1848      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1849      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1850      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
1851      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
1852      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
1853      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
1854      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
1855      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
1856      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
1857      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
1858      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
1859      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
1860      319,   320,   321,   322,   323,   324,   325,     0,   377,   326,
1861        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1862        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1863        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1864        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1865        0,     0,     0,   378,     0,     0,     0,     0,     0,     0,
1866        0,     0,     0,     0,     0,     0,     0,   328,   329,   330,
1867      331,   332,     1,     2,     3,     4,     5,     6,     7,     8,
1868        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1869       19,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1870        0,     0,    20,    21,    22,    23,    24,    25,    26,    27,
1871       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1872       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1873       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1874       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1875       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1876       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1877       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1878       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1879      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1880      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1881      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1882      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1883      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1884      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1885      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1886      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1887      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1888      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1889      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1890      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
1891      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
1892      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
1893      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1894      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
1895      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
1896      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
1897      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1898      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
1899      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
1900      318,   319,   320,   321,   322,   323,   324,   325,     0,     0,
1901      326,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1902        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1903        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1904        0,     0,     0,     0,     0,     0,     0,     0,     0,   549,
1905        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1906        0,     0,     0,     0,     0,     0,     0,     0,   328,   329,
1907      330,   331,   332,     1,     2,     3,     4,     5,     6,     7,
1908        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1909       18,    19,     0,     0,     0,     0,     0,     0,     0,     0,
1910        0,     0,     0,    20,    21,    22,    23,    24,    25,    26,
1911       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1912       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1913       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1914       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1915       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1916       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1917       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1918       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1919      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1920      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1921      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1922      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1923      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1924      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
1925      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1926      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1927      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1928      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1929      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
1930      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
1931      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
1932      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
1933      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
1934      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
1935      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
1936      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
1937      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
1938      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
1939      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
1940      317,   318,   319,   320,   321,   322,   323,   324,   325,     0,
1941        0,   326,     0,     0,     0,     0,     0,     0,     0,     0,
1942        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1943        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1944        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1945      621,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1946        0,     0,     0,     0,     0,     0,     0,     0,     0,   328,
1947      329,   330,   331,   332,     1,     2,     3,     4,     5,     6,
1948        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1949       17,    18,    19,     0,     0,     0,     0,     0,     0,     0,
1950        0,     0,     0,     0,    20,    21,    22,    23,    24,    25,
1951       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1952       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1953       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1954       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1955       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1956       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1957       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1958       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1959      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1960      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1961      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1962      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1963      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1964      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1965      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1966      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1967      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1968      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1969      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1970      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1971      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1972      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1973      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1974      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
1975      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
1976      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
1977      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
1978      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
1979      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
1980      316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
1981        0,     0,   326,     0,     0,     0,     0,     0,     0,     0,
1982        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1983        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1984        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1985        0,   663,     0,     0,     0,     0,     0,     0,     0,     0,
1986        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1987      328,   329,   330,   331,   332,     1,     2,     3,     4,     5,
1988        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1989       16,    17,    18,    19,     0,     0,     0,     0,     0,     0,
1990        0,     0,     0,     0,     0,    20,    21,    22,    23,    24,
1991       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1992       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1993       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1994       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1995       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1996       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1997       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1998       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1999      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2000      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2001      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2002      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2003      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2004      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2005      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2006      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2007      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2008      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2009      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2010      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2011      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2012      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2013      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2014      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2015      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2016      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2017      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
2018      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
2019      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
2020      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
2021      325,     0,     0,   326,     0,     0,     0,     0,     0,     0,
2022        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2023        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2024        0,     0,     0,     0,     0,     0,     0,     3,     4,     5,
2025        6,     7,     0,     9,    10,    11,    12,    13,    14,    15,
2026       16,    17,    18,    19,     0,     0,     0,     0,     0,     0,
2027        0,   328,   329,   330,   331,   332,    21,    22,    23,    24,
2028       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2029       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2030       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2031       55,    56,    57,    58,    59,     0,     0,     0,     0,     0,
2032        0,     0,     0,     0,    69,     0,     0,     0,     0,     0,
2033        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2034       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2035       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2036      105,   106,   107,   108,     0,     0,     0,     0,     0,     0,
2037        0,     0,     0,   118,   119,   120,   121,   122,   123,   124,
2038      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2039      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2040      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2041      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2042      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2043      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2044      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2045      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2046      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2047      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2048      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2049      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2050      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2051      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2052      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2053      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2054      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
2055      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
2056      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
2057      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
2058      325,     0,   412,   326,   413,   414,   415,   416,   417,   418,
2059      419,   420,   421,   422,   423,   424,     0,     0,   425,   426,
2060        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2061        0,     0,     0,     0,     0,     0,     0,   427,     0,     0,
2062        0,   516,   682,     0,     0,     0,     0,     0,   428,   429,
2063      430,   431,     3,     4,     5,     6,     7,     0,     9,    10,
2064       11,    12,    13,    14,    15,    16,    17,    18,    19,     0,
2065        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2066        0,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2067       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2068       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2069       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2070        0,     0,     0,     0,     0,     0,     0,     0,     0,    69,
2071        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2072        0,     0,     0,     0,     0,    85,    86,    87,    88,    89,
2073       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2074      100,   101,   102,   103,   104,   105,   106,   107,   108,     0,
2075        0,     0,     0,     0,     0,     0,     0,     0,   118,   119,
2076      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2077      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2078      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2079      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2080      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2081      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2082      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2083      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2084      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2085      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2086      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
2087      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
2088      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2089      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2090      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
2091      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
2092      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
2093      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
2094      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
2095      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
2096      320,   321,   322,   323,   324,   325,     0,   412,   326,   413,
2097      414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
2098      424,     0,     0,   425,   426,     0,     0,     0,     0,     0,
2099        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2100        0,     0,   427,     0,     0,   459,     0,     0,     0,     0,
2101        0,     0,     0,   428,   429,   430,   431,     3,     4,     5,
2102        6,     7,     0,     9,    10,    11,    12,    13,    14,    15,
2103       16,    17,    18,    19,     0,     0,     0,     0,     0,     0,
2104        0,     0,     0,     0,     0,     0,    21,    22,    23,    24,
2105       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2106       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2107       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2108       55,    56,    57,    58,    59,     0,     0,     0,     0,     0,
2109        0,     0,     0,     0,    69,     0,     0,     0,     0,     0,
2110        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2111       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2112       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2113      105,   106,   107,   108,     0,     0,     0,     0,     0,     0,
2114        0,     0,     0,   118,   119,   120,   121,   122,   123,   124,
2115      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2116      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2117      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2118      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2119      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2120      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2121      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2122      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2123      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2124      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2125      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2126      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2127      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2128      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2129      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2130      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2131      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
2132      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
2133      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
2134      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
2135      325,     0,   412,   326,   413,   414,   415,   416,   417,   418,
2136      419,   420,   421,   422,   423,   424,     0,     0,   425,   426,
2137        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2138        0,     0,     0,     0,     0,     0,     0,   427,     0,     0,
2139        0,   516,     0,     0,     0,     0,     0,     0,   428,   429,
2140      430,   431,     3,     4,     5,     6,     7,     0,     9,    10,
2141       11,    12,    13,    14,    15,    16,    17,    18,    19,     0,
2142        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2143        0,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2144       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2145       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2146       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2147        0,     0,     0,     0,     0,     0,     0,     0,     0,    69,
2148        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2149        0,     0,     0,     0,     0,    85,    86,    87,    88,    89,
2150       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2151      100,   101,   102,   103,   104,   105,   106,   107,   108,     0,
2152        0,     0,     0,     0,     0,     0,     0,     0,   118,   119,
2153      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2154      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2155      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2156      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2157      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2158      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2159      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2160      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2161      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2162      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2163      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
2164      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
2165      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2166      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2167      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
2168      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
2169      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
2170      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
2171      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
2172      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
2173      320,   321,   322,   323,   324,   325,     0,   412,   326,   413,
2174      414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
2175      424,     0,     0,   425,   426,     0,     0,     0,     0,     0,
2176        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2177        0,     0,   427,     0,     0,   572,     0,     0,     0,     0,
2178        0,     0,     0,   428,   429,   430,   431,     3,     4,     5,
2179        6,     7,     0,     9,    10,    11,    12,    13,    14,    15,
2180       16,    17,    18,    19,     0,     0,     0,     0,     0,     0,
2181        0,     0,     0,     0,     0,     0,    21,    22,    23,    24,
2182       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2183       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2184       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2185       55,    56,    57,    58,    59,     0,     0,     0,     0,     0,
2186        0,     0,     0,     0,    69,     0,     0,     0,     0,     0,
2187        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2188       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2189       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2190      105,   106,   107,   108,     0,     0,     0,     0,     0,     0,
2191        0,     0,     0,   118,   119,   120,   121,   122,   123,   124,
2192      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2193      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2194      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2195      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2196      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2197      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2198      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2199      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2200      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2201      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2202      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2203      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2204      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2205      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2206      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2207      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2208      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
2209      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
2210      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
2211      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
2212      325,     0,   412,   326,   413,   414,   415,   416,   417,   418,
2213      419,   420,   421,   422,   423,   424,     0,     0,   425,   426,
2214        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2215        0,     0,     0,     0,     0,     0,     0,   427,     0,     0,
2216        0,     0,     0,     0,     0,     0,     0,   580,   428,   429,
2217      430,   431,     3,     4,     5,     6,     7,     0,     9,    10,
2218       11,    12,    13,    14,    15,    16,    17,    18,    19,     0,
2219        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2220        0,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2221       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2222       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2223       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2224        0,     0,     0,     0,     0,     0,     0,     0,     0,    69,
2225        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2226        0,     0,     0,     0,     0,    85,    86,    87,    88,    89,
2227       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2228      100,   101,   102,   103,   104,   105,   106,   107,   108,     0,
2229        0,     0,     0,     0,     0,     0,     0,     0,   118,   119,
2230      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2231      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2232      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2233      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2234      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2235      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2236      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2237      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2238      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2239      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2240      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
2241      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
2242      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2243      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2244      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
2245      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
2246      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
2247      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
2248      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
2249      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
2250      320,   321,   322,   323,   324,   325,     0,   412,   326,   413,
2251      414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
2252      424,     0,     0,   425,   426,     0,     0,     0,     0,     0,
2253        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2254        0,     0,   427,     0,     0,     0,     0,     0,     0,     0,
2255        0,     0,     0,   428,   429,   430,   431,     3,     4,     5,
2256        6,     7,     0,     9,    10,    11,    12,    13,    14,    15,
2257       16,    17,    18,    19,     0,     0,     0,     0,     0,     0,
2258        0,     0,     0,     0,     0,     0,    21,    22,    23,    24,
2259       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2260       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2261       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2262       55,    56,    57,    58,    59,     0,     0,     0,     0,     0,
2263        0,     0,     0,     0,    69,     0,     0,     0,     0,     0,
2264        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2265       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2266       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2267      105,   106,   107,   108,     0,     0,     0,     0,     0,     0,
2268        0,     0,     0,   118,   119,   120,   121,   122,   123,   124,
2269      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2270      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2271      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2272      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2273      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2274      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2275      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2276      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2277      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2278      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2279      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2280      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2281      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2282      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2283      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2284      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2285      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
2286      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
2287      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
2288      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
2289      534,     0,   412,   326,   413,   414,   415,   416,   417,   418,
2290      419,   420,   421,   422,   423,   424,     0,     0,   425,   426,
2291        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2292        0,     0,     0,     0,     0,     0,     0,   427,     0,     0,
2293        0,     0,     0,     0,     0,     0,     0,     0,   428,   429,
2294      430,   431,     3,     4,     5,     6,     7,     0,     9,    10,
2295       11,    12,    13,    14,    15,    16,    17,    18,    19,     0,
2296        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2297        0,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2298       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2299       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2300       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2301        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2302        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2303        0,     0,     0,     0,     0,    85,    86,    87,    88,    89,
2304       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2305      100,   101,   102,   103,   104,   105,   106,   107,   108,     0,
2306        0,     0,     0,     0,     0,     0,     0,     0,   118,   119,
2307      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2308      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2309      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2310      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2311      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2312      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2313      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2314      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2315      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2316      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2317      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
2318      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
2319      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2320      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2321      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
2322      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
2323      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
2324      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
2325      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
2326      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
2327      320,   321,   322,   323,   324,   325,     0,     0,   326
2328 };
2329 
2330 static const yytype_int16 yycheck[] =
2331 {
2332        0,     0,     0,   339,   347,    24,     0,    26,    27,   395,
2333       81,    30,   427,   514,   502,   516,   406,   381,   519,   456,
2334      588,   340,   453,   358,   359,   653,   340,   382,   377,   372,
2335      363,   395,   368,   691,   385,   376,   385,   695,   375,   394,
2336      377,   382,   376,   671,   375,   703,   376,   384,   382,   377,
2337      440,   375,   382,   356,   357,   377,   384,   393,   393,   394,
2338      379,   425,   426,   385,   450,   398,   481,   376,   483,   403,
2339      404,   385,   375,   377,   377,   377,   382,   376,   381,   443,
2340      384,   378,   384,   382,   376,   382,   450,   473,   576,   520,
2341      382,   365,   366,   367,   368,   369,   370,   371,   372,   373,
2342      374,   558,   559,   560,   561,   354,   355,   544,   609,   473,
2343      384,   454,   379,   376,   529,   382,   376,   453,   385,   382,
2344      456,   376,   382,   340,   514,   382,   516,   382,   385,   519,
2345      382,   382,   382,   385,   385,   385,   340,   382,   382,   707,
2346      385,   385,   380,   533,   382,   401,   402,   403,   390,   391,
2347      392,   387,   393,   389,   360,   361,   382,   383,   382,   383,
2348      379,   662,   340,   578,   379,   554,   555,   582,   340,   657,
2349      377,   556,   557,   384,   538,   385,   613,   340,   562,   563,
2350      376,   375,   377,   340,   520,   340,   395,   551,   552,   553,
2351      554,   555,   556,   557,   558,   559,   560,   561,   562,   563,
2352      564,   565,   566,   567,   568,   569,   397,   708,   544,   396,
2353      600,   601,   546,   362,   364,   385,   378,   385,   385,   609,
2354      380,   375,   375,   375,   383,   340,   377,   375,   375,   717,
2355      645,   375,   340,   376,   340,   339,   378,   378,   653,   375,
2356      375,   379,   382,   340,   376,   378,   380,   376,   385,    25,
2357      376,   379,   379,   384,   564,   385,   671,   380,   565,   567,
2358      678,   566,   372,   368,   452,   372,   333,   568,   545,   340,
2359      685,   569,   662,   648,   624,   703,   690,   613,   704,   366,
2360      648,   512,   512,   671,   512,   355,   680,   702,    -1,    -1,
2361       -1,    -1,   678,    -1,   684,    -1,    -1,    -1,    -1,    -1,
2362       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2363       -1,    -1,    -1,    -1,   678,    -1,    -1,   653,   708,    -1,
2364      339,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2365       -1,    -1,    -1,   676,    -1,   671,    -1,    -1,    -1,   339,
2366       -1,    -1,    -1,    -1,    -1,   339,    -1,   347,    -1,    -1,
2367       -1,    -1,    -1,   347,    -1,   355,   355,   355,    -1,    -1,
2368       -1,   355,   362,    -1,    -1,    -1,    -1,    -1,   368,    -1,
2369       -1,    -1,   372,    -1,   368,    -1,    -1,    -1,   372,    -1,
2370       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2371       -1,    -1,    -1,   393,    -1,    -1,    -1,    -1,   398,   393,
2372       -1,    -1,    -1,    -1,   398,    -1,    -1,    -1,    -1,    -1,
2373       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2374       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2375       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2376       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2377       -1,    -1,    -1,   453,   454,    -1,   456,    -1,    -1,   453,
2378      454,    -1,   456,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2379       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2380       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2381       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2382       -1,    -1,   502,    -1,    -1,    -1,    -1,    -1,   502,    -1,
2383       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2384      520,    -1,    -1,    -1,    -1,    -1,   520,    -1,    -1,    -1,
2385       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2386       -1,    -1,    -1,    -1,   544,    -1,    -1,    -1,    -1,    -1,
2387      544,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2388       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2389       -1,    -1,    -1,    -1,    -1,    -1,   576,    -1,    -1,    -1,
2390       -1,    -1,   576,    -1,    -1,    -1,    -1,    -1,   588,    -1,
2391       -1,    -1,    -1,    -1,   588,    -1,    -1,    -1,    -1,    -1,
2392       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2393       -1,    -1,    -1,   613,    -1,    -1,    -1,    -1,    -1,   613,
2394       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2395       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2396       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   648,    -1,
2397       -1,    -1,    -1,   653,   648,    -1,    -1,   657,    -1,   653,
2398       -1,    -1,    -1,   657,    -1,    -1,    -1,    -1,    -1,    -1,
2399       -1,   671,    -1,    -1,    -1,    -1,   676,   671,    -1,    -1,
2400       -1,    -1,   676,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2401       -1,   691,    -1,    -1,    -1,   695,    -1,   691,    -1,    -1,
2402       -1,   695,    -1,   703,    -1,    -1,    -1,   707,    -1,   703,
2403       -1,    -1,    -1,   707,    -1,    -1,    -1,   717,    -1,    -1,
2404       -1,     0,    -1,   717,     3,     4,     5,     6,     7,     8,
2405        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2406       19,    20,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2407       -1,    -1,    -1,    -1,    33,    34,    35,    36,    37,    38,
2408       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2409       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2410       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2411       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2412       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2413       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2414       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2415      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2416      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
2417      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2418      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2419      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2420      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2421      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2422      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2423      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
2424      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
2425      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
2426      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
2427      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
2428      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
2429      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
2430      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
2431      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
2432      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
2433      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
2434      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
2435      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
2436      319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
2437      329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
2438       -1,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2439       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2440       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2441       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2442       -1,    -1,    -1,    -1,    -1,    -1,   385,    -1,    -1,    -1,
2443       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2444      399,   400,   401,   402,   403,   404,     3,     4,     5,     6,
2445        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2446       17,    18,    19,    20,    21,    22,    23,    24,    -1,    26,
2447       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2448       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2449       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2450       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2451       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2452       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2453       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2454       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2455      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2456      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2457      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2458      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2459      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2460      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2461      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2462      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2463      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2464      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2465      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2466      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
2467      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
2468      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
2469      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2470      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2471      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
2472      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
2473      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
2474      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2475      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
2476      317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
2477      327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
2478      337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
2479      347,   348,   349,   350,   351,   352,   353,    -1,    -1,   356,
2480      357,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2481       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   375,    -1,
2482      377,    -1,   379,   380,    -1,    -1,    -1,    -1,   385,   386,
2483      387,   388,   389,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2484       -1,    -1,   399,   400,   401,   402,   403,   404,     3,     4,
2485        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2486       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2487       -1,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2488       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2489       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2490       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2491       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2492       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2493       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2494       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2495      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2496      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2497      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2498      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2499      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2500      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2501      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2502      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2503      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2504      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2505      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2506      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2507      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2508      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2509      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2510      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2511      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2512      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2513      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
2514      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
2515      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
2516      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
2517      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
2518      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
2519      345,   346,   347,   348,   349,   350,   351,   352,   353,    -1,
2520       -1,   356,   357,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2521       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2522      375,    -1,   377,    -1,   379,   380,    -1,    -1,    -1,    -1,
2523      385,   386,   387,   388,   389,    -1,    -1,    -1,    -1,    -1,
2524       -1,    -1,    -1,    -1,   399,   400,   401,   402,   403,   404,
2525        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2526       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2527       23,    24,    -1,    26,    27,    28,    29,    30,    31,    32,
2528       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2529       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2530       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2531       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2532       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2533       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2534       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2535      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2536      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2537      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2538      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2539      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2540      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2541      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2542      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2543      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
2544      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2545      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2546      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
2547      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
2548      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
2549      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
2550      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
2551      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
2552      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
2553      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
2554      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
2555      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
2556      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
2557      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
2558      333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
2559      343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
2560      353,    -1,    -1,   356,   357,    -1,    -1,    -1,    -1,    -1,
2561       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2562       -1,    -1,   375,    -1,   377,    -1,   379,    -1,    -1,    -1,
2563       -1,    -1,   385,   386,   387,   388,   389,    -1,    -1,    -1,
2564       -1,    -1,    -1,    -1,    -1,    -1,   399,   400,   401,   402,
2565      403,   404,     3,     4,     5,     6,     7,     8,     9,    10,
2566       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2567       21,    22,    23,    24,    -1,    26,    27,    28,    29,    30,
2568       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2569       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2570       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2571       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2572       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2573       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2574       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2575      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2576      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2577      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2578      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2579      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2580      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2581      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2582      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2583      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2584      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2585      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2586      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2587      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
2588      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
2589      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
2590      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2591      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
2592      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
2593      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
2594      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
2595      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
2596      311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
2597      321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
2598      331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
2599      341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
2600      351,   352,   353,    -1,    -1,   356,   357,    -1,    -1,    -1,
2601       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2602       -1,    -1,    -1,    -1,   375,    -1,   377,    -1,   379,    -1,
2603       -1,    -1,    -1,    -1,   385,   386,   387,   388,   389,    -1,
2604       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   399,   400,
2605      401,   402,   403,   404,     3,     4,     5,     6,     7,     8,
2606        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2607       19,    20,    21,    22,    23,    24,    -1,    26,    27,    28,
2608       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2609       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2610       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2611       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2612       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2613       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2614       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2615       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2616      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2617      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
2618      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2619      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2620      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2621      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2622      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2623      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2624      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
2625      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
2626      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
2627      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
2628      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
2629      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
2630      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
2631      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
2632      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
2633      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
2634      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
2635      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
2636      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
2637      319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
2638      329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
2639      339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
2640      349,   350,   351,   352,   353,    -1,    -1,   356,   357,    -1,
2641       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2642       -1,    -1,    -1,    -1,    -1,    -1,   375,    -1,   377,    -1,
2643       -1,    -1,    -1,    -1,    -1,    -1,   385,   386,   387,   388,
2644      389,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2645      399,   400,   401,   402,   403,   404,     3,     4,     5,     6,
2646        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2647       17,    18,    19,    20,    21,    -1,    -1,    -1,    -1,    -1,
2648       -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    35,    36,
2649       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2650       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2651       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2652       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2653       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2654       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2655       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2656      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2657      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2658      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2659      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2660      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2661      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2662      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2663      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2664      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2665      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2666      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2667      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
2668      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
2669      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
2670      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2671      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2672      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
2673      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
2674      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
2675      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2676      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
2677      317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
2678      327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
2679      337,   338,    -1,   340,   341,   342,   343,   344,   345,   346,
2680      347,   348,   349,   350,   351,   352,   353,    -1,    -1,   356,
2681      357,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2682       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   375,    -1,
2683       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   385,   386,
2684      387,   388,   389,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2685       -1,    -1,   399,   400,   401,   402,   403,   404,     3,     4,
2686        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2687       15,    16,    17,    18,    19,    20,    21,    -1,    -1,    -1,
2688       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
2689       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2690       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2691       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2692       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2693       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2694       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2695       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2696      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2697      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2698      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2699      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2700      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2701      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2702      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2703      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2704      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2705      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2706      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2707      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2708      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2709      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2710      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2711      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2712      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2713      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2714      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
2715      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
2716      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
2717      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
2718      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
2719      335,   336,   337,   338,    -1,    -1,   341,    -1,    -1,    -1,
2720       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2721       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2722       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2723       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2724      385,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2725       -1,    -1,    -1,    -1,   399,   400,   401,   402,   403,   404,
2726        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2727       13,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
2728       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2729       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2730       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2731       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2732       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2733       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2734       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2735       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2736      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2737      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2738      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2739      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2740      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2741      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2742      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2743      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2744      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
2745      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2746      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2747      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
2748      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
2749      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
2750      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
2751      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
2752      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
2753      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
2754      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
2755      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
2756      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
2757      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
2758      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
2759      333,   334,   335,   336,   337,   338,    -1,   340,   341,   342,
2760      343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
2761      353,    -1,    -1,   356,   357,    -1,    -1,    -1,    -1,    -1,
2762       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2763       -1,    -1,   375,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2764       -1,    -1,    -1,   386,   387,   388,   389,    -1,    -1,    -1,
2765       -1,    -1,    -1,    -1,    -1,    -1,   399,   400,   401,   402,
2766      403,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2767       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2768       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2769       -1,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2770       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2771       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2772       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2773       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2774       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2775       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2776      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2777      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2778      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2779      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2780      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2781      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2782      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2783      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2784      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2785      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2786      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2787      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2788      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
2789      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
2790      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
2791      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2792      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2793      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
2794      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
2795      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
2796      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
2797      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
2798      322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
2799      332,   333,   334,   335,   336,   337,   338,    -1,   340,   341,
2800       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2801       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2802       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2803       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2804       -1,    -1,    -1,   385,    -1,    -1,    -1,    -1,    -1,    -1,
2805       -1,    -1,    -1,    -1,    -1,    -1,    -1,   399,   400,   401,
2806      402,   403,     3,     4,     5,     6,     7,     8,     9,    10,
2807       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2808       21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2809       -1,    -1,    33,    34,    35,    36,    37,    38,    39,    40,
2810       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2811       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2812       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2813       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2814       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2815       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2816      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2817      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2818      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2819      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2820      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2821      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2822      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2823      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2824      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2825      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2826      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2827      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2828      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
2829      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
2830      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
2831      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2832      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
2833      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
2834      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
2835      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
2836      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
2837      311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
2838      321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
2839      331,   332,   333,   334,   335,   336,   337,   338,    -1,    -1,
2840      341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2841       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2842       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2843       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   380,
2844       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2845       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   399,   400,
2846      401,   402,   403,     3,     4,     5,     6,     7,     8,     9,
2847       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2848       20,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2849       -1,    -1,    -1,    33,    34,    35,    36,    37,    38,    39,
2850       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2851       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2852       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2853       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2854       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2855       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2856      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
2857      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
2858      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2859      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2860      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2861      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2862      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2863      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2864      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2865      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2866      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2867      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2868      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
2869      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
2870      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2871      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2872      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
2873      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
2874      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
2875      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
2876      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
2877      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
2878      320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
2879      330,   331,   332,   333,   334,   335,   336,   337,   338,    -1,
2880       -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2881       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2882       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2883       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2884      380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2885       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   399,
2886      400,   401,   402,   403,     3,     4,     5,     6,     7,     8,
2887        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2888       19,    20,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2889       -1,    -1,    -1,    -1,    33,    34,    35,    36,    37,    38,
2890       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2891       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2892       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2893       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2894       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2895       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2896       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2897      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2898      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
2899      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2900      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2901      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2902      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2903      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2904      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2905      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
2906      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
2907      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
2908      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
2909      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
2910      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
2911      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
2912      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
2913      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
2914      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
2915      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
2916      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
2917      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
2918      319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
2919      329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
2920       -1,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2921       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2922       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2923       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2924       -1,   380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2925       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2926      399,   400,   401,   402,   403,     3,     4,     5,     6,     7,
2927        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2928       18,    19,    20,    21,    -1,    -1,    -1,    -1,    -1,    -1,
2929       -1,    -1,    -1,    -1,    -1,    33,    34,    35,    36,    37,
2930       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2931       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2932       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
2933       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2934       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
2935       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2936       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2937      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
2938      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
2939      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2940      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2941      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2942      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2943      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2944      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
2945      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
2946      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
2947      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
2948      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
2949      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
2950      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
2951      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2952      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
2953      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2954      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
2955      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
2956      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
2957      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
2958      318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
2959      328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
2960      338,    -1,    -1,   341,    -1,    -1,    -1,    -1,    -1,    -1,
2961       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2962       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2963       -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,     6,     7,
2964        8,     9,    -1,    11,    12,    13,    14,    15,    16,    17,
2965       18,    19,    20,    21,    -1,    -1,    -1,    -1,    -1,    -1,
2966       -1,   399,   400,   401,   402,   403,    34,    35,    36,    37,
2967       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2968       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2969       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
2970       68,    69,    70,    71,    72,    -1,    -1,    -1,    -1,    -1,
2971       -1,    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,
2972       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2973       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2974      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
2975      118,   119,   120,   121,    -1,    -1,    -1,    -1,    -1,    -1,
2976       -1,    -1,    -1,   131,   132,   133,   134,   135,   136,   137,
2977      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2978      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2979      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2980      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2981      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
2982      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
2983      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
2984      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
2985      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
2986      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
2987      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
2988      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2989      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
2990      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2991      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
2992      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
2993      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
2994      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
2995      318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
2996      328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
2997      338,    -1,   340,   341,   342,   343,   344,   345,   346,   347,
2998      348,   349,   350,   351,   352,   353,    -1,    -1,   356,   357,
2999       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3000       -1,    -1,    -1,    -1,    -1,    -1,    -1,   375,    -1,    -1,
3001       -1,   379,   380,    -1,    -1,    -1,    -1,    -1,   386,   387,
3002      388,   389,     5,     6,     7,     8,     9,    -1,    11,    12,
3003       13,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
3004       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3005       -1,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3006       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
3007       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
3008       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3009       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    82,
3010       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3011       -1,    -1,    -1,    -1,    -1,    98,    99,   100,   101,   102,
3012      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
3013      113,   114,   115,   116,   117,   118,   119,   120,   121,    -1,
3014       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,
3015      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
3016      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
3017      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
3018      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
3019      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
3020      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
3021      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
3022      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
3023      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
3024      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
3025      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
3026      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
3027      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
3028      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
3029      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
3030      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
3031      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
3032      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
3033      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
3034      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
3035      333,   334,   335,   336,   337,   338,    -1,   340,   341,   342,
3036      343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
3037      353,    -1,    -1,   356,   357,    -1,    -1,    -1,    -1,    -1,
3038       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3039       -1,    -1,   375,    -1,    -1,   378,    -1,    -1,    -1,    -1,
3040       -1,    -1,    -1,   386,   387,   388,   389,     5,     6,     7,
3041        8,     9,    -1,    11,    12,    13,    14,    15,    16,    17,
3042       18,    19,    20,    21,    -1,    -1,    -1,    -1,    -1,    -1,
3043       -1,    -1,    -1,    -1,    -1,    -1,    34,    35,    36,    37,
3044       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3045       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
3046       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
3047       68,    69,    70,    71,    72,    -1,    -1,    -1,    -1,    -1,
3048       -1,    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,
3049       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3050       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
3051      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
3052      118,   119,   120,   121,    -1,    -1,    -1,    -1,    -1,    -1,
3053       -1,    -1,    -1,   131,   132,   133,   134,   135,   136,   137,
3054      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
3055      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
3056      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
3057      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
3058      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
3059      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
3060      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
3061      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
3062      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
3063      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
3064      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
3065      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
3066      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
3067      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
3068      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
3069      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
3070      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
3071      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
3072      318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
3073      328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
3074      338,    -1,   340,   341,   342,   343,   344,   345,   346,   347,
3075      348,   349,   350,   351,   352,   353,    -1,    -1,   356,   357,
3076       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3077       -1,    -1,    -1,    -1,    -1,    -1,    -1,   375,    -1,    -1,
3078       -1,   379,    -1,    -1,    -1,    -1,    -1,    -1,   386,   387,
3079      388,   389,     5,     6,     7,     8,     9,    -1,    11,    12,
3080       13,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
3081       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3082       -1,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3083       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
3084       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
3085       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3086       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    82,
3087       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3088       -1,    -1,    -1,    -1,    -1,    98,    99,   100,   101,   102,
3089      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
3090      113,   114,   115,   116,   117,   118,   119,   120,   121,    -1,
3091       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,
3092      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
3093      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
3094      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
3095      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
3096      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
3097      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
3098      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
3099      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
3100      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
3101      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
3102      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
3103      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
3104      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
3105      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
3106      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
3107      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
3108      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
3109      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
3110      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
3111      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
3112      333,   334,   335,   336,   337,   338,    -1,   340,   341,   342,
3113      343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
3114      353,    -1,    -1,   356,   357,    -1,    -1,    -1,    -1,    -1,
3115       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3116       -1,    -1,   375,    -1,    -1,   378,    -1,    -1,    -1,    -1,
3117       -1,    -1,    -1,   386,   387,   388,   389,     5,     6,     7,
3118        8,     9,    -1,    11,    12,    13,    14,    15,    16,    17,
3119       18,    19,    20,    21,    -1,    -1,    -1,    -1,    -1,    -1,
3120       -1,    -1,    -1,    -1,    -1,    -1,    34,    35,    36,    37,
3121       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3122       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
3123       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
3124       68,    69,    70,    71,    72,    -1,    -1,    -1,    -1,    -1,
3125       -1,    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,
3126       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3127       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
3128      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
3129      118,   119,   120,   121,    -1,    -1,    -1,    -1,    -1,    -1,
3130       -1,    -1,    -1,   131,   132,   133,   134,   135,   136,   137,
3131      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
3132      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
3133      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
3134      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
3135      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
3136      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
3137      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
3138      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
3139      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
3140      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
3141      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
3142      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
3143      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
3144      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
3145      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
3146      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
3147      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
3148      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
3149      318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
3150      328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
3151      338,    -1,   340,   341,   342,   343,   344,   345,   346,   347,
3152      348,   349,   350,   351,   352,   353,    -1,    -1,   356,   357,
3153       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3154       -1,    -1,    -1,    -1,    -1,    -1,    -1,   375,    -1,    -1,
3155       -1,    -1,    -1,    -1,    -1,    -1,    -1,   385,   386,   387,
3156      388,   389,     5,     6,     7,     8,     9,    -1,    11,    12,
3157       13,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
3158       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3159       -1,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3160       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
3161       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
3162       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3163       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    82,
3164       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3165       -1,    -1,    -1,    -1,    -1,    98,    99,   100,   101,   102,
3166      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
3167      113,   114,   115,   116,   117,   118,   119,   120,   121,    -1,
3168       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,
3169      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
3170      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
3171      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
3172      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
3173      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
3174      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
3175      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
3176      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
3177      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
3178      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
3179      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
3180      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
3181      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
3182      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
3183      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
3184      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
3185      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
3186      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
3187      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
3188      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
3189      333,   334,   335,   336,   337,   338,    -1,   340,   341,   342,
3190      343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
3191      353,    -1,    -1,   356,   357,    -1,    -1,    -1,    -1,    -1,
3192       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3193       -1,    -1,   375,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3194       -1,    -1,    -1,   386,   387,   388,   389,     5,     6,     7,
3195        8,     9,    -1,    11,    12,    13,    14,    15,    16,    17,
3196       18,    19,    20,    21,    -1,    -1,    -1,    -1,    -1,    -1,
3197       -1,    -1,    -1,    -1,    -1,    -1,    34,    35,    36,    37,
3198       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3199       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
3200       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
3201       68,    69,    70,    71,    72,    -1,    -1,    -1,    -1,    -1,
3202       -1,    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,
3203       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3204       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
3205      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
3206      118,   119,   120,   121,    -1,    -1,    -1,    -1,    -1,    -1,
3207       -1,    -1,    -1,   131,   132,   133,   134,   135,   136,   137,
3208      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
3209      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
3210      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
3211      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
3212      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
3213      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
3214      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
3215      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
3216      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
3217      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
3218      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
3219      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
3220      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
3221      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
3222      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
3223      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
3224      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
3225      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
3226      318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
3227      328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
3228      338,    -1,   340,   341,   342,   343,   344,   345,   346,   347,
3229      348,   349,   350,   351,   352,   353,    -1,    -1,   356,   357,
3230       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3231       -1,    -1,    -1,    -1,    -1,    -1,    -1,   375,    -1,    -1,
3232       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   386,   387,
3233      388,   389,     5,     6,     7,     8,     9,    -1,    11,    12,
3234       13,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
3235       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3236       -1,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3237       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
3238       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
3239       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3240       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3241       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3242       -1,    -1,    -1,    -1,    -1,    98,    99,   100,   101,   102,
3243      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
3244      113,   114,   115,   116,   117,   118,   119,   120,   121,    -1,
3245       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,
3246      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
3247      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
3248      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
3249      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
3250      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
3251      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
3252      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
3253      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
3254      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
3255      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
3256      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
3257      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
3258      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
3259      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
3260      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
3261      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
3262      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
3263      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
3264      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
3265      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
3266      333,   334,   335,   336,   337,   338,    -1,    -1,   341
3267 };
3268 
3269   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
3270      symbol of state STATE-NUM.  */
3271 static const yytype_uint16 yystos[] =
3272 {
3273        0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
3274       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
3275       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3276       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
3277       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
3278       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3279       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
3280       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
3281       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
3282      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
3283      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
3284      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
3285      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
3286      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
3287      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
3288      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
3289      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
3290      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
3291      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
3292      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
3293      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
3294      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
3295      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
3296      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
3297      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
3298      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
3299      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
3300      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
3301      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
3302      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
3303      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
3304      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
3305      333,   334,   335,   336,   337,   338,   341,   385,   399,   400,
3306      401,   402,   403,   404,   439,   440,   443,   444,   445,   446,
3307      450,   451,   452,   453,   454,   455,   458,   459,   460,   461,
3308      462,   464,   469,   470,   471,   511,   512,   513,   375,   375,
3309      340,   379,   470,   340,   385,   385,   514,   376,   382,   447,
3310      448,   449,   459,   464,   382,   385,   340,   340,   385,   460,
3311      464,   393,   466,   467,     0,   512,   340,   463,    81,   340,
3312      456,   457,   379,   473,   464,   377,   385,   465,   379,   490,
3313      448,   447,   449,   340,   340,   375,   384,   465,   379,   382,
3314      385,   442,   340,   342,   343,   344,   345,   346,   347,   348,
3315      349,   350,   351,   352,   353,   356,   357,   375,   386,   387,
3316      388,   389,   409,   410,   411,   413,   414,   415,   416,   417,
3317      418,   419,   420,   421,   462,   464,   468,   465,   376,   382,
3318      384,   376,   382,   472,   459,   464,   474,   475,   385,   378,
3319      420,   422,   423,   424,   425,   426,   427,   428,   429,   430,
3320      431,   432,   433,   377,   385,    22,    23,    24,    26,    27,
3321       28,    29,    30,    31,    32,   339,   377,   379,   380,   385,
3322      420,   433,   435,   437,   439,   443,   462,   464,   480,   481,
3323      482,   483,   491,   492,   493,   494,   497,   498,   501,   502,
3324      503,   510,   515,   465,   384,   465,   379,   435,   478,   384,
3325      441,   340,   382,   385,   420,   420,   437,   356,   357,   377,
3326      381,   376,   376,   382,   338,   435,   375,   420,   382,   394,
3327      340,   433,   438,   457,   474,   464,   340,   476,   477,   380,
3328      475,   390,   391,   392,   387,   389,   354,   355,   358,   359,
3329      393,   394,   360,   361,   397,   396,   395,   362,   364,   363,
3330      398,   378,   378,   433,   385,   385,   505,   375,   375,   385,
3331      385,   437,   375,   437,   383,   375,   377,   380,   484,   365,
3332      366,   367,   368,   369,   370,   371,   372,   373,   374,   384,
3333      436,   382,   385,   380,   481,   494,   498,   503,   478,   384,
3334      478,   479,   478,   474,   340,   376,   412,   437,   340,   435,
3335      420,   380,   476,   465,   382,   385,   420,   420,   420,   422,
3336      422,   423,   423,   424,   424,   424,   424,   425,   425,   426,
3337      427,   428,   429,   430,   431,   434,   378,   481,   506,   437,
3338      385,   437,   383,   504,   340,   516,   517,   491,   435,   435,
3339      478,   380,   382,   380,   378,   385,   477,   437,   339,   480,
3340      492,   507,   376,   376,   437,   452,   459,   496,   375,   378,
3341      382,   485,   380,   478,   383,   375,   496,   508,   509,   487,
3342      488,   489,   495,   499,   340,   376,   438,   378,   517,   380,
3343      435,   437,   385,   376,    25,   483,   482,   379,   384,   482,
3344      486,   490,   376,   376,   437,   486,   487,   491,   500,   478,
3345      385,   380
3346 };
3347 
3348   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
3349 static const yytype_uint16 yyr1[] =
3350 {
3351        0,   408,   409,   410,   410,   410,   410,   410,   410,   410,
3352      410,   410,   410,   410,   410,   410,   410,   411,   411,   411,
3353      411,   411,   411,   412,   413,   414,   415,   415,   416,   416,
3354      417,   417,   418,   419,   419,   419,   420,   420,   420,   420,
3355      421,   421,   421,   421,   422,   422,   422,   422,   423,   423,
3356      423,   424,   424,   424,   425,   425,   425,   425,   425,   426,
3357      426,   426,   427,   427,   428,   428,   429,   429,   430,   430,
3358      431,   431,   432,   432,   433,   434,   433,   435,   435,   436,
3359      436,   436,   436,   436,   436,   436,   436,   436,   436,   436,
3360      437,   437,   438,   439,   439,   439,   439,   439,   439,   439,
3361      439,   439,   441,   440,   442,   442,   443,   444,   444,   445,
3362      445,   446,   447,   447,   448,   448,   448,   448,   449,   450,
3363      450,   450,   450,   450,   451,   451,   451,   451,   451,   452,
3364      452,   453,   454,   454,   454,   454,   454,   454,   454,   454,
3365      455,   456,   456,   457,   457,   457,   458,   459,   459,   460,
3366      460,   460,   460,   460,   460,   460,   461,   461,   461,   461,
3367      461,   461,   461,   461,   461,   461,   461,   461,   461,   461,
3368      461,   461,   461,   461,   461,   461,   461,   461,   461,   461,
3369      461,   461,   461,   461,   461,   462,   463,   463,   464,   464,
3370      465,   465,   465,   465,   466,   466,   467,   468,   468,   469,
3371      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3372      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3373      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3374      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3375      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3376      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3377      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3378      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3379      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3380      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3381      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3382      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3383      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3384      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3385      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3386      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3387      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3388      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3389      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3390      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3391      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3392      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3393      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3394      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3395      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3396      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3397      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3398      469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
3399      469,   469,   469,   469,   469,   469,   469,   470,   470,   470,
3400      472,   471,   473,   471,   474,   474,   475,   475,   476,   476,
3401      477,   477,   478,   478,   478,   479,   479,   480,   481,   481,
3402      482,   482,   482,   482,   482,   482,   482,   483,   484,   485,
3403      483,   486,   486,   488,   487,   489,   487,   490,   490,   491,
3404      491,   492,   492,   493,   493,   494,   495,   495,   496,   496,
3405      497,   497,   499,   498,   500,   500,   501,   501,   502,   502,
3406      504,   503,   505,   503,   506,   503,   507,   507,   508,   508,
3407      509,   509,   510,   510,   510,   510,   510,   511,   511,   512,
3408      512,   512,   514,   513,   515,   516,   516,   517,   517
3409 };
3410 
3411   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
3412 static const yytype_uint8 yyr2[] =
3413 {
3414        0,     2,     1,     1,     1,     1,     1,     1,     1,     1,
3415        1,     1,     1,     1,     1,     1,     3,     1,     4,     1,
3416        3,     2,     2,     1,     1,     1,     2,     2,     2,     1,
3417        2,     3,     2,     1,     1,     1,     1,     2,     2,     2,
3418        1,     1,     1,     1,     1,     3,     3,     3,     1,     3,
3419        3,     1,     3,     3,     1,     3,     3,     3,     3,     1,
3420        3,     3,     1,     3,     1,     3,     1,     3,     1,     3,
3421        1,     3,     1,     3,     1,     0,     6,     1,     3,     1,
3422        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3423        1,     3,     1,     2,     2,     4,     2,     3,     4,     2,
3424        3,     4,     0,     6,     2,     3,     2,     1,     1,     2,
3425        3,     3,     2,     3,     2,     1,     2,     1,     1,     1,
3426        3,     4,     6,     5,     1,     2,     3,     5,     4,     1,
3427        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3428        4,     1,     3,     1,     3,     1,     1,     1,     2,     1,
3429        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3430        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3431        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3432        1,     1,     1,     1,     4,     1,     1,     3,     2,     3,
3433        2,     3,     3,     4,     1,     0,     3,     1,     3,     1,
3434        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3435        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3436        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3437        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3438        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3439        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3440        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3441        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3442        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3443        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3444        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3445        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3446        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3447        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3448        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3449        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3450        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3451        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3452        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3453        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3454        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3455        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3456        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3457        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3458        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3459        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3460        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3461        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3462        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3463        0,     6,     0,     5,     1,     2,     3,     4,     1,     3,
3464        1,     2,     1,     3,     4,     1,     3,     1,     1,     1,
3465        1,     1,     1,     1,     1,     1,     1,     2,     0,     0,
3466        5,     1,     1,     0,     2,     0,     2,     2,     3,     1,
3467        2,     1,     2,     1,     2,     5,     3,     1,     1,     4,
3468        1,     2,     0,     8,     0,     1,     3,     2,     1,     2,
3469        0,     6,     0,     8,     0,     7,     1,     1,     1,     0,
3470        2,     3,     2,     2,     2,     3,     2,     1,     2,     1,
3471        1,     1,     0,     3,     5,     1,     3,     1,     4
3472 };
3473 
3474 
3475 #define yyerrok         (yyerrstatus = 0)
3476 #define yyclearin       (yychar = YYEMPTY)
3477 #define YYEMPTY         (-2)
3478 #define YYEOF           0
3479 
3480 #define YYACCEPT        goto yyacceptlab
3481 #define YYABORT         goto yyabortlab
3482 #define YYERROR         goto yyerrorlab
3483 
3484 
3485 #define YYRECOVERING()  (!!yyerrstatus)
3486 
3487 #define YYBACKUP(Token, Value)                                  \
3488 do                                                              \
3489   if (yychar == YYEMPTY)                                        \
3490     {                                                           \
3491       yychar = (Token);                                         \
3492       yylval = (Value);                                         \
3493       YYPOPSTACK (yylen);                                       \
3494       yystate = *yyssp;                                         \
3495       goto yybackup;                                            \
3496     }                                                           \
3497   else                                                          \
3498     {                                                           \
3499       yyerror (pParseContext, YY_("syntax error: cannot back up")); \
3500       YYERROR;                                                  \
3501     }                                                           \
3502 while (0)
3503 
3504 /* Error token number */
3505 #define YYTERROR        1
3506 #define YYERRCODE       256
3507 
3508 
3509 
3510 /* Enable debugging if requested.  */
3511 #if YYDEBUG
3512 
3513 # ifndef YYFPRINTF
3514 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3515 #  define YYFPRINTF fprintf
3516 # endif
3517 
3518 # define YYDPRINTF(Args)                        \
3519 do {                                            \
3520   if (yydebug)                                  \
3521     YYFPRINTF Args;                             \
3522 } while (0)
3523 
3524 /* This macro is provided for backward compatibility. */
3525 #ifndef YY_LOCATION_PRINT
3526 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3527 #endif
3528 
3529 
3530 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
3531 do {                                                                      \
3532   if (yydebug)                                                            \
3533     {                                                                     \
3534       YYFPRINTF (stderr, "%s ", Title);                                   \
3535       yy_symbol_print (stderr,                                            \
3536                   Type, Value, pParseContext); \
3537       YYFPRINTF (stderr, "\n");                                           \
3538     }                                                                     \
3539 } while (0)
3540 
3541 
3542 /*----------------------------------------.
3543 | Print this symbol's value on YYOUTPUT.  |
3544 `----------------------------------------*/
3545 
3546 static void
yy_symbol_value_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep,glslang::TParseContext * pParseContext)3547 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
3548 {
3549   FILE *yyo = yyoutput;
3550   YYUSE (yyo);
3551   YYUSE (pParseContext);
3552   if (!yyvaluep)
3553     return;
3554 # ifdef YYPRINT
3555   if (yytype < YYNTOKENS)
3556     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3557 # endif
3558   YYUSE (yytype);
3559 }
3560 
3561 
3562 /*--------------------------------.
3563 | Print this symbol on YYOUTPUT.  |
3564 `--------------------------------*/
3565 
3566 static void
yy_symbol_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep,glslang::TParseContext * pParseContext)3567 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
3568 {
3569   YYFPRINTF (yyoutput, "%s %s (",
3570              yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
3571 
3572   yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext);
3573   YYFPRINTF (yyoutput, ")");
3574 }
3575 
3576 /*------------------------------------------------------------------.
3577 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
3578 | TOP (included).                                                   |
3579 `------------------------------------------------------------------*/
3580 
3581 static void
yy_stack_print(yytype_int16 * yybottom,yytype_int16 * yytop)3582 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
3583 {
3584   YYFPRINTF (stderr, "Stack now");
3585   for (; yybottom <= yytop; yybottom++)
3586     {
3587       int yybot = *yybottom;
3588       YYFPRINTF (stderr, " %d", yybot);
3589     }
3590   YYFPRINTF (stderr, "\n");
3591 }
3592 
3593 # define YY_STACK_PRINT(Bottom, Top)                            \
3594 do {                                                            \
3595   if (yydebug)                                                  \
3596     yy_stack_print ((Bottom), (Top));                           \
3597 } while (0)
3598 
3599 
3600 /*------------------------------------------------.
3601 | Report that the YYRULE is going to be reduced.  |
3602 `------------------------------------------------*/
3603 
3604 static void
yy_reduce_print(yytype_int16 * yyssp,YYSTYPE * yyvsp,int yyrule,glslang::TParseContext * pParseContext)3605 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext)
3606 {
3607   unsigned long int yylno = yyrline[yyrule];
3608   int yynrhs = yyr2[yyrule];
3609   int yyi;
3610   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3611              yyrule - 1, yylno);
3612   /* The symbols being reduced.  */
3613   for (yyi = 0; yyi < yynrhs; yyi++)
3614     {
3615       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
3616       yy_symbol_print (stderr,
3617                        yystos[yyssp[yyi + 1 - yynrhs]],
3618                        &(yyvsp[(yyi + 1) - (yynrhs)])
3619                                               , pParseContext);
3620       YYFPRINTF (stderr, "\n");
3621     }
3622 }
3623 
3624 # define YY_REDUCE_PRINT(Rule)          \
3625 do {                                    \
3626   if (yydebug)                          \
3627     yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \
3628 } while (0)
3629 
3630 /* Nonzero means print parse trace.  It is left uninitialized so that
3631    multiple parsers can coexist.  */
3632 int yydebug;
3633 #else /* !YYDEBUG */
3634 # define YYDPRINTF(Args)
3635 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3636 # define YY_STACK_PRINT(Bottom, Top)
3637 # define YY_REDUCE_PRINT(Rule)
3638 #endif /* !YYDEBUG */
3639 
3640 
3641 /* YYINITDEPTH -- initial size of the parser's stacks.  */
3642 #ifndef YYINITDEPTH
3643 # define YYINITDEPTH 200
3644 #endif
3645 
3646 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3647    if the built-in stack extension method is used).
3648 
3649    Do not make this value too large; the results are undefined if
3650    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3651    evaluated with infinite-precision integer arithmetic.  */
3652 
3653 #ifndef YYMAXDEPTH
3654 # define YYMAXDEPTH 10000
3655 #endif
3656 
3657 
3658 #if YYERROR_VERBOSE
3659 
3660 # ifndef yystrlen
3661 #  if defined __GLIBC__ && defined _STRING_H
3662 #   define yystrlen strlen
3663 #  else
3664 /* Return the length of YYSTR.  */
3665 static YYSIZE_T
yystrlen(const char * yystr)3666 yystrlen (const char *yystr)
3667 {
3668   YYSIZE_T yylen;
3669   for (yylen = 0; yystr[yylen]; yylen++)
3670     continue;
3671   return yylen;
3672 }
3673 #  endif
3674 # endif
3675 
3676 # ifndef yystpcpy
3677 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3678 #   define yystpcpy stpcpy
3679 #  else
3680 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3681    YYDEST.  */
3682 static char *
yystpcpy(char * yydest,const char * yysrc)3683 yystpcpy (char *yydest, const char *yysrc)
3684 {
3685   char *yyd = yydest;
3686   const char *yys = yysrc;
3687 
3688   while ((*yyd++ = *yys++) != '\0')
3689     continue;
3690 
3691   return yyd - 1;
3692 }
3693 #  endif
3694 # endif
3695 
3696 # ifndef yytnamerr
3697 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3698    quotes and backslashes, so that it's suitable for yyerror.  The
3699    heuristic is that double-quoting is unnecessary unless the string
3700    contains an apostrophe, a comma, or backslash (other than
3701    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
3702    null, do not copy; instead, return the length of what the result
3703    would have been.  */
3704 static YYSIZE_T
yytnamerr(char * yyres,const char * yystr)3705 yytnamerr (char *yyres, const char *yystr)
3706 {
3707   if (*yystr == '"')
3708     {
3709       YYSIZE_T yyn = 0;
3710       char const *yyp = yystr;
3711 
3712       for (;;)
3713         switch (*++yyp)
3714           {
3715           case '\'':
3716           case ',':
3717             goto do_not_strip_quotes;
3718 
3719           case '\\':
3720             if (*++yyp != '\\')
3721               goto do_not_strip_quotes;
3722             /* Fall through.  */
3723           default:
3724             if (yyres)
3725               yyres[yyn] = *yyp;
3726             yyn++;
3727             break;
3728 
3729           case '"':
3730             if (yyres)
3731               yyres[yyn] = '\0';
3732             return yyn;
3733           }
3734     do_not_strip_quotes: ;
3735     }
3736 
3737   if (! yyres)
3738     return yystrlen (yystr);
3739 
3740   return yystpcpy (yyres, yystr) - yyres;
3741 }
3742 # endif
3743 
3744 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
3745    about the unexpected token YYTOKEN for the state stack whose top is
3746    YYSSP.
3747 
3748    Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
3749    not large enough to hold the message.  In that case, also set
3750    *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
3751    required number of bytes is too large to store.  */
3752 static int
yysyntax_error(YYSIZE_T * yymsg_alloc,char ** yymsg,yytype_int16 * yyssp,int yytoken)3753 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
3754                 yytype_int16 *yyssp, int yytoken)
3755 {
3756   YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
3757   YYSIZE_T yysize = yysize0;
3758   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3759   /* Internationalized format string. */
3760   const char *yyformat = YY_NULLPTR;
3761   /* Arguments of yyformat. */
3762   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3763   /* Number of reported tokens (one for the "unexpected", one per
3764      "expected"). */
3765   int yycount = 0;
3766 
3767   /* There are many possibilities here to consider:
3768      - If this state is a consistent state with a default action, then
3769        the only way this function was invoked is if the default action
3770        is an error action.  In that case, don't check for expected
3771        tokens because there are none.
3772      - The only way there can be no lookahead present (in yychar) is if
3773        this state is a consistent state with a default action.  Thus,
3774        detecting the absence of a lookahead is sufficient to determine
3775        that there is no unexpected or expected token to report.  In that
3776        case, just report a simple "syntax error".
3777      - Don't assume there isn't a lookahead just because this state is a
3778        consistent state with a default action.  There might have been a
3779        previous inconsistent state, consistent state with a non-default
3780        action, or user semantic action that manipulated yychar.
3781      - Of course, the expected token list depends on states to have
3782        correct lookahead information, and it depends on the parser not
3783        to perform extra reductions after fetching a lookahead from the
3784        scanner and before detecting a syntax error.  Thus, state merging
3785        (from LALR or IELR) and default reductions corrupt the expected
3786        token list.  However, the list is correct for canonical LR with
3787        one exception: it will still contain any token that will not be
3788        accepted due to an error action in a later state.
3789   */
3790   if (yytoken != YYEMPTY)
3791     {
3792       int yyn = yypact[*yyssp];
3793       yyarg[yycount++] = yytname[yytoken];
3794       if (!yypact_value_is_default (yyn))
3795         {
3796           /* Start YYX at -YYN if negative to avoid negative indexes in
3797              YYCHECK.  In other words, skip the first -YYN actions for
3798              this state because they are default actions.  */
3799           int yyxbegin = yyn < 0 ? -yyn : 0;
3800           /* Stay within bounds of both yycheck and yytname.  */
3801           int yychecklim = YYLAST - yyn + 1;
3802           int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3803           int yyx;
3804 
3805           for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3806             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
3807                 && !yytable_value_is_error (yytable[yyx + yyn]))
3808               {
3809                 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3810                   {
3811                     yycount = 1;
3812                     yysize = yysize0;
3813                     break;
3814                   }
3815                 yyarg[yycount++] = yytname[yyx];
3816                 {
3817                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
3818                   if (! (yysize <= yysize1
3819                          && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3820                     return 2;
3821                   yysize = yysize1;
3822                 }
3823               }
3824         }
3825     }
3826 
3827   switch (yycount)
3828     {
3829 # define YYCASE_(N, S)                      \
3830       case N:                               \
3831         yyformat = S;                       \
3832       break
3833       YYCASE_(0, YY_("syntax error"));
3834       YYCASE_(1, YY_("syntax error, unexpected %s"));
3835       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
3836       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
3837       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
3838       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
3839 # undef YYCASE_
3840     }
3841 
3842   {
3843     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
3844     if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3845       return 2;
3846     yysize = yysize1;
3847   }
3848 
3849   if (*yymsg_alloc < yysize)
3850     {
3851       *yymsg_alloc = 2 * yysize;
3852       if (! (yysize <= *yymsg_alloc
3853              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
3854         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
3855       return 1;
3856     }
3857 
3858   /* Avoid sprintf, as that infringes on the user's name space.
3859      Don't have undefined behavior even if the translation
3860      produced a string with the wrong number of "%s"s.  */
3861   {
3862     char *yyp = *yymsg;
3863     int yyi = 0;
3864     while ((*yyp = *yyformat) != '\0')
3865       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
3866         {
3867           yyp += yytnamerr (yyp, yyarg[yyi++]);
3868           yyformat += 2;
3869         }
3870       else
3871         {
3872           yyp++;
3873           yyformat++;
3874         }
3875   }
3876   return 0;
3877 }
3878 #endif /* YYERROR_VERBOSE */
3879 
3880 /*-----------------------------------------------.
3881 | Release the memory associated to this symbol.  |
3882 `-----------------------------------------------*/
3883 
3884 static void
yydestruct(const char * yymsg,int yytype,YYSTYPE * yyvaluep,glslang::TParseContext * pParseContext)3885 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext)
3886 {
3887   YYUSE (yyvaluep);
3888   YYUSE (pParseContext);
3889   if (!yymsg)
3890     yymsg = "Deleting";
3891   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3892 
3893   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3894   YYUSE (yytype);
3895   YY_IGNORE_MAYBE_UNINITIALIZED_END
3896 }
3897 
3898 
3899 
3900 
3901 /*----------.
3902 | yyparse.  |
3903 `----------*/
3904 
3905 int
yyparse(glslang::TParseContext * pParseContext)3906 yyparse (glslang::TParseContext* pParseContext)
3907 {
3908 /* The lookahead symbol.  */
3909 int yychar;
3910 
3911 
3912 /* The semantic value of the lookahead symbol.  */
3913 /* Default value used for initialization, for pacifying older GCCs
3914    or non-GCC compilers.  */
3915 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
3916 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
3917 
3918     /* Number of syntax errors so far.  */
3919     int yynerrs;
3920 
3921     int yystate;
3922     /* Number of tokens to shift before error messages enabled.  */
3923     int yyerrstatus;
3924 
3925     /* The stacks and their tools:
3926        'yyss': related to states.
3927        'yyvs': related to semantic values.
3928 
3929        Refer to the stacks through separate pointers, to allow yyoverflow
3930        to reallocate them elsewhere.  */
3931 
3932     /* The state stack.  */
3933     yytype_int16 yyssa[YYINITDEPTH];
3934     yytype_int16 *yyss;
3935     yytype_int16 *yyssp;
3936 
3937     /* The semantic value stack.  */
3938     YYSTYPE yyvsa[YYINITDEPTH];
3939     YYSTYPE *yyvs;
3940     YYSTYPE *yyvsp;
3941 
3942     YYSIZE_T yystacksize;
3943 
3944   int yyn;
3945   int yyresult;
3946   /* Lookahead token as an internal (translated) token number.  */
3947   int yytoken = 0;
3948   /* The variables used to return semantic value and location from the
3949      action routines.  */
3950   YYSTYPE yyval;
3951 
3952 #if YYERROR_VERBOSE
3953   /* Buffer for error messages, and its allocated size.  */
3954   char yymsgbuf[128];
3955   char *yymsg = yymsgbuf;
3956   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
3957 #endif
3958 
3959 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
3960 
3961   /* The number of symbols on the RHS of the reduced rule.
3962      Keep to zero when no symbol should be popped.  */
3963   int yylen = 0;
3964 
3965   yyssp = yyss = yyssa;
3966   yyvsp = yyvs = yyvsa;
3967   yystacksize = YYINITDEPTH;
3968 
3969   YYDPRINTF ((stderr, "Starting parse\n"));
3970 
3971   yystate = 0;
3972   yyerrstatus = 0;
3973   yynerrs = 0;
3974   yychar = YYEMPTY; /* Cause a token to be read.  */
3975   goto yysetstate;
3976 
3977 /*------------------------------------------------------------.
3978 | yynewstate -- Push a new state, which is found in yystate.  |
3979 `------------------------------------------------------------*/
3980  yynewstate:
3981   /* In all cases, when you get here, the value and location stacks
3982      have just been pushed.  So pushing a state here evens the stacks.  */
3983   yyssp++;
3984 
3985  yysetstate:
3986   *yyssp = yystate;
3987 
3988   if (yyss + yystacksize - 1 <= yyssp)
3989     {
3990       /* Get the current used size of the three stacks, in elements.  */
3991       YYSIZE_T yysize = yyssp - yyss + 1;
3992 
3993 #ifdef yyoverflow
3994       {
3995         /* Give user a chance to reallocate the stack.  Use copies of
3996            these so that the &'s don't force the real ones into
3997            memory.  */
3998         YYSTYPE *yyvs1 = yyvs;
3999         yytype_int16 *yyss1 = yyss;
4000 
4001         /* Each stack pointer address is followed by the size of the
4002            data in use in that stack, in bytes.  This used to be a
4003            conditional around just the two extra args, but that might
4004            be undefined if yyoverflow is a macro.  */
4005         yyoverflow (YY_("memory exhausted"),
4006                     &yyss1, yysize * sizeof (*yyssp),
4007                     &yyvs1, yysize * sizeof (*yyvsp),
4008                     &yystacksize);
4009 
4010         yyss = yyss1;
4011         yyvs = yyvs1;
4012       }
4013 #else /* no yyoverflow */
4014 # ifndef YYSTACK_RELOCATE
4015       goto yyexhaustedlab;
4016 # else
4017       /* Extend the stack our own way.  */
4018       if (YYMAXDEPTH <= yystacksize)
4019         goto yyexhaustedlab;
4020       yystacksize *= 2;
4021       if (YYMAXDEPTH < yystacksize)
4022         yystacksize = YYMAXDEPTH;
4023 
4024       {
4025         yytype_int16 *yyss1 = yyss;
4026         union yyalloc *yyptr =
4027           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
4028         if (! yyptr)
4029           goto yyexhaustedlab;
4030         YYSTACK_RELOCATE (yyss_alloc, yyss);
4031         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
4032 #  undef YYSTACK_RELOCATE
4033         if (yyss1 != yyssa)
4034           YYSTACK_FREE (yyss1);
4035       }
4036 # endif
4037 #endif /* no yyoverflow */
4038 
4039       yyssp = yyss + yysize - 1;
4040       yyvsp = yyvs + yysize - 1;
4041 
4042       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
4043                   (unsigned long int) yystacksize));
4044 
4045       if (yyss + yystacksize - 1 <= yyssp)
4046         YYABORT;
4047     }
4048 
4049   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4050 
4051   if (yystate == YYFINAL)
4052     YYACCEPT;
4053 
4054   goto yybackup;
4055 
4056 /*-----------.
4057 | yybackup.  |
4058 `-----------*/
4059 yybackup:
4060 
4061   /* Do appropriate processing given the current state.  Read a
4062      lookahead token if we need one and don't already have one.  */
4063 
4064   /* First try to decide what to do without reference to lookahead token.  */
4065   yyn = yypact[yystate];
4066   if (yypact_value_is_default (yyn))
4067     goto yydefault;
4068 
4069   /* Not known => get a lookahead token if don't already have one.  */
4070 
4071   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
4072   if (yychar == YYEMPTY)
4073     {
4074       YYDPRINTF ((stderr, "Reading a token: "));
4075       yychar = yylex (&yylval, parseContext);
4076     }
4077 
4078   if (yychar <= YYEOF)
4079     {
4080       yychar = yytoken = YYEOF;
4081       YYDPRINTF ((stderr, "Now at end of input.\n"));
4082     }
4083   else
4084     {
4085       yytoken = YYTRANSLATE (yychar);
4086       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
4087     }
4088 
4089   /* If the proper action on seeing token YYTOKEN is to reduce or to
4090      detect an error, take that action.  */
4091   yyn += yytoken;
4092   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
4093     goto yydefault;
4094   yyn = yytable[yyn];
4095   if (yyn <= 0)
4096     {
4097       if (yytable_value_is_error (yyn))
4098         goto yyerrlab;
4099       yyn = -yyn;
4100       goto yyreduce;
4101     }
4102 
4103   /* Count tokens shifted since error; after three, turn off error
4104      status.  */
4105   if (yyerrstatus)
4106     yyerrstatus--;
4107 
4108   /* Shift the lookahead token.  */
4109   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
4110 
4111   /* Discard the shifted token.  */
4112   yychar = YYEMPTY;
4113 
4114   yystate = yyn;
4115   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4116   *++yyvsp = yylval;
4117   YY_IGNORE_MAYBE_UNINITIALIZED_END
4118 
4119   goto yynewstate;
4120 
4121 
4122 /*-----------------------------------------------------------.
4123 | yydefault -- do the default action for the current state.  |
4124 `-----------------------------------------------------------*/
4125 yydefault:
4126   yyn = yydefact[yystate];
4127   if (yyn == 0)
4128     goto yyerrlab;
4129   goto yyreduce;
4130 
4131 
4132 /*-----------------------------.
4133 | yyreduce -- Do a reduction.  |
4134 `-----------------------------*/
4135 yyreduce:
4136   /* yyn is the number of a rule to reduce with.  */
4137   yylen = yyr2[yyn];
4138 
4139   /* If YYLEN is nonzero, implement the default value of the action:
4140      '$$ = $1'.
4141 
4142      Otherwise, the following line sets YYVAL to garbage.
4143      This behavior is undocumented and Bison
4144      users should not rely upon it.  Assigning to YYVAL
4145      unconditionally makes the parser a bit smaller, and it avoids a
4146      GCC warning that YYVAL may be used uninitialized.  */
4147   yyval = yyvsp[1-yylen];
4148 
4149 
4150   YY_REDUCE_PRINT (yyn);
4151   switch (yyn)
4152     {
4153         case 2:
4154 #line 302 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4155     {
4156         (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
4157     }
4158 #line 4159 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4159     break;
4160 
4161   case 3:
4162 #line 308 "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 4:
4170 #line 311 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4171     {
4172         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
4173         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4174     }
4175 #line 4176 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4176     break;
4177 
4178   case 5:
4179 #line 315 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4180     {
4181         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
4182         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4183     }
4184 #line 4185 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4185     break;
4186 
4187   case 6:
4188 #line 319 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4189     {
4190         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4191     }
4192 #line 4193 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4193     break;
4194 
4195   case 7:
4196 #line 322 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4197     {
4198         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
4199         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4200     }
4201 #line 4202 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4202     break;
4203 
4204   case 8:
4205 #line 326 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4206     {
4207         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
4208         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
4209     }
4210 #line 4211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4211     break;
4212 
4213   case 9:
4214 #line 330 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4215     {
4216         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
4217         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
4218     }
4219 #line 4220 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4220     break;
4221 
4222   case 10:
4223 #line 334 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4224     {
4225         parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal");
4226         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4227     }
4228 #line 4229 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4229     break;
4230 
4231   case 11:
4232 #line 338 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4233     {
4234         parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal");
4235         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4236     }
4237 #line 4238 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4238     break;
4239 
4240   case 12:
4241 #line 342 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4242     {
4243         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
4244     }
4245 #line 4246 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4246     break;
4247 
4248   case 13:
4249 #line 345 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4250     {
4251         parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
4252         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
4253     }
4254 #line 4255 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4255     break;
4256 
4257   case 14:
4258 #line 349 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4259     {
4260         parseContext.float16Check((yyvsp[0].lex).loc, "half float literal");
4261         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true);
4262     }
4263 #line 4264 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4264     break;
4265 
4266   case 15:
4267 #line 353 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4268     {
4269         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
4270     }
4271 #line 4272 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4272     break;
4273 
4274   case 16:
4275 #line 356 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4276     {
4277         (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
4278         if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
4279             (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
4280     }
4281 #line 4282 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4282     break;
4283 
4284   case 17:
4285 #line 364 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4286     {
4287         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4288     }
4289 #line 4290 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4290     break;
4291 
4292   case 18:
4293 #line 367 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4294     {
4295         (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
4296     }
4297 #line 4298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4298     break;
4299 
4300   case 19:
4301 #line 370 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4302     {
4303         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4304     }
4305 #line 4306 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4306     break;
4307 
4308   case 20:
4309 #line 373 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4310     {
4311         (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
4312     }
4313 #line 4314 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4314     break;
4315 
4316   case 21:
4317 #line 376 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4318     {
4319         parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
4320         parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
4321         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
4322     }
4323 #line 4324 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4324     break;
4325 
4326   case 22:
4327 #line 381 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4328     {
4329         parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
4330         parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
4331         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
4332     }
4333 #line 4334 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4334     break;
4335 
4336   case 23:
4337 #line 389 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4338     {
4339         parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
4340         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4341     }
4342 #line 4343 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4343     break;
4344 
4345   case 24:
4346 #line 396 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4347     {
4348         (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
4349         delete (yyvsp[0].interm).function;
4350     }
4351 #line 4352 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4352     break;
4353 
4354   case 25:
4355 #line 403 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4356     {
4357         (yyval.interm) = (yyvsp[0].interm);
4358     }
4359 #line 4360 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4360     break;
4361 
4362   case 26:
4363 #line 409 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4364     {
4365         (yyval.interm) = (yyvsp[-1].interm);
4366         (yyval.interm).loc = (yyvsp[0].lex).loc;
4367     }
4368 #line 4369 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4369     break;
4370 
4371   case 27:
4372 #line 413 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4373     {
4374         (yyval.interm) = (yyvsp[-1].interm);
4375         (yyval.interm).loc = (yyvsp[0].lex).loc;
4376     }
4377 #line 4378 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4378     break;
4379 
4380   case 28:
4381 #line 420 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4382     {
4383         (yyval.interm) = (yyvsp[-1].interm);
4384     }
4385 #line 4386 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4386     break;
4387 
4388   case 29:
4389 #line 423 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4390     {
4391         (yyval.interm) = (yyvsp[0].interm);
4392     }
4393 #line 4394 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4394     break;
4395 
4396   case 30:
4397 #line 429 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4398     {
4399         TParameter param = { 0, new TType };
4400         param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
4401         (yyvsp[-1].interm).function->addParameter(param);
4402         (yyval.interm).function = (yyvsp[-1].interm).function;
4403         (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
4404     }
4405 #line 4406 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4406     break;
4407 
4408   case 31:
4409 #line 436 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4410     {
4411         TParameter param = { 0, new TType };
4412         param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
4413         (yyvsp[-2].interm).function->addParameter(param);
4414         (yyval.interm).function = (yyvsp[-2].interm).function;
4415         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
4416     }
4417 #line 4418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4418     break;
4419 
4420   case 32:
4421 #line 446 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4422     {
4423         (yyval.interm) = (yyvsp[-1].interm);
4424     }
4425 #line 4426 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4426     break;
4427 
4428   case 33:
4429 #line 454 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4430     {
4431         // Constructor
4432         (yyval.interm).intermNode = 0;
4433         (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
4434     }
4435 #line 4436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4436     break;
4437 
4438   case 34:
4439 #line 459 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4440     {
4441         //
4442         // Should be a method or subroutine call, but we haven't recognized the arguments yet.
4443         //
4444         (yyval.interm).function = 0;
4445         (yyval.interm).intermNode = 0;
4446 
4447         TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode();
4448         if (method) {
4449             (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength);
4450             (yyval.interm).intermNode = method->getObject();
4451         } else {
4452             TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode();
4453             if (symbol) {
4454                 parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName());
4455                 TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid));
4456                 (yyval.interm).function = function;
4457             } else
4458                 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", "");
4459         }
4460 
4461         if ((yyval.interm).function == 0) {
4462             // error recover
4463             TString* empty = NewPoolTString("");
4464             (yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull);
4465         }
4466     }
4467 #line 4468 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4468     break;
4469 
4470   case 35:
4471 #line 486 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4472     {
4473         // Constructor
4474         (yyval.interm).intermNode = 0;
4475         (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
4476     }
4477 #line 4478 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4478     break;
4479 
4480   case 36:
4481 #line 494 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4482     {
4483         parseContext.variableCheck((yyvsp[0].interm.intermTypedNode));
4484         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4485         if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
4486             parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
4487     }
4488 #line 4489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4489     break;
4490 
4491   case 37:
4492 #line 500 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4493     {
4494         parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode));
4495         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode));
4496     }
4497 #line 4498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4498     break;
4499 
4500   case 38:
4501 #line 504 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4502     {
4503         parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode));
4504         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode));
4505     }
4506 #line 4507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4507     break;
4508 
4509   case 39:
4510 #line 508 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4511     {
4512         if ((yyvsp[-1].interm).op != EOpNull) {
4513             char errorOp[2] = {0, 0};
4514             switch((yyvsp[-1].interm).op) {
4515             case EOpNegative:   errorOp[0] = '-'; break;
4516             case EOpLogicalNot: errorOp[0] = '!'; break;
4517             case EOpBitwiseNot: errorOp[0] = '~'; break;
4518             default: break; // some compilers want this
4519             }
4520             (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode));
4521         } else {
4522             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4523             if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
4524                 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
4525         }
4526     }
4527 #line 4528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4528     break;
4529 
4530   case 40:
4531 #line 528 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4532     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
4533 #line 4534 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4534     break;
4535 
4536   case 41:
4537 #line 529 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4538     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
4539 #line 4540 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4540     break;
4541 
4542   case 42:
4543 #line 530 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4544     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
4545 #line 4546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4546     break;
4547 
4548   case 43:
4549 #line 531 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4550     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
4551               parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
4552 #line 4553 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4553     break;
4554 
4555   case 44:
4556 #line 537 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4557     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4558 #line 4559 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4559     break;
4560 
4561   case 45:
4562 #line 538 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4563     {
4564         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4565         if ((yyval.interm.intermTypedNode) == 0)
4566             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4567     }
4568 #line 4569 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4569     break;
4570 
4571   case 46:
4572 #line 543 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4573     {
4574         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4575         if ((yyval.interm.intermTypedNode) == 0)
4576             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4577     }
4578 #line 4579 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4579     break;
4580 
4581   case 47:
4582 #line 548 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4583     {
4584         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%");
4585         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4586         if ((yyval.interm.intermTypedNode) == 0)
4587             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4588     }
4589 #line 4590 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4590     break;
4591 
4592   case 48:
4593 #line 557 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4594     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4595 #line 4596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4596     break;
4597 
4598   case 49:
4599 #line 558 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4600     {
4601         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4602         if ((yyval.interm.intermTypedNode) == 0)
4603             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4604     }
4605 #line 4606 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4606     break;
4607 
4608   case 50:
4609 #line 563 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4610     {
4611         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4612         if ((yyval.interm.intermTypedNode) == 0)
4613             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4614     }
4615 #line 4616 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4616     break;
4617 
4618   case 51:
4619 #line 571 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4620     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4621 #line 4622 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4622     break;
4623 
4624   case 52:
4625 #line 572 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4626     {
4627         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left");
4628         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4629         if ((yyval.interm.intermTypedNode) == 0)
4630             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4631     }
4632 #line 4633 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4633     break;
4634 
4635   case 53:
4636 #line 578 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4637     {
4638         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right");
4639         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4640         if ((yyval.interm.intermTypedNode) == 0)
4641             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4642     }
4643 #line 4644 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4644     break;
4645 
4646   case 54:
4647 #line 587 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4648     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4649 #line 4650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4650     break;
4651 
4652   case 55:
4653 #line 588 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4654     {
4655         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4656         if ((yyval.interm.intermTypedNode) == 0)
4657             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4658     }
4659 #line 4660 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4660     break;
4661 
4662   case 56:
4663 #line 593 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4664     {
4665         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4666         if ((yyval.interm.intermTypedNode) == 0)
4667             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4668     }
4669 #line 4670 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4670     break;
4671 
4672   case 57:
4673 #line 598 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4674     {
4675         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4676         if ((yyval.interm.intermTypedNode) == 0)
4677             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4678     }
4679 #line 4680 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4680     break;
4681 
4682   case 58:
4683 #line 603 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4684     {
4685         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4686         if ((yyval.interm.intermTypedNode) == 0)
4687             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4688     }
4689 #line 4690 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4690     break;
4691 
4692   case 59:
4693 #line 611 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4694     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4695 #line 4696 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4696     break;
4697 
4698   case 60:
4699 #line 612 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4700     {
4701         parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
4702         parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
4703         parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
4704         parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
4705         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4706         if ((yyval.interm.intermTypedNode) == 0)
4707             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4708     }
4709 #line 4710 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4710     break;
4711 
4712   case 61:
4713 #line 621 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4714     {
4715         parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
4716         parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
4717         parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
4718         parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
4719         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4720         if ((yyval.interm.intermTypedNode) == 0)
4721             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4722     }
4723 #line 4724 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4724     break;
4725 
4726   case 62:
4727 #line 633 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4728     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4729 #line 4730 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4730     break;
4731 
4732   case 63:
4733 #line 634 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4734     {
4735         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and");
4736         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4737         if ((yyval.interm.intermTypedNode) == 0)
4738             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4739     }
4740 #line 4741 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4741     break;
4742 
4743   case 64:
4744 #line 643 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4745     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4746 #line 4747 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4747     break;
4748 
4749   case 65:
4750 #line 644 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4751     {
4752         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or");
4753         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4754         if ((yyval.interm.intermTypedNode) == 0)
4755             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4756     }
4757 #line 4758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4758     break;
4759 
4760   case 66:
4761 #line 653 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4762     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4763 #line 4764 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4764     break;
4765 
4766   case 67:
4767 #line 654 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4768     {
4769         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or");
4770         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4771         if ((yyval.interm.intermTypedNode) == 0)
4772             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4773     }
4774 #line 4775 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4775     break;
4776 
4777   case 68:
4778 #line 663 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4779     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4780 #line 4781 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4781     break;
4782 
4783   case 69:
4784 #line 664 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4785     {
4786         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4787         if ((yyval.interm.intermTypedNode) == 0)
4788             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4789     }
4790 #line 4791 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4791     break;
4792 
4793   case 70:
4794 #line 672 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4795     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4796 #line 4797 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4797     break;
4798 
4799   case 71:
4800 #line 673 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4801     {
4802         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4803         if ((yyval.interm.intermTypedNode) == 0)
4804             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4805     }
4806 #line 4807 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4807     break;
4808 
4809   case 72:
4810 #line 681 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4811     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4812 #line 4813 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4813     break;
4814 
4815   case 73:
4816 #line 682 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4817     {
4818         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4819         if ((yyval.interm.intermTypedNode) == 0)
4820             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4821     }
4822 #line 4823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4823     break;
4824 
4825   case 74:
4826 #line 690 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4827     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4828 #line 4829 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4829     break;
4830 
4831   case 75:
4832 #line 691 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4833     {
4834         ++parseContext.controlFlowNestingLevel;
4835     }
4836 #line 4837 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4837     break;
4838 
4839   case 76:
4840 #line 694 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4841     {
4842         --parseContext.controlFlowNestingLevel;
4843         parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
4844         parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode));
4845         parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode));
4846         parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode));
4847         (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc);
4848         if ((yyval.interm.intermTypedNode) == 0) {
4849             parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
4850             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4851         }
4852     }
4853 #line 4854 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4854     break;
4855 
4856   case 77:
4857 #line 709 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4858     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4859 #line 4860 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4860     break;
4861 
4862   case 78:
4863 #line 710 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4864     {
4865         parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment");
4866         parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
4867         parseContext.storage16BitAssignmentCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
4868         parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
4869         parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode));
4870         parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode));
4871         (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].interm).loc);
4872         if ((yyval.interm.intermTypedNode) == 0) {
4873             parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
4874             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4875         }
4876     }
4877 #line 4878 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4878     break;
4879 
4880   case 79:
4881 #line 726 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4882     {
4883         (yyval.interm).loc = (yyvsp[0].lex).loc;
4884         (yyval.interm).op = EOpAssign;
4885     }
4886 #line 4887 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4887     break;
4888 
4889   case 80:
4890 #line 730 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4891     {
4892         (yyval.interm).loc = (yyvsp[0].lex).loc;
4893         (yyval.interm).op = EOpMulAssign;
4894     }
4895 #line 4896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4896     break;
4897 
4898   case 81:
4899 #line 734 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4900     {
4901         (yyval.interm).loc = (yyvsp[0].lex).loc;
4902         (yyval.interm).op = EOpDivAssign;
4903     }
4904 #line 4905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4905     break;
4906 
4907   case 82:
4908 #line 738 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4909     {
4910         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
4911         (yyval.interm).loc = (yyvsp[0].lex).loc;
4912         (yyval.interm).op = EOpModAssign;
4913     }
4914 #line 4915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4915     break;
4916 
4917   case 83:
4918 #line 743 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4919     {
4920         (yyval.interm).loc = (yyvsp[0].lex).loc;
4921         (yyval.interm).op = EOpAddAssign;
4922     }
4923 #line 4924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4924     break;
4925 
4926   case 84:
4927 #line 747 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4928     {
4929         (yyval.interm).loc = (yyvsp[0].lex).loc;
4930         (yyval.interm).op = EOpSubAssign;
4931     }
4932 #line 4933 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4933     break;
4934 
4935   case 85:
4936 #line 751 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4937     {
4938         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
4939         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
4940     }
4941 #line 4942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4942     break;
4943 
4944   case 86:
4945 #line 755 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4946     {
4947         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
4948         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
4949     }
4950 #line 4951 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4951     break;
4952 
4953   case 87:
4954 #line 759 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4955     {
4956         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
4957         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
4958     }
4959 #line 4960 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4960     break;
4961 
4962   case 88:
4963 #line 763 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4964     {
4965         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
4966         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
4967     }
4968 #line 4969 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4969     break;
4970 
4971   case 89:
4972 #line 767 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4973     {
4974         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
4975         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
4976     }
4977 #line 4978 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4978     break;
4979 
4980   case 90:
4981 #line 774 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4982     {
4983         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4984     }
4985 #line 4986 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4986     break;
4987 
4988   case 91:
4989 #line 777 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4990     {
4991         parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
4992         (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
4993         if ((yyval.interm.intermTypedNode) == 0) {
4994             parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
4995             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4996         }
4997     }
4998 #line 4999 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4999     break;
5000 
5001   case 92:
5002 #line 788 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5003     {
5004         parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
5005         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5006     }
5007 #line 5008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5008     break;
5009 
5010   case 93:
5011 #line 795 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5012     {
5013         parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
5014         (yyval.interm.intermNode) = 0;
5015         // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
5016     }
5017 #line 5018 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5018     break;
5019 
5020   case 94:
5021 #line 800 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5022     {
5023         if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate())
5024             (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
5025         (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
5026     }
5027 #line 5028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5028     break;
5029 
5030   case 95:
5031 #line 805 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5032     {
5033         parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
5034 
5035         // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
5036         parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]);
5037         parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
5038         (yyval.interm.intermNode) = 0;
5039     }
5040 #line 5041 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5041     break;
5042 
5043   case 96:
5044 #line 813 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5045     {
5046         parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
5047         (yyval.interm.intermNode) = 0;
5048     }
5049 #line 5050 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5050     break;
5051 
5052   case 97:
5053 #line 817 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5054     {
5055         parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
5056         (yyval.interm.intermNode) = 0;
5057     }
5058 #line 5059 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5059     break;
5060 
5061   case 98:
5062 #line 821 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5063     {
5064         parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
5065         (yyval.interm.intermNode) = 0;
5066     }
5067 #line 5068 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5068     break;
5069 
5070   case 99:
5071 #line 825 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5072     {
5073         parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
5074         parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
5075         (yyval.interm.intermNode) = 0;
5076     }
5077 #line 5078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5078     break;
5079 
5080   case 100:
5081 #line 830 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5082     {
5083         parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
5084         parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
5085         (yyval.interm.intermNode) = 0;
5086     }
5087 #line 5088 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5088     break;
5089 
5090   case 101:
5091 #line 835 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5092     {
5093         parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
5094         (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string);
5095         parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
5096         (yyval.interm.intermNode) = 0;
5097     }
5098 #line 5099 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5099     break;
5100 
5101   case 102:
5102 #line 844 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5103     { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
5104 #line 5105 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5105     break;
5106 
5107   case 103:
5108 #line 844 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5109     {
5110         --parseContext.structNestingLevel;
5111         parseContext.blockName = (yyvsp[-4].lex).string;
5112         parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier);
5113         parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers);
5114         parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier;
5115         (yyval.interm).loc = (yyvsp[-5].interm.type).loc;
5116         (yyval.interm).typeList = (yyvsp[-1].interm.typeList);
5117     }
5118 #line 5119 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5119     break;
5120 
5121   case 104:
5122 #line 855 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5123     {
5124         (yyval.interm.identifierList) = new TIdentifierList;
5125         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
5126     }
5127 #line 5128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5128     break;
5129 
5130   case 105:
5131 #line 859 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5132     {
5133         (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
5134         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
5135     }
5136 #line 5137 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5137     break;
5138 
5139   case 106:
5140 #line 866 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5141     {
5142         (yyval.interm).function = (yyvsp[-1].interm.function);
5143         (yyval.interm).loc = (yyvsp[0].lex).loc;
5144     }
5145 #line 5146 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5146     break;
5147 
5148   case 107:
5149 #line 873 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5150     {
5151         (yyval.interm.function) = (yyvsp[0].interm.function);
5152     }
5153 #line 5154 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5154     break;
5155 
5156   case 108:
5157 #line 876 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5158     {
5159         (yyval.interm.function) = (yyvsp[0].interm.function);
5160     }
5161 #line 5162 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5162     break;
5163 
5164   case 109:
5165 #line 883 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5166     {
5167         // Add the parameter
5168         (yyval.interm.function) = (yyvsp[-1].interm.function);
5169         if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid)
5170             (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param);
5171         else
5172             delete (yyvsp[0].interm).param.type;
5173     }
5174 #line 5175 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5175     break;
5176 
5177   case 110:
5178 #line 891 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5179     {
5180         //
5181         // Only first parameter of one-parameter functions can be void
5182         // The check for named parameters not being void is done in parameter_declarator
5183         //
5184         if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) {
5185             //
5186             // This parameter > first is void
5187             //
5188             parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", "");
5189             delete (yyvsp[0].interm).param.type;
5190         } else {
5191             // Add the parameter
5192             (yyval.interm.function) = (yyvsp[-2].interm.function);
5193             (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
5194         }
5195     }
5196 #line 5197 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5197     break;
5198 
5199   case 111:
5200 #line 911 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5201     {
5202         if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
5203             parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
5204                                GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), "");
5205         }
5206         if ((yyvsp[-2].interm.type).arraySizes)
5207             parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
5208 
5209         // Add the function as a prototype after parsing it (we do not support recursion)
5210         TFunction *function;
5211         TType type((yyvsp[-2].interm.type));
5212 
5213         // Potentially rename shader entry point function.  No-op most of the time.
5214         parseContext.renameShaderFunction((yyvsp[-1].lex).string);
5215 
5216         // Make the function
5217         function = new TFunction((yyvsp[-1].lex).string, type);
5218         (yyval.interm.function) = function;
5219     }
5220 #line 5221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5221     break;
5222 
5223   case 112:
5224 #line 934 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5225     {
5226         if ((yyvsp[-1].interm.type).arraySizes) {
5227             parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5228             parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5229             parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes);
5230         }
5231         if ((yyvsp[-1].interm.type).basicType == EbtVoid) {
5232             parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), "");
5233         }
5234         parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string);
5235 
5236         TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))};
5237         (yyval.interm).loc = (yyvsp[0].lex).loc;
5238         (yyval.interm).param = param;
5239     }
5240 #line 5241 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5241     break;
5242 
5243   case 113:
5244 #line 949 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5245     {
5246         if ((yyvsp[-2].interm.type).arraySizes) {
5247             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5248             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5249             parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
5250         }
5251         TType* type = new TType((yyvsp[-2].interm.type));
5252         type->transferArraySizes((yyvsp[0].interm).arraySizes);
5253         type->copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
5254 
5255         parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, type->getArraySizes());
5256         parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes);
5257         parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string);
5258 
5259         TParameter param = { (yyvsp[-1].lex).string, type };
5260 
5261         (yyval.interm).loc = (yyvsp[-1].lex).loc;
5262         (yyval.interm).param = param;
5263     }
5264 #line 5265 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5265     break;
5266 
5267   case 114:
5268 #line 974 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5269     {
5270         (yyval.interm) = (yyvsp[0].interm);
5271         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
5272             (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
5273         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5274 
5275         parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5276         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
5277         parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
5278 
5279     }
5280 #line 5281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5281     break;
5282 
5283   case 115:
5284 #line 985 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5285     {
5286         (yyval.interm) = (yyvsp[0].interm);
5287 
5288         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
5289         parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
5290         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5291     }
5292 #line 5293 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5293     break;
5294 
5295   case 116:
5296 #line 995 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5297     {
5298         (yyval.interm) = (yyvsp[0].interm);
5299         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
5300             (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
5301         parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5302 
5303         parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5304         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
5305         parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
5306     }
5307 #line 5308 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5308     break;
5309 
5310   case 117:
5311 #line 1005 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5312     {
5313         (yyval.interm) = (yyvsp[0].interm);
5314 
5315         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
5316         parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
5317         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5318     }
5319 #line 5320 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5320     break;
5321 
5322   case 118:
5323 #line 1015 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5324     {
5325         TParameter param = { 0, new TType((yyvsp[0].interm.type)) };
5326         (yyval.interm).param = param;
5327         if ((yyvsp[0].interm.type).arraySizes)
5328             parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
5329     }
5330 #line 5331 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5331     break;
5332 
5333   case 119:
5334 #line 1024 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5335     {
5336         (yyval.interm) = (yyvsp[0].interm);
5337     }
5338 #line 5339 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5339     break;
5340 
5341   case 120:
5342 #line 1027 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5343     {
5344         (yyval.interm) = (yyvsp[-2].interm);
5345         parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
5346     }
5347 #line 5348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5348     break;
5349 
5350   case 121:
5351 #line 1031 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5352     {
5353         (yyval.interm) = (yyvsp[-3].interm);
5354         parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
5355     }
5356 #line 5357 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5357     break;
5358 
5359   case 122:
5360 #line 1035 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5361     {
5362         (yyval.interm).type = (yyvsp[-5].interm).type;
5363         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
5364         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
5365     }
5366 #line 5367 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5367     break;
5368 
5369   case 123:
5370 #line 1040 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5371     {
5372         (yyval.interm).type = (yyvsp[-4].interm).type;
5373         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
5374         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
5375     }
5376 #line 5377 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5377     break;
5378 
5379   case 124:
5380 #line 1048 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5381     {
5382         (yyval.interm).type = (yyvsp[0].interm.type);
5383         (yyval.interm).intermNode = 0;
5384         parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
5385     }
5386 #line 5387 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5387     break;
5388 
5389   case 125:
5390 #line 1053 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5391     {
5392         (yyval.interm).type = (yyvsp[-1].interm.type);
5393         (yyval.interm).intermNode = 0;
5394         parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
5395     }
5396 #line 5397 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5397     break;
5398 
5399   case 126:
5400 #line 1058 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5401     {
5402         (yyval.interm).type = (yyvsp[-2].interm.type);
5403         (yyval.interm).intermNode = 0;
5404         parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
5405     }
5406 #line 5407 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5407     break;
5408 
5409   case 127:
5410 #line 1063 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5411     {
5412         (yyval.interm).type = (yyvsp[-4].interm.type);
5413         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
5414         (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
5415     }
5416 #line 5417 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5417     break;
5418 
5419   case 128:
5420 #line 1068 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5421     {
5422         (yyval.interm).type = (yyvsp[-3].interm.type);
5423         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
5424         (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
5425     }
5426 #line 5427 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5427     break;
5428 
5429   case 129:
5430 #line 1077 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5431     {
5432         (yyval.interm.type) = (yyvsp[0].interm.type);
5433 
5434         parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type));
5435         if ((yyvsp[0].interm.type).arraySizes) {
5436             parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5437             parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5438         }
5439 
5440         parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
5441     }
5442 #line 5443 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5443     break;
5444 
5445   case 130:
5446 #line 1088 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5447     {
5448         parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
5449         parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
5450 
5451         if ((yyvsp[0].interm.type).arraySizes) {
5452             parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5453             parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5454         }
5455 
5456         if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier))
5457             (yyvsp[0].interm.type).arraySizes = nullptr;
5458 
5459         parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5460         (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers);
5461         parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true);
5462         parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier);
5463 
5464         (yyval.interm.type) = (yyvsp[0].interm.type);
5465 
5466         if (! (yyval.interm.type).qualifier.isInterpolation() &&
5467             ((parseContext.language == EShLangVertex   && (yyval.interm.type).qualifier.storage == EvqVaryingOut) ||
5468              (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
5469             (yyval.interm.type).qualifier.smooth = true;
5470     }
5471 #line 5472 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5472     break;
5473 
5474   case 131:
5475 #line 1115 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5476     {
5477         parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
5478         parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
5479         (yyval.interm.type).init((yyvsp[0].lex).loc);
5480         (yyval.interm.type).qualifier.invariant = true;
5481     }
5482 #line 5483 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5483     break;
5484 
5485   case 132:
5486 #line 1124 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5487     {
5488         parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
5489         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
5490         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth");
5491         (yyval.interm.type).init((yyvsp[0].lex).loc);
5492         (yyval.interm.type).qualifier.smooth = true;
5493     }
5494 #line 5495 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5495     break;
5496 
5497   case 133:
5498 #line 1131 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5499     {
5500         parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
5501         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
5502         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat");
5503         (yyval.interm.type).init((yyvsp[0].lex).loc);
5504         (yyval.interm.type).qualifier.flat = true;
5505     }
5506 #line 5507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5507     break;
5508 
5509   case 134:
5510 #line 1138 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5511     {
5512         parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
5513 #ifdef NV_EXTENSIONS
5514         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
5515 #else
5516         parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "noperspective");
5517 #endif
5518         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective");
5519         (yyval.interm.type).init((yyvsp[0].lex).loc);
5520         (yyval.interm.type).qualifier.nopersp = true;
5521     }
5522 #line 5523 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5523     break;
5524 
5525   case 135:
5526 #line 1149 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5527     {
5528 #ifdef AMD_EXTENSIONS
5529         parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD");
5530         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
5531         parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
5532         (yyval.interm.type).init((yyvsp[0].lex).loc);
5533         (yyval.interm.type).qualifier.explicitInterp = true;
5534 #endif
5535     }
5536 #line 5537 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5537     break;
5538 
5539   case 136:
5540 #line 1158 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5541     {
5542 #ifdef NV_EXTENSIONS
5543         parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV");
5544         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
5545         parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
5546         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
5547         (yyval.interm.type).init((yyvsp[0].lex).loc);
5548         (yyval.interm.type).qualifier.pervertexNV = true;
5549 #endif
5550     }
5551 #line 5552 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5552     break;
5553 
5554   case 137:
5555 #line 1168 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5556     {
5557 #ifdef NV_EXTENSIONS
5558         // No need for profile version or extension check. Shader stage already checks both.
5559         parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV");
5560         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshNVMask), "perprimitiveNV");
5561         // Fragment shader stage doesn't check for extension. So we explicitly add below extension check.
5562         if (parseContext.language == EShLangFragment)
5563             parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_NV_mesh_shader, "perprimitiveNV");
5564         (yyval.interm.type).init((yyvsp[0].lex).loc);
5565         (yyval.interm.type).qualifier.perPrimitiveNV = true;
5566 #endif
5567     }
5568 #line 5569 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5569     break;
5570 
5571   case 138:
5572 #line 1180 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5573     {
5574 #ifdef NV_EXTENSIONS
5575         // No need for profile version or extension check. Shader stage already checks both.
5576         parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV");
5577         parseContext.requireStage((yyvsp[0].lex).loc, EShLangMeshNV, "perviewNV");
5578         (yyval.interm.type).init((yyvsp[0].lex).loc);
5579         (yyval.interm.type).qualifier.perViewNV = true;
5580 #endif
5581     }
5582 #line 5583 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5583     break;
5584 
5585   case 139:
5586 #line 1189 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5587     {
5588 #ifdef NV_EXTENSIONS
5589         // No need for profile version or extension check. Shader stage already checks both.
5590         parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV");
5591         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "taskNV");
5592         (yyval.interm.type).init((yyvsp[0].lex).loc);
5593         (yyval.interm.type).qualifier.perTaskNV = true;
5594 #endif
5595     }
5596 #line 5597 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5597     break;
5598 
5599   case 140:
5600 #line 1201 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5601     {
5602         (yyval.interm.type) = (yyvsp[-1].interm.type);
5603     }
5604 #line 5605 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5605     break;
5606 
5607   case 141:
5608 #line 1207 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5609     {
5610         (yyval.interm.type) = (yyvsp[0].interm.type);
5611     }
5612 #line 5613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5613     break;
5614 
5615   case 142:
5616 #line 1210 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5617     {
5618         (yyval.interm.type) = (yyvsp[-2].interm.type);
5619         (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
5620         parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
5621     }
5622 #line 5623 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5623     break;
5624 
5625   case 143:
5626 #line 1217 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5627     {
5628         (yyval.interm.type).init((yyvsp[0].lex).loc);
5629         parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
5630     }
5631 #line 5632 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5632     break;
5633 
5634   case 144:
5635 #line 1221 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5636     {
5637         (yyval.interm.type).init((yyvsp[-2].lex).loc);
5638         parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode));
5639     }
5640 #line 5641 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5641     break;
5642 
5643   case 145:
5644 #line 1225 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5645     { // because "shared" is both an identifier and a keyword
5646         (yyval.interm.type).init((yyvsp[0].lex).loc);
5647         TString strShared("shared");
5648         parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
5649     }
5650 #line 5651 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5651     break;
5652 
5653   case 146:
5654 #line 1233 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5655     {
5656         parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
5657         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
5658         (yyval.interm.type).init((yyvsp[0].lex).loc);
5659         (yyval.interm.type).qualifier.noContraction = true;
5660     }
5661 #line 5662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5662     break;
5663 
5664   case 147:
5665 #line 1242 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5666     {
5667         (yyval.interm.type) = (yyvsp[0].interm.type);
5668     }
5669 #line 5670 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5670     break;
5671 
5672   case 148:
5673 #line 1245 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5674     {
5675         (yyval.interm.type) = (yyvsp[-1].interm.type);
5676         if ((yyval.interm.type).basicType == EbtVoid)
5677             (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType;
5678 
5679         (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
5680         parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
5681     }
5682 #line 5683 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5683     break;
5684 
5685   case 149:
5686 #line 1256 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5687     {
5688         (yyval.interm.type) = (yyvsp[0].interm.type);
5689     }
5690 #line 5691 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5691     break;
5692 
5693   case 150:
5694 #line 1259 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5695     {
5696         (yyval.interm.type) = (yyvsp[0].interm.type);
5697     }
5698 #line 5699 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5699     break;
5700 
5701   case 151:
5702 #line 1262 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5703     {
5704         parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
5705         (yyval.interm.type) = (yyvsp[0].interm.type);
5706     }
5707 #line 5708 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5708     break;
5709 
5710   case 152:
5711 #line 1266 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5712     {
5713         // allow inheritance of storage qualifier from block declaration
5714         (yyval.interm.type) = (yyvsp[0].interm.type);
5715     }
5716 #line 5717 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5717     break;
5718 
5719   case 153:
5720 #line 1270 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5721     {
5722         // allow inheritance of storage qualifier from block declaration
5723         (yyval.interm.type) = (yyvsp[0].interm.type);
5724     }
5725 #line 5726 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5726     break;
5727 
5728   case 154:
5729 #line 1274 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5730     {
5731         // allow inheritance of storage qualifier from block declaration
5732         (yyval.interm.type) = (yyvsp[0].interm.type);
5733     }
5734 #line 5735 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5735     break;
5736 
5737   case 155:
5738 #line 1278 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5739     {
5740         (yyval.interm.type) = (yyvsp[0].interm.type);
5741     }
5742 #line 5743 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5743     break;
5744 
5745   case 156:
5746 #line 1284 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5747     {
5748         (yyval.interm.type).init((yyvsp[0].lex).loc);
5749         (yyval.interm.type).qualifier.storage = EvqConst;  // will later turn into EvqConstReadOnly, if the initializer is not constant
5750     }
5751 #line 5752 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5752     break;
5753 
5754   case 157:
5755 #line 1288 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5756     {
5757         parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
5758         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
5759         parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute");
5760         parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute");
5761         parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute");
5762 
5763         parseContext.globalCheck((yyvsp[0].lex).loc, "attribute");
5764 
5765         (yyval.interm.type).init((yyvsp[0].lex).loc);
5766         (yyval.interm.type).qualifier.storage = EvqVaryingIn;
5767     }
5768 #line 5769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5769     break;
5770 
5771   case 158:
5772 #line 1300 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5773     {
5774         parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
5775         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
5776         parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying");
5777         parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying");
5778 
5779         parseContext.globalCheck((yyvsp[0].lex).loc, "varying");
5780 
5781         (yyval.interm.type).init((yyvsp[0].lex).loc);
5782         if (parseContext.language == EShLangVertex)
5783             (yyval.interm.type).qualifier.storage = EvqVaryingOut;
5784         else
5785             (yyval.interm.type).qualifier.storage = EvqVaryingIn;
5786     }
5787 #line 5788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5788     break;
5789 
5790   case 159:
5791 #line 1314 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5792     {
5793         parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
5794         (yyval.interm.type).init((yyvsp[0].lex).loc);
5795         (yyval.interm.type).qualifier.storage = EvqInOut;
5796     }
5797 #line 5798 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5798     break;
5799 
5800   case 160:
5801 #line 1319 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5802     {
5803         parseContext.globalCheck((yyvsp[0].lex).loc, "in");
5804         (yyval.interm.type).init((yyvsp[0].lex).loc);
5805         // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
5806         (yyval.interm.type).qualifier.storage = EvqIn;
5807     }
5808 #line 5809 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5809     break;
5810 
5811   case 161:
5812 #line 1325 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5813     {
5814         parseContext.globalCheck((yyvsp[0].lex).loc, "out");
5815         (yyval.interm.type).init((yyvsp[0].lex).loc);
5816         // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
5817         (yyval.interm.type).qualifier.storage = EvqOut;
5818     }
5819 #line 5820 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5820     break;
5821 
5822   case 162:
5823 #line 1331 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5824     {
5825         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
5826         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
5827         parseContext.globalCheck((yyvsp[0].lex).loc, "centroid");
5828         (yyval.interm.type).init((yyvsp[0].lex).loc);
5829         (yyval.interm.type).qualifier.centroid = true;
5830     }
5831 #line 5832 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5832     break;
5833 
5834   case 163:
5835 #line 1338 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5836     {
5837         parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
5838         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
5839         (yyval.interm.type).init((yyvsp[0].lex).loc);
5840         (yyval.interm.type).qualifier.patch = true;
5841     }
5842 #line 5843 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5843     break;
5844 
5845   case 164:
5846 #line 1344 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5847     {
5848         parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
5849         (yyval.interm.type).init((yyvsp[0].lex).loc);
5850         (yyval.interm.type).qualifier.sample = true;
5851     }
5852 #line 5853 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5853     break;
5854 
5855   case 165:
5856 #line 1349 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5857     {
5858         parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
5859         (yyval.interm.type).init((yyvsp[0].lex).loc);
5860         (yyval.interm.type).qualifier.storage = EvqUniform;
5861     }
5862 #line 5863 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5863     break;
5864 
5865   case 166:
5866 #line 1354 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5867     {
5868         parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
5869         (yyval.interm.type).init((yyvsp[0].lex).loc);
5870         (yyval.interm.type).qualifier.storage = EvqBuffer;
5871     }
5872 #line 5873 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5873     break;
5874 
5875   case 167:
5876 #line 1359 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5877     {
5878 #ifdef NV_EXTENSIONS
5879         parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
5880         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectNVMask | EShLangClosestHitNVMask
5881             | EShLangAnyHitNVMask), "hitAttributeNV");
5882         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV");
5883         (yyval.interm.type).init((yyvsp[0].lex).loc);
5884         (yyval.interm.type).qualifier.storage = EvqHitAttrNV;
5885 #endif
5886     }
5887 #line 5888 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5888     break;
5889 
5890   case 168:
5891 #line 1369 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5892     {
5893 #ifdef NV_EXTENSIONS
5894         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV");
5895         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangClosestHitNVMask |
5896             EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadNV");
5897         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV");
5898         (yyval.interm.type).init((yyvsp[0].lex).loc);
5899         (yyval.interm.type).qualifier.storage = EvqPayloadNV;
5900 #endif
5901     }
5902 #line 5903 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5903     break;
5904 
5905   case 169:
5906 #line 1379 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5907     {
5908 #ifdef NV_EXTENSIONS
5909         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV");
5910         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitNVMask |
5911             EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadInNV");
5912         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV");
5913         (yyval.interm.type).init((yyvsp[0].lex).loc);
5914         (yyval.interm.type).qualifier.storage = EvqPayloadInNV;
5915 #endif
5916     }
5917 #line 5918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5918     break;
5919 
5920   case 170:
5921 #line 1389 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5922     {
5923 #ifdef NV_EXTENSIONS
5924         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV");
5925         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenNVMask |
5926             EShLangClosestHitNVMask | EShLangMissNVMask | EShLangCallableNVMask), "callableDataNV");
5927         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV");
5928         (yyval.interm.type).init((yyvsp[0].lex).loc);
5929         (yyval.interm.type).qualifier.storage = EvqCallableDataNV;
5930 #endif
5931     }
5932 #line 5933 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5933     break;
5934 
5935   case 171:
5936 #line 1399 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5937     {
5938 #ifdef NV_EXTENSIONS
5939         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV");
5940         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableNVMask), "callableDataInNV");
5941         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV");
5942         (yyval.interm.type).init((yyvsp[0].lex).loc);
5943         (yyval.interm.type).qualifier.storage = EvqCallableDataInNV;
5944 #endif
5945     }
5946 #line 5947 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5947     break;
5948 
5949   case 172:
5950 #line 1408 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5951     {
5952         parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
5953         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
5954         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared");
5955 #ifdef NV_EXTENSIONS
5956         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared");
5957 #else
5958         parseContext.requireStage((yyvsp[0].lex).loc, EShLangCompute, "shared");
5959 #endif
5960         (yyval.interm.type).init((yyvsp[0].lex).loc);
5961         (yyval.interm.type).qualifier.storage = EvqShared;
5962     }
5963 #line 5964 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5964     break;
5965 
5966   case 173:
5967 #line 1420 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5968     {
5969         (yyval.interm.type).init((yyvsp[0].lex).loc);
5970         (yyval.interm.type).qualifier.coherent = true;
5971     }
5972 #line 5973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5973     break;
5974 
5975   case 174:
5976 #line 1424 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5977     {
5978         (yyval.interm.type).init((yyvsp[0].lex).loc);
5979         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
5980         (yyval.interm.type).qualifier.devicecoherent = true;
5981     }
5982 #line 5983 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5983     break;
5984 
5985   case 175:
5986 #line 1429 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5987     {
5988         (yyval.interm.type).init((yyvsp[0].lex).loc);
5989         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent");
5990         (yyval.interm.type).qualifier.queuefamilycoherent = true;
5991     }
5992 #line 5993 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5993     break;
5994 
5995   case 176:
5996 #line 1434 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5997     {
5998         (yyval.interm.type).init((yyvsp[0].lex).loc);
5999         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent");
6000         (yyval.interm.type).qualifier.workgroupcoherent = true;
6001     }
6002 #line 6003 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6003     break;
6004 
6005   case 177:
6006 #line 1439 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6007     {
6008         (yyval.interm.type).init((yyvsp[0].lex).loc);
6009         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent");
6010         (yyval.interm.type).qualifier.subgroupcoherent = true;
6011     }
6012 #line 6013 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6013     break;
6014 
6015   case 178:
6016 #line 1444 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6017     {
6018         (yyval.interm.type).init((yyvsp[0].lex).loc);
6019         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate");
6020         (yyval.interm.type).qualifier.nonprivate = true;
6021     }
6022 #line 6023 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6023     break;
6024 
6025   case 179:
6026 #line 1449 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6027     {
6028         (yyval.interm.type).init((yyvsp[0].lex).loc);
6029         (yyval.interm.type).qualifier.volatil = true;
6030     }
6031 #line 6032 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6032     break;
6033 
6034   case 180:
6035 #line 1453 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6036     {
6037         (yyval.interm.type).init((yyvsp[0].lex).loc);
6038         (yyval.interm.type).qualifier.restrict = true;
6039     }
6040 #line 6041 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6041     break;
6042 
6043   case 181:
6044 #line 1457 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6045     {
6046         (yyval.interm.type).init((yyvsp[0].lex).loc);
6047         (yyval.interm.type).qualifier.readonly = true;
6048     }
6049 #line 6050 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6050     break;
6051 
6052   case 182:
6053 #line 1461 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6054     {
6055         (yyval.interm.type).init((yyvsp[0].lex).loc);
6056         (yyval.interm.type).qualifier.writeonly = true;
6057     }
6058 #line 6059 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6059     break;
6060 
6061   case 183:
6062 #line 1465 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6063     {
6064         parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine");
6065         parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine");
6066         parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine");
6067         (yyval.interm.type).init((yyvsp[0].lex).loc);
6068     }
6069 #line 6070 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6070     break;
6071 
6072   case 184:
6073 #line 1471 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6074     {
6075         parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine");
6076         parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine");
6077         parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine");
6078         (yyval.interm.type).init((yyvsp[-3].lex).loc);
6079     }
6080 #line 6081 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6081     break;
6082 
6083   case 185:
6084 #line 1480 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6085     {
6086         (yyval.interm.type).init((yyvsp[0].lex).loc);
6087         (yyval.interm.type).qualifier.nonUniform = true;
6088     }
6089 #line 6090 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6090     break;
6091 
6092   case 186:
6093 #line 1487 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6094     {
6095         // TODO
6096     }
6097 #line 6098 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6098     break;
6099 
6100   case 187:
6101 #line 1490 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6102     {
6103         // TODO: 4.0 semantics: subroutines
6104         // 1) make sure each identifier is a type declared earlier with SUBROUTINE
6105         // 2) save all of the identifiers for future comparison with the declared function
6106     }
6107 #line 6108 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6108     break;
6109 
6110   case 188:
6111 #line 1498 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6112     {
6113         (yyval.interm.type) = (yyvsp[-1].interm.type);
6114         (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
6115         (yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters);
6116     }
6117 #line 6118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6118     break;
6119 
6120   case 189:
6121 #line 1503 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6122     {
6123         parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes);
6124         (yyval.interm.type) = (yyvsp[-2].interm.type);
6125         (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
6126         (yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters);
6127         (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
6128     }
6129 #line 6130 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6130     break;
6131 
6132   case 190:
6133 #line 1513 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6134     {
6135         (yyval.interm).loc = (yyvsp[-1].lex).loc;
6136         (yyval.interm).arraySizes = new TArraySizes;
6137         (yyval.interm).arraySizes->addInnerSize();
6138     }
6139 #line 6140 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6140     break;
6141 
6142   case 191:
6143 #line 1518 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6144     {
6145         (yyval.interm).loc = (yyvsp[-2].lex).loc;
6146         (yyval.interm).arraySizes = new TArraySizes;
6147 
6148         TArraySize size;
6149         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
6150         (yyval.interm).arraySizes->addInnerSize(size);
6151     }
6152 #line 6153 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6153     break;
6154 
6155   case 192:
6156 #line 1526 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6157     {
6158         (yyval.interm) = (yyvsp[-2].interm);
6159         (yyval.interm).arraySizes->addInnerSize();
6160     }
6161 #line 6162 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6162     break;
6163 
6164   case 193:
6165 #line 1530 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6166     {
6167         (yyval.interm) = (yyvsp[-3].interm);
6168 
6169         TArraySize size;
6170         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
6171         (yyval.interm).arraySizes->addInnerSize(size);
6172     }
6173 #line 6174 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6174     break;
6175 
6176   case 194:
6177 #line 1540 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6178     {
6179         (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters);
6180     }
6181 #line 6182 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6182     break;
6183 
6184   case 195:
6185 #line 1543 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6186     {
6187         (yyval.interm.typeParameters) = 0;
6188     }
6189 #line 6190 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6190     break;
6191 
6192   case 196:
6193 #line 1549 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6194     {
6195         (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters);
6196     }
6197 #line 6198 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6198     break;
6199 
6200   case 197:
6201 #line 1555 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6202     {
6203         (yyval.interm.typeParameters) = new TArraySizes;
6204 
6205         TArraySize size;
6206         parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
6207         (yyval.interm.typeParameters)->addInnerSize(size);
6208     }
6209 #line 6210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6210     break;
6211 
6212   case 198:
6213 #line 1562 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6214     {
6215         (yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters);
6216 
6217         TArraySize size;
6218         parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
6219         (yyval.interm.typeParameters)->addInnerSize(size);
6220     }
6221 #line 6222 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6222     break;
6223 
6224   case 199:
6225 #line 1572 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6226     {
6227         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6228         (yyval.interm.type).basicType = EbtVoid;
6229     }
6230 #line 6231 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6231     break;
6232 
6233   case 200:
6234 #line 1576 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6235     {
6236         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6237         (yyval.interm.type).basicType = EbtFloat;
6238     }
6239 #line 6240 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6240     break;
6241 
6242   case 201:
6243 #line 1580 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6244     {
6245         parseContext.doubleCheck((yyvsp[0].lex).loc, "double");
6246         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6247         (yyval.interm.type).basicType = EbtDouble;
6248     }
6249 #line 6250 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6250     break;
6251 
6252   case 202:
6253 #line 1585 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6254     {
6255         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel());
6256         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6257         (yyval.interm.type).basicType = EbtFloat16;
6258     }
6259 #line 6260 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6260     break;
6261 
6262   case 203:
6263 #line 1590 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6264     {
6265         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel());
6266         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6267         (yyval.interm.type).basicType = EbtFloat;
6268     }
6269 #line 6270 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6270     break;
6271 
6272   case 204:
6273 #line 1595 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6274     {
6275         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel());
6276         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6277         (yyval.interm.type).basicType = EbtDouble;
6278     }
6279 #line 6280 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6280     break;
6281 
6282   case 205:
6283 #line 1600 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6284     {
6285         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6286         (yyval.interm.type).basicType = EbtInt;
6287     }
6288 #line 6289 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6289     break;
6290 
6291   case 206:
6292 #line 1604 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6293     {
6294         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
6295         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6296         (yyval.interm.type).basicType = EbtUint;
6297     }
6298 #line 6299 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6299     break;
6300 
6301   case 207:
6302 #line 1609 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6303     {
6304         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
6305         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6306         (yyval.interm.type).basicType = EbtInt8;
6307     }
6308 #line 6309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6309     break;
6310 
6311   case 208:
6312 #line 1614 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6313     {
6314         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6315         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6316         (yyval.interm.type).basicType = EbtUint8;
6317     }
6318 #line 6319 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6319     break;
6320 
6321   case 209:
6322 #line 1619 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6323     {
6324         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
6325         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6326         (yyval.interm.type).basicType = EbtInt16;
6327     }
6328 #line 6329 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6329     break;
6330 
6331   case 210:
6332 #line 1624 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6333     {
6334         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6335         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6336         (yyval.interm.type).basicType = EbtUint16;
6337     }
6338 #line 6339 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6339     break;
6340 
6341   case 211:
6342 #line 1629 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6343     {
6344         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
6345         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6346         (yyval.interm.type).basicType = EbtInt;
6347     }
6348 #line 6349 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6349     break;
6350 
6351   case 212:
6352 #line 1634 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6353     {
6354         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6355         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6356         (yyval.interm.type).basicType = EbtUint;
6357     }
6358 #line 6359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6359     break;
6360 
6361   case 213:
6362 #line 1639 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6363     {
6364         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
6365         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6366         (yyval.interm.type).basicType = EbtInt64;
6367     }
6368 #line 6369 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6369     break;
6370 
6371   case 214:
6372 #line 1644 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6373     {
6374         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6375         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6376         (yyval.interm.type).basicType = EbtUint64;
6377     }
6378 #line 6379 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6379     break;
6380 
6381   case 215:
6382 #line 1649 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6383     {
6384         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6385         (yyval.interm.type).basicType = EbtBool;
6386     }
6387 #line 6388 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6388     break;
6389 
6390   case 216:
6391 #line 1653 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6392     {
6393         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6394         (yyval.interm.type).basicType = EbtFloat;
6395         (yyval.interm.type).setVector(2);
6396     }
6397 #line 6398 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6398     break;
6399 
6400   case 217:
6401 #line 1658 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6402     {
6403         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6404         (yyval.interm.type).basicType = EbtFloat;
6405         (yyval.interm.type).setVector(3);
6406     }
6407 #line 6408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6408     break;
6409 
6410   case 218:
6411 #line 1663 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6412     {
6413         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6414         (yyval.interm.type).basicType = EbtFloat;
6415         (yyval.interm.type).setVector(4);
6416     }
6417 #line 6418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6418     break;
6419 
6420   case 219:
6421 #line 1668 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6422     {
6423         parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
6424         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6425         (yyval.interm.type).basicType = EbtDouble;
6426         (yyval.interm.type).setVector(2);
6427     }
6428 #line 6429 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6429     break;
6430 
6431   case 220:
6432 #line 1674 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6433     {
6434         parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
6435         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6436         (yyval.interm.type).basicType = EbtDouble;
6437         (yyval.interm.type).setVector(3);
6438     }
6439 #line 6440 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6440     break;
6441 
6442   case 221:
6443 #line 1680 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6444     {
6445         parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
6446         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6447         (yyval.interm.type).basicType = EbtDouble;
6448         (yyval.interm.type).setVector(4);
6449     }
6450 #line 6451 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6451     break;
6452 
6453   case 222:
6454 #line 1686 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6455     {
6456         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
6457         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6458         (yyval.interm.type).basicType = EbtFloat16;
6459         (yyval.interm.type).setVector(2);
6460     }
6461 #line 6462 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6462     break;
6463 
6464   case 223:
6465 #line 1692 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6466     {
6467         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
6468         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6469         (yyval.interm.type).basicType = EbtFloat16;
6470         (yyval.interm.type).setVector(3);
6471     }
6472 #line 6473 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6473     break;
6474 
6475   case 224:
6476 #line 1698 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6477     {
6478         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
6479         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6480         (yyval.interm.type).basicType = EbtFloat16;
6481         (yyval.interm.type).setVector(4);
6482     }
6483 #line 6484 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6484     break;
6485 
6486   case 225:
6487 #line 1704 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6488     {
6489         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
6490         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6491         (yyval.interm.type).basicType = EbtFloat;
6492         (yyval.interm.type).setVector(2);
6493     }
6494 #line 6495 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6495     break;
6496 
6497   case 226:
6498 #line 1710 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6499     {
6500         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
6501         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6502         (yyval.interm.type).basicType = EbtFloat;
6503         (yyval.interm.type).setVector(3);
6504     }
6505 #line 6506 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6506     break;
6507 
6508   case 227:
6509 #line 1716 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6510     {
6511         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
6512         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6513         (yyval.interm.type).basicType = EbtFloat;
6514         (yyval.interm.type).setVector(4);
6515     }
6516 #line 6517 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6517     break;
6518 
6519   case 228:
6520 #line 1722 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6521     {
6522         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
6523         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6524         (yyval.interm.type).basicType = EbtDouble;
6525         (yyval.interm.type).setVector(2);
6526     }
6527 #line 6528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6528     break;
6529 
6530   case 229:
6531 #line 1728 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6532     {
6533         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
6534         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6535         (yyval.interm.type).basicType = EbtDouble;
6536         (yyval.interm.type).setVector(3);
6537     }
6538 #line 6539 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6539     break;
6540 
6541   case 230:
6542 #line 1734 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6543     {
6544         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
6545         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6546         (yyval.interm.type).basicType = EbtDouble;
6547         (yyval.interm.type).setVector(4);
6548     }
6549 #line 6550 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6550     break;
6551 
6552   case 231:
6553 #line 1740 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6554     {
6555         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6556         (yyval.interm.type).basicType = EbtBool;
6557         (yyval.interm.type).setVector(2);
6558     }
6559 #line 6560 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6560     break;
6561 
6562   case 232:
6563 #line 1745 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6564     {
6565         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6566         (yyval.interm.type).basicType = EbtBool;
6567         (yyval.interm.type).setVector(3);
6568     }
6569 #line 6570 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6570     break;
6571 
6572   case 233:
6573 #line 1750 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6574     {
6575         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6576         (yyval.interm.type).basicType = EbtBool;
6577         (yyval.interm.type).setVector(4);
6578     }
6579 #line 6580 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6580     break;
6581 
6582   case 234:
6583 #line 1755 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6584     {
6585         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6586         (yyval.interm.type).basicType = EbtInt;
6587         (yyval.interm.type).setVector(2);
6588     }
6589 #line 6590 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6590     break;
6591 
6592   case 235:
6593 #line 1760 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6594     {
6595         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6596         (yyval.interm.type).basicType = EbtInt;
6597         (yyval.interm.type).setVector(3);
6598     }
6599 #line 6600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6600     break;
6601 
6602   case 236:
6603 #line 1765 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6604     {
6605         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6606         (yyval.interm.type).basicType = EbtInt;
6607         (yyval.interm.type).setVector(4);
6608     }
6609 #line 6610 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6610     break;
6611 
6612   case 237:
6613 #line 1770 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6614     {
6615         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6616         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6617         (yyval.interm.type).basicType = EbtInt8;
6618         (yyval.interm.type).setVector(2);
6619     }
6620 #line 6621 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6621     break;
6622 
6623   case 238:
6624 #line 1776 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6625     {
6626         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6627         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6628         (yyval.interm.type).basicType = EbtInt8;
6629         (yyval.interm.type).setVector(3);
6630     }
6631 #line 6632 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6632     break;
6633 
6634   case 239:
6635 #line 1782 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6636     {
6637         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6638         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6639         (yyval.interm.type).basicType = EbtInt8;
6640         (yyval.interm.type).setVector(4);
6641     }
6642 #line 6643 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6643     break;
6644 
6645   case 240:
6646 #line 1788 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6647     {
6648         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6649         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6650         (yyval.interm.type).basicType = EbtInt16;
6651         (yyval.interm.type).setVector(2);
6652     }
6653 #line 6654 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6654     break;
6655 
6656   case 241:
6657 #line 1794 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6658     {
6659         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6660         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6661         (yyval.interm.type).basicType = EbtInt16;
6662         (yyval.interm.type).setVector(3);
6663     }
6664 #line 6665 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6665     break;
6666 
6667   case 242:
6668 #line 1800 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6669     {
6670         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6671         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6672         (yyval.interm.type).basicType = EbtInt16;
6673         (yyval.interm.type).setVector(4);
6674     }
6675 #line 6676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6676     break;
6677 
6678   case 243:
6679 #line 1806 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6680     {
6681         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6682         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6683         (yyval.interm.type).basicType = EbtInt;
6684         (yyval.interm.type).setVector(2);
6685     }
6686 #line 6687 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6687     break;
6688 
6689   case 244:
6690 #line 1812 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6691     {
6692         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6693         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6694         (yyval.interm.type).basicType = EbtInt;
6695         (yyval.interm.type).setVector(3);
6696     }
6697 #line 6698 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6698     break;
6699 
6700   case 245:
6701 #line 1818 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6702     {
6703         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6704         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6705         (yyval.interm.type).basicType = EbtInt;
6706         (yyval.interm.type).setVector(4);
6707     }
6708 #line 6709 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6709     break;
6710 
6711   case 246:
6712 #line 1824 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6713     {
6714         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
6715         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6716         (yyval.interm.type).basicType = EbtInt64;
6717         (yyval.interm.type).setVector(2);
6718     }
6719 #line 6720 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6720     break;
6721 
6722   case 247:
6723 #line 1830 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6724     {
6725         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
6726         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6727         (yyval.interm.type).basicType = EbtInt64;
6728         (yyval.interm.type).setVector(3);
6729     }
6730 #line 6731 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6731     break;
6732 
6733   case 248:
6734 #line 1836 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6735     {
6736         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
6737         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6738         (yyval.interm.type).basicType = EbtInt64;
6739         (yyval.interm.type).setVector(4);
6740     }
6741 #line 6742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6742     break;
6743 
6744   case 249:
6745 #line 1842 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6746     {
6747         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6748         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6749         (yyval.interm.type).basicType = EbtUint;
6750         (yyval.interm.type).setVector(2);
6751     }
6752 #line 6753 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6753     break;
6754 
6755   case 250:
6756 #line 1848 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6757     {
6758         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6759         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6760         (yyval.interm.type).basicType = EbtUint;
6761         (yyval.interm.type).setVector(3);
6762     }
6763 #line 6764 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6764     break;
6765 
6766   case 251:
6767 #line 1854 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6768     {
6769         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6770         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6771         (yyval.interm.type).basicType = EbtUint;
6772         (yyval.interm.type).setVector(4);
6773     }
6774 #line 6775 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6775     break;
6776 
6777   case 252:
6778 #line 1860 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6779     {
6780         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6781         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6782         (yyval.interm.type).basicType = EbtUint8;
6783         (yyval.interm.type).setVector(2);
6784     }
6785 #line 6786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6786     break;
6787 
6788   case 253:
6789 #line 1866 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6790     {
6791         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6792         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6793         (yyval.interm.type).basicType = EbtUint8;
6794         (yyval.interm.type).setVector(3);
6795     }
6796 #line 6797 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6797     break;
6798 
6799   case 254:
6800 #line 1872 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6801     {
6802         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6803         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6804         (yyval.interm.type).basicType = EbtUint8;
6805         (yyval.interm.type).setVector(4);
6806     }
6807 #line 6808 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6808     break;
6809 
6810   case 255:
6811 #line 1878 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6812     {
6813         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6814         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6815         (yyval.interm.type).basicType = EbtUint16;
6816         (yyval.interm.type).setVector(2);
6817     }
6818 #line 6819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6819     break;
6820 
6821   case 256:
6822 #line 1884 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6823     {
6824         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6825         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6826         (yyval.interm.type).basicType = EbtUint16;
6827         (yyval.interm.type).setVector(3);
6828     }
6829 #line 6830 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6830     break;
6831 
6832   case 257:
6833 #line 1890 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6834     {
6835         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6836         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6837         (yyval.interm.type).basicType = EbtUint16;
6838         (yyval.interm.type).setVector(4);
6839     }
6840 #line 6841 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6841     break;
6842 
6843   case 258:
6844 #line 1896 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6845     {
6846         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6847         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6848         (yyval.interm.type).basicType = EbtUint;
6849         (yyval.interm.type).setVector(2);
6850     }
6851 #line 6852 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6852     break;
6853 
6854   case 259:
6855 #line 1902 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6856     {
6857         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6858         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6859         (yyval.interm.type).basicType = EbtUint;
6860         (yyval.interm.type).setVector(3);
6861     }
6862 #line 6863 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6863     break;
6864 
6865   case 260:
6866 #line 1908 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6867     {
6868         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6869         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6870         (yyval.interm.type).basicType = EbtUint;
6871         (yyval.interm.type).setVector(4);
6872     }
6873 #line 6874 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6874     break;
6875 
6876   case 261:
6877 #line 1914 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6878     {
6879         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6880         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6881         (yyval.interm.type).basicType = EbtUint64;
6882         (yyval.interm.type).setVector(2);
6883     }
6884 #line 6885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6885     break;
6886 
6887   case 262:
6888 #line 1920 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6889     {
6890         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6891         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6892         (yyval.interm.type).basicType = EbtUint64;
6893         (yyval.interm.type).setVector(3);
6894     }
6895 #line 6896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6896     break;
6897 
6898   case 263:
6899 #line 1926 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6900     {
6901         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6902         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6903         (yyval.interm.type).basicType = EbtUint64;
6904         (yyval.interm.type).setVector(4);
6905     }
6906 #line 6907 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6907     break;
6908 
6909   case 264:
6910 #line 1932 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6911     {
6912         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6913         (yyval.interm.type).basicType = EbtFloat;
6914         (yyval.interm.type).setMatrix(2, 2);
6915     }
6916 #line 6917 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6917     break;
6918 
6919   case 265:
6920 #line 1937 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6921     {
6922         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6923         (yyval.interm.type).basicType = EbtFloat;
6924         (yyval.interm.type).setMatrix(3, 3);
6925     }
6926 #line 6927 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6927     break;
6928 
6929   case 266:
6930 #line 1942 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6931     {
6932         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6933         (yyval.interm.type).basicType = EbtFloat;
6934         (yyval.interm.type).setMatrix(4, 4);
6935     }
6936 #line 6937 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6937     break;
6938 
6939   case 267:
6940 #line 1947 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6941     {
6942         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6943         (yyval.interm.type).basicType = EbtFloat;
6944         (yyval.interm.type).setMatrix(2, 2);
6945     }
6946 #line 6947 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6947     break;
6948 
6949   case 268:
6950 #line 1952 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6951     {
6952         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6953         (yyval.interm.type).basicType = EbtFloat;
6954         (yyval.interm.type).setMatrix(2, 3);
6955     }
6956 #line 6957 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6957     break;
6958 
6959   case 269:
6960 #line 1957 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6961     {
6962         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6963         (yyval.interm.type).basicType = EbtFloat;
6964         (yyval.interm.type).setMatrix(2, 4);
6965     }
6966 #line 6967 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6967     break;
6968 
6969   case 270:
6970 #line 1962 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6971     {
6972         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6973         (yyval.interm.type).basicType = EbtFloat;
6974         (yyval.interm.type).setMatrix(3, 2);
6975     }
6976 #line 6977 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6977     break;
6978 
6979   case 271:
6980 #line 1967 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6981     {
6982         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6983         (yyval.interm.type).basicType = EbtFloat;
6984         (yyval.interm.type).setMatrix(3, 3);
6985     }
6986 #line 6987 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6987     break;
6988 
6989   case 272:
6990 #line 1972 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6991     {
6992         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6993         (yyval.interm.type).basicType = EbtFloat;
6994         (yyval.interm.type).setMatrix(3, 4);
6995     }
6996 #line 6997 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6997     break;
6998 
6999   case 273:
7000 #line 1977 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7001     {
7002         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7003         (yyval.interm.type).basicType = EbtFloat;
7004         (yyval.interm.type).setMatrix(4, 2);
7005     }
7006 #line 7007 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7007     break;
7008 
7009   case 274:
7010 #line 1982 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7011     {
7012         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7013         (yyval.interm.type).basicType = EbtFloat;
7014         (yyval.interm.type).setMatrix(4, 3);
7015     }
7016 #line 7017 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7017     break;
7018 
7019   case 275:
7020 #line 1987 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7021     {
7022         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7023         (yyval.interm.type).basicType = EbtFloat;
7024         (yyval.interm.type).setMatrix(4, 4);
7025     }
7026 #line 7027 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7027     break;
7028 
7029   case 276:
7030 #line 1992 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7031     {
7032         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7033         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7034         (yyval.interm.type).basicType = EbtDouble;
7035         (yyval.interm.type).setMatrix(2, 2);
7036     }
7037 #line 7038 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7038     break;
7039 
7040   case 277:
7041 #line 1998 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7042     {
7043         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7044         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7045         (yyval.interm.type).basicType = EbtDouble;
7046         (yyval.interm.type).setMatrix(3, 3);
7047     }
7048 #line 7049 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7049     break;
7050 
7051   case 278:
7052 #line 2004 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7053     {
7054         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7055         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7056         (yyval.interm.type).basicType = EbtDouble;
7057         (yyval.interm.type).setMatrix(4, 4);
7058     }
7059 #line 7060 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7060     break;
7061 
7062   case 279:
7063 #line 2010 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7064     {
7065         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7066         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7067         (yyval.interm.type).basicType = EbtDouble;
7068         (yyval.interm.type).setMatrix(2, 2);
7069     }
7070 #line 7071 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7071     break;
7072 
7073   case 280:
7074 #line 2016 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7075     {
7076         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7077         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7078         (yyval.interm.type).basicType = EbtDouble;
7079         (yyval.interm.type).setMatrix(2, 3);
7080     }
7081 #line 7082 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7082     break;
7083 
7084   case 281:
7085 #line 2022 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7086     {
7087         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7088         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7089         (yyval.interm.type).basicType = EbtDouble;
7090         (yyval.interm.type).setMatrix(2, 4);
7091     }
7092 #line 7093 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7093     break;
7094 
7095   case 282:
7096 #line 2028 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7097     {
7098         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7099         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7100         (yyval.interm.type).basicType = EbtDouble;
7101         (yyval.interm.type).setMatrix(3, 2);
7102     }
7103 #line 7104 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7104     break;
7105 
7106   case 283:
7107 #line 2034 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7108     {
7109         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7110         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7111         (yyval.interm.type).basicType = EbtDouble;
7112         (yyval.interm.type).setMatrix(3, 3);
7113     }
7114 #line 7115 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7115     break;
7116 
7117   case 284:
7118 #line 2040 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7119     {
7120         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7121         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7122         (yyval.interm.type).basicType = EbtDouble;
7123         (yyval.interm.type).setMatrix(3, 4);
7124     }
7125 #line 7126 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7126     break;
7127 
7128   case 285:
7129 #line 2046 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7130     {
7131         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7132         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7133         (yyval.interm.type).basicType = EbtDouble;
7134         (yyval.interm.type).setMatrix(4, 2);
7135     }
7136 #line 7137 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7137     break;
7138 
7139   case 286:
7140 #line 2052 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7141     {
7142         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7143         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7144         (yyval.interm.type).basicType = EbtDouble;
7145         (yyval.interm.type).setMatrix(4, 3);
7146     }
7147 #line 7148 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7148     break;
7149 
7150   case 287:
7151 #line 2058 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7152     {
7153         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7154         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7155         (yyval.interm.type).basicType = EbtDouble;
7156         (yyval.interm.type).setMatrix(4, 4);
7157     }
7158 #line 7159 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7159     break;
7160 
7161   case 288:
7162 #line 2064 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7163     {
7164         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7165         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7166         (yyval.interm.type).basicType = EbtFloat16;
7167         (yyval.interm.type).setMatrix(2, 2);
7168     }
7169 #line 7170 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7170     break;
7171 
7172   case 289:
7173 #line 2070 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7174     {
7175         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7176         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7177         (yyval.interm.type).basicType = EbtFloat16;
7178         (yyval.interm.type).setMatrix(3, 3);
7179     }
7180 #line 7181 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7181     break;
7182 
7183   case 290:
7184 #line 2076 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7185     {
7186         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7187         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7188         (yyval.interm.type).basicType = EbtFloat16;
7189         (yyval.interm.type).setMatrix(4, 4);
7190     }
7191 #line 7192 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7192     break;
7193 
7194   case 291:
7195 #line 2082 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7196     {
7197         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7198         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7199         (yyval.interm.type).basicType = EbtFloat16;
7200         (yyval.interm.type).setMatrix(2, 2);
7201     }
7202 #line 7203 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7203     break;
7204 
7205   case 292:
7206 #line 2088 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7207     {
7208         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7209         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7210         (yyval.interm.type).basicType = EbtFloat16;
7211         (yyval.interm.type).setMatrix(2, 3);
7212     }
7213 #line 7214 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7214     break;
7215 
7216   case 293:
7217 #line 2094 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7218     {
7219         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7220         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7221         (yyval.interm.type).basicType = EbtFloat16;
7222         (yyval.interm.type).setMatrix(2, 4);
7223     }
7224 #line 7225 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7225     break;
7226 
7227   case 294:
7228 #line 2100 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7229     {
7230         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7231         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7232         (yyval.interm.type).basicType = EbtFloat16;
7233         (yyval.interm.type).setMatrix(3, 2);
7234     }
7235 #line 7236 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7236     break;
7237 
7238   case 295:
7239 #line 2106 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7240     {
7241         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7242         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7243         (yyval.interm.type).basicType = EbtFloat16;
7244         (yyval.interm.type).setMatrix(3, 3);
7245     }
7246 #line 7247 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7247     break;
7248 
7249   case 296:
7250 #line 2112 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7251     {
7252         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7253         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7254         (yyval.interm.type).basicType = EbtFloat16;
7255         (yyval.interm.type).setMatrix(3, 4);
7256     }
7257 #line 7258 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7258     break;
7259 
7260   case 297:
7261 #line 2118 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7262     {
7263         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7264         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7265         (yyval.interm.type).basicType = EbtFloat16;
7266         (yyval.interm.type).setMatrix(4, 2);
7267     }
7268 #line 7269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7269     break;
7270 
7271   case 298:
7272 #line 2124 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7273     {
7274         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7275         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7276         (yyval.interm.type).basicType = EbtFloat16;
7277         (yyval.interm.type).setMatrix(4, 3);
7278     }
7279 #line 7280 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7280     break;
7281 
7282   case 299:
7283 #line 2130 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7284     {
7285         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7286         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7287         (yyval.interm.type).basicType = EbtFloat16;
7288         (yyval.interm.type).setMatrix(4, 4);
7289     }
7290 #line 7291 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7291     break;
7292 
7293   case 300:
7294 #line 2136 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7295     {
7296         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7297         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7298         (yyval.interm.type).basicType = EbtFloat;
7299         (yyval.interm.type).setMatrix(2, 2);
7300     }
7301 #line 7302 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7302     break;
7303 
7304   case 301:
7305 #line 2142 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7306     {
7307         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7308         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7309         (yyval.interm.type).basicType = EbtFloat;
7310         (yyval.interm.type).setMatrix(3, 3);
7311     }
7312 #line 7313 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7313     break;
7314 
7315   case 302:
7316 #line 2148 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7317     {
7318         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7319         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7320         (yyval.interm.type).basicType = EbtFloat;
7321         (yyval.interm.type).setMatrix(4, 4);
7322     }
7323 #line 7324 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7324     break;
7325 
7326   case 303:
7327 #line 2154 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7328     {
7329         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7330         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7331         (yyval.interm.type).basicType = EbtFloat;
7332         (yyval.interm.type).setMatrix(2, 2);
7333     }
7334 #line 7335 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7335     break;
7336 
7337   case 304:
7338 #line 2160 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7339     {
7340         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7341         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7342         (yyval.interm.type).basicType = EbtFloat;
7343         (yyval.interm.type).setMatrix(2, 3);
7344     }
7345 #line 7346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7346     break;
7347 
7348   case 305:
7349 #line 2166 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7350     {
7351         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7352         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7353         (yyval.interm.type).basicType = EbtFloat;
7354         (yyval.interm.type).setMatrix(2, 4);
7355     }
7356 #line 7357 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7357     break;
7358 
7359   case 306:
7360 #line 2172 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7361     {
7362         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7363         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7364         (yyval.interm.type).basicType = EbtFloat;
7365         (yyval.interm.type).setMatrix(3, 2);
7366     }
7367 #line 7368 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7368     break;
7369 
7370   case 307:
7371 #line 2178 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7372     {
7373         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7374         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7375         (yyval.interm.type).basicType = EbtFloat;
7376         (yyval.interm.type).setMatrix(3, 3);
7377     }
7378 #line 7379 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7379     break;
7380 
7381   case 308:
7382 #line 2184 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7383     {
7384         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7385         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7386         (yyval.interm.type).basicType = EbtFloat;
7387         (yyval.interm.type).setMatrix(3, 4);
7388     }
7389 #line 7390 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7390     break;
7391 
7392   case 309:
7393 #line 2190 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7394     {
7395         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7396         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7397         (yyval.interm.type).basicType = EbtFloat;
7398         (yyval.interm.type).setMatrix(4, 2);
7399     }
7400 #line 7401 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7401     break;
7402 
7403   case 310:
7404 #line 2196 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7405     {
7406         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7407         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7408         (yyval.interm.type).basicType = EbtFloat;
7409         (yyval.interm.type).setMatrix(4, 3);
7410     }
7411 #line 7412 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7412     break;
7413 
7414   case 311:
7415 #line 2202 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7416     {
7417         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7418         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7419         (yyval.interm.type).basicType = EbtFloat;
7420         (yyval.interm.type).setMatrix(4, 4);
7421     }
7422 #line 7423 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7423     break;
7424 
7425   case 312:
7426 #line 2208 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7427     {
7428         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7429         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7430         (yyval.interm.type).basicType = EbtDouble;
7431         (yyval.interm.type).setMatrix(2, 2);
7432     }
7433 #line 7434 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7434     break;
7435 
7436   case 313:
7437 #line 2214 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7438     {
7439         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7440         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7441         (yyval.interm.type).basicType = EbtDouble;
7442         (yyval.interm.type).setMatrix(3, 3);
7443     }
7444 #line 7445 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7445     break;
7446 
7447   case 314:
7448 #line 2220 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7449     {
7450         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7451         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7452         (yyval.interm.type).basicType = EbtDouble;
7453         (yyval.interm.type).setMatrix(4, 4);
7454     }
7455 #line 7456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7456     break;
7457 
7458   case 315:
7459 #line 2226 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7460     {
7461         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7462         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7463         (yyval.interm.type).basicType = EbtDouble;
7464         (yyval.interm.type).setMatrix(2, 2);
7465     }
7466 #line 7467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7467     break;
7468 
7469   case 316:
7470 #line 2232 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7471     {
7472         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7473         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7474         (yyval.interm.type).basicType = EbtDouble;
7475         (yyval.interm.type).setMatrix(2, 3);
7476     }
7477 #line 7478 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7478     break;
7479 
7480   case 317:
7481 #line 2238 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7482     {
7483         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7484         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7485         (yyval.interm.type).basicType = EbtDouble;
7486         (yyval.interm.type).setMatrix(2, 4);
7487     }
7488 #line 7489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7489     break;
7490 
7491   case 318:
7492 #line 2244 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7493     {
7494         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7495         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7496         (yyval.interm.type).basicType = EbtDouble;
7497         (yyval.interm.type).setMatrix(3, 2);
7498     }
7499 #line 7500 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7500     break;
7501 
7502   case 319:
7503 #line 2250 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7504     {
7505         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7506         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7507         (yyval.interm.type).basicType = EbtDouble;
7508         (yyval.interm.type).setMatrix(3, 3);
7509     }
7510 #line 7511 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7511     break;
7512 
7513   case 320:
7514 #line 2256 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7515     {
7516         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7517         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7518         (yyval.interm.type).basicType = EbtDouble;
7519         (yyval.interm.type).setMatrix(3, 4);
7520     }
7521 #line 7522 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7522     break;
7523 
7524   case 321:
7525 #line 2262 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7526     {
7527         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7528         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7529         (yyval.interm.type).basicType = EbtDouble;
7530         (yyval.interm.type).setMatrix(4, 2);
7531     }
7532 #line 7533 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7533     break;
7534 
7535   case 322:
7536 #line 2268 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7537     {
7538         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7539         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7540         (yyval.interm.type).basicType = EbtDouble;
7541         (yyval.interm.type).setMatrix(4, 3);
7542     }
7543 #line 7544 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7544     break;
7545 
7546   case 323:
7547 #line 2274 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7548     {
7549         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7550         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7551         (yyval.interm.type).basicType = EbtDouble;
7552         (yyval.interm.type).setMatrix(4, 4);
7553     }
7554 #line 7555 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7555     break;
7556 
7557   case 324:
7558 #line 2280 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7559     {
7560 #ifdef NV_EXTENSIONS
7561        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7562        (yyval.interm.type).basicType = EbtAccStructNV;
7563 #endif
7564     }
7565 #line 7566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7566     break;
7567 
7568   case 325:
7569 #line 2286 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7570     {
7571         parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types");
7572         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7573         (yyval.interm.type).basicType = EbtAtomicUint;
7574     }
7575 #line 7576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7576     break;
7577 
7578   case 326:
7579 #line 2291 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7580     {
7581         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7582         (yyval.interm.type).basicType = EbtSampler;
7583         (yyval.interm.type).sampler.set(EbtFloat, Esd1D);
7584     }
7585 #line 7586 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7586     break;
7587 
7588   case 327:
7589 #line 2296 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7590     {
7591         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7592         (yyval.interm.type).basicType = EbtSampler;
7593         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
7594     }
7595 #line 7596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7596     break;
7597 
7598   case 328:
7599 #line 2301 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7600     {
7601         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7602         (yyval.interm.type).basicType = EbtSampler;
7603         (yyval.interm.type).sampler.set(EbtFloat, Esd3D);
7604     }
7605 #line 7606 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7606     break;
7607 
7608   case 329:
7609 #line 2306 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7610     {
7611         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7612         (yyval.interm.type).basicType = EbtSampler;
7613         (yyval.interm.type).sampler.set(EbtFloat, EsdCube);
7614     }
7615 #line 7616 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7616     break;
7617 
7618   case 330:
7619 #line 2311 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7620     {
7621         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7622         (yyval.interm.type).basicType = EbtSampler;
7623         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
7624     }
7625 #line 7626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7626     break;
7627 
7628   case 331:
7629 #line 2316 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7630     {
7631         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7632         (yyval.interm.type).basicType = EbtSampler;
7633         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
7634     }
7635 #line 7636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7636     break;
7637 
7638   case 332:
7639 #line 2321 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7640     {
7641         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7642         (yyval.interm.type).basicType = EbtSampler;
7643         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
7644     }
7645 #line 7646 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7646     break;
7647 
7648   case 333:
7649 #line 2326 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7650     {
7651         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7652         (yyval.interm.type).basicType = EbtSampler;
7653         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
7654     }
7655 #line 7656 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7656     break;
7657 
7658   case 334:
7659 #line 2331 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7660     {
7661         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7662         (yyval.interm.type).basicType = EbtSampler;
7663         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
7664     }
7665 #line 7666 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7666     break;
7667 
7668   case 335:
7669 #line 2336 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7670     {
7671         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7672         (yyval.interm.type).basicType = EbtSampler;
7673         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
7674     }
7675 #line 7676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7676     break;
7677 
7678   case 336:
7679 #line 2341 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7680     {
7681         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7682         (yyval.interm.type).basicType = EbtSampler;
7683         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
7684     }
7685 #line 7686 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7686     break;
7687 
7688   case 337:
7689 #line 2346 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7690     {
7691         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7692         (yyval.interm.type).basicType = EbtSampler;
7693         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
7694     }
7695 #line 7696 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7696     break;
7697 
7698   case 338:
7699 #line 2351 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7700     {
7701         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7702         (yyval.interm.type).basicType = EbtSampler;
7703         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
7704     }
7705 #line 7706 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7706     break;
7707 
7708   case 339:
7709 #line 2356 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7710     {
7711 #ifdef AMD_EXTENSIONS
7712         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7713         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7714         (yyval.interm.type).basicType = EbtSampler;
7715         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D);
7716 #endif
7717     }
7718 #line 7719 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7719     break;
7720 
7721   case 340:
7722 #line 2364 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7723     {
7724 #ifdef AMD_EXTENSIONS
7725         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7726         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7727         (yyval.interm.type).basicType = EbtSampler;
7728         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D);
7729 #endif
7730     }
7731 #line 7732 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7732     break;
7733 
7734   case 341:
7735 #line 2372 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7736     {
7737 #ifdef AMD_EXTENSIONS
7738         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7739         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7740         (yyval.interm.type).basicType = EbtSampler;
7741         (yyval.interm.type).sampler.set(EbtFloat16, Esd3D);
7742 #endif
7743     }
7744 #line 7745 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7745     break;
7746 
7747   case 342:
7748 #line 2380 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7749     {
7750 #ifdef AMD_EXTENSIONS
7751         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7752         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7753         (yyval.interm.type).basicType = EbtSampler;
7754         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube);
7755 #endif
7756     }
7757 #line 7758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7758     break;
7759 
7760   case 343:
7761 #line 2388 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7762     {
7763 #ifdef AMD_EXTENSIONS
7764         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7765         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7766         (yyval.interm.type).basicType = EbtSampler;
7767         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true);
7768 #endif
7769     }
7770 #line 7771 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7771     break;
7772 
7773   case 344:
7774 #line 2396 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7775     {
7776 #ifdef AMD_EXTENSIONS
7777         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7778         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7779         (yyval.interm.type).basicType = EbtSampler;
7780         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true);
7781 #endif
7782     }
7783 #line 7784 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7784     break;
7785 
7786   case 345:
7787 #line 2404 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7788     {
7789 #ifdef AMD_EXTENSIONS
7790         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7791         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7792         (yyval.interm.type).basicType = EbtSampler;
7793         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true);
7794 #endif
7795     }
7796 #line 7797 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7797     break;
7798 
7799   case 346:
7800 #line 2412 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7801     {
7802 #ifdef AMD_EXTENSIONS
7803         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7804         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7805         (yyval.interm.type).basicType = EbtSampler;
7806         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true);
7807 #endif
7808     }
7809 #line 7810 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7810     break;
7811 
7812   case 347:
7813 #line 2420 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7814     {
7815 #ifdef AMD_EXTENSIONS
7816         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7817         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7818         (yyval.interm.type).basicType = EbtSampler;
7819         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true);
7820 #endif
7821     }
7822 #line 7823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7823     break;
7824 
7825   case 348:
7826 #line 2428 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7827     {
7828 #ifdef AMD_EXTENSIONS
7829         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7830         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7831         (yyval.interm.type).basicType = EbtSampler;
7832         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true);
7833 #endif
7834     }
7835 #line 7836 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7836     break;
7837 
7838   case 349:
7839 #line 2436 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7840     {
7841 #ifdef AMD_EXTENSIONS
7842         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7843         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7844         (yyval.interm.type).basicType = EbtSampler;
7845         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true);
7846 #endif
7847     }
7848 #line 7849 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7849     break;
7850 
7851   case 350:
7852 #line 2444 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7853     {
7854 #ifdef AMD_EXTENSIONS
7855         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7856         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7857         (yyval.interm.type).basicType = EbtSampler;
7858         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true);
7859 #endif
7860     }
7861 #line 7862 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7862     break;
7863 
7864   case 351:
7865 #line 2452 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7866     {
7867 #ifdef AMD_EXTENSIONS
7868         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7869         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7870         (yyval.interm.type).basicType = EbtSampler;
7871         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true);
7872 #endif
7873     }
7874 #line 7875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7875     break;
7876 
7877   case 352:
7878 #line 2460 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7879     {
7880         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7881         (yyval.interm.type).basicType = EbtSampler;
7882         (yyval.interm.type).sampler.set(EbtInt, Esd1D);
7883     }
7884 #line 7885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7885     break;
7886 
7887   case 353:
7888 #line 2465 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7889     {
7890         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7891         (yyval.interm.type).basicType = EbtSampler;
7892         (yyval.interm.type).sampler.set(EbtInt, Esd2D);
7893     }
7894 #line 7895 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7895     break;
7896 
7897   case 354:
7898 #line 2470 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7899     {
7900         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7901         (yyval.interm.type).basicType = EbtSampler;
7902         (yyval.interm.type).sampler.set(EbtInt, Esd3D);
7903     }
7904 #line 7905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7905     break;
7906 
7907   case 355:
7908 #line 2475 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7909     {
7910         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7911         (yyval.interm.type).basicType = EbtSampler;
7912         (yyval.interm.type).sampler.set(EbtInt, EsdCube);
7913     }
7914 #line 7915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7915     break;
7916 
7917   case 356:
7918 #line 2480 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7919     {
7920         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7921         (yyval.interm.type).basicType = EbtSampler;
7922         (yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
7923     }
7924 #line 7925 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7925     break;
7926 
7927   case 357:
7928 #line 2485 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7929     {
7930         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7931         (yyval.interm.type).basicType = EbtSampler;
7932         (yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
7933     }
7934 #line 7935 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7935     break;
7936 
7937   case 358:
7938 #line 2490 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7939     {
7940         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7941         (yyval.interm.type).basicType = EbtSampler;
7942         (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
7943     }
7944 #line 7945 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7945     break;
7946 
7947   case 359:
7948 #line 2495 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7949     {
7950         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7951         (yyval.interm.type).basicType = EbtSampler;
7952         (yyval.interm.type).sampler.set(EbtUint, Esd1D);
7953     }
7954 #line 7955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7955     break;
7956 
7957   case 360:
7958 #line 2500 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7959     {
7960         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7961         (yyval.interm.type).basicType = EbtSampler;
7962         (yyval.interm.type).sampler.set(EbtUint, Esd2D);
7963     }
7964 #line 7965 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7965     break;
7966 
7967   case 361:
7968 #line 2505 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7969     {
7970         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7971         (yyval.interm.type).basicType = EbtSampler;
7972         (yyval.interm.type).sampler.set(EbtUint, Esd3D);
7973     }
7974 #line 7975 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7975     break;
7976 
7977   case 362:
7978 #line 2510 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7979     {
7980         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7981         (yyval.interm.type).basicType = EbtSampler;
7982         (yyval.interm.type).sampler.set(EbtUint, EsdCube);
7983     }
7984 #line 7985 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7985     break;
7986 
7987   case 363:
7988 #line 2515 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7989     {
7990         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7991         (yyval.interm.type).basicType = EbtSampler;
7992         (yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
7993     }
7994 #line 7995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7995     break;
7996 
7997   case 364:
7998 #line 2520 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7999     {
8000         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8001         (yyval.interm.type).basicType = EbtSampler;
8002         (yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
8003     }
8004 #line 8005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8005     break;
8006 
8007   case 365:
8008 #line 2525 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8009     {
8010         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8011         (yyval.interm.type).basicType = EbtSampler;
8012         (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
8013     }
8014 #line 8015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8015     break;
8016 
8017   case 366:
8018 #line 2530 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8019     {
8020         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8021         (yyval.interm.type).basicType = EbtSampler;
8022         (yyval.interm.type).sampler.set(EbtFloat, EsdRect);
8023     }
8024 #line 8025 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8025     break;
8026 
8027   case 367:
8028 #line 2535 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8029     {
8030         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8031         (yyval.interm.type).basicType = EbtSampler;
8032         (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
8033     }
8034 #line 8035 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8035     break;
8036 
8037   case 368:
8038 #line 2540 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8039     {
8040 #ifdef AMD_EXTENSIONS
8041         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8042         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8043         (yyval.interm.type).basicType = EbtSampler;
8044         (yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
8045 #endif
8046     }
8047 #line 8048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8048     break;
8049 
8050   case 369:
8051 #line 2548 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8052     {
8053 #ifdef AMD_EXTENSIONS
8054         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8055         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8056         (yyval.interm.type).basicType = EbtSampler;
8057         (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
8058 #endif
8059     }
8060 #line 8061 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8061     break;
8062 
8063   case 370:
8064 #line 2556 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8065     {
8066         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8067         (yyval.interm.type).basicType = EbtSampler;
8068         (yyval.interm.type).sampler.set(EbtInt, EsdRect);
8069     }
8070 #line 8071 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8071     break;
8072 
8073   case 371:
8074 #line 2561 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8075     {
8076         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8077         (yyval.interm.type).basicType = EbtSampler;
8078         (yyval.interm.type).sampler.set(EbtUint, EsdRect);
8079     }
8080 #line 8081 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8081     break;
8082 
8083   case 372:
8084 #line 2566 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8085     {
8086         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8087         (yyval.interm.type).basicType = EbtSampler;
8088         (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
8089     }
8090 #line 8091 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8091     break;
8092 
8093   case 373:
8094 #line 2571 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8095     {
8096 #ifdef AMD_EXTENSIONS
8097         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8098         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8099         (yyval.interm.type).basicType = EbtSampler;
8100         (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
8101 #endif
8102     }
8103 #line 8104 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8104     break;
8105 
8106   case 374:
8107 #line 2579 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8108     {
8109         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8110         (yyval.interm.type).basicType = EbtSampler;
8111         (yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
8112     }
8113 #line 8114 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8114     break;
8115 
8116   case 375:
8117 #line 2584 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8118     {
8119         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8120         (yyval.interm.type).basicType = EbtSampler;
8121         (yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
8122     }
8123 #line 8124 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8124     break;
8125 
8126   case 376:
8127 #line 2589 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8128     {
8129         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8130         (yyval.interm.type).basicType = EbtSampler;
8131         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
8132     }
8133 #line 8134 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8134     break;
8135 
8136   case 377:
8137 #line 2594 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8138     {
8139 #ifdef AMD_EXTENSIONS
8140         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8141         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8142         (yyval.interm.type).basicType = EbtSampler;
8143         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
8144 #endif
8145     }
8146 #line 8147 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8147     break;
8148 
8149   case 378:
8150 #line 2602 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8151     {
8152         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8153         (yyval.interm.type).basicType = EbtSampler;
8154         (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
8155     }
8156 #line 8157 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8157     break;
8158 
8159   case 379:
8160 #line 2607 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8161     {
8162         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8163         (yyval.interm.type).basicType = EbtSampler;
8164         (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
8165     }
8166 #line 8167 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8167     break;
8168 
8169   case 380:
8170 #line 2612 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8171     {
8172         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8173         (yyval.interm.type).basicType = EbtSampler;
8174         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
8175     }
8176 #line 8177 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8177     break;
8178 
8179   case 381:
8180 #line 2617 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8181     {
8182 #ifdef AMD_EXTENSIONS
8183         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8184         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8185         (yyval.interm.type).basicType = EbtSampler;
8186         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
8187 #endif
8188     }
8189 #line 8190 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8190     break;
8191 
8192   case 382:
8193 #line 2625 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8194     {
8195         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8196         (yyval.interm.type).basicType = EbtSampler;
8197         (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
8198     }
8199 #line 8200 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8200     break;
8201 
8202   case 383:
8203 #line 2630 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8204     {
8205         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8206         (yyval.interm.type).basicType = EbtSampler;
8207         (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
8208     }
8209 #line 8210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8210     break;
8211 
8212   case 384:
8213 #line 2635 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8214     {
8215         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8216         (yyval.interm.type).basicType = EbtSampler;
8217         (yyval.interm.type).sampler.setPureSampler(false);
8218     }
8219 #line 8220 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8220     break;
8221 
8222   case 385:
8223 #line 2640 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8224     {
8225         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8226         (yyval.interm.type).basicType = EbtSampler;
8227         (yyval.interm.type).sampler.setPureSampler(true);
8228     }
8229 #line 8230 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8230     break;
8231 
8232   case 386:
8233 #line 2645 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8234     {
8235         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8236         (yyval.interm.type).basicType = EbtSampler;
8237         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
8238     }
8239 #line 8240 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8240     break;
8241 
8242   case 387:
8243 #line 2650 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8244     {
8245 #ifdef AMD_EXTENSIONS
8246         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8247         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8248         (yyval.interm.type).basicType = EbtSampler;
8249         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
8250 #endif
8251     }
8252 #line 8253 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8253     break;
8254 
8255   case 388:
8256 #line 2658 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8257     {
8258         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8259         (yyval.interm.type).basicType = EbtSampler;
8260         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
8261     }
8262 #line 8263 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8263     break;
8264 
8265   case 389:
8266 #line 2663 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8267     {
8268 #ifdef AMD_EXTENSIONS
8269         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8270         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8271         (yyval.interm.type).basicType = EbtSampler;
8272         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
8273 #endif
8274     }
8275 #line 8276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8276     break;
8277 
8278   case 390:
8279 #line 2671 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8280     {
8281         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8282         (yyval.interm.type).basicType = EbtSampler;
8283         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
8284     }
8285 #line 8286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8286     break;
8287 
8288   case 391:
8289 #line 2676 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8290     {
8291 #ifdef AMD_EXTENSIONS
8292         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8293         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8294         (yyval.interm.type).basicType = EbtSampler;
8295         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
8296 #endif
8297     }
8298 #line 8299 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8299     break;
8300 
8301   case 392:
8302 #line 2684 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8303     {
8304         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8305         (yyval.interm.type).basicType = EbtSampler;
8306         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
8307     }
8308 #line 8309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8309     break;
8310 
8311   case 393:
8312 #line 2689 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8313     {
8314 #ifdef AMD_EXTENSIONS
8315         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8316         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8317         (yyval.interm.type).basicType = EbtSampler;
8318         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
8319 #endif
8320     }
8321 #line 8322 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8322     break;
8323 
8324   case 394:
8325 #line 2697 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8326     {
8327         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8328         (yyval.interm.type).basicType = EbtSampler;
8329         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
8330     }
8331 #line 8332 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8332     break;
8333 
8334   case 395:
8335 #line 2702 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8336     {
8337 #ifdef AMD_EXTENSIONS
8338         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8339         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8340         (yyval.interm.type).basicType = EbtSampler;
8341         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
8342 #endif
8343     }
8344 #line 8345 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8345     break;
8346 
8347   case 396:
8348 #line 2710 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8349     {
8350         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8351         (yyval.interm.type).basicType = EbtSampler;
8352         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
8353     }
8354 #line 8355 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8355     break;
8356 
8357   case 397:
8358 #line 2715 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8359     {
8360 #ifdef AMD_EXTENSIONS
8361         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8362         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8363         (yyval.interm.type).basicType = EbtSampler;
8364         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true);
8365 #endif
8366     }
8367 #line 8368 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8368     break;
8369 
8370   case 398:
8371 #line 2723 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8372     {
8373         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8374         (yyval.interm.type).basicType = EbtSampler;
8375         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
8376     }
8377 #line 8378 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8378     break;
8379 
8380   case 399:
8381 #line 2728 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8382     {
8383 #ifdef AMD_EXTENSIONS
8384         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8385         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8386         (yyval.interm.type).basicType = EbtSampler;
8387         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
8388 #endif
8389     }
8390 #line 8391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8391     break;
8392 
8393   case 400:
8394 #line 2736 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8395     {
8396         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8397         (yyval.interm.type).basicType = EbtSampler;
8398         (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
8399     }
8400 #line 8401 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8401     break;
8402 
8403   case 401:
8404 #line 2741 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8405     {
8406         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8407         (yyval.interm.type).basicType = EbtSampler;
8408         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
8409     }
8410 #line 8411 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8411     break;
8412 
8413   case 402:
8414 #line 2746 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8415     {
8416         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8417         (yyval.interm.type).basicType = EbtSampler;
8418         (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
8419     }
8420 #line 8421 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8421     break;
8422 
8423   case 403:
8424 #line 2751 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8425     {
8426         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8427         (yyval.interm.type).basicType = EbtSampler;
8428         (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
8429     }
8430 #line 8431 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8431     break;
8432 
8433   case 404:
8434 #line 2756 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8435     {
8436         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8437         (yyval.interm.type).basicType = EbtSampler;
8438         (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
8439     }
8440 #line 8441 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8441     break;
8442 
8443   case 405:
8444 #line 2761 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8445     {
8446         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8447         (yyval.interm.type).basicType = EbtSampler;
8448         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
8449     }
8450 #line 8451 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8451     break;
8452 
8453   case 406:
8454 #line 2766 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8455     {
8456         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8457         (yyval.interm.type).basicType = EbtSampler;
8458         (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
8459     }
8460 #line 8461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8461     break;
8462 
8463   case 407:
8464 #line 2771 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8465     {
8466         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8467         (yyval.interm.type).basicType = EbtSampler;
8468         (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
8469     }
8470 #line 8471 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8471     break;
8472 
8473   case 408:
8474 #line 2776 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8475     {
8476         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8477         (yyval.interm.type).basicType = EbtSampler;
8478         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
8479     }
8480 #line 8481 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8481     break;
8482 
8483   case 409:
8484 #line 2781 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8485     {
8486         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8487         (yyval.interm.type).basicType = EbtSampler;
8488         (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
8489     }
8490 #line 8491 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8491     break;
8492 
8493   case 410:
8494 #line 2786 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8495     {
8496         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8497         (yyval.interm.type).basicType = EbtSampler;
8498         (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
8499     }
8500 #line 8501 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8501     break;
8502 
8503   case 411:
8504 #line 2791 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8505     {
8506         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8507         (yyval.interm.type).basicType = EbtSampler;
8508         (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
8509     }
8510 #line 8511 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8511     break;
8512 
8513   case 412:
8514 #line 2796 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8515     {
8516         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8517         (yyval.interm.type).basicType = EbtSampler;
8518         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
8519     }
8520 #line 8521 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8521     break;
8522 
8523   case 413:
8524 #line 2801 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8525     {
8526         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8527         (yyval.interm.type).basicType = EbtSampler;
8528         (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
8529     }
8530 #line 8531 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8531     break;
8532 
8533   case 414:
8534 #line 2806 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8535     {
8536         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8537         (yyval.interm.type).basicType = EbtSampler;
8538         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
8539     }
8540 #line 8541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8541     break;
8542 
8543   case 415:
8544 #line 2811 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8545     {
8546 #ifdef AMD_EXTENSIONS
8547         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8548         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8549         (yyval.interm.type).basicType = EbtSampler;
8550         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect);
8551 #endif
8552     }
8553 #line 8554 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8554     break;
8555 
8556   case 416:
8557 #line 2819 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8558     {
8559         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8560         (yyval.interm.type).basicType = EbtSampler;
8561         (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
8562     }
8563 #line 8564 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8564     break;
8565 
8566   case 417:
8567 #line 2824 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8568     {
8569         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8570         (yyval.interm.type).basicType = EbtSampler;
8571         (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
8572     }
8573 #line 8574 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8574     break;
8575 
8576   case 418:
8577 #line 2829 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8578     {
8579         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8580         (yyval.interm.type).basicType = EbtSampler;
8581         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
8582     }
8583 #line 8584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8584     break;
8585 
8586   case 419:
8587 #line 2834 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8588     {
8589 #ifdef AMD_EXTENSIONS
8590         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8591         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8592         (yyval.interm.type).basicType = EbtSampler;
8593         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer);
8594 #endif
8595     }
8596 #line 8597 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8597     break;
8598 
8599   case 420:
8600 #line 2842 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8601     {
8602         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8603         (yyval.interm.type).basicType = EbtSampler;
8604         (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
8605     }
8606 #line 8607 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8607     break;
8608 
8609   case 421:
8610 #line 2847 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8611     {
8612         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8613         (yyval.interm.type).basicType = EbtSampler;
8614         (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
8615     }
8616 #line 8617 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8617     break;
8618 
8619   case 422:
8620 #line 2852 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8621     {
8622         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8623         (yyval.interm.type).basicType = EbtSampler;
8624         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
8625     }
8626 #line 8627 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8627     break;
8628 
8629   case 423:
8630 #line 2857 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8631     {
8632 #ifdef AMD_EXTENSIONS
8633         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8634         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8635         (yyval.interm.type).basicType = EbtSampler;
8636         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
8637 #endif
8638     }
8639 #line 8640 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8640     break;
8641 
8642   case 424:
8643 #line 2865 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8644     {
8645         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8646         (yyval.interm.type).basicType = EbtSampler;
8647         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
8648     }
8649 #line 8650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8650     break;
8651 
8652   case 425:
8653 #line 2870 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8654     {
8655         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8656         (yyval.interm.type).basicType = EbtSampler;
8657         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
8658     }
8659 #line 8660 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8660     break;
8661 
8662   case 426:
8663 #line 2875 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8664     {
8665         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8666         (yyval.interm.type).basicType = EbtSampler;
8667         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
8668     }
8669 #line 8670 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8670     break;
8671 
8672   case 427:
8673 #line 2880 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8674     {
8675 #ifdef AMD_EXTENSIONS
8676         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8677         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8678         (yyval.interm.type).basicType = EbtSampler;
8679         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
8680 #endif
8681     }
8682 #line 8683 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8683     break;
8684 
8685   case 428:
8686 #line 2888 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8687     {
8688         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8689         (yyval.interm.type).basicType = EbtSampler;
8690         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
8691     }
8692 #line 8693 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8693     break;
8694 
8695   case 429:
8696 #line 2893 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8697     {
8698         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8699         (yyval.interm.type).basicType = EbtSampler;
8700         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
8701     }
8702 #line 8703 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8703     break;
8704 
8705   case 430:
8706 #line 2898 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8707     {
8708         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8709         (yyval.interm.type).basicType = EbtSampler;
8710         (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
8711     }
8712 #line 8713 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8713     break;
8714 
8715   case 431:
8716 #line 2903 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8717     {
8718 #ifdef AMD_EXTENSIONS
8719         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8720         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8721         (yyval.interm.type).basicType = EbtSampler;
8722         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D);
8723 #endif
8724     }
8725 #line 8726 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8726     break;
8727 
8728   case 432:
8729 #line 2911 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8730     {
8731         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8732         (yyval.interm.type).basicType = EbtSampler;
8733         (yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
8734     }
8735 #line 8736 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8736     break;
8737 
8738   case 433:
8739 #line 2916 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8740     {
8741         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8742         (yyval.interm.type).basicType = EbtSampler;
8743         (yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
8744     }
8745 #line 8746 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8746     break;
8747 
8748   case 434:
8749 #line 2921 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8750     {
8751         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8752         (yyval.interm.type).basicType = EbtSampler;
8753         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
8754     }
8755 #line 8756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8756     break;
8757 
8758   case 435:
8759 #line 2926 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8760     {
8761 #ifdef AMD_EXTENSIONS
8762         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8763         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8764         (yyval.interm.type).basicType = EbtSampler;
8765         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D);
8766 #endif
8767     }
8768 #line 8769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8769     break;
8770 
8771   case 436:
8772 #line 2934 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8773     {
8774         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8775         (yyval.interm.type).basicType = EbtSampler;
8776         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D);
8777     }
8778 #line 8779 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8779     break;
8780 
8781   case 437:
8782 #line 2939 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8783     {
8784         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8785         (yyval.interm.type).basicType = EbtSampler;
8786         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D);
8787     }
8788 #line 8789 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8789     break;
8790 
8791   case 438:
8792 #line 2944 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8793     {
8794         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8795         (yyval.interm.type).basicType = EbtSampler;
8796         (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
8797     }
8798 #line 8799 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8799     break;
8800 
8801   case 439:
8802 #line 2949 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8803     {
8804 #ifdef AMD_EXTENSIONS
8805         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8806         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8807         (yyval.interm.type).basicType = EbtSampler;
8808         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D);
8809 #endif
8810     }
8811 #line 8812 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8812     break;
8813 
8814   case 440:
8815 #line 2957 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8816     {
8817         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8818         (yyval.interm.type).basicType = EbtSampler;
8819         (yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
8820     }
8821 #line 8822 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8822     break;
8823 
8824   case 441:
8825 #line 2962 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8826     {
8827         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8828         (yyval.interm.type).basicType = EbtSampler;
8829         (yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
8830     }
8831 #line 8832 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8832     break;
8833 
8834   case 442:
8835 #line 2967 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8836     {
8837         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8838         (yyval.interm.type).basicType = EbtSampler;
8839         (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
8840     }
8841 #line 8842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8842     break;
8843 
8844   case 443:
8845 #line 2972 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8846     {
8847 #ifdef AMD_EXTENSIONS
8848         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8849         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8850         (yyval.interm.type).basicType = EbtSampler;
8851         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect);
8852 #endif
8853     }
8854 #line 8855 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8855     break;
8856 
8857   case 444:
8858 #line 2980 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8859     {
8860         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8861         (yyval.interm.type).basicType = EbtSampler;
8862         (yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
8863     }
8864 #line 8865 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8865     break;
8866 
8867   case 445:
8868 #line 2985 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8869     {
8870         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8871         (yyval.interm.type).basicType = EbtSampler;
8872         (yyval.interm.type).sampler.setImage(EbtUint, EsdRect);
8873     }
8874 #line 8875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8875     break;
8876 
8877   case 446:
8878 #line 2990 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8879     {
8880         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8881         (yyval.interm.type).basicType = EbtSampler;
8882         (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
8883     }
8884 #line 8885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8885     break;
8886 
8887   case 447:
8888 #line 2995 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8889     {
8890 #ifdef AMD_EXTENSIONS
8891         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8892         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8893         (yyval.interm.type).basicType = EbtSampler;
8894         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube);
8895 #endif
8896     }
8897 #line 8898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8898     break;
8899 
8900   case 448:
8901 #line 3003 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8902     {
8903         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8904         (yyval.interm.type).basicType = EbtSampler;
8905         (yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
8906     }
8907 #line 8908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8908     break;
8909 
8910   case 449:
8911 #line 3008 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8912     {
8913         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8914         (yyval.interm.type).basicType = EbtSampler;
8915         (yyval.interm.type).sampler.setImage(EbtUint, EsdCube);
8916     }
8917 #line 8918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8918     break;
8919 
8920   case 450:
8921 #line 3013 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8922     {
8923         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8924         (yyval.interm.type).basicType = EbtSampler;
8925         (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
8926     }
8927 #line 8928 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8928     break;
8929 
8930   case 451:
8931 #line 3018 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8932     {
8933 #ifdef AMD_EXTENSIONS
8934         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8935         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8936         (yyval.interm.type).basicType = EbtSampler;
8937         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer);
8938 #endif
8939     }
8940 #line 8941 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8941     break;
8942 
8943   case 452:
8944 #line 3026 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8945     {
8946         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8947         (yyval.interm.type).basicType = EbtSampler;
8948         (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
8949     }
8950 #line 8951 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8951     break;
8952 
8953   case 453:
8954 #line 3031 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8955     {
8956         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8957         (yyval.interm.type).basicType = EbtSampler;
8958         (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer);
8959     }
8960 #line 8961 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8961     break;
8962 
8963   case 454:
8964 #line 3036 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8965     {
8966         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8967         (yyval.interm.type).basicType = EbtSampler;
8968         (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
8969     }
8970 #line 8971 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8971     break;
8972 
8973   case 455:
8974 #line 3041 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8975     {
8976 #ifdef AMD_EXTENSIONS
8977         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8978         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8979         (yyval.interm.type).basicType = EbtSampler;
8980         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true);
8981 #endif
8982     }
8983 #line 8984 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8984     break;
8985 
8986   case 456:
8987 #line 3049 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8988     {
8989         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8990         (yyval.interm.type).basicType = EbtSampler;
8991         (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
8992     }
8993 #line 8994 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8994     break;
8995 
8996   case 457:
8997 #line 3054 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8998     {
8999         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9000         (yyval.interm.type).basicType = EbtSampler;
9001         (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true);
9002     }
9003 #line 9004 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9004     break;
9005 
9006   case 458:
9007 #line 3059 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9008     {
9009         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9010         (yyval.interm.type).basicType = EbtSampler;
9011         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
9012     }
9013 #line 9014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9014     break;
9015 
9016   case 459:
9017 #line 3064 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9018     {
9019 #ifdef AMD_EXTENSIONS
9020         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9021         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9022         (yyval.interm.type).basicType = EbtSampler;
9023         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true);
9024 #endif
9025     }
9026 #line 9027 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9027     break;
9028 
9029   case 460:
9030 #line 3072 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9031     {
9032         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9033         (yyval.interm.type).basicType = EbtSampler;
9034         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
9035     }
9036 #line 9037 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9037     break;
9038 
9039   case 461:
9040 #line 3077 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9041     {
9042         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9043         (yyval.interm.type).basicType = EbtSampler;
9044         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
9045     }
9046 #line 9047 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9047     break;
9048 
9049   case 462:
9050 #line 3082 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9051     {
9052         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9053         (yyval.interm.type).basicType = EbtSampler;
9054         (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
9055     }
9056 #line 9057 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9057     break;
9058 
9059   case 463:
9060 #line 3087 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9061     {
9062 #ifdef AMD_EXTENSIONS
9063         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9064         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9065         (yyval.interm.type).basicType = EbtSampler;
9066         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true);
9067 #endif
9068     }
9069 #line 9070 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9070     break;
9071 
9072   case 464:
9073 #line 3095 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9074     {
9075         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9076         (yyval.interm.type).basicType = EbtSampler;
9077         (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
9078     }
9079 #line 9080 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9080     break;
9081 
9082   case 465:
9083 #line 3100 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9084     {
9085         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9086         (yyval.interm.type).basicType = EbtSampler;
9087         (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
9088     }
9089 #line 9090 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9090     break;
9091 
9092   case 466:
9093 #line 3105 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9094     {
9095         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9096         (yyval.interm.type).basicType = EbtSampler;
9097         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
9098     }
9099 #line 9100 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9100     break;
9101 
9102   case 467:
9103 #line 3110 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9104     {
9105 #ifdef AMD_EXTENSIONS
9106         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9107         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9108         (yyval.interm.type).basicType = EbtSampler;
9109         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true);
9110 #endif
9111     }
9112 #line 9113 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9113     break;
9114 
9115   case 468:
9116 #line 3118 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9117     {
9118         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9119         (yyval.interm.type).basicType = EbtSampler;
9120         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
9121     }
9122 #line 9123 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9123     break;
9124 
9125   case 469:
9126 #line 3123 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9127     {
9128         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9129         (yyval.interm.type).basicType = EbtSampler;
9130         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
9131     }
9132 #line 9133 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9133     break;
9134 
9135   case 470:
9136 #line 3128 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9137     {
9138         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9139         (yyval.interm.type).basicType = EbtSampler;
9140         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
9141     }
9142 #line 9143 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9143     break;
9144 
9145   case 471:
9146 #line 3133 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9147     {
9148 #ifdef AMD_EXTENSIONS
9149         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9150         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9151         (yyval.interm.type).basicType = EbtSampler;
9152         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true);
9153 #endif
9154     }
9155 #line 9156 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9156     break;
9157 
9158   case 472:
9159 #line 3141 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9160     {
9161         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9162         (yyval.interm.type).basicType = EbtSampler;
9163         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
9164     }
9165 #line 9166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9166     break;
9167 
9168   case 473:
9169 #line 3146 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9170     {
9171         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9172         (yyval.interm.type).basicType = EbtSampler;
9173         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
9174     }
9175 #line 9176 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9176     break;
9177 
9178   case 474:
9179 #line 3151 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9180     {  // GL_OES_EGL_image_external
9181         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9182         (yyval.interm.type).basicType = EbtSampler;
9183         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
9184         (yyval.interm.type).sampler.external = true;
9185     }
9186 #line 9187 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9187     break;
9188 
9189   case 475:
9190 #line 3157 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9191     { // GL_EXT_YUV_target
9192         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9193         (yyval.interm.type).basicType = EbtSampler;
9194         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
9195         (yyval.interm.type).sampler.yuv = true;
9196     }
9197 #line 9198 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9198     break;
9199 
9200   case 476:
9201 #line 3163 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9202     {
9203         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9204         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9205         (yyval.interm.type).basicType = EbtSampler;
9206         (yyval.interm.type).sampler.setSubpass(EbtFloat);
9207     }
9208 #line 9209 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9209     break;
9210 
9211   case 477:
9212 #line 3169 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9213     {
9214         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9215         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9216         (yyval.interm.type).basicType = EbtSampler;
9217         (yyval.interm.type).sampler.setSubpass(EbtFloat, true);
9218     }
9219 #line 9220 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9220     break;
9221 
9222   case 478:
9223 #line 3175 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9224     {
9225 #ifdef AMD_EXTENSIONS
9226         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
9227         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9228         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9229         (yyval.interm.type).basicType = EbtSampler;
9230         (yyval.interm.type).sampler.setSubpass(EbtFloat16);
9231 #endif
9232     }
9233 #line 9234 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9234     break;
9235 
9236   case 479:
9237 #line 3184 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9238     {
9239 #ifdef AMD_EXTENSIONS
9240         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
9241         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9242         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9243         (yyval.interm.type).basicType = EbtSampler;
9244         (yyval.interm.type).sampler.setSubpass(EbtFloat16, true);
9245 #endif
9246     }
9247 #line 9248 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9248     break;
9249 
9250   case 480:
9251 #line 3193 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9252     {
9253         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9254         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9255         (yyval.interm.type).basicType = EbtSampler;
9256         (yyval.interm.type).sampler.setSubpass(EbtInt);
9257     }
9258 #line 9259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9259     break;
9260 
9261   case 481:
9262 #line 3199 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9263     {
9264         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9265         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9266         (yyval.interm.type).basicType = EbtSampler;
9267         (yyval.interm.type).sampler.setSubpass(EbtInt, true);
9268     }
9269 #line 9270 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9270     break;
9271 
9272   case 482:
9273 #line 3205 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9274     {
9275         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9276         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9277         (yyval.interm.type).basicType = EbtSampler;
9278         (yyval.interm.type).sampler.setSubpass(EbtUint);
9279     }
9280 #line 9281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9281     break;
9282 
9283   case 483:
9284 #line 3211 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9285     {
9286         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9287         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9288         (yyval.interm.type).basicType = EbtSampler;
9289         (yyval.interm.type).sampler.setSubpass(EbtUint, true);
9290     }
9291 #line 9292 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9292     break;
9293 
9294   case 484:
9295 #line 3217 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9296     {
9297         parseContext.fcoopmatCheck((yyvsp[0].lex).loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
9298         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9299         (yyval.interm.type).basicType = EbtFloat;
9300         (yyval.interm.type).coopmat = true;
9301     }
9302 #line 9303 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9303     break;
9304 
9305   case 485:
9306 #line 3223 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9307     {
9308         (yyval.interm.type) = (yyvsp[0].interm.type);
9309         (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
9310         parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
9311     }
9312 #line 9313 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9313     break;
9314 
9315   case 486:
9316 #line 3228 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9317     {
9318         //
9319         // This is for user defined type names.  The lexical phase looked up the
9320         // type.
9321         //
9322         if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) {
9323             const TType& structure = variable->getType();
9324             (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9325             (yyval.interm.type).basicType = EbtStruct;
9326             (yyval.interm.type).userDef = &structure;
9327         } else
9328             parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
9329     }
9330 #line 9331 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9331     break;
9332 
9333   case 487:
9334 #line 3244 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9335     {
9336         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
9337         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9338         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
9339     }
9340 #line 9341 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9341     break;
9342 
9343   case 488:
9344 #line 3249 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9345     {
9346         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
9347         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9348         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
9349     }
9350 #line 9351 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9351     break;
9352 
9353   case 489:
9354 #line 3254 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9355     {
9356         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
9357         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9358         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
9359     }
9360 #line 9361 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9361     break;
9362 
9363   case 490:
9364 #line 3262 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9365     { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
9366 #line 9367 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9367     break;
9368 
9369   case 491:
9370 #line 3262 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9371     {
9372         TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
9373         parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
9374         TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true);
9375         if (! parseContext.symbolTable.insert(*userTypeDef))
9376             parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct");
9377         (yyval.interm.type).init((yyvsp[-5].lex).loc);
9378         (yyval.interm.type).basicType = EbtStruct;
9379         (yyval.interm.type).userDef = structure;
9380         --parseContext.structNestingLevel;
9381     }
9382 #line 9383 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9383     break;
9384 
9385   case 492:
9386 #line 3273 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9387     { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
9388 #line 9389 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9389     break;
9390 
9391   case 493:
9392 #line 3273 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9393     {
9394         TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
9395         (yyval.interm.type).init((yyvsp[-4].lex).loc);
9396         (yyval.interm.type).basicType = EbtStruct;
9397         (yyval.interm.type).userDef = structure;
9398         --parseContext.structNestingLevel;
9399     }
9400 #line 9401 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9401     break;
9402 
9403   case 494:
9404 #line 3283 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9405     {
9406         (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
9407     }
9408 #line 9409 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9409     break;
9410 
9411   case 495:
9412 #line 3286 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9413     {
9414         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
9415         for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
9416             for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) {
9417                 if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName())
9418                     parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str());
9419             }
9420             (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
9421         }
9422     }
9423 #line 9424 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9424     break;
9425 
9426   case 496:
9427 #line 3299 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9428     {
9429         if ((yyvsp[-2].interm.type).arraySizes) {
9430             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
9431             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
9432             if (parseContext.profile == EEsProfile)
9433                 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
9434         }
9435 
9436         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
9437 
9438         parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
9439         parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
9440 
9441         for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
9442             TType type((yyvsp[-2].interm.type));
9443             type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
9444             type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
9445             type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
9446             parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
9447             (*(yyval.interm.typeList))[i].type->shallowCopy(type);
9448         }
9449     }
9450 #line 9451 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9451     break;
9452 
9453   case 497:
9454 #line 3321 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9455     {
9456         if ((yyvsp[-2].interm.type).arraySizes) {
9457             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
9458             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
9459             if (parseContext.profile == EEsProfile)
9460                 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
9461         }
9462 
9463         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
9464 
9465         parseContext.memberQualifierCheck((yyvsp[-3].interm.type));
9466         parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
9467         parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true);
9468         parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
9469 
9470         for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
9471             TType type((yyvsp[-2].interm.type));
9472             type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
9473             type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
9474             type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
9475             parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
9476             (*(yyval.interm.typeList))[i].type->shallowCopy(type);
9477         }
9478     }
9479 #line 9480 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9480     break;
9481 
9482   case 498:
9483 #line 3348 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9484     {
9485         (yyval.interm.typeList) = new TTypeList;
9486         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
9487     }
9488 #line 9489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9489     break;
9490 
9491   case 499:
9492 #line 3352 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9493     {
9494         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
9495     }
9496 #line 9497 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9497     break;
9498 
9499   case 500:
9500 #line 3358 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9501     {
9502         (yyval.interm.typeLine).type = new TType(EbtVoid);
9503         (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
9504         (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
9505     }
9506 #line 9507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9507     break;
9508 
9509   case 501:
9510 #line 3363 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9511     {
9512         parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
9513 
9514         (yyval.interm.typeLine).type = new TType(EbtVoid);
9515         (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc;
9516         (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
9517         (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
9518     }
9519 #line 9520 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9520     break;
9521 
9522   case 502:
9523 #line 3374 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9524     {
9525         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
9526     }
9527 #line 9528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9528     break;
9529 
9530   case 503:
9531 #line 3377 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9532     {
9533         const char* initFeature = "{ } style initializers";
9534         parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
9535         parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
9536         (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
9537     }
9538 #line 9539 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9539     break;
9540 
9541   case 504:
9542 #line 3383 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9543     {
9544         const char* initFeature = "{ } style initializers";
9545         parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
9546         parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
9547         (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
9548     }
9549 #line 9550 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9550     break;
9551 
9552   case 505:
9553 #line 3392 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9554     {
9555         (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
9556     }
9557 #line 9558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9558     break;
9559 
9560   case 506:
9561 #line 3395 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9562     {
9563         (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
9564     }
9565 #line 9566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9566     break;
9567 
9568   case 507:
9569 #line 3401 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9570     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9571 #line 9572 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9572     break;
9573 
9574   case 508:
9575 #line 3405 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9576     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9577 #line 9578 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9578     break;
9579 
9580   case 509:
9581 #line 3406 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9582     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9583 #line 9584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9584     break;
9585 
9586   case 510:
9587 #line 3412 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9588     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9589 #line 9590 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9590     break;
9591 
9592   case 511:
9593 #line 3413 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9594     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9595 #line 9596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9596     break;
9597 
9598   case 512:
9599 #line 3414 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9600     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9601 #line 9602 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9602     break;
9603 
9604   case 513:
9605 #line 3415 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9606     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9607 #line 9608 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9608     break;
9609 
9610   case 514:
9611 #line 3416 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9612     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9613 #line 9614 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9614     break;
9615 
9616   case 515:
9617 #line 3417 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9618     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9619 #line 9620 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9620     break;
9621 
9622   case 516:
9623 #line 3418 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9624     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9625 #line 9626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9626     break;
9627 
9628   case 517:
9629 #line 3422 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9630     { (yyval.interm.intermNode) = 0; }
9631 #line 9632 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9632     break;
9633 
9634   case 518:
9635 #line 3423 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9636     {
9637         parseContext.symbolTable.push();
9638         ++parseContext.statementNestingLevel;
9639     }
9640 #line 9641 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9641     break;
9642 
9643   case 519:
9644 #line 3427 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9645     {
9646         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9647         --parseContext.statementNestingLevel;
9648     }
9649 #line 9650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9650     break;
9651 
9652   case 520:
9653 #line 3431 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9654     {
9655         if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate())
9656             (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
9657         (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode);
9658     }
9659 #line 9660 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9660     break;
9661 
9662   case 521:
9663 #line 3439 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9664     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9665 #line 9666 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9666     break;
9667 
9668   case 522:
9669 #line 3440 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9670     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9671 #line 9672 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9672     break;
9673 
9674   case 523:
9675 #line 3444 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9676     {
9677         ++parseContext.controlFlowNestingLevel;
9678     }
9679 #line 9680 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9680     break;
9681 
9682   case 524:
9683 #line 3447 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9684     {
9685         --parseContext.controlFlowNestingLevel;
9686         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9687     }
9688 #line 9689 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9689     break;
9690 
9691   case 525:
9692 #line 3451 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9693     {
9694         parseContext.symbolTable.push();
9695         ++parseContext.statementNestingLevel;
9696         ++parseContext.controlFlowNestingLevel;
9697     }
9698 #line 9699 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9699     break;
9700 
9701   case 526:
9702 #line 3456 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9703     {
9704         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9705         --parseContext.statementNestingLevel;
9706         --parseContext.controlFlowNestingLevel;
9707         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9708     }
9709 #line 9710 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9710     break;
9711 
9712   case 527:
9713 #line 3465 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9714     {
9715         (yyval.interm.intermNode) = 0;
9716     }
9717 #line 9718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9718     break;
9719 
9720   case 528:
9721 #line 3468 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9722     {
9723         if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate())
9724             (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
9725         (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode);
9726     }
9727 #line 9728 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9728     break;
9729 
9730   case 529:
9731 #line 3476 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9732     {
9733         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
9734         if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
9735                                             (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
9736             parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode));
9737             (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
9738         }
9739     }
9740 #line 9741 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9741     break;
9742 
9743   case 530:
9744 #line 3484 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9745     {
9746         if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
9747                                             (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
9748             parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode));
9749             (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
9750         } else
9751             (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
9752     }
9753 #line 9754 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9754     break;
9755 
9756   case 531:
9757 #line 3495 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9758     { (yyval.interm.intermNode) = 0; }
9759 #line 9760 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9760     break;
9761 
9762   case 532:
9763 #line 3496 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9764     { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
9765 #line 9766 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9766     break;
9767 
9768   case 533:
9769 #line 3500 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9770     {
9771         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9772     }
9773 #line 9774 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9774     break;
9775 
9776   case 534:
9777 #line 3503 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9778     {
9779         parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
9780         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9781     }
9782 #line 9783 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9783     break;
9784 
9785   case 535:
9786 #line 3509 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9787     {
9788         parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
9789         (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
9790     }
9791 #line 9792 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9792     break;
9793 
9794   case 536:
9795 #line 3516 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9796     {
9797         (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
9798         (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
9799     }
9800 #line 9801 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9801     break;
9802 
9803   case 537:
9804 #line 3520 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9805     {
9806         (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
9807         (yyval.interm.nodePair).node2 = 0;
9808     }
9809 #line 9810 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9810     break;
9811 
9812   case 538:
9813 #line 3528 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9814     {
9815         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
9816         parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
9817     }
9818 #line 9819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9819     break;
9820 
9821   case 539:
9822 #line 3532 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9823     {
9824         parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
9825 
9826         TType type((yyvsp[-3].interm.type));
9827         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
9828         if (initNode)
9829             (yyval.interm.intermTypedNode) = initNode->getAsTyped();
9830         else
9831             (yyval.interm.intermTypedNode) = 0;
9832     }
9833 #line 9834 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9834     break;
9835 
9836   case 540:
9837 #line 3545 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9838     {
9839         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9840     }
9841 #line 9842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9842     break;
9843 
9844   case 541:
9845 #line 3548 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9846     {
9847         parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
9848         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9849     }
9850 #line 9851 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9851     break;
9852 
9853   case 542:
9854 #line 3554 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9855     {
9856         // start new switch sequence on the switch stack
9857         ++parseContext.controlFlowNestingLevel;
9858         ++parseContext.statementNestingLevel;
9859         parseContext.switchSequenceStack.push_back(new TIntermSequence);
9860         parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
9861         parseContext.symbolTable.push();
9862     }
9863 #line 9864 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9864     break;
9865 
9866   case 543:
9867 #line 3562 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9868     {
9869         (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
9870         delete parseContext.switchSequenceStack.back();
9871         parseContext.switchSequenceStack.pop_back();
9872         parseContext.switchLevel.pop_back();
9873         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9874         --parseContext.statementNestingLevel;
9875         --parseContext.controlFlowNestingLevel;
9876     }
9877 #line 9878 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9878     break;
9879 
9880   case 544:
9881 #line 3574 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9882     {
9883         (yyval.interm.intermNode) = 0;
9884     }
9885 #line 9886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9886     break;
9887 
9888   case 545:
9889 #line 3577 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9890     {
9891         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9892     }
9893 #line 9894 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9894     break;
9895 
9896   case 546:
9897 #line 3583 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9898     {
9899         (yyval.interm.intermNode) = 0;
9900         if (parseContext.switchLevel.size() == 0)
9901             parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", "");
9902         else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
9903             parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", "");
9904         else {
9905             parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case");
9906             parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case");
9907             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
9908         }
9909     }
9910 #line 9911 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9911     break;
9912 
9913   case 547:
9914 #line 3595 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9915     {
9916         (yyval.interm.intermNode) = 0;
9917         if (parseContext.switchLevel.size() == 0)
9918             parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", "");
9919         else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
9920             parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", "");
9921         else
9922             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
9923     }
9924 #line 9925 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9925     break;
9926 
9927   case 548:
9928 #line 3607 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9929     {
9930         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9931     }
9932 #line 9933 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9933     break;
9934 
9935   case 549:
9936 #line 3610 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9937     {
9938         parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
9939         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9940     }
9941 #line 9942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9942     break;
9943 
9944   case 550:
9945 #line 3616 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9946     {
9947         if (! parseContext.limits.whileLoops)
9948             parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
9949         parseContext.symbolTable.push();
9950         ++parseContext.loopNestingLevel;
9951         ++parseContext.statementNestingLevel;
9952         ++parseContext.controlFlowNestingLevel;
9953     }
9954 #line 9955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9955     break;
9956 
9957   case 551:
9958 #line 3624 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9959     {
9960         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9961         (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
9962         --parseContext.loopNestingLevel;
9963         --parseContext.statementNestingLevel;
9964         --parseContext.controlFlowNestingLevel;
9965     }
9966 #line 9967 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9967     break;
9968 
9969   case 552:
9970 #line 3631 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9971     {
9972         ++parseContext.loopNestingLevel;
9973         ++parseContext.statementNestingLevel;
9974         ++parseContext.controlFlowNestingLevel;
9975     }
9976 #line 9977 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9977     break;
9978 
9979   case 553:
9980 #line 3636 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9981     {
9982         if (! parseContext.limits.whileLoops)
9983             parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
9984 
9985         parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode));
9986 
9987         (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc);
9988         --parseContext.loopNestingLevel;
9989         --parseContext.statementNestingLevel;
9990         --parseContext.controlFlowNestingLevel;
9991     }
9992 #line 9993 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9993     break;
9994 
9995   case 554:
9996 #line 3647 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9997     {
9998         parseContext.symbolTable.push();
9999         ++parseContext.loopNestingLevel;
10000         ++parseContext.statementNestingLevel;
10001         ++parseContext.controlFlowNestingLevel;
10002     }
10003 #line 10004 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10004     break;
10005 
10006   case 555:
10007 #line 3653 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10008     {
10009         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10010         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
10011         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);
10012         if (! parseContext.limits.nonInductiveForLoops)
10013             parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop);
10014         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc);
10015         (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
10016         --parseContext.loopNestingLevel;
10017         --parseContext.statementNestingLevel;
10018         --parseContext.controlFlowNestingLevel;
10019     }
10020 #line 10021 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10021     break;
10022 
10023   case 556:
10024 #line 3668 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10025     {
10026         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10027     }
10028 #line 10029 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10029     break;
10030 
10031   case 557:
10032 #line 3671 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10033     {
10034         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10035     }
10036 #line 10037 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10037     break;
10038 
10039   case 558:
10040 #line 3677 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10041     {
10042         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
10043     }
10044 #line 10045 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10045     break;
10046 
10047   case 559:
10048 #line 3680 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10049     {
10050         (yyval.interm.intermTypedNode) = 0;
10051     }
10052 #line 10053 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10053     break;
10054 
10055   case 560:
10056 #line 3686 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10057     {
10058         (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
10059         (yyval.interm.nodePair).node2 = 0;
10060     }
10061 #line 10062 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10062     break;
10063 
10064   case 561:
10065 #line 3690 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10066     {
10067         (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
10068         (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
10069     }
10070 #line 10071 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10071     break;
10072 
10073   case 562:
10074 #line 3697 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10075     {
10076         if (parseContext.loopNestingLevel <= 0)
10077             parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
10078         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
10079     }
10080 #line 10081 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10081     break;
10082 
10083   case 563:
10084 #line 3702 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10085     {
10086         if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
10087             parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
10088         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
10089     }
10090 #line 10091 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10091     break;
10092 
10093   case 564:
10094 #line 3707 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10095     {
10096         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
10097         if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
10098             parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", "");
10099         if (parseContext.inMain)
10100             parseContext.postEntryPointReturn = true;
10101     }
10102 #line 10103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10103     break;
10104 
10105   case 565:
10106 #line 3714 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10107     {
10108         (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
10109     }
10110 #line 10111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10111     break;
10112 
10113   case 566:
10114 #line 3717 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10115     {
10116         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
10117         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
10118     }
10119 #line 10120 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10120     break;
10121 
10122   case 567:
10123 #line 3726 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10124     {
10125         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10126         parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
10127     }
10128 #line 10129 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10129     break;
10130 
10131   case 568:
10132 #line 3730 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10133     {
10134         if ((yyvsp[0].interm.intermNode) != nullptr) {
10135             (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
10136             parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
10137         }
10138     }
10139 #line 10140 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10140     break;
10141 
10142   case 569:
10143 #line 3739 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10144     {
10145         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10146     }
10147 #line 10148 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10148     break;
10149 
10150   case 570:
10151 #line 3742 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10152     {
10153         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10154     }
10155 #line 10156 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10156     break;
10157 
10158   case 571:
10159 #line 3745 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10160     {
10161         parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
10162         parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
10163         (yyval.interm.intermNode) = nullptr;
10164     }
10165 #line 10166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10166     break;
10167 
10168   case 572:
10169 #line 3753 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10170     {
10171         (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
10172         (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
10173     }
10174 #line 10175 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10175     break;
10176 
10177   case 573:
10178 #line 3757 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10179     {
10180         //   May be best done as post process phase on intermediate code
10181         if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
10182             parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str());
10183         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10184         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode));
10185         parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc);
10186         (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str());
10187 
10188         // store the pragma information for debug and optimize and other vendor specific
10189         // information. This information can be queried from the parse tree
10190         (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize);
10191         (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
10192         (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable);
10193     }
10194 #line 10195 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10195     break;
10196 
10197   case 574:
10198 #line 3775 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10199     {
10200         (yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
10201         parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute");
10202     }
10203 #line 10204 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10204     break;
10205 
10206   case 575:
10207 #line 3781 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10208     {
10209         (yyval.interm.attributes) = (yyvsp[0].interm.attributes);
10210     }
10211 #line 10212 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10212     break;
10213 
10214   case 576:
10215 #line 3784 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10216     {
10217         (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
10218     }
10219 #line 10220 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10220     break;
10221 
10222   case 577:
10223 #line 3789 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10224     {
10225         (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
10226     }
10227 #line 10228 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10228     break;
10229 
10230   case 578:
10231 #line 3792 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10232     {
10233         (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
10234     }
10235 #line 10236 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10236     break;
10237 
10238 
10239 #line 10240 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10240       default: break;
10241     }
10242   /* User semantic actions sometimes alter yychar, and that requires
10243      that yytoken be updated with the new translation.  We take the
10244      approach of translating immediately before every use of yytoken.
10245      One alternative is translating here after every semantic action,
10246      but that translation would be missed if the semantic action invokes
10247      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
10248      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
10249      incorrect destructor might then be invoked immediately.  In the
10250      case of YYERROR or YYBACKUP, subsequent parser actions might lead
10251      to an incorrect destructor call or verbose syntax error message
10252      before the lookahead is translated.  */
10253   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
10254 
10255   YYPOPSTACK (yylen);
10256   yylen = 0;
10257   YY_STACK_PRINT (yyss, yyssp);
10258 
10259   *++yyvsp = yyval;
10260 
10261   /* Now 'shift' the result of the reduction.  Determine what state
10262      that goes to, based on the state we popped back to and the rule
10263      number reduced by.  */
10264 
10265   yyn = yyr1[yyn];
10266 
10267   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
10268   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
10269     yystate = yytable[yystate];
10270   else
10271     yystate = yydefgoto[yyn - YYNTOKENS];
10272 
10273   goto yynewstate;
10274 
10275 
10276 /*--------------------------------------.
10277 | yyerrlab -- here on detecting error.  |
10278 `--------------------------------------*/
10279 yyerrlab:
10280   /* Make sure we have latest lookahead translation.  See comments at
10281      user semantic actions for why this is necessary.  */
10282   yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
10283 
10284   /* If not already recovering from an error, report this error.  */
10285   if (!yyerrstatus)
10286     {
10287       ++yynerrs;
10288 #if ! YYERROR_VERBOSE
10289       yyerror (pParseContext, YY_("syntax error"));
10290 #else
10291 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
10292                                         yyssp, yytoken)
10293       {
10294         char const *yymsgp = YY_("syntax error");
10295         int yysyntax_error_status;
10296         yysyntax_error_status = YYSYNTAX_ERROR;
10297         if (yysyntax_error_status == 0)
10298           yymsgp = yymsg;
10299         else if (yysyntax_error_status == 1)
10300           {
10301             if (yymsg != yymsgbuf)
10302               YYSTACK_FREE (yymsg);
10303             yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
10304             if (!yymsg)
10305               {
10306                 yymsg = yymsgbuf;
10307                 yymsg_alloc = sizeof yymsgbuf;
10308                 yysyntax_error_status = 2;
10309               }
10310             else
10311               {
10312                 yysyntax_error_status = YYSYNTAX_ERROR;
10313                 yymsgp = yymsg;
10314               }
10315           }
10316         yyerror (pParseContext, yymsgp);
10317         if (yysyntax_error_status == 2)
10318           goto yyexhaustedlab;
10319       }
10320 # undef YYSYNTAX_ERROR
10321 #endif
10322     }
10323 
10324 
10325 
10326   if (yyerrstatus == 3)
10327     {
10328       /* If just tried and failed to reuse lookahead token after an
10329          error, discard it.  */
10330 
10331       if (yychar <= YYEOF)
10332         {
10333           /* Return failure if at end of input.  */
10334           if (yychar == YYEOF)
10335             YYABORT;
10336         }
10337       else
10338         {
10339           yydestruct ("Error: discarding",
10340                       yytoken, &yylval, pParseContext);
10341           yychar = YYEMPTY;
10342         }
10343     }
10344 
10345   /* Else will try to reuse lookahead token after shifting the error
10346      token.  */
10347   goto yyerrlab1;
10348 
10349 
10350 /*---------------------------------------------------.
10351 | yyerrorlab -- error raised explicitly by YYERROR.  |
10352 `---------------------------------------------------*/
10353 yyerrorlab:
10354 
10355   /* Pacify compilers like GCC when the user code never invokes
10356      YYERROR and the label yyerrorlab therefore never appears in user
10357      code.  */
10358   if (/*CONSTCOND*/ 0)
10359      goto yyerrorlab;
10360 
10361   /* Do not reclaim the symbols of the rule whose action triggered
10362      this YYERROR.  */
10363   YYPOPSTACK (yylen);
10364   yylen = 0;
10365   YY_STACK_PRINT (yyss, yyssp);
10366   yystate = *yyssp;
10367   goto yyerrlab1;
10368 
10369 
10370 /*-------------------------------------------------------------.
10371 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
10372 `-------------------------------------------------------------*/
10373 yyerrlab1:
10374   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
10375 
10376   for (;;)
10377     {
10378       yyn = yypact[yystate];
10379       if (!yypact_value_is_default (yyn))
10380         {
10381           yyn += YYTERROR;
10382           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
10383             {
10384               yyn = yytable[yyn];
10385               if (0 < yyn)
10386                 break;
10387             }
10388         }
10389 
10390       /* Pop the current state because it cannot handle the error token.  */
10391       if (yyssp == yyss)
10392         YYABORT;
10393 
10394 
10395       yydestruct ("Error: popping",
10396                   yystos[yystate], yyvsp, pParseContext);
10397       YYPOPSTACK (1);
10398       yystate = *yyssp;
10399       YY_STACK_PRINT (yyss, yyssp);
10400     }
10401 
10402   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
10403   *++yyvsp = yylval;
10404   YY_IGNORE_MAYBE_UNINITIALIZED_END
10405 
10406 
10407   /* Shift the error token.  */
10408   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
10409 
10410   yystate = yyn;
10411   goto yynewstate;
10412 
10413 
10414 /*-------------------------------------.
10415 | yyacceptlab -- YYACCEPT comes here.  |
10416 `-------------------------------------*/
10417 yyacceptlab:
10418   yyresult = 0;
10419   goto yyreturn;
10420 
10421 /*-----------------------------------.
10422 | yyabortlab -- YYABORT comes here.  |
10423 `-----------------------------------*/
10424 yyabortlab:
10425   yyresult = 1;
10426   goto yyreturn;
10427 
10428 #if !defined yyoverflow || YYERROR_VERBOSE
10429 /*-------------------------------------------------.
10430 | yyexhaustedlab -- memory exhaustion comes here.  |
10431 `-------------------------------------------------*/
10432 yyexhaustedlab:
10433   yyerror (pParseContext, YY_("memory exhausted"));
10434   yyresult = 2;
10435   /* Fall through.  */
10436 #endif
10437 
10438 yyreturn:
10439   if (yychar != YYEMPTY)
10440     {
10441       /* Make sure we have latest lookahead translation.  See comments at
10442          user semantic actions for why this is necessary.  */
10443       yytoken = YYTRANSLATE (yychar);
10444       yydestruct ("Cleanup: discarding lookahead",
10445                   yytoken, &yylval, pParseContext);
10446     }
10447   /* Do not reclaim the symbols of the rule whose action triggered
10448      this YYABORT or YYACCEPT.  */
10449   YYPOPSTACK (yylen);
10450   YY_STACK_PRINT (yyss, yyssp);
10451   while (yyssp != yyss)
10452     {
10453       yydestruct ("Cleanup: popping",
10454                   yystos[*yyssp], yyvsp, pParseContext);
10455       YYPOPSTACK (1);
10456     }
10457 #ifndef yyoverflow
10458   if (yyss != yyssa)
10459     YYSTACK_FREE (yyss);
10460 #endif
10461 #if YYERROR_VERBOSE
10462   if (yymsg != yymsgbuf)
10463     YYSTACK_FREE (yymsg);
10464 #endif
10465   return yyresult;
10466 }
10467 #line 3796 "MachineIndependent/glslang.y" /* yacc.c:1906  */
10468 
10469