Merge pull request #1542 from sheredom/fix_8bit_storagebuffer
[platform/upstream/glslang.git] / glslang / MachineIndependent / glslang_tab.cpp
1 /* A Bison parser, made by GNU Bison 3.0.4.  */
2
3 /* Bison implementation for Yacc-like parsers in C
4
5    Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6
7    This program is free software: you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation, either version 3 of the License, or
10    (at your option) any later version.
11
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16
17    You should have received a copy of the GNU General Public License
18    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19
20 /* As a special exception, you may create a larger work that contains
21    part or all of the Bison parser skeleton and distribute that work
22    under terms of your choice, so long as that work isn't itself a
23    parser generator using the skeleton or a modified version thereof
24    as a parser skeleton.  Alternatively, if you modify or redistribute
25    the parser skeleton itself, you may (at your option) remove this
26    special exception, which will cause the skeleton and the resulting
27    Bison output files to be licensed under the GNU General Public
28    License without this special exception.
29
30    This special exception was added by the Free Software Foundation in
31    version 2.2 of Bison.  */
32
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34    simplifying the original so-called "semantic" parser.  */
35
36 /* All symbols defined below should begin with yy or YY, to avoid
37    infringing on user name space.  This should be done even for local
38    variables, as they might otherwise be expanded by user macros.
39    There are some unavoidable exceptions within include files to
40    define necessary library symbols; they are noted "INFRINGES ON
41    USER NAME SPACE" below.  */
42
43 /* Identify Bison output.  */
44 #define YYBISON 1
45
46 /* Bison version.  */
47 #define YYBISON_VERSION "3.0.4"
48
49 /* Skeleton name.  */
50 #define YYSKELETON_NAME "yacc.c"
51
52 /* Pure parsers.  */
53 #define YYPURE 1
54
55 /* Push parsers.  */
56 #define YYPUSH 0
57
58 /* Pull parsers.  */
59 #define YYPULL 1
60
61
62
63
64 /* Copy the first part of user declarations.  */
65 #line 42 "MachineIndependent/glslang.y" /* yacc.c:339  */
66
67
68 /* Based on:
69 ANSI C Yacc grammar
70
71 In 1985, Jeff Lee published his Yacc grammar (which is accompanied by a
72 matching Lex specification) for the April 30, 1985 draft version of the
73 ANSI C standard.  Tom Stockfisch reposted it to net.sources in 1987; that
74 original, as mentioned in the answer to question 17.25 of the comp.lang.c
75 FAQ, can be ftp'ed from ftp.uu.net, file usenet/net.sources/ansi.c.grammar.Z.
76
77 I intend to keep this version as close to the current C Standard grammar as
78 possible; please let me know if you discover discrepancies.
79
80 Jutta Degener, 1995
81 */
82
83 #include "SymbolTable.h"
84 #include "ParseHelper.h"
85 #include "../Public/ShaderLang.h"
86 #include "attribute.h"
87
88 using namespace glslang;
89
90
91 #line 92 "MachineIndependent/glslang_tab.cpp" /* yacc.c:339  */
92
93 # ifndef YY_NULLPTR
94 #  if defined __cplusplus && 201103L <= __cplusplus
95 #   define YY_NULLPTR nullptr
96 #  else
97 #   define YY_NULLPTR 0
98 #  endif
99 # endif
100
101 /* Enabling verbose error messages.  */
102 #ifdef YYERROR_VERBOSE
103 # undef YYERROR_VERBOSE
104 # define YYERROR_VERBOSE 1
105 #else
106 # define YYERROR_VERBOSE 1
107 #endif
108
109 /* In a future release of Bison, this section will be replaced
110    by #include "glslang_tab.cpp.h".  */
111 #ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
112 # define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
113 /* Debug traces.  */
114 #ifndef YYDEBUG
115 # define YYDEBUG 1
116 #endif
117 #if YYDEBUG
118 extern int yydebug;
119 #endif
120
121 /* Token type.  */
122 #ifndef YYTOKENTYPE
123 # define YYTOKENTYPE
124   enum yytokentype
125   {
126     ATTRIBUTE = 258,
127     VARYING = 259,
128     FLOAT16_T = 260,
129     FLOAT = 261,
130     FLOAT32_T = 262,
131     DOUBLE = 263,
132     FLOAT64_T = 264,
133     CONST = 265,
134     BOOL = 266,
135     INT = 267,
136     UINT = 268,
137     INT64_T = 269,
138     UINT64_T = 270,
139     INT32_T = 271,
140     UINT32_T = 272,
141     INT16_T = 273,
142     UINT16_T = 274,
143     INT8_T = 275,
144     UINT8_T = 276,
145     BREAK = 277,
146     CONTINUE = 278,
147     DO = 279,
148     ELSE = 280,
149     FOR = 281,
150     IF = 282,
151     DISCARD = 283,
152     RETURN = 284,
153     SWITCH = 285,
154     CASE = 286,
155     DEFAULT = 287,
156     SUBROUTINE = 288,
157     BVEC2 = 289,
158     BVEC3 = 290,
159     BVEC4 = 291,
160     IVEC2 = 292,
161     IVEC3 = 293,
162     IVEC4 = 294,
163     UVEC2 = 295,
164     UVEC3 = 296,
165     UVEC4 = 297,
166     I64VEC2 = 298,
167     I64VEC3 = 299,
168     I64VEC4 = 300,
169     U64VEC2 = 301,
170     U64VEC3 = 302,
171     U64VEC4 = 303,
172     I32VEC2 = 304,
173     I32VEC3 = 305,
174     I32VEC4 = 306,
175     U32VEC2 = 307,
176     U32VEC3 = 308,
177     U32VEC4 = 309,
178     I16VEC2 = 310,
179     I16VEC3 = 311,
180     I16VEC4 = 312,
181     U16VEC2 = 313,
182     U16VEC3 = 314,
183     U16VEC4 = 315,
184     I8VEC2 = 316,
185     I8VEC3 = 317,
186     I8VEC4 = 318,
187     U8VEC2 = 319,
188     U8VEC3 = 320,
189     U8VEC4 = 321,
190     VEC2 = 322,
191     VEC3 = 323,
192     VEC4 = 324,
193     MAT2 = 325,
194     MAT3 = 326,
195     MAT4 = 327,
196     CENTROID = 328,
197     IN = 329,
198     OUT = 330,
199     INOUT = 331,
200     UNIFORM = 332,
201     PATCH = 333,
202     SAMPLE = 334,
203     BUFFER = 335,
204     SHARED = 336,
205     NONUNIFORM = 337,
206     PAYLOADNV = 338,
207     PAYLOADINNV = 339,
208     HITATTRNV = 340,
209     COHERENT = 341,
210     VOLATILE = 342,
211     RESTRICT = 343,
212     READONLY = 344,
213     WRITEONLY = 345,
214     DEVICECOHERENT = 346,
215     QUEUEFAMILYCOHERENT = 347,
216     WORKGROUPCOHERENT = 348,
217     SUBGROUPCOHERENT = 349,
218     NONPRIVATE = 350,
219     DVEC2 = 351,
220     DVEC3 = 352,
221     DVEC4 = 353,
222     DMAT2 = 354,
223     DMAT3 = 355,
224     DMAT4 = 356,
225     F16VEC2 = 357,
226     F16VEC3 = 358,
227     F16VEC4 = 359,
228     F16MAT2 = 360,
229     F16MAT3 = 361,
230     F16MAT4 = 362,
231     F32VEC2 = 363,
232     F32VEC3 = 364,
233     F32VEC4 = 365,
234     F32MAT2 = 366,
235     F32MAT3 = 367,
236     F32MAT4 = 368,
237     F64VEC2 = 369,
238     F64VEC3 = 370,
239     F64VEC4 = 371,
240     F64MAT2 = 372,
241     F64MAT3 = 373,
242     F64MAT4 = 374,
243     NOPERSPECTIVE = 375,
244     FLAT = 376,
245     SMOOTH = 377,
246     LAYOUT = 378,
247     EXPLICITINTERPAMD = 379,
248     PERVERTEXNV = 380,
249     PERPRIMITIVENV = 381,
250     PERVIEWNV = 382,
251     PERTASKNV = 383,
252     MAT2X2 = 384,
253     MAT2X3 = 385,
254     MAT2X4 = 386,
255     MAT3X2 = 387,
256     MAT3X3 = 388,
257     MAT3X4 = 389,
258     MAT4X2 = 390,
259     MAT4X3 = 391,
260     MAT4X4 = 392,
261     DMAT2X2 = 393,
262     DMAT2X3 = 394,
263     DMAT2X4 = 395,
264     DMAT3X2 = 396,
265     DMAT3X3 = 397,
266     DMAT3X4 = 398,
267     DMAT4X2 = 399,
268     DMAT4X3 = 400,
269     DMAT4X4 = 401,
270     F16MAT2X2 = 402,
271     F16MAT2X3 = 403,
272     F16MAT2X4 = 404,
273     F16MAT3X2 = 405,
274     F16MAT3X3 = 406,
275     F16MAT3X4 = 407,
276     F16MAT4X2 = 408,
277     F16MAT4X3 = 409,
278     F16MAT4X4 = 410,
279     F32MAT2X2 = 411,
280     F32MAT2X3 = 412,
281     F32MAT2X4 = 413,
282     F32MAT3X2 = 414,
283     F32MAT3X3 = 415,
284     F32MAT3X4 = 416,
285     F32MAT4X2 = 417,
286     F32MAT4X3 = 418,
287     F32MAT4X4 = 419,
288     F64MAT2X2 = 420,
289     F64MAT2X3 = 421,
290     F64MAT2X4 = 422,
291     F64MAT3X2 = 423,
292     F64MAT3X3 = 424,
293     F64MAT3X4 = 425,
294     F64MAT4X2 = 426,
295     F64MAT4X3 = 427,
296     F64MAT4X4 = 428,
297     ATOMIC_UINT = 429,
298     ACCSTRUCTNV = 430,
299     SAMPLER1D = 431,
300     SAMPLER2D = 432,
301     SAMPLER3D = 433,
302     SAMPLERCUBE = 434,
303     SAMPLER1DSHADOW = 435,
304     SAMPLER2DSHADOW = 436,
305     SAMPLERCUBESHADOW = 437,
306     SAMPLER1DARRAY = 438,
307     SAMPLER2DARRAY = 439,
308     SAMPLER1DARRAYSHADOW = 440,
309     SAMPLER2DARRAYSHADOW = 441,
310     ISAMPLER1D = 442,
311     ISAMPLER2D = 443,
312     ISAMPLER3D = 444,
313     ISAMPLERCUBE = 445,
314     ISAMPLER1DARRAY = 446,
315     ISAMPLER2DARRAY = 447,
316     USAMPLER1D = 448,
317     USAMPLER2D = 449,
318     USAMPLER3D = 450,
319     USAMPLERCUBE = 451,
320     USAMPLER1DARRAY = 452,
321     USAMPLER2DARRAY = 453,
322     SAMPLER2DRECT = 454,
323     SAMPLER2DRECTSHADOW = 455,
324     ISAMPLER2DRECT = 456,
325     USAMPLER2DRECT = 457,
326     SAMPLERBUFFER = 458,
327     ISAMPLERBUFFER = 459,
328     USAMPLERBUFFER = 460,
329     SAMPLERCUBEARRAY = 461,
330     SAMPLERCUBEARRAYSHADOW = 462,
331     ISAMPLERCUBEARRAY = 463,
332     USAMPLERCUBEARRAY = 464,
333     SAMPLER2DMS = 465,
334     ISAMPLER2DMS = 466,
335     USAMPLER2DMS = 467,
336     SAMPLER2DMSARRAY = 468,
337     ISAMPLER2DMSARRAY = 469,
338     USAMPLER2DMSARRAY = 470,
339     SAMPLEREXTERNALOES = 471,
340     F16SAMPLER1D = 472,
341     F16SAMPLER2D = 473,
342     F16SAMPLER3D = 474,
343     F16SAMPLER2DRECT = 475,
344     F16SAMPLERCUBE = 476,
345     F16SAMPLER1DARRAY = 477,
346     F16SAMPLER2DARRAY = 478,
347     F16SAMPLERCUBEARRAY = 479,
348     F16SAMPLERBUFFER = 480,
349     F16SAMPLER2DMS = 481,
350     F16SAMPLER2DMSARRAY = 482,
351     F16SAMPLER1DSHADOW = 483,
352     F16SAMPLER2DSHADOW = 484,
353     F16SAMPLER1DARRAYSHADOW = 485,
354     F16SAMPLER2DARRAYSHADOW = 486,
355     F16SAMPLER2DRECTSHADOW = 487,
356     F16SAMPLERCUBESHADOW = 488,
357     F16SAMPLERCUBEARRAYSHADOW = 489,
358     SAMPLER = 490,
359     SAMPLERSHADOW = 491,
360     TEXTURE1D = 492,
361     TEXTURE2D = 493,
362     TEXTURE3D = 494,
363     TEXTURECUBE = 495,
364     TEXTURE1DARRAY = 496,
365     TEXTURE2DARRAY = 497,
366     ITEXTURE1D = 498,
367     ITEXTURE2D = 499,
368     ITEXTURE3D = 500,
369     ITEXTURECUBE = 501,
370     ITEXTURE1DARRAY = 502,
371     ITEXTURE2DARRAY = 503,
372     UTEXTURE1D = 504,
373     UTEXTURE2D = 505,
374     UTEXTURE3D = 506,
375     UTEXTURECUBE = 507,
376     UTEXTURE1DARRAY = 508,
377     UTEXTURE2DARRAY = 509,
378     TEXTURE2DRECT = 510,
379     ITEXTURE2DRECT = 511,
380     UTEXTURE2DRECT = 512,
381     TEXTUREBUFFER = 513,
382     ITEXTUREBUFFER = 514,
383     UTEXTUREBUFFER = 515,
384     TEXTURECUBEARRAY = 516,
385     ITEXTURECUBEARRAY = 517,
386     UTEXTURECUBEARRAY = 518,
387     TEXTURE2DMS = 519,
388     ITEXTURE2DMS = 520,
389     UTEXTURE2DMS = 521,
390     TEXTURE2DMSARRAY = 522,
391     ITEXTURE2DMSARRAY = 523,
392     UTEXTURE2DMSARRAY = 524,
393     F16TEXTURE1D = 525,
394     F16TEXTURE2D = 526,
395     F16TEXTURE3D = 527,
396     F16TEXTURE2DRECT = 528,
397     F16TEXTURECUBE = 529,
398     F16TEXTURE1DARRAY = 530,
399     F16TEXTURE2DARRAY = 531,
400     F16TEXTURECUBEARRAY = 532,
401     F16TEXTUREBUFFER = 533,
402     F16TEXTURE2DMS = 534,
403     F16TEXTURE2DMSARRAY = 535,
404     SUBPASSINPUT = 536,
405     SUBPASSINPUTMS = 537,
406     ISUBPASSINPUT = 538,
407     ISUBPASSINPUTMS = 539,
408     USUBPASSINPUT = 540,
409     USUBPASSINPUTMS = 541,
410     F16SUBPASSINPUT = 542,
411     F16SUBPASSINPUTMS = 543,
412     IMAGE1D = 544,
413     IIMAGE1D = 545,
414     UIMAGE1D = 546,
415     IMAGE2D = 547,
416     IIMAGE2D = 548,
417     UIMAGE2D = 549,
418     IMAGE3D = 550,
419     IIMAGE3D = 551,
420     UIMAGE3D = 552,
421     IMAGE2DRECT = 553,
422     IIMAGE2DRECT = 554,
423     UIMAGE2DRECT = 555,
424     IMAGECUBE = 556,
425     IIMAGECUBE = 557,
426     UIMAGECUBE = 558,
427     IMAGEBUFFER = 559,
428     IIMAGEBUFFER = 560,
429     UIMAGEBUFFER = 561,
430     IMAGE1DARRAY = 562,
431     IIMAGE1DARRAY = 563,
432     UIMAGE1DARRAY = 564,
433     IMAGE2DARRAY = 565,
434     IIMAGE2DARRAY = 566,
435     UIMAGE2DARRAY = 567,
436     IMAGECUBEARRAY = 568,
437     IIMAGECUBEARRAY = 569,
438     UIMAGECUBEARRAY = 570,
439     IMAGE2DMS = 571,
440     IIMAGE2DMS = 572,
441     UIMAGE2DMS = 573,
442     IMAGE2DMSARRAY = 574,
443     IIMAGE2DMSARRAY = 575,
444     UIMAGE2DMSARRAY = 576,
445     F16IMAGE1D = 577,
446     F16IMAGE2D = 578,
447     F16IMAGE3D = 579,
448     F16IMAGE2DRECT = 580,
449     F16IMAGECUBE = 581,
450     F16IMAGE1DARRAY = 582,
451     F16IMAGE2DARRAY = 583,
452     F16IMAGECUBEARRAY = 584,
453     F16IMAGEBUFFER = 585,
454     F16IMAGE2DMS = 586,
455     F16IMAGE2DMSARRAY = 587,
456     STRUCT = 588,
457     VOID = 589,
458     WHILE = 590,
459     IDENTIFIER = 591,
460     TYPE_NAME = 592,
461     FLOATCONSTANT = 593,
462     DOUBLECONSTANT = 594,
463     INT16CONSTANT = 595,
464     UINT16CONSTANT = 596,
465     INT32CONSTANT = 597,
466     UINT32CONSTANT = 598,
467     INTCONSTANT = 599,
468     UINTCONSTANT = 600,
469     INT64CONSTANT = 601,
470     UINT64CONSTANT = 602,
471     BOOLCONSTANT = 603,
472     FLOAT16CONSTANT = 604,
473     LEFT_OP = 605,
474     RIGHT_OP = 606,
475     INC_OP = 607,
476     DEC_OP = 608,
477     LE_OP = 609,
478     GE_OP = 610,
479     EQ_OP = 611,
480     NE_OP = 612,
481     AND_OP = 613,
482     OR_OP = 614,
483     XOR_OP = 615,
484     MUL_ASSIGN = 616,
485     DIV_ASSIGN = 617,
486     ADD_ASSIGN = 618,
487     MOD_ASSIGN = 619,
488     LEFT_ASSIGN = 620,
489     RIGHT_ASSIGN = 621,
490     AND_ASSIGN = 622,
491     XOR_ASSIGN = 623,
492     OR_ASSIGN = 624,
493     SUB_ASSIGN = 625,
494     LEFT_PAREN = 626,
495     RIGHT_PAREN = 627,
496     LEFT_BRACKET = 628,
497     RIGHT_BRACKET = 629,
498     LEFT_BRACE = 630,
499     RIGHT_BRACE = 631,
500     DOT = 632,
501     COMMA = 633,
502     COLON = 634,
503     EQUAL = 635,
504     SEMICOLON = 636,
505     BANG = 637,
506     DASH = 638,
507     TILDE = 639,
508     PLUS = 640,
509     STAR = 641,
510     SLASH = 642,
511     PERCENT = 643,
512     LEFT_ANGLE = 644,
513     RIGHT_ANGLE = 645,
514     VERTICAL_BAR = 646,
515     CARET = 647,
516     AMPERSAND = 648,
517     QUESTION = 649,
518     INVARIANT = 650,
519     PRECISE = 651,
520     HIGH_PRECISION = 652,
521     MEDIUM_PRECISION = 653,
522     LOW_PRECISION = 654,
523     PRECISION = 655,
524     PACKED = 656,
525     RESOURCE = 657,
526     SUPERP = 658
527   };
528 #endif
529
530 /* Value type.  */
531 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
532
533 union YYSTYPE
534 {
535 #line 70 "MachineIndependent/glslang.y" /* yacc.c:355  */
536
537     struct {
538         glslang::TSourceLoc loc;
539         union {
540             glslang::TString *string;
541             int i;
542             unsigned int u;
543             long long i64;
544             unsigned long long u64;
545             bool b;
546             double d;
547         };
548         glslang::TSymbol* symbol;
549     } lex;
550     struct {
551         glslang::TSourceLoc loc;
552         glslang::TOperator op;
553         union {
554             TIntermNode* intermNode;
555             glslang::TIntermNodePair nodePair;
556             glslang::TIntermTyped* intermTypedNode;
557             glslang::TAttributes* attributes;
558         };
559         union {
560             glslang::TPublicType type;
561             glslang::TFunction* function;
562             glslang::TParameter param;
563             glslang::TTypeLoc typeLine;
564             glslang::TTypeList* typeList;
565             glslang::TArraySizes* arraySizes;
566             glslang::TIdentifierList* identifierList;
567         };
568     } interm;
569
570 #line 571 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355  */
571 };
572
573 typedef union YYSTYPE YYSTYPE;
574 # define YYSTYPE_IS_TRIVIAL 1
575 # define YYSTYPE_IS_DECLARED 1
576 #endif
577
578
579
580 int yyparse (glslang::TParseContext* pParseContext);
581
582 #endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED  */
583
584 /* Copy the second part of user declarations.  */
585 #line 105 "MachineIndependent/glslang.y" /* yacc.c:358  */
586
587
588 /* windows only pragma */
589 #ifdef _MSC_VER
590     #pragma warning(disable : 4065)
591     #pragma warning(disable : 4127)
592     #pragma warning(disable : 4244)
593 #endif
594
595 #define parseContext (*pParseContext)
596 #define yyerror(context, msg) context->parserError(msg)
597
598 extern int yylex(YYSTYPE*, TParseContext&);
599
600
601 #line 602 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358  */
602
603 #ifdef short
604 # undef short
605 #endif
606
607 #ifdef YYTYPE_UINT8
608 typedef YYTYPE_UINT8 yytype_uint8;
609 #else
610 typedef unsigned char yytype_uint8;
611 #endif
612
613 #ifdef YYTYPE_INT8
614 typedef YYTYPE_INT8 yytype_int8;
615 #else
616 typedef signed char yytype_int8;
617 #endif
618
619 #ifdef YYTYPE_UINT16
620 typedef YYTYPE_UINT16 yytype_uint16;
621 #else
622 typedef unsigned short int yytype_uint16;
623 #endif
624
625 #ifdef YYTYPE_INT16
626 typedef YYTYPE_INT16 yytype_int16;
627 #else
628 typedef short int yytype_int16;
629 #endif
630
631 #ifndef YYSIZE_T
632 # ifdef __SIZE_TYPE__
633 #  define YYSIZE_T __SIZE_TYPE__
634 # elif defined size_t
635 #  define YYSIZE_T size_t
636 # elif ! defined YYSIZE_T
637 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
638 #  define YYSIZE_T size_t
639 # else
640 #  define YYSIZE_T unsigned int
641 # endif
642 #endif
643
644 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
645
646 #ifndef YY_
647 # if defined YYENABLE_NLS && YYENABLE_NLS
648 #  if ENABLE_NLS
649 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
650 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
651 #  endif
652 # endif
653 # ifndef YY_
654 #  define YY_(Msgid) Msgid
655 # endif
656 #endif
657
658 #ifndef YY_ATTRIBUTE
659 # if (defined __GNUC__                                               \
660       && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
661      || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
662 #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
663 # else
664 #  define YY_ATTRIBUTE(Spec) /* empty */
665 # endif
666 #endif
667
668 #ifndef YY_ATTRIBUTE_PURE
669 # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
670 #endif
671
672 #ifndef YY_ATTRIBUTE_UNUSED
673 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
674 #endif
675
676 #if !defined _Noreturn \
677      && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
678 # if defined _MSC_VER && 1200 <= _MSC_VER
679 #  define _Noreturn __declspec (noreturn)
680 # else
681 #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
682 # endif
683 #endif
684
685 /* Suppress unused-variable warnings by "using" E.  */
686 #if ! defined lint || defined __GNUC__
687 # define YYUSE(E) ((void) (E))
688 #else
689 # define YYUSE(E) /* empty */
690 #endif
691
692 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
693 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
694 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
695     _Pragma ("GCC diagnostic push") \
696     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
697     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
698 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
699     _Pragma ("GCC diagnostic pop")
700 #else
701 # define YY_INITIAL_VALUE(Value) Value
702 #endif
703 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
704 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
705 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
706 #endif
707 #ifndef YY_INITIAL_VALUE
708 # define YY_INITIAL_VALUE(Value) /* Nothing. */
709 #endif
710
711
712 #if ! defined yyoverflow || YYERROR_VERBOSE
713
714 /* The parser invokes alloca or malloc; define the necessary symbols.  */
715
716 # ifdef YYSTACK_USE_ALLOCA
717 #  if YYSTACK_USE_ALLOCA
718 #   ifdef __GNUC__
719 #    define YYSTACK_ALLOC __builtin_alloca
720 #   elif defined __BUILTIN_VA_ARG_INCR
721 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
722 #   elif defined _AIX
723 #    define YYSTACK_ALLOC __alloca
724 #   elif defined _MSC_VER
725 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
726 #    define alloca _alloca
727 #   else
728 #    define YYSTACK_ALLOC alloca
729 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
730 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
731       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
732 #     ifndef EXIT_SUCCESS
733 #      define EXIT_SUCCESS 0
734 #     endif
735 #    endif
736 #   endif
737 #  endif
738 # endif
739
740 # ifdef YYSTACK_ALLOC
741    /* Pacify GCC's 'empty if-body' warning.  */
742 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
743 #  ifndef YYSTACK_ALLOC_MAXIMUM
744     /* The OS might guarantee only one guard page at the bottom of the stack,
745        and a page size can be as small as 4096 bytes.  So we cannot safely
746        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
747        to allow for a few compiler-allocated temporary stack slots.  */
748 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
749 #  endif
750 # else
751 #  define YYSTACK_ALLOC YYMALLOC
752 #  define YYSTACK_FREE YYFREE
753 #  ifndef YYSTACK_ALLOC_MAXIMUM
754 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
755 #  endif
756 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
757        && ! ((defined YYMALLOC || defined malloc) \
758              && (defined YYFREE || defined free)))
759 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
760 #   ifndef EXIT_SUCCESS
761 #    define EXIT_SUCCESS 0
762 #   endif
763 #  endif
764 #  ifndef YYMALLOC
765 #   define YYMALLOC malloc
766 #   if ! defined malloc && ! defined EXIT_SUCCESS
767 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
768 #   endif
769 #  endif
770 #  ifndef YYFREE
771 #   define YYFREE free
772 #   if ! defined free && ! defined EXIT_SUCCESS
773 void free (void *); /* INFRINGES ON USER NAME SPACE */
774 #   endif
775 #  endif
776 # endif
777 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
778
779
780 #if (! defined yyoverflow \
781      && (! defined __cplusplus \
782          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
783
784 /* A type that is properly aligned for any stack member.  */
785 union yyalloc
786 {
787   yytype_int16 yyss_alloc;
788   YYSTYPE yyvs_alloc;
789 };
790
791 /* The size of the maximum gap between one aligned stack and the next.  */
792 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
793
794 /* The size of an array large to enough to hold all stacks, each with
795    N elements.  */
796 # define YYSTACK_BYTES(N) \
797      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
798       + YYSTACK_GAP_MAXIMUM)
799
800 # define YYCOPY_NEEDED 1
801
802 /* Relocate STACK from its old location to the new one.  The
803    local variables YYSIZE and YYSTACKSIZE give the old and new number of
804    elements in the stack, and YYPTR gives the new location of the
805    stack.  Advance YYPTR to a properly aligned location for the next
806    stack.  */
807 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
808     do                                                                  \
809       {                                                                 \
810         YYSIZE_T yynewbytes;                                            \
811         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
812         Stack = &yyptr->Stack_alloc;                                    \
813         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
814         yyptr += yynewbytes / sizeof (*yyptr);                          \
815       }                                                                 \
816     while (0)
817
818 #endif
819
820 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
821 /* Copy COUNT objects from SRC to DST.  The source and destination do
822    not overlap.  */
823 # ifndef YYCOPY
824 #  if defined __GNUC__ && 1 < __GNUC__
825 #   define YYCOPY(Dst, Src, Count) \
826       __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
827 #  else
828 #   define YYCOPY(Dst, Src, Count)              \
829       do                                        \
830         {                                       \
831           YYSIZE_T yyi;                         \
832           for (yyi = 0; yyi < (Count); yyi++)   \
833             (Dst)[yyi] = (Src)[yyi];            \
834         }                                       \
835       while (0)
836 #  endif
837 # endif
838 #endif /* !YYCOPY_NEEDED */
839
840 /* YYFINAL -- State number of the termination state.  */
841 #define YYFINAL  379
842 /* YYLAST -- Last index in YYTABLE.  */
843 #define YYLAST   9248
844
845 /* YYNTOKENS -- Number of terminals.  */
846 #define YYNTOKENS  404
847 /* YYNNTS -- Number of nonterminals.  */
848 #define YYNNTS  107
849 /* YYNRULES -- Number of rules.  */
850 #define YYNRULES  569
851 /* YYNSTATES -- Number of states.  */
852 #define YYNSTATES  710
853
854 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
855    by yylex, with out-of-bounds checking.  */
856 #define YYUNDEFTOK  2
857 #define YYMAXUTOK   658
858
859 #define YYTRANSLATE(YYX)                                                \
860   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
861
862 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
863    as returned by yylex, without out-of-bounds checking.  */
864 static const yytype_uint16 yytranslate[] =
865 {
866        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
867        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
868        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
869        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
870        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
871        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
872        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
873        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
874        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
875        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
876        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
877        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
878        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
879        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
880        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
881        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
882        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
883        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
884        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
885        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
886        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
887        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
888        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
889        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
890        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
891        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
892        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
893       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
894       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
895       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
896       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
897       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
898       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
899       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
900       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
901       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
902      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
903      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
904      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
905      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
906      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
907      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
908      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
909      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
910      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
911      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
912      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
913      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
914      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
915      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
916      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
917      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
918      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
919      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
920      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
921      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
922      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
923      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
924      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
925      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
926      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
927      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
928      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
929      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
930      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
931      395,   396,   397,   398,   399,   400,   401,   402,   403
932 };
933
934 #if YYDEBUG
935   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
936 static const yytype_uint16 yyrline[] =
937 {
938        0,   294,   294,   300,   303,   307,   311,   314,   318,   322,
939      326,   330,   334,   337,   341,   345,   348,   356,   359,   362,
940      365,   368,   373,   381,   388,   395,   401,   405,   412,   415,
941      421,   428,   438,   446,   451,   478,   486,   492,   496,   500,
942      520,   521,   522,   523,   529,   530,   535,   540,   549,   550,
943      555,   563,   564,   570,   579,   580,   585,   590,   595,   603,
944      604,   612,   623,   624,   633,   634,   643,   644,   653,   654,
945      662,   663,   671,   672,   680,   681,   681,   699,   700,   716,
946      720,   724,   728,   733,   737,   741,   745,   749,   753,   757,
947      764,   767,   778,   785,   790,   795,   803,   807,   811,   815,
948      820,   825,   834,   834,   845,   849,   856,   863,   866,   873,
949      881,   901,   924,   939,   964,   975,   985,   995,  1005,  1014,
950     1017,  1021,  1025,  1030,  1038,  1043,  1048,  1053,  1058,  1067,
951     1078,  1105,  1114,  1121,  1128,  1139,  1148,  1158,  1170,  1179,
952     1191,  1197,  1200,  1207,  1211,  1215,  1223,  1232,  1235,  1246,
953     1249,  1252,  1256,  1260,  1264,  1268,  1274,  1278,  1290,  1304,
954     1309,  1315,  1321,  1328,  1334,  1339,  1344,  1349,  1359,  1369,
955     1379,  1391,  1395,  1400,  1405,  1410,  1415,  1420,  1424,  1428,
956     1432,  1436,  1442,  1451,  1458,  1461,  1469,  1473,  1482,  1487,
957     1495,  1499,  1509,  1513,  1517,  1522,  1527,  1532,  1537,  1541,
958     1546,  1551,  1556,  1561,  1566,  1571,  1576,  1581,  1586,  1590,
959     1595,  1600,  1605,  1611,  1617,  1623,  1629,  1635,  1641,  1647,
960     1653,  1659,  1665,  1671,  1677,  1682,  1687,  1692,  1697,  1702,
961     1707,  1713,  1719,  1725,  1731,  1737,  1743,  1749,  1755,  1761,
962     1767,  1773,  1779,  1785,  1791,  1797,  1803,  1809,  1815,  1821,
963     1827,  1833,  1839,  1845,  1851,  1857,  1863,  1869,  1874,  1879,
964     1884,  1889,  1894,  1899,  1904,  1909,  1914,  1919,  1924,  1929,
965     1935,  1941,  1947,  1953,  1959,  1965,  1971,  1977,  1983,  1989,
966     1995,  2001,  2007,  2013,  2019,  2025,  2031,  2037,  2043,  2049,
967     2055,  2061,  2067,  2073,  2079,  2085,  2091,  2097,  2103,  2109,
968     2115,  2121,  2127,  2133,  2139,  2145,  2151,  2157,  2163,  2169,
969     2175,  2181,  2187,  2193,  2199,  2205,  2211,  2217,  2223,  2228,
970     2233,  2238,  2243,  2248,  2253,  2258,  2263,  2268,  2273,  2278,
971     2283,  2288,  2293,  2301,  2309,  2317,  2325,  2333,  2341,  2349,
972     2357,  2365,  2373,  2381,  2389,  2397,  2402,  2407,  2412,  2417,
973     2422,  2427,  2432,  2437,  2442,  2447,  2452,  2457,  2462,  2467,
974     2472,  2477,  2485,  2493,  2498,  2503,  2508,  2516,  2521,  2526,
975     2531,  2539,  2544,  2549,  2554,  2562,  2567,  2572,  2577,  2582,
976     2587,  2595,  2600,  2608,  2613,  2621,  2626,  2634,  2639,  2647,
977     2652,  2660,  2665,  2673,  2678,  2683,  2688,  2693,  2698,  2703,
978     2708,  2713,  2718,  2723,  2728,  2733,  2738,  2743,  2748,  2756,
979     2761,  2766,  2771,  2779,  2784,  2789,  2794,  2802,  2807,  2812,
980     2817,  2825,  2830,  2835,  2840,  2848,  2853,  2858,  2863,  2871,
981     2876,  2881,  2886,  2894,  2899,  2904,  2909,  2917,  2922,  2927,
982     2932,  2940,  2945,  2950,  2955,  2963,  2968,  2973,  2978,  2986,
983     2991,  2996,  3001,  3009,  3014,  3019,  3024,  3032,  3037,  3042,
984     3047,  3055,  3060,  3065,  3070,  3078,  3083,  3088,  3094,  3100,
985     3106,  3115,  3124,  3130,  3136,  3142,  3148,  3153,  3169,  3174,
986     3179,  3187,  3187,  3198,  3198,  3208,  3211,  3224,  3246,  3273,
987     3277,  3283,  3288,  3299,  3302,  3308,  3317,  3320,  3326,  3330,
988     3331,  3337,  3338,  3339,  3340,  3341,  3342,  3343,  3347,  3348,
989     3352,  3348,  3364,  3365,  3369,  3369,  3376,  3376,  3390,  3393,
990     3401,  3409,  3420,  3421,  3425,  3428,  3434,  3441,  3445,  3453,
991     3457,  3470,  3473,  3479,  3479,  3499,  3502,  3508,  3520,  3532,
992     3535,  3541,  3541,  3556,  3556,  3572,  3572,  3593,  3596,  3602,
993     3605,  3611,  3615,  3622,  3627,  3632,  3639,  3642,  3651,  3655,
994     3664,  3667,  3670,  3678,  3678,  3700,  3706,  3709,  3714,  3717
995 };
996 #endif
997
998 #if YYDEBUG || YYERROR_VERBOSE || 1
999 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1000    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1001 static const char *const yytname[] =
1002 {
1003   "$end", "error", "$undefined", "ATTRIBUTE", "VARYING", "FLOAT16_T",
1004   "FLOAT", "FLOAT32_T", "DOUBLE", "FLOAT64_T", "CONST", "BOOL", "INT",
1005   "UINT", "INT64_T", "UINT64_T", "INT32_T", "UINT32_T", "INT16_T",
1006   "UINT16_T", "INT8_T", "UINT8_T", "BREAK", "CONTINUE", "DO", "ELSE",
1007   "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT",
1008   "SUBROUTINE", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4",
1009   "UVEC2", "UVEC3", "UVEC4", "I64VEC2", "I64VEC3", "I64VEC4", "U64VEC2",
1010   "U64VEC3", "U64VEC4", "I32VEC2", "I32VEC3", "I32VEC4", "U32VEC2",
1011   "U32VEC3", "U32VEC4", "I16VEC2", "I16VEC3", "I16VEC4", "U16VEC2",
1012   "U16VEC3", "U16VEC4", "I8VEC2", "I8VEC3", "I8VEC4", "U8VEC2", "U8VEC3",
1013   "U8VEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3", "MAT4", "CENTROID",
1014   "IN", "OUT", "INOUT", "UNIFORM", "PATCH", "SAMPLE", "BUFFER", "SHARED",
1015   "NONUNIFORM", "PAYLOADNV", "PAYLOADINNV", "HITATTRNV", "COHERENT",
1016   "VOLATILE", "RESTRICT", "READONLY", "WRITEONLY", "DEVICECOHERENT",
1017   "QUEUEFAMILYCOHERENT", "WORKGROUPCOHERENT", "SUBGROUPCOHERENT",
1018   "NONPRIVATE", "DVEC2", "DVEC3", "DVEC4", "DMAT2", "DMAT3", "DMAT4",
1019   "F16VEC2", "F16VEC3", "F16VEC4", "F16MAT2", "F16MAT3", "F16MAT4",
1020   "F32VEC2", "F32VEC3", "F32VEC4", "F32MAT2", "F32MAT3", "F32MAT4",
1021   "F64VEC2", "F64VEC3", "F64VEC4", "F64MAT2", "F64MAT3", "F64MAT4",
1022   "NOPERSPECTIVE", "FLAT", "SMOOTH", "LAYOUT", "EXPLICITINTERPAMD",
1023   "PERVERTEXNV", "PERPRIMITIVENV", "PERVIEWNV", "PERTASKNV", "MAT2X2",
1024   "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3",
1025   "MAT4X4", "DMAT2X2", "DMAT2X3", "DMAT2X4", "DMAT3X2", "DMAT3X3",
1026   "DMAT3X4", "DMAT4X2", "DMAT4X3", "DMAT4X4", "F16MAT2X2", "F16MAT2X3",
1027   "F16MAT2X4", "F16MAT3X2", "F16MAT3X3", "F16MAT3X4", "F16MAT4X2",
1028   "F16MAT4X3", "F16MAT4X4", "F32MAT2X2", "F32MAT2X3", "F32MAT2X4",
1029   "F32MAT3X2", "F32MAT3X3", "F32MAT3X4", "F32MAT4X2", "F32MAT4X3",
1030   "F32MAT4X4", "F64MAT2X2", "F64MAT2X3", "F64MAT2X4", "F64MAT3X2",
1031   "F64MAT3X3", "F64MAT3X4", "F64MAT4X2", "F64MAT4X3", "F64MAT4X4",
1032   "ATOMIC_UINT", "ACCSTRUCTNV", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D",
1033   "SAMPLERCUBE", "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW",
1034   "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW",
1035   "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D",
1036   "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D",
1037   "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY",
1038   "USAMPLER2DARRAY", "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW",
1039   "ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER",
1040   "USAMPLERBUFFER", "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW",
1041   "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY", "SAMPLER2DMS", "ISAMPLER2DMS",
1042   "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY",
1043   "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "F16SAMPLER1D",
1044   "F16SAMPLER2D", "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE",
1045   "F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY",
1046   "F16SAMPLERBUFFER", "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY",
1047   "F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW",
1048   "F16SAMPLER2DARRAYSHADOW", "F16SAMPLER2DRECTSHADOW",
1049   "F16SAMPLERCUBESHADOW", "F16SAMPLERCUBEARRAYSHADOW", "SAMPLER",
1050   "SAMPLERSHADOW", "TEXTURE1D", "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE",
1051   "TEXTURE1DARRAY", "TEXTURE2DARRAY", "ITEXTURE1D", "ITEXTURE2D",
1052   "ITEXTURE3D", "ITEXTURECUBE", "ITEXTURE1DARRAY", "ITEXTURE2DARRAY",
1053   "UTEXTURE1D", "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE",
1054   "UTEXTURE1DARRAY", "UTEXTURE2DARRAY", "TEXTURE2DRECT", "ITEXTURE2DRECT",
1055   "UTEXTURE2DRECT", "TEXTUREBUFFER", "ITEXTUREBUFFER", "UTEXTUREBUFFER",
1056   "TEXTURECUBEARRAY", "ITEXTURECUBEARRAY", "UTEXTURECUBEARRAY",
1057   "TEXTURE2DMS", "ITEXTURE2DMS", "UTEXTURE2DMS", "TEXTURE2DMSARRAY",
1058   "ITEXTURE2DMSARRAY", "UTEXTURE2DMSARRAY", "F16TEXTURE1D", "F16TEXTURE2D",
1059   "F16TEXTURE3D", "F16TEXTURE2DRECT", "F16TEXTURECUBE",
1060   "F16TEXTURE1DARRAY", "F16TEXTURE2DARRAY", "F16TEXTURECUBEARRAY",
1061   "F16TEXTUREBUFFER", "F16TEXTURE2DMS", "F16TEXTURE2DMSARRAY",
1062   "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT", "ISUBPASSINPUTMS",
1063   "USUBPASSINPUT", "USUBPASSINPUTMS", "F16SUBPASSINPUT",
1064   "F16SUBPASSINPUTMS", "IMAGE1D", "IIMAGE1D", "UIMAGE1D", "IMAGE2D",
1065   "IIMAGE2D", "UIMAGE2D", "IMAGE3D", "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT",
1066   "IIMAGE2DRECT", "UIMAGE2DRECT", "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE",
1067   "IMAGEBUFFER", "IIMAGEBUFFER", "UIMAGEBUFFER", "IMAGE1DARRAY",
1068   "IIMAGE1DARRAY", "UIMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE2DARRAY",
1069   "UIMAGE2DARRAY", "IMAGECUBEARRAY", "IIMAGECUBEARRAY", "UIMAGECUBEARRAY",
1070   "IMAGE2DMS", "IIMAGE2DMS", "UIMAGE2DMS", "IMAGE2DMSARRAY",
1071   "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY", "F16IMAGE1D", "F16IMAGE2D",
1072   "F16IMAGE3D", "F16IMAGE2DRECT", "F16IMAGECUBE", "F16IMAGE1DARRAY",
1073   "F16IMAGE2DARRAY", "F16IMAGECUBEARRAY", "F16IMAGEBUFFER", "F16IMAGE2DMS",
1074   "F16IMAGE2DMSARRAY", "STRUCT", "VOID", "WHILE", "IDENTIFIER",
1075   "TYPE_NAME", "FLOATCONSTANT", "DOUBLECONSTANT", "INT16CONSTANT",
1076   "UINT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT", "INTCONSTANT",
1077   "UINTCONSTANT", "INT64CONSTANT", "UINT64CONSTANT", "BOOLCONSTANT",
1078   "FLOAT16CONSTANT", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
1079   "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
1080   "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
1081   "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN",
1082   "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE",
1083   "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG",
1084   "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT", "LEFT_ANGLE",
1085   "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND", "QUESTION",
1086   "INVARIANT", "PRECISE", "HIGH_PRECISION", "MEDIUM_PRECISION",
1087   "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP", "$accept",
1088   "variable_identifier", "primary_expression", "postfix_expression",
1089   "integer_expression", "function_call", "function_call_or_method",
1090   "function_call_generic", "function_call_header_no_parameters",
1091   "function_call_header_with_parameters", "function_call_header",
1092   "function_identifier", "unary_expression", "unary_operator",
1093   "multiplicative_expression", "additive_expression", "shift_expression",
1094   "relational_expression", "equality_expression", "and_expression",
1095   "exclusive_or_expression", "inclusive_or_expression",
1096   "logical_and_expression", "logical_xor_expression",
1097   "logical_or_expression", "conditional_expression", "$@1",
1098   "assignment_expression", "assignment_operator", "expression",
1099   "constant_expression", "declaration", "block_structure", "$@2",
1100   "identifier_list", "function_prototype", "function_declarator",
1101   "function_header_with_parameters", "function_header",
1102   "parameter_declarator", "parameter_declaration",
1103   "parameter_type_specifier", "init_declarator_list", "single_declaration",
1104   "fully_specified_type", "invariant_qualifier", "interpolation_qualifier",
1105   "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
1106   "precise_qualifier", "type_qualifier", "single_type_qualifier",
1107   "storage_qualifier", "non_uniform_qualifier", "type_name_list",
1108   "type_specifier", "array_specifier", "type_specifier_nonarray",
1109   "precision_qualifier", "struct_specifier", "$@3", "$@4",
1110   "struct_declaration_list", "struct_declaration",
1111   "struct_declarator_list", "struct_declarator", "initializer",
1112   "initializer_list", "declaration_statement", "statement",
1113   "simple_statement", "compound_statement", "$@5", "$@6",
1114   "statement_no_new_scope", "statement_scoped", "$@7", "$@8",
1115   "compound_statement_no_new_scope", "statement_list",
1116   "expression_statement", "selection_statement",
1117   "selection_statement_nonattributed", "selection_rest_statement",
1118   "condition", "switch_statement", "switch_statement_nonattributed", "$@9",
1119   "switch_statement_list", "case_label", "iteration_statement",
1120   "iteration_statement_nonattributed", "$@10", "$@11", "$@12",
1121   "for_init_statement", "conditionopt", "for_rest_statement",
1122   "jump_statement", "translation_unit", "external_declaration",
1123   "function_definition", "$@13", "attribute", "attribute_list",
1124   "single_attribute", YY_NULLPTR
1125 };
1126 #endif
1127
1128 # ifdef YYPRINT
1129 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1130    (internal) symbol number NUM (which must be that of a token).  */
1131 static const yytype_uint16 yytoknum[] =
1132 {
1133        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1134      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1135      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1136      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1137      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
1138      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
1139      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1140      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1141      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1142      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1143      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1144      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1145      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1146      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
1147      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
1148      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
1149      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
1150      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
1151      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1152      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1153      455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1154      465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1155      475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1156      485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1157      495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
1158      505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
1159      515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
1160      525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
1161      535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
1162      545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
1163      555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
1164      565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
1165      575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
1166      585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
1167      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
1168      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
1169      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
1170      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
1171      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
1172      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
1173      655,   656,   657,   658
1174 };
1175 # endif
1176
1177 #define YYPACT_NINF -645
1178
1179 #define yypact_value_is_default(Yystate) \
1180   (!!((Yystate) == (-645)))
1181
1182 #define YYTABLE_NINF -515
1183
1184 #define yytable_value_is_error(Yytable_value) \
1185   0
1186
1187   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1188      STATE-NUM.  */
1189 static const yytype_int16 yypact[] =
1190 {
1191     3495,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1192     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1193     -317,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1194     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1195     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1196     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1197     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1198     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1199     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1200     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1201     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1202     -266,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1203     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1204     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1205     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1206     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1207     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1208     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1209     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1210     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1211     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1212     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1213     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1214     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1215     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1216     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1217     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1218     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1219     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1220     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1221     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1222     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1223     -314,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -273,
1224     -645,  -315,  -355,  -335,  -299,  5878,  -286,  -645,  -239,  -645,
1225     -645,  -645,  -645,  4290,  -645,  -645,  -645,  -645,  -233,  -645,
1226     -645,   709,  -645,  -645,  -181,   -69,  -218,  -645,  8911,  -340,
1227     -645,  -645,  -212,  -645,  5878,  -645,  -645,  -645,  5878,  -168,
1228     -167,  -645,  -337,  -303,  -645,  -645,  -645,  6625,  -203,  -645,
1229     -645,  -645,  -305,  -645,  -209,  -304,  -645,  -645,  5878,  -208,
1230     -645,  -333,  1107,  -645,  -645,  -645,  -645,  -233,  -323,  -645,
1231     7006,  -311,  -645,  -164,  -645,  -275,  -645,  -645,  -645,  -645,
1232     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  8149,
1233     8149,  8149,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -322,
1234     -645,  -645,  -645,  -198,  -296,  8530,  -196,  -645,  8149,  -251,
1235     -292,  -222,  -331,  -225,  -217,  -215,  -213,  -178,  -179,  -334,
1236     -192,  -645,  -645,  7387,  -645,  -153,  8149,  -645,   -69,  5878,
1237     5878,  -152,  4687,  -645,  -645,  -645,  -195,  -194,  -645,  -186,
1238     -183,  -191,  7768,  -182,  8149,  -187,  -177,  -180,  -176,  -645,
1239     -645,  -216,  -645,  -645,  -274,  -645,  -355,  -175,  -174,  -645,
1240     -645,  -645,  -645,  1505,  -645,  -645,  -645,  -645,  -645,  -645,
1241     -645,  -645,  -645,   -19,  -203,  7006,  -310,  7006,  -645,  -645,
1242     7006,  5878,  -645,  -135,  -645,  -645,  -645,  -295,  -645,  -645,
1243     8149,  -134,  -645,  -645,  8149,  -169,  -645,  -645,  -645,  8149,
1244     8149,  8149,  8149,  8149,  8149,  8149,  8149,  8149,  8149,  8149,
1245     8149,  8149,  8149,  8149,  8149,  8149,  8149,  8149,  -645,  -645,
1246     -645,  -170,  -645,  -645,  -645,  -645,  5084,  -152,  -233,  -268,
1247     -645,  -645,  -645,  -645,  -645,  1903,  -645,  8149,  -645,  -645,
1248     -263,  8149,  -240,  -645,  -645,  -131,  -645,  1903,  -645,  -645,
1249     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  8149,
1250     8149,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  7006,  -645,
1251     -267,  -645,  5481,  -645,  -645,  -166,  -163,  -645,  -645,  -645,
1252     -645,  -645,  -251,  -251,  -292,  -292,  -222,  -222,  -222,  -222,
1253     -331,  -331,  -225,  -217,  -215,  -213,  -178,  -179,  8149,  -645,
1254     -645,  -261,  -203,  -152,  -645,  -126,  3097,  -291,  -645,  -288,
1255     -645,  3893,  -161,  -336,  -645,  1903,  -645,  -645,  -645,  -645,
1256     6244,  -645,  -645,  -236,  -645,  -645,  -160,  -645,  -645,  3893,
1257     -159,  -645,  -163,  -124,  5878,  -158,  8149,  -157,  -131,  -156,
1258     -645,  -645,  8149,  8149,  -645,  -162,  -154,   196,  -149,  2699,
1259     -645,  -148,  -151,  2301,  -150,  -645,  -645,  -645,  -645,  -284,
1260     8149,  2301,  -159,  -645,  -645,  1903,  7006,  -645,  -645,  -645,
1261     -645,  -130,  -163,  -645,  -645,  1903,  -146,  -645,  -645,  -645
1262 };
1263
1264   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1265      Performed when YYTABLE does not specify something else to do.  Zero
1266      means the default is an error.  */
1267 static const yytype_uint16 yydefact[] =
1268 {
1269        0,   157,   158,   195,   193,   196,   194,   197,   156,   208,
1270      198,   199,   206,   207,   204,   205,   202,   203,   200,   201,
1271      181,   224,   225,   226,   227,   228,   229,   242,   243,   244,
1272      239,   240,   241,   254,   255,   256,   236,   237,   238,   251,
1273      252,   253,   233,   234,   235,   248,   249,   250,   230,   231,
1274      232,   245,   246,   247,   209,   210,   211,   257,   258,   259,
1275      162,   160,   161,   159,   165,   163,   164,   166,   170,   183,
1276      168,   169,   167,   171,   177,   178,   179,   180,   172,   173,
1277      174,   175,   176,   212,   213,   214,   269,   270,   271,   215,
1278      216,   217,   281,   282,   283,   218,   219,   220,   293,   294,
1279      295,   221,   222,   223,   305,   306,   307,   134,   133,   132,
1280        0,   135,   136,   137,   138,   139,   260,   261,   262,   263,
1281      264,   265,   266,   267,   268,   272,   273,   274,   275,   276,
1282      277,   278,   279,   280,   284,   285,   286,   287,   288,   289,
1283      290,   291,   292,   296,   297,   298,   299,   300,   301,   302,
1284      303,   304,   308,   309,   310,   311,   312,   313,   314,   315,
1285      316,   318,   317,   319,   320,   321,   322,   323,   324,   325,
1286      326,   327,   328,   329,   345,   346,   347,   348,   349,   350,
1287      352,   353,   354,   355,   356,   357,   359,   360,   363,   364,
1288      365,   367,   368,   330,   331,   351,   358,   369,   371,   372,
1289      373,   375,   376,   467,   332,   333,   334,   361,   335,   339,
1290      340,   343,   366,   370,   374,   336,   337,   341,   342,   362,
1291      338,   344,   377,   378,   379,   381,   383,   385,   387,   389,
1292      393,   394,   395,   396,   397,   398,   400,   401,   402,   403,
1293      404,   405,   407,   409,   410,   411,   413,   414,   391,   399,
1294      406,   415,   417,   418,   419,   421,   422,   380,   382,   384,
1295      408,   386,   388,   390,   392,   412,   416,   420,   468,   469,
1296      472,   473,   474,   475,   470,   471,   423,   425,   426,   427,
1297      429,   430,   431,   433,   434,   435,   437,   438,   439,   441,
1298      442,   443,   445,   446,   447,   449,   450,   451,   453,   454,
1299      455,   457,   458,   459,   461,   462,   463,   465,   466,   424,
1300      428,   432,   436,   440,   448,   452,   456,   444,   460,   464,
1301        0,   192,   477,   562,   131,   146,   478,   479,   480,     0,
1302      561,     0,   563,     0,   108,   107,     0,   119,   124,   153,
1303      152,   150,   154,     0,   147,   149,   155,   129,   186,   151,
1304      476,     0,   558,   560,     0,     0,     0,   483,     0,     0,
1305       96,    93,     0,   106,     0,   115,   109,   117,     0,   118,
1306        0,    94,   125,     0,    99,   148,   130,     0,   187,     1,
1307      559,   184,     0,   145,   143,     0,   141,   481,     0,     0,
1308       97,     0,     0,   564,   110,   114,   116,   112,   120,   111,
1309        0,   126,   102,     0,   100,     0,     2,    12,    13,    10,
1310       11,     4,     5,     6,     7,     8,     9,    15,    14,     0,
1311        0,     0,   188,    42,    41,    43,    40,     3,    17,    36,
1312       19,    24,    25,     0,     0,    29,     0,    44,     0,    48,
1313       51,    54,    59,    62,    64,    66,    68,    70,    72,    74,
1314        0,    35,    33,     0,   182,     0,     0,   140,     0,     0,
1315        0,     0,     0,   485,    95,    98,     0,     0,   543,     0,
1316        0,     0,     0,     0,     0,     0,     0,     0,   509,   518,
1317      522,    44,    77,    90,     0,   498,     0,   155,   129,   501,
1318      520,   500,   499,     0,   502,   503,   524,   504,   531,   505,
1319      506,   539,   507,     0,   113,     0,   121,     0,   493,   128,
1320        0,     0,   104,     0,   101,    37,    38,     0,    21,    22,
1321        0,     0,    27,    26,     0,   192,    30,    32,    39,     0,
1322        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1323        0,     0,     0,     0,     0,     0,     0,     0,    75,   189,
1324      190,     0,   185,    92,   144,   142,     0,     0,   491,     0,
1325      489,   484,   486,   554,   553,     0,   545,     0,   557,   555,
1326        0,     0,     0,   538,   541,     0,   508,     0,    80,    81,
1327       83,    82,    85,    86,    87,    88,    89,    84,    79,     0,
1328        0,   523,   519,   521,   525,   532,   540,   123,     0,   496,
1329        0,   127,     0,   105,    16,     0,    23,    20,    31,    45,
1330       46,    47,    50,    49,    52,    53,    57,    58,    55,    56,
1331       60,    61,    63,    65,    67,    69,    71,    73,     0,   191,
1332      482,     0,   492,     0,   487,     0,     0,     0,   556,     0,
1333      537,     0,   568,     0,   566,   510,    78,    91,   122,   494,
1334        0,   103,    18,     0,   488,   490,     0,   548,   547,   550,
1335      516,   533,   529,     0,     0,     0,     0,     0,     0,     0,
1336      495,   497,     0,     0,   549,     0,     0,   528,     0,     0,
1337      526,     0,     0,     0,     0,   565,   567,   511,    76,     0,
1338      551,     0,   516,   515,   517,   535,     0,   513,   542,   512,
1339      569,     0,   552,   546,   527,   536,     0,   530,   544,   534
1340 };
1341
1342   /* YYPGOTO[NTERM-NUM].  */
1343 static const yytype_int16 yypgoto[] =
1344 {
1345     -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1346     -645,  -645,  -297,  -645,  -468,  -373,  -437,  -374,  -319,  -312,
1347     -316,  -290,  -293,  -289,  -645,  -367,  -645,  -391,  -645,  -376,
1348     -412,     1,  -645,  -645,  -645,     2,  -645,  -645,  -645,  -112,
1349     -107,  -108,  -645,  -645,  -613,  -645,  -645,  -645,  -645,  -197,
1350     -645,  -332,  -339,  -645,     6,  -645,     0,  -345,  -645,   -67,
1351     -645,  -645,  -645,  -440,  -444,  -294,  -369,  -490,  -645,  -370,
1352     -480,  -644,  -410,  -645,  -645,  -422,  -421,  -645,  -645,   -90,
1353     -561,  -363,  -645,  -229,  -645,  -384,  -645,  -227,  -645,  -645,
1354     -645,  -645,  -226,  -645,  -645,  -645,  -645,  -645,  -645,  -645,
1355     -645,   -73,  -645,  -645,  -645,  -645,  -389
1356 };
1357
1358   /* YYDEFGOTO[NTERM-NUM].  */
1359 static const yytype_int16 yydefgoto[] =
1360 {
1361       -1,   427,   428,   429,   605,   430,   431,   432,   433,   434,
1362      435,   436,   481,   438,   439,   440,   441,   442,   443,   444,
1363      445,   446,   447,   448,   449,   482,   628,   483,   589,   484,
1364      554,   485,   331,   511,   405,   486,   333,   334,   335,   365,
1365      366,   367,   336,   337,   338,   339,   340,   341,   385,   386,
1366      342,   343,   344,   345,   451,   382,   452,   378,   348,   349,
1367      350,   459,   388,   462,   463,   559,   560,   509,   600,   489,
1368      490,   491,   492,   577,   669,   698,   677,   678,   679,   699,
1369      493,   494,   495,   496,   680,   665,   497,   498,   681,   706,
1370      499,   500,   501,   641,   565,   636,   659,   675,   676,   502,
1371      351,   352,   353,   362,   503,   643,   644
1372 };
1373
1374   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1375      positive, shift that token.  If negative, reduce the rule whose
1376      number is the opposite.  If YYTABLE_NINF, syntax error.  */
1377 static const yytype_int16 yytable[] =
1378 {
1379      347,   330,   332,   368,   375,   468,   346,   469,   470,   508,
1380      450,   473,   383,   593,   391,   597,   645,   599,   562,   556,
1381      601,   359,   356,   536,   537,   547,   361,   401,   663,   375,
1382      518,   519,   368,   377,   399,   694,   377,   363,   667,   697,
1383      453,   390,   668,   400,   526,   517,   663,   697,   465,   -34,
1384      377,   520,   504,   506,   354,   521,   460,   505,   538,   539,
1385      548,   357,   453,   453,   612,   613,   360,   454,   457,   510,
1386      598,   602,   402,   455,   458,   403,   523,   604,   404,   364,
1387      437,   660,   524,   590,   661,   635,   551,   590,   701,   553,
1388      590,   532,   370,   533,   590,   371,   570,   372,   572,   616,
1389      617,   618,   619,   513,   590,   355,   514,   591,   648,   649,
1390      633,   650,   562,   634,   508,   590,   508,   633,   638,   508,
1391      654,   375,   515,   516,   326,   327,   328,   460,   534,   535,
1392      460,   540,   541,   608,   705,   529,   530,   531,   590,   640,
1393      377,   528,   590,   672,   606,   578,   579,   580,   581,   582,
1394      583,   584,   585,   586,   587,   381,   437,   387,   562,   437,
1395      671,   614,   615,   392,   588,   593,   620,   621,   397,   398,
1396      453,   456,   512,   464,   522,   527,   542,   543,   544,   460,
1397      545,   546,   549,   552,   558,   566,   563,   564,   567,   571,
1398      568,   637,   573,   575,   574,   639,   -35,   -33,   646,   647,
1399      576,   603,   607,   -28,   629,   642,   707,   508,   652,   656,
1400      666,   673,   682,   632,   683,   590,  -514,   685,   691,   690,
1401      687,   692,   700,   622,   460,   593,   478,   695,   624,   696,
1402      709,   623,   609,   610,   611,   437,   437,   437,   437,   437,
1403      437,   437,   437,   437,   437,   437,   437,   437,   437,   437,
1404      437,   708,   653,   626,   684,   625,   395,   394,   627,   508,
1405      396,   555,   358,   631,   655,   662,   657,   384,   693,   703,
1406      460,   704,   393,   658,   594,   674,   595,   596,   380,   686,
1407        0,   688,     0,   662,     0,     0,     0,     0,     0,     0,
1408        0,     0,     0,     0,     0,     0,     0,   689,     0,   553,
1409        0,     0,     0,     0,     0,   508,     0,     0,     0,   664,
1410        0,     0,     0,     0,   702,     0,   476,     0,     0,     0,
1411        0,     0,     0,     0,     0,   375,     0,   664,     0,     0,
1412        0,     0,     0,     0,     0,   369,     0,     0,     0,     0,
1413        0,   346,     0,   376,     0,     0,     0,     0,     0,   346,
1414        0,   347,   330,   332,     0,     0,     0,   346,   389,     0,
1415        0,     0,     0,     0,   369,     0,     0,     0,   369,   437,
1416      346,     0,     0,     0,   346,     0,     0,     0,     0,     0,
1417        0,     0,     0,     0,     0,     0,     0,     0,   461,     0,
1418        0,     0,   488,     0,   346,     0,     0,     0,   487,     0,
1419        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1420        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1421        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1422        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1423        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1424        0,     0,     0,     0,     0,     0,     0,     0,     0,   461,
1425      557,     0,   461,     0,     0,   346,   346,     0,   346,     0,
1426        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1427        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1428        0,     0,     0,   488,     0,     0,     0,     0,     0,   487,
1429        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1430        0,   461,     0,     0,     0,     0,     0,   346,     0,     0,
1431        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1432        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1433        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1434        0,     0,     0,     0,     0,     0,   461,     0,     0,     0,
1435        0,     0,   346,     0,     0,   488,     0,     0,     0,     0,
1436        0,   487,     0,     0,     0,     0,     0,   488,     0,     0,
1437        0,     0,     0,   487,     0,     0,     0,     0,     0,     0,
1438        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1439        0,     0,   461,     0,     0,     0,     0,     0,   346,     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,   488,     0,     0,     0,
1443        0,   488,   487,     0,     0,   488,     0,   487,     0,     0,
1444        0,   487,     0,     0,     0,     0,     0,     0,     0,   488,
1445        0,     0,     0,     0,   376,   487,     0,     0,     0,     0,
1446      346,     0,     0,     0,     0,     0,     0,     0,     0,   488,
1447        0,     0,     0,   488,     0,   487,     0,     0,     0,   487,
1448        0,   488,     0,     0,     0,   488,     0,   487,     0,     0,
1449        0,   487,     0,     0,     0,   488,     0,     0,     0,   379,
1450        0,   487,     1,     2,     3,     4,     5,     6,     7,     8,
1451        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1452       19,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1453        0,     0,    20,    21,    22,    23,    24,    25,    26,    27,
1454       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1455       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1456       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1457       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1458       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1459       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1460       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1461       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1462      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1463      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1464      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1465      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1466      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1467      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1468      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1469      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1470      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1471      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1472      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1473      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
1474      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
1475      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
1476      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1477      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
1478      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
1479      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
1480      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1481      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
1482      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
1483      318,   319,   320,   321,     0,     0,   322,     0,     0,     0,
1484        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1485        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1486        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1487        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1488      323,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1489        0,     0,     0,     0,   324,   325,   326,   327,   328,   329,
1490        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
1491       11,    12,    13,    14,    15,    16,    17,    18,    19,   466,
1492      467,   468,     0,   469,   470,   471,   472,   473,   474,   475,
1493       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
1494       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1495       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1496       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1497       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1498       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1499       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1500       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1501      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1502      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1503      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1504      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1505      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1506      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1507      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1508      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1509      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1510      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1511      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1512      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1513      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1514      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1515      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1516      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
1517      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
1518      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1519      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
1520      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
1521      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
1522      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
1523      320,   321,   476,   406,   322,   407,   408,   409,   410,   411,
1524      412,   413,   414,   415,   416,   417,   418,     0,     0,   419,
1525      420,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1526        0,     0,     0,     0,     0,     0,     0,     0,   421,     0,
1527      477,     0,   478,   479,     0,     0,     0,     0,   480,   423,
1528      424,   425,   426,     0,     0,     0,     0,     0,     0,     0,
1529        0,     0,   324,   325,   326,   327,   328,   329,     1,     2,
1530        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1531       13,    14,    15,    16,    17,    18,    19,   466,   467,   468,
1532        0,   469,   470,   471,   472,   473,   474,   475,    20,    21,
1533       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1534       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1535       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1536       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1537       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1538       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1539       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1540       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1541      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1542      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1543      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1544      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1545      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1546      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1547      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1548      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1549      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1550      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1551      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1552      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1553      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
1554      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
1555      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
1556      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1557      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
1558      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
1559      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
1560      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
1561      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
1562      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
1563      476,   406,   322,   407,   408,   409,   410,   411,   412,   413,
1564      414,   415,   416,   417,   418,     0,     0,   419,   420,     0,
1565        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1566        0,     0,     0,     0,     0,     0,   421,     0,   477,     0,
1567      478,   592,     0,     0,     0,     0,   480,   423,   424,   425,
1568      426,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1569      324,   325,   326,   327,   328,   329,     1,     2,     3,     4,
1570        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1571       15,    16,    17,    18,    19,   466,   467,   468,     0,   469,
1572      470,   471,   472,   473,   474,   475,    20,    21,    22,    23,
1573       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1574       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1575       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1576       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1577       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1578       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1579       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1580       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1581      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1582      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1583      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1584      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1585      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1586      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1587      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1588      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1589      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1590      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1591      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1592      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1593      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
1594      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1595      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1596      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
1597      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
1598      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
1599      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
1600      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
1601      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
1602      314,   315,   316,   317,   318,   319,   320,   321,   476,   406,
1603      322,   407,   408,   409,   410,   411,   412,   413,   414,   415,
1604      416,   417,   418,     0,     0,   419,   420,     0,     0,     0,
1605        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1606        0,     0,     0,     0,   421,     0,   477,     0,   478,     0,
1607        0,     0,     0,     0,   480,   423,   424,   425,   426,     0,
1608        0,     0,     0,     0,     0,     0,     0,     0,   324,   325,
1609      326,   327,   328,   329,     1,     2,     3,     4,     5,     6,
1610        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1611       17,    18,    19,   466,   467,   468,     0,   469,   470,   471,
1612      472,   473,   474,   475,    20,    21,    22,    23,    24,    25,
1613       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1614       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1615       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1616       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1617       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1618       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1619       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1620       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1621      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1622      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1623      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1624      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1625      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1626      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1627      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1628      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1629      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1630      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1631      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1632      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1633      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1634      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1635      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1636      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
1637      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
1638      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
1639      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
1640      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
1641      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
1642      316,   317,   318,   319,   320,   321,   476,   406,   322,   407,
1643      408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
1644      418,     0,     0,   419,   420,     0,     0,     0,     0,     0,
1645        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1646        0,     0,   421,     0,   477,     0,   392,     0,     0,     0,
1647        0,     0,   480,   423,   424,   425,   426,     0,     0,     0,
1648        0,     0,     0,     0,     0,     0,   324,   325,   326,   327,
1649      328,   329,     1,     2,     3,     4,     5,     6,     7,     8,
1650        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1651       19,   466,   467,   468,     0,   469,   470,   471,   472,   473,
1652      474,   475,    20,    21,    22,    23,    24,    25,    26,    27,
1653       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1654       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1655       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1656       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1657       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1658       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1659       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1660       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1661      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1662      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1663      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1664      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1665      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1666      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1667      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1668      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1669      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1670      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1671      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1672      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
1673      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
1674      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
1675      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1676      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
1677      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
1678      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
1679      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1680      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
1681      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
1682      318,   319,   320,   321,   476,   406,   322,   407,   408,   409,
1683      410,   411,   412,   413,   414,   415,   416,   417,   418,     0,
1684        0,   419,   420,     0,     0,     0,     0,     0,     0,     0,
1685        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1686      421,     0,   477,     0,     0,     0,     0,     0,     0,     0,
1687      480,   423,   424,   425,   426,     0,     0,     0,     0,     0,
1688        0,     0,     0,     0,   324,   325,   326,   327,   328,   329,
1689        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
1690       11,    12,    13,    14,    15,    16,    17,    18,    19,     0,
1691        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1692       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
1693       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1694       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1695       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1696       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1697       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1698       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1699       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1700      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1701      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1702      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1703      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1704      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1705      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1706      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1707      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1708      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1709      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1710      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1711      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1712      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1713      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1714      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1715      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
1716      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
1717      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1718      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
1719      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
1720      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
1721      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
1722      320,   321,     0,   406,   322,   407,   408,   409,   410,   411,
1723      412,   413,   414,   415,   416,   417,   418,     0,     0,   419,
1724      420,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1725        0,     0,     0,     0,     0,     0,     0,     0,   421,     0,
1726        0,     0,     0,     0,     0,     0,     0,     0,   480,   423,
1727      424,   425,   426,     0,     0,     0,     0,     0,     0,     0,
1728        0,     0,   324,   325,   326,   327,   328,   329,     1,     2,
1729        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1730       13,    14,    15,    16,    17,    18,    19,     0,     0,     0,
1731        0,     0,     0,     0,     0,     0,     0,     0,    20,    21,
1732       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1733       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1734       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1735       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1736       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1737       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1738       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1739       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1740      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1741      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1742      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1743      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1744      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1745      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1746      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1747      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1748      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1749      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1750      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1751      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1752      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
1753      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
1754      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
1755      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1756      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
1757      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
1758      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
1759      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
1760      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
1761      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
1762        0,     0,   322,     0,     0,     0,     0,     0,     0,     0,
1763        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1764        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1765        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1766        0,     0,     0,     0,     0,     0,   323,     0,     0,     0,
1767        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1768      324,   325,   326,   327,   328,   329,     1,     2,     3,     4,
1769        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1770       15,    16,    17,    18,    19,     0,     0,     0,     0,     0,
1771        0,     0,     0,     0,     0,     0,    20,    21,    22,    23,
1772       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1773       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1774       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1775       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1776       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1777       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1778       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1779       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1780      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1781      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1782      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1783      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1784      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1785      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1786      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1787      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1788      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1789      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1790      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1791      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1792      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
1793      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1794      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1795      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
1796      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
1797      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
1798      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
1799      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
1800      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
1801      314,   315,   316,   317,   318,   319,   320,   321,     0,   406,
1802      322,   407,   408,   409,   410,   411,   412,   413,   414,   415,
1803      416,   417,   418,     0,     0,   419,   420,     0,     0,     0,
1804        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1805        0,     0,     0,     0,   421,     0,     0,     0,     0,     0,
1806        0,     0,     0,     0,     0,   423,   424,   425,   426,     0,
1807        0,     0,     0,     0,     0,     0,     0,     0,   324,   325,
1808      326,   327,   328,     1,     2,     3,     4,     5,     6,     7,
1809        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1810       18,    19,     0,     0,     0,     0,     0,     0,     0,     0,
1811        0,     0,     0,    20,    21,    22,    23,    24,    25,    26,
1812       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1813       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1814       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1815       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1816       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1817       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1818       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1819       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1820      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1821      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1822      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1823      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1824      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1825      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
1826      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1827      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1828      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1829      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1830      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
1831      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
1832      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
1833      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
1834      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
1835      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
1836      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
1837      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
1838      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
1839      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
1840      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
1841      317,   318,   319,   320,   321,     0,   373,   322,     0,     0,
1842        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1843        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1844        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1845        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1846        0,   374,     0,     0,     0,     0,     0,     0,     0,     0,
1847        0,     0,     0,     0,     0,   324,   325,   326,   327,   328,
1848        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
1849       11,    12,    13,    14,    15,    16,    17,    18,    19,     0,
1850        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1851       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
1852       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1853       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1854       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1855       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1856       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1857       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1858       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1859      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1860      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1861      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1862      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1863      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1864      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1865      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1866      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1867      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1868      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1869      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1870      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1871      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1872      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1873      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1874      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
1875      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
1876      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1877      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
1878      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
1879      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
1880      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
1881      320,   321,     0,     0,   322,     0,     0,     0,     0,     0,
1882        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1883        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1884        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1885        0,     0,     0,   561,     0,     0,     0,     0,     0,     0,
1886        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1887        0,     0,   324,   325,   326,   327,   328,     1,     2,     3,
1888        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1889       14,    15,    16,    17,    18,    19,     0,     0,     0,     0,
1890        0,     0,     0,     0,     0,     0,     0,    20,    21,    22,
1891       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1892       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1893       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1894       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1895       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1896       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1897       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1898       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1899      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1900      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1901      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1902      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1903      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1904      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
1905      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1906      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1907      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1908      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1909      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1910      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
1911      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
1912      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
1913      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1914      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
1915      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
1916      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
1917      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
1918      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
1919      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
1920      313,   314,   315,   316,   317,   318,   319,   320,   321,     0,
1921        0,   322,     0,     0,     0,     0,     0,     0,     0,     0,
1922        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1923        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1924        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1925      630,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1926        0,     0,     0,     0,     0,     0,     0,     0,     0,   324,
1927      325,   326,   327,   328,     1,     2,     3,     4,     5,     6,
1928        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1929       17,    18,    19,     0,     0,     0,     0,     0,     0,     0,
1930        0,     0,     0,     0,    20,    21,    22,    23,    24,    25,
1931       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1932       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1933       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1934       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1935       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1936       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1937       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1938       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1939      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1940      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1941      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1942      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1943      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1944      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1945      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1946      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1947      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1948      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1949      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1950      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1951      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1952      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1953      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1954      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
1955      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
1956      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
1957      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
1958      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
1959      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
1960      316,   317,   318,   319,   320,   321,     0,     0,   322,     0,
1961        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1962        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1963        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1964        0,     0,     0,     0,     0,     0,     0,   651,     0,     0,
1965        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1966        0,     0,     0,     0,     0,     0,   324,   325,   326,   327,
1967      328,     1,     2,     3,     4,     5,     6,     7,     8,     9,
1968       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1969        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1970        0,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1971       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1972       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1973       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1974       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1975       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1976       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1977       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1978       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1979      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1980      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1981      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1982      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1983      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1984      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1985      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1986      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1987      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1988      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1989      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1990      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
1991      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
1992      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
1993      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
1994      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
1995      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
1996      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
1997      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
1998      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
1999      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
2000      319,   320,   321,     0,     0,   322,     0,     0,     0,     0,
2001        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2002        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2003        0,     0,     0,     0,     0,     0,     0,     0,     0,     3,
2004        4,     5,     6,     7,     0,     9,    10,    11,    12,    13,
2005       14,    15,    16,    17,    18,    19,     0,     0,     0,     0,
2006        0,     0,     0,   324,   325,   326,   327,   328,    21,    22,
2007       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
2008       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2009       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2010       53,    54,    55,    56,    57,    58,    59,     0,     0,     0,
2011        0,     0,     0,     0,     0,     0,    69,     0,     0,     0,
2012        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2013       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2014       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2015      103,   104,   105,   106,     0,     0,     0,     0,     0,     0,
2016        0,     0,     0,   116,   117,   118,   119,   120,   121,   122,
2017      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2018      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2019      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2020      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2021      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2022      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2023      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
2024      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2025      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2026      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
2027      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
2028      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
2029      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
2030      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
2031      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
2032      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
2033      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
2034      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
2035      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
2036      313,   314,   315,   316,   317,   318,   319,   320,   321,     0,
2037      406,   322,   407,   408,   409,   410,   411,   412,   413,   414,
2038      415,   416,   417,   418,     0,     0,   419,   420,     0,     0,
2039        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2040        0,     0,     0,     0,     0,   421,     0,     0,     0,   507,
2041      670,     0,     0,     0,     0,     0,   423,   424,   425,   426,
2042        3,     4,     5,     6,     7,     0,     9,    10,    11,    12,
2043       13,    14,    15,    16,    17,    18,    19,     0,     0,     0,
2044        0,     0,     0,     0,     0,     0,     0,     0,     0,    21,
2045       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2046       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2047       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2048       52,    53,    54,    55,    56,    57,    58,    59,     0,     0,
2049        0,     0,     0,     0,     0,     0,     0,    69,     0,     0,
2050        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2051        0,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2052       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2053      102,   103,   104,   105,   106,     0,     0,     0,     0,     0,
2054        0,     0,     0,     0,   116,   117,   118,   119,   120,   121,
2055      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2056      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2057      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2058      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2059      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2060      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2061      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2062      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2063      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2064      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2065      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
2066      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
2067      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
2068      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2069      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2070      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
2071      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
2072      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
2073      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
2074      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
2075        0,   406,   322,   407,   408,   409,   410,   411,   412,   413,
2076      414,   415,   416,   417,   418,     0,     0,   419,   420,     0,
2077        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2078        0,     0,     0,     0,     0,     0,   421,     0,     0,   422,
2079        0,     0,     0,     0,     0,     0,     0,   423,   424,   425,
2080      426,     3,     4,     5,     6,     7,     0,     9,    10,    11,
2081       12,    13,    14,    15,    16,    17,    18,    19,     0,     0,
2082        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2083       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2084       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2085       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2086       51,    52,    53,    54,    55,    56,    57,    58,    59,     0,
2087        0,     0,     0,     0,     0,     0,     0,     0,    69,     0,
2088        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2089        0,     0,    83,    84,    85,    86,    87,    88,    89,    90,
2090       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2091      101,   102,   103,   104,   105,   106,     0,     0,     0,     0,
2092        0,     0,     0,     0,     0,   116,   117,   118,   119,   120,
2093      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2094      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2095      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2096      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2097      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2098      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2099      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2100      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2101      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2102      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2103      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
2104      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
2105      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
2106      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2107      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
2108      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
2109      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
2110      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
2111      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
2112      311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
2113      321,     0,   406,   322,   407,   408,   409,   410,   411,   412,
2114      413,   414,   415,   416,   417,   418,     0,     0,   419,   420,
2115        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2116        0,     0,     0,     0,     0,     0,     0,   421,     0,     0,
2117        0,   507,     0,     0,     0,     0,     0,     0,   423,   424,
2118      425,   426,     3,     4,     5,     6,     7,     0,     9,    10,
2119       11,    12,    13,    14,    15,    16,    17,    18,    19,     0,
2120        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2121        0,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2122       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2123       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2124       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2125        0,     0,     0,     0,     0,     0,     0,     0,     0,    69,
2126        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2127        0,     0,     0,    83,    84,    85,    86,    87,    88,    89,
2128       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2129      100,   101,   102,   103,   104,   105,   106,     0,     0,     0,
2130        0,     0,     0,     0,     0,     0,   116,   117,   118,   119,
2131      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2132      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2133      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2134      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2135      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2136      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2137      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2138      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2139      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2140      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2141      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
2142      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
2143      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2144      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2145      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
2146      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
2147      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
2148      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
2149      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
2150      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
2151      320,   321,     0,   406,   322,   407,   408,   409,   410,   411,
2152      412,   413,   414,   415,   416,   417,   418,     0,     0,   419,
2153      420,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2154        0,     0,     0,     0,     0,     0,     0,     0,   421,     0,
2155        0,   550,     0,     0,     0,     0,     0,     0,     0,   423,
2156      424,   425,   426,     3,     4,     5,     6,     7,     0,     9,
2157       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2158        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2159        0,     0,    21,    22,    23,    24,    25,    26,    27,    28,
2160       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2161       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2162       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2163       59,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2164       69,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2165        0,     0,     0,     0,    83,    84,    85,    86,    87,    88,
2166       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2167       99,   100,   101,   102,   103,   104,   105,   106,     0,     0,
2168        0,     0,     0,     0,     0,     0,     0,   116,   117,   118,
2169      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
2170      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2171      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2172      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2173      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2174      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2175      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2176      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
2177      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
2178      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
2179      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
2180      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
2181      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
2182      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
2183      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
2184      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
2185      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
2186      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
2187      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
2188      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
2189      319,   320,   321,     0,   406,   322,   407,   408,   409,   410,
2190      411,   412,   413,   414,   415,   416,   417,   418,     0,     0,
2191      419,   420,     0,     0,     0,     0,     0,     0,     0,     0,
2192        0,     0,     0,     0,     0,     0,     0,     0,     0,   421,
2193        0,     0,     0,     0,     0,     0,     0,     0,     0,   569,
2194      423,   424,   425,   426,     3,     4,     5,     6,     7,     0,
2195        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2196       19,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2197        0,     0,     0,    21,    22,    23,    24,    25,    26,    27,
2198       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2199       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2200       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2201       58,    59,     0,     0,     0,     0,     0,     0,     0,     0,
2202        0,    69,     0,     0,     0,     0,     0,     0,     0,     0,
2203        0,     0,     0,     0,     0,    83,    84,    85,    86,    87,
2204       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2205       98,    99,   100,   101,   102,   103,   104,   105,   106,     0,
2206        0,     0,     0,     0,     0,     0,     0,     0,   116,   117,
2207      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
2208      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2209      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2210      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2211      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2212      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2213      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
2214      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
2215      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
2216      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
2217      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
2218      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
2219      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
2220      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2221      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
2222      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2223      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
2224      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
2225      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
2226      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
2227      318,   319,   320,   321,     0,   406,   322,   407,   408,   409,
2228      410,   411,   412,   413,   414,   415,   416,   417,   418,     0,
2229        0,   419,   420,     0,     0,     0,     0,     0,     0,     0,
2230        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2231      421,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2232        0,   423,   424,   425,   426,     3,     4,     5,     6,     7,
2233        0,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2234       18,    19,     0,     0,     0,     0,     0,     0,     0,     0,
2235        0,     0,     0,     0,    21,    22,    23,    24,    25,    26,
2236       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2237       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2238       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2239       57,    58,    59,     0,     0,     0,     0,     0,     0,     0,
2240        0,     0,    69,     0,     0,     0,     0,     0,     0,     0,
2241        0,     0,     0,     0,     0,     0,    83,    84,    85,    86,
2242       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2243       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2244        0,     0,     0,     0,     0,     0,     0,     0,     0,   116,
2245      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2246      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2247      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2248      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2249      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2250      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2251      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2252      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2253      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2254      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2255      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
2256      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
2257      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
2258      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2259      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2260      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
2261      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
2262      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
2263      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2264      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
2265      317,   318,   319,   320,   525,     0,   406,   322,   407,   408,
2266      409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
2267        0,     0,   419,   420,     0,     0,     0,     0,     0,     0,
2268        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2269        0,   421,     0,     0,     0,     0,     0,     0,     0,     0,
2270        0,     0,   423,   424,   425,   426,     3,     4,     5,     6,
2271        7,     0,     9,    10,    11,    12,    13,    14,    15,    16,
2272       17,    18,    19,     0,     0,     0,     0,     0,     0,     0,
2273        0,     0,     0,     0,     0,    21,    22,    23,    24,    25,
2274       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
2275       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2276       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2277       56,    57,    58,    59,     0,     0,     0,     0,     0,     0,
2278        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2279        0,     0,     0,     0,     0,     0,     0,    83,    84,    85,
2280       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
2281       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
2282      106,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2283      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
2284      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2285      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2286      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2287      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2288      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2289      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
2290      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
2291      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
2292      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
2293      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
2294      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
2295      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
2296      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
2297      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
2298      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2299      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
2300      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
2301      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2302      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
2303      316,   317,   318,   319,   320,   321,     0,     0,   322
2304 };
2305
2306 static const yytype_int16 yycheck[] =
2307 {
2308        0,     0,     0,   335,   343,    24,     0,    26,    27,   400,
2309      377,    30,    81,   493,   359,   505,   577,   507,   462,   459,
2310      510,   336,   336,   354,   355,   359,   381,   372,   641,   368,
2311      352,   353,   364,   373,   371,   679,   373,   372,   374,   683,
2312      373,   381,   378,   380,   435,   421,   659,   691,   381,   371,
2313      373,   373,   397,   398,   371,   377,   388,   380,   389,   390,
2314      394,   375,   373,   373,   532,   533,   381,   372,   372,   380,
2315      380,   511,   375,   378,   378,   378,   372,   372,   381,   378,
2316      377,   372,   378,   378,   372,   565,   453,   378,   372,   456,
2317      378,   383,   378,   385,   378,   381,   472,   336,   474,   536,
2318      537,   538,   539,   378,   378,   371,   381,   381,   598,   376,
2319      378,   378,   556,   381,   505,   378,   507,   378,   381,   510,
2320      381,   460,   419,   420,   397,   398,   399,   459,   350,   351,
2321      462,   356,   357,   524,   695,   386,   387,   388,   378,   379,
2322      373,   438,   378,   379,   520,   361,   362,   363,   364,   365,
2323      366,   367,   368,   369,   370,   336,   453,   375,   602,   456,
2324      650,   534,   535,   375,   380,   645,   540,   541,   336,   336,
2325      373,   380,   336,   381,   372,   371,   393,   392,   391,   511,
2326      358,   360,   374,   336,   336,   371,   381,   381,   371,   371,
2327      381,   567,   379,   373,   371,   571,   371,   371,   589,   590,
2328      376,   336,   336,   372,   374,   336,   696,   598,   374,   335,
2329      371,   371,   336,   558,   372,   378,   375,   374,   372,   381,
2330      376,    25,   372,   542,   556,   705,   375,   375,   544,   380,
2331      376,   543,   529,   530,   531,   532,   533,   534,   535,   536,
2332      537,   538,   539,   540,   541,   542,   543,   544,   545,   546,
2333      547,   381,   628,   546,   666,   545,   368,   364,   547,   650,
2334      368,   458,   329,   557,   633,   641,   636,   336,   678,   691,
2335      602,   692,   362,   636,   503,   659,   503,   503,   351,   668,
2336       -1,   672,    -1,   659,    -1,    -1,    -1,    -1,    -1,    -1,
2337       -1,    -1,    -1,    -1,    -1,    -1,    -1,   673,    -1,   666,
2338       -1,    -1,    -1,    -1,    -1,   696,    -1,    -1,    -1,   641,
2339       -1,    -1,    -1,    -1,   690,    -1,   335,    -1,    -1,    -1,
2340       -1,    -1,    -1,    -1,    -1,   664,    -1,   659,    -1,    -1,
2341       -1,    -1,    -1,    -1,    -1,   335,    -1,    -1,    -1,    -1,
2342       -1,   335,    -1,   343,    -1,    -1,    -1,    -1,    -1,   343,
2343       -1,   351,   351,   351,    -1,    -1,    -1,   351,   358,    -1,
2344       -1,    -1,    -1,    -1,   364,    -1,    -1,    -1,   368,   666,
2345      364,    -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,
2346       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   388,    -1,
2347       -1,    -1,   392,    -1,   388,    -1,    -1,    -1,   392,    -1,
2348       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2349       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2350       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2351       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2352       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2353       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   459,
2354      460,    -1,   462,    -1,    -1,   459,   460,    -1,   462,    -1,
2355       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2356       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2357       -1,    -1,    -1,   493,    -1,    -1,    -1,    -1,    -1,   493,
2358       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2359       -1,   511,    -1,    -1,    -1,    -1,    -1,   511,    -1,    -1,
2360       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2361       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2362       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2363       -1,    -1,    -1,    -1,    -1,    -1,   556,    -1,    -1,    -1,
2364       -1,    -1,   556,    -1,    -1,   565,    -1,    -1,    -1,    -1,
2365       -1,   565,    -1,    -1,    -1,    -1,    -1,   577,    -1,    -1,
2366       -1,    -1,    -1,   577,    -1,    -1,    -1,    -1,    -1,    -1,
2367       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2368       -1,    -1,   602,    -1,    -1,    -1,    -1,    -1,   602,    -1,
2369       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2370       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2371       -1,    -1,    -1,    -1,    -1,    -1,   636,    -1,    -1,    -1,
2372       -1,   641,   636,    -1,    -1,   645,    -1,   641,    -1,    -1,
2373       -1,   645,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   659,
2374       -1,    -1,    -1,    -1,   664,   659,    -1,    -1,    -1,    -1,
2375      664,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   679,
2376       -1,    -1,    -1,   683,    -1,   679,    -1,    -1,    -1,   683,
2377       -1,   691,    -1,    -1,    -1,   695,    -1,   691,    -1,    -1,
2378       -1,   695,    -1,    -1,    -1,   705,    -1,    -1,    -1,     0,
2379       -1,   705,     3,     4,     5,     6,     7,     8,     9,    10,
2380       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2381       21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2382       -1,    -1,    33,    34,    35,    36,    37,    38,    39,    40,
2383       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2384       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2385       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2386       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2387       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2388       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2389      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2390      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2391      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2392      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2393      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2394      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2395      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2396      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2397      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2398      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2399      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2400      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2401      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
2402      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
2403      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
2404      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2405      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
2406      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
2407      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
2408      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
2409      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
2410      311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
2411      321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
2412      331,   332,   333,   334,    -1,    -1,   337,    -1,    -1,    -1,
2413       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2414       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2415       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2416       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2417      381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2418       -1,    -1,    -1,    -1,   395,   396,   397,   398,   399,   400,
2419        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2420       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2421       23,    24,    -1,    26,    27,    28,    29,    30,    31,    32,
2422       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2423       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2424       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2425       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2426       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2427       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2428       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2429      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2430      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2431      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2432      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2433      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2434      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2435      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2436      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2437      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
2438      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2439      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2440      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
2441      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
2442      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
2443      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
2444      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
2445      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
2446      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
2447      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
2448      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
2449      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
2450      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
2451      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
2452      333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
2453      343,   344,   345,   346,   347,   348,   349,    -1,    -1,   352,
2454      353,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2455       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   371,    -1,
2456      373,    -1,   375,   376,    -1,    -1,    -1,    -1,   381,   382,
2457      383,   384,   385,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2458       -1,    -1,   395,   396,   397,   398,   399,   400,     3,     4,
2459        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2460       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2461       -1,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2462       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2463       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2464       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2465       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2466       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2467       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2468       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2469      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2470      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2471      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2472      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2473      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2474      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2475      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2476      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2477      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2478      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2479      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2480      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2481      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2482      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2483      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2484      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2485      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2486      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2487      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
2488      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
2489      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
2490      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
2491      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
2492      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
2493      345,   346,   347,   348,   349,    -1,    -1,   352,   353,    -1,
2494       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2495       -1,    -1,    -1,    -1,    -1,    -1,   371,    -1,   373,    -1,
2496      375,   376,    -1,    -1,    -1,    -1,   381,   382,   383,   384,
2497      385,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2498      395,   396,   397,   398,   399,   400,     3,     4,     5,     6,
2499        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2500       17,    18,    19,    20,    21,    22,    23,    24,    -1,    26,
2501       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2502       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2503       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2504       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2505       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2506       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2507       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2508       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2509      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2510      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2511      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2512      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2513      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2514      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2515      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2516      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2517      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2518      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2519      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2520      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
2521      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
2522      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
2523      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2524      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2525      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
2526      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
2527      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
2528      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2529      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
2530      317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
2531      327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
2532      337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
2533      347,   348,   349,    -1,    -1,   352,   353,    -1,    -1,    -1,
2534       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2535       -1,    -1,    -1,    -1,   371,    -1,   373,    -1,   375,    -1,
2536       -1,    -1,    -1,    -1,   381,   382,   383,   384,   385,    -1,
2537       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   395,   396,
2538      397,   398,   399,   400,     3,     4,     5,     6,     7,     8,
2539        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2540       19,    20,    21,    22,    23,    24,    -1,    26,    27,    28,
2541       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2542       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2543       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2544       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2545       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2546       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2547       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2548       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2549      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2550      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
2551      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2552      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2553      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2554      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2555      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2556      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2557      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
2558      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
2559      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
2560      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
2561      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
2562      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
2563      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
2564      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
2565      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
2566      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
2567      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
2568      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
2569      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
2570      319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
2571      329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
2572      339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
2573      349,    -1,    -1,   352,   353,    -1,    -1,    -1,    -1,    -1,
2574       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2575       -1,    -1,   371,    -1,   373,    -1,   375,    -1,    -1,    -1,
2576       -1,    -1,   381,   382,   383,   384,   385,    -1,    -1,    -1,
2577       -1,    -1,    -1,    -1,    -1,    -1,   395,   396,   397,   398,
2578      399,   400,     3,     4,     5,     6,     7,     8,     9,    10,
2579       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2580       21,    22,    23,    24,    -1,    26,    27,    28,    29,    30,
2581       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2582       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2583       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2584       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2585       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2586       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2587       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2588      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2589      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2590      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2591      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2592      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2593      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2594      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2595      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2596      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2597      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2598      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2599      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2600      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
2601      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
2602      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
2603      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2604      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
2605      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
2606      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
2607      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
2608      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
2609      311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
2610      321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
2611      331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
2612      341,   342,   343,   344,   345,   346,   347,   348,   349,    -1,
2613       -1,   352,   353,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2614       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2615      371,    -1,   373,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2616      381,   382,   383,   384,   385,    -1,    -1,    -1,    -1,    -1,
2617       -1,    -1,    -1,    -1,   395,   396,   397,   398,   399,   400,
2618        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2619       13,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
2620       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2621       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2622       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2623       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2624       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2625       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2626       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2627       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2628      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2629      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2630      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2631      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2632      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2633      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2634      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2635      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2636      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
2637      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2638      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2639      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
2640      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
2641      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
2642      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
2643      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
2644      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
2645      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
2646      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
2647      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
2648      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
2649      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
2650      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
2651      333,   334,    -1,   336,   337,   338,   339,   340,   341,   342,
2652      343,   344,   345,   346,   347,   348,   349,    -1,    -1,   352,
2653      353,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2654       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   371,    -1,
2655       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,   382,
2656      383,   384,   385,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2657       -1,    -1,   395,   396,   397,   398,   399,   400,     3,     4,
2658        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2659       15,    16,    17,    18,    19,    20,    21,    -1,    -1,    -1,
2660       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
2661       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2662       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2663       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2664       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2665       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2666       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2667       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2668      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2669      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2670      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2671      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2672      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2673      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2674      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2675      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2676      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2677      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2678      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2679      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2680      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2681      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2682      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2683      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2684      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2685      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2686      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
2687      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
2688      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
2689      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
2690      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
2691       -1,    -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2692       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2693       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2694       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2695       -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,
2696       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2697      395,   396,   397,   398,   399,   400,     3,     4,     5,     6,
2698        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2699       17,    18,    19,    20,    21,    -1,    -1,    -1,    -1,    -1,
2700       -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    35,    36,
2701       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2702       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2703       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2704       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2705       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2706       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2707       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2708      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2709      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2710      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2711      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2712      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2713      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2714      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2715      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2716      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2717      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2718      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2719      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
2720      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
2721      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
2722      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2723      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2724      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
2725      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
2726      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
2727      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2728      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
2729      317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
2730      327,   328,   329,   330,   331,   332,   333,   334,    -1,   336,
2731      337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
2732      347,   348,   349,    -1,    -1,   352,   353,    -1,    -1,    -1,
2733       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2734       -1,    -1,    -1,    -1,   371,    -1,    -1,    -1,    -1,    -1,
2735       -1,    -1,    -1,    -1,    -1,   382,   383,   384,   385,    -1,
2736       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   395,   396,
2737      397,   398,   399,     3,     4,     5,     6,     7,     8,     9,
2738       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2739       20,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2740       -1,    -1,    -1,    33,    34,    35,    36,    37,    38,    39,
2741       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2742       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2743       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2744       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2745       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2746       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2747      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
2748      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
2749      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2750      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2751      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2752      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2753      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2754      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2755      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2756      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2757      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2758      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2759      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
2760      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
2761      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2762      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2763      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
2764      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
2765      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
2766      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
2767      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
2768      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
2769      320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
2770      330,   331,   332,   333,   334,    -1,   336,   337,    -1,    -1,
2771       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2772       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2773       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2774       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2775       -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2776       -1,    -1,    -1,    -1,    -1,   395,   396,   397,   398,   399,
2777        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2778       13,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
2779       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2780       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2781       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2782       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2783       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2784       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2785       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2786       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2787      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2788      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2789      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2790      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2791      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2792      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2793      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2794      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2795      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
2796      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2797      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2798      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
2799      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
2800      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
2801      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
2802      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
2803      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
2804      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
2805      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
2806      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
2807      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
2808      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
2809      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
2810      333,   334,    -1,    -1,   337,    -1,    -1,    -1,    -1,    -1,
2811       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2812       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2813       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2814       -1,    -1,    -1,   376,    -1,    -1,    -1,    -1,    -1,    -1,
2815       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2816       -1,    -1,   395,   396,   397,   398,   399,     3,     4,     5,
2817        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
2818       16,    17,    18,    19,    20,    21,    -1,    -1,    -1,    -1,
2819       -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    35,
2820       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2821       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2822       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
2823       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
2824       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
2825       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
2826       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
2827      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
2828      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
2829      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2830      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2831      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2832      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2833      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2834      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
2835      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
2836      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
2837      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
2838      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
2839      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
2840      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
2841      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
2842      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
2843      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2844      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
2845      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
2846      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2847      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
2848      316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
2849      326,   327,   328,   329,   330,   331,   332,   333,   334,    -1,
2850       -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2851       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2852       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2853       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2854      376,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2855       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   395,
2856      396,   397,   398,   399,     3,     4,     5,     6,     7,     8,
2857        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2858       19,    20,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2859       -1,    -1,    -1,    -1,    33,    34,    35,    36,    37,    38,
2860       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2861       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2862       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2863       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2864       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2865       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2866       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2867      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2868      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
2869      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2870      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2871      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2872      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2873      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2874      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2875      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
2876      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
2877      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
2878      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
2879      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
2880      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
2881      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
2882      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
2883      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
2884      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
2885      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
2886      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
2887      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
2888      319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
2889      329,   330,   331,   332,   333,   334,    -1,    -1,   337,    -1,
2890       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2891       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2892       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2893       -1,    -1,    -1,    -1,    -1,    -1,    -1,   376,    -1,    -1,
2894       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2895       -1,    -1,    -1,    -1,    -1,    -1,   395,   396,   397,   398,
2896      399,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2897       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2898       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2899       -1,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2900       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2901       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2902       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2903       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2904       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2905       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2906      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2907      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2908      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2909      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2910      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2911      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2912      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2913      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2914      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2915      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2916      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2917      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2918      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
2919      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
2920      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
2921      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2922      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2923      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
2924      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
2925      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
2926      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
2927      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
2928      322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
2929      332,   333,   334,    -1,    -1,   337,    -1,    -1,    -1,    -1,
2930       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2931       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2932       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,
2933        6,     7,     8,     9,    -1,    11,    12,    13,    14,    15,
2934       16,    17,    18,    19,    20,    21,    -1,    -1,    -1,    -1,
2935       -1,    -1,    -1,   395,   396,   397,   398,   399,    34,    35,
2936       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2937       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2938       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
2939       66,    67,    68,    69,    70,    71,    72,    -1,    -1,    -1,
2940       -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    -1,
2941       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2942       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
2943      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
2944      116,   117,   118,   119,    -1,    -1,    -1,    -1,    -1,    -1,
2945       -1,    -1,    -1,   129,   130,   131,   132,   133,   134,   135,
2946      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2947      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2948      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2949      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2950      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
2951      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
2952      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
2953      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
2954      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
2955      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
2956      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
2957      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
2958      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
2959      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2960      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
2961      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
2962      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2963      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
2964      316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
2965      326,   327,   328,   329,   330,   331,   332,   333,   334,    -1,
2966      336,   337,   338,   339,   340,   341,   342,   343,   344,   345,
2967      346,   347,   348,   349,    -1,    -1,   352,   353,    -1,    -1,
2968       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2969       -1,    -1,    -1,    -1,    -1,   371,    -1,    -1,    -1,   375,
2970      376,    -1,    -1,    -1,    -1,    -1,   382,   383,   384,   385,
2971        5,     6,     7,     8,     9,    -1,    11,    12,    13,    14,
2972       15,    16,    17,    18,    19,    20,    21,    -1,    -1,    -1,
2973       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    34,
2974       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2975       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2976       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2977       65,    66,    67,    68,    69,    70,    71,    72,    -1,    -1,
2978       -1,    -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,
2979       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2980       -1,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2981      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2982      115,   116,   117,   118,   119,    -1,    -1,    -1,    -1,    -1,
2983       -1,    -1,    -1,    -1,   129,   130,   131,   132,   133,   134,
2984      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2985      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2986      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2987      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2988      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2989      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2990      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2991      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2992      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2993      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2994      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2995      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2996      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2997      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2998      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2999      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
3000      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
3001      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
3002      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
3003      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
3004       -1,   336,   337,   338,   339,   340,   341,   342,   343,   344,
3005      345,   346,   347,   348,   349,    -1,    -1,   352,   353,    -1,
3006       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3007       -1,    -1,    -1,    -1,    -1,    -1,   371,    -1,    -1,   374,
3008       -1,    -1,    -1,    -1,    -1,    -1,    -1,   382,   383,   384,
3009      385,     5,     6,     7,     8,     9,    -1,    11,    12,    13,
3010       14,    15,    16,    17,    18,    19,    20,    21,    -1,    -1,
3011       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3012       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3013       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
3014       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
3015       64,    65,    66,    67,    68,    69,    70,    71,    72,    -1,
3016       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,
3017       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3018       -1,    -1,    96,    97,    98,    99,   100,   101,   102,   103,
3019      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
3020      114,   115,   116,   117,   118,   119,    -1,    -1,    -1,    -1,
3021       -1,    -1,    -1,    -1,    -1,   129,   130,   131,   132,   133,
3022      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
3023      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
3024      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
3025      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
3026      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
3027      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
3028      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
3029      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
3030      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
3031      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
3032      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
3033      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
3034      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
3035      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
3036      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
3037      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
3038      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
3039      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
3040      314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
3041      324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
3042      334,    -1,   336,   337,   338,   339,   340,   341,   342,   343,
3043      344,   345,   346,   347,   348,   349,    -1,    -1,   352,   353,
3044       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3045       -1,    -1,    -1,    -1,    -1,    -1,    -1,   371,    -1,    -1,
3046       -1,   375,    -1,    -1,    -1,    -1,    -1,    -1,   382,   383,
3047      384,   385,     5,     6,     7,     8,     9,    -1,    11,    12,
3048       13,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
3049       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3050       -1,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3051       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
3052       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
3053       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3054       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    82,
3055       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3056       -1,    -1,    -1,    96,    97,    98,    99,   100,   101,   102,
3057      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
3058      113,   114,   115,   116,   117,   118,   119,    -1,    -1,    -1,
3059       -1,    -1,    -1,    -1,    -1,    -1,   129,   130,   131,   132,
3060      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
3061      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
3062      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
3063      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
3064      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
3065      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
3066      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
3067      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
3068      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
3069      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
3070      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
3071      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
3072      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
3073      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
3074      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
3075      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
3076      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
3077      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
3078      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
3079      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
3080      333,   334,    -1,   336,   337,   338,   339,   340,   341,   342,
3081      343,   344,   345,   346,   347,   348,   349,    -1,    -1,   352,
3082      353,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3083       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   371,    -1,
3084       -1,   374,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   382,
3085      383,   384,   385,     5,     6,     7,     8,     9,    -1,    11,
3086       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
3087       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3088       -1,    -1,    34,    35,    36,    37,    38,    39,    40,    41,
3089       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
3090       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
3091       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
3092       72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3093       82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3094       -1,    -1,    -1,    -1,    96,    97,    98,    99,   100,   101,
3095      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
3096      112,   113,   114,   115,   116,   117,   118,   119,    -1,    -1,
3097       -1,    -1,    -1,    -1,    -1,    -1,    -1,   129,   130,   131,
3098      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
3099      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
3100      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
3101      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
3102      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
3103      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
3104      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
3105      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
3106      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
3107      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
3108      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
3109      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
3110      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
3111      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
3112      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
3113      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
3114      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
3115      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
3116      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
3117      322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
3118      332,   333,   334,    -1,   336,   337,   338,   339,   340,   341,
3119      342,   343,   344,   345,   346,   347,   348,   349,    -1,    -1,
3120      352,   353,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3121       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   371,
3122       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,
3123      382,   383,   384,   385,     5,     6,     7,     8,     9,    -1,
3124       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
3125       21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3126       -1,    -1,    -1,    34,    35,    36,    37,    38,    39,    40,
3127       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
3128       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
3129       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
3130       71,    72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3131       -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3132       -1,    -1,    -1,    -1,    -1,    96,    97,    98,    99,   100,
3133      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
3134      111,   112,   113,   114,   115,   116,   117,   118,   119,    -1,
3135       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   129,   130,
3136      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
3137      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
3138      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
3139      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
3140      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
3141      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
3142      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
3143      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
3144      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
3145      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
3146      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
3147      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
3148      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
3149      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
3150      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
3151      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
3152      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
3153      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
3154      311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
3155      321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
3156      331,   332,   333,   334,    -1,   336,   337,   338,   339,   340,
3157      341,   342,   343,   344,   345,   346,   347,   348,   349,    -1,
3158       -1,   352,   353,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3159       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3160      371,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3161       -1,   382,   383,   384,   385,     5,     6,     7,     8,     9,
3162       -1,    11,    12,    13,    14,    15,    16,    17,    18,    19,
3163       20,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3164       -1,    -1,    -1,    -1,    34,    35,    36,    37,    38,    39,
3165       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3166       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
3167       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
3168       70,    71,    72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3169       -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3170       -1,    -1,    -1,    -1,    -1,    -1,    96,    97,    98,    99,
3171      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
3172      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
3173       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   129,
3174      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
3175      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
3176      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
3177      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
3178      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
3179      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
3180      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
3181      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
3182      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
3183      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
3184      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
3185      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
3186      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
3187      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
3188      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
3189      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
3190      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
3191      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
3192      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
3193      320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
3194      330,   331,   332,   333,   334,    -1,   336,   337,   338,   339,
3195      340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
3196       -1,    -1,   352,   353,    -1,    -1,    -1,    -1,    -1,    -1,
3197       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3198       -1,   371,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3199       -1,    -1,   382,   383,   384,   385,     5,     6,     7,     8,
3200        9,    -1,    11,    12,    13,    14,    15,    16,    17,    18,
3201       19,    20,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3202       -1,    -1,    -1,    -1,    -1,    34,    35,    36,    37,    38,
3203       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
3204       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
3205       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
3206       69,    70,    71,    72,    -1,    -1,    -1,    -1,    -1,    -1,
3207       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3208       -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,    97,    98,
3209       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
3210      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
3211      119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3212      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
3213      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
3214      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
3215      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
3216      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
3217      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
3218      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
3219      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
3220      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
3221      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
3222      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
3223      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
3224      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
3225      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
3226      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
3227      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
3228      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
3229      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
3230      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
3231      319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
3232      329,   330,   331,   332,   333,   334,    -1,    -1,   337
3233 };
3234
3235   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
3236      symbol of state STATE-NUM.  */
3237 static const yytype_uint16 yystos[] =
3238 {
3239        0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
3240       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
3241       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3242       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
3243       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
3244       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3245       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
3246       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
3247       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
3248      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
3249      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
3250      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
3251      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
3252      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
3253      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
3254      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
3255      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
3256      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
3257      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
3258      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
3259      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
3260      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
3261      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
3262      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
3263      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
3264      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
3265      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
3266      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
3267      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
3268      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
3269      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
3270      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
3271      333,   334,   337,   381,   395,   396,   397,   398,   399,   400,
3272      435,   436,   439,   440,   441,   442,   446,   447,   448,   449,
3273      450,   451,   454,   455,   456,   457,   458,   460,   462,   463,
3274      464,   504,   505,   506,   371,   371,   336,   375,   463,   336,
3275      381,   381,   507,   372,   378,   443,   444,   445,   455,   460,
3276      378,   381,   336,   336,   381,   456,   460,   373,   461,     0,
3277      505,   336,   459,    81,   336,   452,   453,   375,   466,   460,
3278      381,   461,   375,   483,   444,   443,   445,   336,   336,   371,
3279      380,   461,   375,   378,   381,   438,   336,   338,   339,   340,
3280      341,   342,   343,   344,   345,   346,   347,   348,   349,   352,
3281      353,   371,   374,   382,   383,   384,   385,   405,   406,   407,
3282      409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
3283      419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
3284      429,   458,   460,   373,   372,   378,   380,   372,   378,   465,
3285      455,   460,   467,   468,   381,   381,    22,    23,    24,    26,
3286       27,    28,    29,    30,    31,    32,   335,   373,   375,   376,
3287      381,   416,   429,   431,   433,   435,   439,   458,   460,   473,
3288      474,   475,   476,   484,   485,   486,   487,   490,   491,   494,
3289      495,   496,   503,   508,   461,   380,   461,   375,   431,   471,
3290      380,   437,   336,   378,   381,   416,   416,   433,   352,   353,
3291      373,   377,   372,   372,   378,   334,   431,   371,   416,   386,
3292      387,   388,   383,   385,   350,   351,   354,   355,   389,   390,
3293      356,   357,   393,   392,   391,   358,   360,   359,   394,   374,
3294      374,   429,   336,   429,   434,   453,   467,   460,   336,   469,
3295      470,   376,   468,   381,   381,   498,   371,   371,   381,   381,
3296      433,   371,   433,   379,   371,   373,   376,   477,   361,   362,
3297      363,   364,   365,   366,   367,   368,   369,   370,   380,   432,
3298      378,   381,   376,   474,   487,   491,   496,   471,   380,   471,
3299      472,   471,   467,   336,   372,   408,   433,   336,   431,   416,
3300      416,   416,   418,   418,   419,   419,   420,   420,   420,   420,
3301      421,   421,   422,   423,   424,   425,   426,   427,   430,   374,
3302      376,   469,   461,   378,   381,   474,   499,   433,   381,   433,
3303      379,   497,   336,   509,   510,   484,   431,   431,   471,   376,
3304      378,   376,   374,   433,   381,   470,   335,   473,   485,   500,
3305      372,   372,   433,   448,   455,   489,   371,   374,   378,   478,
3306      376,   471,   379,   371,   489,   501,   502,   480,   481,   482,
3307      488,   492,   336,   372,   434,   374,   510,   376,   431,   433,
3308      381,   372,    25,   476,   475,   375,   380,   475,   479,   483,
3309      372,   372,   433,   479,   480,   484,   493,   471,   381,   376
3310 };
3311
3312   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
3313 static const yytype_uint16 yyr1[] =
3314 {
3315        0,   404,   405,   406,   406,   406,   406,   406,   406,   406,
3316      406,   406,   406,   406,   406,   406,   406,   407,   407,   407,
3317      407,   407,   407,   408,   409,   410,   411,   411,   412,   412,
3318      413,   413,   414,   415,   415,   415,   416,   416,   416,   416,
3319      417,   417,   417,   417,   418,   418,   418,   418,   419,   419,
3320      419,   420,   420,   420,   421,   421,   421,   421,   421,   422,
3321      422,   422,   423,   423,   424,   424,   425,   425,   426,   426,
3322      427,   427,   428,   428,   429,   430,   429,   431,   431,   432,
3323      432,   432,   432,   432,   432,   432,   432,   432,   432,   432,
3324      433,   433,   434,   435,   435,   435,   435,   435,   435,   435,
3325      435,   435,   437,   436,   438,   438,   439,   440,   440,   441,
3326      441,   442,   443,   443,   444,   444,   444,   444,   445,   446,
3327      446,   446,   446,   446,   447,   447,   447,   447,   447,   448,
3328      448,   449,   450,   450,   450,   450,   450,   450,   450,   450,
3329      451,   452,   452,   453,   453,   453,   454,   455,   455,   456,
3330      456,   456,   456,   456,   456,   456,   457,   457,   457,   457,
3331      457,   457,   457,   457,   457,   457,   457,   457,   457,   457,
3332      457,   457,   457,   457,   457,   457,   457,   457,   457,   457,
3333      457,   457,   457,   458,   459,   459,   460,   460,   461,   461,
3334      461,   461,   462,   462,   462,   462,   462,   462,   462,   462,
3335      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3336      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3337      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3338      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3339      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3340      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3341      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3342      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3343      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3344      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3345      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3346      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3347      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3348      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3349      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3350      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3351      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3352      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3353      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3354      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3355      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3356      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3357      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3358      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3359      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3360      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3361      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3362      462,   462,   462,   462,   462,   462,   462,   462,   463,   463,
3363      463,   465,   464,   466,   464,   467,   467,   468,   468,   469,
3364      469,   470,   470,   471,   471,   471,   472,   472,   473,   474,
3365      474,   475,   475,   475,   475,   475,   475,   475,   476,   477,
3366      478,   476,   479,   479,   481,   480,   482,   480,   483,   483,
3367      484,   484,   485,   485,   486,   486,   487,   488,   488,   489,
3368      489,   490,   490,   492,   491,   493,   493,   494,   494,   495,
3369      495,   497,   496,   498,   496,   499,   496,   500,   500,   501,
3370      501,   502,   502,   503,   503,   503,   503,   503,   504,   504,
3371      505,   505,   505,   507,   506,   508,   509,   509,   510,   510
3372 };
3373
3374   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
3375 static const yytype_uint8 yyr2[] =
3376 {
3377        0,     2,     1,     1,     1,     1,     1,     1,     1,     1,
3378        1,     1,     1,     1,     1,     1,     3,     1,     4,     1,
3379        3,     2,     2,     1,     1,     1,     2,     2,     2,     1,
3380        2,     3,     2,     1,     1,     1,     1,     2,     2,     2,
3381        1,     1,     1,     1,     1,     3,     3,     3,     1,     3,
3382        3,     1,     3,     3,     1,     3,     3,     3,     3,     1,
3383        3,     3,     1,     3,     1,     3,     1,     3,     1,     3,
3384        1,     3,     1,     3,     1,     0,     6,     1,     3,     1,
3385        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3386        1,     3,     1,     2,     2,     4,     2,     3,     4,     2,
3387        3,     4,     0,     6,     2,     3,     2,     1,     1,     2,
3388        3,     3,     2,     3,     2,     1,     2,     1,     1,     1,
3389        3,     4,     6,     5,     1,     2,     3,     5,     4,     1,
3390        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3391        4,     1,     3,     1,     3,     1,     1,     1,     2,     1,
3392        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3393        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3394        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3395        1,     1,     4,     1,     1,     3,     1,     2,     2,     3,
3396        3,     4,     1,     1,     1,     1,     1,     1,     1,     1,
3397        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3398        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3399        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3400        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3401        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3402        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3403        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3404        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3405        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3406        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3407        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3408        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3409        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3410        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3411        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3412        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3413        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3414        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3415        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3416        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3417        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3418        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3419        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3420        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3421        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3422        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3423        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3424        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3425        1,     0,     6,     0,     5,     1,     2,     3,     4,     1,
3426        3,     1,     2,     1,     3,     4,     1,     3,     1,     1,
3427        1,     1,     1,     1,     1,     1,     1,     1,     2,     0,
3428        0,     5,     1,     1,     0,     2,     0,     2,     2,     3,
3429        1,     2,     1,     2,     1,     2,     5,     3,     1,     1,
3430        4,     1,     2,     0,     8,     0,     1,     3,     2,     1,
3431        2,     0,     6,     0,     8,     0,     7,     1,     1,     1,
3432        0,     2,     3,     2,     2,     2,     3,     2,     1,     2,
3433        1,     1,     1,     0,     3,     5,     1,     3,     1,     4
3434 };
3435
3436
3437 #define yyerrok         (yyerrstatus = 0)
3438 #define yyclearin       (yychar = YYEMPTY)
3439 #define YYEMPTY         (-2)
3440 #define YYEOF           0
3441
3442 #define YYACCEPT        goto yyacceptlab
3443 #define YYABORT         goto yyabortlab
3444 #define YYERROR         goto yyerrorlab
3445
3446
3447 #define YYRECOVERING()  (!!yyerrstatus)
3448
3449 #define YYBACKUP(Token, Value)                                  \
3450 do                                                              \
3451   if (yychar == YYEMPTY)                                        \
3452     {                                                           \
3453       yychar = (Token);                                         \
3454       yylval = (Value);                                         \
3455       YYPOPSTACK (yylen);                                       \
3456       yystate = *yyssp;                                         \
3457       goto yybackup;                                            \
3458     }                                                           \
3459   else                                                          \
3460     {                                                           \
3461       yyerror (pParseContext, YY_("syntax error: cannot back up")); \
3462       YYERROR;                                                  \
3463     }                                                           \
3464 while (0)
3465
3466 /* Error token number */
3467 #define YYTERROR        1
3468 #define YYERRCODE       256
3469
3470
3471
3472 /* Enable debugging if requested.  */
3473 #if YYDEBUG
3474
3475 # ifndef YYFPRINTF
3476 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3477 #  define YYFPRINTF fprintf
3478 # endif
3479
3480 # define YYDPRINTF(Args)                        \
3481 do {                                            \
3482   if (yydebug)                                  \
3483     YYFPRINTF Args;                             \
3484 } while (0)
3485
3486 /* This macro is provided for backward compatibility. */
3487 #ifndef YY_LOCATION_PRINT
3488 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3489 #endif
3490
3491
3492 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
3493 do {                                                                      \
3494   if (yydebug)                                                            \
3495     {                                                                     \
3496       YYFPRINTF (stderr, "%s ", Title);                                   \
3497       yy_symbol_print (stderr,                                            \
3498                   Type, Value, pParseContext); \
3499       YYFPRINTF (stderr, "\n");                                           \
3500     }                                                                     \
3501 } while (0)
3502
3503
3504 /*----------------------------------------.
3505 | Print this symbol's value on YYOUTPUT.  |
3506 `----------------------------------------*/
3507
3508 static void
3509 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
3510 {
3511   FILE *yyo = yyoutput;
3512   YYUSE (yyo);
3513   YYUSE (pParseContext);
3514   if (!yyvaluep)
3515     return;
3516 # ifdef YYPRINT
3517   if (yytype < YYNTOKENS)
3518     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3519 # endif
3520   YYUSE (yytype);
3521 }
3522
3523
3524 /*--------------------------------.
3525 | Print this symbol on YYOUTPUT.  |
3526 `--------------------------------*/
3527
3528 static void
3529 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
3530 {
3531   YYFPRINTF (yyoutput, "%s %s (",
3532              yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
3533
3534   yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext);
3535   YYFPRINTF (yyoutput, ")");
3536 }
3537
3538 /*------------------------------------------------------------------.
3539 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
3540 | TOP (included).                                                   |
3541 `------------------------------------------------------------------*/
3542
3543 static void
3544 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
3545 {
3546   YYFPRINTF (stderr, "Stack now");
3547   for (; yybottom <= yytop; yybottom++)
3548     {
3549       int yybot = *yybottom;
3550       YYFPRINTF (stderr, " %d", yybot);
3551     }
3552   YYFPRINTF (stderr, "\n");
3553 }
3554
3555 # define YY_STACK_PRINT(Bottom, Top)                            \
3556 do {                                                            \
3557   if (yydebug)                                                  \
3558     yy_stack_print ((Bottom), (Top));                           \
3559 } while (0)
3560
3561
3562 /*------------------------------------------------.
3563 | Report that the YYRULE is going to be reduced.  |
3564 `------------------------------------------------*/
3565
3566 static void
3567 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext)
3568 {
3569   unsigned long int yylno = yyrline[yyrule];
3570   int yynrhs = yyr2[yyrule];
3571   int yyi;
3572   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3573              yyrule - 1, yylno);
3574   /* The symbols being reduced.  */
3575   for (yyi = 0; yyi < yynrhs; yyi++)
3576     {
3577       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
3578       yy_symbol_print (stderr,
3579                        yystos[yyssp[yyi + 1 - yynrhs]],
3580                        &(yyvsp[(yyi + 1) - (yynrhs)])
3581                                               , pParseContext);
3582       YYFPRINTF (stderr, "\n");
3583     }
3584 }
3585
3586 # define YY_REDUCE_PRINT(Rule)          \
3587 do {                                    \
3588   if (yydebug)                          \
3589     yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \
3590 } while (0)
3591
3592 /* Nonzero means print parse trace.  It is left uninitialized so that
3593    multiple parsers can coexist.  */
3594 int yydebug;
3595 #else /* !YYDEBUG */
3596 # define YYDPRINTF(Args)
3597 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3598 # define YY_STACK_PRINT(Bottom, Top)
3599 # define YY_REDUCE_PRINT(Rule)
3600 #endif /* !YYDEBUG */
3601
3602
3603 /* YYINITDEPTH -- initial size of the parser's stacks.  */
3604 #ifndef YYINITDEPTH
3605 # define YYINITDEPTH 200
3606 #endif
3607
3608 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3609    if the built-in stack extension method is used).
3610
3611    Do not make this value too large; the results are undefined if
3612    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3613    evaluated with infinite-precision integer arithmetic.  */
3614
3615 #ifndef YYMAXDEPTH
3616 # define YYMAXDEPTH 10000
3617 #endif
3618
3619
3620 #if YYERROR_VERBOSE
3621
3622 # ifndef yystrlen
3623 #  if defined __GLIBC__ && defined _STRING_H
3624 #   define yystrlen strlen
3625 #  else
3626 /* Return the length of YYSTR.  */
3627 static YYSIZE_T
3628 yystrlen (const char *yystr)
3629 {
3630   YYSIZE_T yylen;
3631   for (yylen = 0; yystr[yylen]; yylen++)
3632     continue;
3633   return yylen;
3634 }
3635 #  endif
3636 # endif
3637
3638 # ifndef yystpcpy
3639 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3640 #   define yystpcpy stpcpy
3641 #  else
3642 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3643    YYDEST.  */
3644 static char *
3645 yystpcpy (char *yydest, const char *yysrc)
3646 {
3647   char *yyd = yydest;
3648   const char *yys = yysrc;
3649
3650   while ((*yyd++ = *yys++) != '\0')
3651     continue;
3652
3653   return yyd - 1;
3654 }
3655 #  endif
3656 # endif
3657
3658 # ifndef yytnamerr
3659 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3660    quotes and backslashes, so that it's suitable for yyerror.  The
3661    heuristic is that double-quoting is unnecessary unless the string
3662    contains an apostrophe, a comma, or backslash (other than
3663    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
3664    null, do not copy; instead, return the length of what the result
3665    would have been.  */
3666 static YYSIZE_T
3667 yytnamerr (char *yyres, const char *yystr)
3668 {
3669   if (*yystr == '"')
3670     {
3671       YYSIZE_T yyn = 0;
3672       char const *yyp = yystr;
3673
3674       for (;;)
3675         switch (*++yyp)
3676           {
3677           case '\'':
3678           case ',':
3679             goto do_not_strip_quotes;
3680
3681           case '\\':
3682             if (*++yyp != '\\')
3683               goto do_not_strip_quotes;
3684             /* Fall through.  */
3685           default:
3686             if (yyres)
3687               yyres[yyn] = *yyp;
3688             yyn++;
3689             break;
3690
3691           case '"':
3692             if (yyres)
3693               yyres[yyn] = '\0';
3694             return yyn;
3695           }
3696     do_not_strip_quotes: ;
3697     }
3698
3699   if (! yyres)
3700     return yystrlen (yystr);
3701
3702   return yystpcpy (yyres, yystr) - yyres;
3703 }
3704 # endif
3705
3706 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
3707    about the unexpected token YYTOKEN for the state stack whose top is
3708    YYSSP.
3709
3710    Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
3711    not large enough to hold the message.  In that case, also set
3712    *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
3713    required number of bytes is too large to store.  */
3714 static int
3715 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
3716                 yytype_int16 *yyssp, int yytoken)
3717 {
3718   YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
3719   YYSIZE_T yysize = yysize0;
3720   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3721   /* Internationalized format string. */
3722   const char *yyformat = YY_NULLPTR;
3723   /* Arguments of yyformat. */
3724   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3725   /* Number of reported tokens (one for the "unexpected", one per
3726      "expected"). */
3727   int yycount = 0;
3728
3729   /* There are many possibilities here to consider:
3730      - If this state is a consistent state with a default action, then
3731        the only way this function was invoked is if the default action
3732        is an error action.  In that case, don't check for expected
3733        tokens because there are none.
3734      - The only way there can be no lookahead present (in yychar) is if
3735        this state is a consistent state with a default action.  Thus,
3736        detecting the absence of a lookahead is sufficient to determine
3737        that there is no unexpected or expected token to report.  In that
3738        case, just report a simple "syntax error".
3739      - Don't assume there isn't a lookahead just because this state is a
3740        consistent state with a default action.  There might have been a
3741        previous inconsistent state, consistent state with a non-default
3742        action, or user semantic action that manipulated yychar.
3743      - Of course, the expected token list depends on states to have
3744        correct lookahead information, and it depends on the parser not
3745        to perform extra reductions after fetching a lookahead from the
3746        scanner and before detecting a syntax error.  Thus, state merging
3747        (from LALR or IELR) and default reductions corrupt the expected
3748        token list.  However, the list is correct for canonical LR with
3749        one exception: it will still contain any token that will not be
3750        accepted due to an error action in a later state.
3751   */
3752   if (yytoken != YYEMPTY)
3753     {
3754       int yyn = yypact[*yyssp];
3755       yyarg[yycount++] = yytname[yytoken];
3756       if (!yypact_value_is_default (yyn))
3757         {
3758           /* Start YYX at -YYN if negative to avoid negative indexes in
3759              YYCHECK.  In other words, skip the first -YYN actions for
3760              this state because they are default actions.  */
3761           int yyxbegin = yyn < 0 ? -yyn : 0;
3762           /* Stay within bounds of both yycheck and yytname.  */
3763           int yychecklim = YYLAST - yyn + 1;
3764           int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3765           int yyx;
3766
3767           for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3768             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
3769                 && !yytable_value_is_error (yytable[yyx + yyn]))
3770               {
3771                 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3772                   {
3773                     yycount = 1;
3774                     yysize = yysize0;
3775                     break;
3776                   }
3777                 yyarg[yycount++] = yytname[yyx];
3778                 {
3779                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
3780                   if (! (yysize <= yysize1
3781                          && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3782                     return 2;
3783                   yysize = yysize1;
3784                 }
3785               }
3786         }
3787     }
3788
3789   switch (yycount)
3790     {
3791 # define YYCASE_(N, S)                      \
3792       case N:                               \
3793         yyformat = S;                       \
3794       break
3795       YYCASE_(0, YY_("syntax error"));
3796       YYCASE_(1, YY_("syntax error, unexpected %s"));
3797       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
3798       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
3799       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
3800       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
3801 # undef YYCASE_
3802     }
3803
3804   {
3805     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
3806     if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3807       return 2;
3808     yysize = yysize1;
3809   }
3810
3811   if (*yymsg_alloc < yysize)
3812     {
3813       *yymsg_alloc = 2 * yysize;
3814       if (! (yysize <= *yymsg_alloc
3815              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
3816         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
3817       return 1;
3818     }
3819
3820   /* Avoid sprintf, as that infringes on the user's name space.
3821      Don't have undefined behavior even if the translation
3822      produced a string with the wrong number of "%s"s.  */
3823   {
3824     char *yyp = *yymsg;
3825     int yyi = 0;
3826     while ((*yyp = *yyformat) != '\0')
3827       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
3828         {
3829           yyp += yytnamerr (yyp, yyarg[yyi++]);
3830           yyformat += 2;
3831         }
3832       else
3833         {
3834           yyp++;
3835           yyformat++;
3836         }
3837   }
3838   return 0;
3839 }
3840 #endif /* YYERROR_VERBOSE */
3841
3842 /*-----------------------------------------------.
3843 | Release the memory associated to this symbol.  |
3844 `-----------------------------------------------*/
3845
3846 static void
3847 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext)
3848 {
3849   YYUSE (yyvaluep);
3850   YYUSE (pParseContext);
3851   if (!yymsg)
3852     yymsg = "Deleting";
3853   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3854
3855   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3856   YYUSE (yytype);
3857   YY_IGNORE_MAYBE_UNINITIALIZED_END
3858 }
3859
3860
3861
3862
3863 /*----------.
3864 | yyparse.  |
3865 `----------*/
3866
3867 int
3868 yyparse (glslang::TParseContext* pParseContext)
3869 {
3870 /* The lookahead symbol.  */
3871 int yychar;
3872
3873
3874 /* The semantic value of the lookahead symbol.  */
3875 /* Default value used for initialization, for pacifying older GCCs
3876    or non-GCC compilers.  */
3877 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
3878 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
3879
3880     /* Number of syntax errors so far.  */
3881     int yynerrs;
3882
3883     int yystate;
3884     /* Number of tokens to shift before error messages enabled.  */
3885     int yyerrstatus;
3886
3887     /* The stacks and their tools:
3888        'yyss': related to states.
3889        'yyvs': related to semantic values.
3890
3891        Refer to the stacks through separate pointers, to allow yyoverflow
3892        to reallocate them elsewhere.  */
3893
3894     /* The state stack.  */
3895     yytype_int16 yyssa[YYINITDEPTH];
3896     yytype_int16 *yyss;
3897     yytype_int16 *yyssp;
3898
3899     /* The semantic value stack.  */
3900     YYSTYPE yyvsa[YYINITDEPTH];
3901     YYSTYPE *yyvs;
3902     YYSTYPE *yyvsp;
3903
3904     YYSIZE_T yystacksize;
3905
3906   int yyn;
3907   int yyresult;
3908   /* Lookahead token as an internal (translated) token number.  */
3909   int yytoken = 0;
3910   /* The variables used to return semantic value and location from the
3911      action routines.  */
3912   YYSTYPE yyval;
3913
3914 #if YYERROR_VERBOSE
3915   /* Buffer for error messages, and its allocated size.  */
3916   char yymsgbuf[128];
3917   char *yymsg = yymsgbuf;
3918   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
3919 #endif
3920
3921 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
3922
3923   /* The number of symbols on the RHS of the reduced rule.
3924      Keep to zero when no symbol should be popped.  */
3925   int yylen = 0;
3926
3927   yyssp = yyss = yyssa;
3928   yyvsp = yyvs = yyvsa;
3929   yystacksize = YYINITDEPTH;
3930
3931   YYDPRINTF ((stderr, "Starting parse\n"));
3932
3933   yystate = 0;
3934   yyerrstatus = 0;
3935   yynerrs = 0;
3936   yychar = YYEMPTY; /* Cause a token to be read.  */
3937   goto yysetstate;
3938
3939 /*------------------------------------------------------------.
3940 | yynewstate -- Push a new state, which is found in yystate.  |
3941 `------------------------------------------------------------*/
3942  yynewstate:
3943   /* In all cases, when you get here, the value and location stacks
3944      have just been pushed.  So pushing a state here evens the stacks.  */
3945   yyssp++;
3946
3947  yysetstate:
3948   *yyssp = yystate;
3949
3950   if (yyss + yystacksize - 1 <= yyssp)
3951     {
3952       /* Get the current used size of the three stacks, in elements.  */
3953       YYSIZE_T yysize = yyssp - yyss + 1;
3954
3955 #ifdef yyoverflow
3956       {
3957         /* Give user a chance to reallocate the stack.  Use copies of
3958            these so that the &'s don't force the real ones into
3959            memory.  */
3960         YYSTYPE *yyvs1 = yyvs;
3961         yytype_int16 *yyss1 = yyss;
3962
3963         /* Each stack pointer address is followed by the size of the
3964            data in use in that stack, in bytes.  This used to be a
3965            conditional around just the two extra args, but that might
3966            be undefined if yyoverflow is a macro.  */
3967         yyoverflow (YY_("memory exhausted"),
3968                     &yyss1, yysize * sizeof (*yyssp),
3969                     &yyvs1, yysize * sizeof (*yyvsp),
3970                     &yystacksize);
3971
3972         yyss = yyss1;
3973         yyvs = yyvs1;
3974       }
3975 #else /* no yyoverflow */
3976 # ifndef YYSTACK_RELOCATE
3977       goto yyexhaustedlab;
3978 # else
3979       /* Extend the stack our own way.  */
3980       if (YYMAXDEPTH <= yystacksize)
3981         goto yyexhaustedlab;
3982       yystacksize *= 2;
3983       if (YYMAXDEPTH < yystacksize)
3984         yystacksize = YYMAXDEPTH;
3985
3986       {
3987         yytype_int16 *yyss1 = yyss;
3988         union yyalloc *yyptr =
3989           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3990         if (! yyptr)
3991           goto yyexhaustedlab;
3992         YYSTACK_RELOCATE (yyss_alloc, yyss);
3993         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3994 #  undef YYSTACK_RELOCATE
3995         if (yyss1 != yyssa)
3996           YYSTACK_FREE (yyss1);
3997       }
3998 # endif
3999 #endif /* no yyoverflow */
4000
4001       yyssp = yyss + yysize - 1;
4002       yyvsp = yyvs + yysize - 1;
4003
4004       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
4005                   (unsigned long int) yystacksize));
4006
4007       if (yyss + yystacksize - 1 <= yyssp)
4008         YYABORT;
4009     }
4010
4011   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4012
4013   if (yystate == YYFINAL)
4014     YYACCEPT;
4015
4016   goto yybackup;
4017
4018 /*-----------.
4019 | yybackup.  |
4020 `-----------*/
4021 yybackup:
4022
4023   /* Do appropriate processing given the current state.  Read a
4024      lookahead token if we need one and don't already have one.  */
4025
4026   /* First try to decide what to do without reference to lookahead token.  */
4027   yyn = yypact[yystate];
4028   if (yypact_value_is_default (yyn))
4029     goto yydefault;
4030
4031   /* Not known => get a lookahead token if don't already have one.  */
4032
4033   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
4034   if (yychar == YYEMPTY)
4035     {
4036       YYDPRINTF ((stderr, "Reading a token: "));
4037       yychar = yylex (&yylval, parseContext);
4038     }
4039
4040   if (yychar <= YYEOF)
4041     {
4042       yychar = yytoken = YYEOF;
4043       YYDPRINTF ((stderr, "Now at end of input.\n"));
4044     }
4045   else
4046     {
4047       yytoken = YYTRANSLATE (yychar);
4048       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
4049     }
4050
4051   /* If the proper action on seeing token YYTOKEN is to reduce or to
4052      detect an error, take that action.  */
4053   yyn += yytoken;
4054   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
4055     goto yydefault;
4056   yyn = yytable[yyn];
4057   if (yyn <= 0)
4058     {
4059       if (yytable_value_is_error (yyn))
4060         goto yyerrlab;
4061       yyn = -yyn;
4062       goto yyreduce;
4063     }
4064
4065   /* Count tokens shifted since error; after three, turn off error
4066      status.  */
4067   if (yyerrstatus)
4068     yyerrstatus--;
4069
4070   /* Shift the lookahead token.  */
4071   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
4072
4073   /* Discard the shifted token.  */
4074   yychar = YYEMPTY;
4075
4076   yystate = yyn;
4077   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4078   *++yyvsp = yylval;
4079   YY_IGNORE_MAYBE_UNINITIALIZED_END
4080
4081   goto yynewstate;
4082
4083
4084 /*-----------------------------------------------------------.
4085 | yydefault -- do the default action for the current state.  |
4086 `-----------------------------------------------------------*/
4087 yydefault:
4088   yyn = yydefact[yystate];
4089   if (yyn == 0)
4090     goto yyerrlab;
4091   goto yyreduce;
4092
4093
4094 /*-----------------------------.
4095 | yyreduce -- Do a reduction.  |
4096 `-----------------------------*/
4097 yyreduce:
4098   /* yyn is the number of a rule to reduce with.  */
4099   yylen = yyr2[yyn];
4100
4101   /* If YYLEN is nonzero, implement the default value of the action:
4102      '$$ = $1'.
4103
4104      Otherwise, the following line sets YYVAL to garbage.
4105      This behavior is undocumented and Bison
4106      users should not rely upon it.  Assigning to YYVAL
4107      unconditionally makes the parser a bit smaller, and it avoids a
4108      GCC warning that YYVAL may be used uninitialized.  */
4109   yyval = yyvsp[1-yylen];
4110
4111
4112   YY_REDUCE_PRINT (yyn);
4113   switch (yyn)
4114     {
4115         case 2:
4116 #line 294 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4117     {
4118         (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
4119     }
4120 #line 4121 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4121     break;
4122
4123   case 3:
4124 #line 300 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4125     {
4126         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4127     }
4128 #line 4129 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4129     break;
4130
4131   case 4:
4132 #line 303 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4133     {
4134         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
4135         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4136     }
4137 #line 4138 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4138     break;
4139
4140   case 5:
4141 #line 307 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4142     {
4143         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
4144         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4145     }
4146 #line 4147 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4147     break;
4148
4149   case 6:
4150 #line 311 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4151     {
4152         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4153     }
4154 #line 4155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4155     break;
4156
4157   case 7:
4158 #line 314 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4159     {
4160         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
4161         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4162     }
4163 #line 4164 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4164     break;
4165
4166   case 8:
4167 #line 318 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4168     {
4169         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
4170         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
4171     }
4172 #line 4173 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4173     break;
4174
4175   case 9:
4176 #line 322 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4177     {
4178         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
4179         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
4180     }
4181 #line 4182 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4182     break;
4183
4184   case 10:
4185 #line 326 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4186     {
4187         parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal");
4188         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4189     }
4190 #line 4191 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4191     break;
4192
4193   case 11:
4194 #line 330 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4195     {
4196         parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal");
4197         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4198     }
4199 #line 4200 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4200     break;
4201
4202   case 12:
4203 #line 334 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4204     {
4205         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
4206     }
4207 #line 4208 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4208     break;
4209
4210   case 13:
4211 #line 337 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4212     {
4213         parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
4214         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
4215     }
4216 #line 4217 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4217     break;
4218
4219   case 14:
4220 #line 341 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4221     {
4222         parseContext.float16Check((yyvsp[0].lex).loc, "half float literal");
4223         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true);
4224     }
4225 #line 4226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4226     break;
4227
4228   case 15:
4229 #line 345 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4230     {
4231         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
4232     }
4233 #line 4234 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4234     break;
4235
4236   case 16:
4237 #line 348 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4238     {
4239         (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
4240         if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
4241             (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
4242     }
4243 #line 4244 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4244     break;
4245
4246   case 17:
4247 #line 356 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4248     {
4249         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4250     }
4251 #line 4252 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4252     break;
4253
4254   case 18:
4255 #line 359 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4256     {
4257         (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
4258     }
4259 #line 4260 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4260     break;
4261
4262   case 19:
4263 #line 362 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4264     {
4265         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4266     }
4267 #line 4268 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4268     break;
4269
4270   case 20:
4271 #line 365 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4272     {
4273         (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
4274     }
4275 #line 4276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4276     break;
4277
4278   case 21:
4279 #line 368 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4280     {
4281         parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
4282         parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
4283         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
4284     }
4285 #line 4286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4286     break;
4287
4288   case 22:
4289 #line 373 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4290     {
4291         parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
4292         parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
4293         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
4294     }
4295 #line 4296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4296     break;
4297
4298   case 23:
4299 #line 381 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4300     {
4301         parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
4302         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4303     }
4304 #line 4305 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4305     break;
4306
4307   case 24:
4308 #line 388 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4309     {
4310         (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
4311         delete (yyvsp[0].interm).function;
4312     }
4313 #line 4314 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4314     break;
4315
4316   case 25:
4317 #line 395 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4318     {
4319         (yyval.interm) = (yyvsp[0].interm);
4320     }
4321 #line 4322 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4322     break;
4323
4324   case 26:
4325 #line 401 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4326     {
4327         (yyval.interm) = (yyvsp[-1].interm);
4328         (yyval.interm).loc = (yyvsp[0].lex).loc;
4329     }
4330 #line 4331 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4331     break;
4332
4333   case 27:
4334 #line 405 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4335     {
4336         (yyval.interm) = (yyvsp[-1].interm);
4337         (yyval.interm).loc = (yyvsp[0].lex).loc;
4338     }
4339 #line 4340 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4340     break;
4341
4342   case 28:
4343 #line 412 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4344     {
4345         (yyval.interm) = (yyvsp[-1].interm);
4346     }
4347 #line 4348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4348     break;
4349
4350   case 29:
4351 #line 415 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4352     {
4353         (yyval.interm) = (yyvsp[0].interm);
4354     }
4355 #line 4356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4356     break;
4357
4358   case 30:
4359 #line 421 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4360     {
4361         TParameter param = { 0, new TType };
4362         param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
4363         (yyvsp[-1].interm).function->addParameter(param);
4364         (yyval.interm).function = (yyvsp[-1].interm).function;
4365         (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
4366     }
4367 #line 4368 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4368     break;
4369
4370   case 31:
4371 #line 428 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4372     {
4373         TParameter param = { 0, new TType };
4374         param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
4375         (yyvsp[-2].interm).function->addParameter(param);
4376         (yyval.interm).function = (yyvsp[-2].interm).function;
4377         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
4378     }
4379 #line 4380 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4380     break;
4381
4382   case 32:
4383 #line 438 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4384     {
4385         (yyval.interm) = (yyvsp[-1].interm);
4386     }
4387 #line 4388 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4388     break;
4389
4390   case 33:
4391 #line 446 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4392     {
4393         // Constructor
4394         (yyval.interm).intermNode = 0;
4395         (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
4396     }
4397 #line 4398 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4398     break;
4399
4400   case 34:
4401 #line 451 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4402     {
4403         //
4404         // Should be a method or subroutine call, but we haven't recognized the arguments yet.
4405         //
4406         (yyval.interm).function = 0;
4407         (yyval.interm).intermNode = 0;
4408
4409         TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode();
4410         if (method) {
4411             (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength);
4412             (yyval.interm).intermNode = method->getObject();
4413         } else {
4414             TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode();
4415             if (symbol) {
4416                 parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName());
4417                 TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid));
4418                 (yyval.interm).function = function;
4419             } else
4420                 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", "");
4421         }
4422
4423         if ((yyval.interm).function == 0) {
4424             // error recover
4425             TString empty("");
4426             (yyval.interm).function = new TFunction(&empty, TType(EbtVoid), EOpNull);
4427         }
4428     }
4429 #line 4430 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4430     break;
4431
4432   case 35:
4433 #line 478 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4434     {
4435         // Constructor
4436         (yyval.interm).intermNode = 0;
4437         (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
4438     }
4439 #line 4440 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4440     break;
4441
4442   case 36:
4443 #line 486 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4444     {
4445         parseContext.variableCheck((yyvsp[0].interm.intermTypedNode));
4446         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4447         if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
4448             parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
4449     }
4450 #line 4451 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4451     break;
4452
4453   case 37:
4454 #line 492 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4455     {
4456         parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode));
4457         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode));
4458     }
4459 #line 4460 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4460     break;
4461
4462   case 38:
4463 #line 496 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4464     {
4465         parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode));
4466         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode));
4467     }
4468 #line 4469 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4469     break;
4470
4471   case 39:
4472 #line 500 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4473     {
4474         if ((yyvsp[-1].interm).op != EOpNull) {
4475             char errorOp[2] = {0, 0};
4476             switch((yyvsp[-1].interm).op) {
4477             case EOpNegative:   errorOp[0] = '-'; break;
4478             case EOpLogicalNot: errorOp[0] = '!'; break;
4479             case EOpBitwiseNot: errorOp[0] = '~'; break;
4480             default: break; // some compilers want this
4481             }
4482             (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode));
4483         } else {
4484             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4485             if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
4486                 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
4487         }
4488     }
4489 #line 4490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4490     break;
4491
4492   case 40:
4493 #line 520 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4494     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
4495 #line 4496 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4496     break;
4497
4498   case 41:
4499 #line 521 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4500     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
4501 #line 4502 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4502     break;
4503
4504   case 42:
4505 #line 522 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4506     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
4507 #line 4508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4508     break;
4509
4510   case 43:
4511 #line 523 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4512     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
4513               parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
4514 #line 4515 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4515     break;
4516
4517   case 44:
4518 #line 529 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4519     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4520 #line 4521 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4521     break;
4522
4523   case 45:
4524 #line 530 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4525     {
4526         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4527         if ((yyval.interm.intermTypedNode) == 0)
4528             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4529     }
4530 #line 4531 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4531     break;
4532
4533   case 46:
4534 #line 535 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4535     {
4536         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4537         if ((yyval.interm.intermTypedNode) == 0)
4538             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4539     }
4540 #line 4541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4541     break;
4542
4543   case 47:
4544 #line 540 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4545     {
4546         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%");
4547         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4548         if ((yyval.interm.intermTypedNode) == 0)
4549             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4550     }
4551 #line 4552 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4552     break;
4553
4554   case 48:
4555 #line 549 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4556     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4557 #line 4558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4558     break;
4559
4560   case 49:
4561 #line 550 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4562     {
4563         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4564         if ((yyval.interm.intermTypedNode) == 0)
4565             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4566     }
4567 #line 4568 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4568     break;
4569
4570   case 50:
4571 #line 555 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4572     {
4573         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4574         if ((yyval.interm.intermTypedNode) == 0)
4575             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4576     }
4577 #line 4578 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4578     break;
4579
4580   case 51:
4581 #line 563 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4582     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4583 #line 4584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4584     break;
4585
4586   case 52:
4587 #line 564 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4588     {
4589         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left");
4590         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4591         if ((yyval.interm.intermTypedNode) == 0)
4592             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4593     }
4594 #line 4595 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4595     break;
4596
4597   case 53:
4598 #line 570 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4599     {
4600         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right");
4601         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (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 54:
4609 #line 579 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4610     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4611 #line 4612 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4612     break;
4613
4614   case 55:
4615 #line 580 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4616     {
4617         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4618         if ((yyval.interm.intermTypedNode) == 0)
4619             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4620     }
4621 #line 4622 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4622     break;
4623
4624   case 56:
4625 #line 585 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4626     {
4627         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4628         if ((yyval.interm.intermTypedNode) == 0)
4629             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4630     }
4631 #line 4632 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4632     break;
4633
4634   case 57:
4635 #line 590 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4636     {
4637         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4638         if ((yyval.interm.intermTypedNode) == 0)
4639             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4640     }
4641 #line 4642 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4642     break;
4643
4644   case 58:
4645 #line 595 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4646     {
4647         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4648         if ((yyval.interm.intermTypedNode) == 0)
4649             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4650     }
4651 #line 4652 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4652     break;
4653
4654   case 59:
4655 #line 603 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4656     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4657 #line 4658 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4658     break;
4659
4660   case 60:
4661 #line 604 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4662     {
4663         parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
4664         parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
4665         parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
4666         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4667         if ((yyval.interm.intermTypedNode) == 0)
4668             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4669     }
4670 #line 4671 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4671     break;
4672
4673   case 61:
4674 #line 612 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4675     {
4676         parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
4677         parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
4678         parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
4679         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4680         if ((yyval.interm.intermTypedNode) == 0)
4681             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4682     }
4683 #line 4684 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4684     break;
4685
4686   case 62:
4687 #line 623 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4688     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4689 #line 4690 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4690     break;
4691
4692   case 63:
4693 #line 624 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4694     {
4695         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and");
4696         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4697         if ((yyval.interm.intermTypedNode) == 0)
4698             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4699     }
4700 #line 4701 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4701     break;
4702
4703   case 64:
4704 #line 633 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4705     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4706 #line 4707 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4707     break;
4708
4709   case 65:
4710 #line 634 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4711     {
4712         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or");
4713         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4714         if ((yyval.interm.intermTypedNode) == 0)
4715             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4716     }
4717 #line 4718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4718     break;
4719
4720   case 66:
4721 #line 643 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4722     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4723 #line 4724 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4724     break;
4725
4726   case 67:
4727 #line 644 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4728     {
4729         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or");
4730         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4731         if ((yyval.interm.intermTypedNode) == 0)
4732             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4733     }
4734 #line 4735 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4735     break;
4736
4737   case 68:
4738 #line 653 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4739     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4740 #line 4741 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4741     break;
4742
4743   case 69:
4744 #line 654 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4745     {
4746         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4747         if ((yyval.interm.intermTypedNode) == 0)
4748             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4749     }
4750 #line 4751 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4751     break;
4752
4753   case 70:
4754 #line 662 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4755     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4756 #line 4757 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4757     break;
4758
4759   case 71:
4760 #line 663 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4761     {
4762         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4763         if ((yyval.interm.intermTypedNode) == 0)
4764             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4765     }
4766 #line 4767 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4767     break;
4768
4769   case 72:
4770 #line 671 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4771     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4772 #line 4773 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4773     break;
4774
4775   case 73:
4776 #line 672 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4777     {
4778         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4779         if ((yyval.interm.intermTypedNode) == 0)
4780             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4781     }
4782 #line 4783 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4783     break;
4784
4785   case 74:
4786 #line 680 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4787     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4788 #line 4789 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4789     break;
4790
4791   case 75:
4792 #line 681 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4793     {
4794         ++parseContext.controlFlowNestingLevel;
4795     }
4796 #line 4797 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4797     break;
4798
4799   case 76:
4800 #line 684 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4801     {
4802         --parseContext.controlFlowNestingLevel;
4803         parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
4804         parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode));
4805         parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode));
4806         parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode));
4807         (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc);
4808         if ((yyval.interm.intermTypedNode) == 0) {
4809             parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
4810             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4811         }
4812     }
4813 #line 4814 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4814     break;
4815
4816   case 77:
4817 #line 699 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4818     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4819 #line 4820 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4820     break;
4821
4822   case 78:
4823 #line 700 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4824     {
4825         parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment");
4826         parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
4827         parseContext.storage16BitAssignmentCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
4828         parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
4829         parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode));
4830         parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode));
4831         (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].interm).loc);
4832         if ((yyval.interm.intermTypedNode) == 0) {
4833             parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
4834             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4835         }
4836     }
4837 #line 4838 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4838     break;
4839
4840   case 79:
4841 #line 716 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4842     {
4843         (yyval.interm).loc = (yyvsp[0].lex).loc;
4844         (yyval.interm).op = EOpAssign;
4845     }
4846 #line 4847 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4847     break;
4848
4849   case 80:
4850 #line 720 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4851     {
4852         (yyval.interm).loc = (yyvsp[0].lex).loc;
4853         (yyval.interm).op = EOpMulAssign;
4854     }
4855 #line 4856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4856     break;
4857
4858   case 81:
4859 #line 724 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4860     {
4861         (yyval.interm).loc = (yyvsp[0].lex).loc;
4862         (yyval.interm).op = EOpDivAssign;
4863     }
4864 #line 4865 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4865     break;
4866
4867   case 82:
4868 #line 728 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4869     {
4870         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
4871         (yyval.interm).loc = (yyvsp[0].lex).loc;
4872         (yyval.interm).op = EOpModAssign;
4873     }
4874 #line 4875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4875     break;
4876
4877   case 83:
4878 #line 733 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4879     {
4880         (yyval.interm).loc = (yyvsp[0].lex).loc;
4881         (yyval.interm).op = EOpAddAssign;
4882     }
4883 #line 4884 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4884     break;
4885
4886   case 84:
4887 #line 737 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4888     {
4889         (yyval.interm).loc = (yyvsp[0].lex).loc;
4890         (yyval.interm).op = EOpSubAssign;
4891     }
4892 #line 4893 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4893     break;
4894
4895   case 85:
4896 #line 741 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4897     {
4898         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
4899         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
4900     }
4901 #line 4902 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4902     break;
4903
4904   case 86:
4905 #line 745 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4906     {
4907         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
4908         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
4909     }
4910 #line 4911 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4911     break;
4912
4913   case 87:
4914 #line 749 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4915     {
4916         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
4917         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
4918     }
4919 #line 4920 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4920     break;
4921
4922   case 88:
4923 #line 753 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4924     {
4925         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
4926         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
4927     }
4928 #line 4929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4929     break;
4930
4931   case 89:
4932 #line 757 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4933     {
4934         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
4935         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
4936     }
4937 #line 4938 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4938     break;
4939
4940   case 90:
4941 #line 764 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4942     {
4943         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4944     }
4945 #line 4946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4946     break;
4947
4948   case 91:
4949 #line 767 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4950     {
4951         parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
4952         (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
4953         if ((yyval.interm.intermTypedNode) == 0) {
4954             parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
4955             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4956         }
4957     }
4958 #line 4959 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4959     break;
4960
4961   case 92:
4962 #line 778 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4963     {
4964         parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
4965         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4966     }
4967 #line 4968 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4968     break;
4969
4970   case 93:
4971 #line 785 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4972     {
4973         parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
4974         (yyval.interm.intermNode) = 0;
4975         // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
4976     }
4977 #line 4978 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4978     break;
4979
4980   case 94:
4981 #line 790 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4982     {
4983         if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate())
4984             (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
4985         (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
4986     }
4987 #line 4988 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4988     break;
4989
4990   case 95:
4991 #line 795 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4992     {
4993         parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
4994
4995         // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
4996         parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]);
4997         parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
4998         (yyval.interm.intermNode) = 0;
4999     }
5000 #line 5001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5001     break;
5002
5003   case 96:
5004 #line 803 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5005     {
5006         parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
5007         (yyval.interm.intermNode) = 0;
5008     }
5009 #line 5010 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5010     break;
5011
5012   case 97:
5013 #line 807 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5014     {
5015         parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
5016         (yyval.interm.intermNode) = 0;
5017     }
5018 #line 5019 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5019     break;
5020
5021   case 98:
5022 #line 811 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5023     {
5024         parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
5025         (yyval.interm.intermNode) = 0;
5026     }
5027 #line 5028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5028     break;
5029
5030   case 99:
5031 #line 815 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5032     {
5033         parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
5034         parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
5035         (yyval.interm.intermNode) = 0;
5036     }
5037 #line 5038 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5038     break;
5039
5040   case 100:
5041 #line 820 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5042     {
5043         parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
5044         parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
5045         (yyval.interm.intermNode) = 0;
5046     }
5047 #line 5048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5048     break;
5049
5050   case 101:
5051 #line 825 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5052     {
5053         parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
5054         (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string);
5055         parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
5056         (yyval.interm.intermNode) = 0;
5057     }
5058 #line 5059 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5059     break;
5060
5061   case 102:
5062 #line 834 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5063     { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
5064 #line 5065 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5065     break;
5066
5067   case 103:
5068 #line 834 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5069     {
5070         --parseContext.structNestingLevel;
5071         parseContext.blockName = (yyvsp[-4].lex).string;
5072         parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier);
5073         parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers);
5074         parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier;
5075         (yyval.interm).loc = (yyvsp[-5].interm.type).loc;
5076         (yyval.interm).typeList = (yyvsp[-1].interm.typeList);
5077     }
5078 #line 5079 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5079     break;
5080
5081   case 104:
5082 #line 845 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5083     {
5084         (yyval.interm.identifierList) = new TIdentifierList;
5085         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
5086     }
5087 #line 5088 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5088     break;
5089
5090   case 105:
5091 #line 849 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5092     {
5093         (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
5094         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
5095     }
5096 #line 5097 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5097     break;
5098
5099   case 106:
5100 #line 856 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5101     {
5102         (yyval.interm).function = (yyvsp[-1].interm.function);
5103         (yyval.interm).loc = (yyvsp[0].lex).loc;
5104     }
5105 #line 5106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5106     break;
5107
5108   case 107:
5109 #line 863 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5110     {
5111         (yyval.interm.function) = (yyvsp[0].interm.function);
5112     }
5113 #line 5114 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5114     break;
5115
5116   case 108:
5117 #line 866 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5118     {
5119         (yyval.interm.function) = (yyvsp[0].interm.function);
5120     }
5121 #line 5122 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5122     break;
5123
5124   case 109:
5125 #line 873 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5126     {
5127         // Add the parameter
5128         (yyval.interm.function) = (yyvsp[-1].interm.function);
5129         if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid)
5130             (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param);
5131         else
5132             delete (yyvsp[0].interm).param.type;
5133     }
5134 #line 5135 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5135     break;
5136
5137   case 110:
5138 #line 881 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5139     {
5140         //
5141         // Only first parameter of one-parameter functions can be void
5142         // The check for named parameters not being void is done in parameter_declarator
5143         //
5144         if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) {
5145             //
5146             // This parameter > first is void
5147             //
5148             parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", "");
5149             delete (yyvsp[0].interm).param.type;
5150         } else {
5151             // Add the parameter
5152             (yyval.interm.function) = (yyvsp[-2].interm.function);
5153             (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
5154         }
5155     }
5156 #line 5157 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5157     break;
5158
5159   case 111:
5160 #line 901 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5161     {
5162         if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
5163             parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
5164                                GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), "");
5165         }
5166         if ((yyvsp[-2].interm.type).arraySizes)
5167             parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
5168
5169         // Add the function as a prototype after parsing it (we do not support recursion)
5170         TFunction *function;
5171         TType type((yyvsp[-2].interm.type));
5172
5173         // Potentially rename shader entry point function.  No-op most of the time.
5174         parseContext.renameShaderFunction((yyvsp[-1].lex).string);
5175
5176         // Make the function
5177         function = new TFunction((yyvsp[-1].lex).string, type);
5178         (yyval.interm.function) = function;
5179     }
5180 #line 5181 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5181     break;
5182
5183   case 112:
5184 #line 924 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5185     {
5186         if ((yyvsp[-1].interm.type).arraySizes) {
5187             parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5188             parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5189             parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes);
5190         }
5191         if ((yyvsp[-1].interm.type).basicType == EbtVoid) {
5192             parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), "");
5193         }
5194         parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string);
5195
5196         TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))};
5197         (yyval.interm).loc = (yyvsp[0].lex).loc;
5198         (yyval.interm).param = param;
5199     }
5200 #line 5201 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5201     break;
5202
5203   case 113:
5204 #line 939 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5205     {
5206         if ((yyvsp[-2].interm.type).arraySizes) {
5207             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5208             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5209             parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
5210         }
5211         TType* type = new TType((yyvsp[-2].interm.type));
5212         type->transferArraySizes((yyvsp[0].interm).arraySizes);
5213         type->copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
5214
5215         parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, type->getArraySizes());
5216         parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes);
5217         parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string);
5218
5219         TParameter param = { (yyvsp[-1].lex).string, type };
5220
5221         (yyval.interm).loc = (yyvsp[-1].lex).loc;
5222         (yyval.interm).param = param;
5223     }
5224 #line 5225 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5225     break;
5226
5227   case 114:
5228 #line 964 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5229     {
5230         (yyval.interm) = (yyvsp[0].interm);
5231         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
5232             (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
5233         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5234
5235         parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5236         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
5237         parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
5238
5239     }
5240 #line 5241 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5241     break;
5242
5243   case 115:
5244 #line 975 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5245     {
5246         (yyval.interm) = (yyvsp[0].interm);
5247
5248         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
5249         parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
5250         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5251     }
5252 #line 5253 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5253     break;
5254
5255   case 116:
5256 #line 985 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5257     {
5258         (yyval.interm) = (yyvsp[0].interm);
5259         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
5260             (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
5261         parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5262
5263         parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5264         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
5265         parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
5266     }
5267 #line 5268 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5268     break;
5269
5270   case 117:
5271 #line 995 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5272     {
5273         (yyval.interm) = (yyvsp[0].interm);
5274
5275         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
5276         parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
5277         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5278     }
5279 #line 5280 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5280     break;
5281
5282   case 118:
5283 #line 1005 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5284     {
5285         TParameter param = { 0, new TType((yyvsp[0].interm.type)) };
5286         (yyval.interm).param = param;
5287         if ((yyvsp[0].interm.type).arraySizes)
5288             parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
5289     }
5290 #line 5291 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5291     break;
5292
5293   case 119:
5294 #line 1014 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5295     {
5296         (yyval.interm) = (yyvsp[0].interm);
5297     }
5298 #line 5299 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5299     break;
5300
5301   case 120:
5302 #line 1017 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5303     {
5304         (yyval.interm) = (yyvsp[-2].interm);
5305         parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
5306     }
5307 #line 5308 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5308     break;
5309
5310   case 121:
5311 #line 1021 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5312     {
5313         (yyval.interm) = (yyvsp[-3].interm);
5314         parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
5315     }
5316 #line 5317 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5317     break;
5318
5319   case 122:
5320 #line 1025 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5321     {
5322         (yyval.interm).type = (yyvsp[-5].interm).type;
5323         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
5324         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
5325     }
5326 #line 5327 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5327     break;
5328
5329   case 123:
5330 #line 1030 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5331     {
5332         (yyval.interm).type = (yyvsp[-4].interm).type;
5333         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
5334         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
5335     }
5336 #line 5337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5337     break;
5338
5339   case 124:
5340 #line 1038 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5341     {
5342         (yyval.interm).type = (yyvsp[0].interm.type);
5343         (yyval.interm).intermNode = 0;
5344         parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
5345     }
5346 #line 5347 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5347     break;
5348
5349   case 125:
5350 #line 1043 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5351     {
5352         (yyval.interm).type = (yyvsp[-1].interm.type);
5353         (yyval.interm).intermNode = 0;
5354         parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
5355     }
5356 #line 5357 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5357     break;
5358
5359   case 126:
5360 #line 1048 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5361     {
5362         (yyval.interm).type = (yyvsp[-2].interm.type);
5363         (yyval.interm).intermNode = 0;
5364         parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
5365     }
5366 #line 5367 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5367     break;
5368
5369   case 127:
5370 #line 1053 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5371     {
5372         (yyval.interm).type = (yyvsp[-4].interm.type);
5373         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
5374         (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
5375     }
5376 #line 5377 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5377     break;
5378
5379   case 128:
5380 #line 1058 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5381     {
5382         (yyval.interm).type = (yyvsp[-3].interm.type);
5383         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
5384         (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
5385     }
5386 #line 5387 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5387     break;
5388
5389   case 129:
5390 #line 1067 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5391     {
5392         (yyval.interm.type) = (yyvsp[0].interm.type);
5393
5394         parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type));
5395         if ((yyvsp[0].interm.type).arraySizes) {
5396             parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5397             parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5398         }
5399
5400         parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
5401     }
5402 #line 5403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5403     break;
5404
5405   case 130:
5406 #line 1078 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5407     {
5408         parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
5409         parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
5410
5411         if ((yyvsp[0].interm.type).arraySizes) {
5412             parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5413             parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5414         }
5415
5416         if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier))
5417             (yyvsp[0].interm.type).arraySizes = nullptr;
5418
5419         parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5420         (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers);
5421         parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true);
5422         parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier);
5423
5424         (yyval.interm.type) = (yyvsp[0].interm.type);
5425
5426         if (! (yyval.interm.type).qualifier.isInterpolation() &&
5427             ((parseContext.language == EShLangVertex   && (yyval.interm.type).qualifier.storage == EvqVaryingOut) ||
5428              (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
5429             (yyval.interm.type).qualifier.smooth = true;
5430     }
5431 #line 5432 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5432     break;
5433
5434   case 131:
5435 #line 1105 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5436     {
5437         parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
5438         parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
5439         (yyval.interm.type).init((yyvsp[0].lex).loc);
5440         (yyval.interm.type).qualifier.invariant = true;
5441     }
5442 #line 5443 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5443     break;
5444
5445   case 132:
5446 #line 1114 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5447     {
5448         parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
5449         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
5450         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth");
5451         (yyval.interm.type).init((yyvsp[0].lex).loc);
5452         (yyval.interm.type).qualifier.smooth = true;
5453     }
5454 #line 5455 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5455     break;
5456
5457   case 133:
5458 #line 1121 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5459     {
5460         parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
5461         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
5462         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat");
5463         (yyval.interm.type).init((yyvsp[0].lex).loc);
5464         (yyval.interm.type).qualifier.flat = true;
5465     }
5466 #line 5467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5467     break;
5468
5469   case 134:
5470 #line 1128 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5471     {
5472         parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
5473 #ifdef NV_EXTENSIONS
5474         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
5475 #else
5476         parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "noperspective");
5477 #endif
5478         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective");
5479         (yyval.interm.type).init((yyvsp[0].lex).loc);
5480         (yyval.interm.type).qualifier.nopersp = true;
5481     }
5482 #line 5483 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5483     break;
5484
5485   case 135:
5486 #line 1139 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5487     {
5488 #ifdef AMD_EXTENSIONS
5489         parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD");
5490         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
5491         parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
5492         (yyval.interm.type).init((yyvsp[0].lex).loc);
5493         (yyval.interm.type).qualifier.explicitInterp = true;
5494 #endif
5495     }
5496 #line 5497 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5497     break;
5498
5499   case 136:
5500 #line 1148 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5501     {
5502 #ifdef NV_EXTENSIONS
5503         parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV");
5504         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
5505         parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
5506         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
5507         (yyval.interm.type).init((yyvsp[0].lex).loc);
5508         (yyval.interm.type).qualifier.pervertexNV = true;
5509 #endif
5510     }
5511 #line 5512 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5512     break;
5513
5514   case 137:
5515 #line 1158 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5516     {
5517 #ifdef NV_EXTENSIONS
5518         // No need for profile version or extension check. Shader stage already checks both.
5519         parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV");
5520         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshNVMask), "perprimitiveNV");
5521         // Fragment shader stage doesn't check for extension. So we explicitly add below extension check.
5522         if (parseContext.language == EShLangFragment)
5523             parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_NV_mesh_shader, "perprimitiveNV");
5524         (yyval.interm.type).init((yyvsp[0].lex).loc);
5525         (yyval.interm.type).qualifier.perPrimitiveNV = true;
5526 #endif
5527     }
5528 #line 5529 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5529     break;
5530
5531   case 138:
5532 #line 1170 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5533     {
5534 #ifdef NV_EXTENSIONS
5535         // No need for profile version or extension check. Shader stage already checks both.
5536         parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV");
5537         parseContext.requireStage((yyvsp[0].lex).loc, EShLangMeshNV, "perviewNV");
5538         (yyval.interm.type).init((yyvsp[0].lex).loc);
5539         (yyval.interm.type).qualifier.perViewNV = true;
5540 #endif
5541     }
5542 #line 5543 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5543     break;
5544
5545   case 139:
5546 #line 1179 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5547     {
5548 #ifdef NV_EXTENSIONS
5549         // No need for profile version or extension check. Shader stage already checks both.
5550         parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV");
5551         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "taskNV");
5552         (yyval.interm.type).init((yyvsp[0].lex).loc);
5553         (yyval.interm.type).qualifier.perTaskNV = true;
5554 #endif
5555     }
5556 #line 5557 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5557     break;
5558
5559   case 140:
5560 #line 1191 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5561     {
5562         (yyval.interm.type) = (yyvsp[-1].interm.type);
5563     }
5564 #line 5565 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5565     break;
5566
5567   case 141:
5568 #line 1197 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5569     {
5570         (yyval.interm.type) = (yyvsp[0].interm.type);
5571     }
5572 #line 5573 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5573     break;
5574
5575   case 142:
5576 #line 1200 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5577     {
5578         (yyval.interm.type) = (yyvsp[-2].interm.type);
5579         (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
5580         parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
5581     }
5582 #line 5583 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5583     break;
5584
5585   case 143:
5586 #line 1207 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5587     {
5588         (yyval.interm.type).init((yyvsp[0].lex).loc);
5589         parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
5590     }
5591 #line 5592 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5592     break;
5593
5594   case 144:
5595 #line 1211 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5596     {
5597         (yyval.interm.type).init((yyvsp[-2].lex).loc);
5598         parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode));
5599     }
5600 #line 5601 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5601     break;
5602
5603   case 145:
5604 #line 1215 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5605     { // because "shared" is both an identifier and a keyword
5606         (yyval.interm.type).init((yyvsp[0].lex).loc);
5607         TString strShared("shared");
5608         parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
5609     }
5610 #line 5611 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5611     break;
5612
5613   case 146:
5614 #line 1223 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5615     {
5616         parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
5617         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
5618         (yyval.interm.type).init((yyvsp[0].lex).loc);
5619         (yyval.interm.type).qualifier.noContraction = true;
5620     }
5621 #line 5622 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5622     break;
5623
5624   case 147:
5625 #line 1232 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5626     {
5627         (yyval.interm.type) = (yyvsp[0].interm.type);
5628     }
5629 #line 5630 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5630     break;
5631
5632   case 148:
5633 #line 1235 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5634     {
5635         (yyval.interm.type) = (yyvsp[-1].interm.type);
5636         if ((yyval.interm.type).basicType == EbtVoid)
5637             (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType;
5638
5639         (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
5640         parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
5641     }
5642 #line 5643 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5643     break;
5644
5645   case 149:
5646 #line 1246 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5647     {
5648         (yyval.interm.type) = (yyvsp[0].interm.type);
5649     }
5650 #line 5651 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5651     break;
5652
5653   case 150:
5654 #line 1249 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5655     {
5656         (yyval.interm.type) = (yyvsp[0].interm.type);
5657     }
5658 #line 5659 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5659     break;
5660
5661   case 151:
5662 #line 1252 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5663     {
5664         parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
5665         (yyval.interm.type) = (yyvsp[0].interm.type);
5666     }
5667 #line 5668 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5668     break;
5669
5670   case 152:
5671 #line 1256 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5672     {
5673         // allow inheritance of storage qualifier from block declaration
5674         (yyval.interm.type) = (yyvsp[0].interm.type);
5675     }
5676 #line 5677 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5677     break;
5678
5679   case 153:
5680 #line 1260 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5681     {
5682         // allow inheritance of storage qualifier from block declaration
5683         (yyval.interm.type) = (yyvsp[0].interm.type);
5684     }
5685 #line 5686 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5686     break;
5687
5688   case 154:
5689 #line 1264 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5690     {
5691         // allow inheritance of storage qualifier from block declaration
5692         (yyval.interm.type) = (yyvsp[0].interm.type);
5693     }
5694 #line 5695 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5695     break;
5696
5697   case 155:
5698 #line 1268 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5699     {
5700         (yyval.interm.type) = (yyvsp[0].interm.type);
5701     }
5702 #line 5703 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5703     break;
5704
5705   case 156:
5706 #line 1274 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5707     {
5708         (yyval.interm.type).init((yyvsp[0].lex).loc);
5709         (yyval.interm.type).qualifier.storage = EvqConst;  // will later turn into EvqConstReadOnly, if the initializer is not constant
5710     }
5711 #line 5712 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5712     break;
5713
5714   case 157:
5715 #line 1278 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5716     {
5717         parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
5718         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
5719         parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute");
5720         parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute");
5721         parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute");
5722
5723         parseContext.globalCheck((yyvsp[0].lex).loc, "attribute");
5724
5725         (yyval.interm.type).init((yyvsp[0].lex).loc);
5726         (yyval.interm.type).qualifier.storage = EvqVaryingIn;
5727     }
5728 #line 5729 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5729     break;
5730
5731   case 158:
5732 #line 1290 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5733     {
5734         parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
5735         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
5736         parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying");
5737         parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying");
5738
5739         parseContext.globalCheck((yyvsp[0].lex).loc, "varying");
5740
5741         (yyval.interm.type).init((yyvsp[0].lex).loc);
5742         if (parseContext.language == EShLangVertex)
5743             (yyval.interm.type).qualifier.storage = EvqVaryingOut;
5744         else
5745             (yyval.interm.type).qualifier.storage = EvqVaryingIn;
5746     }
5747 #line 5748 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5748     break;
5749
5750   case 159:
5751 #line 1304 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5752     {
5753         parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
5754         (yyval.interm.type).init((yyvsp[0].lex).loc);
5755         (yyval.interm.type).qualifier.storage = EvqInOut;
5756     }
5757 #line 5758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5758     break;
5759
5760   case 160:
5761 #line 1309 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5762     {
5763         parseContext.globalCheck((yyvsp[0].lex).loc, "in");
5764         (yyval.interm.type).init((yyvsp[0].lex).loc);
5765         // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
5766         (yyval.interm.type).qualifier.storage = EvqIn;
5767     }
5768 #line 5769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5769     break;
5770
5771   case 161:
5772 #line 1315 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5773     {
5774         parseContext.globalCheck((yyvsp[0].lex).loc, "out");
5775         (yyval.interm.type).init((yyvsp[0].lex).loc);
5776         // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
5777         (yyval.interm.type).qualifier.storage = EvqOut;
5778     }
5779 #line 5780 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5780     break;
5781
5782   case 162:
5783 #line 1321 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5784     {
5785         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
5786         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
5787         parseContext.globalCheck((yyvsp[0].lex).loc, "centroid");
5788         (yyval.interm.type).init((yyvsp[0].lex).loc);
5789         (yyval.interm.type).qualifier.centroid = true;
5790     }
5791 #line 5792 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5792     break;
5793
5794   case 163:
5795 #line 1328 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5796     {
5797         parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
5798         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
5799         (yyval.interm.type).init((yyvsp[0].lex).loc);
5800         (yyval.interm.type).qualifier.patch = true;
5801     }
5802 #line 5803 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5803     break;
5804
5805   case 164:
5806 #line 1334 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5807     {
5808         parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
5809         (yyval.interm.type).init((yyvsp[0].lex).loc);
5810         (yyval.interm.type).qualifier.sample = true;
5811     }
5812 #line 5813 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5813     break;
5814
5815   case 165:
5816 #line 1339 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5817     {
5818         parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
5819         (yyval.interm.type).init((yyvsp[0].lex).loc);
5820         (yyval.interm.type).qualifier.storage = EvqUniform;
5821     }
5822 #line 5823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5823     break;
5824
5825   case 166:
5826 #line 1344 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5827     {
5828         parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
5829         (yyval.interm.type).init((yyvsp[0].lex).loc);
5830         (yyval.interm.type).qualifier.storage = EvqBuffer;
5831     }
5832 #line 5833 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5833     break;
5834
5835   case 167:
5836 #line 1349 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5837     {
5838 #ifdef NV_EXTENSIONS
5839         parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNVX");
5840         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectNVMask | EShLangClosestHitNVMask
5841             | EShLangAnyHitNVMask), "hitAttributeNVX");
5842         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_NVX_raytracing, "hitAttributeNVX");
5843         (yyval.interm.type).init((yyvsp[0].lex).loc);
5844         (yyval.interm.type).qualifier.storage = EvqHitAttrNV;
5845 #endif
5846     }
5847 #line 5848 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5848     break;
5849
5850   case 168:
5851 #line 1359 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5852     {
5853 #ifdef NV_EXTENSIONS
5854         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNVX");
5855         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangClosestHitNVMask |
5856             EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadNVX");
5857         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_NVX_raytracing, "rayPayloadNVX");
5858         (yyval.interm.type).init((yyvsp[0].lex).loc);
5859         (yyval.interm.type).qualifier.storage = EvqPayloadNV;
5860 #endif
5861     }
5862 #line 5863 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5863     break;
5864
5865   case 169:
5866 #line 1369 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5867     {
5868 #ifdef NV_EXTENSIONS
5869         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNVX");
5870         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitNVMask |
5871             EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadInNVX");
5872         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_NVX_raytracing, "rayPayloadInNVX");
5873         (yyval.interm.type).init((yyvsp[0].lex).loc);
5874         (yyval.interm.type).qualifier.storage = EvqPayloadInNV;
5875 #endif
5876     }
5877 #line 5878 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5878     break;
5879
5880   case 170:
5881 #line 1379 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5882     {
5883         parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
5884         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
5885         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared");
5886 #ifdef NV_EXTENSIONS
5887         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared");
5888 #else
5889         parseContext.requireStage((yyvsp[0].lex).loc, EShLangCompute, "shared");
5890 #endif
5891         (yyval.interm.type).init((yyvsp[0].lex).loc);
5892         (yyval.interm.type).qualifier.storage = EvqShared;
5893     }
5894 #line 5895 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5895     break;
5896
5897   case 171:
5898 #line 1391 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5899     {
5900         (yyval.interm.type).init((yyvsp[0].lex).loc);
5901         (yyval.interm.type).qualifier.coherent = true;
5902     }
5903 #line 5904 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5904     break;
5905
5906   case 172:
5907 #line 1395 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5908     {
5909         (yyval.interm.type).init((yyvsp[0].lex).loc);
5910         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
5911         (yyval.interm.type).qualifier.devicecoherent = true;
5912     }
5913 #line 5914 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5914     break;
5915
5916   case 173:
5917 #line 1400 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5918     {
5919         (yyval.interm.type).init((yyvsp[0].lex).loc);
5920         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent");
5921         (yyval.interm.type).qualifier.queuefamilycoherent = true;
5922     }
5923 #line 5924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5924     break;
5925
5926   case 174:
5927 #line 1405 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5928     {
5929         (yyval.interm.type).init((yyvsp[0].lex).loc);
5930         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent");
5931         (yyval.interm.type).qualifier.workgroupcoherent = true;
5932     }
5933 #line 5934 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5934     break;
5935
5936   case 175:
5937 #line 1410 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5938     {
5939         (yyval.interm.type).init((yyvsp[0].lex).loc);
5940         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent");
5941         (yyval.interm.type).qualifier.subgroupcoherent = true;
5942     }
5943 #line 5944 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5944     break;
5945
5946   case 176:
5947 #line 1415 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5948     {
5949         (yyval.interm.type).init((yyvsp[0].lex).loc);
5950         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate");
5951         (yyval.interm.type).qualifier.nonprivate = true;
5952     }
5953 #line 5954 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5954     break;
5955
5956   case 177:
5957 #line 1420 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5958     {
5959         (yyval.interm.type).init((yyvsp[0].lex).loc);
5960         (yyval.interm.type).qualifier.volatil = true;
5961     }
5962 #line 5963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5963     break;
5964
5965   case 178:
5966 #line 1424 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5967     {
5968         (yyval.interm.type).init((yyvsp[0].lex).loc);
5969         (yyval.interm.type).qualifier.restrict = true;
5970     }
5971 #line 5972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5972     break;
5973
5974   case 179:
5975 #line 1428 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5976     {
5977         (yyval.interm.type).init((yyvsp[0].lex).loc);
5978         (yyval.interm.type).qualifier.readonly = true;
5979     }
5980 #line 5981 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5981     break;
5982
5983   case 180:
5984 #line 1432 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5985     {
5986         (yyval.interm.type).init((yyvsp[0].lex).loc);
5987         (yyval.interm.type).qualifier.writeonly = true;
5988     }
5989 #line 5990 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5990     break;
5991
5992   case 181:
5993 #line 1436 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5994     {
5995         parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine");
5996         parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine");
5997         parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine");
5998         (yyval.interm.type).init((yyvsp[0].lex).loc);
5999     }
6000 #line 6001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6001     break;
6002
6003   case 182:
6004 #line 1442 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6005     {
6006         parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine");
6007         parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine");
6008         parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine");
6009         (yyval.interm.type).init((yyvsp[-3].lex).loc);
6010     }
6011 #line 6012 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6012     break;
6013
6014   case 183:
6015 #line 1451 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6016     {
6017         (yyval.interm.type).init((yyvsp[0].lex).loc);
6018         (yyval.interm.type).qualifier.nonUniform = true;
6019     }
6020 #line 6021 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6021     break;
6022
6023   case 184:
6024 #line 1458 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6025     {
6026         // TODO
6027     }
6028 #line 6029 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6029     break;
6030
6031   case 185:
6032 #line 1461 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6033     {
6034         // TODO: 4.0 semantics: subroutines
6035         // 1) make sure each identifier is a type declared earlier with SUBROUTINE
6036         // 2) save all of the identifiers for future comparison with the declared function
6037     }
6038 #line 6039 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6039     break;
6040
6041   case 186:
6042 #line 1469 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6043     {
6044         (yyval.interm.type) = (yyvsp[0].interm.type);
6045         (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
6046     }
6047 #line 6048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6048     break;
6049
6050   case 187:
6051 #line 1473 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6052     {
6053         parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes);
6054         (yyval.interm.type) = (yyvsp[-1].interm.type);
6055         (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
6056         (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
6057     }
6058 #line 6059 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6059     break;
6060
6061   case 188:
6062 #line 1482 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6063     {
6064         (yyval.interm).loc = (yyvsp[-1].lex).loc;
6065         (yyval.interm).arraySizes = new TArraySizes;
6066         (yyval.interm).arraySizes->addInnerSize();
6067     }
6068 #line 6069 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6069     break;
6070
6071   case 189:
6072 #line 1487 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6073     {
6074         (yyval.interm).loc = (yyvsp[-2].lex).loc;
6075         (yyval.interm).arraySizes = new TArraySizes;
6076
6077         TArraySize size;
6078         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size);
6079         (yyval.interm).arraySizes->addInnerSize(size);
6080     }
6081 #line 6082 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6082     break;
6083
6084   case 190:
6085 #line 1495 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6086     {
6087         (yyval.interm) = (yyvsp[-2].interm);
6088         (yyval.interm).arraySizes->addInnerSize();
6089     }
6090 #line 6091 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6091     break;
6092
6093   case 191:
6094 #line 1499 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6095     {
6096         (yyval.interm) = (yyvsp[-3].interm);
6097
6098         TArraySize size;
6099         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size);
6100         (yyval.interm).arraySizes->addInnerSize(size);
6101     }
6102 #line 6103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6103     break;
6104
6105   case 192:
6106 #line 1509 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6107     {
6108         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6109         (yyval.interm.type).basicType = EbtVoid;
6110     }
6111 #line 6112 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6112     break;
6113
6114   case 193:
6115 #line 1513 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6116     {
6117         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6118         (yyval.interm.type).basicType = EbtFloat;
6119     }
6120 #line 6121 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6121     break;
6122
6123   case 194:
6124 #line 1517 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6125     {
6126         parseContext.doubleCheck((yyvsp[0].lex).loc, "double");
6127         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6128         (yyval.interm.type).basicType = EbtDouble;
6129     }
6130 #line 6131 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6131     break;
6132
6133   case 195:
6134 #line 1522 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6135     {
6136         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel());
6137         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6138         (yyval.interm.type).basicType = EbtFloat16;
6139     }
6140 #line 6141 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6141     break;
6142
6143   case 196:
6144 #line 1527 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6145     {
6146         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel());
6147         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6148         (yyval.interm.type).basicType = EbtFloat;
6149     }
6150 #line 6151 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6151     break;
6152
6153   case 197:
6154 #line 1532 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6155     {
6156         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel());
6157         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6158         (yyval.interm.type).basicType = EbtDouble;
6159     }
6160 #line 6161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6161     break;
6162
6163   case 198:
6164 #line 1537 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6165     {
6166         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6167         (yyval.interm.type).basicType = EbtInt;
6168     }
6169 #line 6170 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6170     break;
6171
6172   case 199:
6173 #line 1541 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6174     {
6175         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
6176         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6177         (yyval.interm.type).basicType = EbtUint;
6178     }
6179 #line 6180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6180     break;
6181
6182   case 200:
6183 #line 1546 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6184     {
6185         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
6186         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6187         (yyval.interm.type).basicType = EbtInt8;
6188     }
6189 #line 6190 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6190     break;
6191
6192   case 201:
6193 #line 1551 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6194     {
6195         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6196         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6197         (yyval.interm.type).basicType = EbtUint8;
6198     }
6199 #line 6200 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6200     break;
6201
6202   case 202:
6203 #line 1556 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6204     {
6205         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
6206         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6207         (yyval.interm.type).basicType = EbtInt16;
6208     }
6209 #line 6210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6210     break;
6211
6212   case 203:
6213 #line 1561 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6214     {
6215         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6216         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6217         (yyval.interm.type).basicType = EbtUint16;
6218     }
6219 #line 6220 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6220     break;
6221
6222   case 204:
6223 #line 1566 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6224     {
6225         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
6226         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6227         (yyval.interm.type).basicType = EbtInt;
6228     }
6229 #line 6230 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6230     break;
6231
6232   case 205:
6233 #line 1571 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6234     {
6235         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6236         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6237         (yyval.interm.type).basicType = EbtUint;
6238     }
6239 #line 6240 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6240     break;
6241
6242   case 206:
6243 #line 1576 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6244     {
6245         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
6246         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6247         (yyval.interm.type).basicType = EbtInt64;
6248     }
6249 #line 6250 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6250     break;
6251
6252   case 207:
6253 #line 1581 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6254     {
6255         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6256         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6257         (yyval.interm.type).basicType = EbtUint64;
6258     }
6259 #line 6260 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6260     break;
6261
6262   case 208:
6263 #line 1586 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6264     {
6265         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6266         (yyval.interm.type).basicType = EbtBool;
6267     }
6268 #line 6269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6269     break;
6270
6271   case 209:
6272 #line 1590 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6273     {
6274         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6275         (yyval.interm.type).basicType = EbtFloat;
6276         (yyval.interm.type).setVector(2);
6277     }
6278 #line 6279 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6279     break;
6280
6281   case 210:
6282 #line 1595 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6283     {
6284         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6285         (yyval.interm.type).basicType = EbtFloat;
6286         (yyval.interm.type).setVector(3);
6287     }
6288 #line 6289 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6289     break;
6290
6291   case 211:
6292 #line 1600 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6293     {
6294         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6295         (yyval.interm.type).basicType = EbtFloat;
6296         (yyval.interm.type).setVector(4);
6297     }
6298 #line 6299 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6299     break;
6300
6301   case 212:
6302 #line 1605 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6303     {
6304         parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
6305         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6306         (yyval.interm.type).basicType = EbtDouble;
6307         (yyval.interm.type).setVector(2);
6308     }
6309 #line 6310 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6310     break;
6311
6312   case 213:
6313 #line 1611 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6314     {
6315         parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
6316         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6317         (yyval.interm.type).basicType = EbtDouble;
6318         (yyval.interm.type).setVector(3);
6319     }
6320 #line 6321 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6321     break;
6322
6323   case 214:
6324 #line 1617 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6325     {
6326         parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
6327         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6328         (yyval.interm.type).basicType = EbtDouble;
6329         (yyval.interm.type).setVector(4);
6330     }
6331 #line 6332 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6332     break;
6333
6334   case 215:
6335 #line 1623 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6336     {
6337         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
6338         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6339         (yyval.interm.type).basicType = EbtFloat16;
6340         (yyval.interm.type).setVector(2);
6341     }
6342 #line 6343 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6343     break;
6344
6345   case 216:
6346 #line 1629 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6347     {
6348         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
6349         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6350         (yyval.interm.type).basicType = EbtFloat16;
6351         (yyval.interm.type).setVector(3);
6352     }
6353 #line 6354 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6354     break;
6355
6356   case 217:
6357 #line 1635 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6358     {
6359         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
6360         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6361         (yyval.interm.type).basicType = EbtFloat16;
6362         (yyval.interm.type).setVector(4);
6363     }
6364 #line 6365 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6365     break;
6366
6367   case 218:
6368 #line 1641 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6369     {
6370         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
6371         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6372         (yyval.interm.type).basicType = EbtFloat;
6373         (yyval.interm.type).setVector(2);
6374     }
6375 #line 6376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6376     break;
6377
6378   case 219:
6379 #line 1647 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6380     {
6381         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
6382         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6383         (yyval.interm.type).basicType = EbtFloat;
6384         (yyval.interm.type).setVector(3);
6385     }
6386 #line 6387 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6387     break;
6388
6389   case 220:
6390 #line 1653 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6391     {
6392         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
6393         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6394         (yyval.interm.type).basicType = EbtFloat;
6395         (yyval.interm.type).setVector(4);
6396     }
6397 #line 6398 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6398     break;
6399
6400   case 221:
6401 #line 1659 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6402     {
6403         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
6404         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6405         (yyval.interm.type).basicType = EbtDouble;
6406         (yyval.interm.type).setVector(2);
6407     }
6408 #line 6409 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6409     break;
6410
6411   case 222:
6412 #line 1665 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6413     {
6414         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
6415         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6416         (yyval.interm.type).basicType = EbtDouble;
6417         (yyval.interm.type).setVector(3);
6418     }
6419 #line 6420 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6420     break;
6421
6422   case 223:
6423 #line 1671 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6424     {
6425         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
6426         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6427         (yyval.interm.type).basicType = EbtDouble;
6428         (yyval.interm.type).setVector(4);
6429     }
6430 #line 6431 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6431     break;
6432
6433   case 224:
6434 #line 1677 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6435     {
6436         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6437         (yyval.interm.type).basicType = EbtBool;
6438         (yyval.interm.type).setVector(2);
6439     }
6440 #line 6441 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6441     break;
6442
6443   case 225:
6444 #line 1682 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6445     {
6446         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6447         (yyval.interm.type).basicType = EbtBool;
6448         (yyval.interm.type).setVector(3);
6449     }
6450 #line 6451 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6451     break;
6452
6453   case 226:
6454 #line 1687 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6455     {
6456         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6457         (yyval.interm.type).basicType = EbtBool;
6458         (yyval.interm.type).setVector(4);
6459     }
6460 #line 6461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6461     break;
6462
6463   case 227:
6464 #line 1692 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6465     {
6466         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6467         (yyval.interm.type).basicType = EbtInt;
6468         (yyval.interm.type).setVector(2);
6469     }
6470 #line 6471 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6471     break;
6472
6473   case 228:
6474 #line 1697 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6475     {
6476         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6477         (yyval.interm.type).basicType = EbtInt;
6478         (yyval.interm.type).setVector(3);
6479     }
6480 #line 6481 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6481     break;
6482
6483   case 229:
6484 #line 1702 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6485     {
6486         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6487         (yyval.interm.type).basicType = EbtInt;
6488         (yyval.interm.type).setVector(4);
6489     }
6490 #line 6491 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6491     break;
6492
6493   case 230:
6494 #line 1707 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6495     {
6496         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6497         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6498         (yyval.interm.type).basicType = EbtInt8;
6499         (yyval.interm.type).setVector(2);
6500     }
6501 #line 6502 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6502     break;
6503
6504   case 231:
6505 #line 1713 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6506     {
6507         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6508         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6509         (yyval.interm.type).basicType = EbtInt8;
6510         (yyval.interm.type).setVector(3);
6511     }
6512 #line 6513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6513     break;
6514
6515   case 232:
6516 #line 1719 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6517     {
6518         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6519         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6520         (yyval.interm.type).basicType = EbtInt8;
6521         (yyval.interm.type).setVector(4);
6522     }
6523 #line 6524 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6524     break;
6525
6526   case 233:
6527 #line 1725 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6528     {
6529         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6530         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6531         (yyval.interm.type).basicType = EbtInt16;
6532         (yyval.interm.type).setVector(2);
6533     }
6534 #line 6535 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6535     break;
6536
6537   case 234:
6538 #line 1731 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6539     {
6540         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6541         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6542         (yyval.interm.type).basicType = EbtInt16;
6543         (yyval.interm.type).setVector(3);
6544     }
6545 #line 6546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6546     break;
6547
6548   case 235:
6549 #line 1737 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6550     {
6551         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6552         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6553         (yyval.interm.type).basicType = EbtInt16;
6554         (yyval.interm.type).setVector(4);
6555     }
6556 #line 6557 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6557     break;
6558
6559   case 236:
6560 #line 1743 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6561     {
6562         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6563         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6564         (yyval.interm.type).basicType = EbtInt;
6565         (yyval.interm.type).setVector(2);
6566     }
6567 #line 6568 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6568     break;
6569
6570   case 237:
6571 #line 1749 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6572     {
6573         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6574         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6575         (yyval.interm.type).basicType = EbtInt;
6576         (yyval.interm.type).setVector(3);
6577     }
6578 #line 6579 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6579     break;
6580
6581   case 238:
6582 #line 1755 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6583     {
6584         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6585         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6586         (yyval.interm.type).basicType = EbtInt;
6587         (yyval.interm.type).setVector(4);
6588     }
6589 #line 6590 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6590     break;
6591
6592   case 239:
6593 #line 1761 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6594     {
6595         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
6596         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6597         (yyval.interm.type).basicType = EbtInt64;
6598         (yyval.interm.type).setVector(2);
6599     }
6600 #line 6601 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6601     break;
6602
6603   case 240:
6604 #line 1767 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6605     {
6606         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
6607         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6608         (yyval.interm.type).basicType = EbtInt64;
6609         (yyval.interm.type).setVector(3);
6610     }
6611 #line 6612 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6612     break;
6613
6614   case 241:
6615 #line 1773 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6616     {
6617         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
6618         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6619         (yyval.interm.type).basicType = EbtInt64;
6620         (yyval.interm.type).setVector(4);
6621     }
6622 #line 6623 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6623     break;
6624
6625   case 242:
6626 #line 1779 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6627     {
6628         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6629         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6630         (yyval.interm.type).basicType = EbtUint;
6631         (yyval.interm.type).setVector(2);
6632     }
6633 #line 6634 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6634     break;
6635
6636   case 243:
6637 #line 1785 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6638     {
6639         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6640         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6641         (yyval.interm.type).basicType = EbtUint;
6642         (yyval.interm.type).setVector(3);
6643     }
6644 #line 6645 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6645     break;
6646
6647   case 244:
6648 #line 1791 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6649     {
6650         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6651         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6652         (yyval.interm.type).basicType = EbtUint;
6653         (yyval.interm.type).setVector(4);
6654     }
6655 #line 6656 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6656     break;
6657
6658   case 245:
6659 #line 1797 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6660     {
6661         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6662         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6663         (yyval.interm.type).basicType = EbtUint8;
6664         (yyval.interm.type).setVector(2);
6665     }
6666 #line 6667 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6667     break;
6668
6669   case 246:
6670 #line 1803 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6671     {
6672         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6673         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6674         (yyval.interm.type).basicType = EbtUint8;
6675         (yyval.interm.type).setVector(3);
6676     }
6677 #line 6678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6678     break;
6679
6680   case 247:
6681 #line 1809 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6682     {
6683         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6684         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6685         (yyval.interm.type).basicType = EbtUint8;
6686         (yyval.interm.type).setVector(4);
6687     }
6688 #line 6689 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6689     break;
6690
6691   case 248:
6692 #line 1815 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6693     {
6694         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6695         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6696         (yyval.interm.type).basicType = EbtUint16;
6697         (yyval.interm.type).setVector(2);
6698     }
6699 #line 6700 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6700     break;
6701
6702   case 249:
6703 #line 1821 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6704     {
6705         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6706         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6707         (yyval.interm.type).basicType = EbtUint16;
6708         (yyval.interm.type).setVector(3);
6709     }
6710 #line 6711 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6711     break;
6712
6713   case 250:
6714 #line 1827 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6715     {
6716         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6717         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6718         (yyval.interm.type).basicType = EbtUint16;
6719         (yyval.interm.type).setVector(4);
6720     }
6721 #line 6722 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6722     break;
6723
6724   case 251:
6725 #line 1833 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6726     {
6727         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6728         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6729         (yyval.interm.type).basicType = EbtUint;
6730         (yyval.interm.type).setVector(2);
6731     }
6732 #line 6733 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6733     break;
6734
6735   case 252:
6736 #line 1839 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6737     {
6738         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6739         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6740         (yyval.interm.type).basicType = EbtUint;
6741         (yyval.interm.type).setVector(3);
6742     }
6743 #line 6744 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6744     break;
6745
6746   case 253:
6747 #line 1845 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6748     {
6749         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6750         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6751         (yyval.interm.type).basicType = EbtUint;
6752         (yyval.interm.type).setVector(4);
6753     }
6754 #line 6755 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6755     break;
6756
6757   case 254:
6758 #line 1851 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6759     {
6760         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6761         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6762         (yyval.interm.type).basicType = EbtUint64;
6763         (yyval.interm.type).setVector(2);
6764     }
6765 #line 6766 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6766     break;
6767
6768   case 255:
6769 #line 1857 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6770     {
6771         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6772         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6773         (yyval.interm.type).basicType = EbtUint64;
6774         (yyval.interm.type).setVector(3);
6775     }
6776 #line 6777 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6777     break;
6778
6779   case 256:
6780 #line 1863 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6781     {
6782         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6783         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6784         (yyval.interm.type).basicType = EbtUint64;
6785         (yyval.interm.type).setVector(4);
6786     }
6787 #line 6788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6788     break;
6789
6790   case 257:
6791 #line 1869 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6792     {
6793         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6794         (yyval.interm.type).basicType = EbtFloat;
6795         (yyval.interm.type).setMatrix(2, 2);
6796     }
6797 #line 6798 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6798     break;
6799
6800   case 258:
6801 #line 1874 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6802     {
6803         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6804         (yyval.interm.type).basicType = EbtFloat;
6805         (yyval.interm.type).setMatrix(3, 3);
6806     }
6807 #line 6808 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6808     break;
6809
6810   case 259:
6811 #line 1879 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6812     {
6813         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6814         (yyval.interm.type).basicType = EbtFloat;
6815         (yyval.interm.type).setMatrix(4, 4);
6816     }
6817 #line 6818 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6818     break;
6819
6820   case 260:
6821 #line 1884 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6822     {
6823         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6824         (yyval.interm.type).basicType = EbtFloat;
6825         (yyval.interm.type).setMatrix(2, 2);
6826     }
6827 #line 6828 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6828     break;
6829
6830   case 261:
6831 #line 1889 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6832     {
6833         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6834         (yyval.interm.type).basicType = EbtFloat;
6835         (yyval.interm.type).setMatrix(2, 3);
6836     }
6837 #line 6838 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6838     break;
6839
6840   case 262:
6841 #line 1894 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6842     {
6843         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6844         (yyval.interm.type).basicType = EbtFloat;
6845         (yyval.interm.type).setMatrix(2, 4);
6846     }
6847 #line 6848 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6848     break;
6849
6850   case 263:
6851 #line 1899 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6852     {
6853         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6854         (yyval.interm.type).basicType = EbtFloat;
6855         (yyval.interm.type).setMatrix(3, 2);
6856     }
6857 #line 6858 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6858     break;
6859
6860   case 264:
6861 #line 1904 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6862     {
6863         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6864         (yyval.interm.type).basicType = EbtFloat;
6865         (yyval.interm.type).setMatrix(3, 3);
6866     }
6867 #line 6868 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6868     break;
6869
6870   case 265:
6871 #line 1909 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6872     {
6873         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6874         (yyval.interm.type).basicType = EbtFloat;
6875         (yyval.interm.type).setMatrix(3, 4);
6876     }
6877 #line 6878 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6878     break;
6879
6880   case 266:
6881 #line 1914 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6882     {
6883         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6884         (yyval.interm.type).basicType = EbtFloat;
6885         (yyval.interm.type).setMatrix(4, 2);
6886     }
6887 #line 6888 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6888     break;
6889
6890   case 267:
6891 #line 1919 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6892     {
6893         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6894         (yyval.interm.type).basicType = EbtFloat;
6895         (yyval.interm.type).setMatrix(4, 3);
6896     }
6897 #line 6898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6898     break;
6899
6900   case 268:
6901 #line 1924 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6902     {
6903         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6904         (yyval.interm.type).basicType = EbtFloat;
6905         (yyval.interm.type).setMatrix(4, 4);
6906     }
6907 #line 6908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6908     break;
6909
6910   case 269:
6911 #line 1929 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6912     {
6913         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
6914         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6915         (yyval.interm.type).basicType = EbtDouble;
6916         (yyval.interm.type).setMatrix(2, 2);
6917     }
6918 #line 6919 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6919     break;
6920
6921   case 270:
6922 #line 1935 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6923     {
6924         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
6925         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6926         (yyval.interm.type).basicType = EbtDouble;
6927         (yyval.interm.type).setMatrix(3, 3);
6928     }
6929 #line 6930 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6930     break;
6931
6932   case 271:
6933 #line 1941 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6934     {
6935         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
6936         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6937         (yyval.interm.type).basicType = EbtDouble;
6938         (yyval.interm.type).setMatrix(4, 4);
6939     }
6940 #line 6941 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6941     break;
6942
6943   case 272:
6944 #line 1947 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6945     {
6946         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
6947         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6948         (yyval.interm.type).basicType = EbtDouble;
6949         (yyval.interm.type).setMatrix(2, 2);
6950     }
6951 #line 6952 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6952     break;
6953
6954   case 273:
6955 #line 1953 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6956     {
6957         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
6958         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6959         (yyval.interm.type).basicType = EbtDouble;
6960         (yyval.interm.type).setMatrix(2, 3);
6961     }
6962 #line 6963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6963     break;
6964
6965   case 274:
6966 #line 1959 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6967     {
6968         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
6969         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6970         (yyval.interm.type).basicType = EbtDouble;
6971         (yyval.interm.type).setMatrix(2, 4);
6972     }
6973 #line 6974 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6974     break;
6975
6976   case 275:
6977 #line 1965 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6978     {
6979         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
6980         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6981         (yyval.interm.type).basicType = EbtDouble;
6982         (yyval.interm.type).setMatrix(3, 2);
6983     }
6984 #line 6985 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6985     break;
6986
6987   case 276:
6988 #line 1971 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6989     {
6990         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
6991         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6992         (yyval.interm.type).basicType = EbtDouble;
6993         (yyval.interm.type).setMatrix(3, 3);
6994     }
6995 #line 6996 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6996     break;
6997
6998   case 277:
6999 #line 1977 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7000     {
7001         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7002         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7003         (yyval.interm.type).basicType = EbtDouble;
7004         (yyval.interm.type).setMatrix(3, 4);
7005     }
7006 #line 7007 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7007     break;
7008
7009   case 278:
7010 #line 1983 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7011     {
7012         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7013         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7014         (yyval.interm.type).basicType = EbtDouble;
7015         (yyval.interm.type).setMatrix(4, 2);
7016     }
7017 #line 7018 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7018     break;
7019
7020   case 279:
7021 #line 1989 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7022     {
7023         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7024         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7025         (yyval.interm.type).basicType = EbtDouble;
7026         (yyval.interm.type).setMatrix(4, 3);
7027     }
7028 #line 7029 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7029     break;
7030
7031   case 280:
7032 #line 1995 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7033     {
7034         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7035         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7036         (yyval.interm.type).basicType = EbtDouble;
7037         (yyval.interm.type).setMatrix(4, 4);
7038     }
7039 #line 7040 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7040     break;
7041
7042   case 281:
7043 #line 2001 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7044     {
7045         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7046         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7047         (yyval.interm.type).basicType = EbtFloat16;
7048         (yyval.interm.type).setMatrix(2, 2);
7049     }
7050 #line 7051 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7051     break;
7052
7053   case 282:
7054 #line 2007 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7055     {
7056         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7057         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7058         (yyval.interm.type).basicType = EbtFloat16;
7059         (yyval.interm.type).setMatrix(3, 3);
7060     }
7061 #line 7062 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7062     break;
7063
7064   case 283:
7065 #line 2013 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7066     {
7067         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7068         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7069         (yyval.interm.type).basicType = EbtFloat16;
7070         (yyval.interm.type).setMatrix(4, 4);
7071     }
7072 #line 7073 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7073     break;
7074
7075   case 284:
7076 #line 2019 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7077     {
7078         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7079         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7080         (yyval.interm.type).basicType = EbtFloat16;
7081         (yyval.interm.type).setMatrix(2, 2);
7082     }
7083 #line 7084 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7084     break;
7085
7086   case 285:
7087 #line 2025 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7088     {
7089         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7090         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7091         (yyval.interm.type).basicType = EbtFloat16;
7092         (yyval.interm.type).setMatrix(2, 3);
7093     }
7094 #line 7095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7095     break;
7096
7097   case 286:
7098 #line 2031 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7099     {
7100         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7101         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7102         (yyval.interm.type).basicType = EbtFloat16;
7103         (yyval.interm.type).setMatrix(2, 4);
7104     }
7105 #line 7106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7106     break;
7107
7108   case 287:
7109 #line 2037 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7110     {
7111         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7112         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7113         (yyval.interm.type).basicType = EbtFloat16;
7114         (yyval.interm.type).setMatrix(3, 2);
7115     }
7116 #line 7117 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7117     break;
7118
7119   case 288:
7120 #line 2043 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7121     {
7122         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7123         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7124         (yyval.interm.type).basicType = EbtFloat16;
7125         (yyval.interm.type).setMatrix(3, 3);
7126     }
7127 #line 7128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7128     break;
7129
7130   case 289:
7131 #line 2049 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7132     {
7133         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7134         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7135         (yyval.interm.type).basicType = EbtFloat16;
7136         (yyval.interm.type).setMatrix(3, 4);
7137     }
7138 #line 7139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7139     break;
7140
7141   case 290:
7142 #line 2055 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7143     {
7144         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7145         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7146         (yyval.interm.type).basicType = EbtFloat16;
7147         (yyval.interm.type).setMatrix(4, 2);
7148     }
7149 #line 7150 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7150     break;
7151
7152   case 291:
7153 #line 2061 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7154     {
7155         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7156         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7157         (yyval.interm.type).basicType = EbtFloat16;
7158         (yyval.interm.type).setMatrix(4, 3);
7159     }
7160 #line 7161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7161     break;
7162
7163   case 292:
7164 #line 2067 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7165     {
7166         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7167         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7168         (yyval.interm.type).basicType = EbtFloat16;
7169         (yyval.interm.type).setMatrix(4, 4);
7170     }
7171 #line 7172 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7172     break;
7173
7174   case 293:
7175 #line 2073 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7176     {
7177         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7178         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7179         (yyval.interm.type).basicType = EbtFloat;
7180         (yyval.interm.type).setMatrix(2, 2);
7181     }
7182 #line 7183 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7183     break;
7184
7185   case 294:
7186 #line 2079 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7187     {
7188         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7189         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7190         (yyval.interm.type).basicType = EbtFloat;
7191         (yyval.interm.type).setMatrix(3, 3);
7192     }
7193 #line 7194 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7194     break;
7195
7196   case 295:
7197 #line 2085 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7198     {
7199         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7200         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7201         (yyval.interm.type).basicType = EbtFloat;
7202         (yyval.interm.type).setMatrix(4, 4);
7203     }
7204 #line 7205 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7205     break;
7206
7207   case 296:
7208 #line 2091 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7209     {
7210         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7211         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7212         (yyval.interm.type).basicType = EbtFloat;
7213         (yyval.interm.type).setMatrix(2, 2);
7214     }
7215 #line 7216 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7216     break;
7217
7218   case 297:
7219 #line 2097 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7220     {
7221         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7222         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7223         (yyval.interm.type).basicType = EbtFloat;
7224         (yyval.interm.type).setMatrix(2, 3);
7225     }
7226 #line 7227 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7227     break;
7228
7229   case 298:
7230 #line 2103 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7231     {
7232         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7233         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7234         (yyval.interm.type).basicType = EbtFloat;
7235         (yyval.interm.type).setMatrix(2, 4);
7236     }
7237 #line 7238 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7238     break;
7239
7240   case 299:
7241 #line 2109 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7242     {
7243         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7244         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7245         (yyval.interm.type).basicType = EbtFloat;
7246         (yyval.interm.type).setMatrix(3, 2);
7247     }
7248 #line 7249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7249     break;
7250
7251   case 300:
7252 #line 2115 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7253     {
7254         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7255         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7256         (yyval.interm.type).basicType = EbtFloat;
7257         (yyval.interm.type).setMatrix(3, 3);
7258     }
7259 #line 7260 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7260     break;
7261
7262   case 301:
7263 #line 2121 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7264     {
7265         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7266         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7267         (yyval.interm.type).basicType = EbtFloat;
7268         (yyval.interm.type).setMatrix(3, 4);
7269     }
7270 #line 7271 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7271     break;
7272
7273   case 302:
7274 #line 2127 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7275     {
7276         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7277         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7278         (yyval.interm.type).basicType = EbtFloat;
7279         (yyval.interm.type).setMatrix(4, 2);
7280     }
7281 #line 7282 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7282     break;
7283
7284   case 303:
7285 #line 2133 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7286     {
7287         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7288         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7289         (yyval.interm.type).basicType = EbtFloat;
7290         (yyval.interm.type).setMatrix(4, 3);
7291     }
7292 #line 7293 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7293     break;
7294
7295   case 304:
7296 #line 2139 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7297     {
7298         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7299         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7300         (yyval.interm.type).basicType = EbtFloat;
7301         (yyval.interm.type).setMatrix(4, 4);
7302     }
7303 #line 7304 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7304     break;
7305
7306   case 305:
7307 #line 2145 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7308     {
7309         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7310         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7311         (yyval.interm.type).basicType = EbtDouble;
7312         (yyval.interm.type).setMatrix(2, 2);
7313     }
7314 #line 7315 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7315     break;
7316
7317   case 306:
7318 #line 2151 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7319     {
7320         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7321         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7322         (yyval.interm.type).basicType = EbtDouble;
7323         (yyval.interm.type).setMatrix(3, 3);
7324     }
7325 #line 7326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7326     break;
7327
7328   case 307:
7329 #line 2157 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7330     {
7331         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7332         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7333         (yyval.interm.type).basicType = EbtDouble;
7334         (yyval.interm.type).setMatrix(4, 4);
7335     }
7336 #line 7337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7337     break;
7338
7339   case 308:
7340 #line 2163 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7341     {
7342         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7343         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7344         (yyval.interm.type).basicType = EbtDouble;
7345         (yyval.interm.type).setMatrix(2, 2);
7346     }
7347 #line 7348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7348     break;
7349
7350   case 309:
7351 #line 2169 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7352     {
7353         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7354         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7355         (yyval.interm.type).basicType = EbtDouble;
7356         (yyval.interm.type).setMatrix(2, 3);
7357     }
7358 #line 7359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7359     break;
7360
7361   case 310:
7362 #line 2175 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7363     {
7364         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7365         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7366         (yyval.interm.type).basicType = EbtDouble;
7367         (yyval.interm.type).setMatrix(2, 4);
7368     }
7369 #line 7370 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7370     break;
7371
7372   case 311:
7373 #line 2181 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7374     {
7375         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7376         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7377         (yyval.interm.type).basicType = EbtDouble;
7378         (yyval.interm.type).setMatrix(3, 2);
7379     }
7380 #line 7381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7381     break;
7382
7383   case 312:
7384 #line 2187 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7385     {
7386         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7387         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7388         (yyval.interm.type).basicType = EbtDouble;
7389         (yyval.interm.type).setMatrix(3, 3);
7390     }
7391 #line 7392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7392     break;
7393
7394   case 313:
7395 #line 2193 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7396     {
7397         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7398         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7399         (yyval.interm.type).basicType = EbtDouble;
7400         (yyval.interm.type).setMatrix(3, 4);
7401     }
7402 #line 7403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7403     break;
7404
7405   case 314:
7406 #line 2199 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7407     {
7408         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7409         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7410         (yyval.interm.type).basicType = EbtDouble;
7411         (yyval.interm.type).setMatrix(4, 2);
7412     }
7413 #line 7414 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7414     break;
7415
7416   case 315:
7417 #line 2205 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7418     {
7419         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7420         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7421         (yyval.interm.type).basicType = EbtDouble;
7422         (yyval.interm.type).setMatrix(4, 3);
7423     }
7424 #line 7425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7425     break;
7426
7427   case 316:
7428 #line 2211 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7429     {
7430         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7431         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7432         (yyval.interm.type).basicType = EbtDouble;
7433         (yyval.interm.type).setMatrix(4, 4);
7434     }
7435 #line 7436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7436     break;
7437
7438   case 317:
7439 #line 2217 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7440     {
7441 #ifdef NV_EXTENSIONS
7442        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7443        (yyval.interm.type).basicType = EbtAccStructNV;
7444 #endif
7445     }
7446 #line 7447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7447     break;
7448
7449   case 318:
7450 #line 2223 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7451     {
7452         parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types");
7453         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7454         (yyval.interm.type).basicType = EbtAtomicUint;
7455     }
7456 #line 7457 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7457     break;
7458
7459   case 319:
7460 #line 2228 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7461     {
7462         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7463         (yyval.interm.type).basicType = EbtSampler;
7464         (yyval.interm.type).sampler.set(EbtFloat, Esd1D);
7465     }
7466 #line 7467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7467     break;
7468
7469   case 320:
7470 #line 2233 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7471     {
7472         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7473         (yyval.interm.type).basicType = EbtSampler;
7474         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
7475     }
7476 #line 7477 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7477     break;
7478
7479   case 321:
7480 #line 2238 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7481     {
7482         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7483         (yyval.interm.type).basicType = EbtSampler;
7484         (yyval.interm.type).sampler.set(EbtFloat, Esd3D);
7485     }
7486 #line 7487 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7487     break;
7488
7489   case 322:
7490 #line 2243 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7491     {
7492         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7493         (yyval.interm.type).basicType = EbtSampler;
7494         (yyval.interm.type).sampler.set(EbtFloat, EsdCube);
7495     }
7496 #line 7497 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7497     break;
7498
7499   case 323:
7500 #line 2248 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7501     {
7502         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7503         (yyval.interm.type).basicType = EbtSampler;
7504         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
7505     }
7506 #line 7507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7507     break;
7508
7509   case 324:
7510 #line 2253 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7511     {
7512         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7513         (yyval.interm.type).basicType = EbtSampler;
7514         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
7515     }
7516 #line 7517 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7517     break;
7518
7519   case 325:
7520 #line 2258 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7521     {
7522         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7523         (yyval.interm.type).basicType = EbtSampler;
7524         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
7525     }
7526 #line 7527 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7527     break;
7528
7529   case 326:
7530 #line 2263 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7531     {
7532         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7533         (yyval.interm.type).basicType = EbtSampler;
7534         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
7535     }
7536 #line 7537 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7537     break;
7538
7539   case 327:
7540 #line 2268 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7541     {
7542         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7543         (yyval.interm.type).basicType = EbtSampler;
7544         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
7545     }
7546 #line 7547 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7547     break;
7548
7549   case 328:
7550 #line 2273 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7551     {
7552         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7553         (yyval.interm.type).basicType = EbtSampler;
7554         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
7555     }
7556 #line 7557 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7557     break;
7558
7559   case 329:
7560 #line 2278 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7561     {
7562         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7563         (yyval.interm.type).basicType = EbtSampler;
7564         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
7565     }
7566 #line 7567 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7567     break;
7568
7569   case 330:
7570 #line 2283 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7571     {
7572         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7573         (yyval.interm.type).basicType = EbtSampler;
7574         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
7575     }
7576 #line 7577 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7577     break;
7578
7579   case 331:
7580 #line 2288 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7581     {
7582         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7583         (yyval.interm.type).basicType = EbtSampler;
7584         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
7585     }
7586 #line 7587 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7587     break;
7588
7589   case 332:
7590 #line 2293 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7591     {
7592 #ifdef AMD_EXTENSIONS
7593         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7594         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7595         (yyval.interm.type).basicType = EbtSampler;
7596         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D);
7597 #endif
7598     }
7599 #line 7600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7600     break;
7601
7602   case 333:
7603 #line 2301 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7604     {
7605 #ifdef AMD_EXTENSIONS
7606         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7607         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7608         (yyval.interm.type).basicType = EbtSampler;
7609         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D);
7610 #endif
7611     }
7612 #line 7613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7613     break;
7614
7615   case 334:
7616 #line 2309 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7617     {
7618 #ifdef AMD_EXTENSIONS
7619         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7620         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7621         (yyval.interm.type).basicType = EbtSampler;
7622         (yyval.interm.type).sampler.set(EbtFloat16, Esd3D);
7623 #endif
7624     }
7625 #line 7626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7626     break;
7627
7628   case 335:
7629 #line 2317 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7630     {
7631 #ifdef AMD_EXTENSIONS
7632         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7633         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7634         (yyval.interm.type).basicType = EbtSampler;
7635         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube);
7636 #endif
7637     }
7638 #line 7639 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7639     break;
7640
7641   case 336:
7642 #line 2325 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7643     {
7644 #ifdef AMD_EXTENSIONS
7645         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7646         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7647         (yyval.interm.type).basicType = EbtSampler;
7648         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true);
7649 #endif
7650     }
7651 #line 7652 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7652     break;
7653
7654   case 337:
7655 #line 2333 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7656     {
7657 #ifdef AMD_EXTENSIONS
7658         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7659         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7660         (yyval.interm.type).basicType = EbtSampler;
7661         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true);
7662 #endif
7663     }
7664 #line 7665 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7665     break;
7666
7667   case 338:
7668 #line 2341 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7669     {
7670 #ifdef AMD_EXTENSIONS
7671         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7672         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7673         (yyval.interm.type).basicType = EbtSampler;
7674         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true);
7675 #endif
7676     }
7677 #line 7678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7678     break;
7679
7680   case 339:
7681 #line 2349 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7682     {
7683 #ifdef AMD_EXTENSIONS
7684         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7685         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7686         (yyval.interm.type).basicType = EbtSampler;
7687         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true);
7688 #endif
7689     }
7690 #line 7691 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7691     break;
7692
7693   case 340:
7694 #line 2357 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7695     {
7696 #ifdef AMD_EXTENSIONS
7697         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7698         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7699         (yyval.interm.type).basicType = EbtSampler;
7700         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true);
7701 #endif
7702     }
7703 #line 7704 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7704     break;
7705
7706   case 341:
7707 #line 2365 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7708     {
7709 #ifdef AMD_EXTENSIONS
7710         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7711         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7712         (yyval.interm.type).basicType = EbtSampler;
7713         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true);
7714 #endif
7715     }
7716 #line 7717 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7717     break;
7718
7719   case 342:
7720 #line 2373 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7721     {
7722 #ifdef AMD_EXTENSIONS
7723         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7724         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7725         (yyval.interm.type).basicType = EbtSampler;
7726         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true);
7727 #endif
7728     }
7729 #line 7730 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7730     break;
7731
7732   case 343:
7733 #line 2381 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7734     {
7735 #ifdef AMD_EXTENSIONS
7736         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7737         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7738         (yyval.interm.type).basicType = EbtSampler;
7739         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true);
7740 #endif
7741     }
7742 #line 7743 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7743     break;
7744
7745   case 344:
7746 #line 2389 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7747     {
7748 #ifdef AMD_EXTENSIONS
7749         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7750         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7751         (yyval.interm.type).basicType = EbtSampler;
7752         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true);
7753 #endif
7754     }
7755 #line 7756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7756     break;
7757
7758   case 345:
7759 #line 2397 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7760     {
7761         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7762         (yyval.interm.type).basicType = EbtSampler;
7763         (yyval.interm.type).sampler.set(EbtInt, Esd1D);
7764     }
7765 #line 7766 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7766     break;
7767
7768   case 346:
7769 #line 2402 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7770     {
7771         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7772         (yyval.interm.type).basicType = EbtSampler;
7773         (yyval.interm.type).sampler.set(EbtInt, Esd2D);
7774     }
7775 #line 7776 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7776     break;
7777
7778   case 347:
7779 #line 2407 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7780     {
7781         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7782         (yyval.interm.type).basicType = EbtSampler;
7783         (yyval.interm.type).sampler.set(EbtInt, Esd3D);
7784     }
7785 #line 7786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7786     break;
7787
7788   case 348:
7789 #line 2412 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7790     {
7791         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7792         (yyval.interm.type).basicType = EbtSampler;
7793         (yyval.interm.type).sampler.set(EbtInt, EsdCube);
7794     }
7795 #line 7796 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7796     break;
7797
7798   case 349:
7799 #line 2417 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7800     {
7801         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7802         (yyval.interm.type).basicType = EbtSampler;
7803         (yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
7804     }
7805 #line 7806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7806     break;
7807
7808   case 350:
7809 #line 2422 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7810     {
7811         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7812         (yyval.interm.type).basicType = EbtSampler;
7813         (yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
7814     }
7815 #line 7816 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7816     break;
7817
7818   case 351:
7819 #line 2427 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7820     {
7821         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7822         (yyval.interm.type).basicType = EbtSampler;
7823         (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
7824     }
7825 #line 7826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7826     break;
7827
7828   case 352:
7829 #line 2432 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7830     {
7831         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7832         (yyval.interm.type).basicType = EbtSampler;
7833         (yyval.interm.type).sampler.set(EbtUint, Esd1D);
7834     }
7835 #line 7836 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7836     break;
7837
7838   case 353:
7839 #line 2437 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7840     {
7841         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7842         (yyval.interm.type).basicType = EbtSampler;
7843         (yyval.interm.type).sampler.set(EbtUint, Esd2D);
7844     }
7845 #line 7846 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7846     break;
7847
7848   case 354:
7849 #line 2442 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7850     {
7851         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7852         (yyval.interm.type).basicType = EbtSampler;
7853         (yyval.interm.type).sampler.set(EbtUint, Esd3D);
7854     }
7855 #line 7856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7856     break;
7857
7858   case 355:
7859 #line 2447 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7860     {
7861         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7862         (yyval.interm.type).basicType = EbtSampler;
7863         (yyval.interm.type).sampler.set(EbtUint, EsdCube);
7864     }
7865 #line 7866 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7866     break;
7867
7868   case 356:
7869 #line 2452 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7870     {
7871         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7872         (yyval.interm.type).basicType = EbtSampler;
7873         (yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
7874     }
7875 #line 7876 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7876     break;
7877
7878   case 357:
7879 #line 2457 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7880     {
7881         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7882         (yyval.interm.type).basicType = EbtSampler;
7883         (yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
7884     }
7885 #line 7886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7886     break;
7887
7888   case 358:
7889 #line 2462 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7890     {
7891         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7892         (yyval.interm.type).basicType = EbtSampler;
7893         (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
7894     }
7895 #line 7896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7896     break;
7897
7898   case 359:
7899 #line 2467 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7900     {
7901         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7902         (yyval.interm.type).basicType = EbtSampler;
7903         (yyval.interm.type).sampler.set(EbtFloat, EsdRect);
7904     }
7905 #line 7906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7906     break;
7907
7908   case 360:
7909 #line 2472 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7910     {
7911         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7912         (yyval.interm.type).basicType = EbtSampler;
7913         (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
7914     }
7915 #line 7916 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7916     break;
7917
7918   case 361:
7919 #line 2477 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7920     {
7921 #ifdef AMD_EXTENSIONS
7922         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7923         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7924         (yyval.interm.type).basicType = EbtSampler;
7925         (yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
7926 #endif
7927     }
7928 #line 7929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7929     break;
7930
7931   case 362:
7932 #line 2485 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7933     {
7934 #ifdef AMD_EXTENSIONS
7935         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7936         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7937         (yyval.interm.type).basicType = EbtSampler;
7938         (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
7939 #endif
7940     }
7941 #line 7942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7942     break;
7943
7944   case 363:
7945 #line 2493 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7946     {
7947         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7948         (yyval.interm.type).basicType = EbtSampler;
7949         (yyval.interm.type).sampler.set(EbtInt, EsdRect);
7950     }
7951 #line 7952 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7952     break;
7953
7954   case 364:
7955 #line 2498 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7956     {
7957         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7958         (yyval.interm.type).basicType = EbtSampler;
7959         (yyval.interm.type).sampler.set(EbtUint, EsdRect);
7960     }
7961 #line 7962 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7962     break;
7963
7964   case 365:
7965 #line 2503 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7966     {
7967         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7968         (yyval.interm.type).basicType = EbtSampler;
7969         (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
7970     }
7971 #line 7972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7972     break;
7973
7974   case 366:
7975 #line 2508 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7976     {
7977 #ifdef AMD_EXTENSIONS
7978         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7979         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7980         (yyval.interm.type).basicType = EbtSampler;
7981         (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
7982 #endif
7983     }
7984 #line 7985 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7985     break;
7986
7987   case 367:
7988 #line 2516 "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(EbtInt, EsdBuffer);
7993     }
7994 #line 7995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7995     break;
7996
7997   case 368:
7998 #line 2521 "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, EsdBuffer);
8003     }
8004 #line 8005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8005     break;
8006
8007   case 369:
8008 #line 2526 "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(EbtFloat, Esd2D, false, false, true);
8013     }
8014 #line 8015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8015     break;
8016
8017   case 370:
8018 #line 2531 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8019     {
8020 #ifdef AMD_EXTENSIONS
8021         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8022         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8023         (yyval.interm.type).basicType = EbtSampler;
8024         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
8025 #endif
8026     }
8027 #line 8028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8028     break;
8029
8030   case 371:
8031 #line 2539 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8032     {
8033         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8034         (yyval.interm.type).basicType = EbtSampler;
8035         (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
8036     }
8037 #line 8038 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8038     break;
8039
8040   case 372:
8041 #line 2544 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8042     {
8043         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8044         (yyval.interm.type).basicType = EbtSampler;
8045         (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
8046     }
8047 #line 8048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8048     break;
8049
8050   case 373:
8051 #line 2549 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8052     {
8053         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8054         (yyval.interm.type).basicType = EbtSampler;
8055         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
8056     }
8057 #line 8058 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8058     break;
8059
8060   case 374:
8061 #line 2554 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8062     {
8063 #ifdef AMD_EXTENSIONS
8064         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8065         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8066         (yyval.interm.type).basicType = EbtSampler;
8067         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
8068 #endif
8069     }
8070 #line 8071 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8071     break;
8072
8073   case 375:
8074 #line 2562 "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(EbtInt, Esd2D, true, false, true);
8079     }
8080 #line 8081 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8081     break;
8082
8083   case 376:
8084 #line 2567 "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(EbtUint, Esd2D, true, false, true);
8089     }
8090 #line 8091 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8091     break;
8092
8093   case 377:
8094 #line 2572 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8095     {
8096         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8097         (yyval.interm.type).basicType = EbtSampler;
8098         (yyval.interm.type).sampler.setPureSampler(false);
8099     }
8100 #line 8101 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8101     break;
8102
8103   case 378:
8104 #line 2577 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8105     {
8106         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8107         (yyval.interm.type).basicType = EbtSampler;
8108         (yyval.interm.type).sampler.setPureSampler(true);
8109     }
8110 #line 8111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8111     break;
8112
8113   case 379:
8114 #line 2582 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8115     {
8116         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8117         (yyval.interm.type).basicType = EbtSampler;
8118         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
8119     }
8120 #line 8121 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8121     break;
8122
8123   case 380:
8124 #line 2587 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8125     {
8126 #ifdef AMD_EXTENSIONS
8127         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8128         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8129         (yyval.interm.type).basicType = EbtSampler;
8130         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
8131 #endif
8132     }
8133 #line 8134 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8134     break;
8135
8136   case 381:
8137 #line 2595 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8138     {
8139         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8140         (yyval.interm.type).basicType = EbtSampler;
8141         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
8142     }
8143 #line 8144 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8144     break;
8145
8146   case 382:
8147 #line 2600 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8148     {
8149 #ifdef AMD_EXTENSIONS
8150         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8151         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8152         (yyval.interm.type).basicType = EbtSampler;
8153         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
8154 #endif
8155     }
8156 #line 8157 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8157     break;
8158
8159   case 383:
8160 #line 2608 "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.setTexture(EbtFloat, Esd3D);
8165     }
8166 #line 8167 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8167     break;
8168
8169   case 384:
8170 #line 2613 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8171     {
8172 #ifdef AMD_EXTENSIONS
8173         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8174         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8175         (yyval.interm.type).basicType = EbtSampler;
8176         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
8177 #endif
8178     }
8179 #line 8180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8180     break;
8181
8182   case 385:
8183 #line 2621 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8184     {
8185         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8186         (yyval.interm.type).basicType = EbtSampler;
8187         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
8188     }
8189 #line 8190 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8190     break;
8191
8192   case 386:
8193 #line 2626 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8194     {
8195 #ifdef AMD_EXTENSIONS
8196         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8197         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8198         (yyval.interm.type).basicType = EbtSampler;
8199         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
8200 #endif
8201     }
8202 #line 8203 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8203     break;
8204
8205   case 387:
8206 #line 2634 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8207     {
8208         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8209         (yyval.interm.type).basicType = EbtSampler;
8210         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
8211     }
8212 #line 8213 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8213     break;
8214
8215   case 388:
8216 #line 2639 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8217     {
8218 #ifdef AMD_EXTENSIONS
8219         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8220         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8221         (yyval.interm.type).basicType = EbtSampler;
8222         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
8223 #endif
8224     }
8225 #line 8226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8226     break;
8227
8228   case 389:
8229 #line 2647 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8230     {
8231         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8232         (yyval.interm.type).basicType = EbtSampler;
8233         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
8234     }
8235 #line 8236 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8236     break;
8237
8238   case 390:
8239 #line 2652 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8240     {
8241 #ifdef AMD_EXTENSIONS
8242         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8243         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8244         (yyval.interm.type).basicType = EbtSampler;
8245         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true);
8246 #endif
8247     }
8248 #line 8249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8249     break;
8250
8251   case 391:
8252 #line 2660 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8253     {
8254         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8255         (yyval.interm.type).basicType = EbtSampler;
8256         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
8257     }
8258 #line 8259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8259     break;
8260
8261   case 392:
8262 #line 2665 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8263     {
8264 #ifdef AMD_EXTENSIONS
8265         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8266         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8267         (yyval.interm.type).basicType = EbtSampler;
8268         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
8269 #endif
8270     }
8271 #line 8272 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8272     break;
8273
8274   case 393:
8275 #line 2673 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8276     {
8277         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8278         (yyval.interm.type).basicType = EbtSampler;
8279         (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
8280     }
8281 #line 8282 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8282     break;
8283
8284   case 394:
8285 #line 2678 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8286     {
8287         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8288         (yyval.interm.type).basicType = EbtSampler;
8289         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
8290     }
8291 #line 8292 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8292     break;
8293
8294   case 395:
8295 #line 2683 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8296     {
8297         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8298         (yyval.interm.type).basicType = EbtSampler;
8299         (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
8300     }
8301 #line 8302 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8302     break;
8303
8304   case 396:
8305 #line 2688 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8306     {
8307         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8308         (yyval.interm.type).basicType = EbtSampler;
8309         (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
8310     }
8311 #line 8312 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8312     break;
8313
8314   case 397:
8315 #line 2693 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8316     {
8317         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8318         (yyval.interm.type).basicType = EbtSampler;
8319         (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
8320     }
8321 #line 8322 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8322     break;
8323
8324   case 398:
8325 #line 2698 "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(EbtInt, Esd2D, true);
8330     }
8331 #line 8332 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8332     break;
8333
8334   case 399:
8335 #line 2703 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8336     {
8337         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8338         (yyval.interm.type).basicType = EbtSampler;
8339         (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
8340     }
8341 #line 8342 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8342     break;
8343
8344   case 400:
8345 #line 2708 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8346     {
8347         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8348         (yyval.interm.type).basicType = EbtSampler;
8349         (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
8350     }
8351 #line 8352 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8352     break;
8353
8354   case 401:
8355 #line 2713 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8356     {
8357         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8358         (yyval.interm.type).basicType = EbtSampler;
8359         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
8360     }
8361 #line 8362 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8362     break;
8363
8364   case 402:
8365 #line 2718 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8366     {
8367         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8368         (yyval.interm.type).basicType = EbtSampler;
8369         (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
8370     }
8371 #line 8372 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8372     break;
8373
8374   case 403:
8375 #line 2723 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8376     {
8377         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8378         (yyval.interm.type).basicType = EbtSampler;
8379         (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
8380     }
8381 #line 8382 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8382     break;
8383
8384   case 404:
8385 #line 2728 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8386     {
8387         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8388         (yyval.interm.type).basicType = EbtSampler;
8389         (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
8390     }
8391 #line 8392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8392     break;
8393
8394   case 405:
8395 #line 2733 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8396     {
8397         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8398         (yyval.interm.type).basicType = EbtSampler;
8399         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
8400     }
8401 #line 8402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8402     break;
8403
8404   case 406:
8405 #line 2738 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8406     {
8407         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8408         (yyval.interm.type).basicType = EbtSampler;
8409         (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
8410     }
8411 #line 8412 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8412     break;
8413
8414   case 407:
8415 #line 2743 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8416     {
8417         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8418         (yyval.interm.type).basicType = EbtSampler;
8419         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
8420     }
8421 #line 8422 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8422     break;
8423
8424   case 408:
8425 #line 2748 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8426     {
8427 #ifdef AMD_EXTENSIONS
8428         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8429         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8430         (yyval.interm.type).basicType = EbtSampler;
8431         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect);
8432 #endif
8433     }
8434 #line 8435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8435     break;
8436
8437   case 409:
8438 #line 2756 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8439     {
8440         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8441         (yyval.interm.type).basicType = EbtSampler;
8442         (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
8443     }
8444 #line 8445 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8445     break;
8446
8447   case 410:
8448 #line 2761 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8449     {
8450         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8451         (yyval.interm.type).basicType = EbtSampler;
8452         (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
8453     }
8454 #line 8455 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8455     break;
8456
8457   case 411:
8458 #line 2766 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8459     {
8460         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8461         (yyval.interm.type).basicType = EbtSampler;
8462         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
8463     }
8464 #line 8465 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8465     break;
8466
8467   case 412:
8468 #line 2771 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8469     {
8470 #ifdef AMD_EXTENSIONS
8471         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8472         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8473         (yyval.interm.type).basicType = EbtSampler;
8474         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer);
8475 #endif
8476     }
8477 #line 8478 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8478     break;
8479
8480   case 413:
8481 #line 2779 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8482     {
8483         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8484         (yyval.interm.type).basicType = EbtSampler;
8485         (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
8486     }
8487 #line 8488 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8488     break;
8489
8490   case 414:
8491 #line 2784 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8492     {
8493         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8494         (yyval.interm.type).basicType = EbtSampler;
8495         (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
8496     }
8497 #line 8498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8498     break;
8499
8500   case 415:
8501 #line 2789 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8502     {
8503         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8504         (yyval.interm.type).basicType = EbtSampler;
8505         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
8506     }
8507 #line 8508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8508     break;
8509
8510   case 416:
8511 #line 2794 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8512     {
8513 #ifdef AMD_EXTENSIONS
8514         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8515         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8516         (yyval.interm.type).basicType = EbtSampler;
8517         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
8518 #endif
8519     }
8520 #line 8521 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8521     break;
8522
8523   case 417:
8524 #line 2802 "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(EbtInt, Esd2D, false, false, true);
8529     }
8530 #line 8531 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8531     break;
8532
8533   case 418:
8534 #line 2807 "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(EbtUint, Esd2D, false, false, true);
8539     }
8540 #line 8541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8541     break;
8542
8543   case 419:
8544 #line 2812 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8545     {
8546         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8547         (yyval.interm.type).basicType = EbtSampler;
8548         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
8549     }
8550 #line 8551 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8551     break;
8552
8553   case 420:
8554 #line 2817 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8555     {
8556 #ifdef AMD_EXTENSIONS
8557         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8558         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8559         (yyval.interm.type).basicType = EbtSampler;
8560         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
8561 #endif
8562     }
8563 #line 8564 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8564     break;
8565
8566   case 421:
8567 #line 2825 "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(EbtInt, Esd2D, true, false, true);
8572     }
8573 #line 8574 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8574     break;
8575
8576   case 422:
8577 #line 2830 "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(EbtUint, Esd2D, true, false, true);
8582     }
8583 #line 8584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8584     break;
8585
8586   case 423:
8587 #line 2835 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8588     {
8589         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8590         (yyval.interm.type).basicType = EbtSampler;
8591         (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
8592     }
8593 #line 8594 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8594     break;
8595
8596   case 424:
8597 #line 2840 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8598     {
8599 #ifdef AMD_EXTENSIONS
8600         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8601         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8602         (yyval.interm.type).basicType = EbtSampler;
8603         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D);
8604 #endif
8605     }
8606 #line 8607 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8607     break;
8608
8609   case 425:
8610 #line 2848 "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.setImage(EbtInt, Esd1D);
8615     }
8616 #line 8617 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8617     break;
8618
8619   case 426:
8620 #line 2853 "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.setImage(EbtUint, Esd1D);
8625     }
8626 #line 8627 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8627     break;
8628
8629   case 427:
8630 #line 2858 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8631     {
8632         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8633         (yyval.interm.type).basicType = EbtSampler;
8634         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
8635     }
8636 #line 8637 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8637     break;
8638
8639   case 428:
8640 #line 2863 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8641     {
8642 #ifdef AMD_EXTENSIONS
8643         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8644         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8645         (yyval.interm.type).basicType = EbtSampler;
8646         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D);
8647 #endif
8648     }
8649 #line 8650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8650     break;
8651
8652   case 429:
8653 #line 2871 "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.setImage(EbtInt, Esd2D);
8658     }
8659 #line 8660 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8660     break;
8661
8662   case 430:
8663 #line 2876 "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.setImage(EbtUint, Esd2D);
8668     }
8669 #line 8670 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8670     break;
8671
8672   case 431:
8673 #line 2881 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8674     {
8675         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8676         (yyval.interm.type).basicType = EbtSampler;
8677         (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
8678     }
8679 #line 8680 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8680     break;
8681
8682   case 432:
8683 #line 2886 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8684     {
8685 #ifdef AMD_EXTENSIONS
8686         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8687         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8688         (yyval.interm.type).basicType = EbtSampler;
8689         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D);
8690 #endif
8691     }
8692 #line 8693 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8693     break;
8694
8695   case 433:
8696 #line 2894 "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.setImage(EbtInt, Esd3D);
8701     }
8702 #line 8703 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8703     break;
8704
8705   case 434:
8706 #line 2899 "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(EbtUint, Esd3D);
8711     }
8712 #line 8713 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8713     break;
8714
8715   case 435:
8716 #line 2904 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8717     {
8718         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8719         (yyval.interm.type).basicType = EbtSampler;
8720         (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
8721     }
8722 #line 8723 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8723     break;
8724
8725   case 436:
8726 #line 2909 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8727     {
8728 #ifdef AMD_EXTENSIONS
8729         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8730         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8731         (yyval.interm.type).basicType = EbtSampler;
8732         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect);
8733 #endif
8734     }
8735 #line 8736 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8736     break;
8737
8738   case 437:
8739 #line 2917 "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(EbtInt, EsdRect);
8744     }
8745 #line 8746 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8746     break;
8747
8748   case 438:
8749 #line 2922 "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(EbtUint, EsdRect);
8754     }
8755 #line 8756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8756     break;
8757
8758   case 439:
8759 #line 2927 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8760     {
8761         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8762         (yyval.interm.type).basicType = EbtSampler;
8763         (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
8764     }
8765 #line 8766 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8766     break;
8767
8768   case 440:
8769 #line 2932 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8770     {
8771 #ifdef AMD_EXTENSIONS
8772         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8773         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8774         (yyval.interm.type).basicType = EbtSampler;
8775         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube);
8776 #endif
8777     }
8778 #line 8779 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8779     break;
8780
8781   case 441:
8782 #line 2940 "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(EbtInt, EsdCube);
8787     }
8788 #line 8789 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8789     break;
8790
8791   case 442:
8792 #line 2945 "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(EbtUint, EsdCube);
8797     }
8798 #line 8799 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8799     break;
8800
8801   case 443:
8802 #line 2950 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8803     {
8804         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8805         (yyval.interm.type).basicType = EbtSampler;
8806         (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
8807     }
8808 #line 8809 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8809     break;
8810
8811   case 444:
8812 #line 2955 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8813     {
8814 #ifdef AMD_EXTENSIONS
8815         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8816         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8817         (yyval.interm.type).basicType = EbtSampler;
8818         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer);
8819 #endif
8820     }
8821 #line 8822 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8822     break;
8823
8824   case 445:
8825 #line 2963 "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(EbtInt, EsdBuffer);
8830     }
8831 #line 8832 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8832     break;
8833
8834   case 446:
8835 #line 2968 "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(EbtUint, EsdBuffer);
8840     }
8841 #line 8842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8842     break;
8843
8844   case 447:
8845 #line 2973 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8846     {
8847         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8848         (yyval.interm.type).basicType = EbtSampler;
8849         (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
8850     }
8851 #line 8852 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8852     break;
8853
8854   case 448:
8855 #line 2978 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8856     {
8857 #ifdef AMD_EXTENSIONS
8858         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8859         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8860         (yyval.interm.type).basicType = EbtSampler;
8861         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true);
8862 #endif
8863     }
8864 #line 8865 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8865     break;
8866
8867   case 449:
8868 #line 2986 "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(EbtInt, Esd1D, true);
8873     }
8874 #line 8875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8875     break;
8876
8877   case 450:
8878 #line 2991 "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(EbtUint, Esd1D, true);
8883     }
8884 #line 8885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8885     break;
8886
8887   case 451:
8888 #line 2996 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8889     {
8890         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8891         (yyval.interm.type).basicType = EbtSampler;
8892         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
8893     }
8894 #line 8895 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8895     break;
8896
8897   case 452:
8898 #line 3001 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8899     {
8900 #ifdef AMD_EXTENSIONS
8901         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8902         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8903         (yyval.interm.type).basicType = EbtSampler;
8904         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true);
8905 #endif
8906     }
8907 #line 8908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8908     break;
8909
8910   case 453:
8911 #line 3009 "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(EbtInt, Esd2D, true);
8916     }
8917 #line 8918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8918     break;
8919
8920   case 454:
8921 #line 3014 "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(EbtUint, Esd2D, true);
8926     }
8927 #line 8928 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8928     break;
8929
8930   case 455:
8931 #line 3019 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8932     {
8933         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8934         (yyval.interm.type).basicType = EbtSampler;
8935         (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
8936     }
8937 #line 8938 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8938     break;
8939
8940   case 456:
8941 #line 3024 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8942     {
8943 #ifdef AMD_EXTENSIONS
8944         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8945         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8946         (yyval.interm.type).basicType = EbtSampler;
8947         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true);
8948 #endif
8949     }
8950 #line 8951 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8951     break;
8952
8953   case 457:
8954 #line 3032 "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(EbtInt, EsdCube, true);
8959     }
8960 #line 8961 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8961     break;
8962
8963   case 458:
8964 #line 3037 "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(EbtUint, EsdCube, true);
8969     }
8970 #line 8971 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8971     break;
8972
8973   case 459:
8974 #line 3042 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8975     {
8976         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8977         (yyval.interm.type).basicType = EbtSampler;
8978         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
8979     }
8980 #line 8981 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8981     break;
8982
8983   case 460:
8984 #line 3047 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8985     {
8986 #ifdef AMD_EXTENSIONS
8987         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8988         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8989         (yyval.interm.type).basicType = EbtSampler;
8990         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true);
8991 #endif
8992     }
8993 #line 8994 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8994     break;
8995
8996   case 461:
8997 #line 3055 "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(EbtInt, Esd2D, false, false, true);
9002     }
9003 #line 9004 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9004     break;
9005
9006   case 462:
9007 #line 3060 "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(EbtUint, Esd2D, false, false, true);
9012     }
9013 #line 9014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9014     break;
9015
9016   case 463:
9017 #line 3065 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9018     {
9019         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9020         (yyval.interm.type).basicType = EbtSampler;
9021         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
9022     }
9023 #line 9024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9024     break;
9025
9026   case 464:
9027 #line 3070 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9028     {
9029 #ifdef AMD_EXTENSIONS
9030         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9031         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9032         (yyval.interm.type).basicType = EbtSampler;
9033         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true);
9034 #endif
9035     }
9036 #line 9037 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9037     break;
9038
9039   case 465:
9040 #line 3078 "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(EbtInt, Esd2D, true, false, true);
9045     }
9046 #line 9047 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9047     break;
9048
9049   case 466:
9050 #line 3083 "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(EbtUint, Esd2D, true, false, true);
9055     }
9056 #line 9057 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9057     break;
9058
9059   case 467:
9060 #line 3088 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9061     {  // GL_OES_EGL_image_external
9062         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9063         (yyval.interm.type).basicType = EbtSampler;
9064         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
9065         (yyval.interm.type).sampler.external = true;
9066     }
9067 #line 9068 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9068     break;
9069
9070   case 468:
9071 #line 3094 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9072     {
9073         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9074         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9075         (yyval.interm.type).basicType = EbtSampler;
9076         (yyval.interm.type).sampler.setSubpass(EbtFloat);
9077     }
9078 #line 9079 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9079     break;
9080
9081   case 469:
9082 #line 3100 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9083     {
9084         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9085         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9086         (yyval.interm.type).basicType = EbtSampler;
9087         (yyval.interm.type).sampler.setSubpass(EbtFloat, true);
9088     }
9089 #line 9090 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9090     break;
9091
9092   case 470:
9093 #line 3106 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9094     {
9095 #ifdef AMD_EXTENSIONS
9096         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
9097         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9098         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9099         (yyval.interm.type).basicType = EbtSampler;
9100         (yyval.interm.type).sampler.setSubpass(EbtFloat16);
9101 #endif
9102     }
9103 #line 9104 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9104     break;
9105
9106   case 471:
9107 #line 3115 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9108     {
9109 #ifdef AMD_EXTENSIONS
9110         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
9111         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9112         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9113         (yyval.interm.type).basicType = EbtSampler;
9114         (yyval.interm.type).sampler.setSubpass(EbtFloat16, true);
9115 #endif
9116     }
9117 #line 9118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9118     break;
9119
9120   case 472:
9121 #line 3124 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9122     {
9123         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9124         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9125         (yyval.interm.type).basicType = EbtSampler;
9126         (yyval.interm.type).sampler.setSubpass(EbtInt);
9127     }
9128 #line 9129 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9129     break;
9130
9131   case 473:
9132 #line 3130 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9133     {
9134         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9135         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9136         (yyval.interm.type).basicType = EbtSampler;
9137         (yyval.interm.type).sampler.setSubpass(EbtInt, true);
9138     }
9139 #line 9140 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9140     break;
9141
9142   case 474:
9143 #line 3136 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9144     {
9145         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9146         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9147         (yyval.interm.type).basicType = EbtSampler;
9148         (yyval.interm.type).sampler.setSubpass(EbtUint);
9149     }
9150 #line 9151 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9151     break;
9152
9153   case 475:
9154 #line 3142 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9155     {
9156         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9157         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9158         (yyval.interm.type).basicType = EbtSampler;
9159         (yyval.interm.type).sampler.setSubpass(EbtUint, true);
9160     }
9161 #line 9162 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9162     break;
9163
9164   case 476:
9165 #line 3148 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9166     {
9167         (yyval.interm.type) = (yyvsp[0].interm.type);
9168         (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
9169         parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
9170     }
9171 #line 9172 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9172     break;
9173
9174   case 477:
9175 #line 3153 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9176     {
9177         //
9178         // This is for user defined type names.  The lexical phase looked up the
9179         // type.
9180         //
9181         if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) {
9182             const TType& structure = variable->getType();
9183             (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9184             (yyval.interm.type).basicType = EbtStruct;
9185             (yyval.interm.type).userDef = &structure;
9186         } else
9187             parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
9188     }
9189 #line 9190 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9190     break;
9191
9192   case 478:
9193 #line 3169 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9194     {
9195         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
9196         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9197         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
9198     }
9199 #line 9200 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9200     break;
9201
9202   case 479:
9203 #line 3174 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9204     {
9205         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
9206         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9207         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
9208     }
9209 #line 9210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9210     break;
9211
9212   case 480:
9213 #line 3179 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9214     {
9215         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
9216         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9217         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
9218     }
9219 #line 9220 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9220     break;
9221
9222   case 481:
9223 #line 3187 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9224     { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
9225 #line 9226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9226     break;
9227
9228   case 482:
9229 #line 3187 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9230     {
9231         TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
9232         parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
9233         TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true);
9234         if (! parseContext.symbolTable.insert(*userTypeDef))
9235             parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct");
9236         (yyval.interm.type).init((yyvsp[-5].lex).loc);
9237         (yyval.interm.type).basicType = EbtStruct;
9238         (yyval.interm.type).userDef = structure;
9239         --parseContext.structNestingLevel;
9240     }
9241 #line 9242 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9242     break;
9243
9244   case 483:
9245 #line 3198 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9246     { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
9247 #line 9248 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9248     break;
9249
9250   case 484:
9251 #line 3198 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9252     {
9253         TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
9254         (yyval.interm.type).init((yyvsp[-4].lex).loc);
9255         (yyval.interm.type).basicType = EbtStruct;
9256         (yyval.interm.type).userDef = structure;
9257         --parseContext.structNestingLevel;
9258     }
9259 #line 9260 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9260     break;
9261
9262   case 485:
9263 #line 3208 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9264     {
9265         (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
9266     }
9267 #line 9268 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9268     break;
9269
9270   case 486:
9271 #line 3211 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9272     {
9273         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
9274         for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
9275             for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) {
9276                 if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName())
9277                     parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str());
9278             }
9279             (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
9280         }
9281     }
9282 #line 9283 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9283     break;
9284
9285   case 487:
9286 #line 3224 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9287     {
9288         if ((yyvsp[-2].interm.type).arraySizes) {
9289             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
9290             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
9291             if (parseContext.profile == EEsProfile)
9292                 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
9293         }
9294
9295         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
9296
9297         parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
9298         parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
9299
9300         for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
9301             TType type((yyvsp[-2].interm.type));
9302             type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
9303             type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
9304             type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
9305             parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
9306             (*(yyval.interm.typeList))[i].type->shallowCopy(type);
9307         }
9308     }
9309 #line 9310 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9310     break;
9311
9312   case 488:
9313 #line 3246 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9314     {
9315         if ((yyvsp[-2].interm.type).arraySizes) {
9316             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
9317             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
9318             if (parseContext.profile == EEsProfile)
9319                 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
9320         }
9321
9322         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
9323
9324         parseContext.memberQualifierCheck((yyvsp[-3].interm.type));
9325         parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
9326         parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true);
9327         parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
9328
9329         for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
9330             TType type((yyvsp[-2].interm.type));
9331             type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
9332             type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
9333             type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
9334             parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
9335             (*(yyval.interm.typeList))[i].type->shallowCopy(type);
9336         }
9337     }
9338 #line 9339 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9339     break;
9340
9341   case 489:
9342 #line 3273 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9343     {
9344         (yyval.interm.typeList) = new TTypeList;
9345         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
9346     }
9347 #line 9348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9348     break;
9349
9350   case 490:
9351 #line 3277 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9352     {
9353         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
9354     }
9355 #line 9356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9356     break;
9357
9358   case 491:
9359 #line 3283 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9360     {
9361         (yyval.interm.typeLine).type = new TType(EbtVoid);
9362         (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
9363         (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
9364     }
9365 #line 9366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9366     break;
9367
9368   case 492:
9369 #line 3288 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9370     {
9371         parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
9372
9373         (yyval.interm.typeLine).type = new TType(EbtVoid);
9374         (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc;
9375         (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
9376         (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
9377     }
9378 #line 9379 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9379     break;
9380
9381   case 493:
9382 #line 3299 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9383     {
9384         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
9385     }
9386 #line 9387 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9387     break;
9388
9389   case 494:
9390 #line 3302 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9391     {
9392         const char* initFeature = "{ } style initializers";
9393         parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
9394         parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
9395         (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
9396     }
9397 #line 9398 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9398     break;
9399
9400   case 495:
9401 #line 3308 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9402     {
9403         const char* initFeature = "{ } style initializers";
9404         parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
9405         parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
9406         (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
9407     }
9408 #line 9409 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9409     break;
9410
9411   case 496:
9412 #line 3317 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9413     {
9414         (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
9415     }
9416 #line 9417 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9417     break;
9418
9419   case 497:
9420 #line 3320 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9421     {
9422         (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
9423     }
9424 #line 9425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9425     break;
9426
9427   case 498:
9428 #line 3326 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9429     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9430 #line 9431 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9431     break;
9432
9433   case 499:
9434 #line 3330 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9435     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9436 #line 9437 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9437     break;
9438
9439   case 500:
9440 #line 3331 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9441     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9442 #line 9443 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9443     break;
9444
9445   case 501:
9446 #line 3337 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9447     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9448 #line 9449 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9449     break;
9450
9451   case 502:
9452 #line 3338 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9453     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9454 #line 9455 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9455     break;
9456
9457   case 503:
9458 #line 3339 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9459     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9460 #line 9461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9461     break;
9462
9463   case 504:
9464 #line 3340 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9465     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9466 #line 9467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9467     break;
9468
9469   case 505:
9470 #line 3341 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9471     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9472 #line 9473 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9473     break;
9474
9475   case 506:
9476 #line 3342 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9477     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9478 #line 9479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9479     break;
9480
9481   case 507:
9482 #line 3343 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9483     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9484 #line 9485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9485     break;
9486
9487   case 508:
9488 #line 3347 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9489     { (yyval.interm.intermNode) = 0; }
9490 #line 9491 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9491     break;
9492
9493   case 509:
9494 #line 3348 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9495     {
9496         parseContext.symbolTable.push();
9497         ++parseContext.statementNestingLevel;
9498     }
9499 #line 9500 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9500     break;
9501
9502   case 510:
9503 #line 3352 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9504     {
9505         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9506         --parseContext.statementNestingLevel;
9507     }
9508 #line 9509 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9509     break;
9510
9511   case 511:
9512 #line 3356 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9513     {
9514         if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate())
9515             (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
9516         (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode);
9517     }
9518 #line 9519 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9519     break;
9520
9521   case 512:
9522 #line 3364 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9523     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9524 #line 9525 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9525     break;
9526
9527   case 513:
9528 #line 3365 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9529     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9530 #line 9531 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9531     break;
9532
9533   case 514:
9534 #line 3369 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9535     {
9536         ++parseContext.controlFlowNestingLevel;
9537     }
9538 #line 9539 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9539     break;
9540
9541   case 515:
9542 #line 3372 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9543     {
9544         --parseContext.controlFlowNestingLevel;
9545         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9546     }
9547 #line 9548 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9548     break;
9549
9550   case 516:
9551 #line 3376 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9552     {
9553         parseContext.symbolTable.push();
9554         ++parseContext.statementNestingLevel;
9555         ++parseContext.controlFlowNestingLevel;
9556     }
9557 #line 9558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9558     break;
9559
9560   case 517:
9561 #line 3381 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9562     {
9563         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9564         --parseContext.statementNestingLevel;
9565         --parseContext.controlFlowNestingLevel;
9566         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9567     }
9568 #line 9569 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9569     break;
9570
9571   case 518:
9572 #line 3390 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9573     {
9574         (yyval.interm.intermNode) = 0;
9575     }
9576 #line 9577 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9577     break;
9578
9579   case 519:
9580 #line 3393 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9581     {
9582         if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate())
9583             (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
9584         (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode);
9585     }
9586 #line 9587 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9587     break;
9588
9589   case 520:
9590 #line 3401 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9591     {
9592         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
9593         if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
9594                                             (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
9595             parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode));
9596             (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
9597         }
9598     }
9599 #line 9600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9600     break;
9601
9602   case 521:
9603 #line 3409 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9604     {
9605         if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
9606                                             (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
9607             parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode));
9608             (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
9609         } else
9610             (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
9611     }
9612 #line 9613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9613     break;
9614
9615   case 522:
9616 #line 3420 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9617     { (yyval.interm.intermNode) = 0; }
9618 #line 9619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9619     break;
9620
9621   case 523:
9622 #line 3421 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9623     { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
9624 #line 9625 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9625     break;
9626
9627   case 524:
9628 #line 3425 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9629     {
9630         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9631     }
9632 #line 9633 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9633     break;
9634
9635   case 525:
9636 #line 3428 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9637     {
9638         parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
9639         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9640     }
9641 #line 9642 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9642     break;
9643
9644   case 526:
9645 #line 3434 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9646     {
9647         parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
9648         (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
9649     }
9650 #line 9651 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9651     break;
9652
9653   case 527:
9654 #line 3441 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9655     {
9656         (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
9657         (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
9658     }
9659 #line 9660 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9660     break;
9661
9662   case 528:
9663 #line 3445 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9664     {
9665         (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
9666         (yyval.interm.nodePair).node2 = 0;
9667     }
9668 #line 9669 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9669     break;
9670
9671   case 529:
9672 #line 3453 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9673     {
9674         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
9675         parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
9676     }
9677 #line 9678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9678     break;
9679
9680   case 530:
9681 #line 3457 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9682     {
9683         parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
9684
9685         TType type((yyvsp[-3].interm.type));
9686         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
9687         if (initNode)
9688             (yyval.interm.intermTypedNode) = initNode->getAsTyped();
9689         else
9690             (yyval.interm.intermTypedNode) = 0;
9691     }
9692 #line 9693 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9693     break;
9694
9695   case 531:
9696 #line 3470 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9697     {
9698         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9699     }
9700 #line 9701 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9701     break;
9702
9703   case 532:
9704 #line 3473 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9705     {
9706         parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
9707         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9708     }
9709 #line 9710 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9710     break;
9711
9712   case 533:
9713 #line 3479 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9714     {
9715         // start new switch sequence on the switch stack
9716         ++parseContext.controlFlowNestingLevel;
9717         ++parseContext.statementNestingLevel;
9718         parseContext.switchSequenceStack.push_back(new TIntermSequence);
9719         parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
9720         parseContext.symbolTable.push();
9721     }
9722 #line 9723 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9723     break;
9724
9725   case 534:
9726 #line 3487 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9727     {
9728         (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
9729         delete parseContext.switchSequenceStack.back();
9730         parseContext.switchSequenceStack.pop_back();
9731         parseContext.switchLevel.pop_back();
9732         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9733         --parseContext.statementNestingLevel;
9734         --parseContext.controlFlowNestingLevel;
9735     }
9736 #line 9737 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9737     break;
9738
9739   case 535:
9740 #line 3499 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9741     {
9742         (yyval.interm.intermNode) = 0;
9743     }
9744 #line 9745 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9745     break;
9746
9747   case 536:
9748 #line 3502 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9749     {
9750         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9751     }
9752 #line 9753 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9753     break;
9754
9755   case 537:
9756 #line 3508 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9757     {
9758         (yyval.interm.intermNode) = 0;
9759         if (parseContext.switchLevel.size() == 0)
9760             parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", "");
9761         else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
9762             parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", "");
9763         else {
9764             parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case");
9765             parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case");
9766             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
9767         }
9768     }
9769 #line 9770 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9770     break;
9771
9772   case 538:
9773 #line 3520 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9774     {
9775         (yyval.interm.intermNode) = 0;
9776         if (parseContext.switchLevel.size() == 0)
9777             parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", "");
9778         else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
9779             parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", "");
9780         else
9781             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
9782     }
9783 #line 9784 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9784     break;
9785
9786   case 539:
9787 #line 3532 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9788     {
9789         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9790     }
9791 #line 9792 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9792     break;
9793
9794   case 540:
9795 #line 3535 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9796     {
9797         parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
9798         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9799     }
9800 #line 9801 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9801     break;
9802
9803   case 541:
9804 #line 3541 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9805     {
9806         if (! parseContext.limits.whileLoops)
9807             parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
9808         parseContext.symbolTable.push();
9809         ++parseContext.loopNestingLevel;
9810         ++parseContext.statementNestingLevel;
9811         ++parseContext.controlFlowNestingLevel;
9812     }
9813 #line 9814 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9814     break;
9815
9816   case 542:
9817 #line 3549 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9818     {
9819         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9820         (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
9821         --parseContext.loopNestingLevel;
9822         --parseContext.statementNestingLevel;
9823         --parseContext.controlFlowNestingLevel;
9824     }
9825 #line 9826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9826     break;
9827
9828   case 543:
9829 #line 3556 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9830     {
9831         ++parseContext.loopNestingLevel;
9832         ++parseContext.statementNestingLevel;
9833         ++parseContext.controlFlowNestingLevel;
9834     }
9835 #line 9836 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9836     break;
9837
9838   case 544:
9839 #line 3561 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9840     {
9841         if (! parseContext.limits.whileLoops)
9842             parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
9843
9844         parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode));
9845
9846         (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc);
9847         --parseContext.loopNestingLevel;
9848         --parseContext.statementNestingLevel;
9849         --parseContext.controlFlowNestingLevel;
9850     }
9851 #line 9852 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9852     break;
9853
9854   case 545:
9855 #line 3572 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9856     {
9857         parseContext.symbolTable.push();
9858         ++parseContext.loopNestingLevel;
9859         ++parseContext.statementNestingLevel;
9860         ++parseContext.controlFlowNestingLevel;
9861     }
9862 #line 9863 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9863     break;
9864
9865   case 546:
9866 #line 3578 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9867     {
9868         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9869         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
9870         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);
9871         if (! parseContext.limits.nonInductiveForLoops)
9872             parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop);
9873         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc);
9874         (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
9875         --parseContext.loopNestingLevel;
9876         --parseContext.statementNestingLevel;
9877         --parseContext.controlFlowNestingLevel;
9878     }
9879 #line 9880 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9880     break;
9881
9882   case 547:
9883 #line 3593 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9884     {
9885         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9886     }
9887 #line 9888 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9888     break;
9889
9890   case 548:
9891 #line 3596 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9892     {
9893         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9894     }
9895 #line 9896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9896     break;
9897
9898   case 549:
9899 #line 3602 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9900     {
9901         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
9902     }
9903 #line 9904 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9904     break;
9905
9906   case 550:
9907 #line 3605 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9908     {
9909         (yyval.interm.intermTypedNode) = 0;
9910     }
9911 #line 9912 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9912     break;
9913
9914   case 551:
9915 #line 3611 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9916     {
9917         (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
9918         (yyval.interm.nodePair).node2 = 0;
9919     }
9920 #line 9921 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9921     break;
9922
9923   case 552:
9924 #line 3615 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9925     {
9926         (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
9927         (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
9928     }
9929 #line 9930 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9930     break;
9931
9932   case 553:
9933 #line 3622 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9934     {
9935         if (parseContext.loopNestingLevel <= 0)
9936             parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
9937         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
9938     }
9939 #line 9940 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9940     break;
9941
9942   case 554:
9943 #line 3627 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9944     {
9945         if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
9946             parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
9947         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
9948     }
9949 #line 9950 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9950     break;
9951
9952   case 555:
9953 #line 3632 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9954     {
9955         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
9956         if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
9957             parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", "");
9958         if (parseContext.inMain)
9959             parseContext.postEntryPointReturn = true;
9960     }
9961 #line 9962 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9962     break;
9963
9964   case 556:
9965 #line 3639 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9966     {
9967         (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
9968     }
9969 #line 9970 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9970     break;
9971
9972   case 557:
9973 #line 3642 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9974     {
9975         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
9976         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
9977     }
9978 #line 9979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9979     break;
9980
9981   case 558:
9982 #line 3651 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9983     {
9984         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9985         parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
9986     }
9987 #line 9988 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9988     break;
9989
9990   case 559:
9991 #line 3655 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9992     {
9993         if ((yyvsp[0].interm.intermNode) != nullptr) {
9994             (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
9995             parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
9996         }
9997     }
9998 #line 9999 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9999     break;
10000
10001   case 560:
10002 #line 3664 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10003     {
10004         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10005     }
10006 #line 10007 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10007     break;
10008
10009   case 561:
10010 #line 3667 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10011     {
10012         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10013     }
10014 #line 10015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10015     break;
10016
10017   case 562:
10018 #line 3670 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10019     {
10020         parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
10021         parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
10022         (yyval.interm.intermNode) = nullptr;
10023     }
10024 #line 10025 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10025     break;
10026
10027   case 563:
10028 #line 3678 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10029     {
10030         (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
10031         (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
10032     }
10033 #line 10034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10034     break;
10035
10036   case 564:
10037 #line 3682 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10038     {
10039         //   May be best done as post process phase on intermediate code
10040         if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
10041             parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str());
10042         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10043         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode));
10044         parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc);
10045         (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str());
10046
10047         // store the pragma information for debug and optimize and other vendor specific
10048         // information. This information can be queried from the parse tree
10049         (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize);
10050         (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
10051         (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable);
10052     }
10053 #line 10054 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10054     break;
10055
10056   case 565:
10057 #line 3700 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10058     {
10059         (yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
10060         parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute");
10061     }
10062 #line 10063 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10063     break;
10064
10065   case 566:
10066 #line 3706 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10067     {
10068         (yyval.interm.attributes) = (yyvsp[0].interm.attributes);
10069     }
10070 #line 10071 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10071     break;
10072
10073   case 567:
10074 #line 3709 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10075     {
10076         (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
10077     }
10078 #line 10079 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10079     break;
10080
10081   case 568:
10082 #line 3714 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10083     {
10084         (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
10085     }
10086 #line 10087 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10087     break;
10088
10089   case 569:
10090 #line 3717 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10091     {
10092         (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
10093     }
10094 #line 10095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10095     break;
10096
10097
10098 #line 10099 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10099       default: break;
10100     }
10101   /* User semantic actions sometimes alter yychar, and that requires
10102      that yytoken be updated with the new translation.  We take the
10103      approach of translating immediately before every use of yytoken.
10104      One alternative is translating here after every semantic action,
10105      but that translation would be missed if the semantic action invokes
10106      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
10107      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
10108      incorrect destructor might then be invoked immediately.  In the
10109      case of YYERROR or YYBACKUP, subsequent parser actions might lead
10110      to an incorrect destructor call or verbose syntax error message
10111      before the lookahead is translated.  */
10112   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
10113
10114   YYPOPSTACK (yylen);
10115   yylen = 0;
10116   YY_STACK_PRINT (yyss, yyssp);
10117
10118   *++yyvsp = yyval;
10119
10120   /* Now 'shift' the result of the reduction.  Determine what state
10121      that goes to, based on the state we popped back to and the rule
10122      number reduced by.  */
10123
10124   yyn = yyr1[yyn];
10125
10126   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
10127   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
10128     yystate = yytable[yystate];
10129   else
10130     yystate = yydefgoto[yyn - YYNTOKENS];
10131
10132   goto yynewstate;
10133
10134
10135 /*--------------------------------------.
10136 | yyerrlab -- here on detecting error.  |
10137 `--------------------------------------*/
10138 yyerrlab:
10139   /* Make sure we have latest lookahead translation.  See comments at
10140      user semantic actions for why this is necessary.  */
10141   yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
10142
10143   /* If not already recovering from an error, report this error.  */
10144   if (!yyerrstatus)
10145     {
10146       ++yynerrs;
10147 #if ! YYERROR_VERBOSE
10148       yyerror (pParseContext, YY_("syntax error"));
10149 #else
10150 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
10151                                         yyssp, yytoken)
10152       {
10153         char const *yymsgp = YY_("syntax error");
10154         int yysyntax_error_status;
10155         yysyntax_error_status = YYSYNTAX_ERROR;
10156         if (yysyntax_error_status == 0)
10157           yymsgp = yymsg;
10158         else if (yysyntax_error_status == 1)
10159           {
10160             if (yymsg != yymsgbuf)
10161               YYSTACK_FREE (yymsg);
10162             yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
10163             if (!yymsg)
10164               {
10165                 yymsg = yymsgbuf;
10166                 yymsg_alloc = sizeof yymsgbuf;
10167                 yysyntax_error_status = 2;
10168               }
10169             else
10170               {
10171                 yysyntax_error_status = YYSYNTAX_ERROR;
10172                 yymsgp = yymsg;
10173               }
10174           }
10175         yyerror (pParseContext, yymsgp);
10176         if (yysyntax_error_status == 2)
10177           goto yyexhaustedlab;
10178       }
10179 # undef YYSYNTAX_ERROR
10180 #endif
10181     }
10182
10183
10184
10185   if (yyerrstatus == 3)
10186     {
10187       /* If just tried and failed to reuse lookahead token after an
10188          error, discard it.  */
10189
10190       if (yychar <= YYEOF)
10191         {
10192           /* Return failure if at end of input.  */
10193           if (yychar == YYEOF)
10194             YYABORT;
10195         }
10196       else
10197         {
10198           yydestruct ("Error: discarding",
10199                       yytoken, &yylval, pParseContext);
10200           yychar = YYEMPTY;
10201         }
10202     }
10203
10204   /* Else will try to reuse lookahead token after shifting the error
10205      token.  */
10206   goto yyerrlab1;
10207
10208
10209 /*---------------------------------------------------.
10210 | yyerrorlab -- error raised explicitly by YYERROR.  |
10211 `---------------------------------------------------*/
10212 yyerrorlab:
10213
10214   /* Pacify compilers like GCC when the user code never invokes
10215      YYERROR and the label yyerrorlab therefore never appears in user
10216      code.  */
10217   if (/*CONSTCOND*/ 0)
10218      goto yyerrorlab;
10219
10220   /* Do not reclaim the symbols of the rule whose action triggered
10221      this YYERROR.  */
10222   YYPOPSTACK (yylen);
10223   yylen = 0;
10224   YY_STACK_PRINT (yyss, yyssp);
10225   yystate = *yyssp;
10226   goto yyerrlab1;
10227
10228
10229 /*-------------------------------------------------------------.
10230 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
10231 `-------------------------------------------------------------*/
10232 yyerrlab1:
10233   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
10234
10235   for (;;)
10236     {
10237       yyn = yypact[yystate];
10238       if (!yypact_value_is_default (yyn))
10239         {
10240           yyn += YYTERROR;
10241           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
10242             {
10243               yyn = yytable[yyn];
10244               if (0 < yyn)
10245                 break;
10246             }
10247         }
10248
10249       /* Pop the current state because it cannot handle the error token.  */
10250       if (yyssp == yyss)
10251         YYABORT;
10252
10253
10254       yydestruct ("Error: popping",
10255                   yystos[yystate], yyvsp, pParseContext);
10256       YYPOPSTACK (1);
10257       yystate = *yyssp;
10258       YY_STACK_PRINT (yyss, yyssp);
10259     }
10260
10261   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
10262   *++yyvsp = yylval;
10263   YY_IGNORE_MAYBE_UNINITIALIZED_END
10264
10265
10266   /* Shift the error token.  */
10267   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
10268
10269   yystate = yyn;
10270   goto yynewstate;
10271
10272
10273 /*-------------------------------------.
10274 | yyacceptlab -- YYACCEPT comes here.  |
10275 `-------------------------------------*/
10276 yyacceptlab:
10277   yyresult = 0;
10278   goto yyreturn;
10279
10280 /*-----------------------------------.
10281 | yyabortlab -- YYABORT comes here.  |
10282 `-----------------------------------*/
10283 yyabortlab:
10284   yyresult = 1;
10285   goto yyreturn;
10286
10287 #if !defined yyoverflow || YYERROR_VERBOSE
10288 /*-------------------------------------------------.
10289 | yyexhaustedlab -- memory exhaustion comes here.  |
10290 `-------------------------------------------------*/
10291 yyexhaustedlab:
10292   yyerror (pParseContext, YY_("memory exhausted"));
10293   yyresult = 2;
10294   /* Fall through.  */
10295 #endif
10296
10297 yyreturn:
10298   if (yychar != YYEMPTY)
10299     {
10300       /* Make sure we have latest lookahead translation.  See comments at
10301          user semantic actions for why this is necessary.  */
10302       yytoken = YYTRANSLATE (yychar);
10303       yydestruct ("Cleanup: discarding lookahead",
10304                   yytoken, &yylval, pParseContext);
10305     }
10306   /* Do not reclaim the symbols of the rule whose action triggered
10307      this YYABORT or YYACCEPT.  */
10308   YYPOPSTACK (yylen);
10309   YY_STACK_PRINT (yyss, yyssp);
10310   while (yyssp != yyss)
10311     {
10312       yydestruct ("Cleanup: popping",
10313                   yystos[*yyssp], yyvsp, pParseContext);
10314       YYPOPSTACK (1);
10315     }
10316 #ifndef yyoverflow
10317   if (yyss != yyssa)
10318     YYSTACK_FREE (yyss);
10319 #endif
10320 #if YYERROR_VERBOSE
10321   if (yymsg != yymsgbuf)
10322     YYSTACK_FREE (yymsg);
10323 #endif
10324   return yyresult;
10325 }
10326 #line 3721 "MachineIndependent/glslang.y" /* yacc.c:1906  */
10327