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 69 "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 "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_GLSLANG_TAB_CPP_H_INCLUDED
112 # define YY_YY_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     CONST = 258,
127     BOOL = 259,
128     INT = 260,
129     UINT = 261,
130     FLOAT = 262,
131     BVEC2 = 263,
132     BVEC3 = 264,
133     BVEC4 = 265,
134     IVEC2 = 266,
135     IVEC3 = 267,
136     IVEC4 = 268,
137     UVEC2 = 269,
138     UVEC3 = 270,
139     UVEC4 = 271,
140     VEC2 = 272,
141     VEC3 = 273,
142     VEC4 = 274,
143     MAT2 = 275,
144     MAT3 = 276,
145     MAT4 = 277,
146     MAT2X2 = 278,
147     MAT2X3 = 279,
148     MAT2X4 = 280,
149     MAT3X2 = 281,
150     MAT3X3 = 282,
151     MAT3X4 = 283,
152     MAT4X2 = 284,
153     MAT4X3 = 285,
154     MAT4X4 = 286,
155     SAMPLER2D = 287,
156     SAMPLER3D = 288,
157     SAMPLERCUBE = 289,
158     SAMPLER2DSHADOW = 290,
159     SAMPLERCUBESHADOW = 291,
160     SAMPLER2DARRAY = 292,
161     SAMPLER2DARRAYSHADOW = 293,
162     ISAMPLER2D = 294,
163     ISAMPLER3D = 295,
164     ISAMPLERCUBE = 296,
165     ISAMPLER2DARRAY = 297,
166     USAMPLER2D = 298,
167     USAMPLER3D = 299,
168     USAMPLERCUBE = 300,
169     USAMPLER2DARRAY = 301,
170     SAMPLER = 302,
171     SAMPLERSHADOW = 303,
172     TEXTURE2D = 304,
173     TEXTURE3D = 305,
174     TEXTURECUBE = 306,
175     TEXTURE2DARRAY = 307,
176     ITEXTURE2D = 308,
177     ITEXTURE3D = 309,
178     ITEXTURECUBE = 310,
179     ITEXTURE2DARRAY = 311,
180     UTEXTURE2D = 312,
181     UTEXTURE3D = 313,
182     UTEXTURECUBE = 314,
183     UTEXTURE2DARRAY = 315,
184     ATTRIBUTE = 316,
185     VARYING = 317,
186     FLOAT16_T = 318,
187     FLOAT32_T = 319,
188     DOUBLE = 320,
189     FLOAT64_T = 321,
190     INT64_T = 322,
191     UINT64_T = 323,
192     INT32_T = 324,
193     UINT32_T = 325,
194     INT16_T = 326,
195     UINT16_T = 327,
196     INT8_T = 328,
197     UINT8_T = 329,
198     I64VEC2 = 330,
199     I64VEC3 = 331,
200     I64VEC4 = 332,
201     U64VEC2 = 333,
202     U64VEC3 = 334,
203     U64VEC4 = 335,
204     I32VEC2 = 336,
205     I32VEC3 = 337,
206     I32VEC4 = 338,
207     U32VEC2 = 339,
208     U32VEC3 = 340,
209     U32VEC4 = 341,
210     I16VEC2 = 342,
211     I16VEC3 = 343,
212     I16VEC4 = 344,
213     U16VEC2 = 345,
214     U16VEC3 = 346,
215     U16VEC4 = 347,
216     I8VEC2 = 348,
217     I8VEC3 = 349,
218     I8VEC4 = 350,
219     U8VEC2 = 351,
220     U8VEC3 = 352,
221     U8VEC4 = 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     DMAT2X2 = 378,
247     DMAT2X3 = 379,
248     DMAT2X4 = 380,
249     DMAT3X2 = 381,
250     DMAT3X3 = 382,
251     DMAT3X4 = 383,
252     DMAT4X2 = 384,
253     DMAT4X3 = 385,
254     DMAT4X4 = 386,
255     F16MAT2X2 = 387,
256     F16MAT2X3 = 388,
257     F16MAT2X4 = 389,
258     F16MAT3X2 = 390,
259     F16MAT3X3 = 391,
260     F16MAT3X4 = 392,
261     F16MAT4X2 = 393,
262     F16MAT4X3 = 394,
263     F16MAT4X4 = 395,
264     F32MAT2X2 = 396,
265     F32MAT2X3 = 397,
266     F32MAT2X4 = 398,
267     F32MAT3X2 = 399,
268     F32MAT3X3 = 400,
269     F32MAT3X4 = 401,
270     F32MAT4X2 = 402,
271     F32MAT4X3 = 403,
272     F32MAT4X4 = 404,
273     F64MAT2X2 = 405,
274     F64MAT2X3 = 406,
275     F64MAT2X4 = 407,
276     F64MAT3X2 = 408,
277     F64MAT3X3 = 409,
278     F64MAT3X4 = 410,
279     F64MAT4X2 = 411,
280     F64MAT4X3 = 412,
281     F64MAT4X4 = 413,
282     ATOMIC_UINT = 414,
283     ACCSTRUCTNV = 415,
284     ACCSTRUCTEXT = 416,
285     RAYQUERYEXT = 417,
286     FCOOPMATNV = 418,
287     ICOOPMATNV = 419,
288     UCOOPMATNV = 420,
289     SAMPLERCUBEARRAY = 421,
290     SAMPLERCUBEARRAYSHADOW = 422,
291     ISAMPLERCUBEARRAY = 423,
292     USAMPLERCUBEARRAY = 424,
293     SAMPLER1D = 425,
294     SAMPLER1DARRAY = 426,
295     SAMPLER1DARRAYSHADOW = 427,
296     ISAMPLER1D = 428,
297     SAMPLER1DSHADOW = 429,
298     SAMPLER2DRECT = 430,
299     SAMPLER2DRECTSHADOW = 431,
300     ISAMPLER2DRECT = 432,
301     USAMPLER2DRECT = 433,
302     SAMPLERBUFFER = 434,
303     ISAMPLERBUFFER = 435,
304     USAMPLERBUFFER = 436,
305     SAMPLER2DMS = 437,
306     ISAMPLER2DMS = 438,
307     USAMPLER2DMS = 439,
308     SAMPLER2DMSARRAY = 440,
309     ISAMPLER2DMSARRAY = 441,
310     USAMPLER2DMSARRAY = 442,
311     SAMPLEREXTERNALOES = 443,
312     SAMPLEREXTERNAL2DY2YEXT = 444,
313     ISAMPLER1DARRAY = 445,
314     USAMPLER1D = 446,
315     USAMPLER1DARRAY = 447,
316     F16SAMPLER1D = 448,
317     F16SAMPLER2D = 449,
318     F16SAMPLER3D = 450,
319     F16SAMPLER2DRECT = 451,
320     F16SAMPLERCUBE = 452,
321     F16SAMPLER1DARRAY = 453,
322     F16SAMPLER2DARRAY = 454,
323     F16SAMPLERCUBEARRAY = 455,
324     F16SAMPLERBUFFER = 456,
325     F16SAMPLER2DMS = 457,
326     F16SAMPLER2DMSARRAY = 458,
327     F16SAMPLER1DSHADOW = 459,
328     F16SAMPLER2DSHADOW = 460,
329     F16SAMPLER1DARRAYSHADOW = 461,
330     F16SAMPLER2DARRAYSHADOW = 462,
331     F16SAMPLER2DRECTSHADOW = 463,
332     F16SAMPLERCUBESHADOW = 464,
333     F16SAMPLERCUBEARRAYSHADOW = 465,
334     IMAGE1D = 466,
335     IIMAGE1D = 467,
336     UIMAGE1D = 468,
337     IMAGE2D = 469,
338     IIMAGE2D = 470,
339     UIMAGE2D = 471,
340     IMAGE3D = 472,
341     IIMAGE3D = 473,
342     UIMAGE3D = 474,
343     IMAGE2DRECT = 475,
344     IIMAGE2DRECT = 476,
345     UIMAGE2DRECT = 477,
346     IMAGECUBE = 478,
347     IIMAGECUBE = 479,
348     UIMAGECUBE = 480,
349     IMAGEBUFFER = 481,
350     IIMAGEBUFFER = 482,
351     UIMAGEBUFFER = 483,
352     IMAGE1DARRAY = 484,
353     IIMAGE1DARRAY = 485,
354     UIMAGE1DARRAY = 486,
355     IMAGE2DARRAY = 487,
356     IIMAGE2DARRAY = 488,
357     UIMAGE2DARRAY = 489,
358     IMAGECUBEARRAY = 490,
359     IIMAGECUBEARRAY = 491,
360     UIMAGECUBEARRAY = 492,
361     IMAGE2DMS = 493,
362     IIMAGE2DMS = 494,
363     UIMAGE2DMS = 495,
364     IMAGE2DMSARRAY = 496,
365     IIMAGE2DMSARRAY = 497,
366     UIMAGE2DMSARRAY = 498,
367     F16IMAGE1D = 499,
368     F16IMAGE2D = 500,
369     F16IMAGE3D = 501,
370     F16IMAGE2DRECT = 502,
371     F16IMAGECUBE = 503,
372     F16IMAGE1DARRAY = 504,
373     F16IMAGE2DARRAY = 505,
374     F16IMAGECUBEARRAY = 506,
375     F16IMAGEBUFFER = 507,
376     F16IMAGE2DMS = 508,
377     F16IMAGE2DMSARRAY = 509,
378     TEXTURECUBEARRAY = 510,
379     ITEXTURECUBEARRAY = 511,
380     UTEXTURECUBEARRAY = 512,
381     TEXTURE1D = 513,
382     ITEXTURE1D = 514,
383     UTEXTURE1D = 515,
384     TEXTURE1DARRAY = 516,
385     ITEXTURE1DARRAY = 517,
386     UTEXTURE1DARRAY = 518,
387     TEXTURE2DRECT = 519,
388     ITEXTURE2DRECT = 520,
389     UTEXTURE2DRECT = 521,
390     TEXTUREBUFFER = 522,
391     ITEXTUREBUFFER = 523,
392     UTEXTUREBUFFER = 524,
393     TEXTURE2DMS = 525,
394     ITEXTURE2DMS = 526,
395     UTEXTURE2DMS = 527,
396     TEXTURE2DMSARRAY = 528,
397     ITEXTURE2DMSARRAY = 529,
398     UTEXTURE2DMSARRAY = 530,
399     F16TEXTURE1D = 531,
400     F16TEXTURE2D = 532,
401     F16TEXTURE3D = 533,
402     F16TEXTURE2DRECT = 534,
403     F16TEXTURECUBE = 535,
404     F16TEXTURE1DARRAY = 536,
405     F16TEXTURE2DARRAY = 537,
406     F16TEXTURECUBEARRAY = 538,
407     F16TEXTUREBUFFER = 539,
408     F16TEXTURE2DMS = 540,
409     F16TEXTURE2DMSARRAY = 541,
410     SUBPASSINPUT = 542,
411     SUBPASSINPUTMS = 543,
412     ISUBPASSINPUT = 544,
413     ISUBPASSINPUTMS = 545,
414     USUBPASSINPUT = 546,
415     USUBPASSINPUTMS = 547,
416     F16SUBPASSINPUT = 548,
417     F16SUBPASSINPUTMS = 549,
418     LEFT_OP = 550,
419     RIGHT_OP = 551,
420     INC_OP = 552,
421     DEC_OP = 553,
422     LE_OP = 554,
423     GE_OP = 555,
424     EQ_OP = 556,
425     NE_OP = 557,
426     AND_OP = 558,
427     OR_OP = 559,
428     XOR_OP = 560,
429     MUL_ASSIGN = 561,
430     DIV_ASSIGN = 562,
431     ADD_ASSIGN = 563,
432     MOD_ASSIGN = 564,
433     LEFT_ASSIGN = 565,
434     RIGHT_ASSIGN = 566,
435     AND_ASSIGN = 567,
436     XOR_ASSIGN = 568,
437     OR_ASSIGN = 569,
438     SUB_ASSIGN = 570,
439     STRING_LITERAL = 571,
440     LEFT_PAREN = 572,
441     RIGHT_PAREN = 573,
442     LEFT_BRACKET = 574,
443     RIGHT_BRACKET = 575,
444     LEFT_BRACE = 576,
445     RIGHT_BRACE = 577,
446     DOT = 578,
447     COMMA = 579,
448     COLON = 580,
449     EQUAL = 581,
450     SEMICOLON = 582,
451     BANG = 583,
452     DASH = 584,
453     TILDE = 585,
454     PLUS = 586,
455     STAR = 587,
456     SLASH = 588,
457     PERCENT = 589,
458     LEFT_ANGLE = 590,
459     RIGHT_ANGLE = 591,
460     VERTICAL_BAR = 592,
461     CARET = 593,
462     AMPERSAND = 594,
463     QUESTION = 595,
464     INVARIANT = 596,
465     HIGH_PRECISION = 597,
466     MEDIUM_PRECISION = 598,
467     LOW_PRECISION = 599,
468     PRECISION = 600,
469     PACKED = 601,
470     RESOURCE = 602,
471     SUPERP = 603,
472     FLOATCONSTANT = 604,
473     INTCONSTANT = 605,
474     UINTCONSTANT = 606,
475     BOOLCONSTANT = 607,
476     IDENTIFIER = 608,
477     TYPE_NAME = 609,
478     CENTROID = 610,
479     IN = 611,
480     OUT = 612,
481     INOUT = 613,
482     STRUCT = 614,
483     VOID = 615,
484     WHILE = 616,
485     BREAK = 617,
486     CONTINUE = 618,
487     DO = 619,
488     ELSE = 620,
489     FOR = 621,
490     IF = 622,
491     DISCARD = 623,
492     RETURN = 624,
493     SWITCH = 625,
494     CASE = 626,
495     DEFAULT = 627,
496     UNIFORM = 628,
497     SHARED = 629,
498     BUFFER = 630,
499     FLAT = 631,
500     SMOOTH = 632,
501     LAYOUT = 633,
502     DOUBLECONSTANT = 634,
503     INT16CONSTANT = 635,
504     UINT16CONSTANT = 636,
505     FLOAT16CONSTANT = 637,
506     INT32CONSTANT = 638,
507     UINT32CONSTANT = 639,
508     INT64CONSTANT = 640,
509     UINT64CONSTANT = 641,
510     SUBROUTINE = 642,
511     DEMOTE = 643,
512     PAYLOADNV = 644,
513     PAYLOADINNV = 645,
514     HITATTRNV = 646,
515     CALLDATANV = 647,
516     CALLDATAINNV = 648,
517     PAYLOADEXT = 649,
518     PAYLOADINEXT = 650,
519     HITATTREXT = 651,
520     CALLDATAEXT = 652,
521     CALLDATAINEXT = 653,
522     PATCH = 654,
523     SAMPLE = 655,
524     NONUNIFORM = 656,
525     COHERENT = 657,
526     VOLATILE = 658,
527     RESTRICT = 659,
528     READONLY = 660,
529     WRITEONLY = 661,
530     DEVICECOHERENT = 662,
531     QUEUEFAMILYCOHERENT = 663,
532     WORKGROUPCOHERENT = 664,
533     SUBGROUPCOHERENT = 665,
534     NONPRIVATE = 666,
535     SHADERCALLCOHERENT = 667,
536     NOPERSPECTIVE = 668,
537     EXPLICITINTERPAMD = 669,
538     PERVERTEXNV = 670,
539     PERPRIMITIVENV = 671,
540     PERVIEWNV = 672,
541     PERTASKNV = 673,
542     PRECISE = 674
543   };
544 #endif
545 
546 /* Value type.  */
547 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
548 
549 union YYSTYPE
550 {
551 #line 97 "glslang.y" /* yacc.c:355  */
552 
553     struct {
554         glslang::TSourceLoc loc;
555         union {
556             glslang::TString *string;
557             int i;
558             unsigned int u;
559             long long i64;
560             unsigned long long u64;
561             bool b;
562             double d;
563         };
564         glslang::TSymbol* symbol;
565     } lex;
566     struct {
567         glslang::TSourceLoc loc;
568         glslang::TOperator op;
569         union {
570             TIntermNode* intermNode;
571             glslang::TIntermNodePair nodePair;
572             glslang::TIntermTyped* intermTypedNode;
573             glslang::TAttributes* attributes;
574         };
575         union {
576             glslang::TPublicType type;
577             glslang::TFunction* function;
578             glslang::TParameter param;
579             glslang::TTypeLoc typeLine;
580             glslang::TTypeList* typeList;
581             glslang::TArraySizes* arraySizes;
582             glslang::TIdentifierList* identifierList;
583         };
584         glslang::TArraySizes* typeParameters;
585     } interm;
586 
587 #line 588 "glslang_tab.cpp" /* yacc.c:355  */
588 };
589 
590 typedef union YYSTYPE YYSTYPE;
591 # define YYSTYPE_IS_TRIVIAL 1
592 # define YYSTYPE_IS_DECLARED 1
593 #endif
594 
595 
596 
597 int yyparse (glslang::TParseContext* pParseContext);
598 
599 #endif /* !YY_YY_GLSLANG_TAB_CPP_H_INCLUDED  */
600 
601 /* Copy the second part of user declarations.  */
602 #line 133 "glslang.y" /* yacc.c:358  */
603 
604 
605 /* windows only pragma */
606 #ifdef _MSC_VER
607     #pragma warning(disable : 4065)
608     #pragma warning(disable : 4127)
609     #pragma warning(disable : 4244)
610 #endif
611 
612 #define parseContext (*pParseContext)
613 #define yyerror(context, msg) context->parserError(msg)
614 
615 extern int yylex(YYSTYPE*, TParseContext&);
616 
617 
618 #line 619 "glslang_tab.cpp" /* yacc.c:358  */
619 
620 #ifdef short
621 # undef short
622 #endif
623 
624 #ifdef YYTYPE_UINT8
625 typedef YYTYPE_UINT8 yytype_uint8;
626 #else
627 typedef unsigned char yytype_uint8;
628 #endif
629 
630 #ifdef YYTYPE_INT8
631 typedef YYTYPE_INT8 yytype_int8;
632 #else
633 typedef signed char yytype_int8;
634 #endif
635 
636 #ifdef YYTYPE_UINT16
637 typedef YYTYPE_UINT16 yytype_uint16;
638 #else
639 typedef unsigned short int yytype_uint16;
640 #endif
641 
642 #ifdef YYTYPE_INT16
643 typedef YYTYPE_INT16 yytype_int16;
644 #else
645 typedef short int yytype_int16;
646 #endif
647 
648 #ifndef YYSIZE_T
649 # ifdef __SIZE_TYPE__
650 #  define YYSIZE_T __SIZE_TYPE__
651 # elif defined size_t
652 #  define YYSIZE_T size_t
653 # elif ! defined YYSIZE_T
654 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
655 #  define YYSIZE_T size_t
656 # else
657 #  define YYSIZE_T unsigned int
658 # endif
659 #endif
660 
661 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
662 
663 #ifndef YY_
664 # if defined YYENABLE_NLS && YYENABLE_NLS
665 #  if ENABLE_NLS
666 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
667 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
668 #  endif
669 # endif
670 # ifndef YY_
671 #  define YY_(Msgid) Msgid
672 # endif
673 #endif
674 
675 #ifndef YY_ATTRIBUTE
676 # if (defined __GNUC__                                               \
677       && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
678      || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
679 #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
680 # else
681 #  define YY_ATTRIBUTE(Spec) /* empty */
682 # endif
683 #endif
684 
685 #ifndef YY_ATTRIBUTE_PURE
686 # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
687 #endif
688 
689 #ifndef YY_ATTRIBUTE_UNUSED
690 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
691 #endif
692 
693 #if !defined _Noreturn \
694      && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
695 # if defined _MSC_VER && 1200 <= _MSC_VER
696 #  define _Noreturn __declspec (noreturn)
697 # else
698 #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
699 # endif
700 #endif
701 
702 /* Suppress unused-variable warnings by "using" E.  */
703 #if ! defined lint || defined __GNUC__
704 # define YYUSE(E) ((void) (E))
705 #else
706 # define YYUSE(E) /* empty */
707 #endif
708 
709 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
710 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
711 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
712     _Pragma ("GCC diagnostic push") \
713     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
714     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
715 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
716     _Pragma ("GCC diagnostic pop")
717 #else
718 # define YY_INITIAL_VALUE(Value) Value
719 #endif
720 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
721 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
722 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
723 #endif
724 #ifndef YY_INITIAL_VALUE
725 # define YY_INITIAL_VALUE(Value) /* Nothing. */
726 #endif
727 
728 
729 #if ! defined yyoverflow || YYERROR_VERBOSE
730 
731 /* The parser invokes alloca or malloc; define the necessary symbols.  */
732 
733 # ifdef YYSTACK_USE_ALLOCA
734 #  if YYSTACK_USE_ALLOCA
735 #   ifdef __GNUC__
736 #    define YYSTACK_ALLOC __builtin_alloca
737 #   elif defined __BUILTIN_VA_ARG_INCR
738 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
739 #   elif defined _AIX
740 #    define YYSTACK_ALLOC __alloca
741 #   elif defined _MSC_VER
742 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
743 #    define alloca _alloca
744 #   else
745 #    define YYSTACK_ALLOC alloca
746 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
747 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
748       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
749 #     ifndef EXIT_SUCCESS
750 #      define EXIT_SUCCESS 0
751 #     endif
752 #    endif
753 #   endif
754 #  endif
755 # endif
756 
757 # ifdef YYSTACK_ALLOC
758    /* Pacify GCC's 'empty if-body' warning.  */
759 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
760 #  ifndef YYSTACK_ALLOC_MAXIMUM
761     /* The OS might guarantee only one guard page at the bottom of the stack,
762        and a page size can be as small as 4096 bytes.  So we cannot safely
763        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
764        to allow for a few compiler-allocated temporary stack slots.  */
765 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
766 #  endif
767 # else
768 #  define YYSTACK_ALLOC YYMALLOC
769 #  define YYSTACK_FREE YYFREE
770 #  ifndef YYSTACK_ALLOC_MAXIMUM
771 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
772 #  endif
773 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
774        && ! ((defined YYMALLOC || defined malloc) \
775              && (defined YYFREE || defined free)))
776 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
777 #   ifndef EXIT_SUCCESS
778 #    define EXIT_SUCCESS 0
779 #   endif
780 #  endif
781 #  ifndef YYMALLOC
782 #   define YYMALLOC malloc
783 #   if ! defined malloc && ! defined EXIT_SUCCESS
784 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
785 #   endif
786 #  endif
787 #  ifndef YYFREE
788 #   define YYFREE free
789 #   if ! defined free && ! defined EXIT_SUCCESS
790 void free (void *); /* INFRINGES ON USER NAME SPACE */
791 #   endif
792 #  endif
793 # endif
794 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
795 
796 
797 #if (! defined yyoverflow \
798      && (! defined __cplusplus \
799          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
800 
801 /* A type that is properly aligned for any stack member.  */
802 union yyalloc
803 {
804   yytype_int16 yyss_alloc;
805   YYSTYPE yyvs_alloc;
806 };
807 
808 /* The size of the maximum gap between one aligned stack and the next.  */
809 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
810 
811 /* The size of an array large to enough to hold all stacks, each with
812    N elements.  */
813 # define YYSTACK_BYTES(N) \
814      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
815       + YYSTACK_GAP_MAXIMUM)
816 
817 # define YYCOPY_NEEDED 1
818 
819 /* Relocate STACK from its old location to the new one.  The
820    local variables YYSIZE and YYSTACKSIZE give the old and new number of
821    elements in the stack, and YYPTR gives the new location of the
822    stack.  Advance YYPTR to a properly aligned location for the next
823    stack.  */
824 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
825     do                                                                  \
826       {                                                                 \
827         YYSIZE_T yynewbytes;                                            \
828         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
829         Stack = &yyptr->Stack_alloc;                                    \
830         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
831         yyptr += yynewbytes / sizeof (*yyptr);                          \
832       }                                                                 \
833     while (0)
834 
835 #endif
836 
837 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
838 /* Copy COUNT objects from SRC to DST.  The source and destination do
839    not overlap.  */
840 # ifndef YYCOPY
841 #  if defined __GNUC__ && 1 < __GNUC__
842 #   define YYCOPY(Dst, Src, Count) \
843       __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
844 #  else
845 #   define YYCOPY(Dst, Src, Count)              \
846       do                                        \
847         {                                       \
848           YYSIZE_T yyi;                         \
849           for (yyi = 0; yyi < (Count); yyi++)   \
850             (Dst)[yyi] = (Src)[yyi];            \
851         }                                       \
852       while (0)
853 #  endif
854 # endif
855 #endif /* !YYCOPY_NEEDED */
856 
857 /* YYFINAL -- State number of the termination state.  */
858 #define YYFINAL  394
859 /* YYLAST -- Last index in YYTABLE.  */
860 #define YYLAST   9550
861 
862 /* YYNTOKENS -- Number of terminals.  */
863 #define YYNTOKENS  420
864 /* YYNNTS -- Number of nonterminals.  */
865 #define YYNNTS  111
866 /* YYNRULES -- Number of rules.  */
867 #define YYNRULES  591
868 /* YYNSTATES -- Number of states.  */
869 #define YYNSTATES  736
870 
871 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
872    by yylex, with out-of-bounds checking.  */
873 #define YYUNDEFTOK  2
874 #define YYMAXUTOK   674
875 
876 #define YYTRANSLATE(YYX)                                                \
877   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
878 
879 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
880    as returned by yylex, without out-of-bounds checking.  */
881 static const yytype_uint16 yytranslate[] =
882 {
883        0,     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,     2,     2,     2,     2,
898        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
899        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
900        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
901        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
902        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
903        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
904        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
905        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
906        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
907        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
908        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
909        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
910       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
911       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
912       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
913       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
914       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
915       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
916       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
917       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
918       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
919      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
920      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
921      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
922      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
923      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
924      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
925      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
926      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
927      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
928      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
929      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
930      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
931      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
932      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
933      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
934      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
935      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
936      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
937      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
938      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
939      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
940      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
941      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
942      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
943      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
944      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
945      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
946      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
947      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
948      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
949      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
950      415,   416,   417,   418,   419
951 };
952 
953 #if YYDEBUG
954   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
955 static const yytype_uint16 yyrline[] =
956 {
957        0,   357,   357,   363,   366,   371,   374,   377,   381,   385,
958      388,   392,   396,   400,   404,   408,   412,   418,   426,   429,
959      432,   435,   438,   443,   451,   458,   465,   471,   475,   482,
960      485,   491,   498,   508,   516,   521,   549,   558,   564,   568,
961      572,   592,   593,   594,   595,   601,   602,   607,   612,   621,
962      622,   627,   635,   636,   642,   651,   652,   657,   662,   667,
963      675,   676,   685,   697,   698,   707,   708,   717,   718,   727,
964      728,   736,   737,   745,   746,   754,   755,   755,   773,   774,
965      790,   794,   798,   802,   807,   811,   815,   819,   823,   827,
966      831,   838,   841,   852,   859,   864,   869,   876,   880,   884,
967      888,   893,   898,   907,   907,   918,   922,   929,   936,   939,
968      946,   954,   974,   997,  1012,  1037,  1048,  1058,  1068,  1078,
969     1087,  1090,  1094,  1098,  1103,  1111,  1118,  1123,  1128,  1133,
970     1142,  1152,  1179,  1188,  1195,  1203,  1210,  1217,  1225,  1235,
971     1242,  1253,  1259,  1262,  1269,  1273,  1277,  1286,  1296,  1299,
972     1310,  1313,  1316,  1320,  1324,  1329,  1333,  1340,  1344,  1349,
973     1355,  1361,  1368,  1373,  1381,  1387,  1399,  1413,  1419,  1424,
974     1432,  1440,  1448,  1456,  1464,  1472,  1480,  1488,  1495,  1502,
975     1506,  1511,  1516,  1521,  1526,  1531,  1536,  1540,  1544,  1548,
976     1552,  1558,  1569,  1576,  1579,  1588,  1593,  1603,  1608,  1616,
977     1620,  1630,  1633,  1639,  1645,  1652,  1662,  1666,  1670,  1674,
978     1679,  1683,  1688,  1693,  1698,  1703,  1708,  1713,  1718,  1723,
979     1728,  1734,  1740,  1746,  1751,  1756,  1761,  1766,  1771,  1776,
980     1781,  1786,  1791,  1796,  1801,  1807,  1814,  1819,  1824,  1829,
981     1834,  1839,  1844,  1849,  1854,  1859,  1864,  1869,  1877,  1885,
982     1893,  1899,  1905,  1911,  1917,  1923,  1929,  1935,  1941,  1947,
983     1953,  1959,  1965,  1971,  1977,  1983,  1989,  1995,  2001,  2007,
984     2013,  2019,  2025,  2031,  2037,  2043,  2049,  2055,  2061,  2067,
985     2073,  2079,  2085,  2091,  2099,  2107,  2115,  2123,  2131,  2139,
986     2147,  2155,  2163,  2171,  2179,  2187,  2193,  2199,  2205,  2211,
987     2217,  2223,  2229,  2235,  2241,  2247,  2253,  2259,  2265,  2271,
988     2277,  2283,  2289,  2295,  2301,  2307,  2313,  2319,  2325,  2331,
989     2337,  2343,  2349,  2355,  2361,  2367,  2373,  2379,  2385,  2391,
990     2397,  2403,  2407,  2411,  2415,  2420,  2426,  2431,  2436,  2441,
991     2446,  2451,  2456,  2462,  2467,  2472,  2477,  2482,  2487,  2493,
992     2499,  2505,  2511,  2517,  2523,  2529,  2535,  2541,  2547,  2553,
993     2559,  2565,  2571,  2576,  2581,  2586,  2591,  2596,  2601,  2607,
994     2612,  2617,  2622,  2627,  2632,  2637,  2642,  2648,  2653,  2658,
995     2663,  2668,  2673,  2678,  2683,  2688,  2693,  2698,  2703,  2708,
996     2713,  2718,  2724,  2729,  2734,  2740,  2746,  2751,  2756,  2761,
997     2767,  2772,  2777,  2782,  2788,  2793,  2798,  2803,  2809,  2814,
998     2819,  2824,  2830,  2836,  2842,  2848,  2853,  2859,  2865,  2871,
999     2876,  2881,  2886,  2891,  2896,  2902,  2907,  2912,  2917,  2923,
1000     2928,  2933,  2938,  2944,  2949,  2954,  2959,  2965,  2970,  2975,
1001     2980,  2986,  2991,  2996,  3001,  3007,  3012,  3017,  3022,  3028,
1002     3033,  3038,  3043,  3049,  3054,  3059,  3064,  3070,  3075,  3080,
1003     3085,  3091,  3096,  3101,  3106,  3112,  3117,  3122,  3127,  3133,
1004     3138,  3143,  3148,  3154,  3159,  3164,  3169,  3175,  3180,  3185,
1005     3190,  3196,  3201,  3206,  3212,  3218,  3224,  3230,  3237,  3244,
1006     3250,  3256,  3262,  3268,  3274,  3280,  3287,  3292,  3308,  3313,
1007     3318,  3326,  3326,  3337,  3337,  3347,  3350,  3363,  3385,  3412,
1008     3416,  3422,  3427,  3438,  3442,  3448,  3459,  3462,  3469,  3473,
1009     3474,  3480,  3481,  3482,  3483,  3484,  3485,  3486,  3488,  3494,
1010     3503,  3504,  3508,  3504,  3520,  3521,  3525,  3525,  3532,  3532,
1011     3546,  3549,  3557,  3565,  3576,  3577,  3581,  3585,  3592,  3599,
1012     3603,  3611,  3615,  3628,  3632,  3639,  3639,  3659,  3662,  3668,
1013     3680,  3692,  3696,  3703,  3703,  3718,  3718,  3734,  3734,  3755,
1014     3758,  3764,  3767,  3773,  3777,  3784,  3789,  3794,  3801,  3804,
1015     3813,  3817,  3826,  3829,  3833,  3842,  3842,  3865,  3871,  3874,
1016     3879,  3882
1017 };
1018 #endif
1019 
1020 #if YYDEBUG || YYERROR_VERBOSE || 1
1021 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1022    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1023 static const char *const yytname[] =
1024 {
1025   "$end", "error", "$undefined", "CONST", "BOOL", "INT", "UINT", "FLOAT",
1026   "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", "UVEC2", "UVEC3",
1027   "UVEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3", "MAT4", "MAT2X2",
1028   "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3",
1029   "MAT4X4", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE", "SAMPLER2DSHADOW",
1030   "SAMPLERCUBESHADOW", "SAMPLER2DARRAY", "SAMPLER2DARRAYSHADOW",
1031   "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE", "ISAMPLER2DARRAY",
1032   "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER2DARRAY", "SAMPLER",
1033   "SAMPLERSHADOW", "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE",
1034   "TEXTURE2DARRAY", "ITEXTURE2D", "ITEXTURE3D", "ITEXTURECUBE",
1035   "ITEXTURE2DARRAY", "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE",
1036   "UTEXTURE2DARRAY", "ATTRIBUTE", "VARYING", "FLOAT16_T", "FLOAT32_T",
1037   "DOUBLE", "FLOAT64_T", "INT64_T", "UINT64_T", "INT32_T", "UINT32_T",
1038   "INT16_T", "UINT16_T", "INT8_T", "UINT8_T", "I64VEC2", "I64VEC3",
1039   "I64VEC4", "U64VEC2", "U64VEC3", "U64VEC4", "I32VEC2", "I32VEC3",
1040   "I32VEC4", "U32VEC2", "U32VEC3", "U32VEC4", "I16VEC2", "I16VEC3",
1041   "I16VEC4", "U16VEC2", "U16VEC3", "U16VEC4", "I8VEC2", "I8VEC3", "I8VEC4",
1042   "U8VEC2", "U8VEC3", "U8VEC4", "DVEC2", "DVEC3", "DVEC4", "DMAT2",
1043   "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4", "F16MAT2", "F16MAT3",
1044   "F16MAT4", "F32VEC2", "F32VEC3", "F32VEC4", "F32MAT2", "F32MAT3",
1045   "F32MAT4", "F64VEC2", "F64VEC3", "F64VEC4", "F64MAT2", "F64MAT3",
1046   "F64MAT4", "DMAT2X2", "DMAT2X3", "DMAT2X4", "DMAT3X2", "DMAT3X3",
1047   "DMAT3X4", "DMAT4X2", "DMAT4X3", "DMAT4X4", "F16MAT2X2", "F16MAT2X3",
1048   "F16MAT2X4", "F16MAT3X2", "F16MAT3X3", "F16MAT3X4", "F16MAT4X2",
1049   "F16MAT4X3", "F16MAT4X4", "F32MAT2X2", "F32MAT2X3", "F32MAT2X4",
1050   "F32MAT3X2", "F32MAT3X3", "F32MAT3X4", "F32MAT4X2", "F32MAT4X3",
1051   "F32MAT4X4", "F64MAT2X2", "F64MAT2X3", "F64MAT2X4", "F64MAT3X2",
1052   "F64MAT3X3", "F64MAT3X4", "F64MAT4X2", "F64MAT4X3", "F64MAT4X4",
1053   "ATOMIC_UINT", "ACCSTRUCTNV", "ACCSTRUCTEXT", "RAYQUERYEXT",
1054   "FCOOPMATNV", "ICOOPMATNV", "UCOOPMATNV", "SAMPLERCUBEARRAY",
1055   "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY",
1056   "SAMPLER1D", "SAMPLER1DARRAY", "SAMPLER1DARRAYSHADOW", "ISAMPLER1D",
1057   "SAMPLER1DSHADOW", "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW",
1058   "ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER",
1059   "USAMPLERBUFFER", "SAMPLER2DMS", "ISAMPLER2DMS", "USAMPLER2DMS",
1060   "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", "USAMPLER2DMSARRAY",
1061   "SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT", "ISAMPLER1DARRAY",
1062   "USAMPLER1D", "USAMPLER1DARRAY", "F16SAMPLER1D", "F16SAMPLER2D",
1063   "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE",
1064   "F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY",
1065   "F16SAMPLERBUFFER", "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY",
1066   "F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW",
1067   "F16SAMPLER2DARRAYSHADOW", "F16SAMPLER2DRECTSHADOW",
1068   "F16SAMPLERCUBESHADOW", "F16SAMPLERCUBEARRAYSHADOW", "IMAGE1D",
1069   "IIMAGE1D", "UIMAGE1D", "IMAGE2D", "IIMAGE2D", "UIMAGE2D", "IMAGE3D",
1070   "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", "IIMAGE2DRECT", "UIMAGE2DRECT",
1071   "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", "IMAGEBUFFER", "IIMAGEBUFFER",
1072   "UIMAGEBUFFER", "IMAGE1DARRAY", "IIMAGE1DARRAY", "UIMAGE1DARRAY",
1073   "IMAGE2DARRAY", "IIMAGE2DARRAY", "UIMAGE2DARRAY", "IMAGECUBEARRAY",
1074   "IIMAGECUBEARRAY", "UIMAGECUBEARRAY", "IMAGE2DMS", "IIMAGE2DMS",
1075   "UIMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY",
1076   "F16IMAGE1D", "F16IMAGE2D", "F16IMAGE3D", "F16IMAGE2DRECT",
1077   "F16IMAGECUBE", "F16IMAGE1DARRAY", "F16IMAGE2DARRAY",
1078   "F16IMAGECUBEARRAY", "F16IMAGEBUFFER", "F16IMAGE2DMS",
1079   "F16IMAGE2DMSARRAY", "TEXTURECUBEARRAY", "ITEXTURECUBEARRAY",
1080   "UTEXTURECUBEARRAY", "TEXTURE1D", "ITEXTURE1D", "UTEXTURE1D",
1081   "TEXTURE1DARRAY", "ITEXTURE1DARRAY", "UTEXTURE1DARRAY", "TEXTURE2DRECT",
1082   "ITEXTURE2DRECT", "UTEXTURE2DRECT", "TEXTUREBUFFER", "ITEXTUREBUFFER",
1083   "UTEXTUREBUFFER", "TEXTURE2DMS", "ITEXTURE2DMS", "UTEXTURE2DMS",
1084   "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY", "UTEXTURE2DMSARRAY",
1085   "F16TEXTURE1D", "F16TEXTURE2D", "F16TEXTURE3D", "F16TEXTURE2DRECT",
1086   "F16TEXTURECUBE", "F16TEXTURE1DARRAY", "F16TEXTURE2DARRAY",
1087   "F16TEXTURECUBEARRAY", "F16TEXTUREBUFFER", "F16TEXTURE2DMS",
1088   "F16TEXTURE2DMSARRAY", "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT",
1089   "ISUBPASSINPUTMS", "USUBPASSINPUT", "USUBPASSINPUTMS", "F16SUBPASSINPUT",
1090   "F16SUBPASSINPUTMS", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
1091   "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
1092   "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
1093   "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "STRING_LITERAL",
1094   "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET",
1095   "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL",
1096   "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT",
1097   "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND",
1098   "QUESTION", "INVARIANT", "HIGH_PRECISION", "MEDIUM_PRECISION",
1099   "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP",
1100   "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT",
1101   "IDENTIFIER", "TYPE_NAME", "CENTROID", "IN", "OUT", "INOUT", "STRUCT",
1102   "VOID", "WHILE", "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF",
1103   "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "UNIFORM", "SHARED",
1104   "BUFFER", "FLAT", "SMOOTH", "LAYOUT", "DOUBLECONSTANT", "INT16CONSTANT",
1105   "UINT16CONSTANT", "FLOAT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT",
1106   "INT64CONSTANT", "UINT64CONSTANT", "SUBROUTINE", "DEMOTE", "PAYLOADNV",
1107   "PAYLOADINNV", "HITATTRNV", "CALLDATANV", "CALLDATAINNV", "PAYLOADEXT",
1108   "PAYLOADINEXT", "HITATTREXT", "CALLDATAEXT", "CALLDATAINEXT", "PATCH",
1109   "SAMPLE", "NONUNIFORM", "COHERENT", "VOLATILE", "RESTRICT", "READONLY",
1110   "WRITEONLY", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT",
1111   "WORKGROUPCOHERENT", "SUBGROUPCOHERENT", "NONPRIVATE",
1112   "SHADERCALLCOHERENT", "NOPERSPECTIVE", "EXPLICITINTERPAMD",
1113   "PERVERTEXNV", "PERPRIMITIVENV", "PERVIEWNV", "PERTASKNV", "PRECISE",
1114   "$accept", "variable_identifier", "primary_expression",
1115   "postfix_expression", "integer_expression", "function_call",
1116   "function_call_or_method", "function_call_generic",
1117   "function_call_header_no_parameters",
1118   "function_call_header_with_parameters", "function_call_header",
1119   "function_identifier", "unary_expression", "unary_operator",
1120   "multiplicative_expression", "additive_expression", "shift_expression",
1121   "relational_expression", "equality_expression", "and_expression",
1122   "exclusive_or_expression", "inclusive_or_expression",
1123   "logical_and_expression", "logical_xor_expression",
1124   "logical_or_expression", "conditional_expression", "$@1",
1125   "assignment_expression", "assignment_operator", "expression",
1126   "constant_expression", "declaration", "block_structure", "$@2",
1127   "identifier_list", "function_prototype", "function_declarator",
1128   "function_header_with_parameters", "function_header",
1129   "parameter_declarator", "parameter_declaration",
1130   "parameter_type_specifier", "init_declarator_list", "single_declaration",
1131   "fully_specified_type", "invariant_qualifier", "interpolation_qualifier",
1132   "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
1133   "precise_qualifier", "type_qualifier", "single_type_qualifier",
1134   "storage_qualifier", "non_uniform_qualifier", "type_name_list",
1135   "type_specifier", "array_specifier", "type_parameter_specifier_opt",
1136   "type_parameter_specifier", "type_parameter_specifier_list",
1137   "type_specifier_nonarray", "precision_qualifier", "struct_specifier",
1138   "$@3", "$@4", "struct_declaration_list", "struct_declaration",
1139   "struct_declarator_list", "struct_declarator", "initializer",
1140   "initializer_list", "declaration_statement", "statement",
1141   "simple_statement", "demote_statement", "compound_statement", "$@5",
1142   "$@6", "statement_no_new_scope", "statement_scoped", "$@7", "$@8",
1143   "compound_statement_no_new_scope", "statement_list",
1144   "expression_statement", "selection_statement",
1145   "selection_statement_nonattributed", "selection_rest_statement",
1146   "condition", "switch_statement", "switch_statement_nonattributed", "$@9",
1147   "switch_statement_list", "case_label", "iteration_statement",
1148   "iteration_statement_nonattributed", "$@10", "$@11", "$@12",
1149   "for_init_statement", "conditionopt", "for_rest_statement",
1150   "jump_statement", "translation_unit", "external_declaration",
1151   "function_definition", "$@13", "attribute", "attribute_list",
1152   "single_attribute", YY_NULLPTR
1153 };
1154 #endif
1155 
1156 # ifdef YYPRINT
1157 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1158    (internal) symbol number NUM (which must be that of a token).  */
1159 static const yytype_uint16 yytoknum[] =
1160 {
1161        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1162      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1163      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1164      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1165      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
1166      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
1167      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1168      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1169      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1170      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1171      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1172      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1173      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1174      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
1175      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
1176      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
1177      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
1178      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
1179      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1180      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1181      455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1182      465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1183      475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1184      485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1185      495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
1186      505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
1187      515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
1188      525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
1189      535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
1190      545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
1191      555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
1192      565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
1193      575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
1194      585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
1195      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
1196      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
1197      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
1198      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
1199      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
1200      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
1201      655,   656,   657,   658,   659,   660,   661,   662,   663,   664,
1202      665,   666,   667,   668,   669,   670,   671,   672,   673,   674
1203 };
1204 # endif
1205 
1206 #define YYPACT_NINF -457
1207 
1208 #define yypact_value_is_default(Yystate) \
1209   (!!((Yystate) == (-457)))
1210 
1211 #define YYTABLE_NINF -537
1212 
1213 #define yytable_value_is_error(Yytable_value) \
1214   0
1215 
1216   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1217      STATE-NUM.  */
1218 static const yytype_int16 yypact[] =
1219 {
1220     4075,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1221     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1222     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1223     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1224     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1225     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1226     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1227     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1228     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1229     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1230     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1231     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1232     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1233     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1234     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1235     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1236     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1237     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1238     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1239     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1240     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1241     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1242     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1243     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1244     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1245     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1246     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1247     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1248     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1249     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,   132,  -457,
1250     -457,  -457,  -457,  -457,    -1,  -457,  -457,  -457,  -457,  -457,
1251     -457,  -301,  -298,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1252     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1253     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1254     -457,  -457,  -457,  -457,  -457,    11,  -249,    17,    30,  6160,
1255       20,  -457,    28,  -457,  -457,  -457,  -457,  4492,  -457,  -457,
1256     -457,  -457,    50,  -457,  -457,   739,  -457,  -457,    16,  -457,
1257       81,   -29,    69,  -457,  -313,  -457,   111,  -457,  6160,  -457,
1258     -457,  -457,  6160,   103,   106,  -457,  -314,  -457,    72,  -457,
1259     -457,  8566,   142,  -457,  -457,  -457,   136,  6160,  -457,   144,
1260     -457,    53,  -457,  -457,    76,  6974,  -457,  -312,  1156,  -457,
1261     -457,  -457,  -457,   142,  -309,  -457,  7372,  -308,  -457,   119,
1262     -457,    65,  8566,  8566,  -457,  8566,  -457,  -457,  -457,  -457,
1263     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1264     -457,  -457,  -457,  -457,  -457,    36,  -457,  -457,  -457,   171,
1265       85,  8964,   173,  -457,  8566,  -457,  -457,  -323,   174,  -457,
1266     6160,   139,  4909,  -457,  6160,  8566,  -457,   -29,  -457,   141,
1267     -457,  -457,   145,    99,    35,    26,    71,   156,   159,   161,
1268      196,   195,    23,   181,  7770,  -457,   183,   182,  -457,  -457,
1269      186,   179,   180,  -457,   191,   192,   187,  8168,   193,  8566,
1270      188,   189,   127,  -457,  -457,    96,  -457,  -249,   200,   201,
1271     -457,  -457,  -457,  -457,  -457,  1573,  -457,  -457,  -457,  -457,
1272     -457,  -457,  -457,  -457,  -457,   -24,   174,  7372,    13,  7372,
1273     -457,  -457,  7372,  6160,  -457,   166,  -457,  -457,  -457,    86,
1274     -457,  -457,  8566,   168,  -457,  -457,  8566,   205,  -457,  -457,
1275     -457,  8566,  -457,   139,   142,   124,  -457,  -457,  -457,  5326,
1276     -457,  -457,  -457,  -457,  8566,  8566,  8566,  8566,  8566,  8566,
1277     8566,  8566,  8566,  8566,  8566,  8566,  8566,  8566,  8566,  8566,
1278     8566,  8566,  8566,  -457,  -457,  -457,   206,   172,  -457,  1990,
1279     -457,  -457,  -457,  1990,  -457,  8566,  -457,  -457,   130,  8566,
1280      125,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1281     -457,  -457,  -457,  -457,  8566,  8566,  -457,  -457,  -457,  -457,
1282     -457,  -457,  -457,  7372,  -457,    94,  -457,  5743,  -457,  -457,
1283      207,   204,  -457,  -457,  -457,   131,   174,   139,  -457,  -457,
1284     -457,  -457,  -457,   145,   145,    99,    99,    35,    35,    35,
1285       35,    26,    26,    71,   156,   159,   161,   196,   195,  8566,
1286     -457,   212,    60,  -457,  1990,  3658,   169,  3241,    87,  -457,
1287       89,  -457,  -457,  -457,  -457,  -457,  6576,  -457,  -457,  -457,
1288     -457,   143,  8566,   211,   172,   210,   204,   184,  6160,   217,
1289      219,  -457,  -457,  3658,   218,  -457,  -457,  -457,  8566,   220,
1290     -457,  -457,  -457,   214,  2407,  8566,  -457,   216,   223,   185,
1291      224,  2824,  -457,   225,  -457,  -457,  7372,  -457,  -457,  -457,
1292       97,  8566,  2407,   218,  -457,  -457,  1990,  -457,   222,   204,
1293     -457,  -457,  1990,   229,  -457,  -457
1294 };
1295 
1296   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1297      Performed when YYTABLE does not specify something else to do.  Zero
1298      means the default is an error.  */
1299 static const yytype_uint16 yydefact[] =
1300 {
1301        0,   157,   210,   208,   209,   207,   214,   215,   216,   217,
1302      218,   219,   220,   221,   222,   211,   212,   213,   223,   224,
1303      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1304      336,   337,   338,   339,   340,   341,   342,   362,   363,   364,
1305      365,   366,   367,   368,   377,   390,   391,   378,   379,   381,
1306      380,   382,   383,   384,   385,   386,   387,   388,   389,   165,
1307      166,   236,   237,   235,   238,   245,   246,   243,   244,   241,
1308      242,   239,   240,   268,   269,   270,   280,   281,   282,   265,
1309      266,   267,   277,   278,   279,   262,   263,   264,   274,   275,
1310      276,   259,   260,   261,   271,   272,   273,   247,   248,   249,
1311      283,   284,   285,   250,   251,   252,   295,   296,   297,   253,
1312      254,   255,   307,   308,   309,   256,   257,   258,   319,   320,
1313      321,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1314      298,   299,   300,   301,   302,   303,   304,   305,   306,   310,
1315      311,   312,   313,   314,   315,   316,   317,   318,   322,   323,
1316      324,   325,   326,   327,   328,   329,   330,   334,   331,   332,
1317      333,   493,   494,   495,   346,   347,   370,   373,   335,   344,
1318      345,   361,   343,   392,   393,   396,   397,   398,   400,   401,
1319      402,   404,   405,   406,   408,   409,   483,   484,   369,   371,
1320      372,   348,   349,   350,   394,   351,   355,   356,   359,   399,
1321      403,   407,   352,   353,   357,   358,   395,   354,   360,   439,
1322      441,   442,   443,   445,   446,   447,   449,   450,   451,   453,
1323      454,   455,   457,   458,   459,   461,   462,   463,   465,   466,
1324      467,   469,   470,   471,   473,   474,   475,   477,   478,   479,
1325      481,   482,   440,   444,   448,   452,   456,   464,   468,   472,
1326      460,   476,   480,   374,   375,   376,   410,   419,   421,   415,
1327      420,   422,   423,   425,   426,   427,   429,   430,   431,   433,
1328      434,   435,   437,   438,   411,   412,   413,   424,   414,   416,
1329      417,   418,   428,   432,   436,   485,   486,   489,   490,   491,
1330      492,   487,   488,   584,   132,   498,   499,   500,     0,   497,
1331      161,   159,   160,   158,     0,   206,   162,   163,   164,   134,
1332      133,     0,   190,   171,   173,   169,   175,   177,   172,   174,
1333      170,   176,   178,   167,   168,   192,   179,   186,   187,   188,
1334      189,   180,   181,   182,   183,   184,   185,   135,   136,   137,
1335      138,   139,   140,   147,   583,     0,   585,     0,   109,   108,
1336        0,   120,   125,   154,   153,   151,   155,     0,   148,   150,
1337      156,   130,   202,   152,   496,     0,   580,   582,     0,   503,
1338        0,     0,     0,    97,     0,    94,     0,   107,     0,   116,
1339      110,   118,     0,   119,     0,    95,   126,   100,     0,   149,
1340      131,     0,   195,   201,     1,   581,     0,     0,   501,   144,
1341      146,     0,   142,   193,     0,     0,    98,     0,     0,   586,
1342      111,   115,   117,   113,   121,   112,     0,   127,   103,     0,
1343      101,     0,     0,     0,     9,     0,    43,    42,    44,    41,
1344        5,     6,     7,     8,     2,    16,    14,    15,    17,    10,
1345       11,    12,    13,     3,    18,    37,    20,    25,    26,     0,
1346        0,    30,     0,   204,     0,    36,    34,     0,   196,    96,
1347        0,     0,     0,   505,     0,     0,   141,     0,   191,     0,
1348      197,    45,    49,    52,    55,    60,    63,    65,    67,    69,
1349       71,    73,    75,     0,     0,    99,     0,   531,   540,   544,
1350        0,     0,     0,   565,     0,     0,     0,     0,     0,     0,
1351        0,     0,    45,    78,    91,     0,   518,     0,   156,   130,
1352      521,   542,   520,   528,   519,     0,   522,   523,   546,   524,
1353      553,   525,   526,   561,   527,     0,   114,     0,   122,     0,
1354      513,   129,     0,     0,   105,     0,   102,    38,    39,     0,
1355       22,    23,     0,     0,    28,    27,     0,   206,    31,    33,
1356       40,     0,   203,     0,   511,     0,   509,   504,   506,     0,
1357       93,   145,   143,   194,     0,     0,     0,     0,     0,     0,
1358        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1359        0,     0,     0,    76,   198,   199,     0,     0,   530,     0,
1360      563,   576,   575,     0,   567,     0,   579,   577,     0,     0,
1361        0,   560,   529,    81,    82,    84,    83,    86,    87,    88,
1362       89,    90,    85,    80,     0,     0,   545,   541,   543,   547,
1363      554,   562,   124,     0,   516,     0,   128,     0,   106,     4,
1364        0,    24,    21,    32,   205,     0,   512,     0,   507,   502,
1365       46,    47,    48,    51,    50,    53,    54,    58,    59,    56,
1366       57,    61,    62,    64,    66,    68,    70,    72,    74,     0,
1367      200,   590,     0,   588,   532,     0,     0,     0,     0,   578,
1368        0,   559,    79,    92,   123,   514,     0,   104,    19,   508,
1369      510,     0,     0,     0,     0,     0,   551,     0,     0,     0,
1370        0,   570,   569,   572,   538,   555,   515,   517,     0,     0,
1371      587,   589,   533,     0,     0,     0,   571,     0,     0,   550,
1372        0,     0,   548,     0,    77,   591,     0,   535,   564,   534,
1373        0,   573,     0,   538,   537,   539,   557,   552,     0,   574,
1374      568,   549,   558,     0,   566,   556
1375 };
1376 
1377   /* YYPGOTO[NTERM-NUM].  */
1378 static const yytype_int16 yypgoto[] =
1379 {
1380     -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,  -457,
1381     -457,  -457,  8868,  -457,   -87,   -84,  -127,   -93,   -33,   -31,
1382      -27,   -25,   -28,   -26,  -457,   -86,  -457,  -103,  -457,  -111,
1383     -125,     2,  -457,  -457,  -457,     4,  -457,  -457,  -457,   176,
1384      194,   178,  -457,  -457,  -337,  -457,  -457,  -457,  -457,    95,
1385     -457,   -37,   -46,  -457,     9,  -457,     0,   -63,  -457,  -457,
1386     -457,  -457,   263,  -457,  -457,  -457,  -456,  -140,    10,   -73,
1387     -211,  -457,  -102,  -198,  -321,  -457,  -144,  -457,  -457,  -155,
1388     -154,  -457,  -457,   198,  -274,   -97,  -457,    46,  -457,  -118,
1389     -457,    51,  -457,  -457,  -457,  -457,    52,  -457,  -457,  -457,
1390     -457,  -457,  -457,  -457,  -457,   213,  -457,  -457,  -457,  -457,
1391     -105
1392 };
1393 
1394   /* YYDEFGOTO[NTERM-NUM].  */
1395 static const yytype_int16 yydefgoto[] =
1396 {
1397       -1,   443,   444,   445,   630,   446,   447,   448,   449,   450,
1398      451,   452,   502,   454,   472,   473,   474,   475,   476,   477,
1399      478,   479,   480,   481,   482,   503,   659,   504,   614,   505,
1400      561,   506,   345,   533,   421,   507,   347,   348,   349,   379,
1401      380,   381,   350,   351,   352,   353,   354,   355,   401,   402,
1402      356,   357,   358,   359,   455,   404,   456,   407,   392,   393,
1403      457,   362,   363,   364,   464,   397,   462,   463,   555,   556,
1404      531,   625,   510,   511,   512,   513,   514,   589,   685,   718,
1405      709,   710,   711,   719,   515,   516,   517,   518,   712,   689,
1406      519,   520,   713,   733,   521,   522,   523,   665,   593,   667,
1407      693,   707,   708,   524,   365,   366,   367,   376,   525,   662,
1408      663
1409 };
1410 
1411   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1412      positive, shift that token.  If negative, reduce the rule whose
1413      number is the opposite.  If YYTABLE_NINF, syntax error.  */
1414 static const yytype_int16 yytable[] =
1415 {
1416      361,   551,   344,   415,   346,   405,   405,   484,   559,   360,
1417      405,   484,   416,   552,   406,   485,   371,   527,   532,   372,
1418        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1419       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1420       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1421       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1422       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1423       52,    53,    54,    55,    56,    57,    58,   627,   375,    61,
1424       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1425       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1426       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1427       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1428      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1429      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1430      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1431      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1432      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1433      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1434      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1435      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1436      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1437      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1438      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1439      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1440      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
1441      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
1442      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
1443      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1444      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
1445      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
1446      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
1447      292,   389,   382,   530,   539,   664,   622,   618,   624,   483,
1448      369,   626,   558,   417,   399,   571,   572,   582,   687,   458,
1449      569,   570,   484,   540,   541,   377,   389,   490,   373,   623,
1450      493,   382,   494,   495,   384,   400,   498,   385,   548,   383,
1451      526,   528,   370,   -35,   378,   542,   687,   390,   360,   543,
1452      460,   573,   574,   583,   374,   361,   360,   344,   396,   346,
1453      299,   466,   575,   576,   360,   304,   305,   467,   383,   560,
1454      683,   386,   383,   717,   684,   391,   598,   360,   600,   535,
1455      725,   360,   536,   418,   468,   666,   419,   461,   586,   420,
1456      469,   717,   398,   545,   629,   694,   360,   695,   509,   546,
1457      615,   615,   674,   615,   389,   728,   675,   508,   676,   558,
1458      615,   615,   403,   616,   530,   460,   530,   460,   567,   530,
1459      568,   631,   408,   603,   604,   605,   606,   607,   608,   609,
1460      610,   611,   612,   633,   647,   648,   649,   650,   637,   615,
1461      671,   638,   732,   613,   615,   637,   413,   669,   679,   414,
1462      553,   405,   461,   459,   461,   697,   618,   615,   698,   360,
1463      465,   360,   534,   360,   295,   296,   297,   564,   565,   566,
1464      643,   644,   651,   652,   668,   645,   646,   558,   670,   544,
1465      549,   636,   554,   484,   563,   577,   460,   578,   579,   580,
1466      581,   584,   587,   590,   588,   727,   591,   592,   594,   595,
1467      599,   672,   673,   601,   596,   509,   602,   -36,   -34,   628,
1468      530,   632,   460,   -29,   508,   661,   660,   678,   615,   682,
1469      690,   700,   702,   461,   618,   704,   705,   703,   715,  -536,
1470      716,   722,   360,   721,   653,   487,   726,   654,   681,   734,
1471      723,   735,   655,   657,   686,   656,   658,   699,   411,   461,
1472      412,   368,   562,   635,   680,   691,   724,   730,   360,   731,
1473      692,   619,   410,   530,   409,   706,   620,   621,   395,   701,
1474        0,     0,   686,     0,     0,     0,     0,     0,     0,   509,
1475      460,     0,     0,   509,   720,   714,   560,     0,   508,     0,
1476        0,     0,   508,     0,     0,     0,     0,     0,     0,     0,
1477      729,     0,     0,   530,     0,     0,     0,     0,     0,     0,
1478        0,     0,     0,     0,     0,     0,     0,   461,   688,     0,
1479        0,     0,     0,     0,     0,     0,   360,     0,     0,     0,
1480        0,     0,   389,     0,     0,     0,     0,     0,     0,     0,
1481        0,     0,     0,     0,     0,     0,   688,     0,     0,     0,
1482        0,     0,     0,     0,   509,   509,     0,   509,     0,     0,
1483        0,     0,     0,   508,   508,     0,   508,     0,     0,     0,
1484        0,     0,     0,     0,     0,     0,     0,     0,   390,     0,
1485        0,     0,     0,   509,     0,     0,     0,   360,     0,     0,
1486        0,     0,   508,     0,   509,     0,     0,     0,     0,     0,
1487        0,   509,     0,   508,     0,     0,     0,     0,     0,     0,
1488      508,     0,   509,     0,     0,     0,   509,     0,     0,     0,
1489        0,   508,   509,     0,     0,   508,     0,     0,     0,   394,
1490        0,   508,     1,     2,     3,     4,     5,     6,     7,     8,
1491        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1492       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1493       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1494       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1495       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1496       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1497       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1498       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1499       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1500       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1501      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1502      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1503      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1504      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1505      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1506      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1507      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1508      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1509      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1510      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1511      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1512      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
1513      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
1514      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
1515      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
1516      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
1517      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
1518      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
1519      289,   290,   291,   292,     0,     0,     0,     0,     0,     0,
1520        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1521        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1522        0,     0,     0,     0,     0,     0,   293,     0,     0,     0,
1523        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1524      294,   295,   296,   297,   298,     0,     0,     0,     0,     0,
1525        0,     0,     0,   299,   300,   301,   302,   303,   304,   305,
1526        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1527        0,     0,   306,   307,   308,   309,   310,   311,     0,     0,
1528        0,     0,     0,     0,     0,     0,   312,     0,   313,   314,
1529      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1530      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1531      335,   336,   337,   338,   339,   340,   341,   342,   343,     1,
1532        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1533       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1534       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1535       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1536       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1537       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1538       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1539       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1540       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1541       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1542      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1543      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1544      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1545      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1546      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1547      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1548      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1549      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1550      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1551      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1552      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1553      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1554      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
1555      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
1556      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
1557      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1558      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
1559      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
1560      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
1561      292,     0,     0,   422,   423,     0,     0,     0,     0,     0,
1562        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1563        0,     0,   424,   425,     0,   486,     0,   487,   488,     0,
1564        0,     0,     0,   489,   426,   427,   428,   429,     0,     0,
1565        0,     0,     0,     0,     0,     0,     0,   294,   295,   296,
1566      297,   298,     0,     0,     0,   430,   431,   432,   433,   434,
1567      299,   300,   301,   302,   303,   304,   305,   490,   491,   492,
1568      493,     0,   494,   495,   496,   497,   498,   499,   500,   306,
1569      307,   308,   309,   310,   311,   435,   436,   437,   438,   439,
1570      440,   441,   442,   312,   501,   313,   314,   315,   316,   317,
1571      318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
1572      328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
1573      338,   339,   340,   341,   342,   343,     1,     2,     3,     4,
1574        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1575       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1576       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1577       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1578       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1579       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1580       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1581       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1582       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1583       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1584      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1585      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1586      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1587      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1588      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1589      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1590      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1591      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1592      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1593      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1594      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1595      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1596      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1597      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1598      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1599      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1600      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1601      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1602      285,   286,   287,   288,   289,   290,   291,   292,     0,     0,
1603      422,   423,     0,     0,     0,     0,     0,     0,     0,     0,
1604        0,     0,     0,     0,     0,     0,     0,     0,     0,   424,
1605      425,     0,   486,     0,   487,   617,     0,     0,     0,     0,
1606      489,   426,   427,   428,   429,     0,     0,     0,     0,     0,
1607        0,     0,     0,     0,   294,   295,   296,   297,   298,     0,
1608        0,     0,   430,   431,   432,   433,   434,   299,   300,   301,
1609      302,   303,   304,   305,   490,   491,   492,   493,     0,   494,
1610      495,   496,   497,   498,   499,   500,   306,   307,   308,   309,
1611      310,   311,   435,   436,   437,   438,   439,   440,   441,   442,
1612      312,   501,   313,   314,   315,   316,   317,   318,   319,   320,
1613      321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
1614      331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
1615      341,   342,   343,     1,     2,     3,     4,     5,     6,     7,
1616        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1617       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
1618       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1619       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1620       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1621       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1622       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1623       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1624       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1625       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1626      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1627      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1628      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1629      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1630      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1631      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1632      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1633      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1634      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1635      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1636      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1637      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
1638      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
1639      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
1640      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1641      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
1642      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
1643      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
1644      288,   289,   290,   291,   292,     0,     0,   422,   423,     0,
1645        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1646        0,     0,     0,     0,     0,     0,   424,   425,     0,   486,
1647        0,   487,     0,     0,     0,     0,     0,   489,   426,   427,
1648      428,   429,     0,     0,     0,     0,     0,     0,     0,     0,
1649        0,   294,   295,   296,   297,   298,     0,     0,     0,   430,
1650      431,   432,   433,   434,   299,   300,   301,   302,   303,   304,
1651      305,   490,   491,   492,   493,     0,   494,   495,   496,   497,
1652      498,   499,   500,   306,   307,   308,   309,   310,   311,   435,
1653      436,   437,   438,   439,   440,   441,   442,   312,   501,   313,
1654      314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
1655      324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
1656      334,   335,   336,   337,   338,   339,   340,   341,   342,   343,
1657        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
1658       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1659       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
1660       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1661       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1662       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1663       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1664       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1665       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1666       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1667      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1668      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1669      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
1670      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1671      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
1672      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
1673      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
1674      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
1675      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
1676      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
1677      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
1678      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
1679      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
1680      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
1681      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
1682      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
1683      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
1684      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
1685      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
1686      291,   292,     0,     0,   422,   423,     0,     0,     0,     0,
1687        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1688        0,     0,     0,   424,   425,     0,   486,     0,   408,     0,
1689        0,     0,     0,     0,   489,   426,   427,   428,   429,     0,
1690        0,     0,     0,     0,     0,     0,     0,     0,   294,   295,
1691      296,   297,   298,     0,     0,     0,   430,   431,   432,   433,
1692      434,   299,   300,   301,   302,   303,   304,   305,   490,   491,
1693      492,   493,     0,   494,   495,   496,   497,   498,   499,   500,
1694      306,   307,   308,   309,   310,   311,   435,   436,   437,   438,
1695      439,   440,   441,   442,   312,   501,   313,   314,   315,   316,
1696      317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
1697      327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
1698      337,   338,   339,   340,   341,   342,   343,     1,     2,     3,
1699        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1700       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1701       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1702       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1703       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1704       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1705       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1706       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1707       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1708       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1709      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1710      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1711      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1712      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1713      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1714      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1715      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1716      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1717      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1718      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1719      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1720      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1721      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
1722      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1723      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1724      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
1725      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
1726      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
1727      284,   285,   286,   287,   288,   289,   290,   291,   292,     0,
1728        0,   422,   423,     0,     0,     0,     0,     0,     0,     0,
1729        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1730      424,   425,     0,   486,     0,     0,     0,     0,     0,     0,
1731        0,   489,   426,   427,   428,   429,     0,     0,     0,     0,
1732        0,     0,     0,     0,     0,   294,   295,   296,   297,   298,
1733        0,     0,     0,   430,   431,   432,   433,   434,   299,   300,
1734      301,   302,   303,   304,   305,   490,   491,   492,   493,     0,
1735      494,   495,   496,   497,   498,   499,   500,   306,   307,   308,
1736      309,   310,   311,   435,   436,   437,   438,   439,   440,   441,
1737      442,   312,   501,   313,   314,   315,   316,   317,   318,   319,
1738      320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
1739      330,   331,   332,   333,   334,   335,   336,   337,   338,   339,
1740      340,   341,   342,   343,     1,     2,     3,     4,     5,     6,
1741        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1742       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
1743       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1744       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1745       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1746       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1747       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1748       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1749       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1750       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1751      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1752      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1753      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1754      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1755      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1756      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
1757      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1758      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1759      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1760      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1761      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
1762      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
1763      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
1764      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
1765      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
1766      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
1767      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
1768      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
1769      287,   288,   289,   290,   291,   292,     0,     0,   422,   423,
1770        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1771        0,     0,     0,     0,     0,     0,     0,   424,   425,     0,
1772        0,     0,     0,     0,     0,     0,     0,     0,   489,   426,
1773      427,   428,   429,     0,     0,     0,     0,     0,     0,     0,
1774        0,     0,   294,   295,   296,   297,   298,     0,     0,     0,
1775      430,   431,   432,   433,   434,   299,   300,   301,   302,   303,
1776      304,   305,     0,     0,     0,     0,     0,     0,     0,     0,
1777        0,     0,     0,     0,   306,   307,   308,   309,   310,   311,
1778      435,   436,   437,   438,   439,   440,   441,   442,   312,     0,
1779      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
1780      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
1781      333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
1782      343,     1,     2,     3,     4,     5,     6,     7,     8,     9,
1783       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1784       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
1785       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1786       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1787       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1788       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1789       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1790       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1791       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1792      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1793      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1794      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1795      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1796      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1797      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1798      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1799      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1800      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1801      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1802      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1803      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1804      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1805      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1806      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1807      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
1808      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
1809      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1810      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
1811      290,   291,   292,     0,     0,   422,   423,     0,     0,     0,
1812        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1813        0,     0,     0,     0,   424,   425,     0,     0,     0,     0,
1814        0,     0,     0,     0,     0,     0,   426,   427,   428,   429,
1815        0,     0,     0,     0,     0,     0,     0,     0,     0,   294,
1816      295,   296,   297,     0,     0,     0,     0,   430,   431,   432,
1817      433,   434,   299,   300,   301,   302,   303,   304,   305,     0,
1818        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1819        0,   306,   307,   308,   309,   310,   311,   435,   436,   437,
1820      438,   439,   440,   441,   442,   312,     0,   313,   314,   315,
1821      316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
1822      326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
1823      336,   337,   338,   339,   340,   341,   342,   343,     1,     2,
1824        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1825       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1826       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1827       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1828       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1829       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1830       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1831       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1832       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1833       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1834      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1835      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1836      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1837      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1838      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1839      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
1840      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1841      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1842      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1843      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1844      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1845      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
1846      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
1847      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
1848      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1849      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
1850      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
1851      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
1852      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
1853        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1854        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1855        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1856        0,     0,   293,     0,     0,     0,     0,     0,     0,     0,
1857        0,     0,     0,     0,     0,     0,   294,   295,   296,   297,
1858      298,     0,     0,     0,     0,     0,     0,     0,     0,   299,
1859      300,   301,   302,   303,   304,   305,     0,     0,     0,     0,
1860        0,     0,     0,     0,     0,     0,     0,     0,   306,   307,
1861      308,   309,   310,   311,     0,     0,     0,     0,     0,     0,
1862        0,     0,   312,     0,   313,   314,   315,   316,   317,   318,
1863      319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
1864      329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
1865      339,   340,   341,   342,   343,     1,     2,     3,     4,     5,
1866        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1867       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
1868       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1869       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1870       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1871       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1872       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1873       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1874       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1875       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1876      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1877      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1878      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1879      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1880      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1881      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1882      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1883      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1884      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1885      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1886      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1887      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1888      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1889      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1890      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1891      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
1892      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
1893      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
1894      286,   287,   288,   289,   290,   291,   292,     0,     0,     0,
1895        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1896        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1897        0,     0,     0,     0,     0,     0,     0,     0,     0,   387,
1898        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1899        0,     0,     0,   294,   295,   296,   297,     0,     0,     0,
1900        0,     0,     0,     0,     0,   388,   299,   300,   301,   302,
1901      303,   304,   305,     0,     0,     0,     0,     0,     0,     0,
1902        0,     0,     0,     0,     0,   306,   307,   308,   309,   310,
1903      311,     0,     0,     0,     0,     0,     0,     0,     0,   312,
1904        0,   313,   314,   315,   316,   317,   318,   319,   320,   321,
1905      322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
1906      332,   333,   334,   335,   336,   337,   338,   339,   340,   341,
1907      342,   343,     1,     2,     3,     4,     5,     6,     7,     8,
1908        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1909       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1910       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1911       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1912       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1913       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1914       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1915       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1916       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1917       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1918      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1919      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1920      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1921      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1922      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1923      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1924      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1925      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1926      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1927      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1928      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1929      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
1930      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
1931      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
1932      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
1933      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
1934      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
1935      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
1936      289,   290,   291,   292,     0,     0,     0,     0,     0,     0,
1937        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1938        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1939        0,   557,     0,     0,     0,     0,     0,     0,     0,     0,
1940        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1941      294,   295,   296,   297,     0,     0,     0,     0,     0,     0,
1942        0,     0,     0,   299,   300,   301,   302,   303,   304,   305,
1943        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1944        0,     0,   306,   307,   308,   309,   310,   311,     0,     0,
1945        0,     0,     0,     0,     0,     0,   312,     0,   313,   314,
1946      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1947      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1948      335,   336,   337,   338,   339,   340,   341,   342,   343,     1,
1949        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1950       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1951       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1952       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1953       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1954       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1955       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1956       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1957       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1958       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1959      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1960      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1961      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1962      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1963      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1964      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1965      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1966      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1967      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1968      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1969      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1970      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1971      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
1972      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
1973      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
1974      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1975      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
1976      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
1977      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
1978      292,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1979        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1980        0,     0,     0,     0,     0,     0,     0,     0,   639,     0,
1981        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1982        0,     0,     0,     0,     0,     0,     0,   294,   295,   296,
1983      297,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1984      299,   300,   301,   302,   303,   304,   305,     0,     0,     0,
1985        0,     0,     0,     0,     0,     0,     0,     0,     0,   306,
1986      307,   308,   309,   310,   311,     0,     0,     0,     0,     0,
1987        0,     0,     0,   312,     0,   313,   314,   315,   316,   317,
1988      318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
1989      328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
1990      338,   339,   340,   341,   342,   343,     1,     2,     3,     4,
1991        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1992       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1993       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1994       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1995       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1996       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1997       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1998       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1999       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2000       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2001      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2002      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2003      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2004      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2005      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2006      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2007      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2008      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2009      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2010      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2011      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2012      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2013      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2014      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2015      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2016      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2017      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2018      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2019      285,   286,   287,   288,   289,   290,   291,   292,     0,     0,
2020        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2021        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2022        0,     0,     0,     0,     0,   677,     0,     0,     0,     0,
2023        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2024        0,     0,     0,     0,   294,   295,   296,   297,     0,     0,
2025        0,     0,     0,     0,     0,     0,     0,   299,   300,   301,
2026      302,   303,   304,   305,     0,     0,     0,     0,     0,     0,
2027        0,     0,     0,     0,     0,     0,   306,   307,   308,   309,
2028      310,   311,     0,     0,     0,     0,     0,     0,     0,     0,
2029      312,     0,   313,   314,   315,   316,   317,   318,   319,   320,
2030      321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
2031      331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
2032      341,   342,   343,     1,     2,     3,     4,     5,     6,     7,
2033        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2034       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
2035       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2036       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2037       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2038       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
2039       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2040       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
2041       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2042       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2043      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
2044      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
2045      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2046      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2047      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2048      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2049      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2050      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
2051      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
2052      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
2053      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
2054      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
2055      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
2056      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
2057      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2058      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
2059      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2060      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
2061      288,   289,   290,   291,   292,     0,     0,     0,     0,     0,
2062        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2063        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2064        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2065        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2066        0,   294,   295,   296,   297,     0,     0,     0,     0,     0,
2067        0,     0,     0,     0,   299,   300,   301,   302,   303,   304,
2068      305,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2069        0,     0,     0,   306,   307,   308,   309,   310,   311,     0,
2070        0,     0,     0,     0,     0,     0,     0,   312,     0,   313,
2071      314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
2072      324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
2073      334,   335,   336,   337,   338,   339,   340,   341,   342,   343,
2074        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2075       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2076       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2077       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2078       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2079       52,    53,    54,    55,    56,    57,    58,     0,     0,    61,
2080       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2081       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2082       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2083       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2084      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2085      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2086      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2087      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2088      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2089      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2090      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2091      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2092      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2093      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2094      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2095      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2096      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
2097      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
2098      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
2099      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2100      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2101      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
2102      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
2103      292,     0,     0,   422,   423,     0,     0,     0,     0,     0,
2104        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2105        0,     0,   424,   425,     0,     0,     0,   529,   696,     0,
2106        0,     0,     0,     0,   426,   427,   428,   429,     0,     0,
2107        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2108        0,     0,     0,     0,     0,   430,   431,   432,   433,   434,
2109      299,     0,     0,     0,     0,   304,   305,     0,     0,     0,
2110        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2111        0,     0,     0,     0,     0,   435,   436,   437,   438,   439,
2112      440,   441,   442,     0,     0,     0,     0,     0,     0,     0,
2113        0,     0,     0,     0,     0,     0,     0,   325,     2,     3,
2114        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2115       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2116       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2117       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2118       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2119       54,    55,    56,    57,    58,     0,     0,    61,    62,    63,
2120       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
2121       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2122       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2123       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
2124      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
2125      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
2126      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
2127      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
2128      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
2129      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
2130      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
2131      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
2132      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
2133      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
2134      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
2135      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
2136      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
2137      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
2138      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
2139      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2140      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
2141      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
2142      284,   285,   286,   287,   288,   289,   290,   291,   292,     0,
2143        0,   422,   423,     0,     0,     0,     0,     0,     0,     0,
2144        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2145      424,   425,     0,     0,   470,     0,     0,     0,     0,     0,
2146        0,     0,   426,   427,   428,   429,     0,     0,     0,     0,
2147        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2148        0,     0,     0,   430,   431,   432,   433,   434,   299,     0,
2149        0,     0,     0,   304,   305,     0,     0,     0,     0,     0,
2150        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2151        0,     0,     0,   435,   436,   437,   438,   439,   440,   441,
2152      442,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2153        0,     0,     0,     0,     0,   325,     2,     3,     4,     5,
2154        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
2155       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
2156       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
2157       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2158       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2159       56,    57,    58,     0,     0,    61,    62,    63,    64,    65,
2160       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
2161       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
2162       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
2163       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
2164      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
2165      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
2166      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2167      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2168      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2169      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2170      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2171      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
2172      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
2173      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
2174      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
2175      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
2176      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
2177      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
2178      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
2179      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
2180      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2181      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
2182      286,   287,   288,   289,   290,   291,   292,     0,     0,   422,
2183      423,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2184        0,     0,     0,     0,     0,     0,     0,     0,   424,   425,
2185        0,     0,     0,   529,     0,     0,     0,     0,     0,     0,
2186      426,   427,   428,   429,     0,     0,     0,     0,     0,     0,
2187        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2188        0,   430,   431,   432,   433,   434,   299,     0,     0,     0,
2189        0,   304,   305,     0,     0,     0,     0,     0,     0,     0,
2190        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2191        0,   435,   436,   437,   438,   439,   440,   441,   442,     0,
2192        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2193        0,     0,     0,   325,     2,     3,     4,     5,     6,     7,
2194        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2195       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
2196       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2197       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2198       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2199       58,     0,     0,    61,    62,    63,    64,    65,    66,    67,
2200       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2201       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
2202       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2203       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2204      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
2205      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
2206      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2207      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2208      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2209      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2210      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2211      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
2212      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
2213      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
2214      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
2215      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
2216      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
2217      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
2218      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2219      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
2220      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2221      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
2222      288,   289,   290,   291,   292,     0,     0,   422,   423,     0,
2223        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2224        0,     0,     0,     0,     0,     0,   424,   425,     0,     0,
2225      585,     0,     0,     0,     0,     0,     0,     0,   426,   427,
2226      428,   429,     0,     0,     0,     0,     0,     0,     0,     0,
2227        0,     0,     0,     0,     0,     0,     0,     0,     0,   430,
2228      431,   432,   433,   434,   299,     0,     0,     0,     0,   304,
2229      305,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2230        0,     0,     0,     0,     0,     0,     0,     0,     0,   435,
2231      436,   437,   438,   439,   440,   441,   442,     0,     0,     0,
2232        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2233        0,   325,     2,     3,     4,     5,     6,     7,     8,     9,
2234       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2235       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2236       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2237       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2238       50,    51,    52,    53,    54,    55,    56,    57,    58,     0,
2239        0,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2240       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2241       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2242       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2243      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
2244      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
2245      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2246      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2247      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2248      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2249      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2250      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2251      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2252      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2253      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2254      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2255      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
2256      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
2257      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2258      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2259      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
2260      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
2261      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
2262      290,   291,   292,     0,     0,   422,   423,     0,     0,     0,
2263        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2264        0,     0,     0,     0,   424,   425,     0,     0,     0,     0,
2265        0,     0,     0,     0,     0,   597,   426,   427,   428,   429,
2266        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2267        0,     0,     0,     0,     0,     0,     0,   430,   431,   432,
2268      433,   434,   299,     0,     0,     0,     0,   304,   305,     0,
2269        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2270        0,     0,     0,     0,     0,     0,     0,   435,   436,   437,
2271      438,   439,   440,   441,   442,     0,     0,     0,     0,     0,
2272        0,     0,     0,     0,     0,     0,     0,     0,     0,   325,
2273        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2274       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2275       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2276       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2277       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2278       52,    53,    54,    55,    56,    57,    58,     0,     0,    61,
2279       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2280       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2281       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2282       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2283      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2284      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2285      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2286      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2287      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2288      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2289      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2290      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2291      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2292      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2293      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2294      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2295      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
2296      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
2297      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
2298      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2299      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2300      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
2301      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
2302      292,     0,     0,   422,   423,     0,     0,     0,     0,     0,
2303        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2304        0,     0,   424,   425,     0,     0,     0,     0,     0,     0,
2305        0,     0,     0,     0,   426,   427,   428,   429,     0,     0,
2306        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2307        0,     0,     0,     0,     0,   430,   431,   432,   433,   434,
2308      299,     0,     0,     0,     0,   304,   305,     0,     0,     0,
2309        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2310        0,     0,     0,     0,     0,   435,   436,   437,   438,   439,
2311      440,   441,   442,     0,     0,     0,     0,     0,     0,     0,
2312        0,     0,     0,     0,     0,     0,     0,   325,     2,     3,
2313        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2314       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2315       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2316       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2317       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2318       54,    55,    56,    57,    58,     0,     0,    61,    62,    63,
2319       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
2320       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2321       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2322       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
2323      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
2324      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
2325      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
2326      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
2327      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
2328      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
2329      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
2330      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
2331      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
2332      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
2333      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
2334      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
2335      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
2336      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
2337      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
2338      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2339      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
2340      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
2341      284,   285,   286,   287,   288,   289,   290,   291,   292,   453,
2342        0,   422,   423,     0,     0,     0,     0,     0,     0,     0,
2343        0,     0,     0,   471,     0,     0,     0,     0,     0,     0,
2344      424,   425,     0,     0,     0,     0,     0,     0,     0,     0,
2345      537,   538,   426,   427,   428,   429,     0,     0,     0,     0,
2346        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2347        0,     0,     0,   430,   431,   432,   433,   434,   299,     0,
2348        0,     0,   550,   304,   547,     0,     0,     0,     0,     0,
2349        0,     0,     0,   471,     0,     0,     0,     0,     0,     0,
2350        0,     0,     0,   435,   436,   437,   438,   439,   440,   441,
2351      442,     0,   471,     0,     0,     0,     0,     0,     0,     0,
2352        0,     0,     0,     0,     0,   325,     0,     0,     0,     0,
2353        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2354        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2355        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2356        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2357        0,     0,     0,     0,     0,     0,     0,     0,     0,   634,
2358        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2359        0,     0,   640,   641,   642,   471,   471,   471,   471,   471,
2360      471,   471,   471,   471,   471,   471,   471,   471,   471,   471,
2361      471,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2362        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2363        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2364        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2365        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2366        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2367        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2368        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2369        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2370        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2371      471
2372 };
2373 
2374 static const yytype_int16 yycheck[] =
2375 {
2376        0,   324,     0,   317,     0,   319,   319,   319,   464,     0,
2377      319,   319,   326,   336,   327,   327,   317,   326,   326,   317,
2378        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2379       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2380       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2381       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2382       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2383       54,    55,    56,    57,    58,    59,    60,   533,   327,    63,
2384       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
2385       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2386       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2387       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
2388      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
2389      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
2390      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
2391      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
2392      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
2393      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
2394      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
2395      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
2396      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
2397      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
2398      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
2399      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
2400      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
2401      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
2402      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
2403      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2404      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
2405      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
2406      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
2407      294,   357,   349,   416,   425,   589,   527,   515,   529,   405,
2408      321,   532,   462,   386,   353,   299,   300,   304,   665,   392,
2409      295,   296,   319,   297,   298,   318,   382,   361,   327,   326,
2410      364,   378,   366,   367,   324,   374,   370,   327,   451,   349,
2411      413,   414,   353,   317,   324,   319,   693,   357,   349,   323,
2412      397,   335,   336,   340,   353,   365,   357,   365,   368,   365,
2413      354,   318,   301,   302,   365,   359,   360,   324,   378,   465,
2414      320,   353,   382,   704,   324,   335,   497,   378,   499,   324,
2415      711,   382,   327,   321,   318,   593,   324,   397,   484,   327,
2416      324,   722,   321,   318,   318,   318,   397,   318,   408,   324,
2417      324,   324,   623,   324,   460,   318,   322,   408,   324,   559,
2418      324,   324,   353,   327,   527,   462,   529,   464,   329,   532,
2419      331,   542,   321,   306,   307,   308,   309,   310,   311,   312,
2420      313,   314,   315,   546,   571,   572,   573,   574,   324,   324,
2421      325,   327,   726,   326,   324,   324,   353,   327,   327,   353,
2422      460,   319,   462,   327,   464,   676,   664,   324,   325,   460,
2423      326,   462,   353,   464,   342,   343,   344,   332,   333,   334,
2424      567,   568,   575,   576,   595,   569,   570,   627,   599,   318,
2425      317,   554,   353,   319,   353,   339,   533,   338,   337,   303,
2426      305,   320,   319,   317,   322,   716,   327,   327,   317,   317,
2427      317,   614,   615,   325,   327,   515,   327,   317,   317,   353,
2428      623,   353,   559,   318,   515,   353,   320,   320,   324,   317,
2429      361,   320,   322,   533,   732,   318,   317,   353,   318,   321,
2430      326,   318,   533,   327,   577,   321,   321,   578,   659,   327,
2431      365,   322,   579,   581,   665,   580,   582,   682,   382,   559,
2432      382,   298,   467,   553,   637,   667,   710,   722,   559,   723,
2433      667,   525,   378,   676,   376,   693,   525,   525,   365,   684,
2434       -1,    -1,   693,    -1,    -1,    -1,    -1,    -1,    -1,   589,
2435      627,    -1,    -1,   593,   705,   698,   682,    -1,   589,    -1,
2436       -1,    -1,   593,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2437      721,    -1,    -1,   716,    -1,    -1,    -1,    -1,    -1,    -1,
2438       -1,    -1,    -1,    -1,    -1,    -1,    -1,   627,   665,    -1,
2439       -1,    -1,    -1,    -1,    -1,    -1,   627,    -1,    -1,    -1,
2440       -1,    -1,   688,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2441       -1,    -1,    -1,    -1,    -1,    -1,   693,    -1,    -1,    -1,
2442       -1,    -1,    -1,    -1,   664,   665,    -1,   667,    -1,    -1,
2443       -1,    -1,    -1,   664,   665,    -1,   667,    -1,    -1,    -1,
2444       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   688,    -1,
2445       -1,    -1,    -1,   693,    -1,    -1,    -1,   688,    -1,    -1,
2446       -1,    -1,   693,    -1,   704,    -1,    -1,    -1,    -1,    -1,
2447       -1,   711,    -1,   704,    -1,    -1,    -1,    -1,    -1,    -1,
2448      711,    -1,   722,    -1,    -1,    -1,   726,    -1,    -1,    -1,
2449       -1,   722,   732,    -1,    -1,   726,    -1,    -1,    -1,     0,
2450       -1,   732,     3,     4,     5,     6,     7,     8,     9,    10,
2451       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2452       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2453       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2454       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2455       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2456       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2457       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2458       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2459       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2460      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2461      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2462      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2463      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2464      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2465      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2466      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2467      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2468      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2469      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2470      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2471      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2472      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
2473      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
2474      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
2475      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2476      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
2477      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
2478      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
2479      291,   292,   293,   294,    -1,    -1,    -1,    -1,    -1,    -1,
2480       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2481       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2482       -1,    -1,    -1,    -1,    -1,    -1,   327,    -1,    -1,    -1,
2483       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2484      341,   342,   343,   344,   345,    -1,    -1,    -1,    -1,    -1,
2485       -1,    -1,    -1,   354,   355,   356,   357,   358,   359,   360,
2486       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2487       -1,    -1,   373,   374,   375,   376,   377,   378,    -1,    -1,
2488       -1,    -1,    -1,    -1,    -1,    -1,   387,    -1,   389,   390,
2489      391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
2490      401,   402,   403,   404,   405,   406,   407,   408,   409,   410,
2491      411,   412,   413,   414,   415,   416,   417,   418,   419,     3,
2492        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2493       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2494       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2495       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2496       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2497       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
2498       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
2499       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2500       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2501       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
2502      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
2503      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
2504      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
2505      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
2506      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
2507      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
2508      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
2509      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
2510      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
2511      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
2512      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
2513      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
2514      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
2515      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
2516      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
2517      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2518      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
2519      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
2520      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
2521      294,    -1,    -1,   297,   298,    -1,    -1,    -1,    -1,    -1,
2522       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2523       -1,    -1,   316,   317,    -1,   319,    -1,   321,   322,    -1,
2524       -1,    -1,    -1,   327,   328,   329,   330,   331,    -1,    -1,
2525       -1,    -1,    -1,    -1,    -1,    -1,    -1,   341,   342,   343,
2526      344,   345,    -1,    -1,    -1,   349,   350,   351,   352,   353,
2527      354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
2528      364,    -1,   366,   367,   368,   369,   370,   371,   372,   373,
2529      374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
2530      384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
2531      394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
2532      404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
2533      414,   415,   416,   417,   418,   419,     3,     4,     5,     6,
2534        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2535       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
2536       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2537       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2538       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2539       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2540       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2541       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2542       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2543       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2544      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2545      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2546      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2547      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2548      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2549      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2550      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2551      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2552      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2553      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2554      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2555      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
2556      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
2557      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
2558      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2559      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2560      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
2561      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
2562      287,   288,   289,   290,   291,   292,   293,   294,    -1,    -1,
2563      297,   298,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2564       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   316,
2565      317,    -1,   319,    -1,   321,   322,    -1,    -1,    -1,    -1,
2566      327,   328,   329,   330,   331,    -1,    -1,    -1,    -1,    -1,
2567       -1,    -1,    -1,    -1,   341,   342,   343,   344,   345,    -1,
2568       -1,    -1,   349,   350,   351,   352,   353,   354,   355,   356,
2569      357,   358,   359,   360,   361,   362,   363,   364,    -1,   366,
2570      367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
2571      377,   378,   379,   380,   381,   382,   383,   384,   385,   386,
2572      387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
2573      397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
2574      407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
2575      417,   418,   419,     3,     4,     5,     6,     7,     8,     9,
2576       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2577       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2578       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2579       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2580       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2581       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2582       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2583       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2584       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2585      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
2586      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
2587      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2588      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2589      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2590      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2591      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2592      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2593      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2594      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2595      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2596      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2597      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
2598      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
2599      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2600      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2601      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
2602      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
2603      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
2604      290,   291,   292,   293,   294,    -1,    -1,   297,   298,    -1,
2605       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2606       -1,    -1,    -1,    -1,    -1,    -1,   316,   317,    -1,   319,
2607       -1,   321,    -1,    -1,    -1,    -1,    -1,   327,   328,   329,
2608      330,   331,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2609       -1,   341,   342,   343,   344,   345,    -1,    -1,    -1,   349,
2610      350,   351,   352,   353,   354,   355,   356,   357,   358,   359,
2611      360,   361,   362,   363,   364,    -1,   366,   367,   368,   369,
2612      370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
2613      380,   381,   382,   383,   384,   385,   386,   387,   388,   389,
2614      390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
2615      400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
2616      410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
2617        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2618       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2619       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
2620       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2621       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2622       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2623       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2624       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2625       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2626       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2627      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2628      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2629      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2630      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2631      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2632      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2633      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2634      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2635      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
2636      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2637      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2638      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
2639      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
2640      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
2641      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
2642      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
2643      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
2644      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
2645      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
2646      293,   294,    -1,    -1,   297,   298,    -1,    -1,    -1,    -1,
2647       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2648       -1,    -1,    -1,   316,   317,    -1,   319,    -1,   321,    -1,
2649       -1,    -1,    -1,    -1,   327,   328,   329,   330,   331,    -1,
2650       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   341,   342,
2651      343,   344,   345,    -1,    -1,    -1,   349,   350,   351,   352,
2652      353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
2653      363,   364,    -1,   366,   367,   368,   369,   370,   371,   372,
2654      373,   374,   375,   376,   377,   378,   379,   380,   381,   382,
2655      383,   384,   385,   386,   387,   388,   389,   390,   391,   392,
2656      393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
2657      403,   404,   405,   406,   407,   408,   409,   410,   411,   412,
2658      413,   414,   415,   416,   417,   418,   419,     3,     4,     5,
2659        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
2660       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
2661       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
2662       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2663       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2664       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
2665       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
2666       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
2667       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
2668       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
2669      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
2670      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
2671      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2672      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2673      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2674      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2675      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2676      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
2677      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
2678      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
2679      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
2680      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
2681      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
2682      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
2683      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
2684      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
2685      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2686      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
2687      286,   287,   288,   289,   290,   291,   292,   293,   294,    -1,
2688       -1,   297,   298,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2689       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2690      316,   317,    -1,   319,    -1,    -1,    -1,    -1,    -1,    -1,
2691       -1,   327,   328,   329,   330,   331,    -1,    -1,    -1,    -1,
2692       -1,    -1,    -1,    -1,    -1,   341,   342,   343,   344,   345,
2693       -1,    -1,    -1,   349,   350,   351,   352,   353,   354,   355,
2694      356,   357,   358,   359,   360,   361,   362,   363,   364,    -1,
2695      366,   367,   368,   369,   370,   371,   372,   373,   374,   375,
2696      376,   377,   378,   379,   380,   381,   382,   383,   384,   385,
2697      386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
2698      396,   397,   398,   399,   400,   401,   402,   403,   404,   405,
2699      406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
2700      416,   417,   418,   419,     3,     4,     5,     6,     7,     8,
2701        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2702       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
2703       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2704       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2705       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2706       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2707       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2708       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2709       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2710       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2711      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2712      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
2713      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2714      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2715      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2716      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2717      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2718      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2719      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
2720      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
2721      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
2722      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
2723      229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
2724      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
2725      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
2726      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
2727      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
2728      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
2729      289,   290,   291,   292,   293,   294,    -1,    -1,   297,   298,
2730       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2731       -1,    -1,    -1,    -1,    -1,    -1,    -1,   316,   317,    -1,
2732       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   327,   328,
2733      329,   330,   331,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2734       -1,    -1,   341,   342,   343,   344,   345,    -1,    -1,    -1,
2735      349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
2736      359,   360,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2737       -1,    -1,    -1,    -1,   373,   374,   375,   376,   377,   378,
2738      379,   380,   381,   382,   383,   384,   385,   386,   387,    -1,
2739      389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
2740      399,   400,   401,   402,   403,   404,   405,   406,   407,   408,
2741      409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
2742      419,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2743       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2744       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2745       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2746       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2747       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2748       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2749       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2750       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2751       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2752      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2753      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2754      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2755      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2756      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2757      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2758      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2759      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2760      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2761      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2762      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2763      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2764      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
2765      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
2766      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
2767      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2768      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2769      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
2770      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
2771      292,   293,   294,    -1,    -1,   297,   298,    -1,    -1,    -1,
2772       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2773       -1,    -1,    -1,    -1,   316,   317,    -1,    -1,    -1,    -1,
2774       -1,    -1,    -1,    -1,    -1,    -1,   328,   329,   330,   331,
2775       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   341,
2776      342,   343,   344,    -1,    -1,    -1,    -1,   349,   350,   351,
2777      352,   353,   354,   355,   356,   357,   358,   359,   360,    -1,
2778       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2779       -1,   373,   374,   375,   376,   377,   378,   379,   380,   381,
2780      382,   383,   384,   385,   386,   387,    -1,   389,   390,   391,
2781      392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
2782      402,   403,   404,   405,   406,   407,   408,   409,   410,   411,
2783      412,   413,   414,   415,   416,   417,   418,   419,     3,     4,
2784        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2785       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2786       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2787       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2788       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2789       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2790       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2791       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2792       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2793       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2794      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2795      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2796      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2797      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2798      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2799      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2800      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2801      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2802      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2803      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2804      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2805      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2806      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2807      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2808      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2809      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2810      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2811      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2812      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
2813       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2814       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2815       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2816       -1,    -1,   327,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2817       -1,    -1,    -1,    -1,    -1,    -1,   341,   342,   343,   344,
2818      345,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   354,
2819      355,   356,   357,   358,   359,   360,    -1,    -1,    -1,    -1,
2820       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   373,   374,
2821      375,   376,   377,   378,    -1,    -1,    -1,    -1,    -1,    -1,
2822       -1,    -1,   387,    -1,   389,   390,   391,   392,   393,   394,
2823      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
2824      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
2825      415,   416,   417,   418,   419,     3,     4,     5,     6,     7,
2826        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2827       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
2828       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2829       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2830       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2831       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
2832       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2833       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
2834       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2835       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2836      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
2837      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
2838      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2839      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2840      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2841      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2842      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2843      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
2844      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
2845      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
2846      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
2847      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
2848      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
2849      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
2850      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2851      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
2852      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2853      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
2854      288,   289,   290,   291,   292,   293,   294,    -1,    -1,    -1,
2855       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2856       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2857       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   327,
2858       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2859       -1,    -1,    -1,   341,   342,   343,   344,    -1,    -1,    -1,
2860       -1,    -1,    -1,    -1,    -1,   353,   354,   355,   356,   357,
2861      358,   359,   360,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2862       -1,    -1,    -1,    -1,    -1,   373,   374,   375,   376,   377,
2863      378,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   387,
2864       -1,   389,   390,   391,   392,   393,   394,   395,   396,   397,
2865      398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
2866      408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
2867      418,   419,     3,     4,     5,     6,     7,     8,     9,    10,
2868       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2869       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2870       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2871       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2872       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2873       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2874       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2875       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2876       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2877      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2878      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2879      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2880      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2881      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2882      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2883      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2884      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2885      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2886      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2887      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2888      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2889      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
2890      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
2891      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
2892      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2893      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
2894      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
2895      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
2896      291,   292,   293,   294,    -1,    -1,    -1,    -1,    -1,    -1,
2897       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2898       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2899       -1,   322,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2900       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2901      341,   342,   343,   344,    -1,    -1,    -1,    -1,    -1,    -1,
2902       -1,    -1,    -1,   354,   355,   356,   357,   358,   359,   360,
2903       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2904       -1,    -1,   373,   374,   375,   376,   377,   378,    -1,    -1,
2905       -1,    -1,    -1,    -1,    -1,    -1,   387,    -1,   389,   390,
2906      391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
2907      401,   402,   403,   404,   405,   406,   407,   408,   409,   410,
2908      411,   412,   413,   414,   415,   416,   417,   418,   419,     3,
2909        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2910       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2911       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2912       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2913       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2914       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
2915       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
2916       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2917       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2918       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
2919      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
2920      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
2921      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
2922      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
2923      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
2924      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
2925      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
2926      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
2927      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
2928      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
2929      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
2930      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
2931      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
2932      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
2933      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
2934      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2935      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
2936      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
2937      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
2938      294,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2939       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2940       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   322,    -1,
2941       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2942       -1,    -1,    -1,    -1,    -1,    -1,    -1,   341,   342,   343,
2943      344,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2944      354,   355,   356,   357,   358,   359,   360,    -1,    -1,    -1,
2945       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   373,
2946      374,   375,   376,   377,   378,    -1,    -1,    -1,    -1,    -1,
2947       -1,    -1,    -1,   387,    -1,   389,   390,   391,   392,   393,
2948      394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
2949      404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
2950      414,   415,   416,   417,   418,   419,     3,     4,     5,     6,
2951        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2952       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
2953       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2954       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2955       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2956       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2957       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2958       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2959       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2960       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2961      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2962      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2963      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2964      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2965      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2966      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2967      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2968      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2969      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2970      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2971      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2972      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
2973      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
2974      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
2975      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2976      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2977      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
2978      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
2979      287,   288,   289,   290,   291,   292,   293,   294,    -1,    -1,
2980       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2981       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2982       -1,    -1,    -1,    -1,    -1,   322,    -1,    -1,    -1,    -1,
2983       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2984       -1,    -1,    -1,    -1,   341,   342,   343,   344,    -1,    -1,
2985       -1,    -1,    -1,    -1,    -1,    -1,    -1,   354,   355,   356,
2986      357,   358,   359,   360,    -1,    -1,    -1,    -1,    -1,    -1,
2987       -1,    -1,    -1,    -1,    -1,    -1,   373,   374,   375,   376,
2988      377,   378,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2989      387,    -1,   389,   390,   391,   392,   393,   394,   395,   396,
2990      397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
2991      407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
2992      417,   418,   419,     3,     4,     5,     6,     7,     8,     9,
2993       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2994       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2995       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2996       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2997       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2998       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2999       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
3000       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
3001       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
3002      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
3003      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
3004      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
3005      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
3006      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
3007      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
3008      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
3009      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
3010      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
3011      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
3012      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
3013      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
3014      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
3015      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
3016      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
3017      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
3018      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
3019      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
3020      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
3021      290,   291,   292,   293,   294,    -1,    -1,    -1,    -1,    -1,
3022       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3023       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3024       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3025       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3026       -1,   341,   342,   343,   344,    -1,    -1,    -1,    -1,    -1,
3027       -1,    -1,    -1,    -1,   354,   355,   356,   357,   358,   359,
3028      360,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3029       -1,    -1,    -1,   373,   374,   375,   376,   377,   378,    -1,
3030       -1,    -1,    -1,    -1,    -1,    -1,    -1,   387,    -1,   389,
3031      390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
3032      400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
3033      410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
3034        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
3035       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
3036       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
3037       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3038       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
3039       54,    55,    56,    57,    58,    59,    60,    -1,    -1,    63,
3040       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
3041       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
3042       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
3043       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
3044      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
3045      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
3046      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
3047      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
3048      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
3049      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
3050      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
3051      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
3052      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
3053      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
3054      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
3055      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
3056      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
3057      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
3058      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
3059      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
3060      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
3061      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
3062      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
3063      294,    -1,    -1,   297,   298,    -1,    -1,    -1,    -1,    -1,
3064       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3065       -1,    -1,   316,   317,    -1,    -1,    -1,   321,   322,    -1,
3066       -1,    -1,    -1,    -1,   328,   329,   330,   331,    -1,    -1,
3067       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3068       -1,    -1,    -1,    -1,    -1,   349,   350,   351,   352,   353,
3069      354,    -1,    -1,    -1,    -1,   359,   360,    -1,    -1,    -1,
3070       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3071       -1,    -1,    -1,    -1,    -1,   379,   380,   381,   382,   383,
3072      384,   385,   386,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3073       -1,    -1,    -1,    -1,    -1,    -1,    -1,   401,     4,     5,
3074        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
3075       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
3076       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
3077       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
3078       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
3079       56,    57,    58,    59,    60,    -1,    -1,    63,    64,    65,
3080       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
3081       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
3082       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
3083       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
3084      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
3085      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
3086      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
3087      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
3088      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
3089      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
3090      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
3091      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
3092      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
3093      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
3094      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
3095      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
3096      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
3097      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
3098      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
3099      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
3100      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
3101      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
3102      286,   287,   288,   289,   290,   291,   292,   293,   294,    -1,
3103       -1,   297,   298,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3104       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3105      316,   317,    -1,    -1,   320,    -1,    -1,    -1,    -1,    -1,
3106       -1,    -1,   328,   329,   330,   331,    -1,    -1,    -1,    -1,
3107       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3108       -1,    -1,    -1,   349,   350,   351,   352,   353,   354,    -1,
3109       -1,    -1,    -1,   359,   360,    -1,    -1,    -1,    -1,    -1,
3110       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3111       -1,    -1,    -1,   379,   380,   381,   382,   383,   384,   385,
3112      386,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3113       -1,    -1,    -1,    -1,    -1,   401,     4,     5,     6,     7,
3114        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
3115       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
3116       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
3117       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3118       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
3119       58,    59,    60,    -1,    -1,    63,    64,    65,    66,    67,
3120       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
3121       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
3122       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
3123       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
3124      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
3125      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
3126      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
3127      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
3128      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
3129      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
3130      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
3131      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
3132      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
3133      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
3134      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
3135      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
3136      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
3137      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
3138      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
3139      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
3140      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
3141      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
3142      288,   289,   290,   291,   292,   293,   294,    -1,    -1,   297,
3143      298,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3144       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   316,   317,
3145       -1,    -1,    -1,   321,    -1,    -1,    -1,    -1,    -1,    -1,
3146      328,   329,   330,   331,    -1,    -1,    -1,    -1,    -1,    -1,
3147       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3148       -1,   349,   350,   351,   352,   353,   354,    -1,    -1,    -1,
3149       -1,   359,   360,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3150       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3151       -1,   379,   380,   381,   382,   383,   384,   385,   386,    -1,
3152       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3153       -1,    -1,    -1,   401,     4,     5,     6,     7,     8,     9,
3154       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
3155       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
3156       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3157       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3158       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
3159       60,    -1,    -1,    63,    64,    65,    66,    67,    68,    69,
3160       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
3161       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
3162       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
3163      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
3164      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
3165      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
3166      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
3167      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
3168      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
3169      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
3170      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
3171      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
3172      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
3173      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
3174      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
3175      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
3176      230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
3177      240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
3178      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
3179      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
3180      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
3181      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
3182      290,   291,   292,   293,   294,    -1,    -1,   297,   298,    -1,
3183       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3184       -1,    -1,    -1,    -1,    -1,    -1,   316,   317,    -1,    -1,
3185      320,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   328,   329,
3186      330,   331,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3187       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   349,
3188      350,   351,   352,   353,   354,    -1,    -1,    -1,    -1,   359,
3189      360,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3190       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,
3191      380,   381,   382,   383,   384,   385,   386,    -1,    -1,    -1,
3192       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3193       -1,   401,     4,     5,     6,     7,     8,     9,    10,    11,
3194       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
3195       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
3196       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
3197       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
3198       52,    53,    54,    55,    56,    57,    58,    59,    60,    -1,
3199       -1,    63,    64,    65,    66,    67,    68,    69,    70,    71,
3200       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
3201       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
3202       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
3203      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
3204      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
3205      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
3206      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
3207      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
3208      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
3209      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
3210      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
3211      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
3212      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
3213      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
3214      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
3215      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
3216      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
3217      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
3218      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
3219      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
3220      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
3221      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
3222      292,   293,   294,    -1,    -1,   297,   298,    -1,    -1,    -1,
3223       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3224       -1,    -1,    -1,    -1,   316,   317,    -1,    -1,    -1,    -1,
3225       -1,    -1,    -1,    -1,    -1,   327,   328,   329,   330,   331,
3226       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3227       -1,    -1,    -1,    -1,    -1,    -1,    -1,   349,   350,   351,
3228      352,   353,   354,    -1,    -1,    -1,    -1,   359,   360,    -1,
3229       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3230       -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,   380,   381,
3231      382,   383,   384,   385,   386,    -1,    -1,    -1,    -1,    -1,
3232       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   401,
3233        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
3234       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
3235       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
3236       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3237       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
3238       54,    55,    56,    57,    58,    59,    60,    -1,    -1,    63,
3239       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
3240       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
3241       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
3242       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
3243      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
3244      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
3245      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
3246      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
3247      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
3248      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
3249      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
3250      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
3251      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
3252      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
3253      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
3254      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
3255      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
3256      234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
3257      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
3258      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
3259      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
3260      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
3261      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
3262      294,    -1,    -1,   297,   298,    -1,    -1,    -1,    -1,    -1,
3263       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3264       -1,    -1,   316,   317,    -1,    -1,    -1,    -1,    -1,    -1,
3265       -1,    -1,    -1,    -1,   328,   329,   330,   331,    -1,    -1,
3266       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3267       -1,    -1,    -1,    -1,    -1,   349,   350,   351,   352,   353,
3268      354,    -1,    -1,    -1,    -1,   359,   360,    -1,    -1,    -1,
3269       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3270       -1,    -1,    -1,    -1,    -1,   379,   380,   381,   382,   383,
3271      384,   385,   386,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3272       -1,    -1,    -1,    -1,    -1,    -1,    -1,   401,     4,     5,
3273        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
3274       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
3275       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
3276       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
3277       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
3278       56,    57,    58,    59,    60,    -1,    -1,    63,    64,    65,
3279       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
3280       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
3281       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
3282       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
3283      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
3284      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
3285      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
3286      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
3287      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
3288      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
3289      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
3290      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
3291      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
3292      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
3293      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
3294      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
3295      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
3296      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
3297      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
3298      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
3299      266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
3300      276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
3301      286,   287,   288,   289,   290,   291,   292,   293,   294,   391,
3302       -1,   297,   298,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3303       -1,    -1,    -1,   405,    -1,    -1,    -1,    -1,    -1,    -1,
3304      316,   317,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3305      422,   423,   328,   329,   330,   331,    -1,    -1,    -1,    -1,
3306       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3307       -1,    -1,    -1,   349,   350,   351,   352,   353,   354,    -1,
3308       -1,    -1,   454,   359,   360,    -1,    -1,    -1,    -1,    -1,
3309       -1,    -1,    -1,   465,    -1,    -1,    -1,    -1,    -1,    -1,
3310       -1,    -1,    -1,   379,   380,   381,   382,   383,   384,   385,
3311      386,    -1,   484,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3312       -1,    -1,    -1,    -1,    -1,   401,    -1,    -1,    -1,    -1,
3313       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3314       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3315       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3316       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3317       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   551,
3318       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3319       -1,    -1,   564,   565,   566,   567,   568,   569,   570,   571,
3320      572,   573,   574,   575,   576,   577,   578,   579,   580,   581,
3321      582,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3322       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3323       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3324       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3325       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3326       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3327       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3328       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3329       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3330       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3331      682
3332 };
3333 
3334   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
3335      symbol of state STATE-NUM.  */
3336 static const yytype_uint16 yystos[] =
3337 {
3338        0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
3339       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
3340       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
3341       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
3342       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
3343       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
3344       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
3345       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
3346       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
3347       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
3348      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
3349      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
3350      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
3351      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
3352      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
3353      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
3354      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
3355      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
3356      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
3357      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
3358      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
3359      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
3360      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
3361      232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
3362      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
3363      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
3364      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
3365      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
3366      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
3367      292,   293,   294,   327,   341,   342,   343,   344,   345,   354,
3368      355,   356,   357,   358,   359,   360,   373,   374,   375,   376,
3369      377,   378,   387,   389,   390,   391,   392,   393,   394,   395,
3370      396,   397,   398,   399,   400,   401,   402,   403,   404,   405,
3371      406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
3372      416,   417,   418,   419,   451,   452,   455,   456,   457,   458,
3373      462,   463,   464,   465,   466,   467,   470,   471,   472,   473,
3374      474,   476,   481,   482,   483,   524,   525,   526,   482,   321,
3375      353,   317,   317,   327,   353,   327,   527,   318,   324,   459,
3376      460,   461,   471,   476,   324,   327,   353,   327,   353,   472,
3377      476,   335,   478,   479,     0,   525,   476,   485,   321,   353,
3378      374,   468,   469,   353,   475,   319,   327,   477,   321,   503,
3379      460,   459,   461,   353,   353,   317,   326,   477,   321,   324,
3380      327,   454,   297,   298,   316,   317,   328,   329,   330,   331,
3381      349,   350,   351,   352,   353,   379,   380,   381,   382,   383,
3382      384,   385,   386,   421,   422,   423,   425,   426,   427,   428,
3383      429,   430,   431,   432,   433,   474,   476,   480,   477,   327,
3384      471,   476,   486,   487,   484,   326,   318,   324,   318,   324,
3385      320,   432,   434,   435,   436,   437,   438,   439,   440,   441,
3386      442,   443,   444,   445,   319,   327,   319,   321,   322,   327,
3387      361,   362,   363,   364,   366,   367,   368,   369,   370,   371,
3388      372,   388,   432,   445,   447,   449,   451,   455,   474,   476,
3389      492,   493,   494,   495,   496,   504,   505,   506,   507,   510,
3390      511,   514,   515,   516,   523,   528,   477,   326,   477,   321,
3391      447,   490,   326,   453,   353,   324,   327,   432,   432,   449,
3392      297,   298,   319,   323,   318,   318,   324,   360,   447,   317,
3393      432,   324,   336,   476,   353,   488,   489,   322,   487,   486,
3394      445,   450,   469,   353,   332,   333,   334,   329,   331,   295,
3395      296,   299,   300,   335,   336,   301,   302,   339,   338,   337,
3396      303,   305,   304,   340,   320,   320,   445,   319,   322,   497,
3397      317,   327,   327,   518,   317,   317,   327,   327,   449,   317,
3398      449,   325,   327,   306,   307,   308,   309,   310,   311,   312,
3399      313,   314,   315,   326,   448,   324,   327,   322,   493,   507,
3400      511,   516,   490,   326,   490,   491,   490,   486,   353,   318,
3401      424,   449,   353,   447,   432,   488,   477,   324,   327,   322,
3402      432,   432,   432,   434,   434,   435,   435,   436,   436,   436,
3403      436,   437,   437,   438,   439,   440,   441,   442,   443,   446,
3404      320,   353,   529,   530,   504,   517,   493,   519,   449,   327,
3405      449,   325,   447,   447,   490,   322,   324,   322,   320,   327,
3406      489,   449,   317,   320,   324,   498,   449,   464,   471,   509,
3407      361,   492,   505,   520,   318,   318,   322,   490,   325,   450,
3408      320,   530,   322,   353,   318,   317,   509,   521,   522,   500,
3409      501,   502,   508,   512,   447,   318,   326,   494,   499,   503,
3410      449,   327,   318,   365,   496,   494,   321,   490,   318,   449,
3411      499,   500,   504,   513,   327,   322
3412 };
3413 
3414   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
3415 static const yytype_uint16 yyr1[] =
3416 {
3417        0,   420,   421,   422,   422,   422,   422,   422,   422,   422,
3418      422,   422,   422,   422,   422,   422,   422,   422,   423,   423,
3419      423,   423,   423,   423,   424,   425,   426,   427,   427,   428,
3420      428,   429,   429,   430,   431,   431,   431,   432,   432,   432,
3421      432,   433,   433,   433,   433,   434,   434,   434,   434,   435,
3422      435,   435,   436,   436,   436,   437,   437,   437,   437,   437,
3423      438,   438,   438,   439,   439,   440,   440,   441,   441,   442,
3424      442,   443,   443,   444,   444,   445,   446,   445,   447,   447,
3425      448,   448,   448,   448,   448,   448,   448,   448,   448,   448,
3426      448,   449,   449,   450,   451,   451,   451,   451,   451,   451,
3427      451,   451,   451,   453,   452,   454,   454,   455,   456,   456,
3428      457,   457,   458,   459,   459,   460,   460,   460,   460,   461,
3429      462,   462,   462,   462,   462,   463,   463,   463,   463,   463,
3430      464,   464,   465,   466,   466,   466,   466,   466,   466,   466,
3431      466,   467,   468,   468,   469,   469,   469,   470,   471,   471,
3432      472,   472,   472,   472,   472,   472,   472,   473,   473,   473,
3433      473,   473,   473,   473,   473,   473,   473,   473,   473,   473,
3434      473,   473,   473,   473,   473,   473,   473,   473,   473,   473,
3435      473,   473,   473,   473,   473,   473,   473,   473,   473,   473,
3436      473,   473,   474,   475,   475,   476,   476,   477,   477,   477,
3437      477,   478,   478,   479,   480,   480,   481,   481,   481,   481,
3438      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3439      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3440      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3441      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3442      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3443      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3444      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3445      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3446      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3447      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3448      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3449      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3450      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3451      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3452      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3453      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3454      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3455      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3456      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3457      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3458      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3459      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3460      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3461      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3462      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3463      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3464      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3465      481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
3466      481,   481,   481,   481,   481,   481,   481,   481,   482,   482,
3467      482,   484,   483,   485,   483,   486,   486,   487,   487,   488,
3468      488,   489,   489,   490,   490,   490,   491,   491,   492,   493,
3469      493,   494,   494,   494,   494,   494,   494,   494,   494,   495,
3470      496,   497,   498,   496,   499,   499,   501,   500,   502,   500,
3471      503,   503,   504,   504,   505,   505,   506,   506,   507,   508,
3472      508,   509,   509,   510,   510,   512,   511,   513,   513,   514,
3473      514,   515,   515,   517,   516,   518,   516,   519,   516,   520,
3474      520,   521,   521,   522,   522,   523,   523,   523,   523,   523,
3475      524,   524,   525,   525,   525,   527,   526,   528,   529,   529,
3476      530,   530
3477 };
3478 
3479   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
3480 static const yytype_uint8 yyr2[] =
3481 {
3482        0,     2,     1,     1,     3,     1,     1,     1,     1,     1,
3483        1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
3484        1,     3,     2,     2,     1,     1,     1,     2,     2,     2,
3485        1,     2,     3,     2,     1,     1,     1,     1,     2,     2,
3486        2,     1,     1,     1,     1,     1,     3,     3,     3,     1,
3487        3,     3,     1,     3,     3,     1,     3,     3,     3,     3,
3488        1,     3,     3,     1,     3,     1,     3,     1,     3,     1,
3489        3,     1,     3,     1,     3,     1,     0,     6,     1,     3,
3490        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3491        1,     1,     3,     1,     2,     2,     4,     2,     3,     4,
3492        2,     3,     4,     0,     6,     2,     3,     2,     1,     1,
3493        2,     3,     3,     2,     3,     2,     1,     2,     1,     1,
3494        1,     3,     4,     6,     5,     1,     2,     3,     5,     4,
3495        1,     2,     1,     1,     1,     1,     1,     1,     1,     1,
3496        1,     4,     1,     3,     1,     3,     1,     1,     1,     2,
3497        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3498        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3499        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3500        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3501        1,     4,     1,     1,     3,     2,     3,     2,     3,     3,
3502        4,     1,     0,     3,     1,     3,     1,     1,     1,     1,
3503        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3504        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3505        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3506        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3507        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3508        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3509        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3510        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3511        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3512        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3513        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3514        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3515        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3516        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3517        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3518        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3519        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3520        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3521        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3522        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3523        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3524        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3525        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3526        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3527        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3528        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3529        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3530        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3531        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
3532        1,     0,     6,     0,     5,     1,     2,     3,     4,     1,
3533        3,     1,     2,     1,     3,     4,     1,     3,     1,     1,
3534        1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
3535        2,     0,     0,     5,     1,     1,     0,     2,     0,     2,
3536        2,     3,     1,     2,     1,     2,     1,     2,     5,     3,
3537        1,     1,     4,     1,     2,     0,     8,     0,     1,     3,
3538        2,     1,     2,     0,     6,     0,     8,     0,     7,     1,
3539        1,     1,     0,     2,     3,     2,     2,     2,     3,     2,
3540        1,     2,     1,     1,     1,     0,     3,     5,     1,     3,
3541        1,     4
3542 };
3543 
3544 
3545 #define yyerrok         (yyerrstatus = 0)
3546 #define yyclearin       (yychar = YYEMPTY)
3547 #define YYEMPTY         (-2)
3548 #define YYEOF           0
3549 
3550 #define YYACCEPT        goto yyacceptlab
3551 #define YYABORT         goto yyabortlab
3552 #define YYERROR         goto yyerrorlab
3553 
3554 
3555 #define YYRECOVERING()  (!!yyerrstatus)
3556 
3557 #define YYBACKUP(Token, Value)                                  \
3558 do                                                              \
3559   if (yychar == YYEMPTY)                                        \
3560     {                                                           \
3561       yychar = (Token);                                         \
3562       yylval = (Value);                                         \
3563       YYPOPSTACK (yylen);                                       \
3564       yystate = *yyssp;                                         \
3565       goto yybackup;                                            \
3566     }                                                           \
3567   else                                                          \
3568     {                                                           \
3569       yyerror (pParseContext, YY_("syntax error: cannot back up")); \
3570       YYERROR;                                                  \
3571     }                                                           \
3572 while (0)
3573 
3574 /* Error token number */
3575 #define YYTERROR        1
3576 #define YYERRCODE       256
3577 
3578 
3579 
3580 /* Enable debugging if requested.  */
3581 #if YYDEBUG
3582 
3583 # ifndef YYFPRINTF
3584 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3585 #  define YYFPRINTF fprintf
3586 # endif
3587 
3588 # define YYDPRINTF(Args)                        \
3589 do {                                            \
3590   if (yydebug)                                  \
3591     YYFPRINTF Args;                             \
3592 } while (0)
3593 
3594 /* This macro is provided for backward compatibility. */
3595 #ifndef YY_LOCATION_PRINT
3596 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3597 #endif
3598 
3599 
3600 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
3601 do {                                                                      \
3602   if (yydebug)                                                            \
3603     {                                                                     \
3604       YYFPRINTF (stderr, "%s ", Title);                                   \
3605       yy_symbol_print (stderr,                                            \
3606                   Type, Value, pParseContext); \
3607       YYFPRINTF (stderr, "\n");                                           \
3608     }                                                                     \
3609 } while (0)
3610 
3611 
3612 /*----------------------------------------.
3613 | Print this symbol's value on YYOUTPUT.  |
3614 `----------------------------------------*/
3615 
3616 static void
yy_symbol_value_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep,glslang::TParseContext * pParseContext)3617 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
3618 {
3619   FILE *yyo = yyoutput;
3620   YYUSE (yyo);
3621   YYUSE (pParseContext);
3622   if (!yyvaluep)
3623     return;
3624 # ifdef YYPRINT
3625   if (yytype < YYNTOKENS)
3626     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3627 # endif
3628   YYUSE (yytype);
3629 }
3630 
3631 
3632 /*--------------------------------.
3633 | Print this symbol on YYOUTPUT.  |
3634 `--------------------------------*/
3635 
3636 static void
yy_symbol_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep,glslang::TParseContext * pParseContext)3637 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
3638 {
3639   YYFPRINTF (yyoutput, "%s %s (",
3640              yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
3641 
3642   yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext);
3643   YYFPRINTF (yyoutput, ")");
3644 }
3645 
3646 /*------------------------------------------------------------------.
3647 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
3648 | TOP (included).                                                   |
3649 `------------------------------------------------------------------*/
3650 
3651 static void
yy_stack_print(yytype_int16 * yybottom,yytype_int16 * yytop)3652 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
3653 {
3654   YYFPRINTF (stderr, "Stack now");
3655   for (; yybottom <= yytop; yybottom++)
3656     {
3657       int yybot = *yybottom;
3658       YYFPRINTF (stderr, " %d", yybot);
3659     }
3660   YYFPRINTF (stderr, "\n");
3661 }
3662 
3663 # define YY_STACK_PRINT(Bottom, Top)                            \
3664 do {                                                            \
3665   if (yydebug)                                                  \
3666     yy_stack_print ((Bottom), (Top));                           \
3667 } while (0)
3668 
3669 
3670 /*------------------------------------------------.
3671 | Report that the YYRULE is going to be reduced.  |
3672 `------------------------------------------------*/
3673 
3674 static void
yy_reduce_print(yytype_int16 * yyssp,YYSTYPE * yyvsp,int yyrule,glslang::TParseContext * pParseContext)3675 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext)
3676 {
3677   unsigned long int yylno = yyrline[yyrule];
3678   int yynrhs = yyr2[yyrule];
3679   int yyi;
3680   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3681              yyrule - 1, yylno);
3682   /* The symbols being reduced.  */
3683   for (yyi = 0; yyi < yynrhs; yyi++)
3684     {
3685       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
3686       yy_symbol_print (stderr,
3687                        yystos[yyssp[yyi + 1 - yynrhs]],
3688                        &(yyvsp[(yyi + 1) - (yynrhs)])
3689                                               , pParseContext);
3690       YYFPRINTF (stderr, "\n");
3691     }
3692 }
3693 
3694 # define YY_REDUCE_PRINT(Rule)          \
3695 do {                                    \
3696   if (yydebug)                          \
3697     yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \
3698 } while (0)
3699 
3700 /* Nonzero means print parse trace.  It is left uninitialized so that
3701    multiple parsers can coexist.  */
3702 int yydebug;
3703 #else /* !YYDEBUG */
3704 # define YYDPRINTF(Args)
3705 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3706 # define YY_STACK_PRINT(Bottom, Top)
3707 # define YY_REDUCE_PRINT(Rule)
3708 #endif /* !YYDEBUG */
3709 
3710 
3711 /* YYINITDEPTH -- initial size of the parser's stacks.  */
3712 #ifndef YYINITDEPTH
3713 # define YYINITDEPTH 200
3714 #endif
3715 
3716 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3717    if the built-in stack extension method is used).
3718 
3719    Do not make this value too large; the results are undefined if
3720    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3721    evaluated with infinite-precision integer arithmetic.  */
3722 
3723 #ifndef YYMAXDEPTH
3724 # define YYMAXDEPTH 10000
3725 #endif
3726 
3727 
3728 #if YYERROR_VERBOSE
3729 
3730 # ifndef yystrlen
3731 #  if defined __GLIBC__ && defined _STRING_H
3732 #   define yystrlen strlen
3733 #  else
3734 /* Return the length of YYSTR.  */
3735 static YYSIZE_T
yystrlen(const char * yystr)3736 yystrlen (const char *yystr)
3737 {
3738   YYSIZE_T yylen;
3739   for (yylen = 0; yystr[yylen]; yylen++)
3740     continue;
3741   return yylen;
3742 }
3743 #  endif
3744 # endif
3745 
3746 # ifndef yystpcpy
3747 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3748 #   define yystpcpy stpcpy
3749 #  else
3750 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3751    YYDEST.  */
3752 static char *
yystpcpy(char * yydest,const char * yysrc)3753 yystpcpy (char *yydest, const char *yysrc)
3754 {
3755   char *yyd = yydest;
3756   const char *yys = yysrc;
3757 
3758   while ((*yyd++ = *yys++) != '\0')
3759     continue;
3760 
3761   return yyd - 1;
3762 }
3763 #  endif
3764 # endif
3765 
3766 # ifndef yytnamerr
3767 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3768    quotes and backslashes, so that it's suitable for yyerror.  The
3769    heuristic is that double-quoting is unnecessary unless the string
3770    contains an apostrophe, a comma, or backslash (other than
3771    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
3772    null, do not copy; instead, return the length of what the result
3773    would have been.  */
3774 static YYSIZE_T
yytnamerr(char * yyres,const char * yystr)3775 yytnamerr (char *yyres, const char *yystr)
3776 {
3777   if (*yystr == '"')
3778     {
3779       YYSIZE_T yyn = 0;
3780       char const *yyp = yystr;
3781 
3782       for (;;)
3783         switch (*++yyp)
3784           {
3785           case '\'':
3786           case ',':
3787             goto do_not_strip_quotes;
3788 
3789           case '\\':
3790             if (*++yyp != '\\')
3791               goto do_not_strip_quotes;
3792             /* Fall through.  */
3793           default:
3794             if (yyres)
3795               yyres[yyn] = *yyp;
3796             yyn++;
3797             break;
3798 
3799           case '"':
3800             if (yyres)
3801               yyres[yyn] = '\0';
3802             return yyn;
3803           }
3804     do_not_strip_quotes: ;
3805     }
3806 
3807   if (! yyres)
3808     return yystrlen (yystr);
3809 
3810   return yystpcpy (yyres, yystr) - yyres;
3811 }
3812 # endif
3813 
3814 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
3815    about the unexpected token YYTOKEN for the state stack whose top is
3816    YYSSP.
3817 
3818    Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
3819    not large enough to hold the message.  In that case, also set
3820    *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
3821    required number of bytes is too large to store.  */
3822 static int
yysyntax_error(YYSIZE_T * yymsg_alloc,char ** yymsg,yytype_int16 * yyssp,int yytoken)3823 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
3824                 yytype_int16 *yyssp, int yytoken)
3825 {
3826   YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
3827   YYSIZE_T yysize = yysize0;
3828   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3829   /* Internationalized format string. */
3830   const char *yyformat = YY_NULLPTR;
3831   /* Arguments of yyformat. */
3832   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3833   /* Number of reported tokens (one for the "unexpected", one per
3834      "expected"). */
3835   int yycount = 0;
3836 
3837   /* There are many possibilities here to consider:
3838      - If this state is a consistent state with a default action, then
3839        the only way this function was invoked is if the default action
3840        is an error action.  In that case, don't check for expected
3841        tokens because there are none.
3842      - The only way there can be no lookahead present (in yychar) is if
3843        this state is a consistent state with a default action.  Thus,
3844        detecting the absence of a lookahead is sufficient to determine
3845        that there is no unexpected or expected token to report.  In that
3846        case, just report a simple "syntax error".
3847      - Don't assume there isn't a lookahead just because this state is a
3848        consistent state with a default action.  There might have been a
3849        previous inconsistent state, consistent state with a non-default
3850        action, or user semantic action that manipulated yychar.
3851      - Of course, the expected token list depends on states to have
3852        correct lookahead information, and it depends on the parser not
3853        to perform extra reductions after fetching a lookahead from the
3854        scanner and before detecting a syntax error.  Thus, state merging
3855        (from LALR or IELR) and default reductions corrupt the expected
3856        token list.  However, the list is correct for canonical LR with
3857        one exception: it will still contain any token that will not be
3858        accepted due to an error action in a later state.
3859   */
3860   if (yytoken != YYEMPTY)
3861     {
3862       int yyn = yypact[*yyssp];
3863       yyarg[yycount++] = yytname[yytoken];
3864       if (!yypact_value_is_default (yyn))
3865         {
3866           /* Start YYX at -YYN if negative to avoid negative indexes in
3867              YYCHECK.  In other words, skip the first -YYN actions for
3868              this state because they are default actions.  */
3869           int yyxbegin = yyn < 0 ? -yyn : 0;
3870           /* Stay within bounds of both yycheck and yytname.  */
3871           int yychecklim = YYLAST - yyn + 1;
3872           int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3873           int yyx;
3874 
3875           for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3876             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
3877                 && !yytable_value_is_error (yytable[yyx + yyn]))
3878               {
3879                 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3880                   {
3881                     yycount = 1;
3882                     yysize = yysize0;
3883                     break;
3884                   }
3885                 yyarg[yycount++] = yytname[yyx];
3886                 {
3887                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
3888                   if (! (yysize <= yysize1
3889                          && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3890                     return 2;
3891                   yysize = yysize1;
3892                 }
3893               }
3894         }
3895     }
3896 
3897   switch (yycount)
3898     {
3899 # define YYCASE_(N, S)                      \
3900       case N:                               \
3901         yyformat = S;                       \
3902       break
3903       YYCASE_(0, YY_("syntax error"));
3904       YYCASE_(1, YY_("syntax error, unexpected %s"));
3905       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
3906       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
3907       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
3908       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
3909 # undef YYCASE_
3910     }
3911 
3912   {
3913     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
3914     if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3915       return 2;
3916     yysize = yysize1;
3917   }
3918 
3919   if (*yymsg_alloc < yysize)
3920     {
3921       *yymsg_alloc = 2 * yysize;
3922       if (! (yysize <= *yymsg_alloc
3923              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
3924         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
3925       return 1;
3926     }
3927 
3928   /* Avoid sprintf, as that infringes on the user's name space.
3929      Don't have undefined behavior even if the translation
3930      produced a string with the wrong number of "%s"s.  */
3931   {
3932     char *yyp = *yymsg;
3933     int yyi = 0;
3934     while ((*yyp = *yyformat) != '\0')
3935       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
3936         {
3937           yyp += yytnamerr (yyp, yyarg[yyi++]);
3938           yyformat += 2;
3939         }
3940       else
3941         {
3942           yyp++;
3943           yyformat++;
3944         }
3945   }
3946   return 0;
3947 }
3948 #endif /* YYERROR_VERBOSE */
3949 
3950 /*-----------------------------------------------.
3951 | Release the memory associated to this symbol.  |
3952 `-----------------------------------------------*/
3953 
3954 static void
yydestruct(const char * yymsg,int yytype,YYSTYPE * yyvaluep,glslang::TParseContext * pParseContext)3955 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext)
3956 {
3957   YYUSE (yyvaluep);
3958   YYUSE (pParseContext);
3959   if (!yymsg)
3960     yymsg = "Deleting";
3961   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3962 
3963   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3964   YYUSE (yytype);
3965   YY_IGNORE_MAYBE_UNINITIALIZED_END
3966 }
3967 
3968 
3969 
3970 
3971 /*----------.
3972 | yyparse.  |
3973 `----------*/
3974 
3975 int
yyparse(glslang::TParseContext * pParseContext)3976 yyparse (glslang::TParseContext* pParseContext)
3977 {
3978 /* The lookahead symbol.  */
3979 int yychar;
3980 
3981 
3982 /* The semantic value of the lookahead symbol.  */
3983 /* Default value used for initialization, for pacifying older GCCs
3984    or non-GCC compilers.  */
3985 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
3986 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
3987 
3988     /* Number of syntax errors so far.  */
3989     int yynerrs;
3990 
3991     int yystate;
3992     /* Number of tokens to shift before error messages enabled.  */
3993     int yyerrstatus;
3994 
3995     /* The stacks and their tools:
3996        'yyss': related to states.
3997        'yyvs': related to semantic values.
3998 
3999        Refer to the stacks through separate pointers, to allow yyoverflow
4000        to reallocate them elsewhere.  */
4001 
4002     /* The state stack.  */
4003     yytype_int16 yyssa[YYINITDEPTH];
4004     yytype_int16 *yyss;
4005     yytype_int16 *yyssp;
4006 
4007     /* The semantic value stack.  */
4008     YYSTYPE yyvsa[YYINITDEPTH];
4009     YYSTYPE *yyvs;
4010     YYSTYPE *yyvsp;
4011 
4012     YYSIZE_T yystacksize;
4013 
4014   int yyn;
4015   int yyresult;
4016   /* Lookahead token as an internal (translated) token number.  */
4017   int yytoken = 0;
4018   /* The variables used to return semantic value and location from the
4019      action routines.  */
4020   YYSTYPE yyval;
4021 
4022 #if YYERROR_VERBOSE
4023   /* Buffer for error messages, and its allocated size.  */
4024   char yymsgbuf[128];
4025   char *yymsg = yymsgbuf;
4026   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
4027 #endif
4028 
4029 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
4030 
4031   /* The number of symbols on the RHS of the reduced rule.
4032      Keep to zero when no symbol should be popped.  */
4033   int yylen = 0;
4034 
4035   yyssp = yyss = yyssa;
4036   yyvsp = yyvs = yyvsa;
4037   yystacksize = YYINITDEPTH;
4038 
4039   YYDPRINTF ((stderr, "Starting parse\n"));
4040 
4041   yystate = 0;
4042   yyerrstatus = 0;
4043   yynerrs = 0;
4044   yychar = YYEMPTY; /* Cause a token to be read.  */
4045   goto yysetstate;
4046 
4047 /*------------------------------------------------------------.
4048 | yynewstate -- Push a new state, which is found in yystate.  |
4049 `------------------------------------------------------------*/
4050  yynewstate:
4051   /* In all cases, when you get here, the value and location stacks
4052      have just been pushed.  So pushing a state here evens the stacks.  */
4053   yyssp++;
4054 
4055  yysetstate:
4056   *yyssp = yystate;
4057 
4058   if (yyss + yystacksize - 1 <= yyssp)
4059     {
4060       /* Get the current used size of the three stacks, in elements.  */
4061       YYSIZE_T yysize = yyssp - yyss + 1;
4062 
4063 #ifdef yyoverflow
4064       {
4065         /* Give user a chance to reallocate the stack.  Use copies of
4066            these so that the &'s don't force the real ones into
4067            memory.  */
4068         YYSTYPE *yyvs1 = yyvs;
4069         yytype_int16 *yyss1 = yyss;
4070 
4071         /* Each stack pointer address is followed by the size of the
4072            data in use in that stack, in bytes.  This used to be a
4073            conditional around just the two extra args, but that might
4074            be undefined if yyoverflow is a macro.  */
4075         yyoverflow (YY_("memory exhausted"),
4076                     &yyss1, yysize * sizeof (*yyssp),
4077                     &yyvs1, yysize * sizeof (*yyvsp),
4078                     &yystacksize);
4079 
4080         yyss = yyss1;
4081         yyvs = yyvs1;
4082       }
4083 #else /* no yyoverflow */
4084 # ifndef YYSTACK_RELOCATE
4085       goto yyexhaustedlab;
4086 # else
4087       /* Extend the stack our own way.  */
4088       if (YYMAXDEPTH <= yystacksize)
4089         goto yyexhaustedlab;
4090       yystacksize *= 2;
4091       if (YYMAXDEPTH < yystacksize)
4092         yystacksize = YYMAXDEPTH;
4093 
4094       {
4095         yytype_int16 *yyss1 = yyss;
4096         union yyalloc *yyptr =
4097           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
4098         if (! yyptr)
4099           goto yyexhaustedlab;
4100         YYSTACK_RELOCATE (yyss_alloc, yyss);
4101         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
4102 #  undef YYSTACK_RELOCATE
4103         if (yyss1 != yyssa)
4104           YYSTACK_FREE (yyss1);
4105       }
4106 # endif
4107 #endif /* no yyoverflow */
4108 
4109       yyssp = yyss + yysize - 1;
4110       yyvsp = yyvs + yysize - 1;
4111 
4112       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
4113                   (unsigned long int) yystacksize));
4114 
4115       if (yyss + yystacksize - 1 <= yyssp)
4116         YYABORT;
4117     }
4118 
4119   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4120 
4121   if (yystate == YYFINAL)
4122     YYACCEPT;
4123 
4124   goto yybackup;
4125 
4126 /*-----------.
4127 | yybackup.  |
4128 `-----------*/
4129 yybackup:
4130 
4131   /* Do appropriate processing given the current state.  Read a
4132      lookahead token if we need one and don't already have one.  */
4133 
4134   /* First try to decide what to do without reference to lookahead token.  */
4135   yyn = yypact[yystate];
4136   if (yypact_value_is_default (yyn))
4137     goto yydefault;
4138 
4139   /* Not known => get a lookahead token if don't already have one.  */
4140 
4141   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
4142   if (yychar == YYEMPTY)
4143     {
4144       YYDPRINTF ((stderr, "Reading a token: "));
4145       yychar = yylex (&yylval, parseContext);
4146     }
4147 
4148   if (yychar <= YYEOF)
4149     {
4150       yychar = yytoken = YYEOF;
4151       YYDPRINTF ((stderr, "Now at end of input.\n"));
4152     }
4153   else
4154     {
4155       yytoken = YYTRANSLATE (yychar);
4156       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
4157     }
4158 
4159   /* If the proper action on seeing token YYTOKEN is to reduce or to
4160      detect an error, take that action.  */
4161   yyn += yytoken;
4162   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
4163     goto yydefault;
4164   yyn = yytable[yyn];
4165   if (yyn <= 0)
4166     {
4167       if (yytable_value_is_error (yyn))
4168         goto yyerrlab;
4169       yyn = -yyn;
4170       goto yyreduce;
4171     }
4172 
4173   /* Count tokens shifted since error; after three, turn off error
4174      status.  */
4175   if (yyerrstatus)
4176     yyerrstatus--;
4177 
4178   /* Shift the lookahead token.  */
4179   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
4180 
4181   /* Discard the shifted token.  */
4182   yychar = YYEMPTY;
4183 
4184   yystate = yyn;
4185   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4186   *++yyvsp = yylval;
4187   YY_IGNORE_MAYBE_UNINITIALIZED_END
4188 
4189   goto yynewstate;
4190 
4191 
4192 /*-----------------------------------------------------------.
4193 | yydefault -- do the default action for the current state.  |
4194 `-----------------------------------------------------------*/
4195 yydefault:
4196   yyn = yydefact[yystate];
4197   if (yyn == 0)
4198     goto yyerrlab;
4199   goto yyreduce;
4200 
4201 
4202 /*-----------------------------.
4203 | yyreduce -- Do a reduction.  |
4204 `-----------------------------*/
4205 yyreduce:
4206   /* yyn is the number of a rule to reduce with.  */
4207   yylen = yyr2[yyn];
4208 
4209   /* If YYLEN is nonzero, implement the default value of the action:
4210      '$$ = $1'.
4211 
4212      Otherwise, the following line sets YYVAL to garbage.
4213      This behavior is undocumented and Bison
4214      users should not rely upon it.  Assigning to YYVAL
4215      unconditionally makes the parser a bit smaller, and it avoids a
4216      GCC warning that YYVAL may be used uninitialized.  */
4217   yyval = yyvsp[1-yylen];
4218 
4219 
4220   YY_REDUCE_PRINT (yyn);
4221   switch (yyn)
4222     {
4223         case 2:
4224 #line 357 "glslang.y" /* yacc.c:1646  */
4225     {
4226         (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
4227     }
4228 #line 4229 "glslang_tab.cpp" /* yacc.c:1646  */
4229     break;
4230 
4231   case 3:
4232 #line 363 "glslang.y" /* yacc.c:1646  */
4233     {
4234         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4235     }
4236 #line 4237 "glslang_tab.cpp" /* yacc.c:1646  */
4237     break;
4238 
4239   case 4:
4240 #line 366 "glslang.y" /* yacc.c:1646  */
4241     {
4242         (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
4243         if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
4244             (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
4245     }
4246 #line 4247 "glslang_tab.cpp" /* yacc.c:1646  */
4247     break;
4248 
4249   case 5:
4250 #line 371 "glslang.y" /* yacc.c:1646  */
4251     {
4252         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
4253     }
4254 #line 4255 "glslang_tab.cpp" /* yacc.c:1646  */
4255     break;
4256 
4257   case 6:
4258 #line 374 "glslang.y" /* yacc.c:1646  */
4259     {
4260         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4261     }
4262 #line 4263 "glslang_tab.cpp" /* yacc.c:1646  */
4263     break;
4264 
4265   case 7:
4266 #line 377 "glslang.y" /* yacc.c:1646  */
4267     {
4268         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
4269         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4270     }
4271 #line 4272 "glslang_tab.cpp" /* yacc.c:1646  */
4272     break;
4273 
4274   case 8:
4275 #line 381 "glslang.y" /* yacc.c:1646  */
4276     {
4277         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
4278     }
4279 #line 4280 "glslang_tab.cpp" /* yacc.c:1646  */
4280     break;
4281 
4282   case 9:
4283 #line 385 "glslang.y" /* yacc.c:1646  */
4284     {
4285         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
4286     }
4287 #line 4288 "glslang_tab.cpp" /* yacc.c:1646  */
4288     break;
4289 
4290   case 10:
4291 #line 388 "glslang.y" /* yacc.c:1646  */
4292     {
4293         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
4294         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4295     }
4296 #line 4297 "glslang_tab.cpp" /* yacc.c:1646  */
4297     break;
4298 
4299   case 11:
4300 #line 392 "glslang.y" /* yacc.c:1646  */
4301     {
4302         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
4303         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4304     }
4305 #line 4306 "glslang_tab.cpp" /* yacc.c:1646  */
4306     break;
4307 
4308   case 12:
4309 #line 396 "glslang.y" /* yacc.c:1646  */
4310     {
4311         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
4312         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
4313     }
4314 #line 4315 "glslang_tab.cpp" /* yacc.c:1646  */
4315     break;
4316 
4317   case 13:
4318 #line 400 "glslang.y" /* yacc.c:1646  */
4319     {
4320         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
4321         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
4322     }
4323 #line 4324 "glslang_tab.cpp" /* yacc.c:1646  */
4324     break;
4325 
4326   case 14:
4327 #line 404 "glslang.y" /* yacc.c:1646  */
4328     {
4329         parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal");
4330         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4331     }
4332 #line 4333 "glslang_tab.cpp" /* yacc.c:1646  */
4333     break;
4334 
4335   case 15:
4336 #line 408 "glslang.y" /* yacc.c:1646  */
4337     {
4338         parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal");
4339         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4340     }
4341 #line 4342 "glslang_tab.cpp" /* yacc.c:1646  */
4342     break;
4343 
4344   case 16:
4345 #line 412 "glslang.y" /* yacc.c:1646  */
4346     {
4347         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double literal");
4348         if (! parseContext.symbolTable.atBuiltInLevel())
4349             parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
4350         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
4351     }
4352 #line 4353 "glslang_tab.cpp" /* yacc.c:1646  */
4353     break;
4354 
4355   case 17:
4356 #line 418 "glslang.y" /* yacc.c:1646  */
4357     {
4358         parseContext.float16Check((yyvsp[0].lex).loc, "half float literal");
4359         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true);
4360     }
4361 #line 4362 "glslang_tab.cpp" /* yacc.c:1646  */
4362     break;
4363 
4364   case 18:
4365 #line 426 "glslang.y" /* yacc.c:1646  */
4366     {
4367         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4368     }
4369 #line 4370 "glslang_tab.cpp" /* yacc.c:1646  */
4370     break;
4371 
4372   case 19:
4373 #line 429 "glslang.y" /* yacc.c:1646  */
4374     {
4375         (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
4376     }
4377 #line 4378 "glslang_tab.cpp" /* yacc.c:1646  */
4378     break;
4379 
4380   case 20:
4381 #line 432 "glslang.y" /* yacc.c:1646  */
4382     {
4383         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4384     }
4385 #line 4386 "glslang_tab.cpp" /* yacc.c:1646  */
4386     break;
4387 
4388   case 21:
4389 #line 435 "glslang.y" /* yacc.c:1646  */
4390     {
4391         (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
4392     }
4393 #line 4394 "glslang_tab.cpp" /* yacc.c:1646  */
4394     break;
4395 
4396   case 22:
4397 #line 438 "glslang.y" /* yacc.c:1646  */
4398     {
4399         parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
4400         parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
4401         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
4402     }
4403 #line 4404 "glslang_tab.cpp" /* yacc.c:1646  */
4404     break;
4405 
4406   case 23:
4407 #line 443 "glslang.y" /* yacc.c:1646  */
4408     {
4409         parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
4410         parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
4411         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
4412     }
4413 #line 4414 "glslang_tab.cpp" /* yacc.c:1646  */
4414     break;
4415 
4416   case 24:
4417 #line 451 "glslang.y" /* yacc.c:1646  */
4418     {
4419         parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
4420         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4421     }
4422 #line 4423 "glslang_tab.cpp" /* yacc.c:1646  */
4423     break;
4424 
4425   case 25:
4426 #line 458 "glslang.y" /* yacc.c:1646  */
4427     {
4428         (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
4429         delete (yyvsp[0].interm).function;
4430     }
4431 #line 4432 "glslang_tab.cpp" /* yacc.c:1646  */
4432     break;
4433 
4434   case 26:
4435 #line 465 "glslang.y" /* yacc.c:1646  */
4436     {
4437         (yyval.interm) = (yyvsp[0].interm);
4438     }
4439 #line 4440 "glslang_tab.cpp" /* yacc.c:1646  */
4440     break;
4441 
4442   case 27:
4443 #line 471 "glslang.y" /* yacc.c:1646  */
4444     {
4445         (yyval.interm) = (yyvsp[-1].interm);
4446         (yyval.interm).loc = (yyvsp[0].lex).loc;
4447     }
4448 #line 4449 "glslang_tab.cpp" /* yacc.c:1646  */
4449     break;
4450 
4451   case 28:
4452 #line 475 "glslang.y" /* yacc.c:1646  */
4453     {
4454         (yyval.interm) = (yyvsp[-1].interm);
4455         (yyval.interm).loc = (yyvsp[0].lex).loc;
4456     }
4457 #line 4458 "glslang_tab.cpp" /* yacc.c:1646  */
4458     break;
4459 
4460   case 29:
4461 #line 482 "glslang.y" /* yacc.c:1646  */
4462     {
4463         (yyval.interm) = (yyvsp[-1].interm);
4464     }
4465 #line 4466 "glslang_tab.cpp" /* yacc.c:1646  */
4466     break;
4467 
4468   case 30:
4469 #line 485 "glslang.y" /* yacc.c:1646  */
4470     {
4471         (yyval.interm) = (yyvsp[0].interm);
4472     }
4473 #line 4474 "glslang_tab.cpp" /* yacc.c:1646  */
4474     break;
4475 
4476   case 31:
4477 #line 491 "glslang.y" /* yacc.c:1646  */
4478     {
4479         TParameter param = { 0, new TType };
4480         param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
4481         (yyvsp[-1].interm).function->addParameter(param);
4482         (yyval.interm).function = (yyvsp[-1].interm).function;
4483         (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
4484     }
4485 #line 4486 "glslang_tab.cpp" /* yacc.c:1646  */
4486     break;
4487 
4488   case 32:
4489 #line 498 "glslang.y" /* yacc.c:1646  */
4490     {
4491         TParameter param = { 0, new TType };
4492         param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
4493         (yyvsp[-2].interm).function->addParameter(param);
4494         (yyval.interm).function = (yyvsp[-2].interm).function;
4495         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
4496     }
4497 #line 4498 "glslang_tab.cpp" /* yacc.c:1646  */
4498     break;
4499 
4500   case 33:
4501 #line 508 "glslang.y" /* yacc.c:1646  */
4502     {
4503         (yyval.interm) = (yyvsp[-1].interm);
4504     }
4505 #line 4506 "glslang_tab.cpp" /* yacc.c:1646  */
4506     break;
4507 
4508   case 34:
4509 #line 516 "glslang.y" /* yacc.c:1646  */
4510     {
4511         // Constructor
4512         (yyval.interm).intermNode = 0;
4513         (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
4514     }
4515 #line 4516 "glslang_tab.cpp" /* yacc.c:1646  */
4516     break;
4517 
4518   case 35:
4519 #line 521 "glslang.y" /* yacc.c:1646  */
4520     {
4521         //
4522         // Should be a method or subroutine call, but we haven't recognized the arguments yet.
4523         //
4524         (yyval.interm).function = 0;
4525         (yyval.interm).intermNode = 0;
4526 
4527         TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode();
4528         if (method) {
4529             (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength);
4530             (yyval.interm).intermNode = method->getObject();
4531         } else {
4532             TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode();
4533             if (symbol) {
4534                 parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName());
4535                 TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid));
4536                 (yyval.interm).function = function;
4537             } else
4538                 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", "");
4539         }
4540 
4541         if ((yyval.interm).function == 0) {
4542             // error recover
4543             TString* empty = NewPoolTString("");
4544             (yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull);
4545         }
4546     }
4547 #line 4548 "glslang_tab.cpp" /* yacc.c:1646  */
4548     break;
4549 
4550   case 36:
4551 #line 549 "glslang.y" /* yacc.c:1646  */
4552     {
4553         // Constructor
4554         (yyval.interm).intermNode = 0;
4555         (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
4556     }
4557 #line 4558 "glslang_tab.cpp" /* yacc.c:1646  */
4558     break;
4559 
4560   case 37:
4561 #line 558 "glslang.y" /* yacc.c:1646  */
4562     {
4563         parseContext.variableCheck((yyvsp[0].interm.intermTypedNode));
4564         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4565         if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
4566             parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
4567     }
4568 #line 4569 "glslang_tab.cpp" /* yacc.c:1646  */
4569     break;
4570 
4571   case 38:
4572 #line 564 "glslang.y" /* yacc.c:1646  */
4573     {
4574         parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode));
4575         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode));
4576     }
4577 #line 4578 "glslang_tab.cpp" /* yacc.c:1646  */
4578     break;
4579 
4580   case 39:
4581 #line 568 "glslang.y" /* yacc.c:1646  */
4582     {
4583         parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode));
4584         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode));
4585     }
4586 #line 4587 "glslang_tab.cpp" /* yacc.c:1646  */
4587     break;
4588 
4589   case 40:
4590 #line 572 "glslang.y" /* yacc.c:1646  */
4591     {
4592         if ((yyvsp[-1].interm).op != EOpNull) {
4593             char errorOp[2] = {0, 0};
4594             switch((yyvsp[-1].interm).op) {
4595             case EOpNegative:   errorOp[0] = '-'; break;
4596             case EOpLogicalNot: errorOp[0] = '!'; break;
4597             case EOpBitwiseNot: errorOp[0] = '~'; break;
4598             default: break; // some compilers want this
4599             }
4600             (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode));
4601         } else {
4602             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4603             if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
4604                 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
4605         }
4606     }
4607 #line 4608 "glslang_tab.cpp" /* yacc.c:1646  */
4608     break;
4609 
4610   case 41:
4611 #line 592 "glslang.y" /* yacc.c:1646  */
4612     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
4613 #line 4614 "glslang_tab.cpp" /* yacc.c:1646  */
4614     break;
4615 
4616   case 42:
4617 #line 593 "glslang.y" /* yacc.c:1646  */
4618     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
4619 #line 4620 "glslang_tab.cpp" /* yacc.c:1646  */
4620     break;
4621 
4622   case 43:
4623 #line 594 "glslang.y" /* yacc.c:1646  */
4624     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
4625 #line 4626 "glslang_tab.cpp" /* yacc.c:1646  */
4626     break;
4627 
4628   case 44:
4629 #line 595 "glslang.y" /* yacc.c:1646  */
4630     { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
4631               parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
4632 #line 4633 "glslang_tab.cpp" /* yacc.c:1646  */
4633     break;
4634 
4635   case 45:
4636 #line 601 "glslang.y" /* yacc.c:1646  */
4637     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4638 #line 4639 "glslang_tab.cpp" /* yacc.c:1646  */
4639     break;
4640 
4641   case 46:
4642 #line 602 "glslang.y" /* yacc.c:1646  */
4643     {
4644         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4645         if ((yyval.interm.intermTypedNode) == 0)
4646             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4647     }
4648 #line 4649 "glslang_tab.cpp" /* yacc.c:1646  */
4649     break;
4650 
4651   case 47:
4652 #line 607 "glslang.y" /* yacc.c:1646  */
4653     {
4654         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4655         if ((yyval.interm.intermTypedNode) == 0)
4656             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4657     }
4658 #line 4659 "glslang_tab.cpp" /* yacc.c:1646  */
4659     break;
4660 
4661   case 48:
4662 #line 612 "glslang.y" /* yacc.c:1646  */
4663     {
4664         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%");
4665         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4666         if ((yyval.interm.intermTypedNode) == 0)
4667             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4668     }
4669 #line 4670 "glslang_tab.cpp" /* yacc.c:1646  */
4670     break;
4671 
4672   case 49:
4673 #line 621 "glslang.y" /* yacc.c:1646  */
4674     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4675 #line 4676 "glslang_tab.cpp" /* yacc.c:1646  */
4676     break;
4677 
4678   case 50:
4679 #line 622 "glslang.y" /* yacc.c:1646  */
4680     {
4681         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4682         if ((yyval.interm.intermTypedNode) == 0)
4683             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4684     }
4685 #line 4686 "glslang_tab.cpp" /* yacc.c:1646  */
4686     break;
4687 
4688   case 51:
4689 #line 627 "glslang.y" /* yacc.c:1646  */
4690     {
4691         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4692         if ((yyval.interm.intermTypedNode) == 0)
4693             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4694     }
4695 #line 4696 "glslang_tab.cpp" /* yacc.c:1646  */
4696     break;
4697 
4698   case 52:
4699 #line 635 "glslang.y" /* yacc.c:1646  */
4700     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4701 #line 4702 "glslang_tab.cpp" /* yacc.c:1646  */
4702     break;
4703 
4704   case 53:
4705 #line 636 "glslang.y" /* yacc.c:1646  */
4706     {
4707         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left");
4708         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4709         if ((yyval.interm.intermTypedNode) == 0)
4710             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4711     }
4712 #line 4713 "glslang_tab.cpp" /* yacc.c:1646  */
4713     break;
4714 
4715   case 54:
4716 #line 642 "glslang.y" /* yacc.c:1646  */
4717     {
4718         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right");
4719         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4720         if ((yyval.interm.intermTypedNode) == 0)
4721             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4722     }
4723 #line 4724 "glslang_tab.cpp" /* yacc.c:1646  */
4724     break;
4725 
4726   case 55:
4727 #line 651 "glslang.y" /* yacc.c:1646  */
4728     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4729 #line 4730 "glslang_tab.cpp" /* yacc.c:1646  */
4730     break;
4731 
4732   case 56:
4733 #line 652 "glslang.y" /* yacc.c:1646  */
4734     {
4735         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4736         if ((yyval.interm.intermTypedNode) == 0)
4737             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4738     }
4739 #line 4740 "glslang_tab.cpp" /* yacc.c:1646  */
4740     break;
4741 
4742   case 57:
4743 #line 657 "glslang.y" /* yacc.c:1646  */
4744     {
4745         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4746         if ((yyval.interm.intermTypedNode) == 0)
4747             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4748     }
4749 #line 4750 "glslang_tab.cpp" /* yacc.c:1646  */
4750     break;
4751 
4752   case 58:
4753 #line 662 "glslang.y" /* yacc.c:1646  */
4754     {
4755         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4756         if ((yyval.interm.intermTypedNode) == 0)
4757             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4758     }
4759 #line 4760 "glslang_tab.cpp" /* yacc.c:1646  */
4760     break;
4761 
4762   case 59:
4763 #line 667 "glslang.y" /* yacc.c:1646  */
4764     {
4765         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4766         if ((yyval.interm.intermTypedNode) == 0)
4767             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4768     }
4769 #line 4770 "glslang_tab.cpp" /* yacc.c:1646  */
4770     break;
4771 
4772   case 60:
4773 #line 675 "glslang.y" /* yacc.c:1646  */
4774     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4775 #line 4776 "glslang_tab.cpp" /* yacc.c:1646  */
4776     break;
4777 
4778   case 61:
4779 #line 676 "glslang.y" /* yacc.c:1646  */
4780     {
4781         parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
4782         parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
4783         parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
4784         parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
4785         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4786         if ((yyval.interm.intermTypedNode) == 0)
4787             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4788     }
4789 #line 4790 "glslang_tab.cpp" /* yacc.c:1646  */
4790     break;
4791 
4792   case 62:
4793 #line 685 "glslang.y" /* yacc.c:1646  */
4794     {
4795         parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
4796         parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
4797         parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
4798         parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
4799         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4800         if ((yyval.interm.intermTypedNode) == 0)
4801             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4802     }
4803 #line 4804 "glslang_tab.cpp" /* yacc.c:1646  */
4804     break;
4805 
4806   case 63:
4807 #line 697 "glslang.y" /* yacc.c:1646  */
4808     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4809 #line 4810 "glslang_tab.cpp" /* yacc.c:1646  */
4810     break;
4811 
4812   case 64:
4813 #line 698 "glslang.y" /* yacc.c:1646  */
4814     {
4815         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and");
4816         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4817         if ((yyval.interm.intermTypedNode) == 0)
4818             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4819     }
4820 #line 4821 "glslang_tab.cpp" /* yacc.c:1646  */
4821     break;
4822 
4823   case 65:
4824 #line 707 "glslang.y" /* yacc.c:1646  */
4825     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4826 #line 4827 "glslang_tab.cpp" /* yacc.c:1646  */
4827     break;
4828 
4829   case 66:
4830 #line 708 "glslang.y" /* yacc.c:1646  */
4831     {
4832         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or");
4833         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4834         if ((yyval.interm.intermTypedNode) == 0)
4835             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4836     }
4837 #line 4838 "glslang_tab.cpp" /* yacc.c:1646  */
4838     break;
4839 
4840   case 67:
4841 #line 717 "glslang.y" /* yacc.c:1646  */
4842     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4843 #line 4844 "glslang_tab.cpp" /* yacc.c:1646  */
4844     break;
4845 
4846   case 68:
4847 #line 718 "glslang.y" /* yacc.c:1646  */
4848     {
4849         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or");
4850         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4851         if ((yyval.interm.intermTypedNode) == 0)
4852             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4853     }
4854 #line 4855 "glslang_tab.cpp" /* yacc.c:1646  */
4855     break;
4856 
4857   case 69:
4858 #line 727 "glslang.y" /* yacc.c:1646  */
4859     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4860 #line 4861 "glslang_tab.cpp" /* yacc.c:1646  */
4861     break;
4862 
4863   case 70:
4864 #line 728 "glslang.y" /* yacc.c:1646  */
4865     {
4866         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4867         if ((yyval.interm.intermTypedNode) == 0)
4868             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4869     }
4870 #line 4871 "glslang_tab.cpp" /* yacc.c:1646  */
4871     break;
4872 
4873   case 71:
4874 #line 736 "glslang.y" /* yacc.c:1646  */
4875     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4876 #line 4877 "glslang_tab.cpp" /* yacc.c:1646  */
4877     break;
4878 
4879   case 72:
4880 #line 737 "glslang.y" /* yacc.c:1646  */
4881     {
4882         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4883         if ((yyval.interm.intermTypedNode) == 0)
4884             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4885     }
4886 #line 4887 "glslang_tab.cpp" /* yacc.c:1646  */
4887     break;
4888 
4889   case 73:
4890 #line 745 "glslang.y" /* yacc.c:1646  */
4891     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4892 #line 4893 "glslang_tab.cpp" /* yacc.c:1646  */
4893     break;
4894 
4895   case 74:
4896 #line 746 "glslang.y" /* yacc.c:1646  */
4897     {
4898         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4899         if ((yyval.interm.intermTypedNode) == 0)
4900             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4901     }
4902 #line 4903 "glslang_tab.cpp" /* yacc.c:1646  */
4903     break;
4904 
4905   case 75:
4906 #line 754 "glslang.y" /* yacc.c:1646  */
4907     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4908 #line 4909 "glslang_tab.cpp" /* yacc.c:1646  */
4909     break;
4910 
4911   case 76:
4912 #line 755 "glslang.y" /* yacc.c:1646  */
4913     {
4914         ++parseContext.controlFlowNestingLevel;
4915     }
4916 #line 4917 "glslang_tab.cpp" /* yacc.c:1646  */
4917     break;
4918 
4919   case 77:
4920 #line 758 "glslang.y" /* yacc.c:1646  */
4921     {
4922         --parseContext.controlFlowNestingLevel;
4923         parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
4924         parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode));
4925         parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode));
4926         parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode));
4927         (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc);
4928         if ((yyval.interm.intermTypedNode) == 0) {
4929             parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
4930             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4931         }
4932     }
4933 #line 4934 "glslang_tab.cpp" /* yacc.c:1646  */
4934     break;
4935 
4936   case 78:
4937 #line 773 "glslang.y" /* yacc.c:1646  */
4938     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4939 #line 4940 "glslang_tab.cpp" /* yacc.c:1646  */
4940     break;
4941 
4942   case 79:
4943 #line 774 "glslang.y" /* yacc.c:1646  */
4944     {
4945         parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment");
4946         parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
4947         parseContext.storage16BitAssignmentCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
4948         parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
4949         parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode));
4950         parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode));
4951         (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].interm).loc);
4952         if ((yyval.interm.intermTypedNode) == 0) {
4953             parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
4954             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4955         }
4956     }
4957 #line 4958 "glslang_tab.cpp" /* yacc.c:1646  */
4958     break;
4959 
4960   case 80:
4961 #line 790 "glslang.y" /* yacc.c:1646  */
4962     {
4963         (yyval.interm).loc = (yyvsp[0].lex).loc;
4964         (yyval.interm).op = EOpAssign;
4965     }
4966 #line 4967 "glslang_tab.cpp" /* yacc.c:1646  */
4967     break;
4968 
4969   case 81:
4970 #line 794 "glslang.y" /* yacc.c:1646  */
4971     {
4972         (yyval.interm).loc = (yyvsp[0].lex).loc;
4973         (yyval.interm).op = EOpMulAssign;
4974     }
4975 #line 4976 "glslang_tab.cpp" /* yacc.c:1646  */
4976     break;
4977 
4978   case 82:
4979 #line 798 "glslang.y" /* yacc.c:1646  */
4980     {
4981         (yyval.interm).loc = (yyvsp[0].lex).loc;
4982         (yyval.interm).op = EOpDivAssign;
4983     }
4984 #line 4985 "glslang_tab.cpp" /* yacc.c:1646  */
4985     break;
4986 
4987   case 83:
4988 #line 802 "glslang.y" /* yacc.c:1646  */
4989     {
4990         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
4991         (yyval.interm).loc = (yyvsp[0].lex).loc;
4992         (yyval.interm).op = EOpModAssign;
4993     }
4994 #line 4995 "glslang_tab.cpp" /* yacc.c:1646  */
4995     break;
4996 
4997   case 84:
4998 #line 807 "glslang.y" /* yacc.c:1646  */
4999     {
5000         (yyval.interm).loc = (yyvsp[0].lex).loc;
5001         (yyval.interm).op = EOpAddAssign;
5002     }
5003 #line 5004 "glslang_tab.cpp" /* yacc.c:1646  */
5004     break;
5005 
5006   case 85:
5007 #line 811 "glslang.y" /* yacc.c:1646  */
5008     {
5009         (yyval.interm).loc = (yyvsp[0].lex).loc;
5010         (yyval.interm).op = EOpSubAssign;
5011     }
5012 #line 5013 "glslang_tab.cpp" /* yacc.c:1646  */
5013     break;
5014 
5015   case 86:
5016 #line 815 "glslang.y" /* yacc.c:1646  */
5017     {
5018         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
5019         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
5020     }
5021 #line 5022 "glslang_tab.cpp" /* yacc.c:1646  */
5022     break;
5023 
5024   case 87:
5025 #line 819 "glslang.y" /* yacc.c:1646  */
5026     {
5027         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
5028         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
5029     }
5030 #line 5031 "glslang_tab.cpp" /* yacc.c:1646  */
5031     break;
5032 
5033   case 88:
5034 #line 823 "glslang.y" /* yacc.c:1646  */
5035     {
5036         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
5037         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
5038     }
5039 #line 5040 "glslang_tab.cpp" /* yacc.c:1646  */
5040     break;
5041 
5042   case 89:
5043 #line 827 "glslang.y" /* yacc.c:1646  */
5044     {
5045         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
5046         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
5047     }
5048 #line 5049 "glslang_tab.cpp" /* yacc.c:1646  */
5049     break;
5050 
5051   case 90:
5052 #line 831 "glslang.y" /* yacc.c:1646  */
5053     {
5054         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
5055         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
5056     }
5057 #line 5058 "glslang_tab.cpp" /* yacc.c:1646  */
5058     break;
5059 
5060   case 91:
5061 #line 838 "glslang.y" /* yacc.c:1646  */
5062     {
5063         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5064     }
5065 #line 5066 "glslang_tab.cpp" /* yacc.c:1646  */
5066     break;
5067 
5068   case 92:
5069 #line 841 "glslang.y" /* yacc.c:1646  */
5070     {
5071         parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
5072         (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
5073         if ((yyval.interm.intermTypedNode) == 0) {
5074             parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
5075             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5076         }
5077     }
5078 #line 5079 "glslang_tab.cpp" /* yacc.c:1646  */
5079     break;
5080 
5081   case 93:
5082 #line 852 "glslang.y" /* yacc.c:1646  */
5083     {
5084         parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
5085         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5086     }
5087 #line 5088 "glslang_tab.cpp" /* yacc.c:1646  */
5088     break;
5089 
5090   case 94:
5091 #line 859 "glslang.y" /* yacc.c:1646  */
5092     {
5093         parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
5094         (yyval.interm.intermNode) = 0;
5095         // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
5096     }
5097 #line 5098 "glslang_tab.cpp" /* yacc.c:1646  */
5098     break;
5099 
5100   case 95:
5101 #line 864 "glslang.y" /* yacc.c:1646  */
5102     {
5103         if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate())
5104             (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
5105         (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
5106     }
5107 #line 5108 "glslang_tab.cpp" /* yacc.c:1646  */
5108     break;
5109 
5110   case 96:
5111 #line 869 "glslang.y" /* yacc.c:1646  */
5112     {
5113         parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
5114         // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
5115         parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]);
5116         parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
5117         (yyval.interm.intermNode) = 0;
5118     }
5119 #line 5120 "glslang_tab.cpp" /* yacc.c:1646  */
5120     break;
5121 
5122   case 97:
5123 #line 876 "glslang.y" /* yacc.c:1646  */
5124     {
5125         parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
5126         (yyval.interm.intermNode) = 0;
5127     }
5128 #line 5129 "glslang_tab.cpp" /* yacc.c:1646  */
5129     break;
5130 
5131   case 98:
5132 #line 880 "glslang.y" /* yacc.c:1646  */
5133     {
5134         parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
5135         (yyval.interm.intermNode) = 0;
5136     }
5137 #line 5138 "glslang_tab.cpp" /* yacc.c:1646  */
5138     break;
5139 
5140   case 99:
5141 #line 884 "glslang.y" /* yacc.c:1646  */
5142     {
5143         parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
5144         (yyval.interm.intermNode) = 0;
5145     }
5146 #line 5147 "glslang_tab.cpp" /* yacc.c:1646  */
5147     break;
5148 
5149   case 100:
5150 #line 888 "glslang.y" /* yacc.c:1646  */
5151     {
5152         parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
5153         parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
5154         (yyval.interm.intermNode) = 0;
5155     }
5156 #line 5157 "glslang_tab.cpp" /* yacc.c:1646  */
5157     break;
5158 
5159   case 101:
5160 #line 893 "glslang.y" /* yacc.c:1646  */
5161     {
5162         parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
5163         parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
5164         (yyval.interm.intermNode) = 0;
5165     }
5166 #line 5167 "glslang_tab.cpp" /* yacc.c:1646  */
5167     break;
5168 
5169   case 102:
5170 #line 898 "glslang.y" /* yacc.c:1646  */
5171     {
5172         parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
5173         (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string);
5174         parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
5175         (yyval.interm.intermNode) = 0;
5176     }
5177 #line 5178 "glslang_tab.cpp" /* yacc.c:1646  */
5178     break;
5179 
5180   case 103:
5181 #line 907 "glslang.y" /* yacc.c:1646  */
5182     { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
5183 #line 5184 "glslang_tab.cpp" /* yacc.c:1646  */
5184     break;
5185 
5186   case 104:
5187 #line 907 "glslang.y" /* yacc.c:1646  */
5188     {
5189         --parseContext.structNestingLevel;
5190         parseContext.blockName = (yyvsp[-4].lex).string;
5191         parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier);
5192         parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers);
5193         parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier;
5194         (yyval.interm).loc = (yyvsp[-5].interm.type).loc;
5195         (yyval.interm).typeList = (yyvsp[-1].interm.typeList);
5196     }
5197 #line 5198 "glslang_tab.cpp" /* yacc.c:1646  */
5198     break;
5199 
5200   case 105:
5201 #line 918 "glslang.y" /* yacc.c:1646  */
5202     {
5203         (yyval.interm.identifierList) = new TIdentifierList;
5204         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
5205     }
5206 #line 5207 "glslang_tab.cpp" /* yacc.c:1646  */
5207     break;
5208 
5209   case 106:
5210 #line 922 "glslang.y" /* yacc.c:1646  */
5211     {
5212         (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
5213         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
5214     }
5215 #line 5216 "glslang_tab.cpp" /* yacc.c:1646  */
5216     break;
5217 
5218   case 107:
5219 #line 929 "glslang.y" /* yacc.c:1646  */
5220     {
5221         (yyval.interm).function = (yyvsp[-1].interm.function);
5222         (yyval.interm).loc = (yyvsp[0].lex).loc;
5223     }
5224 #line 5225 "glslang_tab.cpp" /* yacc.c:1646  */
5225     break;
5226 
5227   case 108:
5228 #line 936 "glslang.y" /* yacc.c:1646  */
5229     {
5230         (yyval.interm.function) = (yyvsp[0].interm.function);
5231     }
5232 #line 5233 "glslang_tab.cpp" /* yacc.c:1646  */
5233     break;
5234 
5235   case 109:
5236 #line 939 "glslang.y" /* yacc.c:1646  */
5237     {
5238         (yyval.interm.function) = (yyvsp[0].interm.function);
5239     }
5240 #line 5241 "glslang_tab.cpp" /* yacc.c:1646  */
5241     break;
5242 
5243   case 110:
5244 #line 946 "glslang.y" /* yacc.c:1646  */
5245     {
5246         // Add the parameter
5247         (yyval.interm.function) = (yyvsp[-1].interm.function);
5248         if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid)
5249             (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param);
5250         else
5251             delete (yyvsp[0].interm).param.type;
5252     }
5253 #line 5254 "glslang_tab.cpp" /* yacc.c:1646  */
5254     break;
5255 
5256   case 111:
5257 #line 954 "glslang.y" /* yacc.c:1646  */
5258     {
5259         //
5260         // Only first parameter of one-parameter functions can be void
5261         // The check for named parameters not being void is done in parameter_declarator
5262         //
5263         if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) {
5264             //
5265             // This parameter > first is void
5266             //
5267             parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", "");
5268             delete (yyvsp[0].interm).param.type;
5269         } else {
5270             // Add the parameter
5271             (yyval.interm.function) = (yyvsp[-2].interm.function);
5272             (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
5273         }
5274     }
5275 #line 5276 "glslang_tab.cpp" /* yacc.c:1646  */
5276     break;
5277 
5278   case 112:
5279 #line 974 "glslang.y" /* yacc.c:1646  */
5280     {
5281         if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
5282             parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
5283                                GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), "");
5284         }
5285         if ((yyvsp[-2].interm.type).arraySizes)
5286             parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
5287 
5288         // Add the function as a prototype after parsing it (we do not support recursion)
5289         TFunction *function;
5290         TType type((yyvsp[-2].interm.type));
5291 
5292         // Potentially rename shader entry point function.  No-op most of the time.
5293         parseContext.renameShaderFunction((yyvsp[-1].lex).string);
5294 
5295         // Make the function
5296         function = new TFunction((yyvsp[-1].lex).string, type);
5297         (yyval.interm.function) = function;
5298     }
5299 #line 5300 "glslang_tab.cpp" /* yacc.c:1646  */
5300     break;
5301 
5302   case 113:
5303 #line 997 "glslang.y" /* yacc.c:1646  */
5304     {
5305         if ((yyvsp[-1].interm.type).arraySizes) {
5306             parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5307             parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5308             parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes);
5309         }
5310         if ((yyvsp[-1].interm.type).basicType == EbtVoid) {
5311             parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), "");
5312         }
5313         parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string);
5314 
5315         TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))};
5316         (yyval.interm).loc = (yyvsp[0].lex).loc;
5317         (yyval.interm).param = param;
5318     }
5319 #line 5320 "glslang_tab.cpp" /* yacc.c:1646  */
5320     break;
5321 
5322   case 114:
5323 #line 1012 "glslang.y" /* yacc.c:1646  */
5324     {
5325         if ((yyvsp[-2].interm.type).arraySizes) {
5326             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5327             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5328             parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
5329         }
5330         TType* type = new TType((yyvsp[-2].interm.type));
5331         type->transferArraySizes((yyvsp[0].interm).arraySizes);
5332         type->copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
5333 
5334         parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, type->getArraySizes());
5335         parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes);
5336         parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string);
5337 
5338         TParameter param = { (yyvsp[-1].lex).string, type };
5339 
5340         (yyval.interm).loc = (yyvsp[-1].lex).loc;
5341         (yyval.interm).param = param;
5342     }
5343 #line 5344 "glslang_tab.cpp" /* yacc.c:1646  */
5344     break;
5345 
5346   case 115:
5347 #line 1037 "glslang.y" /* yacc.c:1646  */
5348     {
5349         (yyval.interm) = (yyvsp[0].interm);
5350         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
5351             (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
5352         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5353 
5354         parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5355         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
5356         parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
5357 
5358     }
5359 #line 5360 "glslang_tab.cpp" /* yacc.c:1646  */
5360     break;
5361 
5362   case 116:
5363 #line 1048 "glslang.y" /* yacc.c:1646  */
5364     {
5365         (yyval.interm) = (yyvsp[0].interm);
5366 
5367         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
5368         parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
5369         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5370     }
5371 #line 5372 "glslang_tab.cpp" /* yacc.c:1646  */
5372     break;
5373 
5374   case 117:
5375 #line 1058 "glslang.y" /* yacc.c:1646  */
5376     {
5377         (yyval.interm) = (yyvsp[0].interm);
5378         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
5379             (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
5380         parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5381 
5382         parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5383         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
5384         parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
5385     }
5386 #line 5387 "glslang_tab.cpp" /* yacc.c:1646  */
5387     break;
5388 
5389   case 118:
5390 #line 1068 "glslang.y" /* yacc.c:1646  */
5391     {
5392         (yyval.interm) = (yyvsp[0].interm);
5393 
5394         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
5395         parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
5396         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5397     }
5398 #line 5399 "glslang_tab.cpp" /* yacc.c:1646  */
5399     break;
5400 
5401   case 119:
5402 #line 1078 "glslang.y" /* yacc.c:1646  */
5403     {
5404         TParameter param = { 0, new TType((yyvsp[0].interm.type)) };
5405         (yyval.interm).param = param;
5406         if ((yyvsp[0].interm.type).arraySizes)
5407             parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
5408     }
5409 #line 5410 "glslang_tab.cpp" /* yacc.c:1646  */
5410     break;
5411 
5412   case 120:
5413 #line 1087 "glslang.y" /* yacc.c:1646  */
5414     {
5415         (yyval.interm) = (yyvsp[0].interm);
5416     }
5417 #line 5418 "glslang_tab.cpp" /* yacc.c:1646  */
5418     break;
5419 
5420   case 121:
5421 #line 1090 "glslang.y" /* yacc.c:1646  */
5422     {
5423         (yyval.interm) = (yyvsp[-2].interm);
5424         parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
5425     }
5426 #line 5427 "glslang_tab.cpp" /* yacc.c:1646  */
5427     break;
5428 
5429   case 122:
5430 #line 1094 "glslang.y" /* yacc.c:1646  */
5431     {
5432         (yyval.interm) = (yyvsp[-3].interm);
5433         parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
5434     }
5435 #line 5436 "glslang_tab.cpp" /* yacc.c:1646  */
5436     break;
5437 
5438   case 123:
5439 #line 1098 "glslang.y" /* yacc.c:1646  */
5440     {
5441         (yyval.interm).type = (yyvsp[-5].interm).type;
5442         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
5443         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
5444     }
5445 #line 5446 "glslang_tab.cpp" /* yacc.c:1646  */
5446     break;
5447 
5448   case 124:
5449 #line 1103 "glslang.y" /* yacc.c:1646  */
5450     {
5451         (yyval.interm).type = (yyvsp[-4].interm).type;
5452         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
5453         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
5454     }
5455 #line 5456 "glslang_tab.cpp" /* yacc.c:1646  */
5456     break;
5457 
5458   case 125:
5459 #line 1111 "glslang.y" /* yacc.c:1646  */
5460     {
5461         (yyval.interm).type = (yyvsp[0].interm.type);
5462         (yyval.interm).intermNode = 0;
5463 
5464         parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
5465 
5466     }
5467 #line 5468 "glslang_tab.cpp" /* yacc.c:1646  */
5468     break;
5469 
5470   case 126:
5471 #line 1118 "glslang.y" /* yacc.c:1646  */
5472     {
5473         (yyval.interm).type = (yyvsp[-1].interm.type);
5474         (yyval.interm).intermNode = 0;
5475         parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
5476     }
5477 #line 5478 "glslang_tab.cpp" /* yacc.c:1646  */
5478     break;
5479 
5480   case 127:
5481 #line 1123 "glslang.y" /* yacc.c:1646  */
5482     {
5483         (yyval.interm).type = (yyvsp[-2].interm.type);
5484         (yyval.interm).intermNode = 0;
5485         parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
5486     }
5487 #line 5488 "glslang_tab.cpp" /* yacc.c:1646  */
5488     break;
5489 
5490   case 128:
5491 #line 1128 "glslang.y" /* yacc.c:1646  */
5492     {
5493         (yyval.interm).type = (yyvsp[-4].interm.type);
5494         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
5495         (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
5496     }
5497 #line 5498 "glslang_tab.cpp" /* yacc.c:1646  */
5498     break;
5499 
5500   case 129:
5501 #line 1133 "glslang.y" /* yacc.c:1646  */
5502     {
5503         (yyval.interm).type = (yyvsp[-3].interm.type);
5504         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
5505         (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
5506     }
5507 #line 5508 "glslang_tab.cpp" /* yacc.c:1646  */
5508     break;
5509 
5510   case 130:
5511 #line 1142 "glslang.y" /* yacc.c:1646  */
5512     {
5513         (yyval.interm.type) = (yyvsp[0].interm.type);
5514 
5515         parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type));
5516         if ((yyvsp[0].interm.type).arraySizes) {
5517             parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5518             parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5519         }
5520         parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
5521     }
5522 #line 5523 "glslang_tab.cpp" /* yacc.c:1646  */
5523     break;
5524 
5525   case 131:
5526 #line 1152 "glslang.y" /* yacc.c:1646  */
5527     {
5528         parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
5529         parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
5530 
5531         if ((yyvsp[0].interm.type).arraySizes) {
5532             parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5533             parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5534         }
5535 
5536         if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier))
5537             (yyvsp[0].interm.type).arraySizes = nullptr;
5538 
5539         parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5540         (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers);
5541         parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true);
5542         parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier);
5543 
5544         (yyval.interm.type) = (yyvsp[0].interm.type);
5545 
5546         if (! (yyval.interm.type).qualifier.isInterpolation() &&
5547             ((parseContext.language == EShLangVertex   && (yyval.interm.type).qualifier.storage == EvqVaryingOut) ||
5548              (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
5549             (yyval.interm.type).qualifier.smooth = true;
5550     }
5551 #line 5552 "glslang_tab.cpp" /* yacc.c:1646  */
5552     break;
5553 
5554   case 132:
5555 #line 1179 "glslang.y" /* yacc.c:1646  */
5556     {
5557         parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
5558         parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
5559         (yyval.interm.type).init((yyvsp[0].lex).loc);
5560         (yyval.interm.type).qualifier.invariant = true;
5561     }
5562 #line 5563 "glslang_tab.cpp" /* yacc.c:1646  */
5563     break;
5564 
5565   case 133:
5566 #line 1188 "glslang.y" /* yacc.c:1646  */
5567     {
5568         parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
5569         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
5570         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth");
5571         (yyval.interm.type).init((yyvsp[0].lex).loc);
5572         (yyval.interm.type).qualifier.smooth = true;
5573     }
5574 #line 5575 "glslang_tab.cpp" /* yacc.c:1646  */
5575     break;
5576 
5577   case 134:
5578 #line 1195 "glslang.y" /* yacc.c:1646  */
5579     {
5580         parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
5581         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
5582         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat");
5583         (yyval.interm.type).init((yyvsp[0].lex).loc);
5584         (yyval.interm.type).qualifier.flat = true;
5585     }
5586 #line 5587 "glslang_tab.cpp" /* yacc.c:1646  */
5587     break;
5588 
5589   case 135:
5590 #line 1203 "glslang.y" /* yacc.c:1646  */
5591     {
5592         parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
5593         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
5594         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective");
5595         (yyval.interm.type).init((yyvsp[0].lex).loc);
5596         (yyval.interm.type).qualifier.nopersp = true;
5597     }
5598 #line 5599 "glslang_tab.cpp" /* yacc.c:1646  */
5599     break;
5600 
5601   case 136:
5602 #line 1210 "glslang.y" /* yacc.c:1646  */
5603     {
5604         parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD");
5605         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
5606         parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
5607         (yyval.interm.type).init((yyvsp[0].lex).loc);
5608         (yyval.interm.type).qualifier.explicitInterp = true;
5609     }
5610 #line 5611 "glslang_tab.cpp" /* yacc.c:1646  */
5611     break;
5612 
5613   case 137:
5614 #line 1217 "glslang.y" /* yacc.c:1646  */
5615     {
5616         parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV");
5617         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
5618         parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
5619         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
5620         (yyval.interm.type).init((yyvsp[0].lex).loc);
5621         (yyval.interm.type).qualifier.pervertexNV = true;
5622     }
5623 #line 5624 "glslang_tab.cpp" /* yacc.c:1646  */
5624     break;
5625 
5626   case 138:
5627 #line 1225 "glslang.y" /* yacc.c:1646  */
5628     {
5629         // No need for profile version or extension check. Shader stage already checks both.
5630         parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV");
5631         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshNVMask), "perprimitiveNV");
5632         // Fragment shader stage doesn't check for extension. So we explicitly add below extension check.
5633         if (parseContext.language == EShLangFragment)
5634             parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_NV_mesh_shader, "perprimitiveNV");
5635         (yyval.interm.type).init((yyvsp[0].lex).loc);
5636         (yyval.interm.type).qualifier.perPrimitiveNV = true;
5637     }
5638 #line 5639 "glslang_tab.cpp" /* yacc.c:1646  */
5639     break;
5640 
5641   case 139:
5642 #line 1235 "glslang.y" /* yacc.c:1646  */
5643     {
5644         // No need for profile version or extension check. Shader stage already checks both.
5645         parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV");
5646         parseContext.requireStage((yyvsp[0].lex).loc, EShLangMeshNV, "perviewNV");
5647         (yyval.interm.type).init((yyvsp[0].lex).loc);
5648         (yyval.interm.type).qualifier.perViewNV = true;
5649     }
5650 #line 5651 "glslang_tab.cpp" /* yacc.c:1646  */
5651     break;
5652 
5653   case 140:
5654 #line 1242 "glslang.y" /* yacc.c:1646  */
5655     {
5656         // No need for profile version or extension check. Shader stage already checks both.
5657         parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV");
5658         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "taskNV");
5659         (yyval.interm.type).init((yyvsp[0].lex).loc);
5660         (yyval.interm.type).qualifier.perTaskNV = true;
5661     }
5662 #line 5663 "glslang_tab.cpp" /* yacc.c:1646  */
5663     break;
5664 
5665   case 141:
5666 #line 1253 "glslang.y" /* yacc.c:1646  */
5667     {
5668         (yyval.interm.type) = (yyvsp[-1].interm.type);
5669     }
5670 #line 5671 "glslang_tab.cpp" /* yacc.c:1646  */
5671     break;
5672 
5673   case 142:
5674 #line 1259 "glslang.y" /* yacc.c:1646  */
5675     {
5676         (yyval.interm.type) = (yyvsp[0].interm.type);
5677     }
5678 #line 5679 "glslang_tab.cpp" /* yacc.c:1646  */
5679     break;
5680 
5681   case 143:
5682 #line 1262 "glslang.y" /* yacc.c:1646  */
5683     {
5684         (yyval.interm.type) = (yyvsp[-2].interm.type);
5685         (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
5686         parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
5687     }
5688 #line 5689 "glslang_tab.cpp" /* yacc.c:1646  */
5689     break;
5690 
5691   case 144:
5692 #line 1269 "glslang.y" /* yacc.c:1646  */
5693     {
5694         (yyval.interm.type).init((yyvsp[0].lex).loc);
5695         parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
5696     }
5697 #line 5698 "glslang_tab.cpp" /* yacc.c:1646  */
5698     break;
5699 
5700   case 145:
5701 #line 1273 "glslang.y" /* yacc.c:1646  */
5702     {
5703         (yyval.interm.type).init((yyvsp[-2].lex).loc);
5704         parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode));
5705     }
5706 #line 5707 "glslang_tab.cpp" /* yacc.c:1646  */
5707     break;
5708 
5709   case 146:
5710 #line 1277 "glslang.y" /* yacc.c:1646  */
5711     { // because "shared" is both an identifier and a keyword
5712         (yyval.interm.type).init((yyvsp[0].lex).loc);
5713         TString strShared("shared");
5714         parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
5715     }
5716 #line 5717 "glslang_tab.cpp" /* yacc.c:1646  */
5717     break;
5718 
5719   case 147:
5720 #line 1286 "glslang.y" /* yacc.c:1646  */
5721     {
5722         parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
5723         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
5724         (yyval.interm.type).init((yyvsp[0].lex).loc);
5725         (yyval.interm.type).qualifier.noContraction = true;
5726     }
5727 #line 5728 "glslang_tab.cpp" /* yacc.c:1646  */
5728     break;
5729 
5730   case 148:
5731 #line 1296 "glslang.y" /* yacc.c:1646  */
5732     {
5733         (yyval.interm.type) = (yyvsp[0].interm.type);
5734     }
5735 #line 5736 "glslang_tab.cpp" /* yacc.c:1646  */
5736     break;
5737 
5738   case 149:
5739 #line 1299 "glslang.y" /* yacc.c:1646  */
5740     {
5741         (yyval.interm.type) = (yyvsp[-1].interm.type);
5742         if ((yyval.interm.type).basicType == EbtVoid)
5743             (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType;
5744 
5745         (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
5746         parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
5747     }
5748 #line 5749 "glslang_tab.cpp" /* yacc.c:1646  */
5749     break;
5750 
5751   case 150:
5752 #line 1310 "glslang.y" /* yacc.c:1646  */
5753     {
5754         (yyval.interm.type) = (yyvsp[0].interm.type);
5755     }
5756 #line 5757 "glslang_tab.cpp" /* yacc.c:1646  */
5757     break;
5758 
5759   case 151:
5760 #line 1313 "glslang.y" /* yacc.c:1646  */
5761     {
5762         (yyval.interm.type) = (yyvsp[0].interm.type);
5763     }
5764 #line 5765 "glslang_tab.cpp" /* yacc.c:1646  */
5765     break;
5766 
5767   case 152:
5768 #line 1316 "glslang.y" /* yacc.c:1646  */
5769     {
5770         parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
5771         (yyval.interm.type) = (yyvsp[0].interm.type);
5772     }
5773 #line 5774 "glslang_tab.cpp" /* yacc.c:1646  */
5774     break;
5775 
5776   case 153:
5777 #line 1320 "glslang.y" /* yacc.c:1646  */
5778     {
5779         // allow inheritance of storage qualifier from block declaration
5780         (yyval.interm.type) = (yyvsp[0].interm.type);
5781     }
5782 #line 5783 "glslang_tab.cpp" /* yacc.c:1646  */
5783     break;
5784 
5785   case 154:
5786 #line 1324 "glslang.y" /* yacc.c:1646  */
5787     {
5788         // allow inheritance of storage qualifier from block declaration
5789         (yyval.interm.type) = (yyvsp[0].interm.type);
5790     }
5791 #line 5792 "glslang_tab.cpp" /* yacc.c:1646  */
5792     break;
5793 
5794   case 155:
5795 #line 1329 "glslang.y" /* yacc.c:1646  */
5796     {
5797         // allow inheritance of storage qualifier from block declaration
5798         (yyval.interm.type) = (yyvsp[0].interm.type);
5799     }
5800 #line 5801 "glslang_tab.cpp" /* yacc.c:1646  */
5801     break;
5802 
5803   case 156:
5804 #line 1333 "glslang.y" /* yacc.c:1646  */
5805     {
5806         (yyval.interm.type) = (yyvsp[0].interm.type);
5807     }
5808 #line 5809 "glslang_tab.cpp" /* yacc.c:1646  */
5809     break;
5810 
5811   case 157:
5812 #line 1340 "glslang.y" /* yacc.c:1646  */
5813     {
5814         (yyval.interm.type).init((yyvsp[0].lex).loc);
5815         (yyval.interm.type).qualifier.storage = EvqConst;  // will later turn into EvqConstReadOnly, if the initializer is not constant
5816     }
5817 #line 5818 "glslang_tab.cpp" /* yacc.c:1646  */
5818     break;
5819 
5820   case 158:
5821 #line 1344 "glslang.y" /* yacc.c:1646  */
5822     {
5823         parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
5824         (yyval.interm.type).init((yyvsp[0].lex).loc);
5825         (yyval.interm.type).qualifier.storage = EvqInOut;
5826     }
5827 #line 5828 "glslang_tab.cpp" /* yacc.c:1646  */
5828     break;
5829 
5830   case 159:
5831 #line 1349 "glslang.y" /* yacc.c:1646  */
5832     {
5833         parseContext.globalCheck((yyvsp[0].lex).loc, "in");
5834         (yyval.interm.type).init((yyvsp[0].lex).loc);
5835         // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
5836         (yyval.interm.type).qualifier.storage = EvqIn;
5837     }
5838 #line 5839 "glslang_tab.cpp" /* yacc.c:1646  */
5839     break;
5840 
5841   case 160:
5842 #line 1355 "glslang.y" /* yacc.c:1646  */
5843     {
5844         parseContext.globalCheck((yyvsp[0].lex).loc, "out");
5845         (yyval.interm.type).init((yyvsp[0].lex).loc);
5846         // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
5847         (yyval.interm.type).qualifier.storage = EvqOut;
5848     }
5849 #line 5850 "glslang_tab.cpp" /* yacc.c:1646  */
5850     break;
5851 
5852   case 161:
5853 #line 1361 "glslang.y" /* yacc.c:1646  */
5854     {
5855         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
5856         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
5857         parseContext.globalCheck((yyvsp[0].lex).loc, "centroid");
5858         (yyval.interm.type).init((yyvsp[0].lex).loc);
5859         (yyval.interm.type).qualifier.centroid = true;
5860     }
5861 #line 5862 "glslang_tab.cpp" /* yacc.c:1646  */
5862     break;
5863 
5864   case 162:
5865 #line 1368 "glslang.y" /* yacc.c:1646  */
5866     {
5867         parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
5868         (yyval.interm.type).init((yyvsp[0].lex).loc);
5869         (yyval.interm.type).qualifier.storage = EvqUniform;
5870     }
5871 #line 5872 "glslang_tab.cpp" /* yacc.c:1646  */
5872     break;
5873 
5874   case 163:
5875 #line 1373 "glslang.y" /* yacc.c:1646  */
5876     {
5877         parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
5878         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
5879         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared");
5880         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared");
5881         (yyval.interm.type).init((yyvsp[0].lex).loc);
5882         (yyval.interm.type).qualifier.storage = EvqShared;
5883     }
5884 #line 5885 "glslang_tab.cpp" /* yacc.c:1646  */
5885     break;
5886 
5887   case 164:
5888 #line 1381 "glslang.y" /* yacc.c:1646  */
5889     {
5890         parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
5891         (yyval.interm.type).init((yyvsp[0].lex).loc);
5892         (yyval.interm.type).qualifier.storage = EvqBuffer;
5893     }
5894 #line 5895 "glslang_tab.cpp" /* yacc.c:1646  */
5895     break;
5896 
5897   case 165:
5898 #line 1387 "glslang.y" /* yacc.c:1646  */
5899     {
5900         parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
5901         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
5902         parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute");
5903         parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute");
5904         parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute");
5905 
5906         parseContext.globalCheck((yyvsp[0].lex).loc, "attribute");
5907 
5908         (yyval.interm.type).init((yyvsp[0].lex).loc);
5909         (yyval.interm.type).qualifier.storage = EvqVaryingIn;
5910     }
5911 #line 5912 "glslang_tab.cpp" /* yacc.c:1646  */
5912     break;
5913 
5914   case 166:
5915 #line 1399 "glslang.y" /* yacc.c:1646  */
5916     {
5917         parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
5918         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
5919         parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying");
5920         parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying");
5921 
5922         parseContext.globalCheck((yyvsp[0].lex).loc, "varying");
5923 
5924         (yyval.interm.type).init((yyvsp[0].lex).loc);
5925         if (parseContext.language == EShLangVertex)
5926             (yyval.interm.type).qualifier.storage = EvqVaryingOut;
5927         else
5928             (yyval.interm.type).qualifier.storage = EvqVaryingIn;
5929     }
5930 #line 5931 "glslang_tab.cpp" /* yacc.c:1646  */
5931     break;
5932 
5933   case 167:
5934 #line 1413 "glslang.y" /* yacc.c:1646  */
5935     {
5936         parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
5937         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
5938         (yyval.interm.type).init((yyvsp[0].lex).loc);
5939         (yyval.interm.type).qualifier.patch = true;
5940     }
5941 #line 5942 "glslang_tab.cpp" /* yacc.c:1646  */
5942     break;
5943 
5944   case 168:
5945 #line 1419 "glslang.y" /* yacc.c:1646  */
5946     {
5947         parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
5948         (yyval.interm.type).init((yyvsp[0].lex).loc);
5949         (yyval.interm.type).qualifier.sample = true;
5950     }
5951 #line 5952 "glslang_tab.cpp" /* yacc.c:1646  */
5952     break;
5953 
5954   case 169:
5955 #line 1424 "glslang.y" /* yacc.c:1646  */
5956     {
5957         parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
5958         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
5959             | EShLangAnyHitMask), "hitAttributeNV");
5960         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV");
5961         (yyval.interm.type).init((yyvsp[0].lex).loc);
5962         (yyval.interm.type).qualifier.storage = EvqHitAttr;
5963     }
5964 #line 5965 "glslang_tab.cpp" /* yacc.c:1646  */
5965     break;
5966 
5967   case 170:
5968 #line 1432 "glslang.y" /* yacc.c:1646  */
5969     {
5970         parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeEXT");
5971         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
5972             | EShLangAnyHitMask), "hitAttributeEXT");
5973         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "hitAttributeNV");
5974         (yyval.interm.type).init((yyvsp[0].lex).loc);
5975         (yyval.interm.type).qualifier.storage = EvqHitAttr;
5976     }
5977 #line 5978 "glslang_tab.cpp" /* yacc.c:1646  */
5978     break;
5979 
5980   case 171:
5981 #line 1440 "glslang.y" /* yacc.c:1646  */
5982     {
5983         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV");
5984         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
5985             EShLangAnyHitMask | EShLangMissMask), "rayPayloadNV");
5986         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV");
5987         (yyval.interm.type).init((yyvsp[0].lex).loc);
5988         (yyval.interm.type).qualifier.storage = EvqPayload;
5989     }
5990 #line 5991 "glslang_tab.cpp" /* yacc.c:1646  */
5991     break;
5992 
5993   case 172:
5994 #line 1448 "glslang.y" /* yacc.c:1646  */
5995     {
5996         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadEXT");
5997         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
5998             EShLangAnyHitMask | EShLangMissMask), "rayPayloadEXT");
5999         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadEXT");
6000         (yyval.interm.type).init((yyvsp[0].lex).loc);
6001         (yyval.interm.type).qualifier.storage = EvqPayload;
6002     }
6003 #line 6004 "glslang_tab.cpp" /* yacc.c:1646  */
6004     break;
6005 
6006   case 173:
6007 #line 1456 "glslang.y" /* yacc.c:1646  */
6008     {
6009         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV");
6010         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
6011             EShLangAnyHitMask | EShLangMissMask), "rayPayloadInNV");
6012         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV");
6013         (yyval.interm.type).init((yyvsp[0].lex).loc);
6014         (yyval.interm.type).qualifier.storage = EvqPayloadIn;
6015     }
6016 #line 6017 "glslang_tab.cpp" /* yacc.c:1646  */
6017     break;
6018 
6019   case 174:
6020 #line 1464 "glslang.y" /* yacc.c:1646  */
6021     {
6022         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInEXT");
6023         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
6024             EShLangAnyHitMask | EShLangMissMask), "rayPayloadInEXT");
6025         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadInEXT");
6026         (yyval.interm.type).init((yyvsp[0].lex).loc);
6027         (yyval.interm.type).qualifier.storage = EvqPayloadIn;
6028     }
6029 #line 6030 "glslang_tab.cpp" /* yacc.c:1646  */
6030     break;
6031 
6032   case 175:
6033 #line 1472 "glslang.y" /* yacc.c:1646  */
6034     {
6035         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV");
6036         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
6037             EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataNV");
6038         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV");
6039         (yyval.interm.type).init((yyvsp[0].lex).loc);
6040         (yyval.interm.type).qualifier.storage = EvqCallableData;
6041     }
6042 #line 6043 "glslang_tab.cpp" /* yacc.c:1646  */
6043     break;
6044 
6045   case 176:
6046 #line 1480 "glslang.y" /* yacc.c:1646  */
6047     {
6048         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataEXT");
6049         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
6050             EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataEXT");
6051         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataEXT");
6052         (yyval.interm.type).init((yyvsp[0].lex).loc);
6053         (yyval.interm.type).qualifier.storage = EvqCallableData;
6054     }
6055 #line 6056 "glslang_tab.cpp" /* yacc.c:1646  */
6056     break;
6057 
6058   case 177:
6059 #line 1488 "glslang.y" /* yacc.c:1646  */
6060     {
6061         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV");
6062         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV");
6063         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV");
6064         (yyval.interm.type).init((yyvsp[0].lex).loc);
6065         (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
6066     }
6067 #line 6068 "glslang_tab.cpp" /* yacc.c:1646  */
6068     break;
6069 
6070   case 178:
6071 #line 1495 "glslang.y" /* yacc.c:1646  */
6072     {
6073         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInEXT");
6074         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInEXT");
6075         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataInEXT");
6076         (yyval.interm.type).init((yyvsp[0].lex).loc);
6077         (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
6078     }
6079 #line 6080 "glslang_tab.cpp" /* yacc.c:1646  */
6080     break;
6081 
6082   case 179:
6083 #line 1502 "glslang.y" /* yacc.c:1646  */
6084     {
6085         (yyval.interm.type).init((yyvsp[0].lex).loc);
6086         (yyval.interm.type).qualifier.coherent = true;
6087     }
6088 #line 6089 "glslang_tab.cpp" /* yacc.c:1646  */
6089     break;
6090 
6091   case 180:
6092 #line 1506 "glslang.y" /* yacc.c:1646  */
6093     {
6094         (yyval.interm.type).init((yyvsp[0].lex).loc);
6095         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
6096         (yyval.interm.type).qualifier.devicecoherent = true;
6097     }
6098 #line 6099 "glslang_tab.cpp" /* yacc.c:1646  */
6099     break;
6100 
6101   case 181:
6102 #line 1511 "glslang.y" /* yacc.c:1646  */
6103     {
6104         (yyval.interm.type).init((yyvsp[0].lex).loc);
6105         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent");
6106         (yyval.interm.type).qualifier.queuefamilycoherent = true;
6107     }
6108 #line 6109 "glslang_tab.cpp" /* yacc.c:1646  */
6109     break;
6110 
6111   case 182:
6112 #line 1516 "glslang.y" /* yacc.c:1646  */
6113     {
6114         (yyval.interm.type).init((yyvsp[0].lex).loc);
6115         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent");
6116         (yyval.interm.type).qualifier.workgroupcoherent = true;
6117     }
6118 #line 6119 "glslang_tab.cpp" /* yacc.c:1646  */
6119     break;
6120 
6121   case 183:
6122 #line 1521 "glslang.y" /* yacc.c:1646  */
6123     {
6124         (yyval.interm.type).init((yyvsp[0].lex).loc);
6125         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent");
6126         (yyval.interm.type).qualifier.subgroupcoherent = true;
6127     }
6128 #line 6129 "glslang_tab.cpp" /* yacc.c:1646  */
6129     break;
6130 
6131   case 184:
6132 #line 1526 "glslang.y" /* yacc.c:1646  */
6133     {
6134         (yyval.interm.type).init((yyvsp[0].lex).loc);
6135         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate");
6136         (yyval.interm.type).qualifier.nonprivate = true;
6137     }
6138 #line 6139 "glslang_tab.cpp" /* yacc.c:1646  */
6139     break;
6140 
6141   case 185:
6142 #line 1531 "glslang.y" /* yacc.c:1646  */
6143     {
6144         (yyval.interm.type).init((yyvsp[0].lex).loc);
6145         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
6146         (yyval.interm.type).qualifier.shadercallcoherent = true;
6147     }
6148 #line 6149 "glslang_tab.cpp" /* yacc.c:1646  */
6149     break;
6150 
6151   case 186:
6152 #line 1536 "glslang.y" /* yacc.c:1646  */
6153     {
6154         (yyval.interm.type).init((yyvsp[0].lex).loc);
6155         (yyval.interm.type).qualifier.volatil = true;
6156     }
6157 #line 6158 "glslang_tab.cpp" /* yacc.c:1646  */
6158     break;
6159 
6160   case 187:
6161 #line 1540 "glslang.y" /* yacc.c:1646  */
6162     {
6163         (yyval.interm.type).init((yyvsp[0].lex).loc);
6164         (yyval.interm.type).qualifier.restrict = true;
6165     }
6166 #line 6167 "glslang_tab.cpp" /* yacc.c:1646  */
6167     break;
6168 
6169   case 188:
6170 #line 1544 "glslang.y" /* yacc.c:1646  */
6171     {
6172         (yyval.interm.type).init((yyvsp[0].lex).loc);
6173         (yyval.interm.type).qualifier.readonly = true;
6174     }
6175 #line 6176 "glslang_tab.cpp" /* yacc.c:1646  */
6176     break;
6177 
6178   case 189:
6179 #line 1548 "glslang.y" /* yacc.c:1646  */
6180     {
6181         (yyval.interm.type).init((yyvsp[0].lex).loc);
6182         (yyval.interm.type).qualifier.writeonly = true;
6183     }
6184 #line 6185 "glslang_tab.cpp" /* yacc.c:1646  */
6185     break;
6186 
6187   case 190:
6188 #line 1552 "glslang.y" /* yacc.c:1646  */
6189     {
6190         parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine");
6191         parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine");
6192         parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine");
6193         (yyval.interm.type).init((yyvsp[0].lex).loc);
6194     }
6195 #line 6196 "glslang_tab.cpp" /* yacc.c:1646  */
6196     break;
6197 
6198   case 191:
6199 #line 1558 "glslang.y" /* yacc.c:1646  */
6200     {
6201         parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine");
6202         parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine");
6203         parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine");
6204         (yyval.interm.type).init((yyvsp[-3].lex).loc);
6205     }
6206 #line 6207 "glslang_tab.cpp" /* yacc.c:1646  */
6207     break;
6208 
6209   case 192:
6210 #line 1569 "glslang.y" /* yacc.c:1646  */
6211     {
6212         (yyval.interm.type).init((yyvsp[0].lex).loc);
6213         (yyval.interm.type).qualifier.nonUniform = true;
6214     }
6215 #line 6216 "glslang_tab.cpp" /* yacc.c:1646  */
6216     break;
6217 
6218   case 193:
6219 #line 1576 "glslang.y" /* yacc.c:1646  */
6220     {
6221         // TODO
6222     }
6223 #line 6224 "glslang_tab.cpp" /* yacc.c:1646  */
6224     break;
6225 
6226   case 194:
6227 #line 1579 "glslang.y" /* yacc.c:1646  */
6228     {
6229         // TODO: 4.0 semantics: subroutines
6230         // 1) make sure each identifier is a type declared earlier with SUBROUTINE
6231         // 2) save all of the identifiers for future comparison with the declared function
6232     }
6233 #line 6234 "glslang_tab.cpp" /* yacc.c:1646  */
6234     break;
6235 
6236   case 195:
6237 #line 1588 "glslang.y" /* yacc.c:1646  */
6238     {
6239         (yyval.interm.type) = (yyvsp[-1].interm.type);
6240         (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
6241         (yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters);
6242     }
6243 #line 6244 "glslang_tab.cpp" /* yacc.c:1646  */
6244     break;
6245 
6246   case 196:
6247 #line 1593 "glslang.y" /* yacc.c:1646  */
6248     {
6249         parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes);
6250         (yyval.interm.type) = (yyvsp[-2].interm.type);
6251         (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
6252         (yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters);
6253         (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
6254     }
6255 #line 6256 "glslang_tab.cpp" /* yacc.c:1646  */
6256     break;
6257 
6258   case 197:
6259 #line 1603 "glslang.y" /* yacc.c:1646  */
6260     {
6261         (yyval.interm).loc = (yyvsp[-1].lex).loc;
6262         (yyval.interm).arraySizes = new TArraySizes;
6263         (yyval.interm).arraySizes->addInnerSize();
6264     }
6265 #line 6266 "glslang_tab.cpp" /* yacc.c:1646  */
6266     break;
6267 
6268   case 198:
6269 #line 1608 "glslang.y" /* yacc.c:1646  */
6270     {
6271         (yyval.interm).loc = (yyvsp[-2].lex).loc;
6272         (yyval.interm).arraySizes = new TArraySizes;
6273 
6274         TArraySize size;
6275         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
6276         (yyval.interm).arraySizes->addInnerSize(size);
6277     }
6278 #line 6279 "glslang_tab.cpp" /* yacc.c:1646  */
6279     break;
6280 
6281   case 199:
6282 #line 1616 "glslang.y" /* yacc.c:1646  */
6283     {
6284         (yyval.interm) = (yyvsp[-2].interm);
6285         (yyval.interm).arraySizes->addInnerSize();
6286     }
6287 #line 6288 "glslang_tab.cpp" /* yacc.c:1646  */
6288     break;
6289 
6290   case 200:
6291 #line 1620 "glslang.y" /* yacc.c:1646  */
6292     {
6293         (yyval.interm) = (yyvsp[-3].interm);
6294 
6295         TArraySize size;
6296         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
6297         (yyval.interm).arraySizes->addInnerSize(size);
6298     }
6299 #line 6300 "glslang_tab.cpp" /* yacc.c:1646  */
6300     break;
6301 
6302   case 201:
6303 #line 1630 "glslang.y" /* yacc.c:1646  */
6304     {
6305         (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters);
6306     }
6307 #line 6308 "glslang_tab.cpp" /* yacc.c:1646  */
6308     break;
6309 
6310   case 202:
6311 #line 1633 "glslang.y" /* yacc.c:1646  */
6312     {
6313         (yyval.interm.typeParameters) = 0;
6314     }
6315 #line 6316 "glslang_tab.cpp" /* yacc.c:1646  */
6316     break;
6317 
6318   case 203:
6319 #line 1639 "glslang.y" /* yacc.c:1646  */
6320     {
6321         (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters);
6322     }
6323 #line 6324 "glslang_tab.cpp" /* yacc.c:1646  */
6324     break;
6325 
6326   case 204:
6327 #line 1645 "glslang.y" /* yacc.c:1646  */
6328     {
6329         (yyval.interm.typeParameters) = new TArraySizes;
6330 
6331         TArraySize size;
6332         parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
6333         (yyval.interm.typeParameters)->addInnerSize(size);
6334     }
6335 #line 6336 "glslang_tab.cpp" /* yacc.c:1646  */
6336     break;
6337 
6338   case 205:
6339 #line 1652 "glslang.y" /* yacc.c:1646  */
6340     {
6341         (yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters);
6342 
6343         TArraySize size;
6344         parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
6345         (yyval.interm.typeParameters)->addInnerSize(size);
6346     }
6347 #line 6348 "glslang_tab.cpp" /* yacc.c:1646  */
6348     break;
6349 
6350   case 206:
6351 #line 1662 "glslang.y" /* yacc.c:1646  */
6352     {
6353         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6354         (yyval.interm.type).basicType = EbtVoid;
6355     }
6356 #line 6357 "glslang_tab.cpp" /* yacc.c:1646  */
6357     break;
6358 
6359   case 207:
6360 #line 1666 "glslang.y" /* yacc.c:1646  */
6361     {
6362         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6363         (yyval.interm.type).basicType = EbtFloat;
6364     }
6365 #line 6366 "glslang_tab.cpp" /* yacc.c:1646  */
6366     break;
6367 
6368   case 208:
6369 #line 1670 "glslang.y" /* yacc.c:1646  */
6370     {
6371         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6372         (yyval.interm.type).basicType = EbtInt;
6373     }
6374 #line 6375 "glslang_tab.cpp" /* yacc.c:1646  */
6375     break;
6376 
6377   case 209:
6378 #line 1674 "glslang.y" /* yacc.c:1646  */
6379     {
6380         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
6381         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6382         (yyval.interm.type).basicType = EbtUint;
6383     }
6384 #line 6385 "glslang_tab.cpp" /* yacc.c:1646  */
6385     break;
6386 
6387   case 210:
6388 #line 1679 "glslang.y" /* yacc.c:1646  */
6389     {
6390         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6391         (yyval.interm.type).basicType = EbtBool;
6392     }
6393 #line 6394 "glslang_tab.cpp" /* yacc.c:1646  */
6394     break;
6395 
6396   case 211:
6397 #line 1683 "glslang.y" /* yacc.c:1646  */
6398     {
6399         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6400         (yyval.interm.type).basicType = EbtFloat;
6401         (yyval.interm.type).setVector(2);
6402     }
6403 #line 6404 "glslang_tab.cpp" /* yacc.c:1646  */
6404     break;
6405 
6406   case 212:
6407 #line 1688 "glslang.y" /* yacc.c:1646  */
6408     {
6409         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6410         (yyval.interm.type).basicType = EbtFloat;
6411         (yyval.interm.type).setVector(3);
6412     }
6413 #line 6414 "glslang_tab.cpp" /* yacc.c:1646  */
6414     break;
6415 
6416   case 213:
6417 #line 1693 "glslang.y" /* yacc.c:1646  */
6418     {
6419         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6420         (yyval.interm.type).basicType = EbtFloat;
6421         (yyval.interm.type).setVector(4);
6422     }
6423 #line 6424 "glslang_tab.cpp" /* yacc.c:1646  */
6424     break;
6425 
6426   case 214:
6427 #line 1698 "glslang.y" /* yacc.c:1646  */
6428     {
6429         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6430         (yyval.interm.type).basicType = EbtBool;
6431         (yyval.interm.type).setVector(2);
6432     }
6433 #line 6434 "glslang_tab.cpp" /* yacc.c:1646  */
6434     break;
6435 
6436   case 215:
6437 #line 1703 "glslang.y" /* yacc.c:1646  */
6438     {
6439         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6440         (yyval.interm.type).basicType = EbtBool;
6441         (yyval.interm.type).setVector(3);
6442     }
6443 #line 6444 "glslang_tab.cpp" /* yacc.c:1646  */
6444     break;
6445 
6446   case 216:
6447 #line 1708 "glslang.y" /* yacc.c:1646  */
6448     {
6449         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6450         (yyval.interm.type).basicType = EbtBool;
6451         (yyval.interm.type).setVector(4);
6452     }
6453 #line 6454 "glslang_tab.cpp" /* yacc.c:1646  */
6454     break;
6455 
6456   case 217:
6457 #line 1713 "glslang.y" /* yacc.c:1646  */
6458     {
6459         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6460         (yyval.interm.type).basicType = EbtInt;
6461         (yyval.interm.type).setVector(2);
6462     }
6463 #line 6464 "glslang_tab.cpp" /* yacc.c:1646  */
6464     break;
6465 
6466   case 218:
6467 #line 1718 "glslang.y" /* yacc.c:1646  */
6468     {
6469         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6470         (yyval.interm.type).basicType = EbtInt;
6471         (yyval.interm.type).setVector(3);
6472     }
6473 #line 6474 "glslang_tab.cpp" /* yacc.c:1646  */
6474     break;
6475 
6476   case 219:
6477 #line 1723 "glslang.y" /* yacc.c:1646  */
6478     {
6479         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6480         (yyval.interm.type).basicType = EbtInt;
6481         (yyval.interm.type).setVector(4);
6482     }
6483 #line 6484 "glslang_tab.cpp" /* yacc.c:1646  */
6484     break;
6485 
6486   case 220:
6487 #line 1728 "glslang.y" /* yacc.c:1646  */
6488     {
6489         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6490         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6491         (yyval.interm.type).basicType = EbtUint;
6492         (yyval.interm.type).setVector(2);
6493     }
6494 #line 6495 "glslang_tab.cpp" /* yacc.c:1646  */
6495     break;
6496 
6497   case 221:
6498 #line 1734 "glslang.y" /* yacc.c:1646  */
6499     {
6500         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6501         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6502         (yyval.interm.type).basicType = EbtUint;
6503         (yyval.interm.type).setVector(3);
6504     }
6505 #line 6506 "glslang_tab.cpp" /* yacc.c:1646  */
6506     break;
6507 
6508   case 222:
6509 #line 1740 "glslang.y" /* yacc.c:1646  */
6510     {
6511         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6512         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6513         (yyval.interm.type).basicType = EbtUint;
6514         (yyval.interm.type).setVector(4);
6515     }
6516 #line 6517 "glslang_tab.cpp" /* yacc.c:1646  */
6517     break;
6518 
6519   case 223:
6520 #line 1746 "glslang.y" /* yacc.c:1646  */
6521     {
6522         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6523         (yyval.interm.type).basicType = EbtFloat;
6524         (yyval.interm.type).setMatrix(2, 2);
6525     }
6526 #line 6527 "glslang_tab.cpp" /* yacc.c:1646  */
6527     break;
6528 
6529   case 224:
6530 #line 1751 "glslang.y" /* yacc.c:1646  */
6531     {
6532         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6533         (yyval.interm.type).basicType = EbtFloat;
6534         (yyval.interm.type).setMatrix(3, 3);
6535     }
6536 #line 6537 "glslang_tab.cpp" /* yacc.c:1646  */
6537     break;
6538 
6539   case 225:
6540 #line 1756 "glslang.y" /* yacc.c:1646  */
6541     {
6542         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6543         (yyval.interm.type).basicType = EbtFloat;
6544         (yyval.interm.type).setMatrix(4, 4);
6545     }
6546 #line 6547 "glslang_tab.cpp" /* yacc.c:1646  */
6547     break;
6548 
6549   case 226:
6550 #line 1761 "glslang.y" /* yacc.c:1646  */
6551     {
6552         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6553         (yyval.interm.type).basicType = EbtFloat;
6554         (yyval.interm.type).setMatrix(2, 2);
6555     }
6556 #line 6557 "glslang_tab.cpp" /* yacc.c:1646  */
6557     break;
6558 
6559   case 227:
6560 #line 1766 "glslang.y" /* yacc.c:1646  */
6561     {
6562         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6563         (yyval.interm.type).basicType = EbtFloat;
6564         (yyval.interm.type).setMatrix(2, 3);
6565     }
6566 #line 6567 "glslang_tab.cpp" /* yacc.c:1646  */
6567     break;
6568 
6569   case 228:
6570 #line 1771 "glslang.y" /* yacc.c:1646  */
6571     {
6572         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6573         (yyval.interm.type).basicType = EbtFloat;
6574         (yyval.interm.type).setMatrix(2, 4);
6575     }
6576 #line 6577 "glslang_tab.cpp" /* yacc.c:1646  */
6577     break;
6578 
6579   case 229:
6580 #line 1776 "glslang.y" /* yacc.c:1646  */
6581     {
6582         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6583         (yyval.interm.type).basicType = EbtFloat;
6584         (yyval.interm.type).setMatrix(3, 2);
6585     }
6586 #line 6587 "glslang_tab.cpp" /* yacc.c:1646  */
6587     break;
6588 
6589   case 230:
6590 #line 1781 "glslang.y" /* yacc.c:1646  */
6591     {
6592         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6593         (yyval.interm.type).basicType = EbtFloat;
6594         (yyval.interm.type).setMatrix(3, 3);
6595     }
6596 #line 6597 "glslang_tab.cpp" /* yacc.c:1646  */
6597     break;
6598 
6599   case 231:
6600 #line 1786 "glslang.y" /* yacc.c:1646  */
6601     {
6602         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6603         (yyval.interm.type).basicType = EbtFloat;
6604         (yyval.interm.type).setMatrix(3, 4);
6605     }
6606 #line 6607 "glslang_tab.cpp" /* yacc.c:1646  */
6607     break;
6608 
6609   case 232:
6610 #line 1791 "glslang.y" /* yacc.c:1646  */
6611     {
6612         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6613         (yyval.interm.type).basicType = EbtFloat;
6614         (yyval.interm.type).setMatrix(4, 2);
6615     }
6616 #line 6617 "glslang_tab.cpp" /* yacc.c:1646  */
6617     break;
6618 
6619   case 233:
6620 #line 1796 "glslang.y" /* yacc.c:1646  */
6621     {
6622         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6623         (yyval.interm.type).basicType = EbtFloat;
6624         (yyval.interm.type).setMatrix(4, 3);
6625     }
6626 #line 6627 "glslang_tab.cpp" /* yacc.c:1646  */
6627     break;
6628 
6629   case 234:
6630 #line 1801 "glslang.y" /* yacc.c:1646  */
6631     {
6632         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6633         (yyval.interm.type).basicType = EbtFloat;
6634         (yyval.interm.type).setMatrix(4, 4);
6635     }
6636 #line 6637 "glslang_tab.cpp" /* yacc.c:1646  */
6637     break;
6638 
6639   case 235:
6640 #line 1807 "glslang.y" /* yacc.c:1646  */
6641     {
6642         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double");
6643         if (! parseContext.symbolTable.atBuiltInLevel())
6644             parseContext.doubleCheck((yyvsp[0].lex).loc, "double");
6645         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6646         (yyval.interm.type).basicType = EbtDouble;
6647     }
6648 #line 6649 "glslang_tab.cpp" /* yacc.c:1646  */
6649     break;
6650 
6651   case 236:
6652 #line 1814 "glslang.y" /* yacc.c:1646  */
6653     {
6654         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel());
6655         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6656         (yyval.interm.type).basicType = EbtFloat16;
6657     }
6658 #line 6659 "glslang_tab.cpp" /* yacc.c:1646  */
6659     break;
6660 
6661   case 237:
6662 #line 1819 "glslang.y" /* yacc.c:1646  */
6663     {
6664         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel());
6665         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6666         (yyval.interm.type).basicType = EbtFloat;
6667     }
6668 #line 6669 "glslang_tab.cpp" /* yacc.c:1646  */
6669     break;
6670 
6671   case 238:
6672 #line 1824 "glslang.y" /* yacc.c:1646  */
6673     {
6674         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel());
6675         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6676         (yyval.interm.type).basicType = EbtDouble;
6677     }
6678 #line 6679 "glslang_tab.cpp" /* yacc.c:1646  */
6679     break;
6680 
6681   case 239:
6682 #line 1829 "glslang.y" /* yacc.c:1646  */
6683     {
6684         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
6685         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6686         (yyval.interm.type).basicType = EbtInt8;
6687     }
6688 #line 6689 "glslang_tab.cpp" /* yacc.c:1646  */
6689     break;
6690 
6691   case 240:
6692 #line 1834 "glslang.y" /* yacc.c:1646  */
6693     {
6694         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6695         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6696         (yyval.interm.type).basicType = EbtUint8;
6697     }
6698 #line 6699 "glslang_tab.cpp" /* yacc.c:1646  */
6699     break;
6700 
6701   case 241:
6702 #line 1839 "glslang.y" /* yacc.c:1646  */
6703     {
6704         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
6705         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6706         (yyval.interm.type).basicType = EbtInt16;
6707     }
6708 #line 6709 "glslang_tab.cpp" /* yacc.c:1646  */
6709     break;
6710 
6711   case 242:
6712 #line 1844 "glslang.y" /* yacc.c:1646  */
6713     {
6714         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6715         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6716         (yyval.interm.type).basicType = EbtUint16;
6717     }
6718 #line 6719 "glslang_tab.cpp" /* yacc.c:1646  */
6719     break;
6720 
6721   case 243:
6722 #line 1849 "glslang.y" /* yacc.c:1646  */
6723     {
6724         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
6725         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6726         (yyval.interm.type).basicType = EbtInt;
6727     }
6728 #line 6729 "glslang_tab.cpp" /* yacc.c:1646  */
6729     break;
6730 
6731   case 244:
6732 #line 1854 "glslang.y" /* yacc.c:1646  */
6733     {
6734         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6735         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6736         (yyval.interm.type).basicType = EbtUint;
6737     }
6738 #line 6739 "glslang_tab.cpp" /* yacc.c:1646  */
6739     break;
6740 
6741   case 245:
6742 #line 1859 "glslang.y" /* yacc.c:1646  */
6743     {
6744         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
6745         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6746         (yyval.interm.type).basicType = EbtInt64;
6747     }
6748 #line 6749 "glslang_tab.cpp" /* yacc.c:1646  */
6749     break;
6750 
6751   case 246:
6752 #line 1864 "glslang.y" /* yacc.c:1646  */
6753     {
6754         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6755         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6756         (yyval.interm.type).basicType = EbtUint64;
6757     }
6758 #line 6759 "glslang_tab.cpp" /* yacc.c:1646  */
6759     break;
6760 
6761   case 247:
6762 #line 1869 "glslang.y" /* yacc.c:1646  */
6763     {
6764         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
6765         if (! parseContext.symbolTable.atBuiltInLevel())
6766             parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
6767         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6768         (yyval.interm.type).basicType = EbtDouble;
6769         (yyval.interm.type).setVector(2);
6770     }
6771 #line 6772 "glslang_tab.cpp" /* yacc.c:1646  */
6772     break;
6773 
6774   case 248:
6775 #line 1877 "glslang.y" /* yacc.c:1646  */
6776     {
6777         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
6778         if (! parseContext.symbolTable.atBuiltInLevel())
6779             parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
6780         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6781         (yyval.interm.type).basicType = EbtDouble;
6782         (yyval.interm.type).setVector(3);
6783     }
6784 #line 6785 "glslang_tab.cpp" /* yacc.c:1646  */
6785     break;
6786 
6787   case 249:
6788 #line 1885 "glslang.y" /* yacc.c:1646  */
6789     {
6790         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
6791         if (! parseContext.symbolTable.atBuiltInLevel())
6792             parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
6793         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6794         (yyval.interm.type).basicType = EbtDouble;
6795         (yyval.interm.type).setVector(4);
6796     }
6797 #line 6798 "glslang_tab.cpp" /* yacc.c:1646  */
6798     break;
6799 
6800   case 250:
6801 #line 1893 "glslang.y" /* yacc.c:1646  */
6802     {
6803         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
6804         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6805         (yyval.interm.type).basicType = EbtFloat16;
6806         (yyval.interm.type).setVector(2);
6807     }
6808 #line 6809 "glslang_tab.cpp" /* yacc.c:1646  */
6809     break;
6810 
6811   case 251:
6812 #line 1899 "glslang.y" /* yacc.c:1646  */
6813     {
6814         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
6815         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6816         (yyval.interm.type).basicType = EbtFloat16;
6817         (yyval.interm.type).setVector(3);
6818     }
6819 #line 6820 "glslang_tab.cpp" /* yacc.c:1646  */
6820     break;
6821 
6822   case 252:
6823 #line 1905 "glslang.y" /* yacc.c:1646  */
6824     {
6825         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
6826         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6827         (yyval.interm.type).basicType = EbtFloat16;
6828         (yyval.interm.type).setVector(4);
6829     }
6830 #line 6831 "glslang_tab.cpp" /* yacc.c:1646  */
6831     break;
6832 
6833   case 253:
6834 #line 1911 "glslang.y" /* yacc.c:1646  */
6835     {
6836         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
6837         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6838         (yyval.interm.type).basicType = EbtFloat;
6839         (yyval.interm.type).setVector(2);
6840     }
6841 #line 6842 "glslang_tab.cpp" /* yacc.c:1646  */
6842     break;
6843 
6844   case 254:
6845 #line 1917 "glslang.y" /* yacc.c:1646  */
6846     {
6847         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
6848         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6849         (yyval.interm.type).basicType = EbtFloat;
6850         (yyval.interm.type).setVector(3);
6851     }
6852 #line 6853 "glslang_tab.cpp" /* yacc.c:1646  */
6853     break;
6854 
6855   case 255:
6856 #line 1923 "glslang.y" /* yacc.c:1646  */
6857     {
6858         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
6859         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6860         (yyval.interm.type).basicType = EbtFloat;
6861         (yyval.interm.type).setVector(4);
6862     }
6863 #line 6864 "glslang_tab.cpp" /* yacc.c:1646  */
6864     break;
6865 
6866   case 256:
6867 #line 1929 "glslang.y" /* yacc.c:1646  */
6868     {
6869         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
6870         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6871         (yyval.interm.type).basicType = EbtDouble;
6872         (yyval.interm.type).setVector(2);
6873     }
6874 #line 6875 "glslang_tab.cpp" /* yacc.c:1646  */
6875     break;
6876 
6877   case 257:
6878 #line 1935 "glslang.y" /* yacc.c:1646  */
6879     {
6880         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
6881         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6882         (yyval.interm.type).basicType = EbtDouble;
6883         (yyval.interm.type).setVector(3);
6884     }
6885 #line 6886 "glslang_tab.cpp" /* yacc.c:1646  */
6886     break;
6887 
6888   case 258:
6889 #line 1941 "glslang.y" /* yacc.c:1646  */
6890     {
6891         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
6892         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6893         (yyval.interm.type).basicType = EbtDouble;
6894         (yyval.interm.type).setVector(4);
6895     }
6896 #line 6897 "glslang_tab.cpp" /* yacc.c:1646  */
6897     break;
6898 
6899   case 259:
6900 #line 1947 "glslang.y" /* yacc.c:1646  */
6901     {
6902         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6903         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6904         (yyval.interm.type).basicType = EbtInt8;
6905         (yyval.interm.type).setVector(2);
6906     }
6907 #line 6908 "glslang_tab.cpp" /* yacc.c:1646  */
6908     break;
6909 
6910   case 260:
6911 #line 1953 "glslang.y" /* yacc.c:1646  */
6912     {
6913         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6914         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6915         (yyval.interm.type).basicType = EbtInt8;
6916         (yyval.interm.type).setVector(3);
6917     }
6918 #line 6919 "glslang_tab.cpp" /* yacc.c:1646  */
6919     break;
6920 
6921   case 261:
6922 #line 1959 "glslang.y" /* yacc.c:1646  */
6923     {
6924         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6925         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6926         (yyval.interm.type).basicType = EbtInt8;
6927         (yyval.interm.type).setVector(4);
6928     }
6929 #line 6930 "glslang_tab.cpp" /* yacc.c:1646  */
6930     break;
6931 
6932   case 262:
6933 #line 1965 "glslang.y" /* yacc.c:1646  */
6934     {
6935         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6936         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6937         (yyval.interm.type).basicType = EbtInt16;
6938         (yyval.interm.type).setVector(2);
6939     }
6940 #line 6941 "glslang_tab.cpp" /* yacc.c:1646  */
6941     break;
6942 
6943   case 263:
6944 #line 1971 "glslang.y" /* yacc.c:1646  */
6945     {
6946         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6947         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6948         (yyval.interm.type).basicType = EbtInt16;
6949         (yyval.interm.type).setVector(3);
6950     }
6951 #line 6952 "glslang_tab.cpp" /* yacc.c:1646  */
6952     break;
6953 
6954   case 264:
6955 #line 1977 "glslang.y" /* yacc.c:1646  */
6956     {
6957         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6958         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6959         (yyval.interm.type).basicType = EbtInt16;
6960         (yyval.interm.type).setVector(4);
6961     }
6962 #line 6963 "glslang_tab.cpp" /* yacc.c:1646  */
6963     break;
6964 
6965   case 265:
6966 #line 1983 "glslang.y" /* yacc.c:1646  */
6967     {
6968         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6969         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6970         (yyval.interm.type).basicType = EbtInt;
6971         (yyval.interm.type).setVector(2);
6972     }
6973 #line 6974 "glslang_tab.cpp" /* yacc.c:1646  */
6974     break;
6975 
6976   case 266:
6977 #line 1989 "glslang.y" /* yacc.c:1646  */
6978     {
6979         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6980         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6981         (yyval.interm.type).basicType = EbtInt;
6982         (yyval.interm.type).setVector(3);
6983     }
6984 #line 6985 "glslang_tab.cpp" /* yacc.c:1646  */
6985     break;
6986 
6987   case 267:
6988 #line 1995 "glslang.y" /* yacc.c:1646  */
6989     {
6990         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6991         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6992         (yyval.interm.type).basicType = EbtInt;
6993         (yyval.interm.type).setVector(4);
6994     }
6995 #line 6996 "glslang_tab.cpp" /* yacc.c:1646  */
6996     break;
6997 
6998   case 268:
6999 #line 2001 "glslang.y" /* yacc.c:1646  */
7000     {
7001         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
7002         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7003         (yyval.interm.type).basicType = EbtInt64;
7004         (yyval.interm.type).setVector(2);
7005     }
7006 #line 7007 "glslang_tab.cpp" /* yacc.c:1646  */
7007     break;
7008 
7009   case 269:
7010 #line 2007 "glslang.y" /* yacc.c:1646  */
7011     {
7012         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
7013         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7014         (yyval.interm.type).basicType = EbtInt64;
7015         (yyval.interm.type).setVector(3);
7016     }
7017 #line 7018 "glslang_tab.cpp" /* yacc.c:1646  */
7018     break;
7019 
7020   case 270:
7021 #line 2013 "glslang.y" /* yacc.c:1646  */
7022     {
7023         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
7024         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7025         (yyval.interm.type).basicType = EbtInt64;
7026         (yyval.interm.type).setVector(4);
7027     }
7028 #line 7029 "glslang_tab.cpp" /* yacc.c:1646  */
7029     break;
7030 
7031   case 271:
7032 #line 2019 "glslang.y" /* yacc.c:1646  */
7033     {
7034         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7035         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7036         (yyval.interm.type).basicType = EbtUint8;
7037         (yyval.interm.type).setVector(2);
7038     }
7039 #line 7040 "glslang_tab.cpp" /* yacc.c:1646  */
7040     break;
7041 
7042   case 272:
7043 #line 2025 "glslang.y" /* yacc.c:1646  */
7044     {
7045         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7046         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7047         (yyval.interm.type).basicType = EbtUint8;
7048         (yyval.interm.type).setVector(3);
7049     }
7050 #line 7051 "glslang_tab.cpp" /* yacc.c:1646  */
7051     break;
7052 
7053   case 273:
7054 #line 2031 "glslang.y" /* yacc.c:1646  */
7055     {
7056         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7057         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7058         (yyval.interm.type).basicType = EbtUint8;
7059         (yyval.interm.type).setVector(4);
7060     }
7061 #line 7062 "glslang_tab.cpp" /* yacc.c:1646  */
7062     break;
7063 
7064   case 274:
7065 #line 2037 "glslang.y" /* yacc.c:1646  */
7066     {
7067         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7068         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7069         (yyval.interm.type).basicType = EbtUint16;
7070         (yyval.interm.type).setVector(2);
7071     }
7072 #line 7073 "glslang_tab.cpp" /* yacc.c:1646  */
7073     break;
7074 
7075   case 275:
7076 #line 2043 "glslang.y" /* yacc.c:1646  */
7077     {
7078         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7079         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7080         (yyval.interm.type).basicType = EbtUint16;
7081         (yyval.interm.type).setVector(3);
7082     }
7083 #line 7084 "glslang_tab.cpp" /* yacc.c:1646  */
7084     break;
7085 
7086   case 276:
7087 #line 2049 "glslang.y" /* yacc.c:1646  */
7088     {
7089         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7090         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7091         (yyval.interm.type).basicType = EbtUint16;
7092         (yyval.interm.type).setVector(4);
7093     }
7094 #line 7095 "glslang_tab.cpp" /* yacc.c:1646  */
7095     break;
7096 
7097   case 277:
7098 #line 2055 "glslang.y" /* yacc.c:1646  */
7099     {
7100         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7101         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7102         (yyval.interm.type).basicType = EbtUint;
7103         (yyval.interm.type).setVector(2);
7104     }
7105 #line 7106 "glslang_tab.cpp" /* yacc.c:1646  */
7106     break;
7107 
7108   case 278:
7109 #line 2061 "glslang.y" /* yacc.c:1646  */
7110     {
7111         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7112         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7113         (yyval.interm.type).basicType = EbtUint;
7114         (yyval.interm.type).setVector(3);
7115     }
7116 #line 7117 "glslang_tab.cpp" /* yacc.c:1646  */
7117     break;
7118 
7119   case 279:
7120 #line 2067 "glslang.y" /* yacc.c:1646  */
7121     {
7122         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7123         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7124         (yyval.interm.type).basicType = EbtUint;
7125         (yyval.interm.type).setVector(4);
7126     }
7127 #line 7128 "glslang_tab.cpp" /* yacc.c:1646  */
7128     break;
7129 
7130   case 280:
7131 #line 2073 "glslang.y" /* yacc.c:1646  */
7132     {
7133         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7134         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7135         (yyval.interm.type).basicType = EbtUint64;
7136         (yyval.interm.type).setVector(2);
7137     }
7138 #line 7139 "glslang_tab.cpp" /* yacc.c:1646  */
7139     break;
7140 
7141   case 281:
7142 #line 2079 "glslang.y" /* yacc.c:1646  */
7143     {
7144         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7145         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7146         (yyval.interm.type).basicType = EbtUint64;
7147         (yyval.interm.type).setVector(3);
7148     }
7149 #line 7150 "glslang_tab.cpp" /* yacc.c:1646  */
7150     break;
7151 
7152   case 282:
7153 #line 2085 "glslang.y" /* yacc.c:1646  */
7154     {
7155         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7156         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7157         (yyval.interm.type).basicType = EbtUint64;
7158         (yyval.interm.type).setVector(4);
7159     }
7160 #line 7161 "glslang_tab.cpp" /* yacc.c:1646  */
7161     break;
7162 
7163   case 283:
7164 #line 2091 "glslang.y" /* yacc.c:1646  */
7165     {
7166         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7167         if (! parseContext.symbolTable.atBuiltInLevel())
7168             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7169         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7170         (yyval.interm.type).basicType = EbtDouble;
7171         (yyval.interm.type).setMatrix(2, 2);
7172     }
7173 #line 7174 "glslang_tab.cpp" /* yacc.c:1646  */
7174     break;
7175 
7176   case 284:
7177 #line 2099 "glslang.y" /* yacc.c:1646  */
7178     {
7179         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7180         if (! parseContext.symbolTable.atBuiltInLevel())
7181             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7182         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7183         (yyval.interm.type).basicType = EbtDouble;
7184         (yyval.interm.type).setMatrix(3, 3);
7185     }
7186 #line 7187 "glslang_tab.cpp" /* yacc.c:1646  */
7187     break;
7188 
7189   case 285:
7190 #line 2107 "glslang.y" /* yacc.c:1646  */
7191     {
7192         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7193         if (! parseContext.symbolTable.atBuiltInLevel())
7194             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7195         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7196         (yyval.interm.type).basicType = EbtDouble;
7197         (yyval.interm.type).setMatrix(4, 4);
7198     }
7199 #line 7200 "glslang_tab.cpp" /* yacc.c:1646  */
7200     break;
7201 
7202   case 286:
7203 #line 2115 "glslang.y" /* yacc.c:1646  */
7204     {
7205         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7206         if (! parseContext.symbolTable.atBuiltInLevel())
7207             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7208         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7209         (yyval.interm.type).basicType = EbtDouble;
7210         (yyval.interm.type).setMatrix(2, 2);
7211     }
7212 #line 7213 "glslang_tab.cpp" /* yacc.c:1646  */
7213     break;
7214 
7215   case 287:
7216 #line 2123 "glslang.y" /* yacc.c:1646  */
7217     {
7218         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7219         if (! parseContext.symbolTable.atBuiltInLevel())
7220             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7221         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7222         (yyval.interm.type).basicType = EbtDouble;
7223         (yyval.interm.type).setMatrix(2, 3);
7224     }
7225 #line 7226 "glslang_tab.cpp" /* yacc.c:1646  */
7226     break;
7227 
7228   case 288:
7229 #line 2131 "glslang.y" /* yacc.c:1646  */
7230     {
7231         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7232         if (! parseContext.symbolTable.atBuiltInLevel())
7233             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7234         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7235         (yyval.interm.type).basicType = EbtDouble;
7236         (yyval.interm.type).setMatrix(2, 4);
7237     }
7238 #line 7239 "glslang_tab.cpp" /* yacc.c:1646  */
7239     break;
7240 
7241   case 289:
7242 #line 2139 "glslang.y" /* yacc.c:1646  */
7243     {
7244         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7245         if (! parseContext.symbolTable.atBuiltInLevel())
7246             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7247         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7248         (yyval.interm.type).basicType = EbtDouble;
7249         (yyval.interm.type).setMatrix(3, 2);
7250     }
7251 #line 7252 "glslang_tab.cpp" /* yacc.c:1646  */
7252     break;
7253 
7254   case 290:
7255 #line 2147 "glslang.y" /* yacc.c:1646  */
7256     {
7257         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7258         if (! parseContext.symbolTable.atBuiltInLevel())
7259             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7260         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7261         (yyval.interm.type).basicType = EbtDouble;
7262         (yyval.interm.type).setMatrix(3, 3);
7263     }
7264 #line 7265 "glslang_tab.cpp" /* yacc.c:1646  */
7265     break;
7266 
7267   case 291:
7268 #line 2155 "glslang.y" /* yacc.c:1646  */
7269     {
7270         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7271         if (! parseContext.symbolTable.atBuiltInLevel())
7272             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7273         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7274         (yyval.interm.type).basicType = EbtDouble;
7275         (yyval.interm.type).setMatrix(3, 4);
7276     }
7277 #line 7278 "glslang_tab.cpp" /* yacc.c:1646  */
7278     break;
7279 
7280   case 292:
7281 #line 2163 "glslang.y" /* yacc.c:1646  */
7282     {
7283         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7284         if (! parseContext.symbolTable.atBuiltInLevel())
7285             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7286         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7287         (yyval.interm.type).basicType = EbtDouble;
7288         (yyval.interm.type).setMatrix(4, 2);
7289     }
7290 #line 7291 "glslang_tab.cpp" /* yacc.c:1646  */
7291     break;
7292 
7293   case 293:
7294 #line 2171 "glslang.y" /* yacc.c:1646  */
7295     {
7296         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7297         if (! parseContext.symbolTable.atBuiltInLevel())
7298             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7299         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7300         (yyval.interm.type).basicType = EbtDouble;
7301         (yyval.interm.type).setMatrix(4, 3);
7302     }
7303 #line 7304 "glslang_tab.cpp" /* yacc.c:1646  */
7304     break;
7305 
7306   case 294:
7307 #line 2179 "glslang.y" /* yacc.c:1646  */
7308     {
7309         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7310         if (! parseContext.symbolTable.atBuiltInLevel())
7311             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7312         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7313         (yyval.interm.type).basicType = EbtDouble;
7314         (yyval.interm.type).setMatrix(4, 4);
7315     }
7316 #line 7317 "glslang_tab.cpp" /* yacc.c:1646  */
7317     break;
7318 
7319   case 295:
7320 #line 2187 "glslang.y" /* yacc.c:1646  */
7321     {
7322         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7323         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7324         (yyval.interm.type).basicType = EbtFloat16;
7325         (yyval.interm.type).setMatrix(2, 2);
7326     }
7327 #line 7328 "glslang_tab.cpp" /* yacc.c:1646  */
7328     break;
7329 
7330   case 296:
7331 #line 2193 "glslang.y" /* yacc.c:1646  */
7332     {
7333         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7334         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7335         (yyval.interm.type).basicType = EbtFloat16;
7336         (yyval.interm.type).setMatrix(3, 3);
7337     }
7338 #line 7339 "glslang_tab.cpp" /* yacc.c:1646  */
7339     break;
7340 
7341   case 297:
7342 #line 2199 "glslang.y" /* yacc.c:1646  */
7343     {
7344         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7345         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7346         (yyval.interm.type).basicType = EbtFloat16;
7347         (yyval.interm.type).setMatrix(4, 4);
7348     }
7349 #line 7350 "glslang_tab.cpp" /* yacc.c:1646  */
7350     break;
7351 
7352   case 298:
7353 #line 2205 "glslang.y" /* yacc.c:1646  */
7354     {
7355         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7356         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7357         (yyval.interm.type).basicType = EbtFloat16;
7358         (yyval.interm.type).setMatrix(2, 2);
7359     }
7360 #line 7361 "glslang_tab.cpp" /* yacc.c:1646  */
7361     break;
7362 
7363   case 299:
7364 #line 2211 "glslang.y" /* yacc.c:1646  */
7365     {
7366         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7367         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7368         (yyval.interm.type).basicType = EbtFloat16;
7369         (yyval.interm.type).setMatrix(2, 3);
7370     }
7371 #line 7372 "glslang_tab.cpp" /* yacc.c:1646  */
7372     break;
7373 
7374   case 300:
7375 #line 2217 "glslang.y" /* yacc.c:1646  */
7376     {
7377         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7378         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7379         (yyval.interm.type).basicType = EbtFloat16;
7380         (yyval.interm.type).setMatrix(2, 4);
7381     }
7382 #line 7383 "glslang_tab.cpp" /* yacc.c:1646  */
7383     break;
7384 
7385   case 301:
7386 #line 2223 "glslang.y" /* yacc.c:1646  */
7387     {
7388         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7389         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7390         (yyval.interm.type).basicType = EbtFloat16;
7391         (yyval.interm.type).setMatrix(3, 2);
7392     }
7393 #line 7394 "glslang_tab.cpp" /* yacc.c:1646  */
7394     break;
7395 
7396   case 302:
7397 #line 2229 "glslang.y" /* yacc.c:1646  */
7398     {
7399         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7400         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7401         (yyval.interm.type).basicType = EbtFloat16;
7402         (yyval.interm.type).setMatrix(3, 3);
7403     }
7404 #line 7405 "glslang_tab.cpp" /* yacc.c:1646  */
7405     break;
7406 
7407   case 303:
7408 #line 2235 "glslang.y" /* yacc.c:1646  */
7409     {
7410         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7411         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7412         (yyval.interm.type).basicType = EbtFloat16;
7413         (yyval.interm.type).setMatrix(3, 4);
7414     }
7415 #line 7416 "glslang_tab.cpp" /* yacc.c:1646  */
7416     break;
7417 
7418   case 304:
7419 #line 2241 "glslang.y" /* yacc.c:1646  */
7420     {
7421         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7422         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7423         (yyval.interm.type).basicType = EbtFloat16;
7424         (yyval.interm.type).setMatrix(4, 2);
7425     }
7426 #line 7427 "glslang_tab.cpp" /* yacc.c:1646  */
7427     break;
7428 
7429   case 305:
7430 #line 2247 "glslang.y" /* yacc.c:1646  */
7431     {
7432         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7433         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7434         (yyval.interm.type).basicType = EbtFloat16;
7435         (yyval.interm.type).setMatrix(4, 3);
7436     }
7437 #line 7438 "glslang_tab.cpp" /* yacc.c:1646  */
7438     break;
7439 
7440   case 306:
7441 #line 2253 "glslang.y" /* yacc.c:1646  */
7442     {
7443         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7444         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7445         (yyval.interm.type).basicType = EbtFloat16;
7446         (yyval.interm.type).setMatrix(4, 4);
7447     }
7448 #line 7449 "glslang_tab.cpp" /* yacc.c:1646  */
7449     break;
7450 
7451   case 307:
7452 #line 2259 "glslang.y" /* yacc.c:1646  */
7453     {
7454         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7455         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7456         (yyval.interm.type).basicType = EbtFloat;
7457         (yyval.interm.type).setMatrix(2, 2);
7458     }
7459 #line 7460 "glslang_tab.cpp" /* yacc.c:1646  */
7460     break;
7461 
7462   case 308:
7463 #line 2265 "glslang.y" /* yacc.c:1646  */
7464     {
7465         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7466         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7467         (yyval.interm.type).basicType = EbtFloat;
7468         (yyval.interm.type).setMatrix(3, 3);
7469     }
7470 #line 7471 "glslang_tab.cpp" /* yacc.c:1646  */
7471     break;
7472 
7473   case 309:
7474 #line 2271 "glslang.y" /* yacc.c:1646  */
7475     {
7476         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7477         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7478         (yyval.interm.type).basicType = EbtFloat;
7479         (yyval.interm.type).setMatrix(4, 4);
7480     }
7481 #line 7482 "glslang_tab.cpp" /* yacc.c:1646  */
7482     break;
7483 
7484   case 310:
7485 #line 2277 "glslang.y" /* yacc.c:1646  */
7486     {
7487         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7488         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7489         (yyval.interm.type).basicType = EbtFloat;
7490         (yyval.interm.type).setMatrix(2, 2);
7491     }
7492 #line 7493 "glslang_tab.cpp" /* yacc.c:1646  */
7493     break;
7494 
7495   case 311:
7496 #line 2283 "glslang.y" /* yacc.c:1646  */
7497     {
7498         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7499         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7500         (yyval.interm.type).basicType = EbtFloat;
7501         (yyval.interm.type).setMatrix(2, 3);
7502     }
7503 #line 7504 "glslang_tab.cpp" /* yacc.c:1646  */
7504     break;
7505 
7506   case 312:
7507 #line 2289 "glslang.y" /* yacc.c:1646  */
7508     {
7509         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7510         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7511         (yyval.interm.type).basicType = EbtFloat;
7512         (yyval.interm.type).setMatrix(2, 4);
7513     }
7514 #line 7515 "glslang_tab.cpp" /* yacc.c:1646  */
7515     break;
7516 
7517   case 313:
7518 #line 2295 "glslang.y" /* yacc.c:1646  */
7519     {
7520         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7521         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7522         (yyval.interm.type).basicType = EbtFloat;
7523         (yyval.interm.type).setMatrix(3, 2);
7524     }
7525 #line 7526 "glslang_tab.cpp" /* yacc.c:1646  */
7526     break;
7527 
7528   case 314:
7529 #line 2301 "glslang.y" /* yacc.c:1646  */
7530     {
7531         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7532         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7533         (yyval.interm.type).basicType = EbtFloat;
7534         (yyval.interm.type).setMatrix(3, 3);
7535     }
7536 #line 7537 "glslang_tab.cpp" /* yacc.c:1646  */
7537     break;
7538 
7539   case 315:
7540 #line 2307 "glslang.y" /* yacc.c:1646  */
7541     {
7542         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7543         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7544         (yyval.interm.type).basicType = EbtFloat;
7545         (yyval.interm.type).setMatrix(3, 4);
7546     }
7547 #line 7548 "glslang_tab.cpp" /* yacc.c:1646  */
7548     break;
7549 
7550   case 316:
7551 #line 2313 "glslang.y" /* yacc.c:1646  */
7552     {
7553         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7554         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7555         (yyval.interm.type).basicType = EbtFloat;
7556         (yyval.interm.type).setMatrix(4, 2);
7557     }
7558 #line 7559 "glslang_tab.cpp" /* yacc.c:1646  */
7559     break;
7560 
7561   case 317:
7562 #line 2319 "glslang.y" /* yacc.c:1646  */
7563     {
7564         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7565         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7566         (yyval.interm.type).basicType = EbtFloat;
7567         (yyval.interm.type).setMatrix(4, 3);
7568     }
7569 #line 7570 "glslang_tab.cpp" /* yacc.c:1646  */
7570     break;
7571 
7572   case 318:
7573 #line 2325 "glslang.y" /* yacc.c:1646  */
7574     {
7575         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7576         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7577         (yyval.interm.type).basicType = EbtFloat;
7578         (yyval.interm.type).setMatrix(4, 4);
7579     }
7580 #line 7581 "glslang_tab.cpp" /* yacc.c:1646  */
7581     break;
7582 
7583   case 319:
7584 #line 2331 "glslang.y" /* yacc.c:1646  */
7585     {
7586         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7587         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7588         (yyval.interm.type).basicType = EbtDouble;
7589         (yyval.interm.type).setMatrix(2, 2);
7590     }
7591 #line 7592 "glslang_tab.cpp" /* yacc.c:1646  */
7592     break;
7593 
7594   case 320:
7595 #line 2337 "glslang.y" /* yacc.c:1646  */
7596     {
7597         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7598         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7599         (yyval.interm.type).basicType = EbtDouble;
7600         (yyval.interm.type).setMatrix(3, 3);
7601     }
7602 #line 7603 "glslang_tab.cpp" /* yacc.c:1646  */
7603     break;
7604 
7605   case 321:
7606 #line 2343 "glslang.y" /* yacc.c:1646  */
7607     {
7608         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7609         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7610         (yyval.interm.type).basicType = EbtDouble;
7611         (yyval.interm.type).setMatrix(4, 4);
7612     }
7613 #line 7614 "glslang_tab.cpp" /* yacc.c:1646  */
7614     break;
7615 
7616   case 322:
7617 #line 2349 "glslang.y" /* yacc.c:1646  */
7618     {
7619         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7620         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7621         (yyval.interm.type).basicType = EbtDouble;
7622         (yyval.interm.type).setMatrix(2, 2);
7623     }
7624 #line 7625 "glslang_tab.cpp" /* yacc.c:1646  */
7625     break;
7626 
7627   case 323:
7628 #line 2355 "glslang.y" /* yacc.c:1646  */
7629     {
7630         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7631         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7632         (yyval.interm.type).basicType = EbtDouble;
7633         (yyval.interm.type).setMatrix(2, 3);
7634     }
7635 #line 7636 "glslang_tab.cpp" /* yacc.c:1646  */
7636     break;
7637 
7638   case 324:
7639 #line 2361 "glslang.y" /* yacc.c:1646  */
7640     {
7641         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7642         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7643         (yyval.interm.type).basicType = EbtDouble;
7644         (yyval.interm.type).setMatrix(2, 4);
7645     }
7646 #line 7647 "glslang_tab.cpp" /* yacc.c:1646  */
7647     break;
7648 
7649   case 325:
7650 #line 2367 "glslang.y" /* yacc.c:1646  */
7651     {
7652         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7653         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7654         (yyval.interm.type).basicType = EbtDouble;
7655         (yyval.interm.type).setMatrix(3, 2);
7656     }
7657 #line 7658 "glslang_tab.cpp" /* yacc.c:1646  */
7658     break;
7659 
7660   case 326:
7661 #line 2373 "glslang.y" /* yacc.c:1646  */
7662     {
7663         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7664         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7665         (yyval.interm.type).basicType = EbtDouble;
7666         (yyval.interm.type).setMatrix(3, 3);
7667     }
7668 #line 7669 "glslang_tab.cpp" /* yacc.c:1646  */
7669     break;
7670 
7671   case 327:
7672 #line 2379 "glslang.y" /* yacc.c:1646  */
7673     {
7674         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7675         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7676         (yyval.interm.type).basicType = EbtDouble;
7677         (yyval.interm.type).setMatrix(3, 4);
7678     }
7679 #line 7680 "glslang_tab.cpp" /* yacc.c:1646  */
7680     break;
7681 
7682   case 328:
7683 #line 2385 "glslang.y" /* yacc.c:1646  */
7684     {
7685         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7686         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7687         (yyval.interm.type).basicType = EbtDouble;
7688         (yyval.interm.type).setMatrix(4, 2);
7689     }
7690 #line 7691 "glslang_tab.cpp" /* yacc.c:1646  */
7691     break;
7692 
7693   case 329:
7694 #line 2391 "glslang.y" /* yacc.c:1646  */
7695     {
7696         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7697         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7698         (yyval.interm.type).basicType = EbtDouble;
7699         (yyval.interm.type).setMatrix(4, 3);
7700     }
7701 #line 7702 "glslang_tab.cpp" /* yacc.c:1646  */
7702     break;
7703 
7704   case 330:
7705 #line 2397 "glslang.y" /* yacc.c:1646  */
7706     {
7707         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7708         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7709         (yyval.interm.type).basicType = EbtDouble;
7710         (yyval.interm.type).setMatrix(4, 4);
7711     }
7712 #line 7713 "glslang_tab.cpp" /* yacc.c:1646  */
7713     break;
7714 
7715   case 331:
7716 #line 2403 "glslang.y" /* yacc.c:1646  */
7717     {
7718        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7719        (yyval.interm.type).basicType = EbtAccStruct;
7720     }
7721 #line 7722 "glslang_tab.cpp" /* yacc.c:1646  */
7722     break;
7723 
7724   case 332:
7725 #line 2407 "glslang.y" /* yacc.c:1646  */
7726     {
7727        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7728        (yyval.interm.type).basicType = EbtAccStruct;
7729     }
7730 #line 7731 "glslang_tab.cpp" /* yacc.c:1646  */
7731     break;
7732 
7733   case 333:
7734 #line 2411 "glslang.y" /* yacc.c:1646  */
7735     {
7736        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7737        (yyval.interm.type).basicType = EbtRayQuery;
7738     }
7739 #line 7740 "glslang_tab.cpp" /* yacc.c:1646  */
7740     break;
7741 
7742   case 334:
7743 #line 2415 "glslang.y" /* yacc.c:1646  */
7744     {
7745         parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types");
7746         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7747         (yyval.interm.type).basicType = EbtAtomicUint;
7748     }
7749 #line 7750 "glslang_tab.cpp" /* yacc.c:1646  */
7750     break;
7751 
7752   case 335:
7753 #line 2420 "glslang.y" /* yacc.c:1646  */
7754     {
7755         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7756         (yyval.interm.type).basicType = EbtSampler;
7757         (yyval.interm.type).sampler.set(EbtFloat, Esd1D);
7758     }
7759 #line 7760 "glslang_tab.cpp" /* yacc.c:1646  */
7760     break;
7761 
7762   case 336:
7763 #line 2426 "glslang.y" /* yacc.c:1646  */
7764     {
7765         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7766         (yyval.interm.type).basicType = EbtSampler;
7767         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
7768     }
7769 #line 7770 "glslang_tab.cpp" /* yacc.c:1646  */
7770     break;
7771 
7772   case 337:
7773 #line 2431 "glslang.y" /* yacc.c:1646  */
7774     {
7775         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7776         (yyval.interm.type).basicType = EbtSampler;
7777         (yyval.interm.type).sampler.set(EbtFloat, Esd3D);
7778     }
7779 #line 7780 "glslang_tab.cpp" /* yacc.c:1646  */
7780     break;
7781 
7782   case 338:
7783 #line 2436 "glslang.y" /* yacc.c:1646  */
7784     {
7785         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7786         (yyval.interm.type).basicType = EbtSampler;
7787         (yyval.interm.type).sampler.set(EbtFloat, EsdCube);
7788     }
7789 #line 7790 "glslang_tab.cpp" /* yacc.c:1646  */
7790     break;
7791 
7792   case 339:
7793 #line 2441 "glslang.y" /* yacc.c:1646  */
7794     {
7795         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7796         (yyval.interm.type).basicType = EbtSampler;
7797         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
7798     }
7799 #line 7800 "glslang_tab.cpp" /* yacc.c:1646  */
7800     break;
7801 
7802   case 340:
7803 #line 2446 "glslang.y" /* yacc.c:1646  */
7804     {
7805         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7806         (yyval.interm.type).basicType = EbtSampler;
7807         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
7808     }
7809 #line 7810 "glslang_tab.cpp" /* yacc.c:1646  */
7810     break;
7811 
7812   case 341:
7813 #line 2451 "glslang.y" /* yacc.c:1646  */
7814     {
7815         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7816         (yyval.interm.type).basicType = EbtSampler;
7817         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
7818     }
7819 #line 7820 "glslang_tab.cpp" /* yacc.c:1646  */
7820     break;
7821 
7822   case 342:
7823 #line 2456 "glslang.y" /* yacc.c:1646  */
7824     {
7825         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7826         (yyval.interm.type).basicType = EbtSampler;
7827         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
7828     }
7829 #line 7830 "glslang_tab.cpp" /* yacc.c:1646  */
7830     break;
7831 
7832   case 343:
7833 #line 2462 "glslang.y" /* yacc.c:1646  */
7834     {
7835         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7836         (yyval.interm.type).basicType = EbtSampler;
7837         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
7838     }
7839 #line 7840 "glslang_tab.cpp" /* yacc.c:1646  */
7840     break;
7841 
7842   case 344:
7843 #line 2467 "glslang.y" /* yacc.c:1646  */
7844     {
7845         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7846         (yyval.interm.type).basicType = EbtSampler;
7847         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
7848     }
7849 #line 7850 "glslang_tab.cpp" /* yacc.c:1646  */
7850     break;
7851 
7852   case 345:
7853 #line 2472 "glslang.y" /* yacc.c:1646  */
7854     {
7855         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7856         (yyval.interm.type).basicType = EbtSampler;
7857         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
7858     }
7859 #line 7860 "glslang_tab.cpp" /* yacc.c:1646  */
7860     break;
7861 
7862   case 346:
7863 #line 2477 "glslang.y" /* yacc.c:1646  */
7864     {
7865         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7866         (yyval.interm.type).basicType = EbtSampler;
7867         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
7868     }
7869 #line 7870 "glslang_tab.cpp" /* yacc.c:1646  */
7870     break;
7871 
7872   case 347:
7873 #line 2482 "glslang.y" /* yacc.c:1646  */
7874     {
7875         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7876         (yyval.interm.type).basicType = EbtSampler;
7877         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
7878     }
7879 #line 7880 "glslang_tab.cpp" /* yacc.c:1646  */
7880     break;
7881 
7882   case 348:
7883 #line 2487 "glslang.y" /* yacc.c:1646  */
7884     {
7885         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7886         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7887         (yyval.interm.type).basicType = EbtSampler;
7888         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D);
7889     }
7890 #line 7891 "glslang_tab.cpp" /* yacc.c:1646  */
7891     break;
7892 
7893   case 349:
7894 #line 2493 "glslang.y" /* yacc.c:1646  */
7895     {
7896         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7897         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7898         (yyval.interm.type).basicType = EbtSampler;
7899         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D);
7900     }
7901 #line 7902 "glslang_tab.cpp" /* yacc.c:1646  */
7902     break;
7903 
7904   case 350:
7905 #line 2499 "glslang.y" /* yacc.c:1646  */
7906     {
7907         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7908         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7909         (yyval.interm.type).basicType = EbtSampler;
7910         (yyval.interm.type).sampler.set(EbtFloat16, Esd3D);
7911     }
7912 #line 7913 "glslang_tab.cpp" /* yacc.c:1646  */
7913     break;
7914 
7915   case 351:
7916 #line 2505 "glslang.y" /* yacc.c:1646  */
7917     {
7918         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7919         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7920         (yyval.interm.type).basicType = EbtSampler;
7921         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube);
7922     }
7923 #line 7924 "glslang_tab.cpp" /* yacc.c:1646  */
7924     break;
7925 
7926   case 352:
7927 #line 2511 "glslang.y" /* yacc.c:1646  */
7928     {
7929         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7930         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7931         (yyval.interm.type).basicType = EbtSampler;
7932         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true);
7933     }
7934 #line 7935 "glslang_tab.cpp" /* yacc.c:1646  */
7935     break;
7936 
7937   case 353:
7938 #line 2517 "glslang.y" /* yacc.c:1646  */
7939     {
7940         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7941         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7942         (yyval.interm.type).basicType = EbtSampler;
7943         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true);
7944     }
7945 #line 7946 "glslang_tab.cpp" /* yacc.c:1646  */
7946     break;
7947 
7948   case 354:
7949 #line 2523 "glslang.y" /* yacc.c:1646  */
7950     {
7951         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7952         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7953         (yyval.interm.type).basicType = EbtSampler;
7954         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true);
7955     }
7956 #line 7957 "glslang_tab.cpp" /* yacc.c:1646  */
7957     break;
7958 
7959   case 355:
7960 #line 2529 "glslang.y" /* yacc.c:1646  */
7961     {
7962         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7963         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7964         (yyval.interm.type).basicType = EbtSampler;
7965         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true);
7966     }
7967 #line 7968 "glslang_tab.cpp" /* yacc.c:1646  */
7968     break;
7969 
7970   case 356:
7971 #line 2535 "glslang.y" /* yacc.c:1646  */
7972     {
7973         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7974         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7975         (yyval.interm.type).basicType = EbtSampler;
7976         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true);
7977     }
7978 #line 7979 "glslang_tab.cpp" /* yacc.c:1646  */
7979     break;
7980 
7981   case 357:
7982 #line 2541 "glslang.y" /* yacc.c:1646  */
7983     {
7984         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7985         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7986         (yyval.interm.type).basicType = EbtSampler;
7987         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true);
7988     }
7989 #line 7990 "glslang_tab.cpp" /* yacc.c:1646  */
7990     break;
7991 
7992   case 358:
7993 #line 2547 "glslang.y" /* yacc.c:1646  */
7994     {
7995         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7996         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7997         (yyval.interm.type).basicType = EbtSampler;
7998         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true);
7999     }
8000 #line 8001 "glslang_tab.cpp" /* yacc.c:1646  */
8001     break;
8002 
8003   case 359:
8004 #line 2553 "glslang.y" /* yacc.c:1646  */
8005     {
8006         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8007         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8008         (yyval.interm.type).basicType = EbtSampler;
8009         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true);
8010     }
8011 #line 8012 "glslang_tab.cpp" /* yacc.c:1646  */
8012     break;
8013 
8014   case 360:
8015 #line 2559 "glslang.y" /* yacc.c:1646  */
8016     {
8017         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8018         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8019         (yyval.interm.type).basicType = EbtSampler;
8020         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true);
8021     }
8022 #line 8023 "glslang_tab.cpp" /* yacc.c:1646  */
8023     break;
8024 
8025   case 361:
8026 #line 2565 "glslang.y" /* yacc.c:1646  */
8027     {
8028         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8029         (yyval.interm.type).basicType = EbtSampler;
8030         (yyval.interm.type).sampler.set(EbtInt, Esd1D);
8031     }
8032 #line 8033 "glslang_tab.cpp" /* yacc.c:1646  */
8033     break;
8034 
8035   case 362:
8036 #line 2571 "glslang.y" /* yacc.c:1646  */
8037     {
8038         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8039         (yyval.interm.type).basicType = EbtSampler;
8040         (yyval.interm.type).sampler.set(EbtInt, Esd2D);
8041     }
8042 #line 8043 "glslang_tab.cpp" /* yacc.c:1646  */
8043     break;
8044 
8045   case 363:
8046 #line 2576 "glslang.y" /* yacc.c:1646  */
8047     {
8048         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8049         (yyval.interm.type).basicType = EbtSampler;
8050         (yyval.interm.type).sampler.set(EbtInt, Esd3D);
8051     }
8052 #line 8053 "glslang_tab.cpp" /* yacc.c:1646  */
8053     break;
8054 
8055   case 364:
8056 #line 2581 "glslang.y" /* yacc.c:1646  */
8057     {
8058         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8059         (yyval.interm.type).basicType = EbtSampler;
8060         (yyval.interm.type).sampler.set(EbtInt, EsdCube);
8061     }
8062 #line 8063 "glslang_tab.cpp" /* yacc.c:1646  */
8063     break;
8064 
8065   case 365:
8066 #line 2586 "glslang.y" /* yacc.c:1646  */
8067     {
8068         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8069         (yyval.interm.type).basicType = EbtSampler;
8070         (yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
8071     }
8072 #line 8073 "glslang_tab.cpp" /* yacc.c:1646  */
8073     break;
8074 
8075   case 366:
8076 #line 2591 "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(EbtUint, Esd2D);
8081     }
8082 #line 8083 "glslang_tab.cpp" /* yacc.c:1646  */
8083     break;
8084 
8085   case 367:
8086 #line 2596 "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, Esd3D);
8091     }
8092 #line 8093 "glslang_tab.cpp" /* yacc.c:1646  */
8093     break;
8094 
8095   case 368:
8096 #line 2601 "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(EbtUint, EsdCube);
8101     }
8102 #line 8103 "glslang_tab.cpp" /* yacc.c:1646  */
8103     break;
8104 
8105   case 369:
8106 #line 2607 "glslang.y" /* yacc.c:1646  */
8107     {
8108         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8109         (yyval.interm.type).basicType = EbtSampler;
8110         (yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
8111     }
8112 #line 8113 "glslang_tab.cpp" /* yacc.c:1646  */
8113     break;
8114 
8115   case 370:
8116 #line 2612 "glslang.y" /* yacc.c:1646  */
8117     {
8118         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8119         (yyval.interm.type).basicType = EbtSampler;
8120         (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
8121     }
8122 #line 8123 "glslang_tab.cpp" /* yacc.c:1646  */
8123     break;
8124 
8125   case 371:
8126 #line 2617 "glslang.y" /* yacc.c:1646  */
8127     {
8128         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8129         (yyval.interm.type).basicType = EbtSampler;
8130         (yyval.interm.type).sampler.set(EbtUint, Esd1D);
8131     }
8132 #line 8133 "glslang_tab.cpp" /* yacc.c:1646  */
8133     break;
8134 
8135   case 372:
8136 #line 2622 "glslang.y" /* yacc.c:1646  */
8137     {
8138         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8139         (yyval.interm.type).basicType = EbtSampler;
8140         (yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
8141     }
8142 #line 8143 "glslang_tab.cpp" /* yacc.c:1646  */
8143     break;
8144 
8145   case 373:
8146 #line 2627 "glslang.y" /* yacc.c:1646  */
8147     {
8148         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8149         (yyval.interm.type).basicType = EbtSampler;
8150         (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
8151     }
8152 #line 8153 "glslang_tab.cpp" /* yacc.c:1646  */
8153     break;
8154 
8155   case 374:
8156 #line 2632 "glslang.y" /* yacc.c:1646  */
8157     {
8158         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8159         (yyval.interm.type).basicType = EbtSampler;
8160         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
8161     }
8162 #line 8163 "glslang_tab.cpp" /* yacc.c:1646  */
8163     break;
8164 
8165   case 375:
8166 #line 2637 "glslang.y" /* yacc.c:1646  */
8167     {
8168         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8169         (yyval.interm.type).basicType = EbtSampler;
8170         (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
8171     }
8172 #line 8173 "glslang_tab.cpp" /* yacc.c:1646  */
8173     break;
8174 
8175   case 376:
8176 #line 2642 "glslang.y" /* yacc.c:1646  */
8177     {
8178         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8179         (yyval.interm.type).basicType = EbtSampler;
8180         (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
8181     }
8182 #line 8183 "glslang_tab.cpp" /* yacc.c:1646  */
8183     break;
8184 
8185   case 377:
8186 #line 2648 "glslang.y" /* yacc.c:1646  */
8187     {
8188         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8189         (yyval.interm.type).basicType = EbtSampler;
8190         (yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
8191     }
8192 #line 8193 "glslang_tab.cpp" /* yacc.c:1646  */
8193     break;
8194 
8195   case 378:
8196 #line 2653 "glslang.y" /* yacc.c:1646  */
8197     {
8198         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8199         (yyval.interm.type).basicType = EbtSampler;
8200         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
8201     }
8202 #line 8203 "glslang_tab.cpp" /* yacc.c:1646  */
8203     break;
8204 
8205   case 379:
8206 #line 2658 "glslang.y" /* yacc.c:1646  */
8207     {
8208         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8209         (yyval.interm.type).basicType = EbtSampler;
8210         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
8211     }
8212 #line 8213 "glslang_tab.cpp" /* yacc.c:1646  */
8213     break;
8214 
8215   case 380:
8216 #line 2663 "glslang.y" /* yacc.c:1646  */
8217     {
8218         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8219         (yyval.interm.type).basicType = EbtSampler;
8220         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
8221     }
8222 #line 8223 "glslang_tab.cpp" /* yacc.c:1646  */
8223     break;
8224 
8225   case 381:
8226 #line 2668 "glslang.y" /* yacc.c:1646  */
8227     {
8228         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8229         (yyval.interm.type).basicType = EbtSampler;
8230         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
8231     }
8232 #line 8233 "glslang_tab.cpp" /* yacc.c:1646  */
8233     break;
8234 
8235   case 382:
8236 #line 2673 "glslang.y" /* yacc.c:1646  */
8237     {
8238         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8239         (yyval.interm.type).basicType = EbtSampler;
8240         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
8241     }
8242 #line 8243 "glslang_tab.cpp" /* yacc.c:1646  */
8243     break;
8244 
8245   case 383:
8246 #line 2678 "glslang.y" /* yacc.c:1646  */
8247     {
8248         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8249         (yyval.interm.type).basicType = EbtSampler;
8250         (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
8251     }
8252 #line 8253 "glslang_tab.cpp" /* yacc.c:1646  */
8253     break;
8254 
8255   case 384:
8256 #line 2683 "glslang.y" /* yacc.c:1646  */
8257     {
8258         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8259         (yyval.interm.type).basicType = EbtSampler;
8260         (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
8261     }
8262 #line 8263 "glslang_tab.cpp" /* yacc.c:1646  */
8263     break;
8264 
8265   case 385:
8266 #line 2688 "glslang.y" /* yacc.c:1646  */
8267     {
8268         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8269         (yyval.interm.type).basicType = EbtSampler;
8270         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
8271     }
8272 #line 8273 "glslang_tab.cpp" /* yacc.c:1646  */
8273     break;
8274 
8275   case 386:
8276 #line 2693 "glslang.y" /* yacc.c:1646  */
8277     {
8278         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8279         (yyval.interm.type).basicType = EbtSampler;
8280         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
8281     }
8282 #line 8283 "glslang_tab.cpp" /* yacc.c:1646  */
8283     break;
8284 
8285   case 387:
8286 #line 2698 "glslang.y" /* yacc.c:1646  */
8287     {
8288         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8289         (yyval.interm.type).basicType = EbtSampler;
8290         (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
8291     }
8292 #line 8293 "glslang_tab.cpp" /* yacc.c:1646  */
8293     break;
8294 
8295   case 388:
8296 #line 2703 "glslang.y" /* yacc.c:1646  */
8297     {
8298         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8299         (yyval.interm.type).basicType = EbtSampler;
8300         (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
8301     }
8302 #line 8303 "glslang_tab.cpp" /* yacc.c:1646  */
8303     break;
8304 
8305   case 389:
8306 #line 2708 "glslang.y" /* yacc.c:1646  */
8307     {
8308         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8309         (yyval.interm.type).basicType = EbtSampler;
8310         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
8311     }
8312 #line 8313 "glslang_tab.cpp" /* yacc.c:1646  */
8313     break;
8314 
8315   case 390:
8316 #line 2713 "glslang.y" /* yacc.c:1646  */
8317     {
8318         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8319         (yyval.interm.type).basicType = EbtSampler;
8320         (yyval.interm.type).sampler.setPureSampler(false);
8321     }
8322 #line 8323 "glslang_tab.cpp" /* yacc.c:1646  */
8323     break;
8324 
8325   case 391:
8326 #line 2718 "glslang.y" /* yacc.c:1646  */
8327     {
8328         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8329         (yyval.interm.type).basicType = EbtSampler;
8330         (yyval.interm.type).sampler.setPureSampler(true);
8331     }
8332 #line 8333 "glslang_tab.cpp" /* yacc.c:1646  */
8333     break;
8334 
8335   case 392:
8336 #line 2724 "glslang.y" /* yacc.c:1646  */
8337     {
8338         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8339         (yyval.interm.type).basicType = EbtSampler;
8340         (yyval.interm.type).sampler.set(EbtFloat, EsdRect);
8341     }
8342 #line 8343 "glslang_tab.cpp" /* yacc.c:1646  */
8343     break;
8344 
8345   case 393:
8346 #line 2729 "glslang.y" /* yacc.c:1646  */
8347     {
8348         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8349         (yyval.interm.type).basicType = EbtSampler;
8350         (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
8351     }
8352 #line 8353 "glslang_tab.cpp" /* yacc.c:1646  */
8353     break;
8354 
8355   case 394:
8356 #line 2734 "glslang.y" /* yacc.c:1646  */
8357     {
8358         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8359         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8360         (yyval.interm.type).basicType = EbtSampler;
8361         (yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
8362     }
8363 #line 8364 "glslang_tab.cpp" /* yacc.c:1646  */
8364     break;
8365 
8366   case 395:
8367 #line 2740 "glslang.y" /* yacc.c:1646  */
8368     {
8369         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8370         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8371         (yyval.interm.type).basicType = EbtSampler;
8372         (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
8373     }
8374 #line 8375 "glslang_tab.cpp" /* yacc.c:1646  */
8375     break;
8376 
8377   case 396:
8378 #line 2746 "glslang.y" /* yacc.c:1646  */
8379     {
8380         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8381         (yyval.interm.type).basicType = EbtSampler;
8382         (yyval.interm.type).sampler.set(EbtInt, EsdRect);
8383     }
8384 #line 8385 "glslang_tab.cpp" /* yacc.c:1646  */
8385     break;
8386 
8387   case 397:
8388 #line 2751 "glslang.y" /* yacc.c:1646  */
8389     {
8390         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8391         (yyval.interm.type).basicType = EbtSampler;
8392         (yyval.interm.type).sampler.set(EbtUint, EsdRect);
8393     }
8394 #line 8395 "glslang_tab.cpp" /* yacc.c:1646  */
8395     break;
8396 
8397   case 398:
8398 #line 2756 "glslang.y" /* yacc.c:1646  */
8399     {
8400         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8401         (yyval.interm.type).basicType = EbtSampler;
8402         (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
8403     }
8404 #line 8405 "glslang_tab.cpp" /* yacc.c:1646  */
8405     break;
8406 
8407   case 399:
8408 #line 2761 "glslang.y" /* yacc.c:1646  */
8409     {
8410         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8411         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8412         (yyval.interm.type).basicType = EbtSampler;
8413         (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
8414     }
8415 #line 8416 "glslang_tab.cpp" /* yacc.c:1646  */
8416     break;
8417 
8418   case 400:
8419 #line 2767 "glslang.y" /* yacc.c:1646  */
8420     {
8421         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8422         (yyval.interm.type).basicType = EbtSampler;
8423         (yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
8424     }
8425 #line 8426 "glslang_tab.cpp" /* yacc.c:1646  */
8426     break;
8427 
8428   case 401:
8429 #line 2772 "glslang.y" /* yacc.c:1646  */
8430     {
8431         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8432         (yyval.interm.type).basicType = EbtSampler;
8433         (yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
8434     }
8435 #line 8436 "glslang_tab.cpp" /* yacc.c:1646  */
8436     break;
8437 
8438   case 402:
8439 #line 2777 "glslang.y" /* yacc.c:1646  */
8440     {
8441         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8442         (yyval.interm.type).basicType = EbtSampler;
8443         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
8444     }
8445 #line 8446 "glslang_tab.cpp" /* yacc.c:1646  */
8446     break;
8447 
8448   case 403:
8449 #line 2782 "glslang.y" /* yacc.c:1646  */
8450     {
8451         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8452         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8453         (yyval.interm.type).basicType = EbtSampler;
8454         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
8455     }
8456 #line 8457 "glslang_tab.cpp" /* yacc.c:1646  */
8457     break;
8458 
8459   case 404:
8460 #line 2788 "glslang.y" /* yacc.c:1646  */
8461     {
8462         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8463         (yyval.interm.type).basicType = EbtSampler;
8464         (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
8465     }
8466 #line 8467 "glslang_tab.cpp" /* yacc.c:1646  */
8467     break;
8468 
8469   case 405:
8470 #line 2793 "glslang.y" /* yacc.c:1646  */
8471     {
8472         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8473         (yyval.interm.type).basicType = EbtSampler;
8474         (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
8475     }
8476 #line 8477 "glslang_tab.cpp" /* yacc.c:1646  */
8477     break;
8478 
8479   case 406:
8480 #line 2798 "glslang.y" /* yacc.c:1646  */
8481     {
8482         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8483         (yyval.interm.type).basicType = EbtSampler;
8484         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
8485     }
8486 #line 8487 "glslang_tab.cpp" /* yacc.c:1646  */
8487     break;
8488 
8489   case 407:
8490 #line 2803 "glslang.y" /* yacc.c:1646  */
8491     {
8492         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8493         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8494         (yyval.interm.type).basicType = EbtSampler;
8495         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
8496     }
8497 #line 8498 "glslang_tab.cpp" /* yacc.c:1646  */
8498     break;
8499 
8500   case 408:
8501 #line 2809 "glslang.y" /* yacc.c:1646  */
8502     {
8503         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8504         (yyval.interm.type).basicType = EbtSampler;
8505         (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
8506     }
8507 #line 8508 "glslang_tab.cpp" /* yacc.c:1646  */
8508     break;
8509 
8510   case 409:
8511 #line 2814 "glslang.y" /* yacc.c:1646  */
8512     {
8513         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8514         (yyval.interm.type).basicType = EbtSampler;
8515         (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
8516     }
8517 #line 8518 "glslang_tab.cpp" /* yacc.c:1646  */
8518     break;
8519 
8520   case 410:
8521 #line 2819 "glslang.y" /* yacc.c:1646  */
8522     {
8523         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8524         (yyval.interm.type).basicType = EbtSampler;
8525         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
8526     }
8527 #line 8528 "glslang_tab.cpp" /* yacc.c:1646  */
8528     break;
8529 
8530   case 411:
8531 #line 2824 "glslang.y" /* yacc.c:1646  */
8532     {
8533         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8534         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8535         (yyval.interm.type).basicType = EbtSampler;
8536         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
8537     }
8538 #line 8539 "glslang_tab.cpp" /* yacc.c:1646  */
8539     break;
8540 
8541   case 412:
8542 #line 2830 "glslang.y" /* yacc.c:1646  */
8543     {
8544         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8545         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8546         (yyval.interm.type).basicType = EbtSampler;
8547         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
8548     }
8549 #line 8550 "glslang_tab.cpp" /* yacc.c:1646  */
8550     break;
8551 
8552   case 413:
8553 #line 2836 "glslang.y" /* yacc.c:1646  */
8554     {
8555         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8556         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8557         (yyval.interm.type).basicType = EbtSampler;
8558         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
8559     }
8560 #line 8561 "glslang_tab.cpp" /* yacc.c:1646  */
8561     break;
8562 
8563   case 414:
8564 #line 2842 "glslang.y" /* yacc.c:1646  */
8565     {
8566         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8567         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8568         (yyval.interm.type).basicType = EbtSampler;
8569         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
8570     }
8571 #line 8572 "glslang_tab.cpp" /* yacc.c:1646  */
8572     break;
8573 
8574   case 415:
8575 #line 2848 "glslang.y" /* yacc.c:1646  */
8576     {
8577         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8578         (yyval.interm.type).basicType = EbtSampler;
8579         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
8580     }
8581 #line 8582 "glslang_tab.cpp" /* yacc.c:1646  */
8582     break;
8583 
8584   case 416:
8585 #line 2853 "glslang.y" /* yacc.c:1646  */
8586     {
8587         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8588         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8589         (yyval.interm.type).basicType = EbtSampler;
8590         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
8591     }
8592 #line 8593 "glslang_tab.cpp" /* yacc.c:1646  */
8593     break;
8594 
8595   case 417:
8596 #line 2859 "glslang.y" /* yacc.c:1646  */
8597     {
8598         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8599         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8600         (yyval.interm.type).basicType = EbtSampler;
8601         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true);
8602     }
8603 #line 8604 "glslang_tab.cpp" /* yacc.c:1646  */
8604     break;
8605 
8606   case 418:
8607 #line 2865 "glslang.y" /* yacc.c:1646  */
8608     {
8609         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8610         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8611         (yyval.interm.type).basicType = EbtSampler;
8612         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
8613     }
8614 #line 8615 "glslang_tab.cpp" /* yacc.c:1646  */
8615     break;
8616 
8617   case 419:
8618 #line 2871 "glslang.y" /* yacc.c:1646  */
8619     {
8620         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8621         (yyval.interm.type).basicType = EbtSampler;
8622         (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
8623     }
8624 #line 8625 "glslang_tab.cpp" /* yacc.c:1646  */
8625     break;
8626 
8627   case 420:
8628 #line 2876 "glslang.y" /* yacc.c:1646  */
8629     {
8630         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8631         (yyval.interm.type).basicType = EbtSampler;
8632         (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
8633     }
8634 #line 8635 "glslang_tab.cpp" /* yacc.c:1646  */
8635     break;
8636 
8637   case 421:
8638 #line 2881 "glslang.y" /* yacc.c:1646  */
8639     {
8640         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8641         (yyval.interm.type).basicType = EbtSampler;
8642         (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
8643     }
8644 #line 8645 "glslang_tab.cpp" /* yacc.c:1646  */
8645     break;
8646 
8647   case 422:
8648 #line 2886 "glslang.y" /* yacc.c:1646  */
8649     {
8650         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8651         (yyval.interm.type).basicType = EbtSampler;
8652         (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
8653     }
8654 #line 8655 "glslang_tab.cpp" /* yacc.c:1646  */
8655     break;
8656 
8657   case 423:
8658 #line 2891 "glslang.y" /* yacc.c:1646  */
8659     {
8660         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8661         (yyval.interm.type).basicType = EbtSampler;
8662         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
8663     }
8664 #line 8665 "glslang_tab.cpp" /* yacc.c:1646  */
8665     break;
8666 
8667   case 424:
8668 #line 2896 "glslang.y" /* yacc.c:1646  */
8669     {
8670         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8671         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8672         (yyval.interm.type).basicType = EbtSampler;
8673         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect);
8674     }
8675 #line 8676 "glslang_tab.cpp" /* yacc.c:1646  */
8676     break;
8677 
8678   case 425:
8679 #line 2902 "glslang.y" /* yacc.c:1646  */
8680     {
8681         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8682         (yyval.interm.type).basicType = EbtSampler;
8683         (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
8684     }
8685 #line 8686 "glslang_tab.cpp" /* yacc.c:1646  */
8686     break;
8687 
8688   case 426:
8689 #line 2907 "glslang.y" /* yacc.c:1646  */
8690     {
8691         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8692         (yyval.interm.type).basicType = EbtSampler;
8693         (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
8694     }
8695 #line 8696 "glslang_tab.cpp" /* yacc.c:1646  */
8696     break;
8697 
8698   case 427:
8699 #line 2912 "glslang.y" /* yacc.c:1646  */
8700     {
8701         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8702         (yyval.interm.type).basicType = EbtSampler;
8703         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
8704     }
8705 #line 8706 "glslang_tab.cpp" /* yacc.c:1646  */
8706     break;
8707 
8708   case 428:
8709 #line 2917 "glslang.y" /* yacc.c:1646  */
8710     {
8711         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8712         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8713         (yyval.interm.type).basicType = EbtSampler;
8714         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer);
8715     }
8716 #line 8717 "glslang_tab.cpp" /* yacc.c:1646  */
8717     break;
8718 
8719   case 429:
8720 #line 2923 "glslang.y" /* yacc.c:1646  */
8721     {
8722         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8723         (yyval.interm.type).basicType = EbtSampler;
8724         (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
8725     }
8726 #line 8727 "glslang_tab.cpp" /* yacc.c:1646  */
8727     break;
8728 
8729   case 430:
8730 #line 2928 "glslang.y" /* yacc.c:1646  */
8731     {
8732         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8733         (yyval.interm.type).basicType = EbtSampler;
8734         (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
8735     }
8736 #line 8737 "glslang_tab.cpp" /* yacc.c:1646  */
8737     break;
8738 
8739   case 431:
8740 #line 2933 "glslang.y" /* yacc.c:1646  */
8741     {
8742         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8743         (yyval.interm.type).basicType = EbtSampler;
8744         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
8745     }
8746 #line 8747 "glslang_tab.cpp" /* yacc.c:1646  */
8747     break;
8748 
8749   case 432:
8750 #line 2938 "glslang.y" /* yacc.c:1646  */
8751     {
8752         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8753         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8754         (yyval.interm.type).basicType = EbtSampler;
8755         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
8756     }
8757 #line 8758 "glslang_tab.cpp" /* yacc.c:1646  */
8758     break;
8759 
8760   case 433:
8761 #line 2944 "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.setTexture(EbtInt, Esd2D, false, false, true);
8766     }
8767 #line 8768 "glslang_tab.cpp" /* yacc.c:1646  */
8768     break;
8769 
8770   case 434:
8771 #line 2949 "glslang.y" /* yacc.c:1646  */
8772     {
8773         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8774         (yyval.interm.type).basicType = EbtSampler;
8775         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
8776     }
8777 #line 8778 "glslang_tab.cpp" /* yacc.c:1646  */
8778     break;
8779 
8780   case 435:
8781 #line 2954 "glslang.y" /* yacc.c:1646  */
8782     {
8783         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8784         (yyval.interm.type).basicType = EbtSampler;
8785         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
8786     }
8787 #line 8788 "glslang_tab.cpp" /* yacc.c:1646  */
8788     break;
8789 
8790   case 436:
8791 #line 2959 "glslang.y" /* yacc.c:1646  */
8792     {
8793         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8794         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8795         (yyval.interm.type).basicType = EbtSampler;
8796         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
8797     }
8798 #line 8799 "glslang_tab.cpp" /* yacc.c:1646  */
8799     break;
8800 
8801   case 437:
8802 #line 2965 "glslang.y" /* yacc.c:1646  */
8803     {
8804         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8805         (yyval.interm.type).basicType = EbtSampler;
8806         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
8807     }
8808 #line 8809 "glslang_tab.cpp" /* yacc.c:1646  */
8809     break;
8810 
8811   case 438:
8812 #line 2970 "glslang.y" /* yacc.c:1646  */
8813     {
8814         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8815         (yyval.interm.type).basicType = EbtSampler;
8816         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
8817     }
8818 #line 8819 "glslang_tab.cpp" /* yacc.c:1646  */
8819     break;
8820 
8821   case 439:
8822 #line 2975 "glslang.y" /* yacc.c:1646  */
8823     {
8824         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8825         (yyval.interm.type).basicType = EbtSampler;
8826         (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
8827     }
8828 #line 8829 "glslang_tab.cpp" /* yacc.c:1646  */
8829     break;
8830 
8831   case 440:
8832 #line 2980 "glslang.y" /* yacc.c:1646  */
8833     {
8834         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8835         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8836         (yyval.interm.type).basicType = EbtSampler;
8837         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D);
8838     }
8839 #line 8840 "glslang_tab.cpp" /* yacc.c:1646  */
8840     break;
8841 
8842   case 441:
8843 #line 2986 "glslang.y" /* yacc.c:1646  */
8844     {
8845         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8846         (yyval.interm.type).basicType = EbtSampler;
8847         (yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
8848     }
8849 #line 8850 "glslang_tab.cpp" /* yacc.c:1646  */
8850     break;
8851 
8852   case 442:
8853 #line 2991 "glslang.y" /* yacc.c:1646  */
8854     {
8855         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8856         (yyval.interm.type).basicType = EbtSampler;
8857         (yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
8858     }
8859 #line 8860 "glslang_tab.cpp" /* yacc.c:1646  */
8860     break;
8861 
8862   case 443:
8863 #line 2996 "glslang.y" /* yacc.c:1646  */
8864     {
8865         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8866         (yyval.interm.type).basicType = EbtSampler;
8867         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
8868     }
8869 #line 8870 "glslang_tab.cpp" /* yacc.c:1646  */
8870     break;
8871 
8872   case 444:
8873 #line 3001 "glslang.y" /* yacc.c:1646  */
8874     {
8875         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8876         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8877         (yyval.interm.type).basicType = EbtSampler;
8878         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D);
8879     }
8880 #line 8881 "glslang_tab.cpp" /* yacc.c:1646  */
8881     break;
8882 
8883   case 445:
8884 #line 3007 "glslang.y" /* yacc.c:1646  */
8885     {
8886         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8887         (yyval.interm.type).basicType = EbtSampler;
8888         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D);
8889     }
8890 #line 8891 "glslang_tab.cpp" /* yacc.c:1646  */
8891     break;
8892 
8893   case 446:
8894 #line 3012 "glslang.y" /* yacc.c:1646  */
8895     {
8896         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8897         (yyval.interm.type).basicType = EbtSampler;
8898         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D);
8899     }
8900 #line 8901 "glslang_tab.cpp" /* yacc.c:1646  */
8901     break;
8902 
8903   case 447:
8904 #line 3017 "glslang.y" /* yacc.c:1646  */
8905     {
8906         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8907         (yyval.interm.type).basicType = EbtSampler;
8908         (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
8909     }
8910 #line 8911 "glslang_tab.cpp" /* yacc.c:1646  */
8911     break;
8912 
8913   case 448:
8914 #line 3022 "glslang.y" /* yacc.c:1646  */
8915     {
8916         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8917         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8918         (yyval.interm.type).basicType = EbtSampler;
8919         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D);
8920     }
8921 #line 8922 "glslang_tab.cpp" /* yacc.c:1646  */
8922     break;
8923 
8924   case 449:
8925 #line 3028 "glslang.y" /* yacc.c:1646  */
8926     {
8927         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8928         (yyval.interm.type).basicType = EbtSampler;
8929         (yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
8930     }
8931 #line 8932 "glslang_tab.cpp" /* yacc.c:1646  */
8932     break;
8933 
8934   case 450:
8935 #line 3033 "glslang.y" /* yacc.c:1646  */
8936     {
8937         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8938         (yyval.interm.type).basicType = EbtSampler;
8939         (yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
8940     }
8941 #line 8942 "glslang_tab.cpp" /* yacc.c:1646  */
8942     break;
8943 
8944   case 451:
8945 #line 3038 "glslang.y" /* yacc.c:1646  */
8946     {
8947         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8948         (yyval.interm.type).basicType = EbtSampler;
8949         (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
8950     }
8951 #line 8952 "glslang_tab.cpp" /* yacc.c:1646  */
8952     break;
8953 
8954   case 452:
8955 #line 3043 "glslang.y" /* yacc.c:1646  */
8956     {
8957         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8958         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8959         (yyval.interm.type).basicType = EbtSampler;
8960         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect);
8961     }
8962 #line 8963 "glslang_tab.cpp" /* yacc.c:1646  */
8963     break;
8964 
8965   case 453:
8966 #line 3049 "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(EbtInt, EsdRect);
8971     }
8972 #line 8973 "glslang_tab.cpp" /* yacc.c:1646  */
8973     break;
8974 
8975   case 454:
8976 #line 3054 "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(EbtUint, EsdRect);
8981     }
8982 #line 8983 "glslang_tab.cpp" /* yacc.c:1646  */
8983     break;
8984 
8985   case 455:
8986 #line 3059 "glslang.y" /* yacc.c:1646  */
8987     {
8988         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8989         (yyval.interm.type).basicType = EbtSampler;
8990         (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
8991     }
8992 #line 8993 "glslang_tab.cpp" /* yacc.c:1646  */
8993     break;
8994 
8995   case 456:
8996 #line 3064 "glslang.y" /* yacc.c:1646  */
8997     {
8998         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8999         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9000         (yyval.interm.type).basicType = EbtSampler;
9001         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube);
9002     }
9003 #line 9004 "glslang_tab.cpp" /* yacc.c:1646  */
9004     break;
9005 
9006   case 457:
9007 #line 3070 "glslang.y" /* yacc.c:1646  */
9008     {
9009         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9010         (yyval.interm.type).basicType = EbtSampler;
9011         (yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
9012     }
9013 #line 9014 "glslang_tab.cpp" /* yacc.c:1646  */
9014     break;
9015 
9016   case 458:
9017 #line 3075 "glslang.y" /* yacc.c:1646  */
9018     {
9019         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9020         (yyval.interm.type).basicType = EbtSampler;
9021         (yyval.interm.type).sampler.setImage(EbtUint, EsdCube);
9022     }
9023 #line 9024 "glslang_tab.cpp" /* yacc.c:1646  */
9024     break;
9025 
9026   case 459:
9027 #line 3080 "glslang.y" /* yacc.c:1646  */
9028     {
9029         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9030         (yyval.interm.type).basicType = EbtSampler;
9031         (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
9032     }
9033 #line 9034 "glslang_tab.cpp" /* yacc.c:1646  */
9034     break;
9035 
9036   case 460:
9037 #line 3085 "glslang.y" /* yacc.c:1646  */
9038     {
9039         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9040         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9041         (yyval.interm.type).basicType = EbtSampler;
9042         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer);
9043     }
9044 #line 9045 "glslang_tab.cpp" /* yacc.c:1646  */
9045     break;
9046 
9047   case 461:
9048 #line 3091 "glslang.y" /* yacc.c:1646  */
9049     {
9050         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9051         (yyval.interm.type).basicType = EbtSampler;
9052         (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
9053     }
9054 #line 9055 "glslang_tab.cpp" /* yacc.c:1646  */
9055     break;
9056 
9057   case 462:
9058 #line 3096 "glslang.y" /* yacc.c:1646  */
9059     {
9060         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9061         (yyval.interm.type).basicType = EbtSampler;
9062         (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer);
9063     }
9064 #line 9065 "glslang_tab.cpp" /* yacc.c:1646  */
9065     break;
9066 
9067   case 463:
9068 #line 3101 "glslang.y" /* yacc.c:1646  */
9069     {
9070         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9071         (yyval.interm.type).basicType = EbtSampler;
9072         (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
9073     }
9074 #line 9075 "glslang_tab.cpp" /* yacc.c:1646  */
9075     break;
9076 
9077   case 464:
9078 #line 3106 "glslang.y" /* yacc.c:1646  */
9079     {
9080         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9081         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9082         (yyval.interm.type).basicType = EbtSampler;
9083         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true);
9084     }
9085 #line 9086 "glslang_tab.cpp" /* yacc.c:1646  */
9086     break;
9087 
9088   case 465:
9089 #line 3112 "glslang.y" /* yacc.c:1646  */
9090     {
9091         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9092         (yyval.interm.type).basicType = EbtSampler;
9093         (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
9094     }
9095 #line 9096 "glslang_tab.cpp" /* yacc.c:1646  */
9096     break;
9097 
9098   case 466:
9099 #line 3117 "glslang.y" /* yacc.c:1646  */
9100     {
9101         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9102         (yyval.interm.type).basicType = EbtSampler;
9103         (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true);
9104     }
9105 #line 9106 "glslang_tab.cpp" /* yacc.c:1646  */
9106     break;
9107 
9108   case 467:
9109 #line 3122 "glslang.y" /* yacc.c:1646  */
9110     {
9111         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9112         (yyval.interm.type).basicType = EbtSampler;
9113         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
9114     }
9115 #line 9116 "glslang_tab.cpp" /* yacc.c:1646  */
9116     break;
9117 
9118   case 468:
9119 #line 3127 "glslang.y" /* yacc.c:1646  */
9120     {
9121         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9122         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9123         (yyval.interm.type).basicType = EbtSampler;
9124         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true);
9125     }
9126 #line 9127 "glslang_tab.cpp" /* yacc.c:1646  */
9127     break;
9128 
9129   case 469:
9130 #line 3133 "glslang.y" /* yacc.c:1646  */
9131     {
9132         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9133         (yyval.interm.type).basicType = EbtSampler;
9134         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
9135     }
9136 #line 9137 "glslang_tab.cpp" /* yacc.c:1646  */
9137     break;
9138 
9139   case 470:
9140 #line 3138 "glslang.y" /* yacc.c:1646  */
9141     {
9142         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9143         (yyval.interm.type).basicType = EbtSampler;
9144         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
9145     }
9146 #line 9147 "glslang_tab.cpp" /* yacc.c:1646  */
9147     break;
9148 
9149   case 471:
9150 #line 3143 "glslang.y" /* yacc.c:1646  */
9151     {
9152         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9153         (yyval.interm.type).basicType = EbtSampler;
9154         (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
9155     }
9156 #line 9157 "glslang_tab.cpp" /* yacc.c:1646  */
9157     break;
9158 
9159   case 472:
9160 #line 3148 "glslang.y" /* yacc.c:1646  */
9161     {
9162         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9163         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9164         (yyval.interm.type).basicType = EbtSampler;
9165         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true);
9166     }
9167 #line 9168 "glslang_tab.cpp" /* yacc.c:1646  */
9168     break;
9169 
9170   case 473:
9171 #line 3154 "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, EsdCube, true);
9176     }
9177 #line 9178 "glslang_tab.cpp" /* yacc.c:1646  */
9178     break;
9179 
9180   case 474:
9181 #line 3159 "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, EsdCube, true);
9186     }
9187 #line 9188 "glslang_tab.cpp" /* yacc.c:1646  */
9188     break;
9189 
9190   case 475:
9191 #line 3164 "glslang.y" /* yacc.c:1646  */
9192     {
9193         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9194         (yyval.interm.type).basicType = EbtSampler;
9195         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
9196     }
9197 #line 9198 "glslang_tab.cpp" /* yacc.c:1646  */
9198     break;
9199 
9200   case 476:
9201 #line 3169 "glslang.y" /* yacc.c:1646  */
9202     {
9203         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9204         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9205         (yyval.interm.type).basicType = EbtSampler;
9206         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true);
9207     }
9208 #line 9209 "glslang_tab.cpp" /* yacc.c:1646  */
9209     break;
9210 
9211   case 477:
9212 #line 3175 "glslang.y" /* yacc.c:1646  */
9213     {
9214         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9215         (yyval.interm.type).basicType = EbtSampler;
9216         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
9217     }
9218 #line 9219 "glslang_tab.cpp" /* yacc.c:1646  */
9219     break;
9220 
9221   case 478:
9222 #line 3180 "glslang.y" /* yacc.c:1646  */
9223     {
9224         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9225         (yyval.interm.type).basicType = EbtSampler;
9226         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
9227     }
9228 #line 9229 "glslang_tab.cpp" /* yacc.c:1646  */
9229     break;
9230 
9231   case 479:
9232 #line 3185 "glslang.y" /* yacc.c:1646  */
9233     {
9234         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9235         (yyval.interm.type).basicType = EbtSampler;
9236         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
9237     }
9238 #line 9239 "glslang_tab.cpp" /* yacc.c:1646  */
9239     break;
9240 
9241   case 480:
9242 #line 3190 "glslang.y" /* yacc.c:1646  */
9243     {
9244         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9245         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9246         (yyval.interm.type).basicType = EbtSampler;
9247         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true);
9248     }
9249 #line 9250 "glslang_tab.cpp" /* yacc.c:1646  */
9250     break;
9251 
9252   case 481:
9253 #line 3196 "glslang.y" /* yacc.c:1646  */
9254     {
9255         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9256         (yyval.interm.type).basicType = EbtSampler;
9257         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
9258     }
9259 #line 9260 "glslang_tab.cpp" /* yacc.c:1646  */
9260     break;
9261 
9262   case 482:
9263 #line 3201 "glslang.y" /* yacc.c:1646  */
9264     {
9265         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9266         (yyval.interm.type).basicType = EbtSampler;
9267         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
9268     }
9269 #line 9270 "glslang_tab.cpp" /* yacc.c:1646  */
9270     break;
9271 
9272   case 483:
9273 #line 3206 "glslang.y" /* yacc.c:1646  */
9274     {  // GL_OES_EGL_image_external
9275         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9276         (yyval.interm.type).basicType = EbtSampler;
9277         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
9278         (yyval.interm.type).sampler.external = true;
9279     }
9280 #line 9281 "glslang_tab.cpp" /* yacc.c:1646  */
9281     break;
9282 
9283   case 484:
9284 #line 3212 "glslang.y" /* yacc.c:1646  */
9285     { // GL_EXT_YUV_target
9286         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9287         (yyval.interm.type).basicType = EbtSampler;
9288         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
9289         (yyval.interm.type).sampler.yuv = true;
9290     }
9291 #line 9292 "glslang_tab.cpp" /* yacc.c:1646  */
9292     break;
9293 
9294   case 485:
9295 #line 3218 "glslang.y" /* yacc.c:1646  */
9296     {
9297         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9298         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9299         (yyval.interm.type).basicType = EbtSampler;
9300         (yyval.interm.type).sampler.setSubpass(EbtFloat);
9301     }
9302 #line 9303 "glslang_tab.cpp" /* yacc.c:1646  */
9303     break;
9304 
9305   case 486:
9306 #line 3224 "glslang.y" /* yacc.c:1646  */
9307     {
9308         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9309         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9310         (yyval.interm.type).basicType = EbtSampler;
9311         (yyval.interm.type).sampler.setSubpass(EbtFloat, true);
9312     }
9313 #line 9314 "glslang_tab.cpp" /* yacc.c:1646  */
9314     break;
9315 
9316   case 487:
9317 #line 3230 "glslang.y" /* yacc.c:1646  */
9318     {
9319         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
9320         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9321         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9322         (yyval.interm.type).basicType = EbtSampler;
9323         (yyval.interm.type).sampler.setSubpass(EbtFloat16);
9324     }
9325 #line 9326 "glslang_tab.cpp" /* yacc.c:1646  */
9326     break;
9327 
9328   case 488:
9329 #line 3237 "glslang.y" /* yacc.c:1646  */
9330     {
9331         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
9332         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9333         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9334         (yyval.interm.type).basicType = EbtSampler;
9335         (yyval.interm.type).sampler.setSubpass(EbtFloat16, true);
9336     }
9337 #line 9338 "glslang_tab.cpp" /* yacc.c:1646  */
9338     break;
9339 
9340   case 489:
9341 #line 3244 "glslang.y" /* yacc.c:1646  */
9342     {
9343         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9344         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9345         (yyval.interm.type).basicType = EbtSampler;
9346         (yyval.interm.type).sampler.setSubpass(EbtInt);
9347     }
9348 #line 9349 "glslang_tab.cpp" /* yacc.c:1646  */
9349     break;
9350 
9351   case 490:
9352 #line 3250 "glslang.y" /* yacc.c:1646  */
9353     {
9354         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9355         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9356         (yyval.interm.type).basicType = EbtSampler;
9357         (yyval.interm.type).sampler.setSubpass(EbtInt, true);
9358     }
9359 #line 9360 "glslang_tab.cpp" /* yacc.c:1646  */
9360     break;
9361 
9362   case 491:
9363 #line 3256 "glslang.y" /* yacc.c:1646  */
9364     {
9365         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9366         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9367         (yyval.interm.type).basicType = EbtSampler;
9368         (yyval.interm.type).sampler.setSubpass(EbtUint);
9369     }
9370 #line 9371 "glslang_tab.cpp" /* yacc.c:1646  */
9371     break;
9372 
9373   case 492:
9374 #line 3262 "glslang.y" /* yacc.c:1646  */
9375     {
9376         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9377         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9378         (yyval.interm.type).basicType = EbtSampler;
9379         (yyval.interm.type).sampler.setSubpass(EbtUint, true);
9380     }
9381 #line 9382 "glslang_tab.cpp" /* yacc.c:1646  */
9382     break;
9383 
9384   case 493:
9385 #line 3268 "glslang.y" /* yacc.c:1646  */
9386     {
9387         parseContext.fcoopmatCheck((yyvsp[0].lex).loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
9388         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9389         (yyval.interm.type).basicType = EbtFloat;
9390         (yyval.interm.type).coopmat = true;
9391     }
9392 #line 9393 "glslang_tab.cpp" /* yacc.c:1646  */
9393     break;
9394 
9395   case 494:
9396 #line 3274 "glslang.y" /* yacc.c:1646  */
9397     {
9398         parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel());
9399         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9400         (yyval.interm.type).basicType = EbtInt;
9401         (yyval.interm.type).coopmat = true;
9402     }
9403 #line 9404 "glslang_tab.cpp" /* yacc.c:1646  */
9404     break;
9405 
9406   case 495:
9407 #line 3280 "glslang.y" /* yacc.c:1646  */
9408     {
9409         parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel());
9410         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9411         (yyval.interm.type).basicType = EbtUint;
9412         (yyval.interm.type).coopmat = true;
9413     }
9414 #line 9415 "glslang_tab.cpp" /* yacc.c:1646  */
9415     break;
9416 
9417   case 496:
9418 #line 3287 "glslang.y" /* yacc.c:1646  */
9419     {
9420         (yyval.interm.type) = (yyvsp[0].interm.type);
9421         (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
9422         parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
9423     }
9424 #line 9425 "glslang_tab.cpp" /* yacc.c:1646  */
9425     break;
9426 
9427   case 497:
9428 #line 3292 "glslang.y" /* yacc.c:1646  */
9429     {
9430         //
9431         // This is for user defined type names.  The lexical phase looked up the
9432         // type.
9433         //
9434         if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) {
9435             const TType& structure = variable->getType();
9436             (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9437             (yyval.interm.type).basicType = EbtStruct;
9438             (yyval.interm.type).userDef = &structure;
9439         } else
9440             parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
9441     }
9442 #line 9443 "glslang_tab.cpp" /* yacc.c:1646  */
9443     break;
9444 
9445   case 498:
9446 #line 3308 "glslang.y" /* yacc.c:1646  */
9447     {
9448         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
9449         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9450         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
9451     }
9452 #line 9453 "glslang_tab.cpp" /* yacc.c:1646  */
9453     break;
9454 
9455   case 499:
9456 #line 3313 "glslang.y" /* yacc.c:1646  */
9457     {
9458         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
9459         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9460         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
9461     }
9462 #line 9463 "glslang_tab.cpp" /* yacc.c:1646  */
9463     break;
9464 
9465   case 500:
9466 #line 3318 "glslang.y" /* yacc.c:1646  */
9467     {
9468         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
9469         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9470         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
9471     }
9472 #line 9473 "glslang_tab.cpp" /* yacc.c:1646  */
9473     break;
9474 
9475   case 501:
9476 #line 3326 "glslang.y" /* yacc.c:1646  */
9477     { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
9478 #line 9479 "glslang_tab.cpp" /* yacc.c:1646  */
9479     break;
9480 
9481   case 502:
9482 #line 3326 "glslang.y" /* yacc.c:1646  */
9483     {
9484         TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
9485         parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
9486         TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true);
9487         if (! parseContext.symbolTable.insert(*userTypeDef))
9488             parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct");
9489         (yyval.interm.type).init((yyvsp[-5].lex).loc);
9490         (yyval.interm.type).basicType = EbtStruct;
9491         (yyval.interm.type).userDef = structure;
9492         --parseContext.structNestingLevel;
9493     }
9494 #line 9495 "glslang_tab.cpp" /* yacc.c:1646  */
9495     break;
9496 
9497   case 503:
9498 #line 3337 "glslang.y" /* yacc.c:1646  */
9499     { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
9500 #line 9501 "glslang_tab.cpp" /* yacc.c:1646  */
9501     break;
9502 
9503   case 504:
9504 #line 3337 "glslang.y" /* yacc.c:1646  */
9505     {
9506         TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
9507         (yyval.interm.type).init((yyvsp[-4].lex).loc);
9508         (yyval.interm.type).basicType = EbtStruct;
9509         (yyval.interm.type).userDef = structure;
9510         --parseContext.structNestingLevel;
9511     }
9512 #line 9513 "glslang_tab.cpp" /* yacc.c:1646  */
9513     break;
9514 
9515   case 505:
9516 #line 3347 "glslang.y" /* yacc.c:1646  */
9517     {
9518         (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
9519     }
9520 #line 9521 "glslang_tab.cpp" /* yacc.c:1646  */
9521     break;
9522 
9523   case 506:
9524 #line 3350 "glslang.y" /* yacc.c:1646  */
9525     {
9526         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
9527         for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
9528             for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) {
9529                 if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName())
9530                     parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str());
9531             }
9532             (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
9533         }
9534     }
9535 #line 9536 "glslang_tab.cpp" /* yacc.c:1646  */
9536     break;
9537 
9538   case 507:
9539 #line 3363 "glslang.y" /* yacc.c:1646  */
9540     {
9541         if ((yyvsp[-2].interm.type).arraySizes) {
9542             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
9543             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
9544             if (parseContext.isEsProfile())
9545                 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
9546         }
9547 
9548         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
9549 
9550         parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
9551         parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
9552 
9553         for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
9554             TType type((yyvsp[-2].interm.type));
9555             type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
9556             type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
9557             type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
9558             parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
9559             (*(yyval.interm.typeList))[i].type->shallowCopy(type);
9560         }
9561     }
9562 #line 9563 "glslang_tab.cpp" /* yacc.c:1646  */
9563     break;
9564 
9565   case 508:
9566 #line 3385 "glslang.y" /* yacc.c:1646  */
9567     {
9568         if ((yyvsp[-2].interm.type).arraySizes) {
9569             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
9570             parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
9571             if (parseContext.isEsProfile())
9572                 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
9573         }
9574 
9575         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
9576 
9577         parseContext.memberQualifierCheck((yyvsp[-3].interm.type));
9578         parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
9579         parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true);
9580         parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
9581 
9582         for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
9583             TType type((yyvsp[-2].interm.type));
9584             type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
9585             type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
9586             type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
9587             parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
9588             (*(yyval.interm.typeList))[i].type->shallowCopy(type);
9589         }
9590     }
9591 #line 9592 "glslang_tab.cpp" /* yacc.c:1646  */
9592     break;
9593 
9594   case 509:
9595 #line 3412 "glslang.y" /* yacc.c:1646  */
9596     {
9597         (yyval.interm.typeList) = new TTypeList;
9598         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
9599     }
9600 #line 9601 "glslang_tab.cpp" /* yacc.c:1646  */
9601     break;
9602 
9603   case 510:
9604 #line 3416 "glslang.y" /* yacc.c:1646  */
9605     {
9606         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
9607     }
9608 #line 9609 "glslang_tab.cpp" /* yacc.c:1646  */
9609     break;
9610 
9611   case 511:
9612 #line 3422 "glslang.y" /* yacc.c:1646  */
9613     {
9614         (yyval.interm.typeLine).type = new TType(EbtVoid);
9615         (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
9616         (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
9617     }
9618 #line 9619 "glslang_tab.cpp" /* yacc.c:1646  */
9619     break;
9620 
9621   case 512:
9622 #line 3427 "glslang.y" /* yacc.c:1646  */
9623     {
9624         parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
9625 
9626         (yyval.interm.typeLine).type = new TType(EbtVoid);
9627         (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc;
9628         (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
9629         (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
9630     }
9631 #line 9632 "glslang_tab.cpp" /* yacc.c:1646  */
9632     break;
9633 
9634   case 513:
9635 #line 3438 "glslang.y" /* yacc.c:1646  */
9636     {
9637         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
9638     }
9639 #line 9640 "glslang_tab.cpp" /* yacc.c:1646  */
9640     break;
9641 
9642   case 514:
9643 #line 3442 "glslang.y" /* yacc.c:1646  */
9644     {
9645         const char* initFeature = "{ } style initializers";
9646         parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
9647         parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
9648         (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
9649     }
9650 #line 9651 "glslang_tab.cpp" /* yacc.c:1646  */
9651     break;
9652 
9653   case 515:
9654 #line 3448 "glslang.y" /* yacc.c:1646  */
9655     {
9656         const char* initFeature = "{ } style initializers";
9657         parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
9658         parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
9659         (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
9660     }
9661 #line 9662 "glslang_tab.cpp" /* yacc.c:1646  */
9662     break;
9663 
9664   case 516:
9665 #line 3459 "glslang.y" /* yacc.c:1646  */
9666     {
9667         (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
9668     }
9669 #line 9670 "glslang_tab.cpp" /* yacc.c:1646  */
9670     break;
9671 
9672   case 517:
9673 #line 3462 "glslang.y" /* yacc.c:1646  */
9674     {
9675         (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
9676     }
9677 #line 9678 "glslang_tab.cpp" /* yacc.c:1646  */
9678     break;
9679 
9680   case 518:
9681 #line 3469 "glslang.y" /* yacc.c:1646  */
9682     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9683 #line 9684 "glslang_tab.cpp" /* yacc.c:1646  */
9684     break;
9685 
9686   case 519:
9687 #line 3473 "glslang.y" /* yacc.c:1646  */
9688     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9689 #line 9690 "glslang_tab.cpp" /* yacc.c:1646  */
9690     break;
9691 
9692   case 520:
9693 #line 3474 "glslang.y" /* yacc.c:1646  */
9694     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9695 #line 9696 "glslang_tab.cpp" /* yacc.c:1646  */
9696     break;
9697 
9698   case 521:
9699 #line 3480 "glslang.y" /* yacc.c:1646  */
9700     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9701 #line 9702 "glslang_tab.cpp" /* yacc.c:1646  */
9702     break;
9703 
9704   case 522:
9705 #line 3481 "glslang.y" /* yacc.c:1646  */
9706     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9707 #line 9708 "glslang_tab.cpp" /* yacc.c:1646  */
9708     break;
9709 
9710   case 523:
9711 #line 3482 "glslang.y" /* yacc.c:1646  */
9712     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9713 #line 9714 "glslang_tab.cpp" /* yacc.c:1646  */
9714     break;
9715 
9716   case 524:
9717 #line 3483 "glslang.y" /* yacc.c:1646  */
9718     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9719 #line 9720 "glslang_tab.cpp" /* yacc.c:1646  */
9720     break;
9721 
9722   case 525:
9723 #line 3484 "glslang.y" /* yacc.c:1646  */
9724     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9725 #line 9726 "glslang_tab.cpp" /* yacc.c:1646  */
9726     break;
9727 
9728   case 526:
9729 #line 3485 "glslang.y" /* yacc.c:1646  */
9730     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9731 #line 9732 "glslang_tab.cpp" /* yacc.c:1646  */
9732     break;
9733 
9734   case 527:
9735 #line 3486 "glslang.y" /* yacc.c:1646  */
9736     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9737 #line 9738 "glslang_tab.cpp" /* yacc.c:1646  */
9738     break;
9739 
9740   case 528:
9741 #line 3488 "glslang.y" /* yacc.c:1646  */
9742     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9743 #line 9744 "glslang_tab.cpp" /* yacc.c:1646  */
9744     break;
9745 
9746   case 529:
9747 #line 3494 "glslang.y" /* yacc.c:1646  */
9748     {
9749         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "demote");
9750         parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_demote_to_helper_invocation, "demote");
9751         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDemote, (yyvsp[-1].lex).loc);
9752     }
9753 #line 9754 "glslang_tab.cpp" /* yacc.c:1646  */
9754     break;
9755 
9756   case 530:
9757 #line 3503 "glslang.y" /* yacc.c:1646  */
9758     { (yyval.interm.intermNode) = 0; }
9759 #line 9760 "glslang_tab.cpp" /* yacc.c:1646  */
9760     break;
9761 
9762   case 531:
9763 #line 3504 "glslang.y" /* yacc.c:1646  */
9764     {
9765         parseContext.symbolTable.push();
9766         ++parseContext.statementNestingLevel;
9767     }
9768 #line 9769 "glslang_tab.cpp" /* yacc.c:1646  */
9769     break;
9770 
9771   case 532:
9772 #line 3508 "glslang.y" /* yacc.c:1646  */
9773     {
9774         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9775         --parseContext.statementNestingLevel;
9776     }
9777 #line 9778 "glslang_tab.cpp" /* yacc.c:1646  */
9778     break;
9779 
9780   case 533:
9781 #line 3512 "glslang.y" /* yacc.c:1646  */
9782     {
9783         if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate())
9784             (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
9785         (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode);
9786     }
9787 #line 9788 "glslang_tab.cpp" /* yacc.c:1646  */
9788     break;
9789 
9790   case 534:
9791 #line 3520 "glslang.y" /* yacc.c:1646  */
9792     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9793 #line 9794 "glslang_tab.cpp" /* yacc.c:1646  */
9794     break;
9795 
9796   case 535:
9797 #line 3521 "glslang.y" /* yacc.c:1646  */
9798     { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9799 #line 9800 "glslang_tab.cpp" /* yacc.c:1646  */
9800     break;
9801 
9802   case 536:
9803 #line 3525 "glslang.y" /* yacc.c:1646  */
9804     {
9805         ++parseContext.controlFlowNestingLevel;
9806     }
9807 #line 9808 "glslang_tab.cpp" /* yacc.c:1646  */
9808     break;
9809 
9810   case 537:
9811 #line 3528 "glslang.y" /* yacc.c:1646  */
9812     {
9813         --parseContext.controlFlowNestingLevel;
9814         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9815     }
9816 #line 9817 "glslang_tab.cpp" /* yacc.c:1646  */
9817     break;
9818 
9819   case 538:
9820 #line 3532 "glslang.y" /* yacc.c:1646  */
9821     {
9822         parseContext.symbolTable.push();
9823         ++parseContext.statementNestingLevel;
9824         ++parseContext.controlFlowNestingLevel;
9825     }
9826 #line 9827 "glslang_tab.cpp" /* yacc.c:1646  */
9827     break;
9828 
9829   case 539:
9830 #line 3537 "glslang.y" /* yacc.c:1646  */
9831     {
9832         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9833         --parseContext.statementNestingLevel;
9834         --parseContext.controlFlowNestingLevel;
9835         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9836     }
9837 #line 9838 "glslang_tab.cpp" /* yacc.c:1646  */
9838     break;
9839 
9840   case 540:
9841 #line 3546 "glslang.y" /* yacc.c:1646  */
9842     {
9843         (yyval.interm.intermNode) = 0;
9844     }
9845 #line 9846 "glslang_tab.cpp" /* yacc.c:1646  */
9846     break;
9847 
9848   case 541:
9849 #line 3549 "glslang.y" /* yacc.c:1646  */
9850     {
9851         if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate())
9852             (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
9853         (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode);
9854     }
9855 #line 9856 "glslang_tab.cpp" /* yacc.c:1646  */
9856     break;
9857 
9858   case 542:
9859 #line 3557 "glslang.y" /* yacc.c:1646  */
9860     {
9861         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
9862         if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
9863                                             (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
9864             parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode));
9865             (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
9866         }
9867     }
9868 #line 9869 "glslang_tab.cpp" /* yacc.c:1646  */
9869     break;
9870 
9871   case 543:
9872 #line 3565 "glslang.y" /* yacc.c:1646  */
9873     {
9874         if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
9875                                             (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
9876             parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode));
9877             (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
9878         } else
9879             (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
9880     }
9881 #line 9882 "glslang_tab.cpp" /* yacc.c:1646  */
9882     break;
9883 
9884   case 544:
9885 #line 3576 "glslang.y" /* yacc.c:1646  */
9886     { (yyval.interm.intermNode) = 0; }
9887 #line 9888 "glslang_tab.cpp" /* yacc.c:1646  */
9888     break;
9889 
9890   case 545:
9891 #line 3577 "glslang.y" /* yacc.c:1646  */
9892     { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
9893 #line 9894 "glslang_tab.cpp" /* yacc.c:1646  */
9894     break;
9895 
9896   case 546:
9897 #line 3581 "glslang.y" /* yacc.c:1646  */
9898     {
9899         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9900     }
9901 #line 9902 "glslang_tab.cpp" /* yacc.c:1646  */
9902     break;
9903 
9904   case 547:
9905 #line 3585 "glslang.y" /* yacc.c:1646  */
9906     {
9907         parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
9908         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9909     }
9910 #line 9911 "glslang_tab.cpp" /* yacc.c:1646  */
9911     break;
9912 
9913   case 548:
9914 #line 3592 "glslang.y" /* yacc.c:1646  */
9915     {
9916         parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
9917         (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
9918     }
9919 #line 9920 "glslang_tab.cpp" /* yacc.c:1646  */
9920     break;
9921 
9922   case 549:
9923 #line 3599 "glslang.y" /* yacc.c:1646  */
9924     {
9925         (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
9926         (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
9927     }
9928 #line 9929 "glslang_tab.cpp" /* yacc.c:1646  */
9929     break;
9930 
9931   case 550:
9932 #line 3603 "glslang.y" /* yacc.c:1646  */
9933     {
9934         (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
9935         (yyval.interm.nodePair).node2 = 0;
9936     }
9937 #line 9938 "glslang_tab.cpp" /* yacc.c:1646  */
9938     break;
9939 
9940   case 551:
9941 #line 3611 "glslang.y" /* yacc.c:1646  */
9942     {
9943         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
9944         parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
9945     }
9946 #line 9947 "glslang_tab.cpp" /* yacc.c:1646  */
9947     break;
9948 
9949   case 552:
9950 #line 3615 "glslang.y" /* yacc.c:1646  */
9951     {
9952         parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
9953 
9954         TType type((yyvsp[-3].interm.type));
9955         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
9956         if (initNode)
9957             (yyval.interm.intermTypedNode) = initNode->getAsTyped();
9958         else
9959             (yyval.interm.intermTypedNode) = 0;
9960     }
9961 #line 9962 "glslang_tab.cpp" /* yacc.c:1646  */
9962     break;
9963 
9964   case 553:
9965 #line 3628 "glslang.y" /* yacc.c:1646  */
9966     {
9967         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9968     }
9969 #line 9970 "glslang_tab.cpp" /* yacc.c:1646  */
9970     break;
9971 
9972   case 554:
9973 #line 3632 "glslang.y" /* yacc.c:1646  */
9974     {
9975         parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
9976         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9977     }
9978 #line 9979 "glslang_tab.cpp" /* yacc.c:1646  */
9979     break;
9980 
9981   case 555:
9982 #line 3639 "glslang.y" /* yacc.c:1646  */
9983     {
9984         // start new switch sequence on the switch stack
9985         ++parseContext.controlFlowNestingLevel;
9986         ++parseContext.statementNestingLevel;
9987         parseContext.switchSequenceStack.push_back(new TIntermSequence);
9988         parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
9989         parseContext.symbolTable.push();
9990     }
9991 #line 9992 "glslang_tab.cpp" /* yacc.c:1646  */
9992     break;
9993 
9994   case 556:
9995 #line 3647 "glslang.y" /* yacc.c:1646  */
9996     {
9997         (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
9998         delete parseContext.switchSequenceStack.back();
9999         parseContext.switchSequenceStack.pop_back();
10000         parseContext.switchLevel.pop_back();
10001         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10002         --parseContext.statementNestingLevel;
10003         --parseContext.controlFlowNestingLevel;
10004     }
10005 #line 10006 "glslang_tab.cpp" /* yacc.c:1646  */
10006     break;
10007 
10008   case 557:
10009 #line 3659 "glslang.y" /* yacc.c:1646  */
10010     {
10011         (yyval.interm.intermNode) = 0;
10012     }
10013 #line 10014 "glslang_tab.cpp" /* yacc.c:1646  */
10014     break;
10015 
10016   case 558:
10017 #line 3662 "glslang.y" /* yacc.c:1646  */
10018     {
10019         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10020     }
10021 #line 10022 "glslang_tab.cpp" /* yacc.c:1646  */
10022     break;
10023 
10024   case 559:
10025 #line 3668 "glslang.y" /* yacc.c:1646  */
10026     {
10027         (yyval.interm.intermNode) = 0;
10028         if (parseContext.switchLevel.size() == 0)
10029             parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", "");
10030         else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
10031             parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", "");
10032         else {
10033             parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case");
10034             parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case");
10035             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
10036         }
10037     }
10038 #line 10039 "glslang_tab.cpp" /* yacc.c:1646  */
10039     break;
10040 
10041   case 560:
10042 #line 3680 "glslang.y" /* yacc.c:1646  */
10043     {
10044         (yyval.interm.intermNode) = 0;
10045         if (parseContext.switchLevel.size() == 0)
10046             parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", "");
10047         else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
10048             parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", "");
10049         else
10050             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
10051     }
10052 #line 10053 "glslang_tab.cpp" /* yacc.c:1646  */
10053     break;
10054 
10055   case 561:
10056 #line 3692 "glslang.y" /* yacc.c:1646  */
10057     {
10058         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10059     }
10060 #line 10061 "glslang_tab.cpp" /* yacc.c:1646  */
10061     break;
10062 
10063   case 562:
10064 #line 3696 "glslang.y" /* yacc.c:1646  */
10065     {
10066         parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
10067         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10068     }
10069 #line 10070 "glslang_tab.cpp" /* yacc.c:1646  */
10070     break;
10071 
10072   case 563:
10073 #line 3703 "glslang.y" /* yacc.c:1646  */
10074     {
10075         if (! parseContext.limits.whileLoops)
10076             parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
10077         parseContext.symbolTable.push();
10078         ++parseContext.loopNestingLevel;
10079         ++parseContext.statementNestingLevel;
10080         ++parseContext.controlFlowNestingLevel;
10081     }
10082 #line 10083 "glslang_tab.cpp" /* yacc.c:1646  */
10083     break;
10084 
10085   case 564:
10086 #line 3711 "glslang.y" /* yacc.c:1646  */
10087     {
10088         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10089         (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
10090         --parseContext.loopNestingLevel;
10091         --parseContext.statementNestingLevel;
10092         --parseContext.controlFlowNestingLevel;
10093     }
10094 #line 10095 "glslang_tab.cpp" /* yacc.c:1646  */
10095     break;
10096 
10097   case 565:
10098 #line 3718 "glslang.y" /* yacc.c:1646  */
10099     {
10100         ++parseContext.loopNestingLevel;
10101         ++parseContext.statementNestingLevel;
10102         ++parseContext.controlFlowNestingLevel;
10103     }
10104 #line 10105 "glslang_tab.cpp" /* yacc.c:1646  */
10105     break;
10106 
10107   case 566:
10108 #line 3723 "glslang.y" /* yacc.c:1646  */
10109     {
10110         if (! parseContext.limits.whileLoops)
10111             parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
10112 
10113         parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode));
10114 
10115         (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc);
10116         --parseContext.loopNestingLevel;
10117         --parseContext.statementNestingLevel;
10118         --parseContext.controlFlowNestingLevel;
10119     }
10120 #line 10121 "glslang_tab.cpp" /* yacc.c:1646  */
10121     break;
10122 
10123   case 567:
10124 #line 3734 "glslang.y" /* yacc.c:1646  */
10125     {
10126         parseContext.symbolTable.push();
10127         ++parseContext.loopNestingLevel;
10128         ++parseContext.statementNestingLevel;
10129         ++parseContext.controlFlowNestingLevel;
10130     }
10131 #line 10132 "glslang_tab.cpp" /* yacc.c:1646  */
10132     break;
10133 
10134   case 568:
10135 #line 3740 "glslang.y" /* yacc.c:1646  */
10136     {
10137         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10138         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
10139         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);
10140         if (! parseContext.limits.nonInductiveForLoops)
10141             parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop);
10142         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc);
10143         (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
10144         --parseContext.loopNestingLevel;
10145         --parseContext.statementNestingLevel;
10146         --parseContext.controlFlowNestingLevel;
10147     }
10148 #line 10149 "glslang_tab.cpp" /* yacc.c:1646  */
10149     break;
10150 
10151   case 569:
10152 #line 3755 "glslang.y" /* yacc.c:1646  */
10153     {
10154         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10155     }
10156 #line 10157 "glslang_tab.cpp" /* yacc.c:1646  */
10157     break;
10158 
10159   case 570:
10160 #line 3758 "glslang.y" /* yacc.c:1646  */
10161     {
10162         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10163     }
10164 #line 10165 "glslang_tab.cpp" /* yacc.c:1646  */
10165     break;
10166 
10167   case 571:
10168 #line 3764 "glslang.y" /* yacc.c:1646  */
10169     {
10170         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
10171     }
10172 #line 10173 "glslang_tab.cpp" /* yacc.c:1646  */
10173     break;
10174 
10175   case 572:
10176 #line 3767 "glslang.y" /* yacc.c:1646  */
10177     {
10178         (yyval.interm.intermTypedNode) = 0;
10179     }
10180 #line 10181 "glslang_tab.cpp" /* yacc.c:1646  */
10181     break;
10182 
10183   case 573:
10184 #line 3773 "glslang.y" /* yacc.c:1646  */
10185     {
10186         (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
10187         (yyval.interm.nodePair).node2 = 0;
10188     }
10189 #line 10190 "glslang_tab.cpp" /* yacc.c:1646  */
10190     break;
10191 
10192   case 574:
10193 #line 3777 "glslang.y" /* yacc.c:1646  */
10194     {
10195         (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
10196         (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
10197     }
10198 #line 10199 "glslang_tab.cpp" /* yacc.c:1646  */
10199     break;
10200 
10201   case 575:
10202 #line 3784 "glslang.y" /* yacc.c:1646  */
10203     {
10204         if (parseContext.loopNestingLevel <= 0)
10205             parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
10206         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
10207     }
10208 #line 10209 "glslang_tab.cpp" /* yacc.c:1646  */
10209     break;
10210 
10211   case 576:
10212 #line 3789 "glslang.y" /* yacc.c:1646  */
10213     {
10214         if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
10215             parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
10216         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
10217     }
10218 #line 10219 "glslang_tab.cpp" /* yacc.c:1646  */
10219     break;
10220 
10221   case 577:
10222 #line 3794 "glslang.y" /* yacc.c:1646  */
10223     {
10224         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
10225         if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
10226             parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", "");
10227         if (parseContext.inMain)
10228             parseContext.postEntryPointReturn = true;
10229     }
10230 #line 10231 "glslang_tab.cpp" /* yacc.c:1646  */
10231     break;
10232 
10233   case 578:
10234 #line 3801 "glslang.y" /* yacc.c:1646  */
10235     {
10236         (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
10237     }
10238 #line 10239 "glslang_tab.cpp" /* yacc.c:1646  */
10239     break;
10240 
10241   case 579:
10242 #line 3804 "glslang.y" /* yacc.c:1646  */
10243     {
10244         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
10245         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
10246     }
10247 #line 10248 "glslang_tab.cpp" /* yacc.c:1646  */
10248     break;
10249 
10250   case 580:
10251 #line 3813 "glslang.y" /* yacc.c:1646  */
10252     {
10253         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10254         parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
10255     }
10256 #line 10257 "glslang_tab.cpp" /* yacc.c:1646  */
10257     break;
10258 
10259   case 581:
10260 #line 3817 "glslang.y" /* yacc.c:1646  */
10261     {
10262         if ((yyvsp[0].interm.intermNode) != nullptr) {
10263             (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
10264             parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
10265         }
10266     }
10267 #line 10268 "glslang_tab.cpp" /* yacc.c:1646  */
10268     break;
10269 
10270   case 582:
10271 #line 3826 "glslang.y" /* yacc.c:1646  */
10272     {
10273         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10274     }
10275 #line 10276 "glslang_tab.cpp" /* yacc.c:1646  */
10276     break;
10277 
10278   case 583:
10279 #line 3829 "glslang.y" /* yacc.c:1646  */
10280     {
10281         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10282     }
10283 #line 10284 "glslang_tab.cpp" /* yacc.c:1646  */
10284     break;
10285 
10286   case 584:
10287 #line 3833 "glslang.y" /* yacc.c:1646  */
10288     {
10289         parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
10290         parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
10291         (yyval.interm.intermNode) = nullptr;
10292     }
10293 #line 10294 "glslang_tab.cpp" /* yacc.c:1646  */
10294     break;
10295 
10296   case 585:
10297 #line 3842 "glslang.y" /* yacc.c:1646  */
10298     {
10299         (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
10300         (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
10301     }
10302 #line 10303 "glslang_tab.cpp" /* yacc.c:1646  */
10303     break;
10304 
10305   case 586:
10306 #line 3846 "glslang.y" /* yacc.c:1646  */
10307     {
10308         //   May be best done as post process phase on intermediate code
10309         if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
10310             parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str());
10311         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10312         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode));
10313         parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc);
10314         (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str());
10315 
10316         // store the pragma information for debug and optimize and other vendor specific
10317         // information. This information can be queried from the parse tree
10318         (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize);
10319         (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
10320         (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable);
10321     }
10322 #line 10323 "glslang_tab.cpp" /* yacc.c:1646  */
10323     break;
10324 
10325   case 587:
10326 #line 3865 "glslang.y" /* yacc.c:1646  */
10327     {
10328         (yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
10329         parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute");
10330     }
10331 #line 10332 "glslang_tab.cpp" /* yacc.c:1646  */
10332     break;
10333 
10334   case 588:
10335 #line 3871 "glslang.y" /* yacc.c:1646  */
10336     {
10337         (yyval.interm.attributes) = (yyvsp[0].interm.attributes);
10338     }
10339 #line 10340 "glslang_tab.cpp" /* yacc.c:1646  */
10340     break;
10341 
10342   case 589:
10343 #line 3874 "glslang.y" /* yacc.c:1646  */
10344     {
10345         (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
10346     }
10347 #line 10348 "glslang_tab.cpp" /* yacc.c:1646  */
10348     break;
10349 
10350   case 590:
10351 #line 3879 "glslang.y" /* yacc.c:1646  */
10352     {
10353         (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
10354     }
10355 #line 10356 "glslang_tab.cpp" /* yacc.c:1646  */
10356     break;
10357 
10358   case 591:
10359 #line 3882 "glslang.y" /* yacc.c:1646  */
10360     {
10361         (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
10362     }
10363 #line 10364 "glslang_tab.cpp" /* yacc.c:1646  */
10364     break;
10365 
10366 
10367 #line 10368 "glslang_tab.cpp" /* yacc.c:1646  */
10368       default: break;
10369     }
10370   /* User semantic actions sometimes alter yychar, and that requires
10371      that yytoken be updated with the new translation.  We take the
10372      approach of translating immediately before every use of yytoken.
10373      One alternative is translating here after every semantic action,
10374      but that translation would be missed if the semantic action invokes
10375      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
10376      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
10377      incorrect destructor might then be invoked immediately.  In the
10378      case of YYERROR or YYBACKUP, subsequent parser actions might lead
10379      to an incorrect destructor call or verbose syntax error message
10380      before the lookahead is translated.  */
10381   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
10382 
10383   YYPOPSTACK (yylen);
10384   yylen = 0;
10385   YY_STACK_PRINT (yyss, yyssp);
10386 
10387   *++yyvsp = yyval;
10388 
10389   /* Now 'shift' the result of the reduction.  Determine what state
10390      that goes to, based on the state we popped back to and the rule
10391      number reduced by.  */
10392 
10393   yyn = yyr1[yyn];
10394 
10395   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
10396   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
10397     yystate = yytable[yystate];
10398   else
10399     yystate = yydefgoto[yyn - YYNTOKENS];
10400 
10401   goto yynewstate;
10402 
10403 
10404 /*--------------------------------------.
10405 | yyerrlab -- here on detecting error.  |
10406 `--------------------------------------*/
10407 yyerrlab:
10408   /* Make sure we have latest lookahead translation.  See comments at
10409      user semantic actions for why this is necessary.  */
10410   yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
10411 
10412   /* If not already recovering from an error, report this error.  */
10413   if (!yyerrstatus)
10414     {
10415       ++yynerrs;
10416 #if ! YYERROR_VERBOSE
10417       yyerror (pParseContext, YY_("syntax error"));
10418 #else
10419 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
10420                                         yyssp, yytoken)
10421       {
10422         char const *yymsgp = YY_("syntax error");
10423         int yysyntax_error_status;
10424         yysyntax_error_status = YYSYNTAX_ERROR;
10425         if (yysyntax_error_status == 0)
10426           yymsgp = yymsg;
10427         else if (yysyntax_error_status == 1)
10428           {
10429             if (yymsg != yymsgbuf)
10430               YYSTACK_FREE (yymsg);
10431             yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
10432             if (!yymsg)
10433               {
10434                 yymsg = yymsgbuf;
10435                 yymsg_alloc = sizeof yymsgbuf;
10436                 yysyntax_error_status = 2;
10437               }
10438             else
10439               {
10440                 yysyntax_error_status = YYSYNTAX_ERROR;
10441                 yymsgp = yymsg;
10442               }
10443           }
10444         yyerror (pParseContext, yymsgp);
10445         if (yysyntax_error_status == 2)
10446           goto yyexhaustedlab;
10447       }
10448 # undef YYSYNTAX_ERROR
10449 #endif
10450     }
10451 
10452 
10453 
10454   if (yyerrstatus == 3)
10455     {
10456       /* If just tried and failed to reuse lookahead token after an
10457          error, discard it.  */
10458 
10459       if (yychar <= YYEOF)
10460         {
10461           /* Return failure if at end of input.  */
10462           if (yychar == YYEOF)
10463             YYABORT;
10464         }
10465       else
10466         {
10467           yydestruct ("Error: discarding",
10468                       yytoken, &yylval, pParseContext);
10469           yychar = YYEMPTY;
10470         }
10471     }
10472 
10473   /* Else will try to reuse lookahead token after shifting the error
10474      token.  */
10475   goto yyerrlab1;
10476 
10477 
10478 /*---------------------------------------------------.
10479 | yyerrorlab -- error raised explicitly by YYERROR.  |
10480 `---------------------------------------------------*/
10481 yyerrorlab:
10482 
10483   /* Pacify compilers like GCC when the user code never invokes
10484      YYERROR and the label yyerrorlab therefore never appears in user
10485      code.  */
10486   if (/*CONSTCOND*/ 0)
10487      goto yyerrorlab;
10488 
10489   /* Do not reclaim the symbols of the rule whose action triggered
10490      this YYERROR.  */
10491   YYPOPSTACK (yylen);
10492   yylen = 0;
10493   YY_STACK_PRINT (yyss, yyssp);
10494   yystate = *yyssp;
10495   goto yyerrlab1;
10496 
10497 
10498 /*-------------------------------------------------------------.
10499 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
10500 `-------------------------------------------------------------*/
10501 yyerrlab1:
10502   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
10503 
10504   for (;;)
10505     {
10506       yyn = yypact[yystate];
10507       if (!yypact_value_is_default (yyn))
10508         {
10509           yyn += YYTERROR;
10510           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
10511             {
10512               yyn = yytable[yyn];
10513               if (0 < yyn)
10514                 break;
10515             }
10516         }
10517 
10518       /* Pop the current state because it cannot handle the error token.  */
10519       if (yyssp == yyss)
10520         YYABORT;
10521 
10522 
10523       yydestruct ("Error: popping",
10524                   yystos[yystate], yyvsp, pParseContext);
10525       YYPOPSTACK (1);
10526       yystate = *yyssp;
10527       YY_STACK_PRINT (yyss, yyssp);
10528     }
10529 
10530   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
10531   *++yyvsp = yylval;
10532   YY_IGNORE_MAYBE_UNINITIALIZED_END
10533 
10534 
10535   /* Shift the error token.  */
10536   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
10537 
10538   yystate = yyn;
10539   goto yynewstate;
10540 
10541 
10542 /*-------------------------------------.
10543 | yyacceptlab -- YYACCEPT comes here.  |
10544 `-------------------------------------*/
10545 yyacceptlab:
10546   yyresult = 0;
10547   goto yyreturn;
10548 
10549 /*-----------------------------------.
10550 | yyabortlab -- YYABORT comes here.  |
10551 `-----------------------------------*/
10552 yyabortlab:
10553   yyresult = 1;
10554   goto yyreturn;
10555 
10556 #if !defined yyoverflow || YYERROR_VERBOSE
10557 /*-------------------------------------------------.
10558 | yyexhaustedlab -- memory exhaustion comes here.  |
10559 `-------------------------------------------------*/
10560 yyexhaustedlab:
10561   yyerror (pParseContext, YY_("memory exhausted"));
10562   yyresult = 2;
10563   /* Fall through.  */
10564 #endif
10565 
10566 yyreturn:
10567   if (yychar != YYEMPTY)
10568     {
10569       /* Make sure we have latest lookahead translation.  See comments at
10570          user semantic actions for why this is necessary.  */
10571       yytoken = YYTRANSLATE (yychar);
10572       yydestruct ("Cleanup: discarding lookahead",
10573                   yytoken, &yylval, pParseContext);
10574     }
10575   /* Do not reclaim the symbols of the rule whose action triggered
10576      this YYABORT or YYACCEPT.  */
10577   YYPOPSTACK (yylen);
10578   YY_STACK_PRINT (yyss, yyssp);
10579   while (yyssp != yyss)
10580     {
10581       yydestruct ("Cleanup: popping",
10582                   yystos[*yyssp], yyvsp, pParseContext);
10583       YYPOPSTACK (1);
10584     }
10585 #ifndef yyoverflow
10586   if (yyss != yyssa)
10587     YYSTACK_FREE (yyss);
10588 #endif
10589 #if YYERROR_VERBOSE
10590   if (yymsg != yymsgbuf)
10591     YYSTACK_FREE (yymsg);
10592 #endif
10593   return yyresult;
10594 }
10595 #line 3887 "glslang.y" /* yacc.c:1906  */
10596 
10597 
10598