Merge pull request #1817 from jeffbolznv/demote
[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 43 "MachineIndependent/glslang.y" /* yacc.c:339  */
66
67
68 /* Based on:
69 ANSI C Yacc grammar
70
71 In 1985, Jeff Lee published his Yacc grammar (which is accompanied by a
72 matching Lex specification) for the April 30, 1985 draft version of the
73 ANSI C standard.  Tom Stockfisch reposted it to net.sources in 1987; that
74 original, as mentioned in the answer to question 17.25 of the comp.lang.c
75 FAQ, can be ftp'ed from ftp.uu.net, file usenet/net.sources/ansi.c.grammar.Z.
76
77 I intend to keep this version as close to the current C Standard grammar as
78 possible; please let me know if you discover discrepancies.
79
80 Jutta Degener, 1995
81 */
82
83 #include "SymbolTable.h"
84 #include "ParseHelper.h"
85 #include "../Public/ShaderLang.h"
86 #include "attribute.h"
87
88 using namespace glslang;
89
90
91 #line 92 "MachineIndependent/glslang_tab.cpp" /* yacc.c:339  */
92
93 # ifndef YY_NULLPTR
94 #  if defined __cplusplus && 201103L <= __cplusplus
95 #   define YY_NULLPTR nullptr
96 #  else
97 #   define YY_NULLPTR 0
98 #  endif
99 # endif
100
101 /* Enabling verbose error messages.  */
102 #ifdef YYERROR_VERBOSE
103 # undef YYERROR_VERBOSE
104 # define YYERROR_VERBOSE 1
105 #else
106 # define YYERROR_VERBOSE 1
107 #endif
108
109 /* In a future release of Bison, this section will be replaced
110    by #include "glslang_tab.cpp.h".  */
111 #ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
112 # define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
113 /* Debug traces.  */
114 #ifndef YYDEBUG
115 # define YYDEBUG 1
116 #endif
117 #if YYDEBUG
118 extern int yydebug;
119 #endif
120
121 /* Token type.  */
122 #ifndef YYTOKENTYPE
123 # define YYTOKENTYPE
124   enum yytokentype
125   {
126     ATTRIBUTE = 258,
127     VARYING = 259,
128     FLOAT16_T = 260,
129     FLOAT = 261,
130     FLOAT32_T = 262,
131     DOUBLE = 263,
132     FLOAT64_T = 264,
133     CONST = 265,
134     BOOL = 266,
135     INT = 267,
136     UINT = 268,
137     INT64_T = 269,
138     UINT64_T = 270,
139     INT32_T = 271,
140     UINT32_T = 272,
141     INT16_T = 273,
142     UINT16_T = 274,
143     INT8_T = 275,
144     UINT8_T = 276,
145     BREAK = 277,
146     CONTINUE = 278,
147     DO = 279,
148     ELSE = 280,
149     FOR = 281,
150     IF = 282,
151     DISCARD = 283,
152     RETURN = 284,
153     SWITCH = 285,
154     CASE = 286,
155     DEFAULT = 287,
156     SUBROUTINE = 288,
157     DEMOTE = 289,
158     BVEC2 = 290,
159     BVEC3 = 291,
160     BVEC4 = 292,
161     IVEC2 = 293,
162     IVEC3 = 294,
163     IVEC4 = 295,
164     UVEC2 = 296,
165     UVEC3 = 297,
166     UVEC4 = 298,
167     I64VEC2 = 299,
168     I64VEC3 = 300,
169     I64VEC4 = 301,
170     U64VEC2 = 302,
171     U64VEC3 = 303,
172     U64VEC4 = 304,
173     I32VEC2 = 305,
174     I32VEC3 = 306,
175     I32VEC4 = 307,
176     U32VEC2 = 308,
177     U32VEC3 = 309,
178     U32VEC4 = 310,
179     I16VEC2 = 311,
180     I16VEC3 = 312,
181     I16VEC4 = 313,
182     U16VEC2 = 314,
183     U16VEC3 = 315,
184     U16VEC4 = 316,
185     I8VEC2 = 317,
186     I8VEC3 = 318,
187     I8VEC4 = 319,
188     U8VEC2 = 320,
189     U8VEC3 = 321,
190     U8VEC4 = 322,
191     VEC2 = 323,
192     VEC3 = 324,
193     VEC4 = 325,
194     MAT2 = 326,
195     MAT3 = 327,
196     MAT4 = 328,
197     CENTROID = 329,
198     IN = 330,
199     OUT = 331,
200     INOUT = 332,
201     UNIFORM = 333,
202     PATCH = 334,
203     SAMPLE = 335,
204     BUFFER = 336,
205     SHARED = 337,
206     NONUNIFORM = 338,
207     PAYLOADNV = 339,
208     PAYLOADINNV = 340,
209     HITATTRNV = 341,
210     CALLDATANV = 342,
211     CALLDATAINNV = 343,
212     COHERENT = 344,
213     VOLATILE = 345,
214     RESTRICT = 346,
215     READONLY = 347,
216     WRITEONLY = 348,
217     DEVICECOHERENT = 349,
218     QUEUEFAMILYCOHERENT = 350,
219     WORKGROUPCOHERENT = 351,
220     SUBGROUPCOHERENT = 352,
221     NONPRIVATE = 353,
222     DVEC2 = 354,
223     DVEC3 = 355,
224     DVEC4 = 356,
225     DMAT2 = 357,
226     DMAT3 = 358,
227     DMAT4 = 359,
228     F16VEC2 = 360,
229     F16VEC3 = 361,
230     F16VEC4 = 362,
231     F16MAT2 = 363,
232     F16MAT3 = 364,
233     F16MAT4 = 365,
234     F32VEC2 = 366,
235     F32VEC3 = 367,
236     F32VEC4 = 368,
237     F32MAT2 = 369,
238     F32MAT3 = 370,
239     F32MAT4 = 371,
240     F64VEC2 = 372,
241     F64VEC3 = 373,
242     F64VEC4 = 374,
243     F64MAT2 = 375,
244     F64MAT3 = 376,
245     F64MAT4 = 377,
246     NOPERSPECTIVE = 378,
247     FLAT = 379,
248     SMOOTH = 380,
249     LAYOUT = 381,
250     EXPLICITINTERPAMD = 382,
251     PERVERTEXNV = 383,
252     PERPRIMITIVENV = 384,
253     PERVIEWNV = 385,
254     PERTASKNV = 386,
255     MAT2X2 = 387,
256     MAT2X3 = 388,
257     MAT2X4 = 389,
258     MAT3X2 = 390,
259     MAT3X3 = 391,
260     MAT3X4 = 392,
261     MAT4X2 = 393,
262     MAT4X3 = 394,
263     MAT4X4 = 395,
264     DMAT2X2 = 396,
265     DMAT2X3 = 397,
266     DMAT2X4 = 398,
267     DMAT3X2 = 399,
268     DMAT3X3 = 400,
269     DMAT3X4 = 401,
270     DMAT4X2 = 402,
271     DMAT4X3 = 403,
272     DMAT4X4 = 404,
273     F16MAT2X2 = 405,
274     F16MAT2X3 = 406,
275     F16MAT2X4 = 407,
276     F16MAT3X2 = 408,
277     F16MAT3X3 = 409,
278     F16MAT3X4 = 410,
279     F16MAT4X2 = 411,
280     F16MAT4X3 = 412,
281     F16MAT4X4 = 413,
282     F32MAT2X2 = 414,
283     F32MAT2X3 = 415,
284     F32MAT2X4 = 416,
285     F32MAT3X2 = 417,
286     F32MAT3X3 = 418,
287     F32MAT3X4 = 419,
288     F32MAT4X2 = 420,
289     F32MAT4X3 = 421,
290     F32MAT4X4 = 422,
291     F64MAT2X2 = 423,
292     F64MAT2X3 = 424,
293     F64MAT2X4 = 425,
294     F64MAT3X2 = 426,
295     F64MAT3X3 = 427,
296     F64MAT3X4 = 428,
297     F64MAT4X2 = 429,
298     F64MAT4X3 = 430,
299     F64MAT4X4 = 431,
300     ATOMIC_UINT = 432,
301     ACCSTRUCTNV = 433,
302     FCOOPMATNV = 434,
303     SAMPLER1D = 435,
304     SAMPLER2D = 436,
305     SAMPLER3D = 437,
306     SAMPLERCUBE = 438,
307     SAMPLER1DSHADOW = 439,
308     SAMPLER2DSHADOW = 440,
309     SAMPLERCUBESHADOW = 441,
310     SAMPLER1DARRAY = 442,
311     SAMPLER2DARRAY = 443,
312     SAMPLER1DARRAYSHADOW = 444,
313     SAMPLER2DARRAYSHADOW = 445,
314     ISAMPLER1D = 446,
315     ISAMPLER2D = 447,
316     ISAMPLER3D = 448,
317     ISAMPLERCUBE = 449,
318     ISAMPLER1DARRAY = 450,
319     ISAMPLER2DARRAY = 451,
320     USAMPLER1D = 452,
321     USAMPLER2D = 453,
322     USAMPLER3D = 454,
323     USAMPLERCUBE = 455,
324     USAMPLER1DARRAY = 456,
325     USAMPLER2DARRAY = 457,
326     SAMPLER2DRECT = 458,
327     SAMPLER2DRECTSHADOW = 459,
328     ISAMPLER2DRECT = 460,
329     USAMPLER2DRECT = 461,
330     SAMPLERBUFFER = 462,
331     ISAMPLERBUFFER = 463,
332     USAMPLERBUFFER = 464,
333     SAMPLERCUBEARRAY = 465,
334     SAMPLERCUBEARRAYSHADOW = 466,
335     ISAMPLERCUBEARRAY = 467,
336     USAMPLERCUBEARRAY = 468,
337     SAMPLER2DMS = 469,
338     ISAMPLER2DMS = 470,
339     USAMPLER2DMS = 471,
340     SAMPLER2DMSARRAY = 472,
341     ISAMPLER2DMSARRAY = 473,
342     USAMPLER2DMSARRAY = 474,
343     SAMPLEREXTERNALOES = 475,
344     SAMPLEREXTERNAL2DY2YEXT = 476,
345     F16SAMPLER1D = 477,
346     F16SAMPLER2D = 478,
347     F16SAMPLER3D = 479,
348     F16SAMPLER2DRECT = 480,
349     F16SAMPLERCUBE = 481,
350     F16SAMPLER1DARRAY = 482,
351     F16SAMPLER2DARRAY = 483,
352     F16SAMPLERCUBEARRAY = 484,
353     F16SAMPLERBUFFER = 485,
354     F16SAMPLER2DMS = 486,
355     F16SAMPLER2DMSARRAY = 487,
356     F16SAMPLER1DSHADOW = 488,
357     F16SAMPLER2DSHADOW = 489,
358     F16SAMPLER1DARRAYSHADOW = 490,
359     F16SAMPLER2DARRAYSHADOW = 491,
360     F16SAMPLER2DRECTSHADOW = 492,
361     F16SAMPLERCUBESHADOW = 493,
362     F16SAMPLERCUBEARRAYSHADOW = 494,
363     SAMPLER = 495,
364     SAMPLERSHADOW = 496,
365     TEXTURE1D = 497,
366     TEXTURE2D = 498,
367     TEXTURE3D = 499,
368     TEXTURECUBE = 500,
369     TEXTURE1DARRAY = 501,
370     TEXTURE2DARRAY = 502,
371     ITEXTURE1D = 503,
372     ITEXTURE2D = 504,
373     ITEXTURE3D = 505,
374     ITEXTURECUBE = 506,
375     ITEXTURE1DARRAY = 507,
376     ITEXTURE2DARRAY = 508,
377     UTEXTURE1D = 509,
378     UTEXTURE2D = 510,
379     UTEXTURE3D = 511,
380     UTEXTURECUBE = 512,
381     UTEXTURE1DARRAY = 513,
382     UTEXTURE2DARRAY = 514,
383     TEXTURE2DRECT = 515,
384     ITEXTURE2DRECT = 516,
385     UTEXTURE2DRECT = 517,
386     TEXTUREBUFFER = 518,
387     ITEXTUREBUFFER = 519,
388     UTEXTUREBUFFER = 520,
389     TEXTURECUBEARRAY = 521,
390     ITEXTURECUBEARRAY = 522,
391     UTEXTURECUBEARRAY = 523,
392     TEXTURE2DMS = 524,
393     ITEXTURE2DMS = 525,
394     UTEXTURE2DMS = 526,
395     TEXTURE2DMSARRAY = 527,
396     ITEXTURE2DMSARRAY = 528,
397     UTEXTURE2DMSARRAY = 529,
398     F16TEXTURE1D = 530,
399     F16TEXTURE2D = 531,
400     F16TEXTURE3D = 532,
401     F16TEXTURE2DRECT = 533,
402     F16TEXTURECUBE = 534,
403     F16TEXTURE1DARRAY = 535,
404     F16TEXTURE2DARRAY = 536,
405     F16TEXTURECUBEARRAY = 537,
406     F16TEXTUREBUFFER = 538,
407     F16TEXTURE2DMS = 539,
408     F16TEXTURE2DMSARRAY = 540,
409     SUBPASSINPUT = 541,
410     SUBPASSINPUTMS = 542,
411     ISUBPASSINPUT = 543,
412     ISUBPASSINPUTMS = 544,
413     USUBPASSINPUT = 545,
414     USUBPASSINPUTMS = 546,
415     F16SUBPASSINPUT = 547,
416     F16SUBPASSINPUTMS = 548,
417     IMAGE1D = 549,
418     IIMAGE1D = 550,
419     UIMAGE1D = 551,
420     IMAGE2D = 552,
421     IIMAGE2D = 553,
422     UIMAGE2D = 554,
423     IMAGE3D = 555,
424     IIMAGE3D = 556,
425     UIMAGE3D = 557,
426     IMAGE2DRECT = 558,
427     IIMAGE2DRECT = 559,
428     UIMAGE2DRECT = 560,
429     IMAGECUBE = 561,
430     IIMAGECUBE = 562,
431     UIMAGECUBE = 563,
432     IMAGEBUFFER = 564,
433     IIMAGEBUFFER = 565,
434     UIMAGEBUFFER = 566,
435     IMAGE1DARRAY = 567,
436     IIMAGE1DARRAY = 568,
437     UIMAGE1DARRAY = 569,
438     IMAGE2DARRAY = 570,
439     IIMAGE2DARRAY = 571,
440     UIMAGE2DARRAY = 572,
441     IMAGECUBEARRAY = 573,
442     IIMAGECUBEARRAY = 574,
443     UIMAGECUBEARRAY = 575,
444     IMAGE2DMS = 576,
445     IIMAGE2DMS = 577,
446     UIMAGE2DMS = 578,
447     IMAGE2DMSARRAY = 579,
448     IIMAGE2DMSARRAY = 580,
449     UIMAGE2DMSARRAY = 581,
450     F16IMAGE1D = 582,
451     F16IMAGE2D = 583,
452     F16IMAGE3D = 584,
453     F16IMAGE2DRECT = 585,
454     F16IMAGECUBE = 586,
455     F16IMAGE1DARRAY = 587,
456     F16IMAGE2DARRAY = 588,
457     F16IMAGECUBEARRAY = 589,
458     F16IMAGEBUFFER = 590,
459     F16IMAGE2DMS = 591,
460     F16IMAGE2DMSARRAY = 592,
461     STRUCT = 593,
462     VOID = 594,
463     WHILE = 595,
464     IDENTIFIER = 596,
465     TYPE_NAME = 597,
466     FLOATCONSTANT = 598,
467     DOUBLECONSTANT = 599,
468     INT16CONSTANT = 600,
469     UINT16CONSTANT = 601,
470     INT32CONSTANT = 602,
471     UINT32CONSTANT = 603,
472     INTCONSTANT = 604,
473     UINTCONSTANT = 605,
474     INT64CONSTANT = 606,
475     UINT64CONSTANT = 607,
476     BOOLCONSTANT = 608,
477     FLOAT16CONSTANT = 609,
478     LEFT_OP = 610,
479     RIGHT_OP = 611,
480     INC_OP = 612,
481     DEC_OP = 613,
482     LE_OP = 614,
483     GE_OP = 615,
484     EQ_OP = 616,
485     NE_OP = 617,
486     AND_OP = 618,
487     OR_OP = 619,
488     XOR_OP = 620,
489     MUL_ASSIGN = 621,
490     DIV_ASSIGN = 622,
491     ADD_ASSIGN = 623,
492     MOD_ASSIGN = 624,
493     LEFT_ASSIGN = 625,
494     RIGHT_ASSIGN = 626,
495     AND_ASSIGN = 627,
496     XOR_ASSIGN = 628,
497     OR_ASSIGN = 629,
498     SUB_ASSIGN = 630,
499     LEFT_PAREN = 631,
500     RIGHT_PAREN = 632,
501     LEFT_BRACKET = 633,
502     RIGHT_BRACKET = 634,
503     LEFT_BRACE = 635,
504     RIGHT_BRACE = 636,
505     DOT = 637,
506     COMMA = 638,
507     COLON = 639,
508     EQUAL = 640,
509     SEMICOLON = 641,
510     BANG = 642,
511     DASH = 643,
512     TILDE = 644,
513     PLUS = 645,
514     STAR = 646,
515     SLASH = 647,
516     PERCENT = 648,
517     LEFT_ANGLE = 649,
518     RIGHT_ANGLE = 650,
519     VERTICAL_BAR = 651,
520     CARET = 652,
521     AMPERSAND = 653,
522     QUESTION = 654,
523     INVARIANT = 655,
524     PRECISE = 656,
525     HIGH_PRECISION = 657,
526     MEDIUM_PRECISION = 658,
527     LOW_PRECISION = 659,
528     PRECISION = 660,
529     PACKED = 661,
530     RESOURCE = 662,
531     SUPERP = 663
532   };
533 #endif
534
535 /* Value type.  */
536 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
537
538 union YYSTYPE
539 {
540 #line 71 "MachineIndependent/glslang.y" /* yacc.c:355  */
541
542     struct {
543         glslang::TSourceLoc loc;
544         union {
545             glslang::TString *string;
546             int i;
547             unsigned int u;
548             long long i64;
549             unsigned long long u64;
550             bool b;
551             double d;
552         };
553         glslang::TSymbol* symbol;
554     } lex;
555     struct {
556         glslang::TSourceLoc loc;
557         glslang::TOperator op;
558         union {
559             TIntermNode* intermNode;
560             glslang::TIntermNodePair nodePair;
561             glslang::TIntermTyped* intermTypedNode;
562             glslang::TAttributes* attributes;
563         };
564         union {
565             glslang::TPublicType type;
566             glslang::TFunction* function;
567             glslang::TParameter param;
568             glslang::TTypeLoc typeLine;
569             glslang::TTypeList* typeList;
570             glslang::TArraySizes* arraySizes;
571             glslang::TIdentifierList* identifierList;
572         };
573         glslang::TArraySizes* typeParameters;
574     } interm;
575
576 #line 577 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355  */
577 };
578
579 typedef union YYSTYPE YYSTYPE;
580 # define YYSTYPE_IS_TRIVIAL 1
581 # define YYSTYPE_IS_DECLARED 1
582 #endif
583
584
585
586 int yyparse (glslang::TParseContext* pParseContext);
587
588 #endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED  */
589
590 /* Copy the second part of user declarations.  */
591 #line 107 "MachineIndependent/glslang.y" /* yacc.c:358  */
592
593
594 /* windows only pragma */
595 #ifdef _MSC_VER
596     #pragma warning(disable : 4065)
597     #pragma warning(disable : 4127)
598     #pragma warning(disable : 4244)
599 #endif
600
601 #define parseContext (*pParseContext)
602 #define yyerror(context, msg) context->parserError(msg)
603
604 extern int yylex(YYSTYPE*, TParseContext&);
605
606
607 #line 608 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358  */
608
609 #ifdef short
610 # undef short
611 #endif
612
613 #ifdef YYTYPE_UINT8
614 typedef YYTYPE_UINT8 yytype_uint8;
615 #else
616 typedef unsigned char yytype_uint8;
617 #endif
618
619 #ifdef YYTYPE_INT8
620 typedef YYTYPE_INT8 yytype_int8;
621 #else
622 typedef signed char yytype_int8;
623 #endif
624
625 #ifdef YYTYPE_UINT16
626 typedef YYTYPE_UINT16 yytype_uint16;
627 #else
628 typedef unsigned short int yytype_uint16;
629 #endif
630
631 #ifdef YYTYPE_INT16
632 typedef YYTYPE_INT16 yytype_int16;
633 #else
634 typedef short int yytype_int16;
635 #endif
636
637 #ifndef YYSIZE_T
638 # ifdef __SIZE_TYPE__
639 #  define YYSIZE_T __SIZE_TYPE__
640 # elif defined size_t
641 #  define YYSIZE_T size_t
642 # elif ! defined YYSIZE_T
643 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
644 #  define YYSIZE_T size_t
645 # else
646 #  define YYSIZE_T unsigned int
647 # endif
648 #endif
649
650 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
651
652 #ifndef YY_
653 # if defined YYENABLE_NLS && YYENABLE_NLS
654 #  if ENABLE_NLS
655 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
656 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
657 #  endif
658 # endif
659 # ifndef YY_
660 #  define YY_(Msgid) Msgid
661 # endif
662 #endif
663
664 #ifndef YY_ATTRIBUTE
665 # if (defined __GNUC__                                               \
666       && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
667      || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
668 #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
669 # else
670 #  define YY_ATTRIBUTE(Spec) /* empty */
671 # endif
672 #endif
673
674 #ifndef YY_ATTRIBUTE_PURE
675 # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
676 #endif
677
678 #ifndef YY_ATTRIBUTE_UNUSED
679 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
680 #endif
681
682 #if !defined _Noreturn \
683      && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
684 # if defined _MSC_VER && 1200 <= _MSC_VER
685 #  define _Noreturn __declspec (noreturn)
686 # else
687 #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
688 # endif
689 #endif
690
691 /* Suppress unused-variable warnings by "using" E.  */
692 #if ! defined lint || defined __GNUC__
693 # define YYUSE(E) ((void) (E))
694 #else
695 # define YYUSE(E) /* empty */
696 #endif
697
698 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
699 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
700 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
701     _Pragma ("GCC diagnostic push") \
702     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
703     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
704 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
705     _Pragma ("GCC diagnostic pop")
706 #else
707 # define YY_INITIAL_VALUE(Value) Value
708 #endif
709 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
710 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
711 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
712 #endif
713 #ifndef YY_INITIAL_VALUE
714 # define YY_INITIAL_VALUE(Value) /* Nothing. */
715 #endif
716
717
718 #if ! defined yyoverflow || YYERROR_VERBOSE
719
720 /* The parser invokes alloca or malloc; define the necessary symbols.  */
721
722 # ifdef YYSTACK_USE_ALLOCA
723 #  if YYSTACK_USE_ALLOCA
724 #   ifdef __GNUC__
725 #    define YYSTACK_ALLOC __builtin_alloca
726 #   elif defined __BUILTIN_VA_ARG_INCR
727 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
728 #   elif defined _AIX
729 #    define YYSTACK_ALLOC __alloca
730 #   elif defined _MSC_VER
731 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
732 #    define alloca _alloca
733 #   else
734 #    define YYSTACK_ALLOC alloca
735 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
736 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
737       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
738 #     ifndef EXIT_SUCCESS
739 #      define EXIT_SUCCESS 0
740 #     endif
741 #    endif
742 #   endif
743 #  endif
744 # endif
745
746 # ifdef YYSTACK_ALLOC
747    /* Pacify GCC's 'empty if-body' warning.  */
748 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
749 #  ifndef YYSTACK_ALLOC_MAXIMUM
750     /* The OS might guarantee only one guard page at the bottom of the stack,
751        and a page size can be as small as 4096 bytes.  So we cannot safely
752        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
753        to allow for a few compiler-allocated temporary stack slots.  */
754 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
755 #  endif
756 # else
757 #  define YYSTACK_ALLOC YYMALLOC
758 #  define YYSTACK_FREE YYFREE
759 #  ifndef YYSTACK_ALLOC_MAXIMUM
760 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
761 #  endif
762 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
763        && ! ((defined YYMALLOC || defined malloc) \
764              && (defined YYFREE || defined free)))
765 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
766 #   ifndef EXIT_SUCCESS
767 #    define EXIT_SUCCESS 0
768 #   endif
769 #  endif
770 #  ifndef YYMALLOC
771 #   define YYMALLOC malloc
772 #   if ! defined malloc && ! defined EXIT_SUCCESS
773 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
774 #   endif
775 #  endif
776 #  ifndef YYFREE
777 #   define YYFREE free
778 #   if ! defined free && ! defined EXIT_SUCCESS
779 void free (void *); /* INFRINGES ON USER NAME SPACE */
780 #   endif
781 #  endif
782 # endif
783 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
784
785
786 #if (! defined yyoverflow \
787      && (! defined __cplusplus \
788          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
789
790 /* A type that is properly aligned for any stack member.  */
791 union yyalloc
792 {
793   yytype_int16 yyss_alloc;
794   YYSTYPE yyvs_alloc;
795 };
796
797 /* The size of the maximum gap between one aligned stack and the next.  */
798 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
799
800 /* The size of an array large to enough to hold all stacks, each with
801    N elements.  */
802 # define YYSTACK_BYTES(N) \
803      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
804       + YYSTACK_GAP_MAXIMUM)
805
806 # define YYCOPY_NEEDED 1
807
808 /* Relocate STACK from its old location to the new one.  The
809    local variables YYSIZE and YYSTACKSIZE give the old and new number of
810    elements in the stack, and YYPTR gives the new location of the
811    stack.  Advance YYPTR to a properly aligned location for the next
812    stack.  */
813 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
814     do                                                                  \
815       {                                                                 \
816         YYSIZE_T yynewbytes;                                            \
817         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
818         Stack = &yyptr->Stack_alloc;                                    \
819         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
820         yyptr += yynewbytes / sizeof (*yyptr);                          \
821       }                                                                 \
822     while (0)
823
824 #endif
825
826 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
827 /* Copy COUNT objects from SRC to DST.  The source and destination do
828    not overlap.  */
829 # ifndef YYCOPY
830 #  if defined __GNUC__ && 1 < __GNUC__
831 #   define YYCOPY(Dst, Src, Count) \
832       __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
833 #  else
834 #   define YYCOPY(Dst, Src, Count)              \
835       do                                        \
836         {                                       \
837           YYSIZE_T yyi;                         \
838           for (yyi = 0; yyi < (Count); yyi++)   \
839             (Dst)[yyi] = (Src)[yyi];            \
840         }                                       \
841       while (0)
842 #  endif
843 # endif
844 #endif /* !YYCOPY_NEEDED */
845
846 /* YYFINAL -- State number of the termination state.  */
847 #define YYFINAL  384
848 /* YYLAST -- Last index in YYTABLE.  */
849 #define YYLAST   9372
850
851 /* YYNTOKENS -- Number of terminals.  */
852 #define YYNTOKENS  409
853 /* YYNNTS -- Number of nonterminals.  */
854 #define YYNNTS  111
855 /* YYNRULES -- Number of rules.  */
856 #define YYNRULES  580
857 /* YYNSTATES -- Number of states.  */
858 #define YYNSTATES  725
859
860 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
861    by yylex, with out-of-bounds checking.  */
862 #define YYUNDEFTOK  2
863 #define YYMAXUTOK   663
864
865 #define YYTRANSLATE(YYX)                                                \
866   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
867
868 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
869    as returned by yylex, without out-of-bounds checking.  */
870 static const yytype_uint16 yytranslate[] =
871 {
872        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
873        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
874        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
875        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
876        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
877        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
878        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
879        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
880        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
881        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
882        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
883        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
884        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
885        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
886        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
887        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
888        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
889        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
890        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
891        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
892        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
893        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
894        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
895        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
896        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
897        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
898        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
899       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
900       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
901       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
902       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
903       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
904       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
905       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
906       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
907       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
908      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
909      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
910      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
911      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
912      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
913      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
914      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
915      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
916      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
917      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
918      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
919      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
920      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
921      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
922      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
923      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
924      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
925      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
926      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
927      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
928      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
929      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
930      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
931      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
932      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
933      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
934      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
935      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
936      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
937      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
938      405,   406,   407,   408
939 };
940
941 #if YYDEBUG
942   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
943 static const yytype_uint16 yyrline[] =
944 {
945        0,   302,   302,   308,   311,   315,   319,   322,   326,   330,
946      334,   338,   342,   345,   349,   353,   356,   364,   367,   370,
947      373,   376,   381,   389,   396,   403,   409,   413,   420,   423,
948      429,   436,   446,   454,   459,   486,   494,   500,   504,   508,
949      528,   529,   530,   531,   537,   538,   543,   548,   557,   558,
950      563,   571,   572,   578,   587,   588,   593,   598,   603,   611,
951      612,   621,   633,   634,   643,   644,   653,   654,   663,   664,
952      672,   673,   681,   682,   690,   691,   691,   709,   710,   726,
953      730,   734,   738,   743,   747,   751,   755,   759,   763,   767,
954      774,   777,   788,   795,   800,   805,   813,   817,   821,   825,
955      830,   835,   844,   844,   855,   859,   866,   873,   876,   883,
956      891,   911,   934,   949,   974,   985,   995,  1005,  1015,  1024,
957     1027,  1031,  1035,  1040,  1048,  1053,  1058,  1063,  1068,  1077,
958     1088,  1115,  1124,  1131,  1138,  1149,  1158,  1168,  1180,  1189,
959     1201,  1207,  1210,  1217,  1221,  1225,  1233,  1242,  1245,  1256,
960     1259,  1262,  1266,  1270,  1274,  1278,  1284,  1288,  1300,  1314,
961     1319,  1325,  1331,  1338,  1344,  1349,  1354,  1359,  1369,  1379,
962     1389,  1399,  1408,  1420,  1424,  1429,  1434,  1439,  1444,  1449,
963     1453,  1457,  1461,  1465,  1471,  1480,  1487,  1490,  1498,  1503,
964     1513,  1518,  1526,  1530,  1540,  1543,  1549,  1555,  1562,  1572,
965     1576,  1580,  1585,  1590,  1595,  1600,  1604,  1609,  1614,  1619,
966     1624,  1629,  1634,  1639,  1644,  1649,  1653,  1658,  1663,  1668,
967     1674,  1680,  1686,  1692,  1698,  1704,  1710,  1716,  1722,  1728,
968     1734,  1740,  1745,  1750,  1755,  1760,  1765,  1770,  1776,  1782,
969     1788,  1794,  1800,  1806,  1812,  1818,  1824,  1830,  1836,  1842,
970     1848,  1854,  1860,  1866,  1872,  1878,  1884,  1890,  1896,  1902,
971     1908,  1914,  1920,  1926,  1932,  1937,  1942,  1947,  1952,  1957,
972     1962,  1967,  1972,  1977,  1982,  1987,  1992,  1998,  2004,  2010,
973     2016,  2022,  2028,  2034,  2040,  2046,  2052,  2058,  2064,  2070,
974     2076,  2082,  2088,  2094,  2100,  2106,  2112,  2118,  2124,  2130,
975     2136,  2142,  2148,  2154,  2160,  2166,  2172,  2178,  2184,  2190,
976     2196,  2202,  2208,  2214,  2220,  2226,  2232,  2238,  2244,  2250,
977     2256,  2262,  2268,  2274,  2280,  2286,  2291,  2296,  2301,  2306,
978     2311,  2316,  2321,  2326,  2331,  2336,  2341,  2346,  2351,  2356,
979     2364,  2372,  2380,  2388,  2396,  2404,  2412,  2420,  2428,  2436,
980     2444,  2452,  2460,  2465,  2470,  2475,  2480,  2485,  2490,  2495,
981     2500,  2505,  2510,  2515,  2520,  2525,  2530,  2535,  2540,  2548,
982     2556,  2561,  2566,  2571,  2579,  2584,  2589,  2594,  2602,  2607,
983     2612,  2617,  2625,  2630,  2635,  2640,  2645,  2650,  2658,  2663,
984     2671,  2676,  2684,  2689,  2697,  2702,  2710,  2715,  2723,  2728,
985     2736,  2741,  2746,  2751,  2756,  2761,  2766,  2771,  2776,  2781,
986     2786,  2791,  2796,  2801,  2806,  2811,  2819,  2824,  2829,  2834,
987     2842,  2847,  2852,  2857,  2865,  2870,  2875,  2880,  2888,  2893,
988     2898,  2903,  2911,  2916,  2921,  2926,  2934,  2939,  2944,  2949,
989     2957,  2962,  2967,  2972,  2980,  2985,  2990,  2995,  3003,  3008,
990     3013,  3018,  3026,  3031,  3036,  3041,  3049,  3054,  3059,  3064,
991     3072,  3077,  3082,  3087,  3095,  3100,  3105,  3110,  3118,  3123,
992     3128,  3133,  3141,  3146,  3151,  3157,  3163,  3169,  3175,  3184,
993     3193,  3199,  3205,  3211,  3217,  3223,  3228,  3244,  3249,  3254,
994     3262,  3262,  3273,  3273,  3283,  3286,  3299,  3321,  3348,  3352,
995     3358,  3363,  3374,  3377,  3383,  3392,  3395,  3401,  3405,  3406,
996     3412,  3413,  3414,  3415,  3416,  3417,  3418,  3419,  3423,  3431,
997     3432,  3436,  3432,  3448,  3449,  3453,  3453,  3460,  3460,  3474,
998     3477,  3485,  3493,  3504,  3505,  3509,  3512,  3518,  3525,  3529,
999     3537,  3541,  3554,  3557,  3563,  3563,  3583,  3586,  3592,  3604,
1000     3616,  3619,  3625,  3625,  3640,  3640,  3656,  3656,  3677,  3680,
1001     3686,  3689,  3695,  3699,  3706,  3711,  3716,  3723,  3726,  3735,
1002     3739,  3748,  3751,  3754,  3762,  3762,  3784,  3790,  3793,  3798,
1003     3801
1004 };
1005 #endif
1006
1007 #if YYDEBUG || YYERROR_VERBOSE || 1
1008 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1009    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1010 static const char *const yytname[] =
1011 {
1012   "$end", "error", "$undefined", "ATTRIBUTE", "VARYING", "FLOAT16_T",
1013   "FLOAT", "FLOAT32_T", "DOUBLE", "FLOAT64_T", "CONST", "BOOL", "INT",
1014   "UINT", "INT64_T", "UINT64_T", "INT32_T", "UINT32_T", "INT16_T",
1015   "UINT16_T", "INT8_T", "UINT8_T", "BREAK", "CONTINUE", "DO", "ELSE",
1016   "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT",
1017   "SUBROUTINE", "DEMOTE", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3",
1018   "IVEC4", "UVEC2", "UVEC3", "UVEC4", "I64VEC2", "I64VEC3", "I64VEC4",
1019   "U64VEC2", "U64VEC3", "U64VEC4", "I32VEC2", "I32VEC3", "I32VEC4",
1020   "U32VEC2", "U32VEC3", "U32VEC4", "I16VEC2", "I16VEC3", "I16VEC4",
1021   "U16VEC2", "U16VEC3", "U16VEC4", "I8VEC2", "I8VEC3", "I8VEC4", "U8VEC2",
1022   "U8VEC3", "U8VEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3", "MAT4",
1023   "CENTROID", "IN", "OUT", "INOUT", "UNIFORM", "PATCH", "SAMPLE", "BUFFER",
1024   "SHARED", "NONUNIFORM", "PAYLOADNV", "PAYLOADINNV", "HITATTRNV",
1025   "CALLDATANV", "CALLDATAINNV", "COHERENT", "VOLATILE", "RESTRICT",
1026   "READONLY", "WRITEONLY", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT",
1027   "WORKGROUPCOHERENT", "SUBGROUPCOHERENT", "NONPRIVATE", "DVEC2", "DVEC3",
1028   "DVEC4", "DMAT2", "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4",
1029   "F16MAT2", "F16MAT3", "F16MAT4", "F32VEC2", "F32VEC3", "F32VEC4",
1030   "F32MAT2", "F32MAT3", "F32MAT4", "F64VEC2", "F64VEC3", "F64VEC4",
1031   "F64MAT2", "F64MAT3", "F64MAT4", "NOPERSPECTIVE", "FLAT", "SMOOTH",
1032   "LAYOUT", "EXPLICITINTERPAMD", "PERVERTEXNV", "PERPRIMITIVENV",
1033   "PERVIEWNV", "PERTASKNV", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2",
1034   "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3", "MAT4X4", "DMAT2X2", "DMAT2X3",
1035   "DMAT2X4", "DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3",
1036   "DMAT4X4", "F16MAT2X2", "F16MAT2X3", "F16MAT2X4", "F16MAT3X2",
1037   "F16MAT3X3", "F16MAT3X4", "F16MAT4X2", "F16MAT4X3", "F16MAT4X4",
1038   "F32MAT2X2", "F32MAT2X3", "F32MAT2X4", "F32MAT3X2", "F32MAT3X3",
1039   "F32MAT3X4", "F32MAT4X2", "F32MAT4X3", "F32MAT4X4", "F64MAT2X2",
1040   "F64MAT2X3", "F64MAT2X4", "F64MAT3X2", "F64MAT3X3", "F64MAT3X4",
1041   "F64MAT4X2", "F64MAT4X3", "F64MAT4X4", "ATOMIC_UINT", "ACCSTRUCTNV",
1042   "FCOOPMATNV", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
1043   "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW",
1044   "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW",
1045   "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D",
1046   "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D",
1047   "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY",
1048   "USAMPLER2DARRAY", "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW",
1049   "ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER",
1050   "USAMPLERBUFFER", "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW",
1051   "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY", "SAMPLER2DMS", "ISAMPLER2DMS",
1052   "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY",
1053   "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT",
1054   "F16SAMPLER1D", "F16SAMPLER2D", "F16SAMPLER3D", "F16SAMPLER2DRECT",
1055   "F16SAMPLERCUBE", "F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY",
1056   "F16SAMPLERCUBEARRAY", "F16SAMPLERBUFFER", "F16SAMPLER2DMS",
1057   "F16SAMPLER2DMSARRAY", "F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW",
1058   "F16SAMPLER1DARRAYSHADOW", "F16SAMPLER2DARRAYSHADOW",
1059   "F16SAMPLER2DRECTSHADOW", "F16SAMPLERCUBESHADOW",
1060   "F16SAMPLERCUBEARRAYSHADOW", "SAMPLER", "SAMPLERSHADOW", "TEXTURE1D",
1061   "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE", "TEXTURE1DARRAY",
1062   "TEXTURE2DARRAY", "ITEXTURE1D", "ITEXTURE2D", "ITEXTURE3D",
1063   "ITEXTURECUBE", "ITEXTURE1DARRAY", "ITEXTURE2DARRAY", "UTEXTURE1D",
1064   "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE", "UTEXTURE1DARRAY",
1065   "UTEXTURE2DARRAY", "TEXTURE2DRECT", "ITEXTURE2DRECT", "UTEXTURE2DRECT",
1066   "TEXTUREBUFFER", "ITEXTUREBUFFER", "UTEXTUREBUFFER", "TEXTURECUBEARRAY",
1067   "ITEXTURECUBEARRAY", "UTEXTURECUBEARRAY", "TEXTURE2DMS", "ITEXTURE2DMS",
1068   "UTEXTURE2DMS", "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY",
1069   "UTEXTURE2DMSARRAY", "F16TEXTURE1D", "F16TEXTURE2D", "F16TEXTURE3D",
1070   "F16TEXTURE2DRECT", "F16TEXTURECUBE", "F16TEXTURE1DARRAY",
1071   "F16TEXTURE2DARRAY", "F16TEXTURECUBEARRAY", "F16TEXTUREBUFFER",
1072   "F16TEXTURE2DMS", "F16TEXTURE2DMSARRAY", "SUBPASSINPUT",
1073   "SUBPASSINPUTMS", "ISUBPASSINPUT", "ISUBPASSINPUTMS", "USUBPASSINPUT",
1074   "USUBPASSINPUTMS", "F16SUBPASSINPUT", "F16SUBPASSINPUTMS", "IMAGE1D",
1075   "IIMAGE1D", "UIMAGE1D", "IMAGE2D", "IIMAGE2D", "UIMAGE2D", "IMAGE3D",
1076   "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", "IIMAGE2DRECT", "UIMAGE2DRECT",
1077   "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", "IMAGEBUFFER", "IIMAGEBUFFER",
1078   "UIMAGEBUFFER", "IMAGE1DARRAY", "IIMAGE1DARRAY", "UIMAGE1DARRAY",
1079   "IMAGE2DARRAY", "IIMAGE2DARRAY", "UIMAGE2DARRAY", "IMAGECUBEARRAY",
1080   "IIMAGECUBEARRAY", "UIMAGECUBEARRAY", "IMAGE2DMS", "IIMAGE2DMS",
1081   "UIMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY",
1082   "F16IMAGE1D", "F16IMAGE2D", "F16IMAGE3D", "F16IMAGE2DRECT",
1083   "F16IMAGECUBE", "F16IMAGE1DARRAY", "F16IMAGE2DARRAY",
1084   "F16IMAGECUBEARRAY", "F16IMAGEBUFFER", "F16IMAGE2DMS",
1085   "F16IMAGE2DMSARRAY", "STRUCT", "VOID", "WHILE", "IDENTIFIER",
1086   "TYPE_NAME", "FLOATCONSTANT", "DOUBLECONSTANT", "INT16CONSTANT",
1087   "UINT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT", "INTCONSTANT",
1088   "UINTCONSTANT", "INT64CONSTANT", "UINT64CONSTANT", "BOOLCONSTANT",
1089   "FLOAT16CONSTANT", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
1090   "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
1091   "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
1092   "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN",
1093   "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE",
1094   "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG",
1095   "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT", "LEFT_ANGLE",
1096   "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND", "QUESTION",
1097   "INVARIANT", "PRECISE", "HIGH_PRECISION", "MEDIUM_PRECISION",
1098   "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP", "$accept",
1099   "variable_identifier", "primary_expression", "postfix_expression",
1100   "integer_expression", "function_call", "function_call_or_method",
1101   "function_call_generic", "function_call_header_no_parameters",
1102   "function_call_header_with_parameters", "function_call_header",
1103   "function_identifier", "unary_expression", "unary_operator",
1104   "multiplicative_expression", "additive_expression", "shift_expression",
1105   "relational_expression", "equality_expression", "and_expression",
1106   "exclusive_or_expression", "inclusive_or_expression",
1107   "logical_and_expression", "logical_xor_expression",
1108   "logical_or_expression", "conditional_expression", "$@1",
1109   "assignment_expression", "assignment_operator", "expression",
1110   "constant_expression", "declaration", "block_structure", "$@2",
1111   "identifier_list", "function_prototype", "function_declarator",
1112   "function_header_with_parameters", "function_header",
1113   "parameter_declarator", "parameter_declaration",
1114   "parameter_type_specifier", "init_declarator_list", "single_declaration",
1115   "fully_specified_type", "invariant_qualifier", "interpolation_qualifier",
1116   "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
1117   "precise_qualifier", "type_qualifier", "single_type_qualifier",
1118   "storage_qualifier", "non_uniform_qualifier", "type_name_list",
1119   "type_specifier", "array_specifier", "type_parameter_specifier_opt",
1120   "type_parameter_specifier", "type_parameter_specifier_list",
1121   "type_specifier_nonarray", "precision_qualifier", "struct_specifier",
1122   "$@3", "$@4", "struct_declaration_list", "struct_declaration",
1123   "struct_declarator_list", "struct_declarator", "initializer",
1124   "initializer_list", "declaration_statement", "statement",
1125   "simple_statement", "demote_statement", "compound_statement", "$@5",
1126   "$@6", "statement_no_new_scope", "statement_scoped", "$@7", "$@8",
1127   "compound_statement_no_new_scope", "statement_list",
1128   "expression_statement", "selection_statement",
1129   "selection_statement_nonattributed", "selection_rest_statement",
1130   "condition", "switch_statement", "switch_statement_nonattributed", "$@9",
1131   "switch_statement_list", "case_label", "iteration_statement",
1132   "iteration_statement_nonattributed", "$@10", "$@11", "$@12",
1133   "for_init_statement", "conditionopt", "for_rest_statement",
1134   "jump_statement", "translation_unit", "external_declaration",
1135   "function_definition", "$@13", "attribute", "attribute_list",
1136   "single_attribute", YY_NULLPTR
1137 };
1138 #endif
1139
1140 # ifdef YYPRINT
1141 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1142    (internal) symbol number NUM (which must be that of a token).  */
1143 static const yytype_uint16 yytoknum[] =
1144 {
1145        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1146      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1147      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1148      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1149      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
1150      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
1151      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1152      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1153      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1154      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1155      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1156      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1157      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1158      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
1159      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
1160      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
1161      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
1162      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
1163      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1164      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1165      455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1166      465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1167      475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1168      485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1169      495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
1170      505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
1171      515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
1172      525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
1173      535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
1174      545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
1175      555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
1176      565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
1177      575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
1178      585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
1179      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
1180      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
1181      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
1182      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
1183      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
1184      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
1185      655,   656,   657,   658,   659,   660,   661,   662,   663
1186 };
1187 # endif
1188
1189 #define YYPACT_NINF -657
1190
1191 #define yypact_value_is_default(Yystate) \
1192   (!!((Yystate) == (-657)))
1193
1194 #define YYTABLE_NINF -526
1195
1196 #define yytable_value_is_error(Yytable_value) \
1197   0
1198
1199   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1200      STATE-NUM.  */
1201 static const yytype_int16 yypact[] =
1202 {
1203     3545,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1204     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1205     -328,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1206     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1207     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1208     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1209     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1210     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1211     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1212     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1213     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1214     -657,  -657,  -307,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1215     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1216     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1217     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1218     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1219     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1220     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1221     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1222     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1223     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1224     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1225     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1226     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1227     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1228     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1229     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1230     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1231     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1232     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1233     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1234     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1235     -657,  -657,  -657,  -657,  -318,  -657,  -657,  -657,  -657,  -657,
1236     -657,  -657,  -657,  -259,  -657,  -320,  -286,  -236,  -251,  5958,
1237     -299,  -657,  -191,  -657,  -657,  -657,  -657,  4350,  -657,  -657,
1238     -657,  -657,  -228,  -657,  -657,   724,  -657,  -657,  -176,   -72,
1239     -212,  -657,  9030,  -352,  -657,  -657,  -211,  -657,  5958,  -657,
1240     -657,  -657,  5958,  -171,  -169,  -657,  -324,  -285,  -657,  -657,
1241     -657,  8258,  -205,  -657,  -657,  -657,  -657,  -281,  -657,  -210,
1242     -280,  -657,  -657,  5958,  -208,  6714,  -657,  -345,  1127,  -657,
1243     -657,  -657,  -657,  -205,  -325,  -657,  7100,  -322,  -657,  -167,
1244     -657,  -271,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1245     -657,  -657,  -657,  -657,  -657,  8258,  8258,  8258,  -657,  -657,
1246     -657,  -657,  -657,  -657,  -327,  -657,  -657,  -657,  -198,  -278,
1247     8644,  -196,  -657,  8258,  -657,  -657,  -355,  -197,  -657,  -159,
1248     8258,  -657,   -72,  5958,  5958,  -158,  4752,  -657,  -657,  -657,
1249     -657,  -245,  -305,  -291,  -323,  -209,  -214,  -207,  -204,  -178,
1250     -177,  -340,  -192,  7486,  -657,  -193,  -190,  -657,  -187,  -182,
1251     -189,  7872,  -181,  8258,  -186,  -185,  -174,  -179,  -172,  -657,
1252     -657,  -293,  -657,  -657,  -253,  -657,  -286,  -165,  -164,  -657,
1253     -657,  -657,  -657,  -657,  1530,  -657,  -657,  -657,  -657,  -657,
1254     -657,  -657,  -657,  -657,   -19,  -197,  7100,  -292,  7100,  -657,
1255     -657,  7100,  5958,  -657,  -141,  -657,  -657,  -657,  -273,  -657,
1256     -657,  8258,  -137,  -657,  -657,  8258,  -163,  -657,  -657,  -657,
1257     8258,  -657,  -657,  -657,  -657,  -657,  5154,  -158,  -205,  -252,
1258     -657,  -657,  -657,  8258,  8258,  8258,  8258,  8258,  8258,  8258,
1259     8258,  8258,  8258,  8258,  8258,  8258,  8258,  8258,  8258,  8258,
1260     8258,  8258,  -657,  -657,  -657,  -166,  -657,  -657,  1933,  -657,
1261     8258,  -657,  -657,  -246,  8258,  -229,  -657,  -657,  -657,  -136,
1262     -657,  1933,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1263     -657,  -657,  -657,  8258,  8258,  -657,  -657,  -657,  -657,  -657,
1264     -657,  -657,  7100,  -657,  -232,  -657,  5556,  -657,  -657,  -142,
1265     -145,  -657,  -657,  -657,  -657,  -244,  -197,  -158,  -657,  -657,
1266     -657,  -657,  -245,  -245,  -305,  -305,  -291,  -291,  -291,  -291,
1267     -323,  -323,  -209,  -214,  -207,  -204,  -178,  -177,  8258,  -657,
1268     -101,  3142,  -269,  -657,  -261,  -657,  3948,  -135,  -344,  -657,
1269     1933,  -657,  -657,  -657,  -657,  6328,  -657,  -657,  -657,  -657,
1270     -227,  -134,  -657,  -657,  3948,  -140,  -657,  -145,   -97,  5958,
1271     -132,  8258,  -133,  -136,  -131,  -657,  -657,  8258,  8258,  -657,
1272     -139,  -129,   224,  -128,  2739,  -657,  -127,  -130,  2336,  -126,
1273     -657,  -657,  -657,  -657,  -254,  8258,  2336,  -140,  -657,  -657,
1274     1933,  7100,  -657,  -657,  -657,  -657,  -124,  -145,  -657,  -657,
1275     1933,  -125,  -657,  -657,  -657
1276 };
1277
1278   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1279      Performed when YYTABLE does not specify something else to do.  Zero
1280      means the default is an error.  */
1281 static const yytype_uint16 yydefact[] =
1282 {
1283        0,   157,   158,   202,   200,   203,   201,   204,   156,   215,
1284      205,   206,   213,   214,   211,   212,   209,   210,   207,   208,
1285      183,   231,   232,   233,   234,   235,   236,   249,   250,   251,
1286      246,   247,   248,   261,   262,   263,   243,   244,   245,   258,
1287      259,   260,   240,   241,   242,   255,   256,   257,   237,   238,
1288      239,   252,   253,   254,   216,   217,   218,   264,   265,   266,
1289      162,   160,   161,   159,   165,   163,   164,   166,   172,   185,
1290      168,   169,   167,   170,   171,   173,   179,   180,   181,   182,
1291      174,   175,   176,   177,   178,   219,   220,   221,   276,   277,
1292      278,   222,   223,   224,   288,   289,   290,   225,   226,   227,
1293      300,   301,   302,   228,   229,   230,   312,   313,   314,   134,
1294      133,   132,     0,   135,   136,   137,   138,   139,   267,   268,
1295      269,   270,   271,   272,   273,   274,   275,   279,   280,   281,
1296      282,   283,   284,   285,   286,   287,   291,   292,   293,   294,
1297      295,   296,   297,   298,   299,   303,   304,   305,   306,   307,
1298      308,   309,   310,   311,   315,   316,   317,   318,   319,   320,
1299      321,   322,   323,   325,   324,   484,   326,   327,   328,   329,
1300      330,   331,   332,   333,   334,   335,   336,   352,   353,   354,
1301      355,   356,   357,   359,   360,   361,   362,   363,   364,   366,
1302      367,   370,   371,   372,   374,   375,   337,   338,   358,   365,
1303      376,   378,   379,   380,   382,   383,   474,   475,   339,   340,
1304      341,   368,   342,   346,   347,   350,   373,   377,   381,   343,
1305      344,   348,   349,   369,   345,   351,   384,   385,   386,   388,
1306      390,   392,   394,   396,   400,   401,   402,   403,   404,   405,
1307      407,   408,   409,   410,   411,   412,   414,   416,   417,   418,
1308      420,   421,   398,   406,   413,   422,   424,   425,   426,   428,
1309      429,   387,   389,   391,   415,   393,   395,   397,   399,   419,
1310      423,   427,   476,   477,   480,   481,   482,   483,   478,   479,
1311      430,   432,   433,   434,   436,   437,   438,   440,   441,   442,
1312      444,   445,   446,   448,   449,   450,   452,   453,   454,   456,
1313      457,   458,   460,   461,   462,   464,   465,   466,   468,   469,
1314      470,   472,   473,   431,   435,   439,   443,   447,   455,   459,
1315      463,   451,   467,   471,     0,   199,   486,   573,   131,   146,
1316      487,   488,   489,     0,   572,     0,   574,     0,   108,   107,
1317        0,   119,   124,   153,   152,   150,   154,     0,   147,   149,
1318      155,   129,   195,   151,   485,     0,   569,   571,     0,     0,
1319        0,   492,     0,     0,    96,    93,     0,   106,     0,   115,
1320      109,   117,     0,   118,     0,    94,   125,     0,    99,   148,
1321      130,     0,   188,   194,     1,   570,   186,     0,   145,   143,
1322        0,   141,   490,     0,     0,     0,    97,     0,     0,   575,
1323      110,   114,   116,   112,   120,   111,     0,   126,   102,     0,
1324      100,     0,     2,    12,    13,    10,    11,     4,     5,     6,
1325        7,     8,     9,    15,    14,     0,     0,     0,    42,    41,
1326       43,    40,     3,    17,    36,    19,    24,    25,     0,     0,
1327       29,     0,   197,     0,    35,    33,     0,   189,   184,     0,
1328        0,   140,     0,     0,     0,     0,     0,   494,    95,   190,
1329       44,    48,    51,    54,    59,    62,    64,    66,    68,    70,
1330       72,    74,     0,     0,    98,     0,     0,   554,     0,     0,
1331        0,     0,     0,     0,     0,     0,     0,     0,   520,   529,
1332      533,    44,    77,    90,     0,   507,     0,   155,   129,   510,
1333      531,   509,   517,   508,     0,   511,   512,   535,   513,   542,
1334      514,   515,   550,   516,     0,   113,     0,   121,     0,   502,
1335      128,     0,     0,   104,     0,   101,    37,    38,     0,    21,
1336       22,     0,     0,    27,    26,     0,   199,    30,    32,    39,
1337        0,   196,   187,    92,   144,   142,     0,     0,   500,     0,
1338      498,   493,   495,     0,     0,     0,     0,     0,     0,     0,
1339        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1340        0,     0,    75,   191,   192,     0,   565,   564,     0,   556,
1341        0,   568,   566,     0,     0,     0,   549,   518,   552,     0,
1342      519,     0,    80,    81,    83,    82,    85,    86,    87,    88,
1343       89,    84,    79,     0,     0,   534,   530,   532,   536,   543,
1344      551,   123,     0,   505,     0,   127,     0,   105,    16,     0,
1345       23,    20,    31,   198,   491,     0,   501,     0,   496,    45,
1346       46,    47,    50,    49,    52,    53,    57,    58,    55,    56,
1347       60,    61,    63,    65,    67,    69,    71,    73,     0,   193,
1348        0,     0,     0,   567,     0,   548,     0,   579,     0,   577,
1349      521,    78,    91,   122,   503,     0,   103,    18,   497,   499,
1350        0,     0,   559,   558,   561,   527,   544,   540,     0,     0,
1351        0,     0,     0,     0,     0,   504,   506,     0,     0,   560,
1352        0,     0,   539,     0,     0,   537,     0,     0,     0,     0,
1353      576,   578,   522,    76,     0,   562,     0,   527,   526,   528,
1354      546,     0,   524,   553,   523,   580,     0,   563,   557,   538,
1355      547,     0,   541,   555,   545
1356 };
1357
1358   /* YYPGOTO[NTERM-NUM].  */
1359 static const yytype_int16 yypgoto[] =
1360 {
1361     -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,  -657,
1362     -657,  -657,  -337,  -657,  -398,  -395,  -435,  -404,  -312,  -310,
1363     -309,  -311,  -306,  -308,  -657,  -383,  -657,  -397,  -657,  -413,
1364     -421,     1,  -657,  -657,  -657,     2,  -657,  -657,  -657,  -107,
1365     -102,  -105,  -657,  -657,  -629,  -657,  -657,  -657,  -657,  -180,
1366     -657,  -336,  -343,  -657,     6,  -657,     0,  -357,  -657,  -657,
1367     -657,  -657,   -63,  -657,  -657,  -657,  -431,  -439,  -276,  -354,
1368     -503,  -657,  -377,  -484,  -656,  -657,  -417,  -657,  -657,  -429,
1369     -428,  -657,  -657,   -88,  -575,  -370,  -657,  -231,  -657,  -392,
1370     -657,  -230,  -657,  -657,  -657,  -657,  -226,  -657,  -657,  -657,
1371     -657,  -657,  -657,  -657,  -657,   -70,  -657,  -657,  -657,  -657,
1372     -396
1373 };
1374
1375   /* YYDEFGOTO[NTERM-NUM].  */
1376 static const yytype_int16 yydefgoto[] =
1377 {
1378       -1,   432,   433,   434,   619,   435,   436,   437,   438,   439,
1379      440,   441,   491,   443,   461,   462,   463,   464,   465,   466,
1380      467,   468,   469,   470,   471,   492,   648,   493,   603,   494,
1381      544,   495,   335,   522,   411,   496,   337,   338,   339,   369,
1382      370,   371,   340,   341,   342,   343,   344,   345,   390,   391,
1383      346,   347,   348,   349,   444,   387,   445,   397,   382,   383,
1384      446,   352,   353,   354,   453,   393,   456,   457,   549,   550,
1385      520,   614,   499,   500,   501,   502,   503,   591,   684,   713,
1386      692,   693,   694,   714,   504,   505,   506,   507,   695,   680,
1387      508,   509,   696,   721,   510,   511,   512,   656,   578,   651,
1388      674,   690,   691,   513,   355,   356,   357,   366,   514,   658,
1389      659
1390 };
1391
1392   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1393      positive, shift that token.  If negative, reduce the rule whose
1394      number is the opposite.  If YYTABLE_NINF, syntax error.  */
1395 static const yytype_int16 yytable[] =
1396 {
1397      351,   334,   336,   372,   379,   477,   350,   478,   479,   519,
1398      388,   482,   472,   611,   528,   613,   660,   552,   615,   407,
1399      607,   363,   546,   360,   571,   447,   395,   678,   540,   379,
1400      529,   530,   372,   473,   396,   682,   560,   561,   709,   683,
1401      541,   474,   712,   537,   442,   678,   515,   517,   358,   -34,
1402      712,   531,   405,   395,   395,   532,   473,   454,   460,   572,
1403      516,   406,   361,   521,   558,   559,   364,   543,   583,   359,
1404      585,   562,   563,   592,   593,   594,   595,   596,   597,   598,
1405      599,   600,   601,   556,   374,   557,   473,   375,   526,   527,
1406      575,   616,   602,   612,   650,   408,   448,   451,   409,   534,
1407      365,   410,   449,   452,   618,   535,   539,   552,   675,   663,
1408      604,   379,   524,   460,   604,   525,   676,   454,   620,   519,
1409      454,   519,   604,   716,   519,   636,   637,   638,   639,   604,
1410      604,   627,   368,   605,   628,   720,   460,   604,   622,   627,
1411      653,   367,   668,   330,   331,   332,   553,   554,   555,   664,
1412      376,   665,   564,   565,   604,   655,   604,   687,   632,   633,
1413      640,   641,   686,   634,   635,   386,   381,   652,   392,   398,
1414      403,   654,   404,   395,   523,   450,   607,   552,   458,   533,
1415      538,   473,   542,   548,   566,   569,   454,   573,   570,   579,
1416      567,   626,   568,   576,   580,   584,   577,   581,   586,   589,
1417      617,   587,   588,   623,   621,   657,   661,   662,   722,   590,
1418      454,   -35,   -33,   649,   -28,   519,   629,   630,   631,   460,
1419      460,   460,   460,   460,   460,   460,   460,   460,   460,   460,
1420      460,   460,   460,   460,   460,   670,   607,   667,   604,   671,
1421     -525,   681,   688,   677,   697,   698,   700,   705,   706,   707,
1422      702,   715,   488,   710,   642,   711,   724,   643,   645,   644,
1423      699,   677,   723,   647,   646,   401,   400,   402,   519,   389,
1424      362,   625,   545,   669,   672,   704,   708,   718,   399,   719,
1425      454,   673,   689,   608,   609,   385,     0,   701,   610,     0,
1426      703,     0,   717,     0,     0,     0,     0,     0,   543,     0,
1427        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1428        0,     0,     0,     0,   519,     0,     0,     0,     0,     0,
1429      679,   486,     0,     0,     0,     0,     0,     0,     0,     0,
1430        0,     0,     0,     0,     0,     0,   379,     0,   679,   373,
1431        0,     0,     0,     0,   460,   350,     0,   380,     0,     0,
1432        0,     0,     0,   350,     0,   351,   334,   336,     0,     0,
1433        0,   350,   394,     0,     0,     0,     0,     0,   373,     0,
1434        0,     0,   373,     0,   350,     0,     0,     0,   350,     0,
1435        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1436        0,     0,     0,   455,     0,     0,     0,     0,   498,   350,
1437        0,     0,     0,     0,   497,     0,     0,     0,     0,     0,
1438        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1439        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1440        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1441        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1442        0,     0,     0,   455,   547,     0,   455,     0,     0,   350,
1443      350,     0,   350,     0,     0,     0,     0,     0,     0,     0,
1444        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1445        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1446        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1447        0,     0,     0,     0,   498,     0,     0,     0,     0,     0,
1448      497,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1449        0,     0,   455,     0,     0,     0,     0,     0,   350,     0,
1450        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1451        0,     0,     0,     0,     0,     0,   455,     0,     0,     0,
1452        0,     0,   350,     0,     0,     0,     0,     0,     0,     0,
1453        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1454        0,     0,     0,     0,     0,     0,     0,     0,   498,     0,
1455        0,     0,     0,     0,   497,     0,     0,     0,     0,     0,
1456        0,   498,     0,     0,     0,     0,     0,   497,     0,     0,
1457        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1458        0,     0,     0,     0,     0,     0,   455,     0,     0,     0,
1459        0,     0,   350,     0,     0,     0,     0,     0,     0,     0,
1460        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1461        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1462        0,   498,     0,     0,     0,     0,   498,   497,     0,     0,
1463      498,     0,   497,     0,     0,     0,   497,     0,     0,     0,
1464        0,     0,     0,     0,   498,     0,     0,     0,     0,   380,
1465      497,     0,     0,     0,     0,   350,     0,     0,     0,     0,
1466        0,     0,     0,     0,   498,     0,     0,     0,   498,     0,
1467      497,     0,     0,     0,   497,     0,   498,     0,     0,     0,
1468      498,     0,   497,     0,     0,     0,   497,     0,     0,     0,
1469      498,     0,     0,     0,   384,     0,   497,     1,     2,     3,
1470        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1471       14,    15,    16,    17,    18,    19,     0,     0,     0,     0,
1472        0,     0,     0,     0,     0,     0,     0,    20,     0,    21,
1473       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1474       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1475       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1476       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1477       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1478       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1479       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1480       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1481      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1482      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1483      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1484      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1485      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1486      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1487      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1488      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1489      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1490      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1491      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1492      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1493      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
1494      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
1495      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
1496      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1497      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
1498      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
1499      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
1500      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
1501      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
1502      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
1503      322,   323,   324,   325,     0,     0,   326,     0,     0,     0,
1504        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1505        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1506        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1507        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1508      327,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1509        0,     0,     0,     0,   328,   329,   330,   331,   332,   333,
1510        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
1511       11,    12,    13,    14,    15,    16,    17,    18,    19,   475,
1512      476,   477,     0,   478,   479,   480,   481,   482,   483,   484,
1513       20,   485,    21,    22,    23,    24,    25,    26,    27,    28,
1514       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1515       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1516       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1517       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1518       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1519       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1520       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1521       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1522      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1523      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1524      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1525      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1526      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1527      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1528      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1529      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1530      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1531      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1532      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1533      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
1534      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
1535      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
1536      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
1537      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
1538      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
1539      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
1540      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
1541      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
1542      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
1543      319,   320,   321,   322,   323,   324,   325,   486,   412,   326,
1544      413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
1545      423,   424,     0,     0,   425,   426,     0,     0,     0,     0,
1546        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1547        0,     0,     0,   427,     0,   487,     0,   488,   489,     0,
1548        0,     0,     0,   490,   428,   429,   430,   431,     0,     0,
1549        0,     0,     0,     0,     0,     0,     0,   328,   329,   330,
1550      331,   332,   333,     1,     2,     3,     4,     5,     6,     7,
1551        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1552       18,    19,   475,   476,   477,     0,   478,   479,   480,   481,
1553      482,   483,   484,    20,   485,    21,    22,    23,    24,    25,
1554       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1555       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1556       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1557       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1558       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1559       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1560       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1561       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1562      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1563      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1564      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1565      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1566      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1567      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1568      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1569      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1570      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1571      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1572      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1573      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1574      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1575      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1576      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1577      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
1578      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
1579      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
1580      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
1581      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
1582      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
1583      316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
1584      486,   412,   326,   413,   414,   415,   416,   417,   418,   419,
1585      420,   421,   422,   423,   424,     0,     0,   425,   426,     0,
1586        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1587        0,     0,     0,     0,     0,     0,   427,     0,   487,     0,
1588      488,   606,     0,     0,     0,     0,   490,   428,   429,   430,
1589      431,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1590      328,   329,   330,   331,   332,   333,     1,     2,     3,     4,
1591        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1592       15,    16,    17,    18,    19,   475,   476,   477,     0,   478,
1593      479,   480,   481,   482,   483,   484,    20,   485,    21,    22,
1594       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1595       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1596       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1597       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1598       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1599       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1600       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1601       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1602      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1603      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1604      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1605      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1606      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1607      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
1608      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1609      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1610      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1611      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1612      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1613      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
1614      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
1615      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
1616      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1617      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
1618      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
1619      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
1620      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
1621      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
1622      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
1623      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
1624      323,   324,   325,   486,   412,   326,   413,   414,   415,   416,
1625      417,   418,   419,   420,   421,   422,   423,   424,     0,     0,
1626      425,   426,     0,     0,     0,     0,     0,     0,     0,     0,
1627        0,     0,     0,     0,     0,     0,     0,     0,     0,   427,
1628        0,   487,     0,   488,     0,     0,     0,     0,     0,   490,
1629      428,   429,   430,   431,     0,     0,     0,     0,     0,     0,
1630        0,     0,     0,   328,   329,   330,   331,   332,   333,     1,
1631        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1632       12,    13,    14,    15,    16,    17,    18,    19,   475,   476,
1633      477,     0,   478,   479,   480,   481,   482,   483,   484,    20,
1634      485,    21,    22,    23,    24,    25,    26,    27,    28,    29,
1635       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1636       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1637       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1638       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1639       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1640       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1641       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1642      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1643      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1644      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1645      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1646      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1647      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1648      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1649      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1650      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1651      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1652      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1653      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1654      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1655      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1656      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1657      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
1658      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
1659      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1660      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
1661      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
1662      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
1663      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
1664      320,   321,   322,   323,   324,   325,   486,   412,   326,   413,
1665      414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
1666      424,     0,     0,   425,   426,     0,     0,     0,     0,     0,
1667        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1668        0,     0,   427,     0,   487,     0,   398,     0,     0,     0,
1669        0,     0,   490,   428,   429,   430,   431,     0,     0,     0,
1670        0,     0,     0,     0,     0,     0,   328,   329,   330,   331,
1671      332,   333,     1,     2,     3,     4,     5,     6,     7,     8,
1672        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1673       19,   475,   476,   477,     0,   478,   479,   480,   481,   482,
1674      483,   484,    20,   485,    21,    22,    23,    24,    25,    26,
1675       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1676       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1677       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1678       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1679       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1680       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1681       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1682       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1683      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1684      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1685      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1686      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1687      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1688      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
1689      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1690      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1691      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1692      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1693      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
1694      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
1695      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
1696      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
1697      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
1698      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
1699      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
1700      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
1701      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
1702      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
1703      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
1704      317,   318,   319,   320,   321,   322,   323,   324,   325,   486,
1705      412,   326,   413,   414,   415,   416,   417,   418,   419,   420,
1706      421,   422,   423,   424,     0,     0,   425,   426,     0,     0,
1707        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1708        0,     0,     0,     0,     0,   427,     0,   487,     0,     0,
1709        0,     0,     0,     0,     0,   490,   428,   429,   430,   431,
1710        0,     0,     0,     0,     0,     0,     0,     0,     0,   328,
1711      329,   330,   331,   332,   333,     1,     2,     3,     4,     5,
1712        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1713       16,    17,    18,    19,     0,     0,     0,     0,     0,     0,
1714        0,     0,     0,     0,     0,    20,     0,    21,    22,    23,
1715       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1716       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1717       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1718       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1719       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1720       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1721       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1722       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1723      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1724      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1725      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1726      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1727      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1728      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1729      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1730      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1731      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1732      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1733      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1734      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1735      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
1736      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1737      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1738      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
1739      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
1740      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
1741      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
1742      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
1743      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
1744      314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
1745      324,   325,     0,   412,   326,   413,   414,   415,   416,   417,
1746      418,   419,   420,   421,   422,   423,   424,     0,     0,   425,
1747      426,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1748        0,     0,     0,     0,     0,     0,     0,     0,   427,     0,
1749        0,     0,     0,     0,     0,     0,     0,     0,   490,   428,
1750      429,   430,   431,     0,     0,     0,     0,     0,     0,     0,
1751        0,     0,   328,   329,   330,   331,   332,   333,     1,     2,
1752        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1753       13,    14,    15,    16,    17,    18,    19,     0,     0,     0,
1754        0,     0,     0,     0,     0,     0,     0,     0,    20,     0,
1755       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
1756       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1757       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1758       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1759       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1760       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1761       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1762       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1763      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1764      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1765      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
1766      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1767      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
1768      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
1769      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
1770      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
1771      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
1772      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
1773      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
1774      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
1775      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
1776      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
1777      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
1778      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
1779      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
1780      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
1781      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
1782      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
1783      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
1784      311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
1785      321,   322,   323,   324,   325,     0,     0,   326,     0,     0,
1786        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1787        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1788        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1789        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1790        0,   327,     0,     0,     0,     0,     0,     0,     0,     0,
1791        0,     0,     0,     0,     0,   328,   329,   330,   331,   332,
1792      333,     1,     2,     3,     4,     5,     6,     7,     8,     9,
1793       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1794        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1795        0,    20,     0,    21,    22,    23,    24,    25,    26,    27,
1796       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1797       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1798       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1799       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1800       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1801       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1802       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1803       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1804      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1805      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1806      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1807      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1808      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1809      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1810      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1811      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1812      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1813      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1814      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1815      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
1816      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
1817      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
1818      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1819      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
1820      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
1821      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
1822      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1823      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
1824      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
1825      318,   319,   320,   321,   322,   323,   324,   325,     0,   412,
1826      326,   413,   414,   415,   416,   417,   418,   419,   420,   421,
1827      422,   423,   424,     0,     0,   425,   426,     0,     0,     0,
1828        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1829        0,     0,     0,     0,   427,     0,     0,     0,     0,     0,
1830        0,     0,     0,     0,     0,   428,   429,   430,   431,     0,
1831        0,     0,     0,     0,     0,     0,     0,     0,   328,   329,
1832      330,   331,   332,     1,     2,     3,     4,     5,     6,     7,
1833        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1834       18,    19,     0,     0,     0,     0,     0,     0,     0,     0,
1835        0,     0,     0,    20,     0,    21,    22,    23,    24,    25,
1836       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1837       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1838       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1839       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1840       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1841       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1842       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1843       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1844      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1845      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1846      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1847      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1848      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1849      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1850      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1851      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1852      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1853      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1854      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1855      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1856      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1857      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1858      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1859      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
1860      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
1861      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
1862      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
1863      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
1864      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
1865      316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
1866        0,   377,   326,     0,     0,     0,     0,     0,     0,     0,
1867        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1868        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1869        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1870        0,     0,     0,     0,     0,     0,   378,     0,     0,     0,
1871        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1872      328,   329,   330,   331,   332,     1,     2,     3,     4,     5,
1873        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1874       16,    17,    18,    19,     0,     0,     0,     0,     0,     0,
1875        0,     0,     0,     0,     0,    20,     0,    21,    22,    23,
1876       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1877       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1878       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1879       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1880       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1881       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1882       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1883       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1884      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1885      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1886      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1887      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1888      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1889      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1890      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1891      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1892      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1893      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1894      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1895      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1896      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
1897      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1898      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1899      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
1900      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
1901      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
1902      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
1903      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
1904      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
1905      314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
1906      324,   325,     0,     0,   326,     0,     0,     0,     0,     0,
1907        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1908        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1909        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1910        0,     0,     0,   551,     0,     0,     0,     0,     0,     0,
1911        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1912        0,     0,   328,   329,   330,   331,   332,     1,     2,     3,
1913        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1914       14,    15,    16,    17,    18,    19,     0,     0,     0,     0,
1915        0,     0,     0,     0,     0,     0,     0,    20,     0,    21,
1916       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1917       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1918       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1919       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1920       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1921       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1922       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1923       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1924      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1925      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1926      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1927      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1928      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1929      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1930      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1931      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1932      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1933      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1934      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1935      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1936      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
1937      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
1938      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
1939      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1940      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
1941      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
1942      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
1943      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
1944      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
1945      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
1946      322,   323,   324,   325,     0,     0,   326,     0,     0,     0,
1947        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1948        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1949        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1950        0,     0,     0,     0,     0,   624,     0,     0,     0,     0,
1951        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1952        0,     0,     0,     0,   328,   329,   330,   331,   332,     1,
1953        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1954       12,    13,    14,    15,    16,    17,    18,    19,     0,     0,
1955        0,     0,     0,     0,     0,     0,     0,     0,     0,    20,
1956        0,    21,    22,    23,    24,    25,    26,    27,    28,    29,
1957       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1958       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1959       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1960       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1961       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1962       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1963       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1964      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1965      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1966      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1967      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1968      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1969      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1970      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1971      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1972      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1973      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1974      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1975      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1976      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1977      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1978      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1979      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
1980      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
1981      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1982      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
1983      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
1984      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
1985      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
1986      320,   321,   322,   323,   324,   325,     0,     0,   326,     0,
1987        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1988        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1989        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1990        0,     0,     0,     0,     0,     0,     0,   666,     0,     0,
1991        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1992        0,     0,     0,     0,     0,     0,   328,   329,   330,   331,
1993      332,     1,     2,     3,     4,     5,     6,     7,     8,     9,
1994       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1995        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1996        0,    20,     0,    21,    22,    23,    24,    25,    26,    27,
1997       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1998       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1999       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2000       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
2001       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2002       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
2003       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2004       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2005      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
2006      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
2007      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2008      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2009      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2010      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2011      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2012      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
2013      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
2014      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
2015      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
2016      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
2017      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
2018      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
2019      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2020      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
2021      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2022      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
2023      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
2024      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
2025      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
2026      318,   319,   320,   321,   322,   323,   324,   325,     0,     0,
2027      326,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2028        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2029        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2030        0,     0,     0,     3,     4,     5,     6,     7,     0,     9,
2031       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2032        0,     0,     0,     0,     0,     0,     0,     0,   328,   329,
2033      330,   331,   332,    21,    22,    23,    24,    25,    26,    27,
2034       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2035       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2036       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2037       58,    59,     0,     0,     0,     0,     0,     0,     0,     0,
2038        0,    69,     0,     0,     0,     0,     0,     0,     0,     0,
2039        0,     0,     0,     0,     0,     0,     0,    85,    86,    87,
2040       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2041       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2042      108,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2043      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
2044      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2045      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2046      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2047      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2048      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2049      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
2050      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
2051      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
2052      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
2053      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
2054      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
2055      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
2056      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2057      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
2058      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2059      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
2060      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
2061      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
2062      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
2063      318,   319,   320,   321,   322,   323,   324,   325,     0,   412,
2064      326,   413,   414,   415,   416,   417,   418,   419,   420,   421,
2065      422,   423,   424,     0,     0,   425,   426,     0,     0,     0,
2066        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2067        0,     0,     0,     0,   427,     0,     0,     0,   518,   685,
2068        0,     0,     0,     0,     0,   428,   429,   430,   431,     3,
2069        4,     5,     6,     7,     0,     9,    10,    11,    12,    13,
2070       14,    15,    16,    17,    18,    19,     0,     0,     0,     0,
2071        0,     0,     0,     0,     0,     0,     0,     0,     0,    21,
2072       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2073       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2074       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2075       52,    53,    54,    55,    56,    57,    58,    59,     0,     0,
2076        0,     0,     0,     0,     0,     0,     0,    69,     0,     0,
2077        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2078        0,     0,     0,    85,    86,    87,    88,    89,    90,    91,
2079       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2080      102,   103,   104,   105,   106,   107,   108,     0,     0,     0,
2081        0,     0,     0,     0,     0,     0,   118,   119,   120,   121,
2082      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2083      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2084      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2085      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2086      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2087      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2088      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2089      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2090      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2091      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2092      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
2093      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
2094      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
2095      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2096      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2097      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
2098      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
2099      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
2100      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
2101      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
2102      322,   323,   324,   325,     0,   412,   326,   413,   414,   415,
2103      416,   417,   418,   419,   420,   421,   422,   423,   424,     0,
2104        0,   425,   426,     0,     0,     0,     0,     0,     0,     0,
2105        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2106      427,     0,     0,   459,     0,     0,     0,     0,     0,     0,
2107        0,   428,   429,   430,   431,     3,     4,     5,     6,     7,
2108        0,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2109       18,    19,     0,     0,     0,     0,     0,     0,     0,     0,
2110        0,     0,     0,     0,     0,    21,    22,    23,    24,    25,
2111       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
2112       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2113       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2114       56,    57,    58,    59,     0,     0,     0,     0,     0,     0,
2115        0,     0,     0,    69,     0,     0,     0,     0,     0,     0,
2116        0,     0,     0,     0,     0,     0,     0,     0,     0,    85,
2117       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
2118       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
2119      106,   107,   108,     0,     0,     0,     0,     0,     0,     0,
2120        0,     0,   118,   119,   120,   121,   122,   123,   124,   125,
2121      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2122      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2123      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2124      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2125      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2126      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
2127      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
2128      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
2129      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
2130      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
2131      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
2132      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
2133      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
2134      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
2135      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2136      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
2137      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
2138      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2139      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
2140      316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
2141        0,   412,   326,   413,   414,   415,   416,   417,   418,   419,
2142      420,   421,   422,   423,   424,     0,     0,   425,   426,     0,
2143        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2144        0,     0,     0,     0,     0,     0,   427,     0,     0,     0,
2145      518,     0,     0,     0,     0,     0,     0,   428,   429,   430,
2146      431,     3,     4,     5,     6,     7,     0,     9,    10,    11,
2147       12,    13,    14,    15,    16,    17,    18,    19,     0,     0,
2148        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2149        0,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2150       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2151       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2152       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2153        0,     0,     0,     0,     0,     0,     0,     0,     0,    69,
2154        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2155        0,     0,     0,     0,     0,    85,    86,    87,    88,    89,
2156       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2157      100,   101,   102,   103,   104,   105,   106,   107,   108,     0,
2158        0,     0,     0,     0,     0,     0,     0,     0,   118,   119,
2159      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2160      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2161      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2162      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2163      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2164      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2165      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2166      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2167      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2168      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2169      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
2170      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
2171      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2172      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2173      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
2174      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
2175      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
2176      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
2177      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
2178      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
2179      320,   321,   322,   323,   324,   325,     0,   412,   326,   413,
2180      414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
2181      424,     0,     0,   425,   426,     0,     0,     0,     0,     0,
2182        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2183        0,     0,   427,     0,     0,   574,     0,     0,     0,     0,
2184        0,     0,     0,   428,   429,   430,   431,     3,     4,     5,
2185        6,     7,     0,     9,    10,    11,    12,    13,    14,    15,
2186       16,    17,    18,    19,     0,     0,     0,     0,     0,     0,
2187        0,     0,     0,     0,     0,     0,     0,    21,    22,    23,
2188       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2189       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2190       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2191       54,    55,    56,    57,    58,    59,     0,     0,     0,     0,
2192        0,     0,     0,     0,     0,    69,     0,     0,     0,     0,
2193        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2194        0,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2195       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
2196      104,   105,   106,   107,   108,     0,     0,     0,     0,     0,
2197        0,     0,     0,     0,   118,   119,   120,   121,   122,   123,
2198      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
2199      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
2200      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
2201      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
2202      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
2203      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
2204      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
2205      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
2206      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
2207      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
2208      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
2209      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
2210      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
2211      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2212      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
2213      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
2214      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
2215      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
2216      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
2217      314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
2218      324,   325,     0,   412,   326,   413,   414,   415,   416,   417,
2219      418,   419,   420,   421,   422,   423,   424,     0,     0,   425,
2220      426,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2221        0,     0,     0,     0,     0,     0,     0,     0,   427,     0,
2222        0,     0,     0,     0,     0,     0,     0,     0,   582,   428,
2223      429,   430,   431,     3,     4,     5,     6,     7,     0,     9,
2224       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2225        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2226        0,     0,     0,    21,    22,    23,    24,    25,    26,    27,
2227       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2228       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2229       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2230       58,    59,     0,     0,     0,     0,     0,     0,     0,     0,
2231        0,    69,     0,     0,     0,     0,     0,     0,     0,     0,
2232        0,     0,     0,     0,     0,     0,     0,    85,    86,    87,
2233       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2234       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2235      108,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2236      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
2237      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2238      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2239      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2240      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2241      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2242      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
2243      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
2244      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
2245      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
2246      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
2247      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
2248      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
2249      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2250      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
2251      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2252      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
2253      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
2254      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
2255      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
2256      318,   319,   320,   321,   322,   323,   324,   325,     0,   412,
2257      326,   413,   414,   415,   416,   417,   418,   419,   420,   421,
2258      422,   423,   424,     0,     0,   425,   426,     0,     0,     0,
2259        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2260        0,     0,     0,     0,   427,     0,     0,     0,     0,     0,
2261        0,     0,     0,     0,     0,   428,   429,   430,   431,     3,
2262        4,     5,     6,     7,     0,     9,    10,    11,    12,    13,
2263       14,    15,    16,    17,    18,    19,     0,     0,     0,     0,
2264        0,     0,     0,     0,     0,     0,     0,     0,     0,    21,
2265       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2266       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2267       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2268       52,    53,    54,    55,    56,    57,    58,    59,     0,     0,
2269        0,     0,     0,     0,     0,     0,     0,    69,     0,     0,
2270        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2271        0,     0,     0,    85,    86,    87,    88,    89,    90,    91,
2272       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2273      102,   103,   104,   105,   106,   107,   108,     0,     0,     0,
2274        0,     0,     0,     0,     0,     0,   118,   119,   120,   121,
2275      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2276      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2277      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2278      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2279      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2280      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2281      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2282      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2283      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2284      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2285      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
2286      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
2287      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
2288      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2289      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2290      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
2291      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
2292      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
2293      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
2294      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
2295      322,   323,   324,   536,     0,   412,   326,   413,   414,   415,
2296      416,   417,   418,   419,   420,   421,   422,   423,   424,     0,
2297        0,   425,   426,     0,     0,     0,     0,     0,     0,     0,
2298        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2299      427,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2300        0,   428,   429,   430,   431,     3,     4,     5,     6,     7,
2301        0,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2302       18,    19,     0,     0,     0,     0,     0,     0,     0,     0,
2303        0,     0,     0,     0,     0,    21,    22,    23,    24,    25,
2304       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
2305       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2306       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2307       56,    57,    58,    59,     0,     0,     0,     0,     0,     0,
2308        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2309        0,     0,     0,     0,     0,     0,     0,     0,     0,    85,
2310       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
2311       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
2312      106,   107,   108,     0,     0,     0,     0,     0,     0,     0,
2313        0,     0,   118,   119,   120,   121,   122,   123,   124,   125,
2314      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2315      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2316      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2317      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2318      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2319      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
2320      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
2321      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
2322      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
2323      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
2324      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
2325      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
2326      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
2327      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
2328      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2329      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
2330      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
2331      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2332      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
2333      316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
2334        0,     0,   326
2335 };
2336
2337 static const yytype_int16 yycheck[] =
2338 {
2339        0,     0,     0,   339,   347,    24,     0,    26,    27,   406,
2340       82,    30,   395,   516,   427,   518,   591,   456,   521,   376,
2341      504,   341,   453,   341,   364,   382,   378,   656,   383,   372,
2342      357,   358,   368,   378,   386,   379,   359,   360,   694,   383,
2343      395,   386,   698,   440,   381,   674,   403,   404,   376,   376,
2344      706,   378,   376,   378,   378,   382,   378,   393,   395,   399,
2345      385,   385,   380,   385,   355,   356,   386,   450,   481,   376,
2346      483,   394,   395,   366,   367,   368,   369,   370,   371,   372,
2347      373,   374,   375,   388,   383,   390,   378,   386,   425,   426,
2348      473,   522,   385,   385,   578,   380,   377,   377,   383,   377,
2349      386,   386,   383,   383,   377,   383,   443,   546,   377,   612,
2350      383,   454,   383,   450,   383,   386,   377,   453,   531,   516,
2351      456,   518,   383,   377,   521,   560,   561,   562,   563,   383,
2352      383,   383,   383,   386,   386,   710,   473,   383,   535,   383,
2353      386,   377,   386,   402,   403,   404,   391,   392,   393,   381,
2354      341,   383,   361,   362,   383,   384,   383,   384,   556,   557,
2355      564,   565,   665,   558,   559,   341,   394,   580,   380,   380,
2356      341,   584,   341,   378,   341,   385,   660,   616,   386,   377,
2357      376,   378,   341,   341,   398,   363,   522,   379,   365,   376,
2358      397,   548,   396,   386,   376,   376,   386,   386,   384,   378,
2359      341,   386,   376,   540,   341,   341,   603,   604,   711,   381,
2360      546,   376,   376,   379,   377,   612,   553,   554,   555,   556,
2361      557,   558,   559,   560,   561,   562,   563,   564,   565,   566,
2362      567,   568,   569,   570,   571,   648,   720,   379,   383,   340,
2363      380,   376,   376,   656,   341,   377,   379,   386,   377,    25,
2364      381,   377,   380,   380,   566,   385,   381,   567,   569,   568,
2365      681,   674,   386,   571,   570,   372,   368,   372,   665,   341,
2366      333,   547,   452,   627,   651,   688,   693,   706,   366,   707,
2367      616,   651,   674,   514,   514,   355,    -1,   683,   514,    -1,
2368      687,    -1,   705,    -1,    -1,    -1,    -1,    -1,   681,    -1,
2369       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2370       -1,    -1,    -1,    -1,   711,    -1,    -1,    -1,    -1,    -1,
2371      656,   340,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2372       -1,    -1,    -1,    -1,    -1,    -1,   679,    -1,   674,   339,
2373       -1,    -1,    -1,    -1,   681,   339,    -1,   347,    -1,    -1,
2374       -1,    -1,    -1,   347,    -1,   355,   355,   355,    -1,    -1,
2375       -1,   355,   362,    -1,    -1,    -1,    -1,    -1,   368,    -1,
2376       -1,    -1,   372,    -1,   368,    -1,    -1,    -1,   372,    -1,
2377       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2378       -1,    -1,    -1,   393,    -1,    -1,    -1,    -1,   398,   393,
2379       -1,    -1,    -1,    -1,   398,    -1,    -1,    -1,    -1,    -1,
2380       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2381       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2382       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2383       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2384       -1,    -1,    -1,   453,   454,    -1,   456,    -1,    -1,   453,
2385      454,    -1,   456,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2386       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2387       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2388       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2389       -1,    -1,    -1,    -1,   504,    -1,    -1,    -1,    -1,    -1,
2390      504,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2391       -1,    -1,   522,    -1,    -1,    -1,    -1,    -1,   522,    -1,
2392       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2393       -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,    -1,
2394       -1,    -1,   546,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2395       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2396       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   578,    -1,
2397       -1,    -1,    -1,    -1,   578,    -1,    -1,    -1,    -1,    -1,
2398       -1,   591,    -1,    -1,    -1,    -1,    -1,   591,    -1,    -1,
2399       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2400       -1,    -1,    -1,    -1,    -1,    -1,   616,    -1,    -1,    -1,
2401       -1,    -1,   616,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2402       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2403       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2404       -1,   651,    -1,    -1,    -1,    -1,   656,   651,    -1,    -1,
2405      660,    -1,   656,    -1,    -1,    -1,   660,    -1,    -1,    -1,
2406       -1,    -1,    -1,    -1,   674,    -1,    -1,    -1,    -1,   679,
2407      674,    -1,    -1,    -1,    -1,   679,    -1,    -1,    -1,    -1,
2408       -1,    -1,    -1,    -1,   694,    -1,    -1,    -1,   698,    -1,
2409      694,    -1,    -1,    -1,   698,    -1,   706,    -1,    -1,    -1,
2410      710,    -1,   706,    -1,    -1,    -1,   710,    -1,    -1,    -1,
2411      720,    -1,    -1,    -1,     0,    -1,   720,     3,     4,     5,
2412        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
2413       16,    17,    18,    19,    20,    21,    -1,    -1,    -1,    -1,
2414       -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    -1,    35,
2415       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2416       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2417       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
2418       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
2419       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
2420       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
2421       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
2422      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
2423      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
2424      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2425      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2426      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2427      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2428      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2429      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
2430      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
2431      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
2432      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
2433      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
2434      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
2435      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
2436      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
2437      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
2438      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2439      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
2440      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
2441      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2442      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
2443      316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
2444      326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
2445      336,   337,   338,   339,    -1,    -1,   342,    -1,    -1,    -1,
2446       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2447       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2448       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2449       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2450      386,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2451       -1,    -1,    -1,    -1,   400,   401,   402,   403,   404,   405,
2452        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2453       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2454       23,    24,    -1,    26,    27,    28,    29,    30,    31,    32,
2455       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2456       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2457       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2458       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2459       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2460       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2461       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2462      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2463      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2464      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2465      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2466      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2467      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2468      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2469      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2470      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
2471      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2472      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2473      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
2474      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
2475      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
2476      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
2477      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
2478      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
2479      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
2480      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
2481      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
2482      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
2483      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
2484      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
2485      333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
2486      343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
2487      353,   354,    -1,    -1,   357,   358,    -1,    -1,    -1,    -1,
2488       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2489       -1,    -1,    -1,   376,    -1,   378,    -1,   380,   381,    -1,
2490       -1,    -1,    -1,   386,   387,   388,   389,   390,    -1,    -1,
2491       -1,    -1,    -1,    -1,    -1,    -1,    -1,   400,   401,   402,
2492      403,   404,   405,     3,     4,     5,     6,     7,     8,     9,
2493       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2494       20,    21,    22,    23,    24,    -1,    26,    27,    28,    29,
2495       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2496       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2497       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2498       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2499       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2500       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2501       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2502      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
2503      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
2504      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2505      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2506      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2507      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2508      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2509      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2510      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2511      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2512      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2513      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2514      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
2515      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
2516      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2517      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2518      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
2519      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
2520      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
2521      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
2522      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
2523      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
2524      320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
2525      330,   331,   332,   333,   334,   335,   336,   337,   338,   339,
2526      340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
2527      350,   351,   352,   353,   354,    -1,    -1,   357,   358,    -1,
2528       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2529       -1,    -1,    -1,    -1,    -1,    -1,   376,    -1,   378,    -1,
2530      380,   381,    -1,    -1,    -1,    -1,   386,   387,   388,   389,
2531      390,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2532      400,   401,   402,   403,   404,   405,     3,     4,     5,     6,
2533        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2534       17,    18,    19,    20,    21,    22,    23,    24,    -1,    26,
2535       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2536       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2537       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2538       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2539       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2540       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2541       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2542       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2543      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2544      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2545      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2546      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2547      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2548      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2549      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2550      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2551      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2552      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2553      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2554      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
2555      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
2556      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
2557      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2558      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2559      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
2560      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
2561      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
2562      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2563      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
2564      317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
2565      327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
2566      337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
2567      347,   348,   349,   350,   351,   352,   353,   354,    -1,    -1,
2568      357,   358,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2569       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   376,
2570       -1,   378,    -1,   380,    -1,    -1,    -1,    -1,    -1,   386,
2571      387,   388,   389,   390,    -1,    -1,    -1,    -1,    -1,    -1,
2572       -1,    -1,    -1,   400,   401,   402,   403,   404,   405,     3,
2573        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2574       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2575       24,    -1,    26,    27,    28,    29,    30,    31,    32,    33,
2576       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2577       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2578       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
2579       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
2580       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2581       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2582       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
2583      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
2584      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
2585      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
2586      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
2587      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
2588      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
2589      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
2590      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
2591      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
2592      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
2593      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
2594      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
2595      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
2596      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
2597      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
2598      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2599      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
2600      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
2601      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
2602      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
2603      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
2604      314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
2605      324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
2606      334,   335,   336,   337,   338,   339,   340,   341,   342,   343,
2607      344,   345,   346,   347,   348,   349,   350,   351,   352,   353,
2608      354,    -1,    -1,   357,   358,    -1,    -1,    -1,    -1,    -1,
2609       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2610       -1,    -1,   376,    -1,   378,    -1,   380,    -1,    -1,    -1,
2611       -1,    -1,   386,   387,   388,   389,   390,    -1,    -1,    -1,
2612       -1,    -1,    -1,    -1,    -1,    -1,   400,   401,   402,   403,
2613      404,   405,     3,     4,     5,     6,     7,     8,     9,    10,
2614       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2615       21,    22,    23,    24,    -1,    26,    27,    28,    29,    30,
2616       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2617       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2618       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2619       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2620       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2621       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2622       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2623      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2624      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2625      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2626      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2627      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2628      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2629      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2630      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2631      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2632      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2633      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2634      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2635      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
2636      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
2637      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
2638      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2639      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
2640      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
2641      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
2642      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
2643      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
2644      311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
2645      321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
2646      331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
2647      341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
2648      351,   352,   353,   354,    -1,    -1,   357,   358,    -1,    -1,
2649       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2650       -1,    -1,    -1,    -1,    -1,   376,    -1,   378,    -1,    -1,
2651       -1,    -1,    -1,    -1,    -1,   386,   387,   388,   389,   390,
2652       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   400,
2653      401,   402,   403,   404,   405,     3,     4,     5,     6,     7,
2654        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2655       18,    19,    20,    21,    -1,    -1,    -1,    -1,    -1,    -1,
2656       -1,    -1,    -1,    -1,    -1,    33,    -1,    35,    36,    37,
2657       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2658       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2659       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
2660       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2661       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
2662       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2663       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2664      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
2665      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
2666      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2667      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2668      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2669      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2670      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2671      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
2672      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
2673      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
2674      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
2675      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
2676      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
2677      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
2678      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2679      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
2680      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2681      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
2682      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
2683      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
2684      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
2685      318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
2686      328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
2687      338,   339,    -1,   341,   342,   343,   344,   345,   346,   347,
2688      348,   349,   350,   351,   352,   353,   354,    -1,    -1,   357,
2689      358,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2690       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   376,    -1,
2691       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   386,   387,
2692      388,   389,   390,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2693       -1,    -1,   400,   401,   402,   403,   404,   405,     3,     4,
2694        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2695       15,    16,    17,    18,    19,    20,    21,    -1,    -1,    -1,
2696       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    -1,
2697       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2698       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2699       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2700       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2701       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2702       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2703       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2704      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2705      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2706      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2707      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2708      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2709      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2710      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2711      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2712      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2713      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2714      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2715      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2716      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2717      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2718      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2719      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2720      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2721      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2722      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
2723      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
2724      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
2725      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
2726      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
2727      335,   336,   337,   338,   339,    -1,    -1,   342,    -1,    -1,
2728       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2729       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2730       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2731       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2732       -1,   386,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2733       -1,    -1,    -1,    -1,    -1,   400,   401,   402,   403,   404,
2734      405,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2735       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2736       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2737       -1,    33,    -1,    35,    36,    37,    38,    39,    40,    41,
2738       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2739       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2740       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2741       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2742       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2743       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2744      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2745      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2746      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2747      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2748      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2749      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2750      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2751      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2752      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2753      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2754      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2755      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2756      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
2757      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
2758      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
2759      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2760      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2761      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
2762      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
2763      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
2764      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
2765      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
2766      322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
2767      332,   333,   334,   335,   336,   337,   338,   339,    -1,   341,
2768      342,   343,   344,   345,   346,   347,   348,   349,   350,   351,
2769      352,   353,   354,    -1,    -1,   357,   358,    -1,    -1,    -1,
2770       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2771       -1,    -1,    -1,    -1,   376,    -1,    -1,    -1,    -1,    -1,
2772       -1,    -1,    -1,    -1,    -1,   387,   388,   389,   390,    -1,
2773       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   400,   401,
2774      402,   403,   404,     3,     4,     5,     6,     7,     8,     9,
2775       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2776       20,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2777       -1,    -1,    -1,    33,    -1,    35,    36,    37,    38,    39,
2778       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2779       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2780       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2781       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2782       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2783       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2784      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
2785      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
2786      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2787      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2788      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2789      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2790      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2791      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2792      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2793      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2794      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2795      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2796      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
2797      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
2798      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2799      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2800      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
2801      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
2802      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
2803      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
2804      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
2805      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
2806      320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
2807      330,   331,   332,   333,   334,   335,   336,   337,   338,   339,
2808       -1,   341,   342,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2809       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2810       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2811       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2812       -1,    -1,    -1,    -1,    -1,    -1,   386,    -1,    -1,    -1,
2813       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2814      400,   401,   402,   403,   404,     3,     4,     5,     6,     7,
2815        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2816       18,    19,    20,    21,    -1,    -1,    -1,    -1,    -1,    -1,
2817       -1,    -1,    -1,    -1,    -1,    33,    -1,    35,    36,    37,
2818       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2819       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2820       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
2821       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2822       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
2823       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2824       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2825      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
2826      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
2827      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2828      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2829      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2830      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2831      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2832      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
2833      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
2834      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
2835      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
2836      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
2837      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
2838      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
2839      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2840      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
2841      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2842      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
2843      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
2844      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
2845      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
2846      318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
2847      328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
2848      338,   339,    -1,    -1,   342,    -1,    -1,    -1,    -1,    -1,
2849       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2850       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2851       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2852       -1,    -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,
2853       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2854       -1,    -1,   400,   401,   402,   403,   404,     3,     4,     5,
2855        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
2856       16,    17,    18,    19,    20,    21,    -1,    -1,    -1,    -1,
2857       -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    -1,    35,
2858       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2859       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2860       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
2861       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
2862       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
2863       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
2864       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
2865      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
2866      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
2867      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2868      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2869      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2870      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2871      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2872      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
2873      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
2874      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
2875      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
2876      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
2877      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
2878      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
2879      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
2880      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
2881      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2882      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
2883      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
2884      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2885      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
2886      316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
2887      326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
2888      336,   337,   338,   339,    -1,    -1,   342,    -1,    -1,    -1,
2889       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -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,   381,    -1,    -1,    -1,    -1,
2893       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2894       -1,    -1,    -1,    -1,   400,   401,   402,   403,   404,     3,
2895        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2896       14,    15,    16,    17,    18,    19,    20,    21,    -1,    -1,
2897       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,
2898       -1,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2899       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2900       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
2901       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
2902       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2903       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2904       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
2905      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
2906      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
2907      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
2908      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
2909      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
2910      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
2911      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
2912      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
2913      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
2914      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
2915      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
2916      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
2917      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
2918      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
2919      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
2920      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2921      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
2922      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
2923      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
2924      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
2925      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
2926      314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
2927      324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
2928      334,   335,   336,   337,   338,   339,    -1,    -1,   342,    -1,
2929       -1,    -1,    -1,    -1,    -1,    -1,    -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,   381,    -1,    -1,
2933       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2934       -1,    -1,    -1,    -1,    -1,    -1,   400,   401,   402,   403,
2935      404,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2936       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2937       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2938       -1,    33,    -1,    35,    36,    37,    38,    39,    40,    41,
2939       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2940       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2941       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2942       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2943       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2944       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2945      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2946      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2947      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2948      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2949      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2950      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2951      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2952      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2953      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2954      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2955      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2956      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2957      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
2958      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
2959      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
2960      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2961      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2962      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
2963      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
2964      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
2965      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
2966      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
2967      322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
2968      332,   333,   334,   335,   336,   337,   338,   339,    -1,    -1,
2969      342,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2970       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2971       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2972       -1,    -1,    -1,     5,     6,     7,     8,     9,    -1,    11,
2973       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2974       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   400,   401,
2975      402,   403,   404,    35,    36,    37,    38,    39,    40,    41,
2976       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2977       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2978       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2979       72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2980       -1,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2981       -1,    -1,    -1,    -1,    -1,    -1,    -1,    99,   100,   101,
2982      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2983      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2984      122,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2985      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2986      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2987      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2988      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2989      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2990      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2991      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2992      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2993      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2994      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
2995      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
2996      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
2997      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2998      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2999      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
3000      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
3001      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
3002      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
3003      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
3004      322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
3005      332,   333,   334,   335,   336,   337,   338,   339,    -1,   341,
3006      342,   343,   344,   345,   346,   347,   348,   349,   350,   351,
3007      352,   353,   354,    -1,    -1,   357,   358,    -1,    -1,    -1,
3008       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3009       -1,    -1,    -1,    -1,   376,    -1,    -1,    -1,   380,   381,
3010       -1,    -1,    -1,    -1,    -1,   387,   388,   389,   390,     5,
3011        6,     7,     8,     9,    -1,    11,    12,    13,    14,    15,
3012       16,    17,    18,    19,    20,    21,    -1,    -1,    -1,    -1,
3013       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,
3014       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
3015       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
3016       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
3017       66,    67,    68,    69,    70,    71,    72,    73,    -1,    -1,
3018       -1,    -1,    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,
3019       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3020       -1,    -1,    -1,    99,   100,   101,   102,   103,   104,   105,
3021      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
3022      116,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
3023       -1,    -1,    -1,    -1,    -1,    -1,   132,   133,   134,   135,
3024      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
3025      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
3026      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
3027      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
3028      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
3029      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
3030      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
3031      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
3032      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
3033      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
3034      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
3035      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
3036      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
3037      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
3038      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
3039      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
3040      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
3041      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
3042      316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
3043      326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
3044      336,   337,   338,   339,    -1,   341,   342,   343,   344,   345,
3045      346,   347,   348,   349,   350,   351,   352,   353,   354,    -1,
3046       -1,   357,   358,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3047       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3048      376,    -1,    -1,   379,    -1,    -1,    -1,    -1,    -1,    -1,
3049       -1,   387,   388,   389,   390,     5,     6,     7,     8,     9,
3050       -1,    11,    12,    13,    14,    15,    16,    17,    18,    19,
3051       20,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3052       -1,    -1,    -1,    -1,    -1,    35,    36,    37,    38,    39,
3053       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3054       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
3055       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
3056       70,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,
3057       -1,    -1,    -1,    83,    -1,    -1,    -1,    -1,    -1,    -1,
3058       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    99,
3059      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
3060      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
3061      120,   121,   122,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3062       -1,    -1,   132,   133,   134,   135,   136,   137,   138,   139,
3063      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
3064      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
3065      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
3066      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
3067      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
3068      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
3069      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
3070      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
3071      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
3072      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
3073      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
3074      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
3075      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
3076      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
3077      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
3078      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
3079      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
3080      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
3081      320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
3082      330,   331,   332,   333,   334,   335,   336,   337,   338,   339,
3083       -1,   341,   342,   343,   344,   345,   346,   347,   348,   349,
3084      350,   351,   352,   353,   354,    -1,    -1,   357,   358,    -1,
3085       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3086       -1,    -1,    -1,    -1,    -1,    -1,   376,    -1,    -1,    -1,
3087      380,    -1,    -1,    -1,    -1,    -1,    -1,   387,   388,   389,
3088      390,     5,     6,     7,     8,     9,    -1,    11,    12,    13,
3089       14,    15,    16,    17,    18,    19,    20,    21,    -1,    -1,
3090       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3091       -1,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3092       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
3093       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
3094       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
3095       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    83,
3096       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3097       -1,    -1,    -1,    -1,    -1,    99,   100,   101,   102,   103,
3098      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
3099      114,   115,   116,   117,   118,   119,   120,   121,   122,    -1,
3100       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   132,   133,
3101      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
3102      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
3103      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
3104      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
3105      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
3106      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
3107      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
3108      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
3109      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
3110      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
3111      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
3112      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
3113      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
3114      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
3115      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
3116      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
3117      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
3118      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
3119      314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
3120      324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
3121      334,   335,   336,   337,   338,   339,    -1,   341,   342,   343,
3122      344,   345,   346,   347,   348,   349,   350,   351,   352,   353,
3123      354,    -1,    -1,   357,   358,    -1,    -1,    -1,    -1,    -1,
3124       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3125       -1,    -1,   376,    -1,    -1,   379,    -1,    -1,    -1,    -1,
3126       -1,    -1,    -1,   387,   388,   389,   390,     5,     6,     7,
3127        8,     9,    -1,    11,    12,    13,    14,    15,    16,    17,
3128       18,    19,    20,    21,    -1,    -1,    -1,    -1,    -1,    -1,
3129       -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,    36,    37,
3130       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3131       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
3132       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
3133       68,    69,    70,    71,    72,    73,    -1,    -1,    -1,    -1,
3134       -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,    -1,    -1,
3135       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3136       -1,    99,   100,   101,   102,   103,   104,   105,   106,   107,
3137      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
3138      118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,    -1,
3139       -1,    -1,    -1,    -1,   132,   133,   134,   135,   136,   137,
3140      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
3141      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
3142      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
3143      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
3144      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
3145      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
3146      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
3147      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
3148      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
3149      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
3150      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
3151      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
3152      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
3153      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
3154      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
3155      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
3156      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
3157      308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
3158      318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
3159      328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
3160      338,   339,    -1,   341,   342,   343,   344,   345,   346,   347,
3161      348,   349,   350,   351,   352,   353,   354,    -1,    -1,   357,
3162      358,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3163       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   376,    -1,
3164       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   386,   387,
3165      388,   389,   390,     5,     6,     7,     8,     9,    -1,    11,
3166       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
3167       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3168       -1,    -1,    -1,    35,    36,    37,    38,    39,    40,    41,
3169       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
3170       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
3171       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
3172       72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3173       -1,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3174       -1,    -1,    -1,    -1,    -1,    -1,    -1,    99,   100,   101,
3175      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
3176      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
3177      122,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3178      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
3179      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
3180      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
3181      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
3182      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
3183      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
3184      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
3185      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
3186      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
3187      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
3188      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
3189      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
3190      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
3191      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
3192      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
3193      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
3194      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
3195      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
3196      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
3197      322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
3198      332,   333,   334,   335,   336,   337,   338,   339,    -1,   341,
3199      342,   343,   344,   345,   346,   347,   348,   349,   350,   351,
3200      352,   353,   354,    -1,    -1,   357,   358,    -1,    -1,    -1,
3201       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3202       -1,    -1,    -1,    -1,   376,    -1,    -1,    -1,    -1,    -1,
3203       -1,    -1,    -1,    -1,    -1,   387,   388,   389,   390,     5,
3204        6,     7,     8,     9,    -1,    11,    12,    13,    14,    15,
3205       16,    17,    18,    19,    20,    21,    -1,    -1,    -1,    -1,
3206       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,
3207       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
3208       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
3209       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
3210       66,    67,    68,    69,    70,    71,    72,    73,    -1,    -1,
3211       -1,    -1,    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,
3212       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3213       -1,    -1,    -1,    99,   100,   101,   102,   103,   104,   105,
3214      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
3215      116,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
3216       -1,    -1,    -1,    -1,    -1,    -1,   132,   133,   134,   135,
3217      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
3218      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
3219      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
3220      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
3221      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
3222      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
3223      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
3224      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
3225      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
3226      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
3227      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
3228      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
3229      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
3230      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
3231      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
3232      286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
3233      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
3234      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
3235      316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
3236      326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
3237      336,   337,   338,   339,    -1,   341,   342,   343,   344,   345,
3238      346,   347,   348,   349,   350,   351,   352,   353,   354,    -1,
3239       -1,   357,   358,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3240       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3241      376,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3242       -1,   387,   388,   389,   390,     5,     6,     7,     8,     9,
3243       -1,    11,    12,    13,    14,    15,    16,    17,    18,    19,
3244       20,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3245       -1,    -1,    -1,    -1,    -1,    35,    36,    37,    38,    39,
3246       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3247       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
3248       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
3249       70,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,
3250       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3251       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    99,
3252      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
3253      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
3254      120,   121,   122,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3255       -1,    -1,   132,   133,   134,   135,   136,   137,   138,   139,
3256      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
3257      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
3258      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
3259      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
3260      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
3261      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
3262      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
3263      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
3264      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
3265      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
3266      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
3267      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
3268      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
3269      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
3270      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
3271      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
3272      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
3273      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
3274      320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
3275      330,   331,   332,   333,   334,   335,   336,   337,   338,   339,
3276       -1,    -1,   342
3277 };
3278
3279   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
3280      symbol of state STATE-NUM.  */
3281 static const yytype_uint16 yystos[] =
3282 {
3283        0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
3284       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
3285       33,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3286       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
3287       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
3288       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
3289       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
3290       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
3291       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
3292      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
3293      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
3294      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
3295      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
3296      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
3297      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
3298      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
3299      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
3300      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
3301      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
3302      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
3303      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
3304      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
3305      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
3306      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
3307      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
3308      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
3309      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
3310      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
3311      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
3312      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
3313      314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
3314      324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
3315      334,   335,   336,   337,   338,   339,   342,   386,   400,   401,
3316      402,   403,   404,   405,   440,   441,   444,   445,   446,   447,
3317      451,   452,   453,   454,   455,   456,   459,   460,   461,   462,
3318      463,   465,   470,   471,   472,   513,   514,   515,   376,   376,
3319      341,   380,   471,   341,   386,   386,   516,   377,   383,   448,
3320      449,   450,   460,   465,   383,   386,   341,   341,   386,   461,
3321      465,   394,   467,   468,     0,   514,   341,   464,    82,   341,
3322      457,   458,   380,   474,   465,   378,   386,   466,   380,   492,
3323      449,   448,   450,   341,   341,   376,   385,   466,   380,   383,
3324      386,   443,   341,   343,   344,   345,   346,   347,   348,   349,
3325      350,   351,   352,   353,   354,   357,   358,   376,   387,   388,
3326      389,   390,   410,   411,   412,   414,   415,   416,   417,   418,
3327      419,   420,   421,   422,   463,   465,   469,   466,   377,   383,
3328      385,   377,   383,   473,   460,   465,   475,   476,   386,   379,
3329      421,   423,   424,   425,   426,   427,   428,   429,   430,   431,
3330      432,   433,   434,   378,   386,    22,    23,    24,    26,    27,
3331       28,    29,    30,    31,    32,    34,   340,   378,   380,   381,
3332      386,   421,   434,   436,   438,   440,   444,   463,   465,   481,
3333      482,   483,   484,   485,   493,   494,   495,   496,   499,   500,
3334      503,   504,   505,   512,   517,   466,   385,   466,   380,   436,
3335      479,   385,   442,   341,   383,   386,   421,   421,   438,   357,
3336      358,   378,   382,   377,   377,   383,   339,   436,   376,   421,
3337      383,   395,   341,   434,   439,   458,   475,   465,   341,   477,
3338      478,   381,   476,   391,   392,   393,   388,   390,   355,   356,
3339      359,   360,   394,   395,   361,   362,   398,   397,   396,   363,
3340      365,   364,   399,   379,   379,   434,   386,   386,   507,   376,
3341      376,   386,   386,   438,   376,   438,   384,   386,   376,   378,
3342      381,   486,   366,   367,   368,   369,   370,   371,   372,   373,
3343      374,   375,   385,   437,   383,   386,   381,   482,   496,   500,
3344      505,   479,   385,   479,   480,   479,   475,   341,   377,   413,
3345      438,   341,   436,   421,   381,   477,   466,   383,   386,   421,
3346      421,   421,   423,   423,   424,   424,   425,   425,   425,   425,
3347      426,   426,   427,   428,   429,   430,   431,   432,   435,   379,
3348      482,   508,   438,   386,   438,   384,   506,   341,   518,   519,
3349      493,   436,   436,   479,   381,   383,   381,   379,   386,   478,
3350      438,   340,   481,   494,   509,   377,   377,   438,   453,   460,
3351      498,   376,   379,   383,   487,   381,   479,   384,   376,   498,
3352      510,   511,   489,   490,   491,   497,   501,   341,   377,   439,
3353      379,   519,   381,   436,   438,   386,   377,    25,   485,   483,
3354      380,   385,   483,   488,   492,   377,   377,   438,   488,   489,
3355      493,   502,   479,   386,   381
3356 };
3357
3358   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
3359 static const yytype_uint16 yyr1[] =
3360 {
3361        0,   409,   410,   411,   411,   411,   411,   411,   411,   411,
3362      411,   411,   411,   411,   411,   411,   411,   412,   412,   412,
3363      412,   412,   412,   413,   414,   415,   416,   416,   417,   417,
3364      418,   418,   419,   420,   420,   420,   421,   421,   421,   421,
3365      422,   422,   422,   422,   423,   423,   423,   423,   424,   424,
3366      424,   425,   425,   425,   426,   426,   426,   426,   426,   427,
3367      427,   427,   428,   428,   429,   429,   430,   430,   431,   431,
3368      432,   432,   433,   433,   434,   435,   434,   436,   436,   437,
3369      437,   437,   437,   437,   437,   437,   437,   437,   437,   437,
3370      438,   438,   439,   440,   440,   440,   440,   440,   440,   440,
3371      440,   440,   442,   441,   443,   443,   444,   445,   445,   446,
3372      446,   447,   448,   448,   449,   449,   449,   449,   450,   451,
3373      451,   451,   451,   451,   452,   452,   452,   452,   452,   453,
3374      453,   454,   455,   455,   455,   455,   455,   455,   455,   455,
3375      456,   457,   457,   458,   458,   458,   459,   460,   460,   461,
3376      461,   461,   461,   461,   461,   461,   462,   462,   462,   462,
3377      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3378      462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
3379      462,   462,   462,   462,   462,   463,   464,   464,   465,   465,
3380      466,   466,   466,   466,   467,   467,   468,   469,   469,   470,
3381      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3382      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3383      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3384      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3385      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3386      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3387      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3388      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3389      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3390      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3391      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3392      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3393      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3394      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3395      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3396      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3397      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3398      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3399      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3400      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3401      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3402      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3403      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3404      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3405      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3406      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3407      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3408      470,   470,   470,   470,   470,   470,   470,   470,   470,   470,
3409      470,   470,   470,   470,   470,   470,   470,   471,   471,   471,
3410      473,   472,   474,   472,   475,   475,   476,   476,   477,   477,
3411      478,   478,   479,   479,   479,   480,   480,   481,   482,   482,
3412      483,   483,   483,   483,   483,   483,   483,   483,   484,   485,
3413      486,   487,   485,   488,   488,   490,   489,   491,   489,   492,
3414      492,   493,   493,   494,   494,   495,   495,   496,   497,   497,
3415      498,   498,   499,   499,   501,   500,   502,   502,   503,   503,
3416      504,   504,   506,   505,   507,   505,   508,   505,   509,   509,
3417      510,   510,   511,   511,   512,   512,   512,   512,   512,   513,
3418      513,   514,   514,   514,   516,   515,   517,   518,   518,   519,
3419      519
3420 };
3421
3422   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
3423 static const yytype_uint8 yyr2[] =
3424 {
3425        0,     2,     1,     1,     1,     1,     1,     1,     1,     1,
3426        1,     1,     1,     1,     1,     1,     3,     1,     4,     1,
3427        3,     2,     2,     1,     1,     1,     2,     2,     2,     1,
3428        2,     3,     2,     1,     1,     1,     1,     2,     2,     2,
3429        1,     1,     1,     1,     1,     3,     3,     3,     1,     3,
3430        3,     1,     3,     3,     1,     3,     3,     3,     3,     1,
3431        3,     3,     1,     3,     1,     3,     1,     3,     1,     3,
3432        1,     3,     1,     3,     1,     0,     6,     1,     3,     1,
3433        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3434        1,     3,     1,     2,     2,     4,     2,     3,     4,     2,
3435        3,     4,     0,     6,     2,     3,     2,     1,     1,     2,
3436        3,     3,     2,     3,     2,     1,     2,     1,     1,     1,
3437        3,     4,     6,     5,     1,     2,     3,     5,     4,     1,
3438        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3439        4,     1,     3,     1,     3,     1,     1,     1,     2,     1,
3440        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3441        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3442        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3443        1,     1,     1,     1,     4,     1,     1,     3,     2,     3,
3444        2,     3,     3,     4,     1,     0,     3,     1,     3,     1,
3445        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3446        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3447        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3448        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3449        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3450        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3451        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3452        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3453        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3454        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3455        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3456        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3457        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3458        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3459        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3460        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3461        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3462        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3463        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3464        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3465        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3466        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3467        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3468        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3469        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3470        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3471        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3472        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3473        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3474        0,     6,     0,     5,     1,     2,     3,     4,     1,     3,
3475        1,     2,     1,     3,     4,     1,     3,     1,     1,     1,
3476        1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
3477        0,     0,     5,     1,     1,     0,     2,     0,     2,     2,
3478        3,     1,     2,     1,     2,     1,     2,     5,     3,     1,
3479        1,     4,     1,     2,     0,     8,     0,     1,     3,     2,
3480        1,     2,     0,     6,     0,     8,     0,     7,     1,     1,
3481        1,     0,     2,     3,     2,     2,     2,     3,     2,     1,
3482        2,     1,     1,     1,     0,     3,     5,     1,     3,     1,
3483        4
3484 };
3485
3486
3487 #define yyerrok         (yyerrstatus = 0)
3488 #define yyclearin       (yychar = YYEMPTY)
3489 #define YYEMPTY         (-2)
3490 #define YYEOF           0
3491
3492 #define YYACCEPT        goto yyacceptlab
3493 #define YYABORT         goto yyabortlab
3494 #define YYERROR         goto yyerrorlab
3495
3496
3497 #define YYRECOVERING()  (!!yyerrstatus)
3498
3499 #define YYBACKUP(Token, Value)                                  \
3500 do                                                              \
3501   if (yychar == YYEMPTY)                                        \
3502     {                                                           \
3503       yychar = (Token);                                         \
3504       yylval = (Value);                                         \
3505       YYPOPSTACK (yylen);                                       \
3506       yystate = *yyssp;                                         \
3507       goto yybackup;                                            \
3508     }                                                           \
3509   else                                                          \
3510     {                                                           \
3511       yyerror (pParseContext, YY_("syntax error: cannot back up")); \
3512       YYERROR;                                                  \
3513     }                                                           \
3514 while (0)
3515
3516 /* Error token number */
3517 #define YYTERROR        1
3518 #define YYERRCODE       256
3519
3520
3521
3522 /* Enable debugging if requested.  */
3523 #if YYDEBUG
3524
3525 # ifndef YYFPRINTF
3526 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3527 #  define YYFPRINTF fprintf
3528 # endif
3529
3530 # define YYDPRINTF(Args)                        \
3531 do {                                            \
3532   if (yydebug)                                  \
3533     YYFPRINTF Args;                             \
3534 } while (0)
3535
3536 /* This macro is provided for backward compatibility. */
3537 #ifndef YY_LOCATION_PRINT
3538 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3539 #endif
3540
3541
3542 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
3543 do {                                                                      \
3544   if (yydebug)                                                            \
3545     {                                                                     \
3546       YYFPRINTF (stderr, "%s ", Title);                                   \
3547       yy_symbol_print (stderr,                                            \
3548                   Type, Value, pParseContext); \
3549       YYFPRINTF (stderr, "\n");                                           \
3550     }                                                                     \
3551 } while (0)
3552
3553
3554 /*----------------------------------------.
3555 | Print this symbol's value on YYOUTPUT.  |
3556 `----------------------------------------*/
3557
3558 static void
3559 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
3560 {
3561   FILE *yyo = yyoutput;
3562   YYUSE (yyo);
3563   YYUSE (pParseContext);
3564   if (!yyvaluep)
3565     return;
3566 # ifdef YYPRINT
3567   if (yytype < YYNTOKENS)
3568     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3569 # endif
3570   YYUSE (yytype);
3571 }
3572
3573
3574 /*--------------------------------.
3575 | Print this symbol on YYOUTPUT.  |
3576 `--------------------------------*/
3577
3578 static void
3579 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
3580 {
3581   YYFPRINTF (yyoutput, "%s %s (",
3582              yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
3583
3584   yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext);
3585   YYFPRINTF (yyoutput, ")");
3586 }
3587
3588 /*------------------------------------------------------------------.
3589 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
3590 | TOP (included).                                                   |
3591 `------------------------------------------------------------------*/
3592
3593 static void
3594 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
3595 {
3596   YYFPRINTF (stderr, "Stack now");
3597   for (; yybottom <= yytop; yybottom++)
3598     {
3599       int yybot = *yybottom;
3600       YYFPRINTF (stderr, " %d", yybot);
3601     }
3602   YYFPRINTF (stderr, "\n");
3603 }
3604
3605 # define YY_STACK_PRINT(Bottom, Top)                            \
3606 do {                                                            \
3607   if (yydebug)                                                  \
3608     yy_stack_print ((Bottom), (Top));                           \
3609 } while (0)
3610
3611
3612 /*------------------------------------------------.
3613 | Report that the YYRULE is going to be reduced.  |
3614 `------------------------------------------------*/
3615
3616 static void
3617 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext)
3618 {
3619   unsigned long int yylno = yyrline[yyrule];
3620   int yynrhs = yyr2[yyrule];
3621   int yyi;
3622   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3623              yyrule - 1, yylno);
3624   /* The symbols being reduced.  */
3625   for (yyi = 0; yyi < yynrhs; yyi++)
3626     {
3627       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
3628       yy_symbol_print (stderr,
3629                        yystos[yyssp[yyi + 1 - yynrhs]],
3630                        &(yyvsp[(yyi + 1) - (yynrhs)])
3631                                               , pParseContext);
3632       YYFPRINTF (stderr, "\n");
3633     }
3634 }
3635
3636 # define YY_REDUCE_PRINT(Rule)          \
3637 do {                                    \
3638   if (yydebug)                          \
3639     yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \
3640 } while (0)
3641
3642 /* Nonzero means print parse trace.  It is left uninitialized so that
3643    multiple parsers can coexist.  */
3644 int yydebug;
3645 #else /* !YYDEBUG */
3646 # define YYDPRINTF(Args)
3647 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3648 # define YY_STACK_PRINT(Bottom, Top)
3649 # define YY_REDUCE_PRINT(Rule)
3650 #endif /* !YYDEBUG */
3651
3652
3653 /* YYINITDEPTH -- initial size of the parser's stacks.  */
3654 #ifndef YYINITDEPTH
3655 # define YYINITDEPTH 200
3656 #endif
3657
3658 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3659    if the built-in stack extension method is used).
3660
3661    Do not make this value too large; the results are undefined if
3662    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3663    evaluated with infinite-precision integer arithmetic.  */
3664
3665 #ifndef YYMAXDEPTH
3666 # define YYMAXDEPTH 10000
3667 #endif
3668
3669
3670 #if YYERROR_VERBOSE
3671
3672 # ifndef yystrlen
3673 #  if defined __GLIBC__ && defined _STRING_H
3674 #   define yystrlen strlen
3675 #  else
3676 /* Return the length of YYSTR.  */
3677 static YYSIZE_T
3678 yystrlen (const char *yystr)
3679 {
3680   YYSIZE_T yylen;
3681   for (yylen = 0; yystr[yylen]; yylen++)
3682     continue;
3683   return yylen;
3684 }
3685 #  endif
3686 # endif
3687
3688 # ifndef yystpcpy
3689 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3690 #   define yystpcpy stpcpy
3691 #  else
3692 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3693    YYDEST.  */
3694 static char *
3695 yystpcpy (char *yydest, const char *yysrc)
3696 {
3697   char *yyd = yydest;
3698   const char *yys = yysrc;
3699
3700   while ((*yyd++ = *yys++) != '\0')
3701     continue;
3702
3703   return yyd - 1;
3704 }
3705 #  endif
3706 # endif
3707
3708 # ifndef yytnamerr
3709 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3710    quotes and backslashes, so that it's suitable for yyerror.  The
3711    heuristic is that double-quoting is unnecessary unless the string
3712    contains an apostrophe, a comma, or backslash (other than
3713    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
3714    null, do not copy; instead, return the length of what the result
3715    would have been.  */
3716 static YYSIZE_T
3717 yytnamerr (char *yyres, const char *yystr)
3718 {
3719   if (*yystr == '"')
3720     {
3721       YYSIZE_T yyn = 0;
3722       char const *yyp = yystr;
3723
3724       for (;;)
3725         switch (*++yyp)
3726           {
3727           case '\'':
3728           case ',':
3729             goto do_not_strip_quotes;
3730
3731           case '\\':
3732             if (*++yyp != '\\')
3733               goto do_not_strip_quotes;
3734             /* Fall through.  */
3735           default:
3736             if (yyres)
3737               yyres[yyn] = *yyp;
3738             yyn++;
3739             break;
3740
3741           case '"':
3742             if (yyres)
3743               yyres[yyn] = '\0';
3744             return yyn;
3745           }
3746     do_not_strip_quotes: ;
3747     }
3748
3749   if (! yyres)
3750     return yystrlen (yystr);
3751
3752   return yystpcpy (yyres, yystr) - yyres;
3753 }
3754 # endif
3755
3756 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
3757    about the unexpected token YYTOKEN for the state stack whose top is
3758    YYSSP.
3759
3760    Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
3761    not large enough to hold the message.  In that case, also set
3762    *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
3763    required number of bytes is too large to store.  */
3764 static int
3765 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
3766                 yytype_int16 *yyssp, int yytoken)
3767 {
3768   YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
3769   YYSIZE_T yysize = yysize0;
3770   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3771   /* Internationalized format string. */
3772   const char *yyformat = YY_NULLPTR;
3773   /* Arguments of yyformat. */
3774   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3775   /* Number of reported tokens (one for the "unexpected", one per
3776      "expected"). */
3777   int yycount = 0;
3778
3779   /* There are many possibilities here to consider:
3780      - If this state is a consistent state with a default action, then
3781        the only way this function was invoked is if the default action
3782        is an error action.  In that case, don't check for expected
3783        tokens because there are none.
3784      - The only way there can be no lookahead present (in yychar) is if
3785        this state is a consistent state with a default action.  Thus,
3786        detecting the absence of a lookahead is sufficient to determine
3787        that there is no unexpected or expected token to report.  In that
3788        case, just report a simple "syntax error".
3789      - Don't assume there isn't a lookahead just because this state is a
3790        consistent state with a default action.  There might have been a
3791        previous inconsistent state, consistent state with a non-default
3792        action, or user semantic action that manipulated yychar.
3793      - Of course, the expected token list depends on states to have
3794        correct lookahead information, and it depends on the parser not
3795        to perform extra reductions after fetching a lookahead from the
3796        scanner and before detecting a syntax error.  Thus, state merging
3797        (from LALR or IELR) and default reductions corrupt the expected
3798        token list.  However, the list is correct for canonical LR with
3799        one exception: it will still contain any token that will not be
3800        accepted due to an error action in a later state.
3801   */
3802   if (yytoken != YYEMPTY)
3803     {
3804       int yyn = yypact[*yyssp];
3805       yyarg[yycount++] = yytname[yytoken];
3806       if (!yypact_value_is_default (yyn))
3807         {
3808           /* Start YYX at -YYN if negative to avoid negative indexes in
3809              YYCHECK.  In other words, skip the first -YYN actions for
3810              this state because they are default actions.  */
3811           int yyxbegin = yyn < 0 ? -yyn : 0;
3812           /* Stay within bounds of both yycheck and yytname.  */
3813           int yychecklim = YYLAST - yyn + 1;
3814           int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3815           int yyx;
3816
3817           for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3818             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
3819                 && !yytable_value_is_error (yytable[yyx + yyn]))
3820               {
3821                 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3822                   {
3823                     yycount = 1;
3824                     yysize = yysize0;
3825                     break;
3826                   }
3827                 yyarg[yycount++] = yytname[yyx];
3828                 {
3829                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
3830                   if (! (yysize <= yysize1
3831                          && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3832                     return 2;
3833                   yysize = yysize1;
3834                 }
3835               }
3836         }
3837     }
3838
3839   switch (yycount)
3840     {
3841 # define YYCASE_(N, S)                      \
3842       case N:                               \
3843         yyformat = S;                       \
3844       break
3845       YYCASE_(0, YY_("syntax error"));
3846       YYCASE_(1, YY_("syntax error, unexpected %s"));
3847       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
3848       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
3849       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
3850       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
3851 # undef YYCASE_
3852     }
3853
3854   {
3855     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
3856     if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3857       return 2;
3858     yysize = yysize1;
3859   }
3860
3861   if (*yymsg_alloc < yysize)
3862     {
3863       *yymsg_alloc = 2 * yysize;
3864       if (! (yysize <= *yymsg_alloc
3865              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
3866         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
3867       return 1;
3868     }
3869
3870   /* Avoid sprintf, as that infringes on the user's name space.
3871      Don't have undefined behavior even if the translation
3872      produced a string with the wrong number of "%s"s.  */
3873   {
3874     char *yyp = *yymsg;
3875     int yyi = 0;
3876     while ((*yyp = *yyformat) != '\0')
3877       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
3878         {
3879           yyp += yytnamerr (yyp, yyarg[yyi++]);
3880           yyformat += 2;
3881         }
3882       else
3883         {
3884           yyp++;
3885           yyformat++;
3886         }
3887   }
3888   return 0;
3889 }
3890 #endif /* YYERROR_VERBOSE */
3891
3892 /*-----------------------------------------------.
3893 | Release the memory associated to this symbol.  |
3894 `-----------------------------------------------*/
3895
3896 static void
3897 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext)
3898 {
3899   YYUSE (yyvaluep);
3900   YYUSE (pParseContext);
3901   if (!yymsg)
3902     yymsg = "Deleting";
3903   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3904
3905   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3906   YYUSE (yytype);
3907   YY_IGNORE_MAYBE_UNINITIALIZED_END
3908 }
3909
3910
3911
3912
3913 /*----------.
3914 | yyparse.  |
3915 `----------*/
3916
3917 int
3918 yyparse (glslang::TParseContext* pParseContext)
3919 {
3920 /* The lookahead symbol.  */
3921 int yychar;
3922
3923
3924 /* The semantic value of the lookahead symbol.  */
3925 /* Default value used for initialization, for pacifying older GCCs
3926    or non-GCC compilers.  */
3927 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
3928 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
3929
3930     /* Number of syntax errors so far.  */
3931     int yynerrs;
3932
3933     int yystate;
3934     /* Number of tokens to shift before error messages enabled.  */
3935     int yyerrstatus;
3936
3937     /* The stacks and their tools:
3938        'yyss': related to states.
3939        'yyvs': related to semantic values.
3940
3941        Refer to the stacks through separate pointers, to allow yyoverflow
3942        to reallocate them elsewhere.  */
3943
3944     /* The state stack.  */
3945     yytype_int16 yyssa[YYINITDEPTH];
3946     yytype_int16 *yyss;
3947     yytype_int16 *yyssp;
3948
3949     /* The semantic value stack.  */
3950     YYSTYPE yyvsa[YYINITDEPTH];
3951     YYSTYPE *yyvs;
3952     YYSTYPE *yyvsp;
3953
3954     YYSIZE_T yystacksize;
3955
3956   int yyn;
3957   int yyresult;
3958   /* Lookahead token as an internal (translated) token number.  */
3959   int yytoken = 0;
3960   /* The variables used to return semantic value and location from the
3961      action routines.  */
3962   YYSTYPE yyval;
3963
3964 #if YYERROR_VERBOSE
3965   /* Buffer for error messages, and its allocated size.  */
3966   char yymsgbuf[128];
3967   char *yymsg = yymsgbuf;
3968   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
3969 #endif
3970
3971 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
3972
3973   /* The number of symbols on the RHS of the reduced rule.
3974      Keep to zero when no symbol should be popped.  */
3975   int yylen = 0;
3976
3977   yyssp = yyss = yyssa;
3978   yyvsp = yyvs = yyvsa;
3979   yystacksize = YYINITDEPTH;
3980
3981   YYDPRINTF ((stderr, "Starting parse\n"));
3982
3983   yystate = 0;
3984   yyerrstatus = 0;
3985   yynerrs = 0;
3986   yychar = YYEMPTY; /* Cause a token to be read.  */
3987   goto yysetstate;
3988
3989 /*------------------------------------------------------------.
3990 | yynewstate -- Push a new state, which is found in yystate.  |
3991 `------------------------------------------------------------*/
3992  yynewstate:
3993   /* In all cases, when you get here, the value and location stacks
3994      have just been pushed.  So pushing a state here evens the stacks.  */
3995   yyssp++;
3996
3997  yysetstate:
3998   *yyssp = yystate;
3999
4000   if (yyss + yystacksize - 1 <= yyssp)
4001     {
4002       /* Get the current used size of the three stacks, in elements.  */
4003       YYSIZE_T yysize = yyssp - yyss + 1;
4004
4005 #ifdef yyoverflow
4006       {
4007         /* Give user a chance to reallocate the stack.  Use copies of
4008            these so that the &'s don't force the real ones into
4009            memory.  */
4010         YYSTYPE *yyvs1 = yyvs;
4011         yytype_int16 *yyss1 = yyss;
4012
4013         /* Each stack pointer address is followed by the size of the
4014            data in use in that stack, in bytes.  This used to be a
4015            conditional around just the two extra args, but that might
4016            be undefined if yyoverflow is a macro.  */
4017         yyoverflow (YY_("memory exhausted"),
4018                     &yyss1, yysize * sizeof (*yyssp),
4019                     &yyvs1, yysize * sizeof (*yyvsp),
4020                     &yystacksize);
4021
4022         yyss = yyss1;
4023         yyvs = yyvs1;
4024       }
4025 #else /* no yyoverflow */
4026 # ifndef YYSTACK_RELOCATE
4027       goto yyexhaustedlab;
4028 # else
4029       /* Extend the stack our own way.  */
4030       if (YYMAXDEPTH <= yystacksize)
4031         goto yyexhaustedlab;
4032       yystacksize *= 2;
4033       if (YYMAXDEPTH < yystacksize)
4034         yystacksize = YYMAXDEPTH;
4035
4036       {
4037         yytype_int16 *yyss1 = yyss;
4038         union yyalloc *yyptr =
4039           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
4040         if (! yyptr)
4041           goto yyexhaustedlab;
4042         YYSTACK_RELOCATE (yyss_alloc, yyss);
4043         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
4044 #  undef YYSTACK_RELOCATE
4045         if (yyss1 != yyssa)
4046           YYSTACK_FREE (yyss1);
4047       }
4048 # endif
4049 #endif /* no yyoverflow */
4050
4051       yyssp = yyss + yysize - 1;
4052       yyvsp = yyvs + yysize - 1;
4053
4054       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
4055                   (unsigned long int) yystacksize));
4056
4057       if (yyss + yystacksize - 1 <= yyssp)
4058         YYABORT;
4059     }
4060
4061   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4062
4063   if (yystate == YYFINAL)
4064     YYACCEPT;
4065
4066   goto yybackup;
4067
4068 /*-----------.
4069 | yybackup.  |
4070 `-----------*/
4071 yybackup:
4072
4073   /* Do appropriate processing given the current state.  Read a
4074      lookahead token if we need one and don't already have one.  */
4075
4076   /* First try to decide what to do without reference to lookahead token.  */
4077   yyn = yypact[yystate];
4078   if (yypact_value_is_default (yyn))
4079     goto yydefault;
4080
4081   /* Not known => get a lookahead token if don't already have one.  */
4082
4083   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
4084   if (yychar == YYEMPTY)
4085     {
4086       YYDPRINTF ((stderr, "Reading a token: "));
4087       yychar = yylex (&yylval, parseContext);
4088     }
4089
4090   if (yychar <= YYEOF)
4091     {
4092       yychar = yytoken = YYEOF;
4093       YYDPRINTF ((stderr, "Now at end of input.\n"));
4094     }
4095   else
4096     {
4097       yytoken = YYTRANSLATE (yychar);
4098       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
4099     }
4100
4101   /* If the proper action on seeing token YYTOKEN is to reduce or to
4102      detect an error, take that action.  */
4103   yyn += yytoken;
4104   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
4105     goto yydefault;
4106   yyn = yytable[yyn];
4107   if (yyn <= 0)
4108     {
4109       if (yytable_value_is_error (yyn))
4110         goto yyerrlab;
4111       yyn = -yyn;
4112       goto yyreduce;
4113     }
4114
4115   /* Count tokens shifted since error; after three, turn off error
4116      status.  */
4117   if (yyerrstatus)
4118     yyerrstatus--;
4119
4120   /* Shift the lookahead token.  */
4121   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
4122
4123   /* Discard the shifted token.  */
4124   yychar = YYEMPTY;
4125
4126   yystate = yyn;
4127   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4128   *++yyvsp = yylval;
4129   YY_IGNORE_MAYBE_UNINITIALIZED_END
4130
4131   goto yynewstate;
4132
4133
4134 /*-----------------------------------------------------------.
4135 | yydefault -- do the default action for the current state.  |
4136 `-----------------------------------------------------------*/
4137 yydefault:
4138   yyn = yydefact[yystate];
4139   if (yyn == 0)
4140     goto yyerrlab;
4141   goto yyreduce;
4142
4143
4144 /*-----------------------------.
4145 | yyreduce -- Do a reduction.  |
4146 `-----------------------------*/
4147 yyreduce:
4148   /* yyn is the number of a rule to reduce with.  */
4149   yylen = yyr2[yyn];
4150
4151   /* If YYLEN is nonzero, implement the default value of the action:
4152      '$$ = $1'.
4153
4154      Otherwise, the following line sets YYVAL to garbage.
4155      This behavior is undocumented and Bison
4156      users should not rely upon it.  Assigning to YYVAL
4157      unconditionally makes the parser a bit smaller, and it avoids a
4158      GCC warning that YYVAL may be used uninitialized.  */
4159   yyval = yyvsp[1-yylen];
4160
4161
4162   YY_REDUCE_PRINT (yyn);
4163   switch (yyn)
4164     {
4165         case 2:
4166 #line 302 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4167     {
4168         (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
4169     }
4170 #line 4171 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4171     break;
4172
4173   case 3:
4174 #line 308 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4175     {
4176         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4177     }
4178 #line 4179 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4179     break;
4180
4181   case 4:
4182 #line 311 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4183     {
4184         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
4185         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4186     }
4187 #line 4188 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4188     break;
4189
4190   case 5:
4191 #line 315 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4192     {
4193         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
4194         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4195     }
4196 #line 4197 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4197     break;
4198
4199   case 6:
4200 #line 319 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4201     {
4202         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4203     }
4204 #line 4205 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4205     break;
4206
4207   case 7:
4208 #line 322 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4209     {
4210         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
4211         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4212     }
4213 #line 4214 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4214     break;
4215
4216   case 8:
4217 #line 326 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4218     {
4219         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
4220         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
4221     }
4222 #line 4223 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4223     break;
4224
4225   case 9:
4226 #line 330 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4227     {
4228         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
4229         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
4230     }
4231 #line 4232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4232     break;
4233
4234   case 10:
4235 #line 334 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4236     {
4237         parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal");
4238         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4239     }
4240 #line 4241 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4241     break;
4242
4243   case 11:
4244 #line 338 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4245     {
4246         parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal");
4247         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4248     }
4249 #line 4250 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4250     break;
4251
4252   case 12:
4253 #line 342 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4254     {
4255         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
4256     }
4257 #line 4258 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4258     break;
4259
4260   case 13:
4261 #line 345 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4262     {
4263         parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
4264         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
4265     }
4266 #line 4267 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4267     break;
4268
4269   case 14:
4270 #line 349 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4271     {
4272         parseContext.float16Check((yyvsp[0].lex).loc, "half float literal");
4273         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true);
4274     }
4275 #line 4276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4276     break;
4277
4278   case 15:
4279 #line 353 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4280     {
4281         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
4282     }
4283 #line 4284 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4284     break;
4285
4286   case 16:
4287 #line 356 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4288     {
4289         (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
4290         if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
4291             (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
4292     }
4293 #line 4294 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4294     break;
4295
4296   case 17:
4297 #line 364 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4298     {
4299         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4300     }
4301 #line 4302 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4302     break;
4303
4304   case 18:
4305 #line 367 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4306     {
4307         (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
4308     }
4309 #line 4310 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4310     break;
4311
4312   case 19:
4313 #line 370 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4314     {
4315         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4316     }
4317 #line 4318 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4318     break;
4319
4320   case 20:
4321 #line 373 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4322     {
4323         (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
4324     }
4325 #line 4326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4326     break;
4327
4328   case 21:
4329 #line 376 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4330     {
4331         parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
4332         parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
4333         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
4334     }
4335 #line 4336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4336     break;
4337
4338   case 22:
4339 #line 381 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4340     {
4341         parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
4342         parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
4343         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
4344     }
4345 #line 4346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4346     break;
4347
4348   case 23:
4349 #line 389 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4350     {
4351         parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
4352         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4353     }
4354 #line 4355 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4355     break;
4356
4357   case 24:
4358 #line 396 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4359     {
4360         (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
4361         delete (yyvsp[0].interm).function;
4362     }
4363 #line 4364 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4364     break;
4365
4366   case 25:
4367 #line 403 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4368     {
4369         (yyval.interm) = (yyvsp[0].interm);
4370     }
4371 #line 4372 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4372     break;
4373
4374   case 26:
4375 #line 409 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4376     {
4377         (yyval.interm) = (yyvsp[-1].interm);
4378         (yyval.interm).loc = (yyvsp[0].lex).loc;
4379     }
4380 #line 4381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4381     break;
4382
4383   case 27:
4384 #line 413 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4385     {
4386         (yyval.interm) = (yyvsp[-1].interm);
4387         (yyval.interm).loc = (yyvsp[0].lex).loc;
4388     }
4389 #line 4390 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4390     break;
4391
4392   case 28:
4393 #line 420 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4394     {
4395         (yyval.interm) = (yyvsp[-1].interm);
4396     }
4397 #line 4398 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4398     break;
4399
4400   case 29:
4401 #line 423 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4402     {
4403         (yyval.interm) = (yyvsp[0].interm);
4404     }
4405 #line 4406 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4406     break;
4407
4408   case 30:
4409 #line 429 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4410     {
4411         TParameter param = { 0, new TType };
4412         param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
4413         (yyvsp[-1].interm).function->addParameter(param);
4414         (yyval.interm).function = (yyvsp[-1].interm).function;
4415         (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
4416     }
4417 #line 4418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4418     break;
4419
4420   case 31:
4421 #line 436 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4422     {
4423         TParameter param = { 0, new TType };
4424         param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
4425         (yyvsp[-2].interm).function->addParameter(param);
4426         (yyval.interm).function = (yyvsp[-2].interm).function;
4427         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
4428     }
4429 #line 4430 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4430     break;
4431
4432   case 32:
4433 #line 446 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4434     {
4435         (yyval.interm) = (yyvsp[-1].interm);
4436     }
4437 #line 4438 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4438     break;
4439
4440   case 33:
4441 #line 454 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4442     {
4443         // Constructor
4444         (yyval.interm).intermNode = 0;
4445         (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
4446     }
4447 #line 4448 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4448     break;
4449
4450   case 34:
4451 #line 459 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4452     {
4453         //
4454         // Should be a method or subroutine call, but we haven't recognized the arguments yet.
4455         //
4456         (yyval.interm).function = 0;
4457         (yyval.interm).intermNode = 0;
4458
4459         TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode();
4460         if (method) {
4461             (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength);
4462             (yyval.interm).intermNode = method->getObject();
4463         } else {
4464             TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode();
4465             if (symbol) {
4466                 parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName());
4467                 TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid));
4468                 (yyval.interm).function = function;
4469             } else
4470                 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", "");
4471         }
4472
4473         if ((yyval.interm).function == 0) {
4474             // error recover
4475             TString* empty = NewPoolTString("");
4476             (yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull);
4477         }
4478     }
4479 #line 4480 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4480     break;
4481
4482   case 35:
4483 #line 486 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4484     {
4485         // Constructor
4486         (yyval.interm).intermNode = 0;
4487         (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
4488     }
4489 #line 4490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4490     break;
4491
4492   case 36:
4493 #line 494 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4494     {
4495         parseContext.variableCheck((yyvsp[0].interm.intermTypedNode));
4496         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4497         if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
4498             parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
4499     }
4500 #line 4501 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4501     break;
4502
4503   case 37:
4504 #line 500 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4505     {
4506         parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode));
4507         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode));
4508     }
4509 #line 4510 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4510     break;
4511
4512   case 38:
4513 #line 504 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4514     {
4515         parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode));
4516         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode));
4517     }
4518 #line 4519 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4519     break;
4520
4521   case 39:
4522 #line 508 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4523     {
4524         if ((yyvsp[-1].interm).op != EOpNull) {
4525             char errorOp[2] = {0, 0};
4526             switch((yyvsp[-1].interm).op) {
4527             case EOpNegative:   errorOp[0] = '-'; break;
4528             case EOpLogicalNot: errorOp[0] = '!'; break;
4529             case EOpBitwiseNot: errorOp[0] = '~'; break;
4530             default: break; // some compilers want this
4531             }
4532             (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode));
4533         } else {
4534             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4535             if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
4536                 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
4537         }
4538     }
4539 #line 4540 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4540     break;
4541
4542   case 40:
4543 #line 528 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4544     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
4545 #line 4546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4546     break;
4547
4548   case 41:
4549 #line 529 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4550     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
4551 #line 4552 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4552     break;
4553
4554   case 42:
4555 #line 530 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4556     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
4557 #line 4558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4558     break;
4559
4560   case 43:
4561 #line 531 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4562     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
4563               parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
4564 #line 4565 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4565     break;
4566
4567   case 44:
4568 #line 537 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4569     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4570 #line 4571 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4571     break;
4572
4573   case 45:
4574 #line 538 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4575     {
4576         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4577         if ((yyval.interm.intermTypedNode) == 0)
4578             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4579     }
4580 #line 4581 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4581     break;
4582
4583   case 46:
4584 #line 543 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4585     {
4586         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4587         if ((yyval.interm.intermTypedNode) == 0)
4588             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4589     }
4590 #line 4591 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4591     break;
4592
4593   case 47:
4594 #line 548 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4595     {
4596         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%");
4597         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4598         if ((yyval.interm.intermTypedNode) == 0)
4599             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4600     }
4601 #line 4602 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4602     break;
4603
4604   case 48:
4605 #line 557 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4606     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4607 #line 4608 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4608     break;
4609
4610   case 49:
4611 #line 558 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4612     {
4613         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4614         if ((yyval.interm.intermTypedNode) == 0)
4615             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4616     }
4617 #line 4618 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4618     break;
4619
4620   case 50:
4621 #line 563 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4622     {
4623         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4624         if ((yyval.interm.intermTypedNode) == 0)
4625             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4626     }
4627 #line 4628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4628     break;
4629
4630   case 51:
4631 #line 571 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4632     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4633 #line 4634 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4634     break;
4635
4636   case 52:
4637 #line 572 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4638     {
4639         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left");
4640         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4641         if ((yyval.interm.intermTypedNode) == 0)
4642             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4643     }
4644 #line 4645 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4645     break;
4646
4647   case 53:
4648 #line 578 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4649     {
4650         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right");
4651         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4652         if ((yyval.interm.intermTypedNode) == 0)
4653             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4654     }
4655 #line 4656 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4656     break;
4657
4658   case 54:
4659 #line 587 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4660     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4661 #line 4662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4662     break;
4663
4664   case 55:
4665 #line 588 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4666     {
4667         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4668         if ((yyval.interm.intermTypedNode) == 0)
4669             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4670     }
4671 #line 4672 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4672     break;
4673
4674   case 56:
4675 #line 593 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4676     {
4677         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4678         if ((yyval.interm.intermTypedNode) == 0)
4679             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4680     }
4681 #line 4682 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4682     break;
4683
4684   case 57:
4685 #line 598 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4686     {
4687         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4688         if ((yyval.interm.intermTypedNode) == 0)
4689             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4690     }
4691 #line 4692 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4692     break;
4693
4694   case 58:
4695 #line 603 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4696     {
4697         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4698         if ((yyval.interm.intermTypedNode) == 0)
4699             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4700     }
4701 #line 4702 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4702     break;
4703
4704   case 59:
4705 #line 611 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4706     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4707 #line 4708 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4708     break;
4709
4710   case 60:
4711 #line 612 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4712     {
4713         parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
4714         parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
4715         parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
4716         parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
4717         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4718         if ((yyval.interm.intermTypedNode) == 0)
4719             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4720     }
4721 #line 4722 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4722     break;
4723
4724   case 61:
4725 #line 621 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4726     {
4727         parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
4728         parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
4729         parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
4730         parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
4731         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4732         if ((yyval.interm.intermTypedNode) == 0)
4733             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4734     }
4735 #line 4736 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4736     break;
4737
4738   case 62:
4739 #line 633 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4740     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4741 #line 4742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4742     break;
4743
4744   case 63:
4745 #line 634 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4746     {
4747         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and");
4748         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4749         if ((yyval.interm.intermTypedNode) == 0)
4750             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4751     }
4752 #line 4753 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4753     break;
4754
4755   case 64:
4756 #line 643 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4757     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4758 #line 4759 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4759     break;
4760
4761   case 65:
4762 #line 644 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4763     {
4764         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or");
4765         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4766         if ((yyval.interm.intermTypedNode) == 0)
4767             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4768     }
4769 #line 4770 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4770     break;
4771
4772   case 66:
4773 #line 653 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4774     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4775 #line 4776 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4776     break;
4777
4778   case 67:
4779 #line 654 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4780     {
4781         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or");
4782         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4783         if ((yyval.interm.intermTypedNode) == 0)
4784             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4785     }
4786 #line 4787 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4787     break;
4788
4789   case 68:
4790 #line 663 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4791     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4792 #line 4793 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4793     break;
4794
4795   case 69:
4796 #line 664 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4797     {
4798         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4799         if ((yyval.interm.intermTypedNode) == 0)
4800             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4801     }
4802 #line 4803 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4803     break;
4804
4805   case 70:
4806 #line 672 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4807     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4808 #line 4809 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4809     break;
4810
4811   case 71:
4812 #line 673 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4813     {
4814         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4815         if ((yyval.interm.intermTypedNode) == 0)
4816             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4817     }
4818 #line 4819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4819     break;
4820
4821   case 72:
4822 #line 681 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4823     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4824 #line 4825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4825     break;
4826
4827   case 73:
4828 #line 682 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4829     {
4830         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4831         if ((yyval.interm.intermTypedNode) == 0)
4832             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4833     }
4834 #line 4835 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4835     break;
4836
4837   case 74:
4838 #line 690 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4839     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4840 #line 4841 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4841     break;
4842
4843   case 75:
4844 #line 691 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4845     {
4846         ++parseContext.controlFlowNestingLevel;
4847     }
4848 #line 4849 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4849     break;
4850
4851   case 76:
4852 #line 694 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4853     {
4854         --parseContext.controlFlowNestingLevel;
4855         parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
4856         parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode));
4857         parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode));
4858         parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode));
4859         (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc);
4860         if ((yyval.interm.intermTypedNode) == 0) {
4861             parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
4862             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4863         }
4864     }
4865 #line 4866 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4866     break;
4867
4868   case 77:
4869 #line 709 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4870     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4871 #line 4872 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4872     break;
4873
4874   case 78:
4875 #line 710 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4876     {
4877         parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment");
4878         parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
4879         parseContext.storage16BitAssignmentCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
4880         parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
4881         parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode));
4882         parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode));
4883         (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].interm).loc);
4884         if ((yyval.interm.intermTypedNode) == 0) {
4885             parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
4886             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4887         }
4888     }
4889 #line 4890 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4890     break;
4891
4892   case 79:
4893 #line 726 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4894     {
4895         (yyval.interm).loc = (yyvsp[0].lex).loc;
4896         (yyval.interm).op = EOpAssign;
4897     }
4898 #line 4899 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4899     break;
4900
4901   case 80:
4902 #line 730 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4903     {
4904         (yyval.interm).loc = (yyvsp[0].lex).loc;
4905         (yyval.interm).op = EOpMulAssign;
4906     }
4907 #line 4908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4908     break;
4909
4910   case 81:
4911 #line 734 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4912     {
4913         (yyval.interm).loc = (yyvsp[0].lex).loc;
4914         (yyval.interm).op = EOpDivAssign;
4915     }
4916 #line 4917 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4917     break;
4918
4919   case 82:
4920 #line 738 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4921     {
4922         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
4923         (yyval.interm).loc = (yyvsp[0].lex).loc;
4924         (yyval.interm).op = EOpModAssign;
4925     }
4926 #line 4927 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4927     break;
4928
4929   case 83:
4930 #line 743 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4931     {
4932         (yyval.interm).loc = (yyvsp[0].lex).loc;
4933         (yyval.interm).op = EOpAddAssign;
4934     }
4935 #line 4936 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4936     break;
4937
4938   case 84:
4939 #line 747 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4940     {
4941         (yyval.interm).loc = (yyvsp[0].lex).loc;
4942         (yyval.interm).op = EOpSubAssign;
4943     }
4944 #line 4945 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4945     break;
4946
4947   case 85:
4948 #line 751 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4949     {
4950         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
4951         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
4952     }
4953 #line 4954 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4954     break;
4955
4956   case 86:
4957 #line 755 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4958     {
4959         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
4960         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
4961     }
4962 #line 4963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4963     break;
4964
4965   case 87:
4966 #line 759 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4967     {
4968         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
4969         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
4970     }
4971 #line 4972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4972     break;
4973
4974   case 88:
4975 #line 763 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4976     {
4977         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
4978         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
4979     }
4980 #line 4981 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4981     break;
4982
4983   case 89:
4984 #line 767 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4985     {
4986         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
4987         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
4988     }
4989 #line 4990 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4990     break;
4991
4992   case 90:
4993 #line 774 "MachineIndependent/glslang.y" /* yacc.c:1646  */
4994     {
4995         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4996     }
4997 #line 4998 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
4998     break;
4999
5000   case 91:
5001 #line 777 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5002     {
5003         parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
5004         (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
5005         if ((yyval.interm.intermTypedNode) == 0) {
5006             parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
5007             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5008         }
5009     }
5010 #line 5011 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5011     break;
5012
5013   case 92:
5014 #line 788 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5015     {
5016         parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
5017         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5018     }
5019 #line 5020 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5020     break;
5021
5022   case 93:
5023 #line 795 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5024     {
5025         parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
5026         (yyval.interm.intermNode) = 0;
5027         // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
5028     }
5029 #line 5030 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5030     break;
5031
5032   case 94:
5033 #line 800 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5034     {
5035         if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate())
5036             (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
5037         (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
5038     }
5039 #line 5040 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5040     break;
5041
5042   case 95:
5043 #line 805 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5044     {
5045         parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
5046
5047         // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
5048         parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]);
5049         parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
5050         (yyval.interm.intermNode) = 0;
5051     }
5052 #line 5053 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5053     break;
5054
5055   case 96:
5056 #line 813 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5057     {
5058         parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
5059         (yyval.interm.intermNode) = 0;
5060     }
5061 #line 5062 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5062     break;
5063
5064   case 97:
5065 #line 817 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5066     {
5067         parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
5068         (yyval.interm.intermNode) = 0;
5069     }
5070 #line 5071 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5071     break;
5072
5073   case 98:
5074 #line 821 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5075     {
5076         parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
5077         (yyval.interm.intermNode) = 0;
5078     }
5079 #line 5080 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5080     break;
5081
5082   case 99:
5083 #line 825 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5084     {
5085         parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
5086         parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
5087         (yyval.interm.intermNode) = 0;
5088     }
5089 #line 5090 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5090     break;
5091
5092   case 100:
5093 #line 830 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5094     {
5095         parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
5096         parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
5097         (yyval.interm.intermNode) = 0;
5098     }
5099 #line 5100 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5100     break;
5101
5102   case 101:
5103 #line 835 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5104     {
5105         parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
5106         (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string);
5107         parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
5108         (yyval.interm.intermNode) = 0;
5109     }
5110 #line 5111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5111     break;
5112
5113   case 102:
5114 #line 844 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5115     { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
5116 #line 5117 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5117     break;
5118
5119   case 103:
5120 #line 844 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5121     {
5122         --parseContext.structNestingLevel;
5123         parseContext.blockName = (yyvsp[-4].lex).string;
5124         parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier);
5125         parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers);
5126         parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier;
5127         (yyval.interm).loc = (yyvsp[-5].interm.type).loc;
5128         (yyval.interm).typeList = (yyvsp[-1].interm.typeList);
5129     }
5130 #line 5131 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5131     break;
5132
5133   case 104:
5134 #line 855 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5135     {
5136         (yyval.interm.identifierList) = new TIdentifierList;
5137         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
5138     }
5139 #line 5140 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5140     break;
5141
5142   case 105:
5143 #line 859 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5144     {
5145         (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
5146         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
5147     }
5148 #line 5149 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5149     break;
5150
5151   case 106:
5152 #line 866 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5153     {
5154         (yyval.interm).function = (yyvsp[-1].interm.function);
5155         (yyval.interm).loc = (yyvsp[0].lex).loc;
5156     }
5157 #line 5158 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5158     break;
5159
5160   case 107:
5161 #line 873 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5162     {
5163         (yyval.interm.function) = (yyvsp[0].interm.function);
5164     }
5165 #line 5166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5166     break;
5167
5168   case 108:
5169 #line 876 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5170     {
5171         (yyval.interm.function) = (yyvsp[0].interm.function);
5172     }
5173 #line 5174 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5174     break;
5175
5176   case 109:
5177 #line 883 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5178     {
5179         // Add the parameter
5180         (yyval.interm.function) = (yyvsp[-1].interm.function);
5181         if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid)
5182             (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param);
5183         else
5184             delete (yyvsp[0].interm).param.type;
5185     }
5186 #line 5187 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5187     break;
5188
5189   case 110:
5190 #line 891 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5191     {
5192         //
5193         // Only first parameter of one-parameter functions can be void
5194         // The check for named parameters not being void is done in parameter_declarator
5195         //
5196         if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) {
5197             //
5198             // This parameter > first is void
5199             //
5200             parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", "");
5201             delete (yyvsp[0].interm).param.type;
5202         } else {
5203             // Add the parameter
5204             (yyval.interm.function) = (yyvsp[-2].interm.function);
5205             (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
5206         }
5207     }
5208 #line 5209 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5209     break;
5210
5211   case 111:
5212 #line 911 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5213     {
5214         if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
5215             parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
5216                                GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), "");
5217         }
5218         if ((yyvsp[-2].interm.type).arraySizes)
5219             parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
5220
5221         // Add the function as a prototype after parsing it (we do not support recursion)
5222         TFunction *function;
5223         TType type((yyvsp[-2].interm.type));
5224
5225         // Potentially rename shader entry point function.  No-op most of the time.
5226         parseContext.renameShaderFunction((yyvsp[-1].lex).string);
5227
5228         // Make the function
5229         function = new TFunction((yyvsp[-1].lex).string, type);
5230         (yyval.interm.function) = function;
5231     }
5232 #line 5233 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5233     break;
5234
5235   case 112:
5236 #line 934 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5237     {
5238         if ((yyvsp[-1].interm.type).arraySizes) {
5239             parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5240             parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5241             parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes);
5242         }
5243         if ((yyvsp[-1].interm.type).basicType == EbtVoid) {
5244             parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), "");
5245         }
5246         parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string);
5247
5248         TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))};
5249         (yyval.interm).loc = (yyvsp[0].lex).loc;
5250         (yyval.interm).param = param;
5251     }
5252 #line 5253 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5253     break;
5254
5255   case 113:
5256 #line 949 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5257     {
5258         if ((yyvsp[-2].interm.type).arraySizes) {
5259             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5260             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5261             parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
5262         }
5263         TType* type = new TType((yyvsp[-2].interm.type));
5264         type->transferArraySizes((yyvsp[0].interm).arraySizes);
5265         type->copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
5266
5267         parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, type->getArraySizes());
5268         parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes);
5269         parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string);
5270
5271         TParameter param = { (yyvsp[-1].lex).string, type };
5272
5273         (yyval.interm).loc = (yyvsp[-1].lex).loc;
5274         (yyval.interm).param = param;
5275     }
5276 #line 5277 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5277     break;
5278
5279   case 114:
5280 #line 974 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5281     {
5282         (yyval.interm) = (yyvsp[0].interm);
5283         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
5284             (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
5285         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5286
5287         parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5288         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
5289         parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
5290
5291     }
5292 #line 5293 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5293     break;
5294
5295   case 115:
5296 #line 985 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5297     {
5298         (yyval.interm) = (yyvsp[0].interm);
5299
5300         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
5301         parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
5302         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5303     }
5304 #line 5305 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5305     break;
5306
5307   case 116:
5308 #line 995 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5309     {
5310         (yyval.interm) = (yyvsp[0].interm);
5311         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
5312             (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
5313         parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5314
5315         parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5316         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
5317         parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
5318     }
5319 #line 5320 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5320     break;
5321
5322   case 117:
5323 #line 1005 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5324     {
5325         (yyval.interm) = (yyvsp[0].interm);
5326
5327         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
5328         parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
5329         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5330     }
5331 #line 5332 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5332     break;
5333
5334   case 118:
5335 #line 1015 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5336     {
5337         TParameter param = { 0, new TType((yyvsp[0].interm.type)) };
5338         (yyval.interm).param = param;
5339         if ((yyvsp[0].interm.type).arraySizes)
5340             parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
5341     }
5342 #line 5343 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5343     break;
5344
5345   case 119:
5346 #line 1024 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5347     {
5348         (yyval.interm) = (yyvsp[0].interm);
5349     }
5350 #line 5351 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5351     break;
5352
5353   case 120:
5354 #line 1027 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5355     {
5356         (yyval.interm) = (yyvsp[-2].interm);
5357         parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
5358     }
5359 #line 5360 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5360     break;
5361
5362   case 121:
5363 #line 1031 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5364     {
5365         (yyval.interm) = (yyvsp[-3].interm);
5366         parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
5367     }
5368 #line 5369 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5369     break;
5370
5371   case 122:
5372 #line 1035 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5373     {
5374         (yyval.interm).type = (yyvsp[-5].interm).type;
5375         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
5376         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
5377     }
5378 #line 5379 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5379     break;
5380
5381   case 123:
5382 #line 1040 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5383     {
5384         (yyval.interm).type = (yyvsp[-4].interm).type;
5385         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
5386         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
5387     }
5388 #line 5389 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5389     break;
5390
5391   case 124:
5392 #line 1048 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5393     {
5394         (yyval.interm).type = (yyvsp[0].interm.type);
5395         (yyval.interm).intermNode = 0;
5396         parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
5397     }
5398 #line 5399 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5399     break;
5400
5401   case 125:
5402 #line 1053 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5403     {
5404         (yyval.interm).type = (yyvsp[-1].interm.type);
5405         (yyval.interm).intermNode = 0;
5406         parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
5407     }
5408 #line 5409 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5409     break;
5410
5411   case 126:
5412 #line 1058 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5413     {
5414         (yyval.interm).type = (yyvsp[-2].interm.type);
5415         (yyval.interm).intermNode = 0;
5416         parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
5417     }
5418 #line 5419 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5419     break;
5420
5421   case 127:
5422 #line 1063 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5423     {
5424         (yyval.interm).type = (yyvsp[-4].interm.type);
5425         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
5426         (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
5427     }
5428 #line 5429 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5429     break;
5430
5431   case 128:
5432 #line 1068 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5433     {
5434         (yyval.interm).type = (yyvsp[-3].interm.type);
5435         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
5436         (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
5437     }
5438 #line 5439 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5439     break;
5440
5441   case 129:
5442 #line 1077 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5443     {
5444         (yyval.interm.type) = (yyvsp[0].interm.type);
5445
5446         parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type));
5447         if ((yyvsp[0].interm.type).arraySizes) {
5448             parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5449             parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5450         }
5451
5452         parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
5453     }
5454 #line 5455 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5455     break;
5456
5457   case 130:
5458 #line 1088 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5459     {
5460         parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
5461         parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
5462
5463         if ((yyvsp[0].interm.type).arraySizes) {
5464             parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5465             parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5466         }
5467
5468         if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier))
5469             (yyvsp[0].interm.type).arraySizes = nullptr;
5470
5471         parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5472         (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers);
5473         parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true);
5474         parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier);
5475
5476         (yyval.interm.type) = (yyvsp[0].interm.type);
5477
5478         if (! (yyval.interm.type).qualifier.isInterpolation() &&
5479             ((parseContext.language == EShLangVertex   && (yyval.interm.type).qualifier.storage == EvqVaryingOut) ||
5480              (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
5481             (yyval.interm.type).qualifier.smooth = true;
5482     }
5483 #line 5484 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5484     break;
5485
5486   case 131:
5487 #line 1115 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5488     {
5489         parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
5490         parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
5491         (yyval.interm.type).init((yyvsp[0].lex).loc);
5492         (yyval.interm.type).qualifier.invariant = true;
5493     }
5494 #line 5495 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5495     break;
5496
5497   case 132:
5498 #line 1124 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5499     {
5500         parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
5501         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
5502         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth");
5503         (yyval.interm.type).init((yyvsp[0].lex).loc);
5504         (yyval.interm.type).qualifier.smooth = true;
5505     }
5506 #line 5507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5507     break;
5508
5509   case 133:
5510 #line 1131 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5511     {
5512         parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
5513         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
5514         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat");
5515         (yyval.interm.type).init((yyvsp[0].lex).loc);
5516         (yyval.interm.type).qualifier.flat = true;
5517     }
5518 #line 5519 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5519     break;
5520
5521   case 134:
5522 #line 1138 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5523     {
5524         parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
5525 #ifdef NV_EXTENSIONS
5526         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
5527 #else
5528         parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "noperspective");
5529 #endif
5530         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective");
5531         (yyval.interm.type).init((yyvsp[0].lex).loc);
5532         (yyval.interm.type).qualifier.nopersp = true;
5533     }
5534 #line 5535 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5535     break;
5536
5537   case 135:
5538 #line 1149 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5539     {
5540 #ifdef AMD_EXTENSIONS
5541         parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD");
5542         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
5543         parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
5544         (yyval.interm.type).init((yyvsp[0].lex).loc);
5545         (yyval.interm.type).qualifier.explicitInterp = true;
5546 #endif
5547     }
5548 #line 5549 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5549     break;
5550
5551   case 136:
5552 #line 1158 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5553     {
5554 #ifdef NV_EXTENSIONS
5555         parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV");
5556         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
5557         parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
5558         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
5559         (yyval.interm.type).init((yyvsp[0].lex).loc);
5560         (yyval.interm.type).qualifier.pervertexNV = true;
5561 #endif
5562     }
5563 #line 5564 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5564     break;
5565
5566   case 137:
5567 #line 1168 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5568     {
5569 #ifdef NV_EXTENSIONS
5570         // No need for profile version or extension check. Shader stage already checks both.
5571         parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV");
5572         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshNVMask), "perprimitiveNV");
5573         // Fragment shader stage doesn't check for extension. So we explicitly add below extension check.
5574         if (parseContext.language == EShLangFragment)
5575             parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_NV_mesh_shader, "perprimitiveNV");
5576         (yyval.interm.type).init((yyvsp[0].lex).loc);
5577         (yyval.interm.type).qualifier.perPrimitiveNV = true;
5578 #endif
5579     }
5580 #line 5581 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5581     break;
5582
5583   case 138:
5584 #line 1180 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5585     {
5586 #ifdef NV_EXTENSIONS
5587         // No need for profile version or extension check. Shader stage already checks both.
5588         parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV");
5589         parseContext.requireStage((yyvsp[0].lex).loc, EShLangMeshNV, "perviewNV");
5590         (yyval.interm.type).init((yyvsp[0].lex).loc);
5591         (yyval.interm.type).qualifier.perViewNV = true;
5592 #endif
5593     }
5594 #line 5595 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5595     break;
5596
5597   case 139:
5598 #line 1189 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5599     {
5600 #ifdef NV_EXTENSIONS
5601         // No need for profile version or extension check. Shader stage already checks both.
5602         parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV");
5603         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "taskNV");
5604         (yyval.interm.type).init((yyvsp[0].lex).loc);
5605         (yyval.interm.type).qualifier.perTaskNV = true;
5606 #endif
5607     }
5608 #line 5609 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5609     break;
5610
5611   case 140:
5612 #line 1201 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5613     {
5614         (yyval.interm.type) = (yyvsp[-1].interm.type);
5615     }
5616 #line 5617 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5617     break;
5618
5619   case 141:
5620 #line 1207 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5621     {
5622         (yyval.interm.type) = (yyvsp[0].interm.type);
5623     }
5624 #line 5625 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5625     break;
5626
5627   case 142:
5628 #line 1210 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5629     {
5630         (yyval.interm.type) = (yyvsp[-2].interm.type);
5631         (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
5632         parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
5633     }
5634 #line 5635 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5635     break;
5636
5637   case 143:
5638 #line 1217 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5639     {
5640         (yyval.interm.type).init((yyvsp[0].lex).loc);
5641         parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
5642     }
5643 #line 5644 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5644     break;
5645
5646   case 144:
5647 #line 1221 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5648     {
5649         (yyval.interm.type).init((yyvsp[-2].lex).loc);
5650         parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode));
5651     }
5652 #line 5653 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5653     break;
5654
5655   case 145:
5656 #line 1225 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5657     { // because "shared" is both an identifier and a keyword
5658         (yyval.interm.type).init((yyvsp[0].lex).loc);
5659         TString strShared("shared");
5660         parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
5661     }
5662 #line 5663 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5663     break;
5664
5665   case 146:
5666 #line 1233 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5667     {
5668         parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
5669         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
5670         (yyval.interm.type).init((yyvsp[0].lex).loc);
5671         (yyval.interm.type).qualifier.noContraction = true;
5672     }
5673 #line 5674 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5674     break;
5675
5676   case 147:
5677 #line 1242 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5678     {
5679         (yyval.interm.type) = (yyvsp[0].interm.type);
5680     }
5681 #line 5682 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5682     break;
5683
5684   case 148:
5685 #line 1245 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5686     {
5687         (yyval.interm.type) = (yyvsp[-1].interm.type);
5688         if ((yyval.interm.type).basicType == EbtVoid)
5689             (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType;
5690
5691         (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
5692         parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
5693     }
5694 #line 5695 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5695     break;
5696
5697   case 149:
5698 #line 1256 "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 150:
5706 #line 1259 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5707     {
5708         (yyval.interm.type) = (yyvsp[0].interm.type);
5709     }
5710 #line 5711 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5711     break;
5712
5713   case 151:
5714 #line 1262 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5715     {
5716         parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
5717         (yyval.interm.type) = (yyvsp[0].interm.type);
5718     }
5719 #line 5720 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5720     break;
5721
5722   case 152:
5723 #line 1266 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5724     {
5725         // allow inheritance of storage qualifier from block declaration
5726         (yyval.interm.type) = (yyvsp[0].interm.type);
5727     }
5728 #line 5729 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5729     break;
5730
5731   case 153:
5732 #line 1270 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5733     {
5734         // allow inheritance of storage qualifier from block declaration
5735         (yyval.interm.type) = (yyvsp[0].interm.type);
5736     }
5737 #line 5738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5738     break;
5739
5740   case 154:
5741 #line 1274 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5742     {
5743         // allow inheritance of storage qualifier from block declaration
5744         (yyval.interm.type) = (yyvsp[0].interm.type);
5745     }
5746 #line 5747 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5747     break;
5748
5749   case 155:
5750 #line 1278 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5751     {
5752         (yyval.interm.type) = (yyvsp[0].interm.type);
5753     }
5754 #line 5755 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5755     break;
5756
5757   case 156:
5758 #line 1284 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5759     {
5760         (yyval.interm.type).init((yyvsp[0].lex).loc);
5761         (yyval.interm.type).qualifier.storage = EvqConst;  // will later turn into EvqConstReadOnly, if the initializer is not constant
5762     }
5763 #line 5764 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5764     break;
5765
5766   case 157:
5767 #line 1288 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5768     {
5769         parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
5770         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
5771         parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute");
5772         parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute");
5773         parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute");
5774
5775         parseContext.globalCheck((yyvsp[0].lex).loc, "attribute");
5776
5777         (yyval.interm.type).init((yyvsp[0].lex).loc);
5778         (yyval.interm.type).qualifier.storage = EvqVaryingIn;
5779     }
5780 #line 5781 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5781     break;
5782
5783   case 158:
5784 #line 1300 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5785     {
5786         parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
5787         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
5788         parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying");
5789         parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying");
5790
5791         parseContext.globalCheck((yyvsp[0].lex).loc, "varying");
5792
5793         (yyval.interm.type).init((yyvsp[0].lex).loc);
5794         if (parseContext.language == EShLangVertex)
5795             (yyval.interm.type).qualifier.storage = EvqVaryingOut;
5796         else
5797             (yyval.interm.type).qualifier.storage = EvqVaryingIn;
5798     }
5799 #line 5800 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5800     break;
5801
5802   case 159:
5803 #line 1314 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5804     {
5805         parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
5806         (yyval.interm.type).init((yyvsp[0].lex).loc);
5807         (yyval.interm.type).qualifier.storage = EvqInOut;
5808     }
5809 #line 5810 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5810     break;
5811
5812   case 160:
5813 #line 1319 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5814     {
5815         parseContext.globalCheck((yyvsp[0].lex).loc, "in");
5816         (yyval.interm.type).init((yyvsp[0].lex).loc);
5817         // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
5818         (yyval.interm.type).qualifier.storage = EvqIn;
5819     }
5820 #line 5821 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5821     break;
5822
5823   case 161:
5824 #line 1325 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5825     {
5826         parseContext.globalCheck((yyvsp[0].lex).loc, "out");
5827         (yyval.interm.type).init((yyvsp[0].lex).loc);
5828         // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
5829         (yyval.interm.type).qualifier.storage = EvqOut;
5830     }
5831 #line 5832 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5832     break;
5833
5834   case 162:
5835 #line 1331 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5836     {
5837         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
5838         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
5839         parseContext.globalCheck((yyvsp[0].lex).loc, "centroid");
5840         (yyval.interm.type).init((yyvsp[0].lex).loc);
5841         (yyval.interm.type).qualifier.centroid = true;
5842     }
5843 #line 5844 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5844     break;
5845
5846   case 163:
5847 #line 1338 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5848     {
5849         parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
5850         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
5851         (yyval.interm.type).init((yyvsp[0].lex).loc);
5852         (yyval.interm.type).qualifier.patch = true;
5853     }
5854 #line 5855 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5855     break;
5856
5857   case 164:
5858 #line 1344 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5859     {
5860         parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
5861         (yyval.interm.type).init((yyvsp[0].lex).loc);
5862         (yyval.interm.type).qualifier.sample = true;
5863     }
5864 #line 5865 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5865     break;
5866
5867   case 165:
5868 #line 1349 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5869     {
5870         parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
5871         (yyval.interm.type).init((yyvsp[0].lex).loc);
5872         (yyval.interm.type).qualifier.storage = EvqUniform;
5873     }
5874 #line 5875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5875     break;
5876
5877   case 166:
5878 #line 1354 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5879     {
5880         parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
5881         (yyval.interm.type).init((yyvsp[0].lex).loc);
5882         (yyval.interm.type).qualifier.storage = EvqBuffer;
5883     }
5884 #line 5885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5885     break;
5886
5887   case 167:
5888 #line 1359 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5889     {
5890 #ifdef NV_EXTENSIONS
5891         parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
5892         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectNVMask | EShLangClosestHitNVMask
5893             | EShLangAnyHitNVMask), "hitAttributeNV");
5894         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV");
5895         (yyval.interm.type).init((yyvsp[0].lex).loc);
5896         (yyval.interm.type).qualifier.storage = EvqHitAttrNV;
5897 #endif
5898     }
5899 #line 5900 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5900     break;
5901
5902   case 168:
5903 #line 1369 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5904     {
5905 #ifdef NV_EXTENSIONS
5906         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV");
5907         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangClosestHitNVMask |
5908             EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadNV");
5909         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV");
5910         (yyval.interm.type).init((yyvsp[0].lex).loc);
5911         (yyval.interm.type).qualifier.storage = EvqPayloadNV;
5912 #endif
5913     }
5914 #line 5915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5915     break;
5916
5917   case 169:
5918 #line 1379 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5919     {
5920 #ifdef NV_EXTENSIONS
5921         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV");
5922         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitNVMask |
5923             EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadInNV");
5924         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV");
5925         (yyval.interm.type).init((yyvsp[0].lex).loc);
5926         (yyval.interm.type).qualifier.storage = EvqPayloadInNV;
5927 #endif
5928     }
5929 #line 5930 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5930     break;
5931
5932   case 170:
5933 #line 1389 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5934     {
5935 #ifdef NV_EXTENSIONS
5936         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV");
5937         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenNVMask |
5938             EShLangClosestHitNVMask | EShLangMissNVMask | EShLangCallableNVMask), "callableDataNV");
5939         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV");
5940         (yyval.interm.type).init((yyvsp[0].lex).loc);
5941         (yyval.interm.type).qualifier.storage = EvqCallableDataNV;
5942 #endif
5943     }
5944 #line 5945 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5945     break;
5946
5947   case 171:
5948 #line 1399 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5949     {
5950 #ifdef NV_EXTENSIONS
5951         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV");
5952         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableNVMask), "callableDataInNV");
5953         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV");
5954         (yyval.interm.type).init((yyvsp[0].lex).loc);
5955         (yyval.interm.type).qualifier.storage = EvqCallableDataInNV;
5956 #endif
5957     }
5958 #line 5959 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5959     break;
5960
5961   case 172:
5962 #line 1408 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5963     {
5964         parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
5965         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
5966         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared");
5967 #ifdef NV_EXTENSIONS
5968         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared");
5969 #else
5970         parseContext.requireStage((yyvsp[0].lex).loc, EShLangCompute, "shared");
5971 #endif
5972         (yyval.interm.type).init((yyvsp[0].lex).loc);
5973         (yyval.interm.type).qualifier.storage = EvqShared;
5974     }
5975 #line 5976 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5976     break;
5977
5978   case 173:
5979 #line 1420 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5980     {
5981         (yyval.interm.type).init((yyvsp[0].lex).loc);
5982         (yyval.interm.type).qualifier.coherent = true;
5983     }
5984 #line 5985 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5985     break;
5986
5987   case 174:
5988 #line 1424 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5989     {
5990         (yyval.interm.type).init((yyvsp[0].lex).loc);
5991         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
5992         (yyval.interm.type).qualifier.devicecoherent = true;
5993     }
5994 #line 5995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
5995     break;
5996
5997   case 175:
5998 #line 1429 "MachineIndependent/glslang.y" /* yacc.c:1646  */
5999     {
6000         (yyval.interm.type).init((yyvsp[0].lex).loc);
6001         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent");
6002         (yyval.interm.type).qualifier.queuefamilycoherent = true;
6003     }
6004 #line 6005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6005     break;
6006
6007   case 176:
6008 #line 1434 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6009     {
6010         (yyval.interm.type).init((yyvsp[0].lex).loc);
6011         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent");
6012         (yyval.interm.type).qualifier.workgroupcoherent = true;
6013     }
6014 #line 6015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6015     break;
6016
6017   case 177:
6018 #line 1439 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6019     {
6020         (yyval.interm.type).init((yyvsp[0].lex).loc);
6021         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent");
6022         (yyval.interm.type).qualifier.subgroupcoherent = true;
6023     }
6024 #line 6025 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6025     break;
6026
6027   case 178:
6028 #line 1444 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6029     {
6030         (yyval.interm.type).init((yyvsp[0].lex).loc);
6031         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate");
6032         (yyval.interm.type).qualifier.nonprivate = true;
6033     }
6034 #line 6035 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6035     break;
6036
6037   case 179:
6038 #line 1449 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6039     {
6040         (yyval.interm.type).init((yyvsp[0].lex).loc);
6041         (yyval.interm.type).qualifier.volatil = true;
6042     }
6043 #line 6044 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6044     break;
6045
6046   case 180:
6047 #line 1453 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6048     {
6049         (yyval.interm.type).init((yyvsp[0].lex).loc);
6050         (yyval.interm.type).qualifier.restrict = true;
6051     }
6052 #line 6053 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6053     break;
6054
6055   case 181:
6056 #line 1457 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6057     {
6058         (yyval.interm.type).init((yyvsp[0].lex).loc);
6059         (yyval.interm.type).qualifier.readonly = true;
6060     }
6061 #line 6062 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6062     break;
6063
6064   case 182:
6065 #line 1461 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6066     {
6067         (yyval.interm.type).init((yyvsp[0].lex).loc);
6068         (yyval.interm.type).qualifier.writeonly = true;
6069     }
6070 #line 6071 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6071     break;
6072
6073   case 183:
6074 #line 1465 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6075     {
6076         parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine");
6077         parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine");
6078         parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine");
6079         (yyval.interm.type).init((yyvsp[0].lex).loc);
6080     }
6081 #line 6082 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6082     break;
6083
6084   case 184:
6085 #line 1471 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6086     {
6087         parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine");
6088         parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine");
6089         parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine");
6090         (yyval.interm.type).init((yyvsp[-3].lex).loc);
6091     }
6092 #line 6093 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6093     break;
6094
6095   case 185:
6096 #line 1480 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6097     {
6098         (yyval.interm.type).init((yyvsp[0].lex).loc);
6099         (yyval.interm.type).qualifier.nonUniform = true;
6100     }
6101 #line 6102 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6102     break;
6103
6104   case 186:
6105 #line 1487 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6106     {
6107         // TODO
6108     }
6109 #line 6110 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6110     break;
6111
6112   case 187:
6113 #line 1490 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6114     {
6115         // TODO: 4.0 semantics: subroutines
6116         // 1) make sure each identifier is a type declared earlier with SUBROUTINE
6117         // 2) save all of the identifiers for future comparison with the declared function
6118     }
6119 #line 6120 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6120     break;
6121
6122   case 188:
6123 #line 1498 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6124     {
6125         (yyval.interm.type) = (yyvsp[-1].interm.type);
6126         (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
6127         (yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters);
6128     }
6129 #line 6130 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6130     break;
6131
6132   case 189:
6133 #line 1503 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6134     {
6135         parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes);
6136         (yyval.interm.type) = (yyvsp[-2].interm.type);
6137         (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
6138         (yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters);
6139         (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
6140     }
6141 #line 6142 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6142     break;
6143
6144   case 190:
6145 #line 1513 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6146     {
6147         (yyval.interm).loc = (yyvsp[-1].lex).loc;
6148         (yyval.interm).arraySizes = new TArraySizes;
6149         (yyval.interm).arraySizes->addInnerSize();
6150     }
6151 #line 6152 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6152     break;
6153
6154   case 191:
6155 #line 1518 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6156     {
6157         (yyval.interm).loc = (yyvsp[-2].lex).loc;
6158         (yyval.interm).arraySizes = new TArraySizes;
6159
6160         TArraySize size;
6161         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
6162         (yyval.interm).arraySizes->addInnerSize(size);
6163     }
6164 #line 6165 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6165     break;
6166
6167   case 192:
6168 #line 1526 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6169     {
6170         (yyval.interm) = (yyvsp[-2].interm);
6171         (yyval.interm).arraySizes->addInnerSize();
6172     }
6173 #line 6174 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6174     break;
6175
6176   case 193:
6177 #line 1530 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6178     {
6179         (yyval.interm) = (yyvsp[-3].interm);
6180
6181         TArraySize size;
6182         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
6183         (yyval.interm).arraySizes->addInnerSize(size);
6184     }
6185 #line 6186 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6186     break;
6187
6188   case 194:
6189 #line 1540 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6190     {
6191         (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters);
6192     }
6193 #line 6194 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6194     break;
6195
6196   case 195:
6197 #line 1543 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6198     {
6199         (yyval.interm.typeParameters) = 0;
6200     }
6201 #line 6202 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6202     break;
6203
6204   case 196:
6205 #line 1549 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6206     {
6207         (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters);
6208     }
6209 #line 6210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6210     break;
6211
6212   case 197:
6213 #line 1555 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6214     {
6215         (yyval.interm.typeParameters) = new TArraySizes;
6216
6217         TArraySize size;
6218         parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
6219         (yyval.interm.typeParameters)->addInnerSize(size);
6220     }
6221 #line 6222 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6222     break;
6223
6224   case 198:
6225 #line 1562 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6226     {
6227         (yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters);
6228
6229         TArraySize size;
6230         parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
6231         (yyval.interm.typeParameters)->addInnerSize(size);
6232     }
6233 #line 6234 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6234     break;
6235
6236   case 199:
6237 #line 1572 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6238     {
6239         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6240         (yyval.interm.type).basicType = EbtVoid;
6241     }
6242 #line 6243 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6243     break;
6244
6245   case 200:
6246 #line 1576 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6247     {
6248         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6249         (yyval.interm.type).basicType = EbtFloat;
6250     }
6251 #line 6252 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6252     break;
6253
6254   case 201:
6255 #line 1580 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6256     {
6257         parseContext.doubleCheck((yyvsp[0].lex).loc, "double");
6258         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6259         (yyval.interm.type).basicType = EbtDouble;
6260     }
6261 #line 6262 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6262     break;
6263
6264   case 202:
6265 #line 1585 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6266     {
6267         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel());
6268         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6269         (yyval.interm.type).basicType = EbtFloat16;
6270     }
6271 #line 6272 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6272     break;
6273
6274   case 203:
6275 #line 1590 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6276     {
6277         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel());
6278         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6279         (yyval.interm.type).basicType = EbtFloat;
6280     }
6281 #line 6282 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6282     break;
6283
6284   case 204:
6285 #line 1595 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6286     {
6287         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel());
6288         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6289         (yyval.interm.type).basicType = EbtDouble;
6290     }
6291 #line 6292 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6292     break;
6293
6294   case 205:
6295 #line 1600 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6296     {
6297         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6298         (yyval.interm.type).basicType = EbtInt;
6299     }
6300 #line 6301 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6301     break;
6302
6303   case 206:
6304 #line 1604 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6305     {
6306         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
6307         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6308         (yyval.interm.type).basicType = EbtUint;
6309     }
6310 #line 6311 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6311     break;
6312
6313   case 207:
6314 #line 1609 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6315     {
6316         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
6317         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6318         (yyval.interm.type).basicType = EbtInt8;
6319     }
6320 #line 6321 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6321     break;
6322
6323   case 208:
6324 #line 1614 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6325     {
6326         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6327         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6328         (yyval.interm.type).basicType = EbtUint8;
6329     }
6330 #line 6331 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6331     break;
6332
6333   case 209:
6334 #line 1619 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6335     {
6336         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
6337         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6338         (yyval.interm.type).basicType = EbtInt16;
6339     }
6340 #line 6341 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6341     break;
6342
6343   case 210:
6344 #line 1624 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6345     {
6346         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6347         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6348         (yyval.interm.type).basicType = EbtUint16;
6349     }
6350 #line 6351 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6351     break;
6352
6353   case 211:
6354 #line 1629 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6355     {
6356         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
6357         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6358         (yyval.interm.type).basicType = EbtInt;
6359     }
6360 #line 6361 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6361     break;
6362
6363   case 212:
6364 #line 1634 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6365     {
6366         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6367         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6368         (yyval.interm.type).basicType = EbtUint;
6369     }
6370 #line 6371 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6371     break;
6372
6373   case 213:
6374 #line 1639 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6375     {
6376         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
6377         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6378         (yyval.interm.type).basicType = EbtInt64;
6379     }
6380 #line 6381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6381     break;
6382
6383   case 214:
6384 #line 1644 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6385     {
6386         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6387         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6388         (yyval.interm.type).basicType = EbtUint64;
6389     }
6390 #line 6391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6391     break;
6392
6393   case 215:
6394 #line 1649 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6395     {
6396         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6397         (yyval.interm.type).basicType = EbtBool;
6398     }
6399 #line 6400 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6400     break;
6401
6402   case 216:
6403 #line 1653 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6404     {
6405         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6406         (yyval.interm.type).basicType = EbtFloat;
6407         (yyval.interm.type).setVector(2);
6408     }
6409 #line 6410 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6410     break;
6411
6412   case 217:
6413 #line 1658 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6414     {
6415         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6416         (yyval.interm.type).basicType = EbtFloat;
6417         (yyval.interm.type).setVector(3);
6418     }
6419 #line 6420 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6420     break;
6421
6422   case 218:
6423 #line 1663 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6424     {
6425         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6426         (yyval.interm.type).basicType = EbtFloat;
6427         (yyval.interm.type).setVector(4);
6428     }
6429 #line 6430 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6430     break;
6431
6432   case 219:
6433 #line 1668 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6434     {
6435         parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
6436         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6437         (yyval.interm.type).basicType = EbtDouble;
6438         (yyval.interm.type).setVector(2);
6439     }
6440 #line 6441 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6441     break;
6442
6443   case 220:
6444 #line 1674 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6445     {
6446         parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
6447         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6448         (yyval.interm.type).basicType = EbtDouble;
6449         (yyval.interm.type).setVector(3);
6450     }
6451 #line 6452 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6452     break;
6453
6454   case 221:
6455 #line 1680 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6456     {
6457         parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
6458         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6459         (yyval.interm.type).basicType = EbtDouble;
6460         (yyval.interm.type).setVector(4);
6461     }
6462 #line 6463 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6463     break;
6464
6465   case 222:
6466 #line 1686 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6467     {
6468         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
6469         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6470         (yyval.interm.type).basicType = EbtFloat16;
6471         (yyval.interm.type).setVector(2);
6472     }
6473 #line 6474 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6474     break;
6475
6476   case 223:
6477 #line 1692 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6478     {
6479         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
6480         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6481         (yyval.interm.type).basicType = EbtFloat16;
6482         (yyval.interm.type).setVector(3);
6483     }
6484 #line 6485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6485     break;
6486
6487   case 224:
6488 #line 1698 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6489     {
6490         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
6491         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6492         (yyval.interm.type).basicType = EbtFloat16;
6493         (yyval.interm.type).setVector(4);
6494     }
6495 #line 6496 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6496     break;
6497
6498   case 225:
6499 #line 1704 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6500     {
6501         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
6502         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6503         (yyval.interm.type).basicType = EbtFloat;
6504         (yyval.interm.type).setVector(2);
6505     }
6506 #line 6507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6507     break;
6508
6509   case 226:
6510 #line 1710 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6511     {
6512         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
6513         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6514         (yyval.interm.type).basicType = EbtFloat;
6515         (yyval.interm.type).setVector(3);
6516     }
6517 #line 6518 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6518     break;
6519
6520   case 227:
6521 #line 1716 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6522     {
6523         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
6524         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6525         (yyval.interm.type).basicType = EbtFloat;
6526         (yyval.interm.type).setVector(4);
6527     }
6528 #line 6529 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6529     break;
6530
6531   case 228:
6532 #line 1722 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6533     {
6534         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
6535         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6536         (yyval.interm.type).basicType = EbtDouble;
6537         (yyval.interm.type).setVector(2);
6538     }
6539 #line 6540 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6540     break;
6541
6542   case 229:
6543 #line 1728 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6544     {
6545         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
6546         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6547         (yyval.interm.type).basicType = EbtDouble;
6548         (yyval.interm.type).setVector(3);
6549     }
6550 #line 6551 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6551     break;
6552
6553   case 230:
6554 #line 1734 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6555     {
6556         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
6557         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6558         (yyval.interm.type).basicType = EbtDouble;
6559         (yyval.interm.type).setVector(4);
6560     }
6561 #line 6562 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6562     break;
6563
6564   case 231:
6565 #line 1740 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6566     {
6567         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6568         (yyval.interm.type).basicType = EbtBool;
6569         (yyval.interm.type).setVector(2);
6570     }
6571 #line 6572 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6572     break;
6573
6574   case 232:
6575 #line 1745 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6576     {
6577         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6578         (yyval.interm.type).basicType = EbtBool;
6579         (yyval.interm.type).setVector(3);
6580     }
6581 #line 6582 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6582     break;
6583
6584   case 233:
6585 #line 1750 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6586     {
6587         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6588         (yyval.interm.type).basicType = EbtBool;
6589         (yyval.interm.type).setVector(4);
6590     }
6591 #line 6592 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6592     break;
6593
6594   case 234:
6595 #line 1755 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6596     {
6597         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6598         (yyval.interm.type).basicType = EbtInt;
6599         (yyval.interm.type).setVector(2);
6600     }
6601 #line 6602 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6602     break;
6603
6604   case 235:
6605 #line 1760 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6606     {
6607         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6608         (yyval.interm.type).basicType = EbtInt;
6609         (yyval.interm.type).setVector(3);
6610     }
6611 #line 6612 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6612     break;
6613
6614   case 236:
6615 #line 1765 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6616     {
6617         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6618         (yyval.interm.type).basicType = EbtInt;
6619         (yyval.interm.type).setVector(4);
6620     }
6621 #line 6622 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6622     break;
6623
6624   case 237:
6625 #line 1770 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6626     {
6627         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6628         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6629         (yyval.interm.type).basicType = EbtInt8;
6630         (yyval.interm.type).setVector(2);
6631     }
6632 #line 6633 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6633     break;
6634
6635   case 238:
6636 #line 1776 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6637     {
6638         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6639         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6640         (yyval.interm.type).basicType = EbtInt8;
6641         (yyval.interm.type).setVector(3);
6642     }
6643 #line 6644 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6644     break;
6645
6646   case 239:
6647 #line 1782 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6648     {
6649         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6650         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6651         (yyval.interm.type).basicType = EbtInt8;
6652         (yyval.interm.type).setVector(4);
6653     }
6654 #line 6655 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6655     break;
6656
6657   case 240:
6658 #line 1788 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6659     {
6660         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6661         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6662         (yyval.interm.type).basicType = EbtInt16;
6663         (yyval.interm.type).setVector(2);
6664     }
6665 #line 6666 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6666     break;
6667
6668   case 241:
6669 #line 1794 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6670     {
6671         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6672         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6673         (yyval.interm.type).basicType = EbtInt16;
6674         (yyval.interm.type).setVector(3);
6675     }
6676 #line 6677 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6677     break;
6678
6679   case 242:
6680 #line 1800 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6681     {
6682         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6683         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6684         (yyval.interm.type).basicType = EbtInt16;
6685         (yyval.interm.type).setVector(4);
6686     }
6687 #line 6688 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6688     break;
6689
6690   case 243:
6691 #line 1806 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6692     {
6693         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6694         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6695         (yyval.interm.type).basicType = EbtInt;
6696         (yyval.interm.type).setVector(2);
6697     }
6698 #line 6699 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6699     break;
6700
6701   case 244:
6702 #line 1812 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6703     {
6704         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6705         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6706         (yyval.interm.type).basicType = EbtInt;
6707         (yyval.interm.type).setVector(3);
6708     }
6709 #line 6710 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6710     break;
6711
6712   case 245:
6713 #line 1818 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6714     {
6715         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6716         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6717         (yyval.interm.type).basicType = EbtInt;
6718         (yyval.interm.type).setVector(4);
6719     }
6720 #line 6721 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6721     break;
6722
6723   case 246:
6724 #line 1824 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6725     {
6726         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
6727         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6728         (yyval.interm.type).basicType = EbtInt64;
6729         (yyval.interm.type).setVector(2);
6730     }
6731 #line 6732 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6732     break;
6733
6734   case 247:
6735 #line 1830 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6736     {
6737         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
6738         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6739         (yyval.interm.type).basicType = EbtInt64;
6740         (yyval.interm.type).setVector(3);
6741     }
6742 #line 6743 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6743     break;
6744
6745   case 248:
6746 #line 1836 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6747     {
6748         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
6749         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6750         (yyval.interm.type).basicType = EbtInt64;
6751         (yyval.interm.type).setVector(4);
6752     }
6753 #line 6754 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6754     break;
6755
6756   case 249:
6757 #line 1842 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6758     {
6759         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6760         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6761         (yyval.interm.type).basicType = EbtUint;
6762         (yyval.interm.type).setVector(2);
6763     }
6764 #line 6765 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6765     break;
6766
6767   case 250:
6768 #line 1848 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6769     {
6770         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6771         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6772         (yyval.interm.type).basicType = EbtUint;
6773         (yyval.interm.type).setVector(3);
6774     }
6775 #line 6776 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6776     break;
6777
6778   case 251:
6779 #line 1854 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6780     {
6781         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6782         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6783         (yyval.interm.type).basicType = EbtUint;
6784         (yyval.interm.type).setVector(4);
6785     }
6786 #line 6787 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6787     break;
6788
6789   case 252:
6790 #line 1860 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6791     {
6792         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6793         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6794         (yyval.interm.type).basicType = EbtUint8;
6795         (yyval.interm.type).setVector(2);
6796     }
6797 #line 6798 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6798     break;
6799
6800   case 253:
6801 #line 1866 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6802     {
6803         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6804         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6805         (yyval.interm.type).basicType = EbtUint8;
6806         (yyval.interm.type).setVector(3);
6807     }
6808 #line 6809 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6809     break;
6810
6811   case 254:
6812 #line 1872 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6813     {
6814         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6815         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6816         (yyval.interm.type).basicType = EbtUint8;
6817         (yyval.interm.type).setVector(4);
6818     }
6819 #line 6820 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6820     break;
6821
6822   case 255:
6823 #line 1878 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6824     {
6825         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6826         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6827         (yyval.interm.type).basicType = EbtUint16;
6828         (yyval.interm.type).setVector(2);
6829     }
6830 #line 6831 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6831     break;
6832
6833   case 256:
6834 #line 1884 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6835     {
6836         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6837         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6838         (yyval.interm.type).basicType = EbtUint16;
6839         (yyval.interm.type).setVector(3);
6840     }
6841 #line 6842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6842     break;
6843
6844   case 257:
6845 #line 1890 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6846     {
6847         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6848         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6849         (yyval.interm.type).basicType = EbtUint16;
6850         (yyval.interm.type).setVector(4);
6851     }
6852 #line 6853 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6853     break;
6854
6855   case 258:
6856 #line 1896 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6857     {
6858         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6859         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6860         (yyval.interm.type).basicType = EbtUint;
6861         (yyval.interm.type).setVector(2);
6862     }
6863 #line 6864 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6864     break;
6865
6866   case 259:
6867 #line 1902 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6868     {
6869         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6870         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6871         (yyval.interm.type).basicType = EbtUint;
6872         (yyval.interm.type).setVector(3);
6873     }
6874 #line 6875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6875     break;
6876
6877   case 260:
6878 #line 1908 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6879     {
6880         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6881         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6882         (yyval.interm.type).basicType = EbtUint;
6883         (yyval.interm.type).setVector(4);
6884     }
6885 #line 6886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6886     break;
6887
6888   case 261:
6889 #line 1914 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6890     {
6891         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6892         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6893         (yyval.interm.type).basicType = EbtUint64;
6894         (yyval.interm.type).setVector(2);
6895     }
6896 #line 6897 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6897     break;
6898
6899   case 262:
6900 #line 1920 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6901     {
6902         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6903         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6904         (yyval.interm.type).basicType = EbtUint64;
6905         (yyval.interm.type).setVector(3);
6906     }
6907 #line 6908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6908     break;
6909
6910   case 263:
6911 #line 1926 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6912     {
6913         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6914         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6915         (yyval.interm.type).basicType = EbtUint64;
6916         (yyval.interm.type).setVector(4);
6917     }
6918 #line 6919 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6919     break;
6920
6921   case 264:
6922 #line 1932 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6923     {
6924         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6925         (yyval.interm.type).basicType = EbtFloat;
6926         (yyval.interm.type).setMatrix(2, 2);
6927     }
6928 #line 6929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6929     break;
6930
6931   case 265:
6932 #line 1937 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6933     {
6934         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6935         (yyval.interm.type).basicType = EbtFloat;
6936         (yyval.interm.type).setMatrix(3, 3);
6937     }
6938 #line 6939 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6939     break;
6940
6941   case 266:
6942 #line 1942 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6943     {
6944         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6945         (yyval.interm.type).basicType = EbtFloat;
6946         (yyval.interm.type).setMatrix(4, 4);
6947     }
6948 #line 6949 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6949     break;
6950
6951   case 267:
6952 #line 1947 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6953     {
6954         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6955         (yyval.interm.type).basicType = EbtFloat;
6956         (yyval.interm.type).setMatrix(2, 2);
6957     }
6958 #line 6959 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6959     break;
6960
6961   case 268:
6962 #line 1952 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6963     {
6964         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6965         (yyval.interm.type).basicType = EbtFloat;
6966         (yyval.interm.type).setMatrix(2, 3);
6967     }
6968 #line 6969 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6969     break;
6970
6971   case 269:
6972 #line 1957 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6973     {
6974         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6975         (yyval.interm.type).basicType = EbtFloat;
6976         (yyval.interm.type).setMatrix(2, 4);
6977     }
6978 #line 6979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6979     break;
6980
6981   case 270:
6982 #line 1962 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6983     {
6984         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6985         (yyval.interm.type).basicType = EbtFloat;
6986         (yyval.interm.type).setMatrix(3, 2);
6987     }
6988 #line 6989 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6989     break;
6990
6991   case 271:
6992 #line 1967 "MachineIndependent/glslang.y" /* yacc.c:1646  */
6993     {
6994         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6995         (yyval.interm.type).basicType = EbtFloat;
6996         (yyval.interm.type).setMatrix(3, 3);
6997     }
6998 #line 6999 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
6999     break;
7000
7001   case 272:
7002 #line 1972 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7003     {
7004         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7005         (yyval.interm.type).basicType = EbtFloat;
7006         (yyval.interm.type).setMatrix(3, 4);
7007     }
7008 #line 7009 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7009     break;
7010
7011   case 273:
7012 #line 1977 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7013     {
7014         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7015         (yyval.interm.type).basicType = EbtFloat;
7016         (yyval.interm.type).setMatrix(4, 2);
7017     }
7018 #line 7019 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7019     break;
7020
7021   case 274:
7022 #line 1982 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7023     {
7024         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7025         (yyval.interm.type).basicType = EbtFloat;
7026         (yyval.interm.type).setMatrix(4, 3);
7027     }
7028 #line 7029 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7029     break;
7030
7031   case 275:
7032 #line 1987 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7033     {
7034         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7035         (yyval.interm.type).basicType = EbtFloat;
7036         (yyval.interm.type).setMatrix(4, 4);
7037     }
7038 #line 7039 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7039     break;
7040
7041   case 276:
7042 #line 1992 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7043     {
7044         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7045         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7046         (yyval.interm.type).basicType = EbtDouble;
7047         (yyval.interm.type).setMatrix(2, 2);
7048     }
7049 #line 7050 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7050     break;
7051
7052   case 277:
7053 #line 1998 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7054     {
7055         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7056         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7057         (yyval.interm.type).basicType = EbtDouble;
7058         (yyval.interm.type).setMatrix(3, 3);
7059     }
7060 #line 7061 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7061     break;
7062
7063   case 278:
7064 #line 2004 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7065     {
7066         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7067         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7068         (yyval.interm.type).basicType = EbtDouble;
7069         (yyval.interm.type).setMatrix(4, 4);
7070     }
7071 #line 7072 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7072     break;
7073
7074   case 279:
7075 #line 2010 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7076     {
7077         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7078         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7079         (yyval.interm.type).basicType = EbtDouble;
7080         (yyval.interm.type).setMatrix(2, 2);
7081     }
7082 #line 7083 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7083     break;
7084
7085   case 280:
7086 #line 2016 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7087     {
7088         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7089         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7090         (yyval.interm.type).basicType = EbtDouble;
7091         (yyval.interm.type).setMatrix(2, 3);
7092     }
7093 #line 7094 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7094     break;
7095
7096   case 281:
7097 #line 2022 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7098     {
7099         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7100         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7101         (yyval.interm.type).basicType = EbtDouble;
7102         (yyval.interm.type).setMatrix(2, 4);
7103     }
7104 #line 7105 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7105     break;
7106
7107   case 282:
7108 #line 2028 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7109     {
7110         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7111         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7112         (yyval.interm.type).basicType = EbtDouble;
7113         (yyval.interm.type).setMatrix(3, 2);
7114     }
7115 #line 7116 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7116     break;
7117
7118   case 283:
7119 #line 2034 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7120     {
7121         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7122         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7123         (yyval.interm.type).basicType = EbtDouble;
7124         (yyval.interm.type).setMatrix(3, 3);
7125     }
7126 #line 7127 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7127     break;
7128
7129   case 284:
7130 #line 2040 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7131     {
7132         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7133         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7134         (yyval.interm.type).basicType = EbtDouble;
7135         (yyval.interm.type).setMatrix(3, 4);
7136     }
7137 #line 7138 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7138     break;
7139
7140   case 285:
7141 #line 2046 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7142     {
7143         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7144         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7145         (yyval.interm.type).basicType = EbtDouble;
7146         (yyval.interm.type).setMatrix(4, 2);
7147     }
7148 #line 7149 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7149     break;
7150
7151   case 286:
7152 #line 2052 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7153     {
7154         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7155         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7156         (yyval.interm.type).basicType = EbtDouble;
7157         (yyval.interm.type).setMatrix(4, 3);
7158     }
7159 #line 7160 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7160     break;
7161
7162   case 287:
7163 #line 2058 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7164     {
7165         parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7166         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7167         (yyval.interm.type).basicType = EbtDouble;
7168         (yyval.interm.type).setMatrix(4, 4);
7169     }
7170 #line 7171 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7171     break;
7172
7173   case 288:
7174 #line 2064 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7175     {
7176         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7177         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7178         (yyval.interm.type).basicType = EbtFloat16;
7179         (yyval.interm.type).setMatrix(2, 2);
7180     }
7181 #line 7182 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7182     break;
7183
7184   case 289:
7185 #line 2070 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7186     {
7187         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7188         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7189         (yyval.interm.type).basicType = EbtFloat16;
7190         (yyval.interm.type).setMatrix(3, 3);
7191     }
7192 #line 7193 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7193     break;
7194
7195   case 290:
7196 #line 2076 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7197     {
7198         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7199         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7200         (yyval.interm.type).basicType = EbtFloat16;
7201         (yyval.interm.type).setMatrix(4, 4);
7202     }
7203 #line 7204 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7204     break;
7205
7206   case 291:
7207 #line 2082 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7208     {
7209         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7210         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7211         (yyval.interm.type).basicType = EbtFloat16;
7212         (yyval.interm.type).setMatrix(2, 2);
7213     }
7214 #line 7215 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7215     break;
7216
7217   case 292:
7218 #line 2088 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7219     {
7220         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7221         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7222         (yyval.interm.type).basicType = EbtFloat16;
7223         (yyval.interm.type).setMatrix(2, 3);
7224     }
7225 #line 7226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7226     break;
7227
7228   case 293:
7229 #line 2094 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7230     {
7231         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7232         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7233         (yyval.interm.type).basicType = EbtFloat16;
7234         (yyval.interm.type).setMatrix(2, 4);
7235     }
7236 #line 7237 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7237     break;
7238
7239   case 294:
7240 #line 2100 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7241     {
7242         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7243         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7244         (yyval.interm.type).basicType = EbtFloat16;
7245         (yyval.interm.type).setMatrix(3, 2);
7246     }
7247 #line 7248 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7248     break;
7249
7250   case 295:
7251 #line 2106 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7252     {
7253         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7254         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7255         (yyval.interm.type).basicType = EbtFloat16;
7256         (yyval.interm.type).setMatrix(3, 3);
7257     }
7258 #line 7259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7259     break;
7260
7261   case 296:
7262 #line 2112 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7263     {
7264         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7265         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7266         (yyval.interm.type).basicType = EbtFloat16;
7267         (yyval.interm.type).setMatrix(3, 4);
7268     }
7269 #line 7270 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7270     break;
7271
7272   case 297:
7273 #line 2118 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7274     {
7275         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7276         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7277         (yyval.interm.type).basicType = EbtFloat16;
7278         (yyval.interm.type).setMatrix(4, 2);
7279     }
7280 #line 7281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7281     break;
7282
7283   case 298:
7284 #line 2124 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7285     {
7286         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7287         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7288         (yyval.interm.type).basicType = EbtFloat16;
7289         (yyval.interm.type).setMatrix(4, 3);
7290     }
7291 #line 7292 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7292     break;
7293
7294   case 299:
7295 #line 2130 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7296     {
7297         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7298         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7299         (yyval.interm.type).basicType = EbtFloat16;
7300         (yyval.interm.type).setMatrix(4, 4);
7301     }
7302 #line 7303 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7303     break;
7304
7305   case 300:
7306 #line 2136 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7307     {
7308         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7309         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7310         (yyval.interm.type).basicType = EbtFloat;
7311         (yyval.interm.type).setMatrix(2, 2);
7312     }
7313 #line 7314 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7314     break;
7315
7316   case 301:
7317 #line 2142 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7318     {
7319         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7320         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7321         (yyval.interm.type).basicType = EbtFloat;
7322         (yyval.interm.type).setMatrix(3, 3);
7323     }
7324 #line 7325 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7325     break;
7326
7327   case 302:
7328 #line 2148 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7329     {
7330         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7331         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7332         (yyval.interm.type).basicType = EbtFloat;
7333         (yyval.interm.type).setMatrix(4, 4);
7334     }
7335 #line 7336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7336     break;
7337
7338   case 303:
7339 #line 2154 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7340     {
7341         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7342         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7343         (yyval.interm.type).basicType = EbtFloat;
7344         (yyval.interm.type).setMatrix(2, 2);
7345     }
7346 #line 7347 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7347     break;
7348
7349   case 304:
7350 #line 2160 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7351     {
7352         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7353         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7354         (yyval.interm.type).basicType = EbtFloat;
7355         (yyval.interm.type).setMatrix(2, 3);
7356     }
7357 #line 7358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7358     break;
7359
7360   case 305:
7361 #line 2166 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7362     {
7363         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7364         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7365         (yyval.interm.type).basicType = EbtFloat;
7366         (yyval.interm.type).setMatrix(2, 4);
7367     }
7368 #line 7369 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7369     break;
7370
7371   case 306:
7372 #line 2172 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7373     {
7374         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7375         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7376         (yyval.interm.type).basicType = EbtFloat;
7377         (yyval.interm.type).setMatrix(3, 2);
7378     }
7379 #line 7380 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7380     break;
7381
7382   case 307:
7383 #line 2178 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7384     {
7385         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7386         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7387         (yyval.interm.type).basicType = EbtFloat;
7388         (yyval.interm.type).setMatrix(3, 3);
7389     }
7390 #line 7391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7391     break;
7392
7393   case 308:
7394 #line 2184 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7395     {
7396         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7397         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7398         (yyval.interm.type).basicType = EbtFloat;
7399         (yyval.interm.type).setMatrix(3, 4);
7400     }
7401 #line 7402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7402     break;
7403
7404   case 309:
7405 #line 2190 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7406     {
7407         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7408         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7409         (yyval.interm.type).basicType = EbtFloat;
7410         (yyval.interm.type).setMatrix(4, 2);
7411     }
7412 #line 7413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7413     break;
7414
7415   case 310:
7416 #line 2196 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7417     {
7418         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7419         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7420         (yyval.interm.type).basicType = EbtFloat;
7421         (yyval.interm.type).setMatrix(4, 3);
7422     }
7423 #line 7424 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7424     break;
7425
7426   case 311:
7427 #line 2202 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7428     {
7429         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7430         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7431         (yyval.interm.type).basicType = EbtFloat;
7432         (yyval.interm.type).setMatrix(4, 4);
7433     }
7434 #line 7435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7435     break;
7436
7437   case 312:
7438 #line 2208 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7439     {
7440         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7441         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7442         (yyval.interm.type).basicType = EbtDouble;
7443         (yyval.interm.type).setMatrix(2, 2);
7444     }
7445 #line 7446 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7446     break;
7447
7448   case 313:
7449 #line 2214 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7450     {
7451         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7452         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7453         (yyval.interm.type).basicType = EbtDouble;
7454         (yyval.interm.type).setMatrix(3, 3);
7455     }
7456 #line 7457 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7457     break;
7458
7459   case 314:
7460 #line 2220 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7461     {
7462         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7463         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7464         (yyval.interm.type).basicType = EbtDouble;
7465         (yyval.interm.type).setMatrix(4, 4);
7466     }
7467 #line 7468 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7468     break;
7469
7470   case 315:
7471 #line 2226 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7472     {
7473         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7474         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7475         (yyval.interm.type).basicType = EbtDouble;
7476         (yyval.interm.type).setMatrix(2, 2);
7477     }
7478 #line 7479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7479     break;
7480
7481   case 316:
7482 #line 2232 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7483     {
7484         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7485         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7486         (yyval.interm.type).basicType = EbtDouble;
7487         (yyval.interm.type).setMatrix(2, 3);
7488     }
7489 #line 7490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7490     break;
7491
7492   case 317:
7493 #line 2238 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7494     {
7495         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7496         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7497         (yyval.interm.type).basicType = EbtDouble;
7498         (yyval.interm.type).setMatrix(2, 4);
7499     }
7500 #line 7501 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7501     break;
7502
7503   case 318:
7504 #line 2244 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7505     {
7506         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7507         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7508         (yyval.interm.type).basicType = EbtDouble;
7509         (yyval.interm.type).setMatrix(3, 2);
7510     }
7511 #line 7512 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7512     break;
7513
7514   case 319:
7515 #line 2250 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7516     {
7517         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7518         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7519         (yyval.interm.type).basicType = EbtDouble;
7520         (yyval.interm.type).setMatrix(3, 3);
7521     }
7522 #line 7523 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7523     break;
7524
7525   case 320:
7526 #line 2256 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7527     {
7528         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7529         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7530         (yyval.interm.type).basicType = EbtDouble;
7531         (yyval.interm.type).setMatrix(3, 4);
7532     }
7533 #line 7534 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7534     break;
7535
7536   case 321:
7537 #line 2262 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7538     {
7539         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7540         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7541         (yyval.interm.type).basicType = EbtDouble;
7542         (yyval.interm.type).setMatrix(4, 2);
7543     }
7544 #line 7545 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7545     break;
7546
7547   case 322:
7548 #line 2268 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7549     {
7550         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7551         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7552         (yyval.interm.type).basicType = EbtDouble;
7553         (yyval.interm.type).setMatrix(4, 3);
7554     }
7555 #line 7556 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7556     break;
7557
7558   case 323:
7559 #line 2274 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7560     {
7561         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7562         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7563         (yyval.interm.type).basicType = EbtDouble;
7564         (yyval.interm.type).setMatrix(4, 4);
7565     }
7566 #line 7567 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7567     break;
7568
7569   case 324:
7570 #line 2280 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7571     {
7572 #ifdef NV_EXTENSIONS
7573        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7574        (yyval.interm.type).basicType = EbtAccStructNV;
7575 #endif
7576     }
7577 #line 7578 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7578     break;
7579
7580   case 325:
7581 #line 2286 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7582     {
7583         parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types");
7584         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7585         (yyval.interm.type).basicType = EbtAtomicUint;
7586     }
7587 #line 7588 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7588     break;
7589
7590   case 326:
7591 #line 2291 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7592     {
7593         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7594         (yyval.interm.type).basicType = EbtSampler;
7595         (yyval.interm.type).sampler.set(EbtFloat, Esd1D);
7596     }
7597 #line 7598 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7598     break;
7599
7600   case 327:
7601 #line 2296 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7602     {
7603         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7604         (yyval.interm.type).basicType = EbtSampler;
7605         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
7606     }
7607 #line 7608 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7608     break;
7609
7610   case 328:
7611 #line 2301 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7612     {
7613         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7614         (yyval.interm.type).basicType = EbtSampler;
7615         (yyval.interm.type).sampler.set(EbtFloat, Esd3D);
7616     }
7617 #line 7618 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7618     break;
7619
7620   case 329:
7621 #line 2306 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7622     {
7623         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7624         (yyval.interm.type).basicType = EbtSampler;
7625         (yyval.interm.type).sampler.set(EbtFloat, EsdCube);
7626     }
7627 #line 7628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7628     break;
7629
7630   case 330:
7631 #line 2311 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7632     {
7633         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7634         (yyval.interm.type).basicType = EbtSampler;
7635         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
7636     }
7637 #line 7638 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7638     break;
7639
7640   case 331:
7641 #line 2316 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7642     {
7643         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7644         (yyval.interm.type).basicType = EbtSampler;
7645         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
7646     }
7647 #line 7648 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7648     break;
7649
7650   case 332:
7651 #line 2321 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7652     {
7653         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7654         (yyval.interm.type).basicType = EbtSampler;
7655         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
7656     }
7657 #line 7658 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7658     break;
7659
7660   case 333:
7661 #line 2326 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7662     {
7663         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7664         (yyval.interm.type).basicType = EbtSampler;
7665         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
7666     }
7667 #line 7668 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7668     break;
7669
7670   case 334:
7671 #line 2331 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7672     {
7673         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7674         (yyval.interm.type).basicType = EbtSampler;
7675         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
7676     }
7677 #line 7678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7678     break;
7679
7680   case 335:
7681 #line 2336 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7682     {
7683         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7684         (yyval.interm.type).basicType = EbtSampler;
7685         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
7686     }
7687 #line 7688 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7688     break;
7689
7690   case 336:
7691 #line 2341 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7692     {
7693         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7694         (yyval.interm.type).basicType = EbtSampler;
7695         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
7696     }
7697 #line 7698 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7698     break;
7699
7700   case 337:
7701 #line 2346 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7702     {
7703         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7704         (yyval.interm.type).basicType = EbtSampler;
7705         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
7706     }
7707 #line 7708 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7708     break;
7709
7710   case 338:
7711 #line 2351 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7712     {
7713         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7714         (yyval.interm.type).basicType = EbtSampler;
7715         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
7716     }
7717 #line 7718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7718     break;
7719
7720   case 339:
7721 #line 2356 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7722     {
7723 #ifdef AMD_EXTENSIONS
7724         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7725         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7726         (yyval.interm.type).basicType = EbtSampler;
7727         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D);
7728 #endif
7729     }
7730 #line 7731 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7731     break;
7732
7733   case 340:
7734 #line 2364 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7735     {
7736 #ifdef AMD_EXTENSIONS
7737         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7738         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7739         (yyval.interm.type).basicType = EbtSampler;
7740         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D);
7741 #endif
7742     }
7743 #line 7744 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7744     break;
7745
7746   case 341:
7747 #line 2372 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7748     {
7749 #ifdef AMD_EXTENSIONS
7750         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7751         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7752         (yyval.interm.type).basicType = EbtSampler;
7753         (yyval.interm.type).sampler.set(EbtFloat16, Esd3D);
7754 #endif
7755     }
7756 #line 7757 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7757     break;
7758
7759   case 342:
7760 #line 2380 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7761     {
7762 #ifdef AMD_EXTENSIONS
7763         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7764         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7765         (yyval.interm.type).basicType = EbtSampler;
7766         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube);
7767 #endif
7768     }
7769 #line 7770 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7770     break;
7771
7772   case 343:
7773 #line 2388 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7774     {
7775 #ifdef AMD_EXTENSIONS
7776         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7777         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7778         (yyval.interm.type).basicType = EbtSampler;
7779         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true);
7780 #endif
7781     }
7782 #line 7783 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7783     break;
7784
7785   case 344:
7786 #line 2396 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7787     {
7788 #ifdef AMD_EXTENSIONS
7789         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7790         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7791         (yyval.interm.type).basicType = EbtSampler;
7792         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true);
7793 #endif
7794     }
7795 #line 7796 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7796     break;
7797
7798   case 345:
7799 #line 2404 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7800     {
7801 #ifdef AMD_EXTENSIONS
7802         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7803         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7804         (yyval.interm.type).basicType = EbtSampler;
7805         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true);
7806 #endif
7807     }
7808 #line 7809 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7809     break;
7810
7811   case 346:
7812 #line 2412 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7813     {
7814 #ifdef AMD_EXTENSIONS
7815         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7816         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7817         (yyval.interm.type).basicType = EbtSampler;
7818         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true);
7819 #endif
7820     }
7821 #line 7822 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7822     break;
7823
7824   case 347:
7825 #line 2420 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7826     {
7827 #ifdef AMD_EXTENSIONS
7828         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7829         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7830         (yyval.interm.type).basicType = EbtSampler;
7831         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true);
7832 #endif
7833     }
7834 #line 7835 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7835     break;
7836
7837   case 348:
7838 #line 2428 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7839     {
7840 #ifdef AMD_EXTENSIONS
7841         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7842         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7843         (yyval.interm.type).basicType = EbtSampler;
7844         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true);
7845 #endif
7846     }
7847 #line 7848 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7848     break;
7849
7850   case 349:
7851 #line 2436 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7852     {
7853 #ifdef AMD_EXTENSIONS
7854         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7855         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7856         (yyval.interm.type).basicType = EbtSampler;
7857         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true);
7858 #endif
7859     }
7860 #line 7861 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7861     break;
7862
7863   case 350:
7864 #line 2444 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7865     {
7866 #ifdef AMD_EXTENSIONS
7867         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7868         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7869         (yyval.interm.type).basicType = EbtSampler;
7870         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true);
7871 #endif
7872     }
7873 #line 7874 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7874     break;
7875
7876   case 351:
7877 #line 2452 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7878     {
7879 #ifdef AMD_EXTENSIONS
7880         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7881         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7882         (yyval.interm.type).basicType = EbtSampler;
7883         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true);
7884 #endif
7885     }
7886 #line 7887 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7887     break;
7888
7889   case 352:
7890 #line 2460 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7891     {
7892         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7893         (yyval.interm.type).basicType = EbtSampler;
7894         (yyval.interm.type).sampler.set(EbtInt, Esd1D);
7895     }
7896 #line 7897 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7897     break;
7898
7899   case 353:
7900 #line 2465 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7901     {
7902         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7903         (yyval.interm.type).basicType = EbtSampler;
7904         (yyval.interm.type).sampler.set(EbtInt, Esd2D);
7905     }
7906 #line 7907 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7907     break;
7908
7909   case 354:
7910 #line 2470 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7911     {
7912         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7913         (yyval.interm.type).basicType = EbtSampler;
7914         (yyval.interm.type).sampler.set(EbtInt, Esd3D);
7915     }
7916 #line 7917 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7917     break;
7918
7919   case 355:
7920 #line 2475 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7921     {
7922         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7923         (yyval.interm.type).basicType = EbtSampler;
7924         (yyval.interm.type).sampler.set(EbtInt, EsdCube);
7925     }
7926 #line 7927 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7927     break;
7928
7929   case 356:
7930 #line 2480 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7931     {
7932         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7933         (yyval.interm.type).basicType = EbtSampler;
7934         (yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
7935     }
7936 #line 7937 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7937     break;
7938
7939   case 357:
7940 #line 2485 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7941     {
7942         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7943         (yyval.interm.type).basicType = EbtSampler;
7944         (yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
7945     }
7946 #line 7947 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7947     break;
7948
7949   case 358:
7950 #line 2490 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7951     {
7952         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7953         (yyval.interm.type).basicType = EbtSampler;
7954         (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
7955     }
7956 #line 7957 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7957     break;
7958
7959   case 359:
7960 #line 2495 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7961     {
7962         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7963         (yyval.interm.type).basicType = EbtSampler;
7964         (yyval.interm.type).sampler.set(EbtUint, Esd1D);
7965     }
7966 #line 7967 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7967     break;
7968
7969   case 360:
7970 #line 2500 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7971     {
7972         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7973         (yyval.interm.type).basicType = EbtSampler;
7974         (yyval.interm.type).sampler.set(EbtUint, Esd2D);
7975     }
7976 #line 7977 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7977     break;
7978
7979   case 361:
7980 #line 2505 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7981     {
7982         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7983         (yyval.interm.type).basicType = EbtSampler;
7984         (yyval.interm.type).sampler.set(EbtUint, Esd3D);
7985     }
7986 #line 7987 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7987     break;
7988
7989   case 362:
7990 #line 2510 "MachineIndependent/glslang.y" /* yacc.c:1646  */
7991     {
7992         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7993         (yyval.interm.type).basicType = EbtSampler;
7994         (yyval.interm.type).sampler.set(EbtUint, EsdCube);
7995     }
7996 #line 7997 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
7997     break;
7998
7999   case 363:
8000 #line 2515 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8001     {
8002         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8003         (yyval.interm.type).basicType = EbtSampler;
8004         (yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
8005     }
8006 #line 8007 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8007     break;
8008
8009   case 364:
8010 #line 2520 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8011     {
8012         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8013         (yyval.interm.type).basicType = EbtSampler;
8014         (yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
8015     }
8016 #line 8017 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8017     break;
8018
8019   case 365:
8020 #line 2525 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8021     {
8022         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8023         (yyval.interm.type).basicType = EbtSampler;
8024         (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
8025     }
8026 #line 8027 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8027     break;
8028
8029   case 366:
8030 #line 2530 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8031     {
8032         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8033         (yyval.interm.type).basicType = EbtSampler;
8034         (yyval.interm.type).sampler.set(EbtFloat, EsdRect);
8035     }
8036 #line 8037 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8037     break;
8038
8039   case 367:
8040 #line 2535 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8041     {
8042         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8043         (yyval.interm.type).basicType = EbtSampler;
8044         (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
8045     }
8046 #line 8047 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8047     break;
8048
8049   case 368:
8050 #line 2540 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8051     {
8052 #ifdef AMD_EXTENSIONS
8053         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8054         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8055         (yyval.interm.type).basicType = EbtSampler;
8056         (yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
8057 #endif
8058     }
8059 #line 8060 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8060     break;
8061
8062   case 369:
8063 #line 2548 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8064     {
8065 #ifdef AMD_EXTENSIONS
8066         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8067         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8068         (yyval.interm.type).basicType = EbtSampler;
8069         (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
8070 #endif
8071     }
8072 #line 8073 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8073     break;
8074
8075   case 370:
8076 #line 2556 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8077     {
8078         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8079         (yyval.interm.type).basicType = EbtSampler;
8080         (yyval.interm.type).sampler.set(EbtInt, EsdRect);
8081     }
8082 #line 8083 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8083     break;
8084
8085   case 371:
8086 #line 2561 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8087     {
8088         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8089         (yyval.interm.type).basicType = EbtSampler;
8090         (yyval.interm.type).sampler.set(EbtUint, EsdRect);
8091     }
8092 #line 8093 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8093     break;
8094
8095   case 372:
8096 #line 2566 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8097     {
8098         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8099         (yyval.interm.type).basicType = EbtSampler;
8100         (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
8101     }
8102 #line 8103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8103     break;
8104
8105   case 373:
8106 #line 2571 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8107     {
8108 #ifdef AMD_EXTENSIONS
8109         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8110         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8111         (yyval.interm.type).basicType = EbtSampler;
8112         (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
8113 #endif
8114     }
8115 #line 8116 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8116     break;
8117
8118   case 374:
8119 #line 2579 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8120     {
8121         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8122         (yyval.interm.type).basicType = EbtSampler;
8123         (yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
8124     }
8125 #line 8126 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8126     break;
8127
8128   case 375:
8129 #line 2584 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8130     {
8131         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8132         (yyval.interm.type).basicType = EbtSampler;
8133         (yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
8134     }
8135 #line 8136 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8136     break;
8137
8138   case 376:
8139 #line 2589 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8140     {
8141         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8142         (yyval.interm.type).basicType = EbtSampler;
8143         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
8144     }
8145 #line 8146 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8146     break;
8147
8148   case 377:
8149 #line 2594 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8150     {
8151 #ifdef AMD_EXTENSIONS
8152         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8153         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8154         (yyval.interm.type).basicType = EbtSampler;
8155         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
8156 #endif
8157     }
8158 #line 8159 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8159     break;
8160
8161   case 378:
8162 #line 2602 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8163     {
8164         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8165         (yyval.interm.type).basicType = EbtSampler;
8166         (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
8167     }
8168 #line 8169 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8169     break;
8170
8171   case 379:
8172 #line 2607 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8173     {
8174         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8175         (yyval.interm.type).basicType = EbtSampler;
8176         (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
8177     }
8178 #line 8179 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8179     break;
8180
8181   case 380:
8182 #line 2612 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8183     {
8184         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8185         (yyval.interm.type).basicType = EbtSampler;
8186         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
8187     }
8188 #line 8189 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8189     break;
8190
8191   case 381:
8192 #line 2617 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8193     {
8194 #ifdef AMD_EXTENSIONS
8195         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8196         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8197         (yyval.interm.type).basicType = EbtSampler;
8198         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
8199 #endif
8200     }
8201 #line 8202 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8202     break;
8203
8204   case 382:
8205 #line 2625 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8206     {
8207         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8208         (yyval.interm.type).basicType = EbtSampler;
8209         (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
8210     }
8211 #line 8212 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8212     break;
8213
8214   case 383:
8215 #line 2630 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8216     {
8217         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8218         (yyval.interm.type).basicType = EbtSampler;
8219         (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
8220     }
8221 #line 8222 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8222     break;
8223
8224   case 384:
8225 #line 2635 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8226     {
8227         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8228         (yyval.interm.type).basicType = EbtSampler;
8229         (yyval.interm.type).sampler.setPureSampler(false);
8230     }
8231 #line 8232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8232     break;
8233
8234   case 385:
8235 #line 2640 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8236     {
8237         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8238         (yyval.interm.type).basicType = EbtSampler;
8239         (yyval.interm.type).sampler.setPureSampler(true);
8240     }
8241 #line 8242 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8242     break;
8243
8244   case 386:
8245 #line 2645 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8246     {
8247         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8248         (yyval.interm.type).basicType = EbtSampler;
8249         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
8250     }
8251 #line 8252 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8252     break;
8253
8254   case 387:
8255 #line 2650 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8256     {
8257 #ifdef AMD_EXTENSIONS
8258         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8259         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8260         (yyval.interm.type).basicType = EbtSampler;
8261         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
8262 #endif
8263     }
8264 #line 8265 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8265     break;
8266
8267   case 388:
8268 #line 2658 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8269     {
8270         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8271         (yyval.interm.type).basicType = EbtSampler;
8272         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
8273     }
8274 #line 8275 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8275     break;
8276
8277   case 389:
8278 #line 2663 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8279     {
8280 #ifdef AMD_EXTENSIONS
8281         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8282         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8283         (yyval.interm.type).basicType = EbtSampler;
8284         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
8285 #endif
8286     }
8287 #line 8288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8288     break;
8289
8290   case 390:
8291 #line 2671 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8292     {
8293         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8294         (yyval.interm.type).basicType = EbtSampler;
8295         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
8296     }
8297 #line 8298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8298     break;
8299
8300   case 391:
8301 #line 2676 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8302     {
8303 #ifdef AMD_EXTENSIONS
8304         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8305         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8306         (yyval.interm.type).basicType = EbtSampler;
8307         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
8308 #endif
8309     }
8310 #line 8311 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8311     break;
8312
8313   case 392:
8314 #line 2684 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8315     {
8316         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8317         (yyval.interm.type).basicType = EbtSampler;
8318         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
8319     }
8320 #line 8321 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8321     break;
8322
8323   case 393:
8324 #line 2689 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8325     {
8326 #ifdef AMD_EXTENSIONS
8327         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8328         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8329         (yyval.interm.type).basicType = EbtSampler;
8330         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
8331 #endif
8332     }
8333 #line 8334 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8334     break;
8335
8336   case 394:
8337 #line 2697 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8338     {
8339         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8340         (yyval.interm.type).basicType = EbtSampler;
8341         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
8342     }
8343 #line 8344 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8344     break;
8345
8346   case 395:
8347 #line 2702 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8348     {
8349 #ifdef AMD_EXTENSIONS
8350         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8351         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8352         (yyval.interm.type).basicType = EbtSampler;
8353         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
8354 #endif
8355     }
8356 #line 8357 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8357     break;
8358
8359   case 396:
8360 #line 2710 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8361     {
8362         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8363         (yyval.interm.type).basicType = EbtSampler;
8364         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
8365     }
8366 #line 8367 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8367     break;
8368
8369   case 397:
8370 #line 2715 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8371     {
8372 #ifdef AMD_EXTENSIONS
8373         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8374         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8375         (yyval.interm.type).basicType = EbtSampler;
8376         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true);
8377 #endif
8378     }
8379 #line 8380 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8380     break;
8381
8382   case 398:
8383 #line 2723 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8384     {
8385         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8386         (yyval.interm.type).basicType = EbtSampler;
8387         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
8388     }
8389 #line 8390 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8390     break;
8391
8392   case 399:
8393 #line 2728 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8394     {
8395 #ifdef AMD_EXTENSIONS
8396         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8397         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8398         (yyval.interm.type).basicType = EbtSampler;
8399         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
8400 #endif
8401     }
8402 #line 8403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8403     break;
8404
8405   case 400:
8406 #line 2736 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8407     {
8408         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8409         (yyval.interm.type).basicType = EbtSampler;
8410         (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
8411     }
8412 #line 8413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8413     break;
8414
8415   case 401:
8416 #line 2741 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8417     {
8418         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8419         (yyval.interm.type).basicType = EbtSampler;
8420         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
8421     }
8422 #line 8423 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8423     break;
8424
8425   case 402:
8426 #line 2746 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8427     {
8428         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8429         (yyval.interm.type).basicType = EbtSampler;
8430         (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
8431     }
8432 #line 8433 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8433     break;
8434
8435   case 403:
8436 #line 2751 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8437     {
8438         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8439         (yyval.interm.type).basicType = EbtSampler;
8440         (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
8441     }
8442 #line 8443 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8443     break;
8444
8445   case 404:
8446 #line 2756 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8447     {
8448         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8449         (yyval.interm.type).basicType = EbtSampler;
8450         (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
8451     }
8452 #line 8453 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8453     break;
8454
8455   case 405:
8456 #line 2761 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8457     {
8458         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8459         (yyval.interm.type).basicType = EbtSampler;
8460         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
8461     }
8462 #line 8463 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8463     break;
8464
8465   case 406:
8466 #line 2766 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8467     {
8468         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8469         (yyval.interm.type).basicType = EbtSampler;
8470         (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
8471     }
8472 #line 8473 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8473     break;
8474
8475   case 407:
8476 #line 2771 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8477     {
8478         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8479         (yyval.interm.type).basicType = EbtSampler;
8480         (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
8481     }
8482 #line 8483 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8483     break;
8484
8485   case 408:
8486 #line 2776 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8487     {
8488         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8489         (yyval.interm.type).basicType = EbtSampler;
8490         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
8491     }
8492 #line 8493 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8493     break;
8494
8495   case 409:
8496 #line 2781 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8497     {
8498         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8499         (yyval.interm.type).basicType = EbtSampler;
8500         (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
8501     }
8502 #line 8503 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8503     break;
8504
8505   case 410:
8506 #line 2786 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8507     {
8508         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8509         (yyval.interm.type).basicType = EbtSampler;
8510         (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
8511     }
8512 #line 8513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8513     break;
8514
8515   case 411:
8516 #line 2791 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8517     {
8518         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8519         (yyval.interm.type).basicType = EbtSampler;
8520         (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
8521     }
8522 #line 8523 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8523     break;
8524
8525   case 412:
8526 #line 2796 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8527     {
8528         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8529         (yyval.interm.type).basicType = EbtSampler;
8530         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
8531     }
8532 #line 8533 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8533     break;
8534
8535   case 413:
8536 #line 2801 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8537     {
8538         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8539         (yyval.interm.type).basicType = EbtSampler;
8540         (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
8541     }
8542 #line 8543 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8543     break;
8544
8545   case 414:
8546 #line 2806 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8547     {
8548         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8549         (yyval.interm.type).basicType = EbtSampler;
8550         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
8551     }
8552 #line 8553 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8553     break;
8554
8555   case 415:
8556 #line 2811 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8557     {
8558 #ifdef AMD_EXTENSIONS
8559         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8560         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8561         (yyval.interm.type).basicType = EbtSampler;
8562         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect);
8563 #endif
8564     }
8565 #line 8566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8566     break;
8567
8568   case 416:
8569 #line 2819 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8570     {
8571         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8572         (yyval.interm.type).basicType = EbtSampler;
8573         (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
8574     }
8575 #line 8576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8576     break;
8577
8578   case 417:
8579 #line 2824 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8580     {
8581         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8582         (yyval.interm.type).basicType = EbtSampler;
8583         (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
8584     }
8585 #line 8586 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8586     break;
8587
8588   case 418:
8589 #line 2829 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8590     {
8591         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8592         (yyval.interm.type).basicType = EbtSampler;
8593         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
8594     }
8595 #line 8596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8596     break;
8597
8598   case 419:
8599 #line 2834 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8600     {
8601 #ifdef AMD_EXTENSIONS
8602         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8603         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8604         (yyval.interm.type).basicType = EbtSampler;
8605         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer);
8606 #endif
8607     }
8608 #line 8609 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8609     break;
8610
8611   case 420:
8612 #line 2842 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8613     {
8614         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8615         (yyval.interm.type).basicType = EbtSampler;
8616         (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
8617     }
8618 #line 8619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8619     break;
8620
8621   case 421:
8622 #line 2847 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8623     {
8624         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8625         (yyval.interm.type).basicType = EbtSampler;
8626         (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
8627     }
8628 #line 8629 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8629     break;
8630
8631   case 422:
8632 #line 2852 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8633     {
8634         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8635         (yyval.interm.type).basicType = EbtSampler;
8636         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
8637     }
8638 #line 8639 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8639     break;
8640
8641   case 423:
8642 #line 2857 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8643     {
8644 #ifdef AMD_EXTENSIONS
8645         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8646         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8647         (yyval.interm.type).basicType = EbtSampler;
8648         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
8649 #endif
8650     }
8651 #line 8652 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8652     break;
8653
8654   case 424:
8655 #line 2865 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8656     {
8657         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8658         (yyval.interm.type).basicType = EbtSampler;
8659         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
8660     }
8661 #line 8662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8662     break;
8663
8664   case 425:
8665 #line 2870 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8666     {
8667         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8668         (yyval.interm.type).basicType = EbtSampler;
8669         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
8670     }
8671 #line 8672 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8672     break;
8673
8674   case 426:
8675 #line 2875 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8676     {
8677         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8678         (yyval.interm.type).basicType = EbtSampler;
8679         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
8680     }
8681 #line 8682 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8682     break;
8683
8684   case 427:
8685 #line 2880 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8686     {
8687 #ifdef AMD_EXTENSIONS
8688         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8689         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8690         (yyval.interm.type).basicType = EbtSampler;
8691         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
8692 #endif
8693     }
8694 #line 8695 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8695     break;
8696
8697   case 428:
8698 #line 2888 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8699     {
8700         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8701         (yyval.interm.type).basicType = EbtSampler;
8702         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
8703     }
8704 #line 8705 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8705     break;
8706
8707   case 429:
8708 #line 2893 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8709     {
8710         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8711         (yyval.interm.type).basicType = EbtSampler;
8712         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
8713     }
8714 #line 8715 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8715     break;
8716
8717   case 430:
8718 #line 2898 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8719     {
8720         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8721         (yyval.interm.type).basicType = EbtSampler;
8722         (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
8723     }
8724 #line 8725 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8725     break;
8726
8727   case 431:
8728 #line 2903 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8729     {
8730 #ifdef AMD_EXTENSIONS
8731         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8732         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8733         (yyval.interm.type).basicType = EbtSampler;
8734         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D);
8735 #endif
8736     }
8737 #line 8738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8738     break;
8739
8740   case 432:
8741 #line 2911 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8742     {
8743         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8744         (yyval.interm.type).basicType = EbtSampler;
8745         (yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
8746     }
8747 #line 8748 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8748     break;
8749
8750   case 433:
8751 #line 2916 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8752     {
8753         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8754         (yyval.interm.type).basicType = EbtSampler;
8755         (yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
8756     }
8757 #line 8758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8758     break;
8759
8760   case 434:
8761 #line 2921 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8762     {
8763         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8764         (yyval.interm.type).basicType = EbtSampler;
8765         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
8766     }
8767 #line 8768 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8768     break;
8769
8770   case 435:
8771 #line 2926 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8772     {
8773 #ifdef AMD_EXTENSIONS
8774         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8775         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8776         (yyval.interm.type).basicType = EbtSampler;
8777         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D);
8778 #endif
8779     }
8780 #line 8781 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8781     break;
8782
8783   case 436:
8784 #line 2934 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8785     {
8786         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8787         (yyval.interm.type).basicType = EbtSampler;
8788         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D);
8789     }
8790 #line 8791 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8791     break;
8792
8793   case 437:
8794 #line 2939 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8795     {
8796         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8797         (yyval.interm.type).basicType = EbtSampler;
8798         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D);
8799     }
8800 #line 8801 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8801     break;
8802
8803   case 438:
8804 #line 2944 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8805     {
8806         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8807         (yyval.interm.type).basicType = EbtSampler;
8808         (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
8809     }
8810 #line 8811 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8811     break;
8812
8813   case 439:
8814 #line 2949 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8815     {
8816 #ifdef AMD_EXTENSIONS
8817         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8818         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8819         (yyval.interm.type).basicType = EbtSampler;
8820         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D);
8821 #endif
8822     }
8823 #line 8824 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8824     break;
8825
8826   case 440:
8827 #line 2957 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8828     {
8829         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8830         (yyval.interm.type).basicType = EbtSampler;
8831         (yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
8832     }
8833 #line 8834 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8834     break;
8835
8836   case 441:
8837 #line 2962 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8838     {
8839         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8840         (yyval.interm.type).basicType = EbtSampler;
8841         (yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
8842     }
8843 #line 8844 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8844     break;
8845
8846   case 442:
8847 #line 2967 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8848     {
8849         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8850         (yyval.interm.type).basicType = EbtSampler;
8851         (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
8852     }
8853 #line 8854 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8854     break;
8855
8856   case 443:
8857 #line 2972 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8858     {
8859 #ifdef AMD_EXTENSIONS
8860         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8861         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8862         (yyval.interm.type).basicType = EbtSampler;
8863         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect);
8864 #endif
8865     }
8866 #line 8867 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8867     break;
8868
8869   case 444:
8870 #line 2980 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8871     {
8872         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8873         (yyval.interm.type).basicType = EbtSampler;
8874         (yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
8875     }
8876 #line 8877 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8877     break;
8878
8879   case 445:
8880 #line 2985 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8881     {
8882         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8883         (yyval.interm.type).basicType = EbtSampler;
8884         (yyval.interm.type).sampler.setImage(EbtUint, EsdRect);
8885     }
8886 #line 8887 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8887     break;
8888
8889   case 446:
8890 #line 2990 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8891     {
8892         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8893         (yyval.interm.type).basicType = EbtSampler;
8894         (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
8895     }
8896 #line 8897 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8897     break;
8898
8899   case 447:
8900 #line 2995 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8901     {
8902 #ifdef AMD_EXTENSIONS
8903         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8904         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8905         (yyval.interm.type).basicType = EbtSampler;
8906         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube);
8907 #endif
8908     }
8909 #line 8910 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8910     break;
8911
8912   case 448:
8913 #line 3003 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8914     {
8915         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8916         (yyval.interm.type).basicType = EbtSampler;
8917         (yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
8918     }
8919 #line 8920 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8920     break;
8921
8922   case 449:
8923 #line 3008 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8924     {
8925         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8926         (yyval.interm.type).basicType = EbtSampler;
8927         (yyval.interm.type).sampler.setImage(EbtUint, EsdCube);
8928     }
8929 #line 8930 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8930     break;
8931
8932   case 450:
8933 #line 3013 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8934     {
8935         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8936         (yyval.interm.type).basicType = EbtSampler;
8937         (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
8938     }
8939 #line 8940 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8940     break;
8941
8942   case 451:
8943 #line 3018 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8944     {
8945 #ifdef AMD_EXTENSIONS
8946         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8947         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8948         (yyval.interm.type).basicType = EbtSampler;
8949         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer);
8950 #endif
8951     }
8952 #line 8953 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8953     break;
8954
8955   case 452:
8956 #line 3026 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8957     {
8958         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8959         (yyval.interm.type).basicType = EbtSampler;
8960         (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
8961     }
8962 #line 8963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8963     break;
8964
8965   case 453:
8966 #line 3031 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8967     {
8968         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8969         (yyval.interm.type).basicType = EbtSampler;
8970         (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer);
8971     }
8972 #line 8973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8973     break;
8974
8975   case 454:
8976 #line 3036 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8977     {
8978         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8979         (yyval.interm.type).basicType = EbtSampler;
8980         (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
8981     }
8982 #line 8983 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8983     break;
8984
8985   case 455:
8986 #line 3041 "MachineIndependent/glslang.y" /* yacc.c:1646  */
8987     {
8988 #ifdef AMD_EXTENSIONS
8989         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8990         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8991         (yyval.interm.type).basicType = EbtSampler;
8992         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true);
8993 #endif
8994     }
8995 #line 8996 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
8996     break;
8997
8998   case 456:
8999 #line 3049 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9000     {
9001         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9002         (yyval.interm.type).basicType = EbtSampler;
9003         (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
9004     }
9005 #line 9006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9006     break;
9007
9008   case 457:
9009 #line 3054 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9010     {
9011         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9012         (yyval.interm.type).basicType = EbtSampler;
9013         (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true);
9014     }
9015 #line 9016 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9016     break;
9017
9018   case 458:
9019 #line 3059 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9020     {
9021         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9022         (yyval.interm.type).basicType = EbtSampler;
9023         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
9024     }
9025 #line 9026 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9026     break;
9027
9028   case 459:
9029 #line 3064 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9030     {
9031 #ifdef AMD_EXTENSIONS
9032         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9033         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9034         (yyval.interm.type).basicType = EbtSampler;
9035         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true);
9036 #endif
9037     }
9038 #line 9039 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9039     break;
9040
9041   case 460:
9042 #line 3072 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9043     {
9044         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9045         (yyval.interm.type).basicType = EbtSampler;
9046         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
9047     }
9048 #line 9049 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9049     break;
9050
9051   case 461:
9052 #line 3077 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9053     {
9054         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9055         (yyval.interm.type).basicType = EbtSampler;
9056         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
9057     }
9058 #line 9059 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9059     break;
9060
9061   case 462:
9062 #line 3082 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9063     {
9064         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9065         (yyval.interm.type).basicType = EbtSampler;
9066         (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
9067     }
9068 #line 9069 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9069     break;
9070
9071   case 463:
9072 #line 3087 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9073     {
9074 #ifdef AMD_EXTENSIONS
9075         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9076         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9077         (yyval.interm.type).basicType = EbtSampler;
9078         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true);
9079 #endif
9080     }
9081 #line 9082 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9082     break;
9083
9084   case 464:
9085 #line 3095 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9086     {
9087         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9088         (yyval.interm.type).basicType = EbtSampler;
9089         (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
9090     }
9091 #line 9092 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9092     break;
9093
9094   case 465:
9095 #line 3100 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9096     {
9097         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9098         (yyval.interm.type).basicType = EbtSampler;
9099         (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
9100     }
9101 #line 9102 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9102     break;
9103
9104   case 466:
9105 #line 3105 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9106     {
9107         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9108         (yyval.interm.type).basicType = EbtSampler;
9109         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
9110     }
9111 #line 9112 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9112     break;
9113
9114   case 467:
9115 #line 3110 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9116     {
9117 #ifdef AMD_EXTENSIONS
9118         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9119         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9120         (yyval.interm.type).basicType = EbtSampler;
9121         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true);
9122 #endif
9123     }
9124 #line 9125 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9125     break;
9126
9127   case 468:
9128 #line 3118 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9129     {
9130         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9131         (yyval.interm.type).basicType = EbtSampler;
9132         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
9133     }
9134 #line 9135 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9135     break;
9136
9137   case 469:
9138 #line 3123 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9139     {
9140         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9141         (yyval.interm.type).basicType = EbtSampler;
9142         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
9143     }
9144 #line 9145 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9145     break;
9146
9147   case 470:
9148 #line 3128 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9149     {
9150         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9151         (yyval.interm.type).basicType = EbtSampler;
9152         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
9153     }
9154 #line 9155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9155     break;
9156
9157   case 471:
9158 #line 3133 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9159     {
9160 #ifdef AMD_EXTENSIONS
9161         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9162         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9163         (yyval.interm.type).basicType = EbtSampler;
9164         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true);
9165 #endif
9166     }
9167 #line 9168 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9168     break;
9169
9170   case 472:
9171 #line 3141 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9172     {
9173         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9174         (yyval.interm.type).basicType = EbtSampler;
9175         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
9176     }
9177 #line 9178 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9178     break;
9179
9180   case 473:
9181 #line 3146 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9182     {
9183         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9184         (yyval.interm.type).basicType = EbtSampler;
9185         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
9186     }
9187 #line 9188 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9188     break;
9189
9190   case 474:
9191 #line 3151 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9192     {  // GL_OES_EGL_image_external
9193         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9194         (yyval.interm.type).basicType = EbtSampler;
9195         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
9196         (yyval.interm.type).sampler.external = true;
9197     }
9198 #line 9199 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9199     break;
9200
9201   case 475:
9202 #line 3157 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9203     { // GL_EXT_YUV_target
9204         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9205         (yyval.interm.type).basicType = EbtSampler;
9206         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
9207         (yyval.interm.type).sampler.yuv = true;
9208     }
9209 #line 9210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9210     break;
9211
9212   case 476:
9213 #line 3163 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9214     {
9215         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9216         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9217         (yyval.interm.type).basicType = EbtSampler;
9218         (yyval.interm.type).sampler.setSubpass(EbtFloat);
9219     }
9220 #line 9221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9221     break;
9222
9223   case 477:
9224 #line 3169 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9225     {
9226         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9227         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9228         (yyval.interm.type).basicType = EbtSampler;
9229         (yyval.interm.type).sampler.setSubpass(EbtFloat, true);
9230     }
9231 #line 9232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9232     break;
9233
9234   case 478:
9235 #line 3175 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9236     {
9237 #ifdef AMD_EXTENSIONS
9238         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
9239         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9240         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9241         (yyval.interm.type).basicType = EbtSampler;
9242         (yyval.interm.type).sampler.setSubpass(EbtFloat16);
9243 #endif
9244     }
9245 #line 9246 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9246     break;
9247
9248   case 479:
9249 #line 3184 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9250     {
9251 #ifdef AMD_EXTENSIONS
9252         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
9253         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9254         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9255         (yyval.interm.type).basicType = EbtSampler;
9256         (yyval.interm.type).sampler.setSubpass(EbtFloat16, true);
9257 #endif
9258     }
9259 #line 9260 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9260     break;
9261
9262   case 480:
9263 #line 3193 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9264     {
9265         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9266         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9267         (yyval.interm.type).basicType = EbtSampler;
9268         (yyval.interm.type).sampler.setSubpass(EbtInt);
9269     }
9270 #line 9271 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9271     break;
9272
9273   case 481:
9274 #line 3199 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9275     {
9276         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9277         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9278         (yyval.interm.type).basicType = EbtSampler;
9279         (yyval.interm.type).sampler.setSubpass(EbtInt, true);
9280     }
9281 #line 9282 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9282     break;
9283
9284   case 482:
9285 #line 3205 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9286     {
9287         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9288         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9289         (yyval.interm.type).basicType = EbtSampler;
9290         (yyval.interm.type).sampler.setSubpass(EbtUint);
9291     }
9292 #line 9293 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9293     break;
9294
9295   case 483:
9296 #line 3211 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9297     {
9298         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9299         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9300         (yyval.interm.type).basicType = EbtSampler;
9301         (yyval.interm.type).sampler.setSubpass(EbtUint, true);
9302     }
9303 #line 9304 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9304     break;
9305
9306   case 484:
9307 #line 3217 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9308     {
9309         parseContext.fcoopmatCheck((yyvsp[0].lex).loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
9310         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9311         (yyval.interm.type).basicType = EbtFloat;
9312         (yyval.interm.type).coopmat = true;
9313     }
9314 #line 9315 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9315     break;
9316
9317   case 485:
9318 #line 3223 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9319     {
9320         (yyval.interm.type) = (yyvsp[0].interm.type);
9321         (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
9322         parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
9323     }
9324 #line 9325 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9325     break;
9326
9327   case 486:
9328 #line 3228 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9329     {
9330         //
9331         // This is for user defined type names.  The lexical phase looked up the
9332         // type.
9333         //
9334         if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) {
9335             const TType& structure = variable->getType();
9336             (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9337             (yyval.interm.type).basicType = EbtStruct;
9338             (yyval.interm.type).userDef = &structure;
9339         } else
9340             parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
9341     }
9342 #line 9343 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9343     break;
9344
9345   case 487:
9346 #line 3244 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9347     {
9348         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
9349         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9350         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
9351     }
9352 #line 9353 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9353     break;
9354
9355   case 488:
9356 #line 3249 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9357     {
9358         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
9359         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9360         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
9361     }
9362 #line 9363 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9363     break;
9364
9365   case 489:
9366 #line 3254 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9367     {
9368         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
9369         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9370         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
9371     }
9372 #line 9373 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9373     break;
9374
9375   case 490:
9376 #line 3262 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9377     { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
9378 #line 9379 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9379     break;
9380
9381   case 491:
9382 #line 3262 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9383     {
9384         TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
9385         parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
9386         TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true);
9387         if (! parseContext.symbolTable.insert(*userTypeDef))
9388             parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct");
9389         (yyval.interm.type).init((yyvsp[-5].lex).loc);
9390         (yyval.interm.type).basicType = EbtStruct;
9391         (yyval.interm.type).userDef = structure;
9392         --parseContext.structNestingLevel;
9393     }
9394 #line 9395 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9395     break;
9396
9397   case 492:
9398 #line 3273 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9399     { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
9400 #line 9401 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9401     break;
9402
9403   case 493:
9404 #line 3273 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9405     {
9406         TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
9407         (yyval.interm.type).init((yyvsp[-4].lex).loc);
9408         (yyval.interm.type).basicType = EbtStruct;
9409         (yyval.interm.type).userDef = structure;
9410         --parseContext.structNestingLevel;
9411     }
9412 #line 9413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9413     break;
9414
9415   case 494:
9416 #line 3283 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9417     {
9418         (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
9419     }
9420 #line 9421 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9421     break;
9422
9423   case 495:
9424 #line 3286 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9425     {
9426         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
9427         for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
9428             for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) {
9429                 if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName())
9430                     parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str());
9431             }
9432             (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
9433         }
9434     }
9435 #line 9436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9436     break;
9437
9438   case 496:
9439 #line 3299 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9440     {
9441         if ((yyvsp[-2].interm.type).arraySizes) {
9442             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
9443             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
9444             if (parseContext.profile == EEsProfile)
9445                 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
9446         }
9447
9448         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
9449
9450         parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
9451         parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
9452
9453         for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
9454             TType type((yyvsp[-2].interm.type));
9455             type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
9456             type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
9457             type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
9458             parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
9459             (*(yyval.interm.typeList))[i].type->shallowCopy(type);
9460         }
9461     }
9462 #line 9463 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9463     break;
9464
9465   case 497:
9466 #line 3321 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9467     {
9468         if ((yyvsp[-2].interm.type).arraySizes) {
9469             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
9470             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
9471             if (parseContext.profile == EEsProfile)
9472                 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
9473         }
9474
9475         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
9476
9477         parseContext.memberQualifierCheck((yyvsp[-3].interm.type));
9478         parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
9479         parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true);
9480         parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
9481
9482         for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
9483             TType type((yyvsp[-2].interm.type));
9484             type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
9485             type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
9486             type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
9487             parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
9488             (*(yyval.interm.typeList))[i].type->shallowCopy(type);
9489         }
9490     }
9491 #line 9492 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9492     break;
9493
9494   case 498:
9495 #line 3348 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9496     {
9497         (yyval.interm.typeList) = new TTypeList;
9498         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
9499     }
9500 #line 9501 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9501     break;
9502
9503   case 499:
9504 #line 3352 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9505     {
9506         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
9507     }
9508 #line 9509 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9509     break;
9510
9511   case 500:
9512 #line 3358 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9513     {
9514         (yyval.interm.typeLine).type = new TType(EbtVoid);
9515         (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
9516         (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
9517     }
9518 #line 9519 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9519     break;
9520
9521   case 501:
9522 #line 3363 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9523     {
9524         parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
9525
9526         (yyval.interm.typeLine).type = new TType(EbtVoid);
9527         (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc;
9528         (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
9529         (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
9530     }
9531 #line 9532 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9532     break;
9533
9534   case 502:
9535 #line 3374 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9536     {
9537         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
9538     }
9539 #line 9540 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9540     break;
9541
9542   case 503:
9543 #line 3377 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9544     {
9545         const char* initFeature = "{ } style initializers";
9546         parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
9547         parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
9548         (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
9549     }
9550 #line 9551 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9551     break;
9552
9553   case 504:
9554 #line 3383 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9555     {
9556         const char* initFeature = "{ } style initializers";
9557         parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
9558         parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
9559         (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
9560     }
9561 #line 9562 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9562     break;
9563
9564   case 505:
9565 #line 3392 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9566     {
9567         (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
9568     }
9569 #line 9570 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9570     break;
9571
9572   case 506:
9573 #line 3395 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9574     {
9575         (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
9576     }
9577 #line 9578 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9578     break;
9579
9580   case 507:
9581 #line 3401 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9582     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9583 #line 9584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9584     break;
9585
9586   case 508:
9587 #line 3405 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9588     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9589 #line 9590 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9590     break;
9591
9592   case 509:
9593 #line 3406 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9594     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9595 #line 9596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9596     break;
9597
9598   case 510:
9599 #line 3412 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9600     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9601 #line 9602 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9602     break;
9603
9604   case 511:
9605 #line 3413 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9606     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9607 #line 9608 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9608     break;
9609
9610   case 512:
9611 #line 3414 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9612     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9613 #line 9614 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9614     break;
9615
9616   case 513:
9617 #line 3415 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9618     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9619 #line 9620 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9620     break;
9621
9622   case 514:
9623 #line 3416 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9624     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9625 #line 9626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9626     break;
9627
9628   case 515:
9629 #line 3417 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9630     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9631 #line 9632 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9632     break;
9633
9634   case 516:
9635 #line 3418 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9636     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9637 #line 9638 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9638     break;
9639
9640   case 517:
9641 #line 3419 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9642     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9643 #line 9644 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9644     break;
9645
9646   case 518:
9647 #line 3423 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9648     {
9649         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "demote");
9650         parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_demote_to_helper_invocation, "demote");
9651         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDemote, (yyvsp[-1].lex).loc);
9652     }
9653 #line 9654 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9654     break;
9655
9656   case 519:
9657 #line 3431 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9658     { (yyval.interm.intermNode) = 0; }
9659 #line 9660 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9660     break;
9661
9662   case 520:
9663 #line 3432 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9664     {
9665         parseContext.symbolTable.push();
9666         ++parseContext.statementNestingLevel;
9667     }
9668 #line 9669 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9669     break;
9670
9671   case 521:
9672 #line 3436 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9673     {
9674         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9675         --parseContext.statementNestingLevel;
9676     }
9677 #line 9678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9678     break;
9679
9680   case 522:
9681 #line 3440 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9682     {
9683         if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate())
9684             (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
9685         (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode);
9686     }
9687 #line 9688 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9688     break;
9689
9690   case 523:
9691 #line 3448 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9692     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9693 #line 9694 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9694     break;
9695
9696   case 524:
9697 #line 3449 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9698     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9699 #line 9700 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9700     break;
9701
9702   case 525:
9703 #line 3453 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9704     {
9705         ++parseContext.controlFlowNestingLevel;
9706     }
9707 #line 9708 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9708     break;
9709
9710   case 526:
9711 #line 3456 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9712     {
9713         --parseContext.controlFlowNestingLevel;
9714         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9715     }
9716 #line 9717 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9717     break;
9718
9719   case 527:
9720 #line 3460 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9721     {
9722         parseContext.symbolTable.push();
9723         ++parseContext.statementNestingLevel;
9724         ++parseContext.controlFlowNestingLevel;
9725     }
9726 #line 9727 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9727     break;
9728
9729   case 528:
9730 #line 3465 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9731     {
9732         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9733         --parseContext.statementNestingLevel;
9734         --parseContext.controlFlowNestingLevel;
9735         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9736     }
9737 #line 9738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9738     break;
9739
9740   case 529:
9741 #line 3474 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9742     {
9743         (yyval.interm.intermNode) = 0;
9744     }
9745 #line 9746 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9746     break;
9747
9748   case 530:
9749 #line 3477 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9750     {
9751         if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate())
9752             (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
9753         (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode);
9754     }
9755 #line 9756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9756     break;
9757
9758   case 531:
9759 #line 3485 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9760     {
9761         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
9762         if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
9763                                             (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
9764             parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode));
9765             (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
9766         }
9767     }
9768 #line 9769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9769     break;
9770
9771   case 532:
9772 #line 3493 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9773     {
9774         if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
9775                                             (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
9776             parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode));
9777             (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
9778         } else
9779             (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
9780     }
9781 #line 9782 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9782     break;
9783
9784   case 533:
9785 #line 3504 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9786     { (yyval.interm.intermNode) = 0; }
9787 #line 9788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9788     break;
9789
9790   case 534:
9791 #line 3505 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9792     { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
9793 #line 9794 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9794     break;
9795
9796   case 535:
9797 #line 3509 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9798     {
9799         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9800     }
9801 #line 9802 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9802     break;
9803
9804   case 536:
9805 #line 3512 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9806     {
9807         parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
9808         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9809     }
9810 #line 9811 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9811     break;
9812
9813   case 537:
9814 #line 3518 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9815     {
9816         parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
9817         (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
9818     }
9819 #line 9820 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9820     break;
9821
9822   case 538:
9823 #line 3525 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9824     {
9825         (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
9826         (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
9827     }
9828 #line 9829 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9829     break;
9830
9831   case 539:
9832 #line 3529 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9833     {
9834         (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
9835         (yyval.interm.nodePair).node2 = 0;
9836     }
9837 #line 9838 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9838     break;
9839
9840   case 540:
9841 #line 3537 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9842     {
9843         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
9844         parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
9845     }
9846 #line 9847 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9847     break;
9848
9849   case 541:
9850 #line 3541 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9851     {
9852         parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
9853
9854         TType type((yyvsp[-3].interm.type));
9855         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
9856         if (initNode)
9857             (yyval.interm.intermTypedNode) = initNode->getAsTyped();
9858         else
9859             (yyval.interm.intermTypedNode) = 0;
9860     }
9861 #line 9862 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9862     break;
9863
9864   case 542:
9865 #line 3554 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9866     {
9867         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9868     }
9869 #line 9870 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9870     break;
9871
9872   case 543:
9873 #line 3557 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9874     {
9875         parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
9876         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9877     }
9878 #line 9879 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9879     break;
9880
9881   case 544:
9882 #line 3563 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9883     {
9884         // start new switch sequence on the switch stack
9885         ++parseContext.controlFlowNestingLevel;
9886         ++parseContext.statementNestingLevel;
9887         parseContext.switchSequenceStack.push_back(new TIntermSequence);
9888         parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
9889         parseContext.symbolTable.push();
9890     }
9891 #line 9892 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9892     break;
9893
9894   case 545:
9895 #line 3571 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9896     {
9897         (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
9898         delete parseContext.switchSequenceStack.back();
9899         parseContext.switchSequenceStack.pop_back();
9900         parseContext.switchLevel.pop_back();
9901         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9902         --parseContext.statementNestingLevel;
9903         --parseContext.controlFlowNestingLevel;
9904     }
9905 #line 9906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9906     break;
9907
9908   case 546:
9909 #line 3583 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9910     {
9911         (yyval.interm.intermNode) = 0;
9912     }
9913 #line 9914 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9914     break;
9915
9916   case 547:
9917 #line 3586 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9918     {
9919         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9920     }
9921 #line 9922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9922     break;
9923
9924   case 548:
9925 #line 3592 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9926     {
9927         (yyval.interm.intermNode) = 0;
9928         if (parseContext.switchLevel.size() == 0)
9929             parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", "");
9930         else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
9931             parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", "");
9932         else {
9933             parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case");
9934             parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case");
9935             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
9936         }
9937     }
9938 #line 9939 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9939     break;
9940
9941   case 549:
9942 #line 3604 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9943     {
9944         (yyval.interm.intermNode) = 0;
9945         if (parseContext.switchLevel.size() == 0)
9946             parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", "");
9947         else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
9948             parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", "");
9949         else
9950             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
9951     }
9952 #line 9953 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9953     break;
9954
9955   case 550:
9956 #line 3616 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9957     {
9958         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9959     }
9960 #line 9961 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9961     break;
9962
9963   case 551:
9964 #line 3619 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9965     {
9966         parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
9967         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9968     }
9969 #line 9970 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9970     break;
9971
9972   case 552:
9973 #line 3625 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9974     {
9975         if (! parseContext.limits.whileLoops)
9976             parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
9977         parseContext.symbolTable.push();
9978         ++parseContext.loopNestingLevel;
9979         ++parseContext.statementNestingLevel;
9980         ++parseContext.controlFlowNestingLevel;
9981     }
9982 #line 9983 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9983     break;
9984
9985   case 553:
9986 #line 3633 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9987     {
9988         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9989         (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
9990         --parseContext.loopNestingLevel;
9991         --parseContext.statementNestingLevel;
9992         --parseContext.controlFlowNestingLevel;
9993     }
9994 #line 9995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
9995     break;
9996
9997   case 554:
9998 #line 3640 "MachineIndependent/glslang.y" /* yacc.c:1646  */
9999     {
10000         ++parseContext.loopNestingLevel;
10001         ++parseContext.statementNestingLevel;
10002         ++parseContext.controlFlowNestingLevel;
10003     }
10004 #line 10005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10005     break;
10006
10007   case 555:
10008 #line 3645 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10009     {
10010         if (! parseContext.limits.whileLoops)
10011             parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
10012
10013         parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode));
10014
10015         (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc);
10016         --parseContext.loopNestingLevel;
10017         --parseContext.statementNestingLevel;
10018         --parseContext.controlFlowNestingLevel;
10019     }
10020 #line 10021 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10021     break;
10022
10023   case 556:
10024 #line 3656 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10025     {
10026         parseContext.symbolTable.push();
10027         ++parseContext.loopNestingLevel;
10028         ++parseContext.statementNestingLevel;
10029         ++parseContext.controlFlowNestingLevel;
10030     }
10031 #line 10032 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10032     break;
10033
10034   case 557:
10035 #line 3662 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10036     {
10037         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10038         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
10039         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);
10040         if (! parseContext.limits.nonInductiveForLoops)
10041             parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop);
10042         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc);
10043         (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
10044         --parseContext.loopNestingLevel;
10045         --parseContext.statementNestingLevel;
10046         --parseContext.controlFlowNestingLevel;
10047     }
10048 #line 10049 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10049     break;
10050
10051   case 558:
10052 #line 3677 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10053     {
10054         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10055     }
10056 #line 10057 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10057     break;
10058
10059   case 559:
10060 #line 3680 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10061     {
10062         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10063     }
10064 #line 10065 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10065     break;
10066
10067   case 560:
10068 #line 3686 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10069     {
10070         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
10071     }
10072 #line 10073 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10073     break;
10074
10075   case 561:
10076 #line 3689 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10077     {
10078         (yyval.interm.intermTypedNode) = 0;
10079     }
10080 #line 10081 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10081     break;
10082
10083   case 562:
10084 #line 3695 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10085     {
10086         (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
10087         (yyval.interm.nodePair).node2 = 0;
10088     }
10089 #line 10090 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10090     break;
10091
10092   case 563:
10093 #line 3699 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10094     {
10095         (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
10096         (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
10097     }
10098 #line 10099 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10099     break;
10100
10101   case 564:
10102 #line 3706 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10103     {
10104         if (parseContext.loopNestingLevel <= 0)
10105             parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
10106         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
10107     }
10108 #line 10109 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10109     break;
10110
10111   case 565:
10112 #line 3711 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10113     {
10114         if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
10115             parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
10116         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
10117     }
10118 #line 10119 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10119     break;
10120
10121   case 566:
10122 #line 3716 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10123     {
10124         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
10125         if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
10126             parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", "");
10127         if (parseContext.inMain)
10128             parseContext.postEntryPointReturn = true;
10129     }
10130 #line 10131 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10131     break;
10132
10133   case 567:
10134 #line 3723 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10135     {
10136         (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
10137     }
10138 #line 10139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10139     break;
10140
10141   case 568:
10142 #line 3726 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10143     {
10144         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
10145         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
10146     }
10147 #line 10148 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10148     break;
10149
10150   case 569:
10151 #line 3735 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10152     {
10153         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10154         parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
10155     }
10156 #line 10157 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10157     break;
10158
10159   case 570:
10160 #line 3739 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10161     {
10162         if ((yyvsp[0].interm.intermNode) != nullptr) {
10163             (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
10164             parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
10165         }
10166     }
10167 #line 10168 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10168     break;
10169
10170   case 571:
10171 #line 3748 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10172     {
10173         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10174     }
10175 #line 10176 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10176     break;
10177
10178   case 572:
10179 #line 3751 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10180     {
10181         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10182     }
10183 #line 10184 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10184     break;
10185
10186   case 573:
10187 #line 3754 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10188     {
10189         parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
10190         parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
10191         (yyval.interm.intermNode) = nullptr;
10192     }
10193 #line 10194 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10194     break;
10195
10196   case 574:
10197 #line 3762 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10198     {
10199         (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
10200         (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
10201     }
10202 #line 10203 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10203     break;
10204
10205   case 575:
10206 #line 3766 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10207     {
10208         //   May be best done as post process phase on intermediate code
10209         if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
10210             parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str());
10211         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10212         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode));
10213         parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc);
10214         (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str());
10215
10216         // store the pragma information for debug and optimize and other vendor specific
10217         // information. This information can be queried from the parse tree
10218         (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize);
10219         (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
10220         (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable);
10221     }
10222 #line 10223 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10223     break;
10224
10225   case 576:
10226 #line 3784 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10227     {
10228         (yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
10229         parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute");
10230     }
10231 #line 10232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10232     break;
10233
10234   case 577:
10235 #line 3790 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10236     {
10237         (yyval.interm.attributes) = (yyvsp[0].interm.attributes);
10238     }
10239 #line 10240 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10240     break;
10241
10242   case 578:
10243 #line 3793 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10244     {
10245         (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
10246     }
10247 #line 10248 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10248     break;
10249
10250   case 579:
10251 #line 3798 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10252     {
10253         (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
10254     }
10255 #line 10256 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10256     break;
10257
10258   case 580:
10259 #line 3801 "MachineIndependent/glslang.y" /* yacc.c:1646  */
10260     {
10261         (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
10262     }
10263 #line 10264 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10264     break;
10265
10266
10267 #line 10268 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
10268       default: break;
10269     }
10270   /* User semantic actions sometimes alter yychar, and that requires
10271      that yytoken be updated with the new translation.  We take the
10272      approach of translating immediately before every use of yytoken.
10273      One alternative is translating here after every semantic action,
10274      but that translation would be missed if the semantic action invokes
10275      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
10276      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
10277      incorrect destructor might then be invoked immediately.  In the
10278      case of YYERROR or YYBACKUP, subsequent parser actions might lead
10279      to an incorrect destructor call or verbose syntax error message
10280      before the lookahead is translated.  */
10281   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
10282
10283   YYPOPSTACK (yylen);
10284   yylen = 0;
10285   YY_STACK_PRINT (yyss, yyssp);
10286
10287   *++yyvsp = yyval;
10288
10289   /* Now 'shift' the result of the reduction.  Determine what state
10290      that goes to, based on the state we popped back to and the rule
10291      number reduced by.  */
10292
10293   yyn = yyr1[yyn];
10294
10295   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
10296   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
10297     yystate = yytable[yystate];
10298   else
10299     yystate = yydefgoto[yyn - YYNTOKENS];
10300
10301   goto yynewstate;
10302
10303
10304 /*--------------------------------------.
10305 | yyerrlab -- here on detecting error.  |
10306 `--------------------------------------*/
10307 yyerrlab:
10308   /* Make sure we have latest lookahead translation.  See comments at
10309      user semantic actions for why this is necessary.  */
10310   yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
10311
10312   /* If not already recovering from an error, report this error.  */
10313   if (!yyerrstatus)
10314     {
10315       ++yynerrs;
10316 #if ! YYERROR_VERBOSE
10317       yyerror (pParseContext, YY_("syntax error"));
10318 #else
10319 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
10320                                         yyssp, yytoken)
10321       {
10322         char const *yymsgp = YY_("syntax error");
10323         int yysyntax_error_status;
10324         yysyntax_error_status = YYSYNTAX_ERROR;
10325         if (yysyntax_error_status == 0)
10326           yymsgp = yymsg;
10327         else if (yysyntax_error_status == 1)
10328           {
10329             if (yymsg != yymsgbuf)
10330               YYSTACK_FREE (yymsg);
10331             yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
10332             if (!yymsg)
10333               {
10334                 yymsg = yymsgbuf;
10335                 yymsg_alloc = sizeof yymsgbuf;
10336                 yysyntax_error_status = 2;
10337               }
10338             else
10339               {
10340                 yysyntax_error_status = YYSYNTAX_ERROR;
10341                 yymsgp = yymsg;
10342               }
10343           }
10344         yyerror (pParseContext, yymsgp);
10345         if (yysyntax_error_status == 2)
10346           goto yyexhaustedlab;
10347       }
10348 # undef YYSYNTAX_ERROR
10349 #endif
10350     }
10351
10352
10353
10354   if (yyerrstatus == 3)
10355     {
10356       /* If just tried and failed to reuse lookahead token after an
10357          error, discard it.  */
10358
10359       if (yychar <= YYEOF)
10360         {
10361           /* Return failure if at end of input.  */
10362           if (yychar == YYEOF)
10363             YYABORT;
10364         }
10365       else
10366         {
10367           yydestruct ("Error: discarding",
10368                       yytoken, &yylval, pParseContext);
10369           yychar = YYEMPTY;
10370         }
10371     }
10372
10373   /* Else will try to reuse lookahead token after shifting the error
10374      token.  */
10375   goto yyerrlab1;
10376
10377
10378 /*---------------------------------------------------.
10379 | yyerrorlab -- error raised explicitly by YYERROR.  |
10380 `---------------------------------------------------*/
10381 yyerrorlab:
10382
10383   /* Pacify compilers like GCC when the user code never invokes
10384      YYERROR and the label yyerrorlab therefore never appears in user
10385      code.  */
10386   if (/*CONSTCOND*/ 0)
10387      goto yyerrorlab;
10388
10389   /* Do not reclaim the symbols of the rule whose action triggered
10390      this YYERROR.  */
10391   YYPOPSTACK (yylen);
10392   yylen = 0;
10393   YY_STACK_PRINT (yyss, yyssp);
10394   yystate = *yyssp;
10395   goto yyerrlab1;
10396
10397
10398 /*-------------------------------------------------------------.
10399 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
10400 `-------------------------------------------------------------*/
10401 yyerrlab1:
10402   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
10403
10404   for (;;)
10405     {
10406       yyn = yypact[yystate];
10407       if (!yypact_value_is_default (yyn))
10408         {
10409           yyn += YYTERROR;
10410           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
10411             {
10412               yyn = yytable[yyn];
10413               if (0 < yyn)
10414                 break;
10415             }
10416         }
10417
10418       /* Pop the current state because it cannot handle the error token.  */
10419       if (yyssp == yyss)
10420         YYABORT;
10421
10422
10423       yydestruct ("Error: popping",
10424                   yystos[yystate], yyvsp, pParseContext);
10425       YYPOPSTACK (1);
10426       yystate = *yyssp;
10427       YY_STACK_PRINT (yyss, yyssp);
10428     }
10429
10430   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
10431   *++yyvsp = yylval;
10432   YY_IGNORE_MAYBE_UNINITIALIZED_END
10433
10434
10435   /* Shift the error token.  */
10436   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
10437
10438   yystate = yyn;
10439   goto yynewstate;
10440
10441
10442 /*-------------------------------------.
10443 | yyacceptlab -- YYACCEPT comes here.  |
10444 `-------------------------------------*/
10445 yyacceptlab:
10446   yyresult = 0;
10447   goto yyreturn;
10448
10449 /*-----------------------------------.
10450 | yyabortlab -- YYABORT comes here.  |
10451 `-----------------------------------*/
10452 yyabortlab:
10453   yyresult = 1;
10454   goto yyreturn;
10455
10456 #if !defined yyoverflow || YYERROR_VERBOSE
10457 /*-------------------------------------------------.
10458 | yyexhaustedlab -- memory exhaustion comes here.  |
10459 `-------------------------------------------------*/
10460 yyexhaustedlab:
10461   yyerror (pParseContext, YY_("memory exhausted"));
10462   yyresult = 2;
10463   /* Fall through.  */
10464 #endif
10465
10466 yyreturn:
10467   if (yychar != YYEMPTY)
10468     {
10469       /* Make sure we have latest lookahead translation.  See comments at
10470          user semantic actions for why this is necessary.  */
10471       yytoken = YYTRANSLATE (yychar);
10472       yydestruct ("Cleanup: discarding lookahead",
10473                   yytoken, &yylval, pParseContext);
10474     }
10475   /* Do not reclaim the symbols of the rule whose action triggered
10476      this YYABORT or YYACCEPT.  */
10477   YYPOPSTACK (yylen);
10478   YY_STACK_PRINT (yyss, yyssp);
10479   while (yyssp != yyss)
10480     {
10481       yydestruct ("Cleanup: popping",
10482                   yystos[*yyssp], yyvsp, pParseContext);
10483       YYPOPSTACK (1);
10484     }
10485 #ifndef yyoverflow
10486   if (yyss != yyssa)
10487     YYSTACK_FREE (yyss);
10488 #endif
10489 #if YYERROR_VERBOSE
10490   if (yymsg != yymsgbuf)
10491     YYSTACK_FREE (yymsg);
10492 #endif
10493   return yyresult;
10494 }
10495 #line 3805 "MachineIndependent/glslang.y" /* yacc.c:1906  */
10496