1 /* A Bison parser, made by GNU Bison 3.0.4. */
2
3 /* Bison implementation for Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34 simplifying the original so-called "semantic" parser. */
35
36 /* All symbols defined below should begin with yy or YY, to avoid
37 infringing on user name space. This should be done even for local
38 variables, as they might otherwise be expanded by user macros.
39 There are some unavoidable exceptions within include files to
40 define necessary library symbols; they are noted "INFRINGES ON
41 USER NAME SPACE" below. */
42
43 /* Identify Bison output. */
44 #define YYBISON 1
45
46 /* Bison version. */
47 #define YYBISON_VERSION "3.0.4"
48
49 /* Skeleton name. */
50 #define YYSKELETON_NAME "yacc.c"
51
52 /* Pure parsers. */
53 #define YYPURE 1
54
55 /* Push parsers. */
56 #define YYPUSH 0
57
58 /* Pull parsers. */
59 #define YYPULL 1
60
61
62
63
64 /* Copy the first part of user declarations. */
65 #line 43 "MachineIndependent/glslang.y" /* yacc.c:339 */
66
67
68 /* Based on:
69 ANSI C Yacc grammar
70
71 In 1985, Jeff Lee published his Yacc grammar (which is accompanied by a
72 matching Lex specification) for the April 30, 1985 draft version of the
73 ANSI C standard. Tom Stockfisch reposted it to net.sources in 1987; that
74 original, as mentioned in the answer to question 17.25 of the comp.lang.c
75 FAQ, can be ftp'ed from ftp.uu.net, file usenet/net.sources/ansi.c.grammar.Z.
76
77 I intend to keep this version as close to the current C Standard grammar as
78 possible; please let me know if you discover discrepancies.
79
80 Jutta Degener, 1995
81 */
82
83 #include "SymbolTable.h"
84 #include "ParseHelper.h"
85 #include "../Public/ShaderLang.h"
86 #include "attribute.h"
87
88 using namespace glslang;
89
90
91 #line 92 "MachineIndependent/glslang_tab.cpp" /* yacc.c:339 */
92
93 # ifndef YY_NULLPTR
94 # if defined __cplusplus && 201103L <= __cplusplus
95 # define YY_NULLPTR nullptr
96 # else
97 # define YY_NULLPTR 0
98 # endif
99 # endif
100
101 /* Enabling verbose error messages. */
102 #ifdef YYERROR_VERBOSE
103 # undef YYERROR_VERBOSE
104 # define YYERROR_VERBOSE 1
105 #else
106 # define YYERROR_VERBOSE 1
107 #endif
108
109 /* In a future release of Bison, this section will be replaced
110 by #include "glslang_tab.cpp.h". */
111 #ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
112 # define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
113 /* Debug traces. */
114 #ifndef YYDEBUG
115 # define YYDEBUG 1
116 #endif
117 #if YYDEBUG
118 extern int yydebug;
119 #endif
120
121 /* Token type. */
122 #ifndef YYTOKENTYPE
123 # define YYTOKENTYPE
124 enum yytokentype
125 {
126 ATTRIBUTE = 258,
127 VARYING = 259,
128 FLOAT16_T = 260,
129 FLOAT = 261,
130 FLOAT32_T = 262,
131 DOUBLE = 263,
132 FLOAT64_T = 264,
133 CONST = 265,
134 BOOL = 266,
135 INT = 267,
136 UINT = 268,
137 INT64_T = 269,
138 UINT64_T = 270,
139 INT32_T = 271,
140 UINT32_T = 272,
141 INT16_T = 273,
142 UINT16_T = 274,
143 INT8_T = 275,
144 UINT8_T = 276,
145 BREAK = 277,
146 CONTINUE = 278,
147 DO = 279,
148 ELSE = 280,
149 FOR = 281,
150 IF = 282,
151 DISCARD = 283,
152 RETURN = 284,
153 SWITCH = 285,
154 CASE = 286,
155 DEFAULT = 287,
156 SUBROUTINE = 288,
157 BVEC2 = 289,
158 BVEC3 = 290,
159 BVEC4 = 291,
160 IVEC2 = 292,
161 IVEC3 = 293,
162 IVEC4 = 294,
163 UVEC2 = 295,
164 UVEC3 = 296,
165 UVEC4 = 297,
166 I64VEC2 = 298,
167 I64VEC3 = 299,
168 I64VEC4 = 300,
169 U64VEC2 = 301,
170 U64VEC3 = 302,
171 U64VEC4 = 303,
172 I32VEC2 = 304,
173 I32VEC3 = 305,
174 I32VEC4 = 306,
175 U32VEC2 = 307,
176 U32VEC3 = 308,
177 U32VEC4 = 309,
178 I16VEC2 = 310,
179 I16VEC3 = 311,
180 I16VEC4 = 312,
181 U16VEC2 = 313,
182 U16VEC3 = 314,
183 U16VEC4 = 315,
184 I8VEC2 = 316,
185 I8VEC3 = 317,
186 I8VEC4 = 318,
187 U8VEC2 = 319,
188 U8VEC3 = 320,
189 U8VEC4 = 321,
190 VEC2 = 322,
191 VEC3 = 323,
192 VEC4 = 324,
193 MAT2 = 325,
194 MAT3 = 326,
195 MAT4 = 327,
196 CENTROID = 328,
197 IN = 329,
198 OUT = 330,
199 INOUT = 331,
200 UNIFORM = 332,
201 PATCH = 333,
202 SAMPLE = 334,
203 BUFFER = 335,
204 SHARED = 336,
205 NONUNIFORM = 337,
206 PAYLOADNV = 338,
207 PAYLOADINNV = 339,
208 HITATTRNV = 340,
209 CALLDATANV = 341,
210 CALLDATAINNV = 342,
211 COHERENT = 343,
212 VOLATILE = 344,
213 RESTRICT = 345,
214 READONLY = 346,
215 WRITEONLY = 347,
216 DEVICECOHERENT = 348,
217 QUEUEFAMILYCOHERENT = 349,
218 WORKGROUPCOHERENT = 350,
219 SUBGROUPCOHERENT = 351,
220 NONPRIVATE = 352,
221 DVEC2 = 353,
222 DVEC3 = 354,
223 DVEC4 = 355,
224 DMAT2 = 356,
225 DMAT3 = 357,
226 DMAT4 = 358,
227 F16VEC2 = 359,
228 F16VEC3 = 360,
229 F16VEC4 = 361,
230 F16MAT2 = 362,
231 F16MAT3 = 363,
232 F16MAT4 = 364,
233 F32VEC2 = 365,
234 F32VEC3 = 366,
235 F32VEC4 = 367,
236 F32MAT2 = 368,
237 F32MAT3 = 369,
238 F32MAT4 = 370,
239 F64VEC2 = 371,
240 F64VEC3 = 372,
241 F64VEC4 = 373,
242 F64MAT2 = 374,
243 F64MAT3 = 375,
244 F64MAT4 = 376,
245 NOPERSPECTIVE = 377,
246 FLAT = 378,
247 SMOOTH = 379,
248 LAYOUT = 380,
249 EXPLICITINTERPAMD = 381,
250 PERVERTEXNV = 382,
251 PERPRIMITIVENV = 383,
252 PERVIEWNV = 384,
253 PERTASKNV = 385,
254 MAT2X2 = 386,
255 MAT2X3 = 387,
256 MAT2X4 = 388,
257 MAT3X2 = 389,
258 MAT3X3 = 390,
259 MAT3X4 = 391,
260 MAT4X2 = 392,
261 MAT4X3 = 393,
262 MAT4X4 = 394,
263 DMAT2X2 = 395,
264 DMAT2X3 = 396,
265 DMAT2X4 = 397,
266 DMAT3X2 = 398,
267 DMAT3X3 = 399,
268 DMAT3X4 = 400,
269 DMAT4X2 = 401,
270 DMAT4X3 = 402,
271 DMAT4X4 = 403,
272 F16MAT2X2 = 404,
273 F16MAT2X3 = 405,
274 F16MAT2X4 = 406,
275 F16MAT3X2 = 407,
276 F16MAT3X3 = 408,
277 F16MAT3X4 = 409,
278 F16MAT4X2 = 410,
279 F16MAT4X3 = 411,
280 F16MAT4X4 = 412,
281 F32MAT2X2 = 413,
282 F32MAT2X3 = 414,
283 F32MAT2X4 = 415,
284 F32MAT3X2 = 416,
285 F32MAT3X3 = 417,
286 F32MAT3X4 = 418,
287 F32MAT4X2 = 419,
288 F32MAT4X3 = 420,
289 F32MAT4X4 = 421,
290 F64MAT2X2 = 422,
291 F64MAT2X3 = 423,
292 F64MAT2X4 = 424,
293 F64MAT3X2 = 425,
294 F64MAT3X3 = 426,
295 F64MAT3X4 = 427,
296 F64MAT4X2 = 428,
297 F64MAT4X3 = 429,
298 F64MAT4X4 = 430,
299 ATOMIC_UINT = 431,
300 ACCSTRUCTNV = 432,
301 FCOOPMATNV = 433,
302 SAMPLER1D = 434,
303 SAMPLER2D = 435,
304 SAMPLER3D = 436,
305 SAMPLERCUBE = 437,
306 SAMPLER1DSHADOW = 438,
307 SAMPLER2DSHADOW = 439,
308 SAMPLERCUBESHADOW = 440,
309 SAMPLER1DARRAY = 441,
310 SAMPLER2DARRAY = 442,
311 SAMPLER1DARRAYSHADOW = 443,
312 SAMPLER2DARRAYSHADOW = 444,
313 ISAMPLER1D = 445,
314 ISAMPLER2D = 446,
315 ISAMPLER3D = 447,
316 ISAMPLERCUBE = 448,
317 ISAMPLER1DARRAY = 449,
318 ISAMPLER2DARRAY = 450,
319 USAMPLER1D = 451,
320 USAMPLER2D = 452,
321 USAMPLER3D = 453,
322 USAMPLERCUBE = 454,
323 USAMPLER1DARRAY = 455,
324 USAMPLER2DARRAY = 456,
325 SAMPLER2DRECT = 457,
326 SAMPLER2DRECTSHADOW = 458,
327 ISAMPLER2DRECT = 459,
328 USAMPLER2DRECT = 460,
329 SAMPLERBUFFER = 461,
330 ISAMPLERBUFFER = 462,
331 USAMPLERBUFFER = 463,
332 SAMPLERCUBEARRAY = 464,
333 SAMPLERCUBEARRAYSHADOW = 465,
334 ISAMPLERCUBEARRAY = 466,
335 USAMPLERCUBEARRAY = 467,
336 SAMPLER2DMS = 468,
337 ISAMPLER2DMS = 469,
338 USAMPLER2DMS = 470,
339 SAMPLER2DMSARRAY = 471,
340 ISAMPLER2DMSARRAY = 472,
341 USAMPLER2DMSARRAY = 473,
342 SAMPLEREXTERNALOES = 474,
343 SAMPLEREXTERNAL2DY2YEXT = 475,
344 F16SAMPLER1D = 476,
345 F16SAMPLER2D = 477,
346 F16SAMPLER3D = 478,
347 F16SAMPLER2DRECT = 479,
348 F16SAMPLERCUBE = 480,
349 F16SAMPLER1DARRAY = 481,
350 F16SAMPLER2DARRAY = 482,
351 F16SAMPLERCUBEARRAY = 483,
352 F16SAMPLERBUFFER = 484,
353 F16SAMPLER2DMS = 485,
354 F16SAMPLER2DMSARRAY = 486,
355 F16SAMPLER1DSHADOW = 487,
356 F16SAMPLER2DSHADOW = 488,
357 F16SAMPLER1DARRAYSHADOW = 489,
358 F16SAMPLER2DARRAYSHADOW = 490,
359 F16SAMPLER2DRECTSHADOW = 491,
360 F16SAMPLERCUBESHADOW = 492,
361 F16SAMPLERCUBEARRAYSHADOW = 493,
362 SAMPLER = 494,
363 SAMPLERSHADOW = 495,
364 TEXTURE1D = 496,
365 TEXTURE2D = 497,
366 TEXTURE3D = 498,
367 TEXTURECUBE = 499,
368 TEXTURE1DARRAY = 500,
369 TEXTURE2DARRAY = 501,
370 ITEXTURE1D = 502,
371 ITEXTURE2D = 503,
372 ITEXTURE3D = 504,
373 ITEXTURECUBE = 505,
374 ITEXTURE1DARRAY = 506,
375 ITEXTURE2DARRAY = 507,
376 UTEXTURE1D = 508,
377 UTEXTURE2D = 509,
378 UTEXTURE3D = 510,
379 UTEXTURECUBE = 511,
380 UTEXTURE1DARRAY = 512,
381 UTEXTURE2DARRAY = 513,
382 TEXTURE2DRECT = 514,
383 ITEXTURE2DRECT = 515,
384 UTEXTURE2DRECT = 516,
385 TEXTUREBUFFER = 517,
386 ITEXTUREBUFFER = 518,
387 UTEXTUREBUFFER = 519,
388 TEXTURECUBEARRAY = 520,
389 ITEXTURECUBEARRAY = 521,
390 UTEXTURECUBEARRAY = 522,
391 TEXTURE2DMS = 523,
392 ITEXTURE2DMS = 524,
393 UTEXTURE2DMS = 525,
394 TEXTURE2DMSARRAY = 526,
395 ITEXTURE2DMSARRAY = 527,
396 UTEXTURE2DMSARRAY = 528,
397 F16TEXTURE1D = 529,
398 F16TEXTURE2D = 530,
399 F16TEXTURE3D = 531,
400 F16TEXTURE2DRECT = 532,
401 F16TEXTURECUBE = 533,
402 F16TEXTURE1DARRAY = 534,
403 F16TEXTURE2DARRAY = 535,
404 F16TEXTURECUBEARRAY = 536,
405 F16TEXTUREBUFFER = 537,
406 F16TEXTURE2DMS = 538,
407 F16TEXTURE2DMSARRAY = 539,
408 SUBPASSINPUT = 540,
409 SUBPASSINPUTMS = 541,
410 ISUBPASSINPUT = 542,
411 ISUBPASSINPUTMS = 543,
412 USUBPASSINPUT = 544,
413 USUBPASSINPUTMS = 545,
414 F16SUBPASSINPUT = 546,
415 F16SUBPASSINPUTMS = 547,
416 IMAGE1D = 548,
417 IIMAGE1D = 549,
418 UIMAGE1D = 550,
419 IMAGE2D = 551,
420 IIMAGE2D = 552,
421 UIMAGE2D = 553,
422 IMAGE3D = 554,
423 IIMAGE3D = 555,
424 UIMAGE3D = 556,
425 IMAGE2DRECT = 557,
426 IIMAGE2DRECT = 558,
427 UIMAGE2DRECT = 559,
428 IMAGECUBE = 560,
429 IIMAGECUBE = 561,
430 UIMAGECUBE = 562,
431 IMAGEBUFFER = 563,
432 IIMAGEBUFFER = 564,
433 UIMAGEBUFFER = 565,
434 IMAGE1DARRAY = 566,
435 IIMAGE1DARRAY = 567,
436 UIMAGE1DARRAY = 568,
437 IMAGE2DARRAY = 569,
438 IIMAGE2DARRAY = 570,
439 UIMAGE2DARRAY = 571,
440 IMAGECUBEARRAY = 572,
441 IIMAGECUBEARRAY = 573,
442 UIMAGECUBEARRAY = 574,
443 IMAGE2DMS = 575,
444 IIMAGE2DMS = 576,
445 UIMAGE2DMS = 577,
446 IMAGE2DMSARRAY = 578,
447 IIMAGE2DMSARRAY = 579,
448 UIMAGE2DMSARRAY = 580,
449 F16IMAGE1D = 581,
450 F16IMAGE2D = 582,
451 F16IMAGE3D = 583,
452 F16IMAGE2DRECT = 584,
453 F16IMAGECUBE = 585,
454 F16IMAGE1DARRAY = 586,
455 F16IMAGE2DARRAY = 587,
456 F16IMAGECUBEARRAY = 588,
457 F16IMAGEBUFFER = 589,
458 F16IMAGE2DMS = 590,
459 F16IMAGE2DMSARRAY = 591,
460 STRUCT = 592,
461 VOID = 593,
462 WHILE = 594,
463 IDENTIFIER = 595,
464 TYPE_NAME = 596,
465 FLOATCONSTANT = 597,
466 DOUBLECONSTANT = 598,
467 INT16CONSTANT = 599,
468 UINT16CONSTANT = 600,
469 INT32CONSTANT = 601,
470 UINT32CONSTANT = 602,
471 INTCONSTANT = 603,
472 UINTCONSTANT = 604,
473 INT64CONSTANT = 605,
474 UINT64CONSTANT = 606,
475 BOOLCONSTANT = 607,
476 FLOAT16CONSTANT = 608,
477 LEFT_OP = 609,
478 RIGHT_OP = 610,
479 INC_OP = 611,
480 DEC_OP = 612,
481 LE_OP = 613,
482 GE_OP = 614,
483 EQ_OP = 615,
484 NE_OP = 616,
485 AND_OP = 617,
486 OR_OP = 618,
487 XOR_OP = 619,
488 MUL_ASSIGN = 620,
489 DIV_ASSIGN = 621,
490 ADD_ASSIGN = 622,
491 MOD_ASSIGN = 623,
492 LEFT_ASSIGN = 624,
493 RIGHT_ASSIGN = 625,
494 AND_ASSIGN = 626,
495 XOR_ASSIGN = 627,
496 OR_ASSIGN = 628,
497 SUB_ASSIGN = 629,
498 LEFT_PAREN = 630,
499 RIGHT_PAREN = 631,
500 LEFT_BRACKET = 632,
501 RIGHT_BRACKET = 633,
502 LEFT_BRACE = 634,
503 RIGHT_BRACE = 635,
504 DOT = 636,
505 COMMA = 637,
506 COLON = 638,
507 EQUAL = 639,
508 SEMICOLON = 640,
509 BANG = 641,
510 DASH = 642,
511 TILDE = 643,
512 PLUS = 644,
513 STAR = 645,
514 SLASH = 646,
515 PERCENT = 647,
516 LEFT_ANGLE = 648,
517 RIGHT_ANGLE = 649,
518 VERTICAL_BAR = 650,
519 CARET = 651,
520 AMPERSAND = 652,
521 QUESTION = 653,
522 INVARIANT = 654,
523 PRECISE = 655,
524 HIGH_PRECISION = 656,
525 MEDIUM_PRECISION = 657,
526 LOW_PRECISION = 658,
527 PRECISION = 659,
528 PACKED = 660,
529 RESOURCE = 661,
530 SUPERP = 662
531 };
532 #endif
533
534 /* Value type. */
535 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
536
537 union YYSTYPE
538 {
539 #line 71 "MachineIndependent/glslang.y" /* yacc.c:355 */
540
541 struct {
542 glslang::TSourceLoc loc;
543 union {
544 glslang::TString *string;
545 int i;
546 unsigned int u;
547 long long i64;
548 unsigned long long u64;
549 bool b;
550 double d;
551 };
552 glslang::TSymbol* symbol;
553 } lex;
554 struct {
555 glslang::TSourceLoc loc;
556 glslang::TOperator op;
557 union {
558 TIntermNode* intermNode;
559 glslang::TIntermNodePair nodePair;
560 glslang::TIntermTyped* intermTypedNode;
561 glslang::TAttributes* attributes;
562 };
563 union {
564 glslang::TPublicType type;
565 glslang::TFunction* function;
566 glslang::TParameter param;
567 glslang::TTypeLoc typeLine;
568 glslang::TTypeList* typeList;
569 glslang::TArraySizes* arraySizes;
570 glslang::TIdentifierList* identifierList;
571 };
572 glslang::TArraySizes* typeParameters;
573 } interm;
574
575 #line 576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355 */
576 };
577
578 typedef union YYSTYPE YYSTYPE;
579 # define YYSTYPE_IS_TRIVIAL 1
580 # define YYSTYPE_IS_DECLARED 1
581 #endif
582
583
584
585 int yyparse (glslang::TParseContext* pParseContext);
586
587 #endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED */
588
589 /* Copy the second part of user declarations. */
590 #line 107 "MachineIndependent/glslang.y" /* yacc.c:358 */
591
592
593 /* windows only pragma */
594 #ifdef _MSC_VER
595 #pragma warning(disable : 4065)
596 #pragma warning(disable : 4127)
597 #pragma warning(disable : 4244)
598 #endif
599
600 #define parseContext (*pParseContext)
601 #define yyerror(context, msg) context->parserError(msg)
602
603 extern int yylex(YYSTYPE*, TParseContext&);
604
605
606 #line 607 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358 */
607
608 #ifdef short
609 # undef short
610 #endif
611
612 #ifdef YYTYPE_UINT8
613 typedef YYTYPE_UINT8 yytype_uint8;
614 #else
615 typedef unsigned char yytype_uint8;
616 #endif
617
618 #ifdef YYTYPE_INT8
619 typedef YYTYPE_INT8 yytype_int8;
620 #else
621 typedef signed char yytype_int8;
622 #endif
623
624 #ifdef YYTYPE_UINT16
625 typedef YYTYPE_UINT16 yytype_uint16;
626 #else
627 typedef unsigned short int yytype_uint16;
628 #endif
629
630 #ifdef YYTYPE_INT16
631 typedef YYTYPE_INT16 yytype_int16;
632 #else
633 typedef short int yytype_int16;
634 #endif
635
636 #ifndef YYSIZE_T
637 # ifdef __SIZE_TYPE__
638 # define YYSIZE_T __SIZE_TYPE__
639 # elif defined size_t
640 # define YYSIZE_T size_t
641 # elif ! defined YYSIZE_T
642 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
643 # define YYSIZE_T size_t
644 # else
645 # define YYSIZE_T unsigned int
646 # endif
647 #endif
648
649 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
650
651 #ifndef YY_
652 # if defined YYENABLE_NLS && YYENABLE_NLS
653 # if ENABLE_NLS
654 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
655 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
656 # endif
657 # endif
658 # ifndef YY_
659 # define YY_(Msgid) Msgid
660 # endif
661 #endif
662
663 #ifndef YY_ATTRIBUTE
664 # if (defined __GNUC__ \
665 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
666 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
667 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
668 # else
669 # define YY_ATTRIBUTE(Spec) /* empty */
670 # endif
671 #endif
672
673 #ifndef YY_ATTRIBUTE_PURE
674 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
675 #endif
676
677 #ifndef YY_ATTRIBUTE_UNUSED
678 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
679 #endif
680
681 #if !defined _Noreturn \
682 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
683 # if defined _MSC_VER && 1200 <= _MSC_VER
684 # define _Noreturn __declspec (noreturn)
685 # else
686 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
687 # endif
688 #endif
689
690 /* Suppress unused-variable warnings by "using" E. */
691 #if ! defined lint || defined __GNUC__
692 # define YYUSE(E) ((void) (E))
693 #else
694 # define YYUSE(E) /* empty */
695 #endif
696
697 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
698 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
699 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
700 _Pragma ("GCC diagnostic push") \
701 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
702 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
703 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
704 _Pragma ("GCC diagnostic pop")
705 #else
706 # define YY_INITIAL_VALUE(Value) Value
707 #endif
708 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
709 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
710 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
711 #endif
712 #ifndef YY_INITIAL_VALUE
713 # define YY_INITIAL_VALUE(Value) /* Nothing. */
714 #endif
715
716
717 #if ! defined yyoverflow || YYERROR_VERBOSE
718
719 /* The parser invokes alloca or malloc; define the necessary symbols. */
720
721 # ifdef YYSTACK_USE_ALLOCA
722 # if YYSTACK_USE_ALLOCA
723 # ifdef __GNUC__
724 # define YYSTACK_ALLOC __builtin_alloca
725 # elif defined __BUILTIN_VA_ARG_INCR
726 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
727 # elif defined _AIX
728 # define YYSTACK_ALLOC __alloca
729 # elif defined _MSC_VER
730 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
731 # define alloca _alloca
732 # else
733 # define YYSTACK_ALLOC alloca
734 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
735 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
736 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
737 # ifndef EXIT_SUCCESS
738 # define EXIT_SUCCESS 0
739 # endif
740 # endif
741 # endif
742 # endif
743 # endif
744
745 # ifdef YYSTACK_ALLOC
746 /* Pacify GCC's 'empty if-body' warning. */
747 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
748 # ifndef YYSTACK_ALLOC_MAXIMUM
749 /* The OS might guarantee only one guard page at the bottom of the stack,
750 and a page size can be as small as 4096 bytes. So we cannot safely
751 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
752 to allow for a few compiler-allocated temporary stack slots. */
753 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
754 # endif
755 # else
756 # define YYSTACK_ALLOC YYMALLOC
757 # define YYSTACK_FREE YYFREE
758 # ifndef YYSTACK_ALLOC_MAXIMUM
759 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
760 # endif
761 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
762 && ! ((defined YYMALLOC || defined malloc) \
763 && (defined YYFREE || defined free)))
764 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
765 # ifndef EXIT_SUCCESS
766 # define EXIT_SUCCESS 0
767 # endif
768 # endif
769 # ifndef YYMALLOC
770 # define YYMALLOC malloc
771 # if ! defined malloc && ! defined EXIT_SUCCESS
772 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
773 # endif
774 # endif
775 # ifndef YYFREE
776 # define YYFREE free
777 # if ! defined free && ! defined EXIT_SUCCESS
778 void free (void *); /* INFRINGES ON USER NAME SPACE */
779 # endif
780 # endif
781 # endif
782 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
783
784
785 #if (! defined yyoverflow \
786 && (! defined __cplusplus \
787 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
788
789 /* A type that is properly aligned for any stack member. */
790 union yyalloc
791 {
792 yytype_int16 yyss_alloc;
793 YYSTYPE yyvs_alloc;
794 };
795
796 /* The size of the maximum gap between one aligned stack and the next. */
797 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
798
799 /* The size of an array large to enough to hold all stacks, each with
800 N elements. */
801 # define YYSTACK_BYTES(N) \
802 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
803 + YYSTACK_GAP_MAXIMUM)
804
805 # define YYCOPY_NEEDED 1
806
807 /* Relocate STACK from its old location to the new one. The
808 local variables YYSIZE and YYSTACKSIZE give the old and new number of
809 elements in the stack, and YYPTR gives the new location of the
810 stack. Advance YYPTR to a properly aligned location for the next
811 stack. */
812 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
813 do \
814 { \
815 YYSIZE_T yynewbytes; \
816 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
817 Stack = &yyptr->Stack_alloc; \
818 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
819 yyptr += yynewbytes / sizeof (*yyptr); \
820 } \
821 while (0)
822
823 #endif
824
825 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
826 /* Copy COUNT objects from SRC to DST. The source and destination do
827 not overlap. */
828 # ifndef YYCOPY
829 # if defined __GNUC__ && 1 < __GNUC__
830 # define YYCOPY(Dst, Src, Count) \
831 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
832 # else
833 # define YYCOPY(Dst, Src, Count) \
834 do \
835 { \
836 YYSIZE_T yyi; \
837 for (yyi = 0; yyi < (Count); yyi++) \
838 (Dst)[yyi] = (Src)[yyi]; \
839 } \
840 while (0)
841 # endif
842 # endif
843 #endif /* !YYCOPY_NEEDED */
844
845 /* YYFINAL -- State number of the termination state. */
846 #define YYFINAL 384
847 /* YYLAST -- Last index in YYTABLE. */
848 #define YYLAST 9348
849
850 /* YYNTOKENS -- Number of terminals. */
851 #define YYNTOKENS 408
852 /* YYNNTS -- Number of nonterminals. */
853 #define YYNNTS 110
854 /* YYNRULES -- Number of rules. */
855 #define YYNRULES 578
856 /* YYNSTATES -- Number of states. */
857 #define YYNSTATES 722
858
859 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
860 by yylex, with out-of-bounds checking. */
861 #define YYUNDEFTOK 2
862 #define YYMAXUTOK 662
863
864 #define YYTRANSLATE(YYX) \
865 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
866
867 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
868 as returned by yylex, without out-of-bounds checking. */
869 static const yytype_uint16 yytranslate[] =
870 {
871 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
872 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
873 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
874 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
875 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
876 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
877 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
878 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
879 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
880 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
881 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
882 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
883 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
884 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
885 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
886 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
887 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
888 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
889 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
890 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
891 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
892 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
893 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
894 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
895 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
896 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
897 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
898 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
899 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
900 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
901 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
902 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
903 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
904 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
905 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
906 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
907 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
908 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
909 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
910 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
911 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
912 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
913 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
914 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
915 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
916 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
917 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
918 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
919 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
920 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
921 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
922 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
923 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
924 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
925 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
926 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
927 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
928 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
929 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
930 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
931 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
932 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
933 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
934 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
935 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
936 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
937 405, 406, 407
938 };
939
940 #if YYDEBUG
941 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
942 static const yytype_uint16 yyrline[] =
943 {
944 0, 302, 302, 308, 311, 315, 319, 322, 326, 330,
945 334, 338, 342, 345, 349, 353, 356, 364, 367, 370,
946 373, 376, 381, 389, 396, 403, 409, 413, 420, 423,
947 429, 436, 446, 454, 459, 486, 494, 500, 504, 508,
948 528, 529, 530, 531, 537, 538, 543, 548, 557, 558,
949 563, 571, 572, 578, 587, 588, 593, 598, 603, 611,
950 612, 621, 633, 634, 643, 644, 653, 654, 663, 664,
951 672, 673, 681, 682, 690, 691, 691, 709, 710, 726,
952 730, 734, 738, 743, 747, 751, 755, 759, 763, 767,
953 774, 777, 788, 795, 800, 805, 813, 817, 821, 825,
954 830, 835, 844, 844, 855, 859, 866, 873, 876, 883,
955 891, 911, 934, 949, 974, 985, 995, 1005, 1015, 1024,
956 1027, 1031, 1035, 1040, 1048, 1053, 1058, 1063, 1068, 1077,
957 1088, 1115, 1124, 1131, 1138, 1149, 1158, 1168, 1180, 1189,
958 1201, 1207, 1210, 1217, 1221, 1225, 1233, 1242, 1245, 1256,
959 1259, 1262, 1266, 1270, 1274, 1278, 1284, 1288, 1300, 1314,
960 1319, 1325, 1331, 1338, 1344, 1349, 1354, 1359, 1369, 1379,
961 1389, 1399, 1408, 1420, 1424, 1429, 1434, 1439, 1444, 1449,
962 1453, 1457, 1461, 1465, 1471, 1480, 1487, 1490, 1498, 1503,
963 1513, 1518, 1526, 1530, 1540, 1543, 1549, 1555, 1562, 1572,
964 1576, 1580, 1585, 1590, 1595, 1600, 1604, 1609, 1614, 1619,
965 1624, 1629, 1634, 1639, 1644, 1649, 1653, 1658, 1663, 1668,
966 1674, 1680, 1686, 1692, 1698, 1704, 1710, 1716, 1722, 1728,
967 1734, 1740, 1745, 1750, 1755, 1760, 1765, 1770, 1776, 1782,
968 1788, 1794, 1800, 1806, 1812, 1818, 1824, 1830, 1836, 1842,
969 1848, 1854, 1860, 1866, 1872, 1878, 1884, 1890, 1896, 1902,
970 1908, 1914, 1920, 1926, 1932, 1937, 1942, 1947, 1952, 1957,
971 1962, 1967, 1972, 1977, 1982, 1987, 1992, 1998, 2004, 2010,
972 2016, 2022, 2028, 2034, 2040, 2046, 2052, 2058, 2064, 2070,
973 2076, 2082, 2088, 2094, 2100, 2106, 2112, 2118, 2124, 2130,
974 2136, 2142, 2148, 2154, 2160, 2166, 2172, 2178, 2184, 2190,
975 2196, 2202, 2208, 2214, 2220, 2226, 2232, 2238, 2244, 2250,
976 2256, 2262, 2268, 2274, 2280, 2286, 2291, 2296, 2301, 2306,
977 2311, 2316, 2321, 2326, 2331, 2336, 2341, 2346, 2351, 2356,
978 2364, 2372, 2380, 2388, 2396, 2404, 2412, 2420, 2428, 2436,
979 2444, 2452, 2460, 2465, 2470, 2475, 2480, 2485, 2490, 2495,
980 2500, 2505, 2510, 2515, 2520, 2525, 2530, 2535, 2540, 2548,
981 2556, 2561, 2566, 2571, 2579, 2584, 2589, 2594, 2602, 2607,
982 2612, 2617, 2625, 2630, 2635, 2640, 2645, 2650, 2658, 2663,
983 2671, 2676, 2684, 2689, 2697, 2702, 2710, 2715, 2723, 2728,
984 2736, 2741, 2746, 2751, 2756, 2761, 2766, 2771, 2776, 2781,
985 2786, 2791, 2796, 2801, 2806, 2811, 2819, 2824, 2829, 2834,
986 2842, 2847, 2852, 2857, 2865, 2870, 2875, 2880, 2888, 2893,
987 2898, 2903, 2911, 2916, 2921, 2926, 2934, 2939, 2944, 2949,
988 2957, 2962, 2967, 2972, 2980, 2985, 2990, 2995, 3003, 3008,
989 3013, 3018, 3026, 3031, 3036, 3041, 3049, 3054, 3059, 3064,
990 3072, 3077, 3082, 3087, 3095, 3100, 3105, 3110, 3118, 3123,
991 3128, 3133, 3141, 3146, 3151, 3157, 3163, 3169, 3175, 3184,
992 3193, 3199, 3205, 3211, 3217, 3223, 3228, 3244, 3249, 3254,
993 3262, 3262, 3273, 3273, 3283, 3286, 3299, 3321, 3348, 3352,
994 3358, 3363, 3374, 3377, 3383, 3392, 3395, 3401, 3405, 3406,
995 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3422, 3423, 3427,
996 3423, 3439, 3440, 3444, 3444, 3451, 3451, 3465, 3468, 3476,
997 3484, 3495, 3496, 3500, 3503, 3509, 3516, 3520, 3528, 3532,
998 3545, 3548, 3554, 3554, 3574, 3577, 3583, 3595, 3607, 3610,
999 3616, 3616, 3631, 3631, 3647, 3647, 3668, 3671, 3677, 3680,
1000 3686, 3690, 3697, 3702, 3707, 3714, 3717, 3726, 3730, 3739,
1001 3742, 3745, 3753, 3753, 3775, 3781, 3784, 3789, 3792
1002 };
1003 #endif
1004
1005 #if YYDEBUG || YYERROR_VERBOSE || 1
1006 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1007 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1008 static const char *const yytname[] =
1009 {
1010 "$end", "error", "$undefined", "ATTRIBUTE", "VARYING", "FLOAT16_T",
1011 "FLOAT", "FLOAT32_T", "DOUBLE", "FLOAT64_T", "CONST", "BOOL", "INT",
1012 "UINT", "INT64_T", "UINT64_T", "INT32_T", "UINT32_T", "INT16_T",
1013 "UINT16_T", "INT8_T", "UINT8_T", "BREAK", "CONTINUE", "DO", "ELSE",
1014 "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT",
1015 "SUBROUTINE", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4",
1016 "UVEC2", "UVEC3", "UVEC4", "I64VEC2", "I64VEC3", "I64VEC4", "U64VEC2",
1017 "U64VEC3", "U64VEC4", "I32VEC2", "I32VEC3", "I32VEC4", "U32VEC2",
1018 "U32VEC3", "U32VEC4", "I16VEC2", "I16VEC3", "I16VEC4", "U16VEC2",
1019 "U16VEC3", "U16VEC4", "I8VEC2", "I8VEC3", "I8VEC4", "U8VEC2", "U8VEC3",
1020 "U8VEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3", "MAT4", "CENTROID",
1021 "IN", "OUT", "INOUT", "UNIFORM", "PATCH", "SAMPLE", "BUFFER", "SHARED",
1022 "NONUNIFORM", "PAYLOADNV", "PAYLOADINNV", "HITATTRNV", "CALLDATANV",
1023 "CALLDATAINNV", "COHERENT", "VOLATILE", "RESTRICT", "READONLY",
1024 "WRITEONLY", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT",
1025 "WORKGROUPCOHERENT", "SUBGROUPCOHERENT", "NONPRIVATE", "DVEC2", "DVEC3",
1026 "DVEC4", "DMAT2", "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4",
1027 "F16MAT2", "F16MAT3", "F16MAT4", "F32VEC2", "F32VEC3", "F32VEC4",
1028 "F32MAT2", "F32MAT3", "F32MAT4", "F64VEC2", "F64VEC3", "F64VEC4",
1029 "F64MAT2", "F64MAT3", "F64MAT4", "NOPERSPECTIVE", "FLAT", "SMOOTH",
1030 "LAYOUT", "EXPLICITINTERPAMD", "PERVERTEXNV", "PERPRIMITIVENV",
1031 "PERVIEWNV", "PERTASKNV", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2",
1032 "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3", "MAT4X4", "DMAT2X2", "DMAT2X3",
1033 "DMAT2X4", "DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3",
1034 "DMAT4X4", "F16MAT2X2", "F16MAT2X3", "F16MAT2X4", "F16MAT3X2",
1035 "F16MAT3X3", "F16MAT3X4", "F16MAT4X2", "F16MAT4X3", "F16MAT4X4",
1036 "F32MAT2X2", "F32MAT2X3", "F32MAT2X4", "F32MAT3X2", "F32MAT3X3",
1037 "F32MAT3X4", "F32MAT4X2", "F32MAT4X3", "F32MAT4X4", "F64MAT2X2",
1038 "F64MAT2X3", "F64MAT2X4", "F64MAT3X2", "F64MAT3X3", "F64MAT3X4",
1039 "F64MAT4X2", "F64MAT4X3", "F64MAT4X4", "ATOMIC_UINT", "ACCSTRUCTNV",
1040 "FCOOPMATNV", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
1041 "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW",
1042 "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW",
1043 "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D",
1044 "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D",
1045 "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY",
1046 "USAMPLER2DARRAY", "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW",
1047 "ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER",
1048 "USAMPLERBUFFER", "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW",
1049 "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY", "SAMPLER2DMS", "ISAMPLER2DMS",
1050 "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY",
1051 "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT",
1052 "F16SAMPLER1D", "F16SAMPLER2D", "F16SAMPLER3D", "F16SAMPLER2DRECT",
1053 "F16SAMPLERCUBE", "F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY",
1054 "F16SAMPLERCUBEARRAY", "F16SAMPLERBUFFER", "F16SAMPLER2DMS",
1055 "F16SAMPLER2DMSARRAY", "F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW",
1056 "F16SAMPLER1DARRAYSHADOW", "F16SAMPLER2DARRAYSHADOW",
1057 "F16SAMPLER2DRECTSHADOW", "F16SAMPLERCUBESHADOW",
1058 "F16SAMPLERCUBEARRAYSHADOW", "SAMPLER", "SAMPLERSHADOW", "TEXTURE1D",
1059 "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE", "TEXTURE1DARRAY",
1060 "TEXTURE2DARRAY", "ITEXTURE1D", "ITEXTURE2D", "ITEXTURE3D",
1061 "ITEXTURECUBE", "ITEXTURE1DARRAY", "ITEXTURE2DARRAY", "UTEXTURE1D",
1062 "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE", "UTEXTURE1DARRAY",
1063 "UTEXTURE2DARRAY", "TEXTURE2DRECT", "ITEXTURE2DRECT", "UTEXTURE2DRECT",
1064 "TEXTUREBUFFER", "ITEXTUREBUFFER", "UTEXTUREBUFFER", "TEXTURECUBEARRAY",
1065 "ITEXTURECUBEARRAY", "UTEXTURECUBEARRAY", "TEXTURE2DMS", "ITEXTURE2DMS",
1066 "UTEXTURE2DMS", "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY",
1067 "UTEXTURE2DMSARRAY", "F16TEXTURE1D", "F16TEXTURE2D", "F16TEXTURE3D",
1068 "F16TEXTURE2DRECT", "F16TEXTURECUBE", "F16TEXTURE1DARRAY",
1069 "F16TEXTURE2DARRAY", "F16TEXTURECUBEARRAY", "F16TEXTUREBUFFER",
1070 "F16TEXTURE2DMS", "F16TEXTURE2DMSARRAY", "SUBPASSINPUT",
1071 "SUBPASSINPUTMS", "ISUBPASSINPUT", "ISUBPASSINPUTMS", "USUBPASSINPUT",
1072 "USUBPASSINPUTMS", "F16SUBPASSINPUT", "F16SUBPASSINPUTMS", "IMAGE1D",
1073 "IIMAGE1D", "UIMAGE1D", "IMAGE2D", "IIMAGE2D", "UIMAGE2D", "IMAGE3D",
1074 "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", "IIMAGE2DRECT", "UIMAGE2DRECT",
1075 "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", "IMAGEBUFFER", "IIMAGEBUFFER",
1076 "UIMAGEBUFFER", "IMAGE1DARRAY", "IIMAGE1DARRAY", "UIMAGE1DARRAY",
1077 "IMAGE2DARRAY", "IIMAGE2DARRAY", "UIMAGE2DARRAY", "IMAGECUBEARRAY",
1078 "IIMAGECUBEARRAY", "UIMAGECUBEARRAY", "IMAGE2DMS", "IIMAGE2DMS",
1079 "UIMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY",
1080 "F16IMAGE1D", "F16IMAGE2D", "F16IMAGE3D", "F16IMAGE2DRECT",
1081 "F16IMAGECUBE", "F16IMAGE1DARRAY", "F16IMAGE2DARRAY",
1082 "F16IMAGECUBEARRAY", "F16IMAGEBUFFER", "F16IMAGE2DMS",
1083 "F16IMAGE2DMSARRAY", "STRUCT", "VOID", "WHILE", "IDENTIFIER",
1084 "TYPE_NAME", "FLOATCONSTANT", "DOUBLECONSTANT", "INT16CONSTANT",
1085 "UINT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT", "INTCONSTANT",
1086 "UINTCONSTANT", "INT64CONSTANT", "UINT64CONSTANT", "BOOLCONSTANT",
1087 "FLOAT16CONSTANT", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
1088 "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
1089 "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
1090 "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN",
1091 "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE",
1092 "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG",
1093 "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT", "LEFT_ANGLE",
1094 "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND", "QUESTION",
1095 "INVARIANT", "PRECISE", "HIGH_PRECISION", "MEDIUM_PRECISION",
1096 "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP", "$accept",
1097 "variable_identifier", "primary_expression", "postfix_expression",
1098 "integer_expression", "function_call", "function_call_or_method",
1099 "function_call_generic", "function_call_header_no_parameters",
1100 "function_call_header_with_parameters", "function_call_header",
1101 "function_identifier", "unary_expression", "unary_operator",
1102 "multiplicative_expression", "additive_expression", "shift_expression",
1103 "relational_expression", "equality_expression", "and_expression",
1104 "exclusive_or_expression", "inclusive_or_expression",
1105 "logical_and_expression", "logical_xor_expression",
1106 "logical_or_expression", "conditional_expression", "$@1",
1107 "assignment_expression", "assignment_operator", "expression",
1108 "constant_expression", "declaration", "block_structure", "$@2",
1109 "identifier_list", "function_prototype", "function_declarator",
1110 "function_header_with_parameters", "function_header",
1111 "parameter_declarator", "parameter_declaration",
1112 "parameter_type_specifier", "init_declarator_list", "single_declaration",
1113 "fully_specified_type", "invariant_qualifier", "interpolation_qualifier",
1114 "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
1115 "precise_qualifier", "type_qualifier", "single_type_qualifier",
1116 "storage_qualifier", "non_uniform_qualifier", "type_name_list",
1117 "type_specifier", "array_specifier", "type_parameter_specifier_opt",
1118 "type_parameter_specifier", "type_parameter_specifier_list",
1119 "type_specifier_nonarray", "precision_qualifier", "struct_specifier",
1120 "$@3", "$@4", "struct_declaration_list", "struct_declaration",
1121 "struct_declarator_list", "struct_declarator", "initializer",
1122 "initializer_list", "declaration_statement", "statement",
1123 "simple_statement", "compound_statement", "$@5", "$@6",
1124 "statement_no_new_scope", "statement_scoped", "$@7", "$@8",
1125 "compound_statement_no_new_scope", "statement_list",
1126 "expression_statement", "selection_statement",
1127 "selection_statement_nonattributed", "selection_rest_statement",
1128 "condition", "switch_statement", "switch_statement_nonattributed", "$@9",
1129 "switch_statement_list", "case_label", "iteration_statement",
1130 "iteration_statement_nonattributed", "$@10", "$@11", "$@12",
1131 "for_init_statement", "conditionopt", "for_rest_statement",
1132 "jump_statement", "translation_unit", "external_declaration",
1133 "function_definition", "$@13", "attribute", "attribute_list",
1134 "single_attribute", YY_NULLPTR
1135 };
1136 #endif
1137
1138 # ifdef YYPRINT
1139 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1140 (internal) symbol number NUM (which must be that of a token). */
1141 static const yytype_uint16 yytoknum[] =
1142 {
1143 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1144 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1145 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1146 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1147 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1148 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1149 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1150 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1151 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1152 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1153 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1154 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1155 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1156 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1157 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1158 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1159 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1160 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1161 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1162 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1163 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1164 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1165 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
1166 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
1167 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
1168 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
1169 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
1170 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
1171 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
1172 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
1173 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
1174 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
1175 575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
1176 585, 586, 587, 588, 589, 590, 591, 592, 593, 594,
1177 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
1178 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
1179 615, 616, 617, 618, 619, 620, 621, 622, 623, 624,
1180 625, 626, 627, 628, 629, 630, 631, 632, 633, 634,
1181 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
1182 645, 646, 647, 648, 649, 650, 651, 652, 653, 654,
1183 655, 656, 657, 658, 659, 660, 661, 662
1184 };
1185 # endif
1186
1187 #define YYPACT_NINF -659
1188
1189 #define yypact_value_is_default(Yystate) \
1190 (!!((Yystate) == (-659)))
1191
1192 #define YYTABLE_NINF -524
1193
1194 #define yytable_value_is_error(Yytable_value) \
1195 0
1196
1197 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1198 STATE-NUM. */
1199 static const yytype_int16 yypact[] =
1200 {
1201 3535, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1202 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1203 -331, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1204 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1205 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1206 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1207 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1208 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1209 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1210 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1211 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1212 -659, -659, -324, -659, -659, -659, -659, -659, -659, -659,
1213 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1214 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1215 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1216 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1217 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1218 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1219 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1220 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1221 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1222 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1223 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1224 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1225 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1226 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1227 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1228 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1229 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1230 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1231 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1232 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1233 -659, -659, -659, -659, -319, -659, -659, -659, -659, -659,
1234 -659, -659, -659, -256, -659, -314, -351, -309, -306, 5942,
1235 -257, -659, -217, -659, -659, -659, -659, 4338, -659, -659,
1236 -659, -659, -241, -659, -659, 721, -659, -659, -204, -71,
1237 -219, -659, 9007, -349, -659, -659, -215, -659, 5942, -659,
1238 -659, -659, 5942, -178, -172, -659, -337, -267, -659, -659,
1239 -659, 8237, -207, -659, -659, -659, -659, -341, -659, -211,
1240 -330, -659, -659, 5942, -210, 6697, -659, -322, 1123, -659,
1241 -659, -659, -659, -207, -328, -659, 7082, -304, -659, -163,
1242 -659, -252, -659, -659, -659, -659, -659, -659, -659, -659,
1243 -659, -659, -659, -659, -659, 8237, 8237, 8237, -659, -659,
1244 -659, -659, -659, -659, -303, -659, -659, -659, -196, -299,
1245 8622, -194, -659, 8237, -659, -659, -355, -195, -659, -157,
1246 8237, -659, -71, 5942, 5942, -155, 4739, -659, -659, -659,
1247 -659, -242, -236, -249, -335, -206, -191, -187, -209, -149,
1248 -150, -333, -162, 7467, -659, -170, -168, -659, -154, -153,
1249 -167, 7852, -152, 8237, -159, -148, -151, -160, -659, -659,
1250 -274, -659, -659, -251, -659, -351, -147, -144, -659, -659,
1251 -659, -659, 1525, -659, -659, -659, -659, -659, -659, -659,
1252 -659, -659, -19, -195, 7082, -302, 7082, -659, -659, 7082,
1253 5942, -659, -115, -659, -659, -659, -292, -659, -659, 8237,
1254 -108, -659, -659, 8237, -143, -659, -659, -659, 8237, -659,
1255 -659, -659, -659, -659, 5140, -155, -207, -250, -659, -659,
1256 -659, 8237, 8237, 8237, 8237, 8237, 8237, 8237, 8237, 8237,
1257 8237, 8237, 8237, 8237, 8237, 8237, 8237, 8237, 8237, 8237,
1258 -659, -659, -659, -142, -659, -659, 1927, -659, 8237, -659,
1259 -659, -245, 8237, -226, -659, -659, -106, -659, 1927, -659,
1260 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1261 8237, 8237, -659, -659, -659, -659, -659, -659, -659, 7082,
1262 -659, -238, -659, 5541, -659, -659, -141, -140, -659, -659,
1263 -659, -659, -244, -195, -155, -659, -659, -659, -659, -242,
1264 -242, -236, -236, -249, -249, -249, -249, -335, -335, -206,
1265 -191, -187, -209, -149, -150, 8237, -659, -104, 3133, -263,
1266 -659, -260, -659, 3937, -136, -297, -659, 1927, -659, -659,
1267 -659, -659, 6312, -659, -659, -659, -659, -224, -135, -659,
1268 -659, 3937, -138, -659, -140, -97, 5942, -132, 8237, -133,
1269 -106, -134, -659, -659, 8237, 8237, -659, -137, -129, 224,
1270 -128, 2731, -659, -127, -131, 2329, -126, -659, -659, -659,
1271 -659, -255, 8237, 2329, -138, -659, -659, 1927, 7082, -659,
1272 -659, -659, -659, -130, -140, -659, -659, 1927, -123, -659,
1273 -659, -659
1274 };
1275
1276 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1277 Performed when YYTABLE does not specify something else to do. Zero
1278 means the default is an error. */
1279 static const yytype_uint16 yydefact[] =
1280 {
1281 0, 157, 158, 202, 200, 203, 201, 204, 156, 215,
1282 205, 206, 213, 214, 211, 212, 209, 210, 207, 208,
1283 183, 231, 232, 233, 234, 235, 236, 249, 250, 251,
1284 246, 247, 248, 261, 262, 263, 243, 244, 245, 258,
1285 259, 260, 240, 241, 242, 255, 256, 257, 237, 238,
1286 239, 252, 253, 254, 216, 217, 218, 264, 265, 266,
1287 162, 160, 161, 159, 165, 163, 164, 166, 172, 185,
1288 168, 169, 167, 170, 171, 173, 179, 180, 181, 182,
1289 174, 175, 176, 177, 178, 219, 220, 221, 276, 277,
1290 278, 222, 223, 224, 288, 289, 290, 225, 226, 227,
1291 300, 301, 302, 228, 229, 230, 312, 313, 314, 134,
1292 133, 132, 0, 135, 136, 137, 138, 139, 267, 268,
1293 269, 270, 271, 272, 273, 274, 275, 279, 280, 281,
1294 282, 283, 284, 285, 286, 287, 291, 292, 293, 294,
1295 295, 296, 297, 298, 299, 303, 304, 305, 306, 307,
1296 308, 309, 310, 311, 315, 316, 317, 318, 319, 320,
1297 321, 322, 323, 325, 324, 484, 326, 327, 328, 329,
1298 330, 331, 332, 333, 334, 335, 336, 352, 353, 354,
1299 355, 356, 357, 359, 360, 361, 362, 363, 364, 366,
1300 367, 370, 371, 372, 374, 375, 337, 338, 358, 365,
1301 376, 378, 379, 380, 382, 383, 474, 475, 339, 340,
1302 341, 368, 342, 346, 347, 350, 373, 377, 381, 343,
1303 344, 348, 349, 369, 345, 351, 384, 385, 386, 388,
1304 390, 392, 394, 396, 400, 401, 402, 403, 404, 405,
1305 407, 408, 409, 410, 411, 412, 414, 416, 417, 418,
1306 420, 421, 398, 406, 413, 422, 424, 425, 426, 428,
1307 429, 387, 389, 391, 415, 393, 395, 397, 399, 419,
1308 423, 427, 476, 477, 480, 481, 482, 483, 478, 479,
1309 430, 432, 433, 434, 436, 437, 438, 440, 441, 442,
1310 444, 445, 446, 448, 449, 450, 452, 453, 454, 456,
1311 457, 458, 460, 461, 462, 464, 465, 466, 468, 469,
1312 470, 472, 473, 431, 435, 439, 443, 447, 455, 459,
1313 463, 451, 467, 471, 0, 199, 486, 571, 131, 146,
1314 487, 488, 489, 0, 570, 0, 572, 0, 108, 107,
1315 0, 119, 124, 153, 152, 150, 154, 0, 147, 149,
1316 155, 129, 195, 151, 485, 0, 567, 569, 0, 0,
1317 0, 492, 0, 0, 96, 93, 0, 106, 0, 115,
1318 109, 117, 0, 118, 0, 94, 125, 0, 99, 148,
1319 130, 0, 188, 194, 1, 568, 186, 0, 145, 143,
1320 0, 141, 490, 0, 0, 0, 97, 0, 0, 573,
1321 110, 114, 116, 112, 120, 111, 0, 126, 102, 0,
1322 100, 0, 2, 12, 13, 10, 11, 4, 5, 6,
1323 7, 8, 9, 15, 14, 0, 0, 0, 42, 41,
1324 43, 40, 3, 17, 36, 19, 24, 25, 0, 0,
1325 29, 0, 197, 0, 35, 33, 0, 189, 184, 0,
1326 0, 140, 0, 0, 0, 0, 0, 494, 95, 190,
1327 44, 48, 51, 54, 59, 62, 64, 66, 68, 70,
1328 72, 74, 0, 0, 98, 0, 0, 552, 0, 0,
1329 0, 0, 0, 0, 0, 0, 0, 518, 527, 531,
1330 44, 77, 90, 0, 507, 0, 155, 129, 510, 529,
1331 509, 508, 0, 511, 512, 533, 513, 540, 514, 515,
1332 548, 516, 0, 113, 0, 121, 0, 502, 128, 0,
1333 0, 104, 0, 101, 37, 38, 0, 21, 22, 0,
1334 0, 27, 26, 0, 199, 30, 32, 39, 0, 196,
1335 187, 92, 144, 142, 0, 0, 500, 0, 498, 493,
1336 495, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1337 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1338 75, 191, 192, 0, 563, 562, 0, 554, 0, 566,
1339 564, 0, 0, 0, 547, 550, 0, 517, 0, 80,
1340 81, 83, 82, 85, 86, 87, 88, 89, 84, 79,
1341 0, 0, 532, 528, 530, 534, 541, 549, 123, 0,
1342 505, 0, 127, 0, 105, 16, 0, 23, 20, 31,
1343 198, 491, 0, 501, 0, 496, 45, 46, 47, 50,
1344 49, 52, 53, 57, 58, 55, 56, 60, 61, 63,
1345 65, 67, 69, 71, 73, 0, 193, 0, 0, 0,
1346 565, 0, 546, 0, 577, 0, 575, 519, 78, 91,
1347 122, 503, 0, 103, 18, 497, 499, 0, 0, 557,
1348 556, 559, 525, 542, 538, 0, 0, 0, 0, 0,
1349 0, 0, 504, 506, 0, 0, 558, 0, 0, 537,
1350 0, 0, 535, 0, 0, 0, 0, 574, 576, 520,
1351 76, 0, 560, 0, 525, 524, 526, 544, 0, 522,
1352 551, 521, 578, 0, 561, 555, 536, 545, 0, 539,
1353 553, 543
1354 };
1355
1356 /* YYPGOTO[NTERM-NUM]. */
1357 static const yytype_int16 yypgoto[] =
1358 {
1359 -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
1360 -659, -659, -364, -659, -389, -385, -457, -384, -310, -307,
1361 -305, -308, -301, -298, -659, -386, -659, -390, -659, -415,
1362 -418, 1, -659, -659, -659, 2, -659, -659, -659, -110,
1363 -105, -107, -659, -659, -628, -659, -659, -659, -659, -188,
1364 -659, -336, -343, -659, 6, -659, 0, -334, -659, -659,
1365 -659, -659, -67, -659, -659, -659, -431, -437, -277, -350,
1366 -501, -659, -375, -488, -658, -414, -659, -659, -428, -426,
1367 -659, -659, -87, -568, -368, -659, -231, -659, -388, -659,
1368 -230, -659, -659, -659, -659, -228, -659, -659, -659, -659,
1369 -659, -659, -659, -659, -70, -659, -659, -659, -659, -394
1370 };
1371
1372 /* YYDEFGOTO[NTERM-NUM]. */
1373 static const yytype_int16 yydefgoto[] =
1374 {
1375 -1, 432, 433, 434, 616, 435, 436, 437, 438, 439,
1376 440, 441, 490, 443, 461, 462, 463, 464, 465, 466,
1377 467, 468, 469, 470, 471, 491, 645, 492, 600, 493,
1378 542, 494, 335, 520, 411, 495, 337, 338, 339, 369,
1379 370, 371, 340, 341, 342, 343, 344, 345, 390, 391,
1380 346, 347, 348, 349, 444, 387, 445, 397, 382, 383,
1381 446, 352, 353, 354, 453, 393, 456, 457, 547, 548,
1382 518, 611, 498, 499, 500, 501, 588, 681, 710, 689,
1383 690, 691, 711, 502, 503, 504, 505, 692, 677, 506,
1384 507, 693, 718, 508, 509, 510, 653, 576, 648, 671,
1385 687, 688, 511, 355, 356, 357, 366, 512, 655, 656
1386 };
1387
1388 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
1389 positive, shift that token. If negative, reduce the rule whose
1390 number is the opposite. If YYTABLE_NINF, syntax error. */
1391 static const yytype_int16 yytable[] =
1392 {
1393 351, 334, 336, 372, 379, 477, 350, 478, 479, 472,
1394 388, 482, 526, 608, 604, 610, 517, 442, 612, 550,
1395 657, 360, 544, 558, 559, 675, 363, 538, 395, 379,
1396 569, 460, 372, 706, 365, 448, 396, 709, 405, 539,
1397 395, 449, 407, 675, 358, 709, 451, 406, 447, 395,
1398 535, 359, 452, 527, 528, 473, 514, 454, 560, 561,
1399 361, 524, 525, 474, 541, 570, 581, 367, 583, 513,
1400 515, 364, -34, 473, 529, 473, 368, 532, 530, 537,
1401 519, 679, 609, 533, 615, 680, 460, 573, 647, 613,
1402 601, 589, 590, 591, 592, 593, 594, 595, 596, 597,
1403 598, 633, 634, 635, 636, 556, 557, 550, 660, 460,
1404 599, 379, 408, 672, 617, 409, 673, 454, 410, 601,
1405 454, 713, 601, 376, 517, 374, 517, 601, 375, 517,
1406 522, 601, 624, 523, 602, 625, 386, 601, 624, 717,
1407 650, 665, 661, 619, 662, 330, 331, 332, 551, 552,
1408 553, 554, 381, 555, 562, 563, 601, 652, 601, 684,
1409 392, 683, 403, 649, 398, 629, 630, 651, 404, 604,
1410 395, 631, 632, 450, 620, 458, 550, 521, 637, 638,
1411 531, 536, 473, 540, 454, 546, 566, 626, 627, 628,
1412 460, 460, 460, 460, 460, 460, 460, 460, 460, 460,
1413 460, 460, 460, 460, 460, 460, 564, 719, 454, 565,
1414 658, 659, 623, 567, 568, 574, 571, 575, 579, 517,
1415 587, 577, 578, 582, 584, 614, 586, 585, -35, 604,
1416 667, -33, 618, -28, 654, 668, 646, 664, 674, 678,
1417 685, -523, 601, 694, 695, 697, 699, 703, 702, 704,
1418 712, 487, 707, 708, 639, 720, 674, 721, 640, 642,
1419 696, 641, 401, 400, 543, 402, 362, 643, 622, 389,
1420 701, 644, 517, 669, 666, 715, 705, 454, 716, 399,
1421 670, 605, 606, 686, 607, 385, 698, 714, 0, 0,
1422 0, 0, 541, 0, 700, 0, 0, 0, 0, 0,
1423 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1424 0, 0, 0, 0, 460, 0, 0, 676, 517, 0,
1425 485, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1426 0, 0, 0, 379, 0, 676, 0, 0, 0, 373,
1427 0, 0, 0, 0, 0, 350, 0, 380, 0, 0,
1428 0, 0, 0, 350, 0, 351, 334, 336, 0, 0,
1429 0, 350, 394, 0, 0, 0, 0, 0, 373, 0,
1430 0, 0, 373, 0, 350, 0, 0, 0, 350, 0,
1431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1432 0, 0, 0, 455, 0, 0, 0, 0, 497, 350,
1433 0, 0, 0, 0, 496, 0, 0, 0, 0, 0,
1434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1437 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1438 0, 0, 0, 455, 545, 0, 455, 0, 0, 350,
1439 350, 0, 350, 0, 0, 0, 0, 0, 0, 0,
1440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1443 0, 0, 497, 0, 0, 0, 0, 0, 496, 0,
1444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1445 455, 0, 0, 0, 0, 0, 350, 0, 0, 0,
1446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1447 0, 0, 0, 0, 455, 0, 0, 0, 0, 0,
1448 350, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1450 0, 0, 0, 0, 0, 0, 497, 0, 0, 0,
1451 0, 0, 496, 0, 0, 0, 0, 0, 497, 0,
1452 0, 0, 0, 0, 496, 0, 0, 0, 0, 0,
1453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1454 0, 0, 0, 455, 0, 0, 0, 0, 0, 350,
1455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1457 0, 0, 0, 0, 0, 0, 0, 0, 497, 0,
1458 0, 0, 0, 497, 496, 0, 0, 497, 0, 496,
1459 0, 0, 0, 496, 0, 0, 0, 0, 0, 0,
1460 0, 497, 0, 0, 0, 0, 380, 496, 0, 0,
1461 0, 0, 350, 0, 0, 0, 0, 0, 0, 0,
1462 0, 497, 0, 0, 0, 497, 0, 496, 0, 0,
1463 0, 496, 0, 497, 0, 0, 0, 497, 0, 496,
1464 0, 0, 0, 496, 0, 0, 0, 497, 0, 0,
1465 0, 384, 0, 496, 1, 2, 3, 4, 5, 6,
1466 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1467 17, 18, 19, 0, 0, 0, 0, 0, 0, 0,
1468 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
1469 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1470 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1471 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1472 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1473 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1474 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1475 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1476 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1477 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1478 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
1479 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1480 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1481 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
1482 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
1483 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
1484 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
1485 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
1486 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
1487 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
1488 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1489 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
1490 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
1491 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
1492 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1493 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
1494 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
1495 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
1496 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
1497 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
1498 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
1499 0, 0, 326, 0, 0, 0, 0, 0, 0, 0,
1500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1503 0, 0, 0, 0, 0, 0, 327, 0, 0, 0,
1504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1505 328, 329, 330, 331, 332, 333, 1, 2, 3, 4,
1506 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1507 15, 16, 17, 18, 19, 475, 476, 477, 0, 478,
1508 479, 480, 481, 482, 483, 484, 20, 21, 22, 23,
1509 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1510 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1511 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1512 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1513 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1514 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1515 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1516 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1517 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1518 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1519 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1520 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
1521 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1522 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
1523 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
1524 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
1525 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
1526 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
1527 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
1528 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
1529 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
1530 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
1531 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
1532 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
1533 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
1534 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
1535 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
1536 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
1537 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
1538 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
1539 324, 325, 485, 412, 326, 413, 414, 415, 416, 417,
1540 418, 419, 420, 421, 422, 423, 424, 0, 0, 425,
1541 426, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1542 0, 0, 0, 0, 0, 0, 0, 0, 427, 0,
1543 486, 0, 487, 488, 0, 0, 0, 0, 489, 428,
1544 429, 430, 431, 0, 0, 0, 0, 0, 0, 0,
1545 0, 0, 328, 329, 330, 331, 332, 333, 1, 2,
1546 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1547 13, 14, 15, 16, 17, 18, 19, 475, 476, 477,
1548 0, 478, 479, 480, 481, 482, 483, 484, 20, 21,
1549 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1550 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1551 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1552 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1553 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1554 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1555 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1556 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1557 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1558 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
1559 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1560 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
1561 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
1562 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
1563 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
1564 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
1565 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1566 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
1567 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
1568 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
1569 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
1570 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
1571 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
1572 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
1573 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
1574 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
1575 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
1576 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
1577 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
1578 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
1579 322, 323, 324, 325, 485, 412, 326, 413, 414, 415,
1580 416, 417, 418, 419, 420, 421, 422, 423, 424, 0,
1581 0, 425, 426, 0, 0, 0, 0, 0, 0, 0,
1582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1583 427, 0, 486, 0, 487, 603, 0, 0, 0, 0,
1584 489, 428, 429, 430, 431, 0, 0, 0, 0, 0,
1585 0, 0, 0, 0, 328, 329, 330, 331, 332, 333,
1586 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
1587 11, 12, 13, 14, 15, 16, 17, 18, 19, 475,
1588 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
1589 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1590 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1591 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1592 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1593 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1594 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1595 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1596 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1597 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1598 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1599 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
1600 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1601 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
1602 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
1603 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
1604 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
1605 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
1606 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
1607 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
1608 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
1609 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
1610 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
1611 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
1612 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
1613 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
1614 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
1615 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
1616 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
1617 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
1618 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
1619 320, 321, 322, 323, 324, 325, 485, 412, 326, 413,
1620 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
1621 424, 0, 0, 425, 426, 0, 0, 0, 0, 0,
1622 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1623 0, 0, 427, 0, 486, 0, 487, 0, 0, 0,
1624 0, 0, 489, 428, 429, 430, 431, 0, 0, 0,
1625 0, 0, 0, 0, 0, 0, 328, 329, 330, 331,
1626 332, 333, 1, 2, 3, 4, 5, 6, 7, 8,
1627 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
1628 19, 475, 476, 477, 0, 478, 479, 480, 481, 482,
1629 483, 484, 20, 21, 22, 23, 24, 25, 26, 27,
1630 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1631 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1632 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1633 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1634 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1635 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1636 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1637 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1638 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1639 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
1640 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1641 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
1642 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
1643 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
1644 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
1645 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
1646 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
1647 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
1648 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
1649 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
1650 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
1651 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
1652 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
1653 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
1654 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
1655 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
1656 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
1657 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
1658 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
1659 318, 319, 320, 321, 322, 323, 324, 325, 485, 412,
1660 326, 413, 414, 415, 416, 417, 418, 419, 420, 421,
1661 422, 423, 424, 0, 0, 425, 426, 0, 0, 0,
1662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1663 0, 0, 0, 0, 427, 0, 486, 0, 398, 0,
1664 0, 0, 0, 0, 489, 428, 429, 430, 431, 0,
1665 0, 0, 0, 0, 0, 0, 0, 0, 328, 329,
1666 330, 331, 332, 333, 1, 2, 3, 4, 5, 6,
1667 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1668 17, 18, 19, 475, 476, 477, 0, 478, 479, 480,
1669 481, 482, 483, 484, 20, 21, 22, 23, 24, 25,
1670 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1671 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1672 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1673 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1674 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1675 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1676 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1677 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1678 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1679 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
1680 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1681 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1682 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
1683 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
1684 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
1685 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
1686 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
1687 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
1688 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
1689 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1690 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
1691 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
1692 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
1693 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1694 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
1695 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
1696 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
1697 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
1698 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
1699 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
1700 485, 412, 326, 413, 414, 415, 416, 417, 418, 419,
1701 420, 421, 422, 423, 424, 0, 0, 425, 426, 0,
1702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1703 0, 0, 0, 0, 0, 0, 427, 0, 486, 0,
1704 0, 0, 0, 0, 0, 0, 489, 428, 429, 430,
1705 431, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1706 328, 329, 330, 331, 332, 333, 1, 2, 3, 4,
1707 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1708 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
1709 0, 0, 0, 0, 0, 0, 20, 21, 22, 23,
1710 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1711 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1712 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1713 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1714 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1715 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1716 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1717 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1718 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1719 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1720 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1721 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
1722 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1723 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
1724 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
1725 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
1726 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
1727 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
1728 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
1729 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
1730 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
1731 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
1732 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
1733 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
1734 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
1735 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
1736 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
1737 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
1738 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
1739 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
1740 324, 325, 0, 412, 326, 413, 414, 415, 416, 417,
1741 418, 419, 420, 421, 422, 423, 424, 0, 0, 425,
1742 426, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 0, 0, 0, 0, 0, 0, 0, 0, 427, 0,
1744 0, 0, 0, 0, 0, 0, 0, 0, 489, 428,
1745 429, 430, 431, 0, 0, 0, 0, 0, 0, 0,
1746 0, 0, 328, 329, 330, 331, 332, 333, 1, 2,
1747 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1748 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
1749 0, 0, 0, 0, 0, 0, 0, 0, 20, 21,
1750 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1751 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1752 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1753 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1754 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1755 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1756 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1757 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1758 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1759 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
1760 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1761 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
1762 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
1763 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
1764 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
1765 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
1766 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1767 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
1768 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
1769 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
1770 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
1771 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
1772 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
1773 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
1774 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
1775 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
1776 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
1777 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
1778 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
1779 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
1780 322, 323, 324, 325, 0, 0, 326, 0, 0, 0,
1781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1785 327, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1786 0, 0, 0, 0, 328, 329, 330, 331, 332, 333,
1787 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
1788 11, 12, 13, 14, 15, 16, 17, 18, 19, 0,
1789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1790 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1791 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1792 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1793 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1794 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1795 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1796 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1797 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1798 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1799 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1800 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
1801 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1802 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
1803 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
1804 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
1805 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
1806 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
1807 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
1808 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
1809 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
1810 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
1811 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
1812 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
1813 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
1814 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
1815 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
1816 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
1817 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
1818 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
1819 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
1820 320, 321, 322, 323, 324, 325, 0, 412, 326, 413,
1821 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
1822 424, 0, 0, 425, 426, 0, 0, 0, 0, 0,
1823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1824 0, 0, 427, 0, 0, 0, 0, 0, 0, 0,
1825 0, 0, 0, 428, 429, 430, 431, 0, 0, 0,
1826 0, 0, 0, 0, 0, 0, 328, 329, 330, 331,
1827 332, 1, 2, 3, 4, 5, 6, 7, 8, 9,
1828 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1830 0, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1831 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1832 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1833 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1834 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1835 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1836 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1837 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1838 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1839 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
1840 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
1841 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1842 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
1843 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
1844 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
1845 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
1846 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
1847 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
1848 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
1849 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
1850 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
1851 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
1852 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
1853 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
1854 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
1855 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
1856 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
1857 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
1858 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
1859 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
1860 319, 320, 321, 322, 323, 324, 325, 0, 377, 326,
1861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1865 0, 0, 0, 378, 0, 0, 0, 0, 0, 0,
1866 0, 0, 0, 0, 0, 0, 0, 328, 329, 330,
1867 331, 332, 1, 2, 3, 4, 5, 6, 7, 8,
1868 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
1869 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1870 0, 0, 20, 21, 22, 23, 24, 25, 26, 27,
1871 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1872 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1873 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1874 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1875 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1876 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1877 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1878 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1879 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1880 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
1881 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1882 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
1883 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
1884 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
1885 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
1886 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
1887 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
1888 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
1889 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
1890 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
1891 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
1892 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
1893 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
1894 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
1895 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
1896 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
1897 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
1898 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
1899 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
1900 318, 319, 320, 321, 322, 323, 324, 325, 0, 0,
1901 326, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1904 0, 0, 0, 0, 0, 0, 0, 0, 0, 549,
1905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1906 0, 0, 0, 0, 0, 0, 0, 0, 328, 329,
1907 330, 331, 332, 1, 2, 3, 4, 5, 6, 7,
1908 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
1909 18, 19, 0, 0, 0, 0, 0, 0, 0, 0,
1910 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
1911 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1912 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1913 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1914 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1915 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1916 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
1917 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1918 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1919 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1920 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
1921 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
1922 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
1923 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
1924 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
1925 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
1926 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
1927 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
1928 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
1929 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
1930 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
1931 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
1932 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
1933 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
1934 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
1935 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
1936 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
1937 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
1938 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
1939 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
1940 317, 318, 319, 320, 321, 322, 323, 324, 325, 0,
1941 0, 326, 0, 0, 0, 0, 0, 0, 0, 0,
1942 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1944 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1945 621, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1946 0, 0, 0, 0, 0, 0, 0, 0, 0, 328,
1947 329, 330, 331, 332, 1, 2, 3, 4, 5, 6,
1948 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1949 17, 18, 19, 0, 0, 0, 0, 0, 0, 0,
1950 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
1951 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1952 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1953 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1954 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1955 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1956 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1957 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1958 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1959 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1960 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
1961 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1962 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1963 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
1964 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
1965 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
1966 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
1967 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
1968 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
1969 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
1970 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1971 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
1972 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
1973 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
1974 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1975 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
1976 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
1977 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
1978 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
1979 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
1980 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
1981 0, 0, 326, 0, 0, 0, 0, 0, 0, 0,
1982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1983 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1984 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1985 0, 663, 0, 0, 0, 0, 0, 0, 0, 0,
1986 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1987 328, 329, 330, 331, 332, 1, 2, 3, 4, 5,
1988 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1989 16, 17, 18, 19, 0, 0, 0, 0, 0, 0,
1990 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
1991 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1992 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1993 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1994 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1995 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1996 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1997 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1998 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1999 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2000 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2001 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2002 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2003 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2004 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2005 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2006 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2007 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2008 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2009 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2010 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2011 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2012 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2013 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2014 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2015 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2016 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2017 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2018 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2019 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2020 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
2021 325, 0, 0, 326, 0, 0, 0, 0, 0, 0,
2022 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2023 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2024 0, 0, 0, 0, 0, 0, 0, 3, 4, 5,
2025 6, 7, 0, 9, 10, 11, 12, 13, 14, 15,
2026 16, 17, 18, 19, 0, 0, 0, 0, 0, 0,
2027 0, 328, 329, 330, 331, 332, 21, 22, 23, 24,
2028 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2029 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2030 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2031 55, 56, 57, 58, 59, 0, 0, 0, 0, 0,
2032 0, 0, 0, 0, 69, 0, 0, 0, 0, 0,
2033 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2034 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2035 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2036 105, 106, 107, 108, 0, 0, 0, 0, 0, 0,
2037 0, 0, 0, 118, 119, 120, 121, 122, 123, 124,
2038 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2039 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2040 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2041 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2042 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2043 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2044 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2045 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2046 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2047 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2048 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2049 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2050 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2051 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2052 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2053 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2054 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2055 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2056 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2057 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
2058 325, 0, 412, 326, 413, 414, 415, 416, 417, 418,
2059 419, 420, 421, 422, 423, 424, 0, 0, 425, 426,
2060 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2061 0, 0, 0, 0, 0, 0, 0, 427, 0, 0,
2062 0, 516, 682, 0, 0, 0, 0, 0, 428, 429,
2063 430, 431, 3, 4, 5, 6, 7, 0, 9, 10,
2064 11, 12, 13, 14, 15, 16, 17, 18, 19, 0,
2065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2066 0, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2067 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2068 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2069 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2070 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,
2071 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2072 0, 0, 0, 0, 0, 85, 86, 87, 88, 89,
2073 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
2074 100, 101, 102, 103, 104, 105, 106, 107, 108, 0,
2075 0, 0, 0, 0, 0, 0, 0, 0, 118, 119,
2076 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2077 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2078 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2079 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2080 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2081 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2082 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
2083 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
2084 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
2085 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
2086 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
2087 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
2088 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
2089 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
2090 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
2091 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
2092 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
2093 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
2094 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
2095 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
2096 320, 321, 322, 323, 324, 325, 0, 412, 326, 413,
2097 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
2098 424, 0, 0, 425, 426, 0, 0, 0, 0, 0,
2099 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2100 0, 0, 427, 0, 0, 459, 0, 0, 0, 0,
2101 0, 0, 0, 428, 429, 430, 431, 3, 4, 5,
2102 6, 7, 0, 9, 10, 11, 12, 13, 14, 15,
2103 16, 17, 18, 19, 0, 0, 0, 0, 0, 0,
2104 0, 0, 0, 0, 0, 0, 21, 22, 23, 24,
2105 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2106 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2107 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2108 55, 56, 57, 58, 59, 0, 0, 0, 0, 0,
2109 0, 0, 0, 0, 69, 0, 0, 0, 0, 0,
2110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2111 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2112 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2113 105, 106, 107, 108, 0, 0, 0, 0, 0, 0,
2114 0, 0, 0, 118, 119, 120, 121, 122, 123, 124,
2115 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2116 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2117 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2118 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2119 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2120 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2121 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2122 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2123 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2124 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2125 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2126 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2127 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2128 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2129 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2130 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2131 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2132 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2133 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2134 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
2135 325, 0, 412, 326, 413, 414, 415, 416, 417, 418,
2136 419, 420, 421, 422, 423, 424, 0, 0, 425, 426,
2137 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2138 0, 0, 0, 0, 0, 0, 0, 427, 0, 0,
2139 0, 516, 0, 0, 0, 0, 0, 0, 428, 429,
2140 430, 431, 3, 4, 5, 6, 7, 0, 9, 10,
2141 11, 12, 13, 14, 15, 16, 17, 18, 19, 0,
2142 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2143 0, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2144 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2145 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2146 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2147 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,
2148 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2149 0, 0, 0, 0, 0, 85, 86, 87, 88, 89,
2150 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
2151 100, 101, 102, 103, 104, 105, 106, 107, 108, 0,
2152 0, 0, 0, 0, 0, 0, 0, 0, 118, 119,
2153 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2154 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2155 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2156 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2157 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2158 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2159 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
2160 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
2161 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
2162 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
2163 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
2164 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
2165 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
2166 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
2167 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
2168 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
2169 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
2170 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
2171 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
2172 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
2173 320, 321, 322, 323, 324, 325, 0, 412, 326, 413,
2174 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
2175 424, 0, 0, 425, 426, 0, 0, 0, 0, 0,
2176 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2177 0, 0, 427, 0, 0, 572, 0, 0, 0, 0,
2178 0, 0, 0, 428, 429, 430, 431, 3, 4, 5,
2179 6, 7, 0, 9, 10, 11, 12, 13, 14, 15,
2180 16, 17, 18, 19, 0, 0, 0, 0, 0, 0,
2181 0, 0, 0, 0, 0, 0, 21, 22, 23, 24,
2182 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2183 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2184 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2185 55, 56, 57, 58, 59, 0, 0, 0, 0, 0,
2186 0, 0, 0, 0, 69, 0, 0, 0, 0, 0,
2187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2188 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2189 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2190 105, 106, 107, 108, 0, 0, 0, 0, 0, 0,
2191 0, 0, 0, 118, 119, 120, 121, 122, 123, 124,
2192 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2193 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2194 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2195 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2196 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2197 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2198 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2199 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2200 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2201 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2202 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2203 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2204 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2205 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2206 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2207 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2208 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2209 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2210 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2211 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
2212 325, 0, 412, 326, 413, 414, 415, 416, 417, 418,
2213 419, 420, 421, 422, 423, 424, 0, 0, 425, 426,
2214 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2215 0, 0, 0, 0, 0, 0, 0, 427, 0, 0,
2216 0, 0, 0, 0, 0, 0, 0, 580, 428, 429,
2217 430, 431, 3, 4, 5, 6, 7, 0, 9, 10,
2218 11, 12, 13, 14, 15, 16, 17, 18, 19, 0,
2219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2220 0, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2221 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2222 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2223 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2224 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,
2225 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2226 0, 0, 0, 0, 0, 85, 86, 87, 88, 89,
2227 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
2228 100, 101, 102, 103, 104, 105, 106, 107, 108, 0,
2229 0, 0, 0, 0, 0, 0, 0, 0, 118, 119,
2230 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2231 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2232 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2233 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2234 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2235 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2236 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
2237 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
2238 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
2239 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
2240 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
2241 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
2242 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
2243 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
2244 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
2245 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
2246 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
2247 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
2248 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
2249 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
2250 320, 321, 322, 323, 324, 325, 0, 412, 326, 413,
2251 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
2252 424, 0, 0, 425, 426, 0, 0, 0, 0, 0,
2253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2254 0, 0, 427, 0, 0, 0, 0, 0, 0, 0,
2255 0, 0, 0, 428, 429, 430, 431, 3, 4, 5,
2256 6, 7, 0, 9, 10, 11, 12, 13, 14, 15,
2257 16, 17, 18, 19, 0, 0, 0, 0, 0, 0,
2258 0, 0, 0, 0, 0, 0, 21, 22, 23, 24,
2259 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2260 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2261 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2262 55, 56, 57, 58, 59, 0, 0, 0, 0, 0,
2263 0, 0, 0, 0, 69, 0, 0, 0, 0, 0,
2264 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2265 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2266 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2267 105, 106, 107, 108, 0, 0, 0, 0, 0, 0,
2268 0, 0, 0, 118, 119, 120, 121, 122, 123, 124,
2269 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2270 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2271 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2272 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2273 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2274 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2275 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2276 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2277 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2278 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2279 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2280 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2281 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2282 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2283 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2284 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2285 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2286 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2287 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2288 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
2289 534, 0, 412, 326, 413, 414, 415, 416, 417, 418,
2290 419, 420, 421, 422, 423, 424, 0, 0, 425, 426,
2291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2292 0, 0, 0, 0, 0, 0, 0, 427, 0, 0,
2293 0, 0, 0, 0, 0, 0, 0, 0, 428, 429,
2294 430, 431, 3, 4, 5, 6, 7, 0, 9, 10,
2295 11, 12, 13, 14, 15, 16, 17, 18, 19, 0,
2296 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2297 0, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2298 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2299 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2300 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2302 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2303 0, 0, 0, 0, 0, 85, 86, 87, 88, 89,
2304 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
2305 100, 101, 102, 103, 104, 105, 106, 107, 108, 0,
2306 0, 0, 0, 0, 0, 0, 0, 0, 118, 119,
2307 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2308 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2309 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2310 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2311 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2312 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2313 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
2314 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
2315 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
2316 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
2317 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
2318 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
2319 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
2320 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
2321 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
2322 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
2323 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
2324 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
2325 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
2326 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
2327 320, 321, 322, 323, 324, 325, 0, 0, 326
2328 };
2329
2330 static const yytype_int16 yycheck[] =
2331 {
2332 0, 0, 0, 339, 347, 24, 0, 26, 27, 395,
2333 81, 30, 427, 514, 502, 516, 406, 381, 519, 456,
2334 588, 340, 453, 358, 359, 653, 340, 382, 377, 372,
2335 363, 395, 368, 691, 385, 376, 385, 695, 375, 394,
2336 377, 382, 376, 671, 375, 703, 376, 384, 382, 377,
2337 440, 375, 382, 356, 357, 377, 384, 393, 393, 394,
2338 379, 425, 426, 385, 450, 398, 481, 376, 483, 403,
2339 404, 385, 375, 377, 377, 377, 382, 376, 381, 443,
2340 384, 378, 384, 382, 376, 382, 450, 473, 576, 520,
2341 382, 365, 366, 367, 368, 369, 370, 371, 372, 373,
2342 374, 558, 559, 560, 561, 354, 355, 544, 609, 473,
2343 384, 454, 379, 376, 529, 382, 376, 453, 385, 382,
2344 456, 376, 382, 340, 514, 382, 516, 382, 385, 519,
2345 382, 382, 382, 385, 385, 385, 340, 382, 382, 707,
2346 385, 385, 380, 533, 382, 401, 402, 403, 390, 391,
2347 392, 387, 393, 389, 360, 361, 382, 383, 382, 383,
2348 379, 662, 340, 578, 379, 554, 555, 582, 340, 657,
2349 377, 556, 557, 384, 538, 385, 613, 340, 562, 563,
2350 376, 375, 377, 340, 520, 340, 395, 551, 552, 553,
2351 554, 555, 556, 557, 558, 559, 560, 561, 562, 563,
2352 564, 565, 566, 567, 568, 569, 397, 708, 544, 396,
2353 600, 601, 546, 362, 364, 385, 378, 385, 385, 609,
2354 380, 375, 375, 375, 383, 340, 377, 375, 375, 717,
2355 645, 375, 340, 376, 340, 339, 378, 378, 653, 375,
2356 375, 379, 382, 340, 376, 378, 380, 376, 385, 25,
2357 376, 379, 379, 384, 564, 385, 671, 380, 565, 567,
2358 678, 566, 372, 368, 452, 372, 333, 568, 545, 340,
2359 685, 569, 662, 648, 624, 703, 690, 613, 704, 366,
2360 648, 512, 512, 671, 512, 355, 680, 702, -1, -1,
2361 -1, -1, 678, -1, 684, -1, -1, -1, -1, -1,
2362 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2363 -1, -1, -1, -1, 678, -1, -1, 653, 708, -1,
2364 339, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2365 -1, -1, -1, 676, -1, 671, -1, -1, -1, 339,
2366 -1, -1, -1, -1, -1, 339, -1, 347, -1, -1,
2367 -1, -1, -1, 347, -1, 355, 355, 355, -1, -1,
2368 -1, 355, 362, -1, -1, -1, -1, -1, 368, -1,
2369 -1, -1, 372, -1, 368, -1, -1, -1, 372, -1,
2370 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2371 -1, -1, -1, 393, -1, -1, -1, -1, 398, 393,
2372 -1, -1, -1, -1, 398, -1, -1, -1, -1, -1,
2373 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2374 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2375 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2376 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2377 -1, -1, -1, 453, 454, -1, 456, -1, -1, 453,
2378 454, -1, 456, -1, -1, -1, -1, -1, -1, -1,
2379 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2380 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2381 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2382 -1, -1, 502, -1, -1, -1, -1, -1, 502, -1,
2383 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2384 520, -1, -1, -1, -1, -1, 520, -1, -1, -1,
2385 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2386 -1, -1, -1, -1, 544, -1, -1, -1, -1, -1,
2387 544, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2388 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2389 -1, -1, -1, -1, -1, -1, 576, -1, -1, -1,
2390 -1, -1, 576, -1, -1, -1, -1, -1, 588, -1,
2391 -1, -1, -1, -1, 588, -1, -1, -1, -1, -1,
2392 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2393 -1, -1, -1, 613, -1, -1, -1, -1, -1, 613,
2394 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2395 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2396 -1, -1, -1, -1, -1, -1, -1, -1, 648, -1,
2397 -1, -1, -1, 653, 648, -1, -1, 657, -1, 653,
2398 -1, -1, -1, 657, -1, -1, -1, -1, -1, -1,
2399 -1, 671, -1, -1, -1, -1, 676, 671, -1, -1,
2400 -1, -1, 676, -1, -1, -1, -1, -1, -1, -1,
2401 -1, 691, -1, -1, -1, 695, -1, 691, -1, -1,
2402 -1, 695, -1, 703, -1, -1, -1, 707, -1, 703,
2403 -1, -1, -1, 707, -1, -1, -1, 717, -1, -1,
2404 -1, 0, -1, 717, 3, 4, 5, 6, 7, 8,
2405 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2406 19, 20, 21, -1, -1, -1, -1, -1, -1, -1,
2407 -1, -1, -1, -1, 33, 34, 35, 36, 37, 38,
2408 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
2409 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
2410 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
2411 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
2412 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
2413 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
2414 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2415 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2416 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
2417 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2418 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2419 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2420 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2421 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2422 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
2423 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
2424 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
2425 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
2426 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
2427 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
2428 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
2429 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
2430 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
2431 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
2432 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
2433 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
2434 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
2435 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
2436 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
2437 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
2438 -1, -1, 341, -1, -1, -1, -1, -1, -1, -1,
2439 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2440 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2441 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2442 -1, -1, -1, -1, -1, -1, 385, -1, -1, -1,
2443 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2444 399, 400, 401, 402, 403, 404, 3, 4, 5, 6,
2445 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
2446 17, 18, 19, 20, 21, 22, 23, 24, -1, 26,
2447 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
2448 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
2449 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2450 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
2451 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
2452 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
2453 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
2454 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
2455 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2456 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2457 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2458 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2459 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2460 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2461 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2462 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
2463 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
2464 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
2465 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
2466 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
2467 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
2468 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
2469 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
2470 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
2471 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
2472 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
2473 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
2474 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
2475 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
2476 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
2477 327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
2478 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
2479 347, 348, 349, 350, 351, 352, 353, -1, -1, 356,
2480 357, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2481 -1, -1, -1, -1, -1, -1, -1, -1, 375, -1,
2482 377, -1, 379, 380, -1, -1, -1, -1, 385, 386,
2483 387, 388, 389, -1, -1, -1, -1, -1, -1, -1,
2484 -1, -1, 399, 400, 401, 402, 403, 404, 3, 4,
2485 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2486 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2487 -1, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2488 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2489 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2490 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2491 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2492 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2493 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2494 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2495 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2496 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2497 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2498 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2499 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2500 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2501 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2502 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2503 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2504 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2505 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2506 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2507 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2508 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2509 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2510 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2511 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2512 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2513 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2514 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2515 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2516 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
2517 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
2518 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
2519 345, 346, 347, 348, 349, 350, 351, 352, 353, -1,
2520 -1, 356, 357, -1, -1, -1, -1, -1, -1, -1,
2521 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2522 375, -1, 377, -1, 379, 380, -1, -1, -1, -1,
2523 385, 386, 387, 388, 389, -1, -1, -1, -1, -1,
2524 -1, -1, -1, -1, 399, 400, 401, 402, 403, 404,
2525 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
2526 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
2527 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
2528 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
2529 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2530 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2531 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
2532 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2533 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
2534 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
2535 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2536 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2537 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2538 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2539 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2540 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2541 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2542 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2543 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
2544 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
2545 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
2546 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
2547 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
2548 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
2549 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
2550 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
2551 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
2552 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
2553 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
2554 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
2555 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
2556 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
2557 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
2558 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
2559 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
2560 353, -1, -1, 356, 357, -1, -1, -1, -1, -1,
2561 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2562 -1, -1, 375, -1, 377, -1, 379, -1, -1, -1,
2563 -1, -1, 385, 386, 387, 388, 389, -1, -1, -1,
2564 -1, -1, -1, -1, -1, -1, 399, 400, 401, 402,
2565 403, 404, 3, 4, 5, 6, 7, 8, 9, 10,
2566 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2567 21, 22, 23, 24, -1, 26, 27, 28, 29, 30,
2568 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2569 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2570 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
2571 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
2572 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
2573 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
2574 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
2575 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2576 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2577 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2578 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2579 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2580 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2581 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2582 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
2583 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
2584 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
2585 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
2586 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
2587 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
2588 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
2589 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
2590 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
2591 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
2592 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
2593 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
2594 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
2595 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
2596 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
2597 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
2598 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
2599 341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
2600 351, 352, 353, -1, -1, 356, 357, -1, -1, -1,
2601 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2602 -1, -1, -1, -1, 375, -1, 377, -1, 379, -1,
2603 -1, -1, -1, -1, 385, 386, 387, 388, 389, -1,
2604 -1, -1, -1, -1, -1, -1, -1, -1, 399, 400,
2605 401, 402, 403, 404, 3, 4, 5, 6, 7, 8,
2606 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2607 19, 20, 21, 22, 23, 24, -1, 26, 27, 28,
2608 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2609 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
2610 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
2611 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
2612 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
2613 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
2614 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
2615 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2616 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2617 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
2618 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2619 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2620 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2621 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2622 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2623 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
2624 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
2625 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
2626 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
2627 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
2628 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
2629 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
2630 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
2631 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
2632 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
2633 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
2634 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
2635 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
2636 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
2637 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
2638 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
2639 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
2640 349, 350, 351, 352, 353, -1, -1, 356, 357, -1,
2641 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2642 -1, -1, -1, -1, -1, -1, 375, -1, 377, -1,
2643 -1, -1, -1, -1, -1, -1, 385, 386, 387, 388,
2644 389, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2645 399, 400, 401, 402, 403, 404, 3, 4, 5, 6,
2646 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
2647 17, 18, 19, 20, 21, -1, -1, -1, -1, -1,
2648 -1, -1, -1, -1, -1, -1, 33, 34, 35, 36,
2649 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
2650 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2651 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
2652 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
2653 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
2654 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
2655 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
2656 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2657 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2658 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2659 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2660 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2661 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2662 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2663 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
2664 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
2665 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
2666 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
2667 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
2668 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
2669 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
2670 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
2671 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
2672 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
2673 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
2674 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
2675 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
2676 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
2677 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
2678 327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
2679 337, 338, -1, 340, 341, 342, 343, 344, 345, 346,
2680 347, 348, 349, 350, 351, 352, 353, -1, -1, 356,
2681 357, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2682 -1, -1, -1, -1, -1, -1, -1, -1, 375, -1,
2683 -1, -1, -1, -1, -1, -1, -1, -1, 385, 386,
2684 387, 388, 389, -1, -1, -1, -1, -1, -1, -1,
2685 -1, -1, 399, 400, 401, 402, 403, 404, 3, 4,
2686 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2687 15, 16, 17, 18, 19, 20, 21, -1, -1, -1,
2688 -1, -1, -1, -1, -1, -1, -1, -1, 33, 34,
2689 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2690 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2691 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2692 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2693 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2694 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2695 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2696 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2697 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2698 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2699 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2700 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2701 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2702 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2703 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2704 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2705 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2706 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2707 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2708 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2709 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2710 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2711 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2712 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2713 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2714 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2715 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2716 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2717 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
2718 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
2719 335, 336, 337, 338, -1, -1, 341, -1, -1, -1,
2720 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2721 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2722 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2723 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2724 385, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2725 -1, -1, -1, -1, 399, 400, 401, 402, 403, 404,
2726 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
2727 13, 14, 15, 16, 17, 18, 19, 20, 21, -1,
2728 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2729 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
2730 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2731 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2732 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
2733 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2734 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
2735 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
2736 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2737 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2738 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2739 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2740 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2741 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2742 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2743 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2744 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
2745 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
2746 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
2747 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
2748 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
2749 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
2750 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
2751 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
2752 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
2753 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
2754 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
2755 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
2756 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
2757 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
2758 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
2759 333, 334, 335, 336, 337, 338, -1, 340, 341, 342,
2760 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
2761 353, -1, -1, 356, 357, -1, -1, -1, -1, -1,
2762 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2763 -1, -1, 375, -1, -1, -1, -1, -1, -1, -1,
2764 -1, -1, -1, 386, 387, 388, 389, -1, -1, -1,
2765 -1, -1, -1, -1, -1, -1, 399, 400, 401, 402,
2766 403, 3, 4, 5, 6, 7, 8, 9, 10, 11,
2767 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
2768 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2769 -1, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2770 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2771 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
2772 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2773 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2774 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
2775 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
2776 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2777 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2778 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2779 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2780 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2781 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2782 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2783 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2784 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
2785 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
2786 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
2787 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
2788 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
2789 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
2790 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
2791 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
2792 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
2793 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
2794 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
2795 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
2796 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
2797 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
2798 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
2799 332, 333, 334, 335, 336, 337, 338, -1, 340, 341,
2800 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2801 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2802 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2803 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2804 -1, -1, -1, 385, -1, -1, -1, -1, -1, -1,
2805 -1, -1, -1, -1, -1, -1, -1, 399, 400, 401,
2806 402, 403, 3, 4, 5, 6, 7, 8, 9, 10,
2807 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2808 21, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2809 -1, -1, 33, 34, 35, 36, 37, 38, 39, 40,
2810 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2811 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
2812 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
2813 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
2814 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
2815 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
2816 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2817 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2818 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2819 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2820 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2821 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2822 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2823 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
2824 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
2825 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
2826 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
2827 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
2828 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
2829 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
2830 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
2831 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
2832 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
2833 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
2834 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
2835 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
2836 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
2837 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
2838 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
2839 331, 332, 333, 334, 335, 336, 337, 338, -1, -1,
2840 341, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2841 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2842 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2843 -1, -1, -1, -1, -1, -1, -1, -1, -1, 380,
2844 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2845 -1, -1, -1, -1, -1, -1, -1, -1, 399, 400,
2846 401, 402, 403, 3, 4, 5, 6, 7, 8, 9,
2847 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2848 20, 21, -1, -1, -1, -1, -1, -1, -1, -1,
2849 -1, -1, -1, 33, 34, 35, 36, 37, 38, 39,
2850 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2851 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2852 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2853 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2854 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2855 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
2856 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2857 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2858 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2859 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2860 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2861 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2862 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2863 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2864 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
2865 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
2866 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
2867 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
2868 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
2869 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
2870 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
2871 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
2872 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
2873 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
2874 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
2875 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
2876 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
2877 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
2878 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
2879 330, 331, 332, 333, 334, 335, 336, 337, 338, -1,
2880 -1, 341, -1, -1, -1, -1, -1, -1, -1, -1,
2881 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2882 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2883 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2884 380, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2885 -1, -1, -1, -1, -1, -1, -1, -1, -1, 399,
2886 400, 401, 402, 403, 3, 4, 5, 6, 7, 8,
2887 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2888 19, 20, 21, -1, -1, -1, -1, -1, -1, -1,
2889 -1, -1, -1, -1, 33, 34, 35, 36, 37, 38,
2890 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
2891 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
2892 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
2893 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
2894 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
2895 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
2896 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2897 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2898 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
2899 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2900 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2901 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2902 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2903 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2904 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
2905 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
2906 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
2907 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
2908 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
2909 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
2910 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
2911 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
2912 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
2913 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
2914 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
2915 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
2916 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
2917 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
2918 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
2919 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
2920 -1, -1, 341, -1, -1, -1, -1, -1, -1, -1,
2921 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2922 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2923 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2924 -1, 380, -1, -1, -1, -1, -1, -1, -1, -1,
2925 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2926 399, 400, 401, 402, 403, 3, 4, 5, 6, 7,
2927 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
2928 18, 19, 20, 21, -1, -1, -1, -1, -1, -1,
2929 -1, -1, -1, -1, -1, 33, 34, 35, 36, 37,
2930 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2931 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2932 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
2933 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2934 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
2935 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
2936 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
2937 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2938 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
2939 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2940 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2941 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2942 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2943 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2944 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2945 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
2946 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
2947 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
2948 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
2949 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
2950 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
2951 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
2952 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
2953 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
2954 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
2955 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
2956 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
2957 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
2958 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
2959 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
2960 338, -1, -1, 341, -1, -1, -1, -1, -1, -1,
2961 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2962 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2963 -1, -1, -1, -1, -1, -1, -1, 5, 6, 7,
2964 8, 9, -1, 11, 12, 13, 14, 15, 16, 17,
2965 18, 19, 20, 21, -1, -1, -1, -1, -1, -1,
2966 -1, 399, 400, 401, 402, 403, 34, 35, 36, 37,
2967 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2968 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2969 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
2970 68, 69, 70, 71, 72, -1, -1, -1, -1, -1,
2971 -1, -1, -1, -1, 82, -1, -1, -1, -1, -1,
2972 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2973 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
2974 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2975 118, 119, 120, 121, -1, -1, -1, -1, -1, -1,
2976 -1, -1, -1, 131, 132, 133, 134, 135, 136, 137,
2977 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2978 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2979 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2980 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2981 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2982 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
2983 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
2984 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
2985 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
2986 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
2987 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
2988 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
2989 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
2990 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
2991 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
2992 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
2993 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
2994 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
2995 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
2996 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
2997 338, -1, 340, 341, 342, 343, 344, 345, 346, 347,
2998 348, 349, 350, 351, 352, 353, -1, -1, 356, 357,
2999 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3000 -1, -1, -1, -1, -1, -1, -1, 375, -1, -1,
3001 -1, 379, 380, -1, -1, -1, -1, -1, 386, 387,
3002 388, 389, 5, 6, 7, 8, 9, -1, 11, 12,
3003 13, 14, 15, 16, 17, 18, 19, 20, 21, -1,
3004 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3005 -1, 34, 35, 36, 37, 38, 39, 40, 41, 42,
3006 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3007 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3008 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3009 -1, -1, -1, -1, -1, -1, -1, -1, -1, 82,
3010 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3011 -1, -1, -1, -1, -1, 98, 99, 100, 101, 102,
3012 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
3013 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
3014 -1, -1, -1, -1, -1, -1, -1, -1, 131, 132,
3015 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3016 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
3017 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
3018 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
3019 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
3020 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
3021 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
3022 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
3023 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
3024 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
3025 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
3026 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
3027 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
3028 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
3029 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
3030 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
3031 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
3032 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
3033 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
3034 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
3035 333, 334, 335, 336, 337, 338, -1, 340, 341, 342,
3036 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
3037 353, -1, -1, 356, 357, -1, -1, -1, -1, -1,
3038 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3039 -1, -1, 375, -1, -1, 378, -1, -1, -1, -1,
3040 -1, -1, -1, 386, 387, 388, 389, 5, 6, 7,
3041 8, 9, -1, 11, 12, 13, 14, 15, 16, 17,
3042 18, 19, 20, 21, -1, -1, -1, -1, -1, -1,
3043 -1, -1, -1, -1, -1, -1, 34, 35, 36, 37,
3044 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
3045 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3046 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
3047 68, 69, 70, 71, 72, -1, -1, -1, -1, -1,
3048 -1, -1, -1, -1, 82, -1, -1, -1, -1, -1,
3049 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3050 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
3051 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
3052 118, 119, 120, 121, -1, -1, -1, -1, -1, -1,
3053 -1, -1, -1, 131, 132, 133, 134, 135, 136, 137,
3054 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3055 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
3056 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
3057 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
3058 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3059 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
3060 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
3061 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
3062 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
3063 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
3064 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
3065 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
3066 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
3067 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
3068 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
3069 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
3070 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
3071 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
3072 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
3073 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
3074 338, -1, 340, 341, 342, 343, 344, 345, 346, 347,
3075 348, 349, 350, 351, 352, 353, -1, -1, 356, 357,
3076 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3077 -1, -1, -1, -1, -1, -1, -1, 375, -1, -1,
3078 -1, 379, -1, -1, -1, -1, -1, -1, 386, 387,
3079 388, 389, 5, 6, 7, 8, 9, -1, 11, 12,
3080 13, 14, 15, 16, 17, 18, 19, 20, 21, -1,
3081 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3082 -1, 34, 35, 36, 37, 38, 39, 40, 41, 42,
3083 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3084 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3085 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3086 -1, -1, -1, -1, -1, -1, -1, -1, -1, 82,
3087 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3088 -1, -1, -1, -1, -1, 98, 99, 100, 101, 102,
3089 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
3090 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
3091 -1, -1, -1, -1, -1, -1, -1, -1, 131, 132,
3092 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3093 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
3094 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
3095 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
3096 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
3097 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
3098 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
3099 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
3100 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
3101 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
3102 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
3103 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
3104 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
3105 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
3106 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
3107 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
3108 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
3109 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
3110 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
3111 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
3112 333, 334, 335, 336, 337, 338, -1, 340, 341, 342,
3113 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
3114 353, -1, -1, 356, 357, -1, -1, -1, -1, -1,
3115 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3116 -1, -1, 375, -1, -1, 378, -1, -1, -1, -1,
3117 -1, -1, -1, 386, 387, 388, 389, 5, 6, 7,
3118 8, 9, -1, 11, 12, 13, 14, 15, 16, 17,
3119 18, 19, 20, 21, -1, -1, -1, -1, -1, -1,
3120 -1, -1, -1, -1, -1, -1, 34, 35, 36, 37,
3121 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
3122 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3123 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
3124 68, 69, 70, 71, 72, -1, -1, -1, -1, -1,
3125 -1, -1, -1, -1, 82, -1, -1, -1, -1, -1,
3126 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3127 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
3128 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
3129 118, 119, 120, 121, -1, -1, -1, -1, -1, -1,
3130 -1, -1, -1, 131, 132, 133, 134, 135, 136, 137,
3131 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3132 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
3133 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
3134 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
3135 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3136 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
3137 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
3138 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
3139 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
3140 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
3141 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
3142 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
3143 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
3144 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
3145 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
3146 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
3147 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
3148 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
3149 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
3150 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
3151 338, -1, 340, 341, 342, 343, 344, 345, 346, 347,
3152 348, 349, 350, 351, 352, 353, -1, -1, 356, 357,
3153 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3154 -1, -1, -1, -1, -1, -1, -1, 375, -1, -1,
3155 -1, -1, -1, -1, -1, -1, -1, 385, 386, 387,
3156 388, 389, 5, 6, 7, 8, 9, -1, 11, 12,
3157 13, 14, 15, 16, 17, 18, 19, 20, 21, -1,
3158 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3159 -1, 34, 35, 36, 37, 38, 39, 40, 41, 42,
3160 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3161 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3162 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3163 -1, -1, -1, -1, -1, -1, -1, -1, -1, 82,
3164 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3165 -1, -1, -1, -1, -1, 98, 99, 100, 101, 102,
3166 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
3167 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
3168 -1, -1, -1, -1, -1, -1, -1, -1, 131, 132,
3169 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3170 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
3171 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
3172 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
3173 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
3174 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
3175 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
3176 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
3177 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
3178 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
3179 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
3180 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
3181 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
3182 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
3183 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
3184 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
3185 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
3186 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
3187 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
3188 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
3189 333, 334, 335, 336, 337, 338, -1, 340, 341, 342,
3190 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
3191 353, -1, -1, 356, 357, -1, -1, -1, -1, -1,
3192 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3193 -1, -1, 375, -1, -1, -1, -1, -1, -1, -1,
3194 -1, -1, -1, 386, 387, 388, 389, 5, 6, 7,
3195 8, 9, -1, 11, 12, 13, 14, 15, 16, 17,
3196 18, 19, 20, 21, -1, -1, -1, -1, -1, -1,
3197 -1, -1, -1, -1, -1, -1, 34, 35, 36, 37,
3198 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
3199 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3200 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
3201 68, 69, 70, 71, 72, -1, -1, -1, -1, -1,
3202 -1, -1, -1, -1, 82, -1, -1, -1, -1, -1,
3203 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3204 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
3205 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
3206 118, 119, 120, 121, -1, -1, -1, -1, -1, -1,
3207 -1, -1, -1, 131, 132, 133, 134, 135, 136, 137,
3208 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3209 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
3210 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
3211 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
3212 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3213 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
3214 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
3215 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
3216 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
3217 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
3218 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
3219 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
3220 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
3221 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
3222 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
3223 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
3224 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
3225 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
3226 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
3227 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
3228 338, -1, 340, 341, 342, 343, 344, 345, 346, 347,
3229 348, 349, 350, 351, 352, 353, -1, -1, 356, 357,
3230 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3231 -1, -1, -1, -1, -1, -1, -1, 375, -1, -1,
3232 -1, -1, -1, -1, -1, -1, -1, -1, 386, 387,
3233 388, 389, 5, 6, 7, 8, 9, -1, 11, 12,
3234 13, 14, 15, 16, 17, 18, 19, 20, 21, -1,
3235 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3236 -1, 34, 35, 36, 37, 38, 39, 40, 41, 42,
3237 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3238 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3239 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3240 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3241 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3242 -1, -1, -1, -1, -1, 98, 99, 100, 101, 102,
3243 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
3244 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
3245 -1, -1, -1, -1, -1, -1, -1, -1, 131, 132,
3246 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3247 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
3248 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
3249 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
3250 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
3251 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
3252 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
3253 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
3254 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
3255 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
3256 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
3257 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
3258 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
3259 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
3260 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
3261 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
3262 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
3263 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
3264 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
3265 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
3266 333, 334, 335, 336, 337, 338, -1, -1, 341
3267 };
3268
3269 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
3270 symbol of state STATE-NUM. */
3271 static const yytype_uint16 yystos[] =
3272 {
3273 0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3274 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3275 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
3276 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3277 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3278 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3279 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3280 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3281 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
3282 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
3283 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
3284 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
3285 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3286 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
3287 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
3288 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
3289 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
3290 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
3291 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
3292 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
3293 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
3294 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
3295 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
3296 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
3297 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
3298 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
3299 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
3300 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
3301 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
3302 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
3303 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
3304 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
3305 333, 334, 335, 336, 337, 338, 341, 385, 399, 400,
3306 401, 402, 403, 404, 439, 440, 443, 444, 445, 446,
3307 450, 451, 452, 453, 454, 455, 458, 459, 460, 461,
3308 462, 464, 469, 470, 471, 511, 512, 513, 375, 375,
3309 340, 379, 470, 340, 385, 385, 514, 376, 382, 447,
3310 448, 449, 459, 464, 382, 385, 340, 340, 385, 460,
3311 464, 393, 466, 467, 0, 512, 340, 463, 81, 340,
3312 456, 457, 379, 473, 464, 377, 385, 465, 379, 490,
3313 448, 447, 449, 340, 340, 375, 384, 465, 379, 382,
3314 385, 442, 340, 342, 343, 344, 345, 346, 347, 348,
3315 349, 350, 351, 352, 353, 356, 357, 375, 386, 387,
3316 388, 389, 409, 410, 411, 413, 414, 415, 416, 417,
3317 418, 419, 420, 421, 462, 464, 468, 465, 376, 382,
3318 384, 376, 382, 472, 459, 464, 474, 475, 385, 378,
3319 420, 422, 423, 424, 425, 426, 427, 428, 429, 430,
3320 431, 432, 433, 377, 385, 22, 23, 24, 26, 27,
3321 28, 29, 30, 31, 32, 339, 377, 379, 380, 385,
3322 420, 433, 435, 437, 439, 443, 462, 464, 480, 481,
3323 482, 483, 491, 492, 493, 494, 497, 498, 501, 502,
3324 503, 510, 515, 465, 384, 465, 379, 435, 478, 384,
3325 441, 340, 382, 385, 420, 420, 437, 356, 357, 377,
3326 381, 376, 376, 382, 338, 435, 375, 420, 382, 394,
3327 340, 433, 438, 457, 474, 464, 340, 476, 477, 380,
3328 475, 390, 391, 392, 387, 389, 354, 355, 358, 359,
3329 393, 394, 360, 361, 397, 396, 395, 362, 364, 363,
3330 398, 378, 378, 433, 385, 385, 505, 375, 375, 385,
3331 385, 437, 375, 437, 383, 375, 377, 380, 484, 365,
3332 366, 367, 368, 369, 370, 371, 372, 373, 374, 384,
3333 436, 382, 385, 380, 481, 494, 498, 503, 478, 384,
3334 478, 479, 478, 474, 340, 376, 412, 437, 340, 435,
3335 420, 380, 476, 465, 382, 385, 420, 420, 420, 422,
3336 422, 423, 423, 424, 424, 424, 424, 425, 425, 426,
3337 427, 428, 429, 430, 431, 434, 378, 481, 506, 437,
3338 385, 437, 383, 504, 340, 516, 517, 491, 435, 435,
3339 478, 380, 382, 380, 378, 385, 477, 437, 339, 480,
3340 492, 507, 376, 376, 437, 452, 459, 496, 375, 378,
3341 382, 485, 380, 478, 383, 375, 496, 508, 509, 487,
3342 488, 489, 495, 499, 340, 376, 438, 378, 517, 380,
3343 435, 437, 385, 376, 25, 483, 482, 379, 384, 482,
3344 486, 490, 376, 376, 437, 486, 487, 491, 500, 478,
3345 385, 380
3346 };
3347
3348 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
3349 static const yytype_uint16 yyr1[] =
3350 {
3351 0, 408, 409, 410, 410, 410, 410, 410, 410, 410,
3352 410, 410, 410, 410, 410, 410, 410, 411, 411, 411,
3353 411, 411, 411, 412, 413, 414, 415, 415, 416, 416,
3354 417, 417, 418, 419, 419, 419, 420, 420, 420, 420,
3355 421, 421, 421, 421, 422, 422, 422, 422, 423, 423,
3356 423, 424, 424, 424, 425, 425, 425, 425, 425, 426,
3357 426, 426, 427, 427, 428, 428, 429, 429, 430, 430,
3358 431, 431, 432, 432, 433, 434, 433, 435, 435, 436,
3359 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
3360 437, 437, 438, 439, 439, 439, 439, 439, 439, 439,
3361 439, 439, 441, 440, 442, 442, 443, 444, 444, 445,
3362 445, 446, 447, 447, 448, 448, 448, 448, 449, 450,
3363 450, 450, 450, 450, 451, 451, 451, 451, 451, 452,
3364 452, 453, 454, 454, 454, 454, 454, 454, 454, 454,
3365 455, 456, 456, 457, 457, 457, 458, 459, 459, 460,
3366 460, 460, 460, 460, 460, 460, 461, 461, 461, 461,
3367 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
3368 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
3369 461, 461, 461, 461, 461, 462, 463, 463, 464, 464,
3370 465, 465, 465, 465, 466, 466, 467, 468, 468, 469,
3371 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3372 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3373 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3374 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3375 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3376 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3377 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3378 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3379 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3380 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3381 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3382 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3383 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3384 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3385 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3386 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3387 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3388 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3389 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3390 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3391 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3392 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3393 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3394 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3395 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3396 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3397 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3398 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
3399 469, 469, 469, 469, 469, 469, 469, 470, 470, 470,
3400 472, 471, 473, 471, 474, 474, 475, 475, 476, 476,
3401 477, 477, 478, 478, 478, 479, 479, 480, 481, 481,
3402 482, 482, 482, 482, 482, 482, 482, 483, 484, 485,
3403 483, 486, 486, 488, 487, 489, 487, 490, 490, 491,
3404 491, 492, 492, 493, 493, 494, 495, 495, 496, 496,
3405 497, 497, 499, 498, 500, 500, 501, 501, 502, 502,
3406 504, 503, 505, 503, 506, 503, 507, 507, 508, 508,
3407 509, 509, 510, 510, 510, 510, 510, 511, 511, 512,
3408 512, 512, 514, 513, 515, 516, 516, 517, 517
3409 };
3410
3411 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
3412 static const yytype_uint8 yyr2[] =
3413 {
3414 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
3415 1, 1, 1, 1, 1, 1, 3, 1, 4, 1,
3416 3, 2, 2, 1, 1, 1, 2, 2, 2, 1,
3417 2, 3, 2, 1, 1, 1, 1, 2, 2, 2,
3418 1, 1, 1, 1, 1, 3, 3, 3, 1, 3,
3419 3, 1, 3, 3, 1, 3, 3, 3, 3, 1,
3420 3, 3, 1, 3, 1, 3, 1, 3, 1, 3,
3421 1, 3, 1, 3, 1, 0, 6, 1, 3, 1,
3422 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3423 1, 3, 1, 2, 2, 4, 2, 3, 4, 2,
3424 3, 4, 0, 6, 2, 3, 2, 1, 1, 2,
3425 3, 3, 2, 3, 2, 1, 2, 1, 1, 1,
3426 3, 4, 6, 5, 1, 2, 3, 5, 4, 1,
3427 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3428 4, 1, 3, 1, 3, 1, 1, 1, 2, 1,
3429 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3430 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3431 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3432 1, 1, 1, 1, 4, 1, 1, 3, 2, 3,
3433 2, 3, 3, 4, 1, 0, 3, 1, 3, 1,
3434 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3435 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3436 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3437 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3438 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3439 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3440 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3441 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3442 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3443 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3444 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3445 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3446 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3447 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3448 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3449 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3450 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3451 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3452 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3453 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3454 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3455 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3456 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3457 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3458 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3459 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3460 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3461 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3462 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3463 0, 6, 0, 5, 1, 2, 3, 4, 1, 3,
3464 1, 2, 1, 3, 4, 1, 3, 1, 1, 1,
3465 1, 1, 1, 1, 1, 1, 1, 2, 0, 0,
3466 5, 1, 1, 0, 2, 0, 2, 2, 3, 1,
3467 2, 1, 2, 1, 2, 5, 3, 1, 1, 4,
3468 1, 2, 0, 8, 0, 1, 3, 2, 1, 2,
3469 0, 6, 0, 8, 0, 7, 1, 1, 1, 0,
3470 2, 3, 2, 2, 2, 3, 2, 1, 2, 1,
3471 1, 1, 0, 3, 5, 1, 3, 1, 4
3472 };
3473
3474
3475 #define yyerrok (yyerrstatus = 0)
3476 #define yyclearin (yychar = YYEMPTY)
3477 #define YYEMPTY (-2)
3478 #define YYEOF 0
3479
3480 #define YYACCEPT goto yyacceptlab
3481 #define YYABORT goto yyabortlab
3482 #define YYERROR goto yyerrorlab
3483
3484
3485 #define YYRECOVERING() (!!yyerrstatus)
3486
3487 #define YYBACKUP(Token, Value) \
3488 do \
3489 if (yychar == YYEMPTY) \
3490 { \
3491 yychar = (Token); \
3492 yylval = (Value); \
3493 YYPOPSTACK (yylen); \
3494 yystate = *yyssp; \
3495 goto yybackup; \
3496 } \
3497 else \
3498 { \
3499 yyerror (pParseContext, YY_("syntax error: cannot back up")); \
3500 YYERROR; \
3501 } \
3502 while (0)
3503
3504 /* Error token number */
3505 #define YYTERROR 1
3506 #define YYERRCODE 256
3507
3508
3509
3510 /* Enable debugging if requested. */
3511 #if YYDEBUG
3512
3513 # ifndef YYFPRINTF
3514 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3515 # define YYFPRINTF fprintf
3516 # endif
3517
3518 # define YYDPRINTF(Args) \
3519 do { \
3520 if (yydebug) \
3521 YYFPRINTF Args; \
3522 } while (0)
3523
3524 /* This macro is provided for backward compatibility. */
3525 #ifndef YY_LOCATION_PRINT
3526 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3527 #endif
3528
3529
3530 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
3531 do { \
3532 if (yydebug) \
3533 { \
3534 YYFPRINTF (stderr, "%s ", Title); \
3535 yy_symbol_print (stderr, \
3536 Type, Value, pParseContext); \
3537 YYFPRINTF (stderr, "\n"); \
3538 } \
3539 } while (0)
3540
3541
3542 /*----------------------------------------.
3543 | Print this symbol's value on YYOUTPUT. |
3544 `----------------------------------------*/
3545
3546 static void
yy_symbol_value_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep,glslang::TParseContext * pParseContext)3547 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
3548 {
3549 FILE *yyo = yyoutput;
3550 YYUSE (yyo);
3551 YYUSE (pParseContext);
3552 if (!yyvaluep)
3553 return;
3554 # ifdef YYPRINT
3555 if (yytype < YYNTOKENS)
3556 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3557 # endif
3558 YYUSE (yytype);
3559 }
3560
3561
3562 /*--------------------------------.
3563 | Print this symbol on YYOUTPUT. |
3564 `--------------------------------*/
3565
3566 static void
yy_symbol_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep,glslang::TParseContext * pParseContext)3567 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
3568 {
3569 YYFPRINTF (yyoutput, "%s %s (",
3570 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
3571
3572 yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext);
3573 YYFPRINTF (yyoutput, ")");
3574 }
3575
3576 /*------------------------------------------------------------------.
3577 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
3578 | TOP (included). |
3579 `------------------------------------------------------------------*/
3580
3581 static void
yy_stack_print(yytype_int16 * yybottom,yytype_int16 * yytop)3582 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
3583 {
3584 YYFPRINTF (stderr, "Stack now");
3585 for (; yybottom <= yytop; yybottom++)
3586 {
3587 int yybot = *yybottom;
3588 YYFPRINTF (stderr, " %d", yybot);
3589 }
3590 YYFPRINTF (stderr, "\n");
3591 }
3592
3593 # define YY_STACK_PRINT(Bottom, Top) \
3594 do { \
3595 if (yydebug) \
3596 yy_stack_print ((Bottom), (Top)); \
3597 } while (0)
3598
3599
3600 /*------------------------------------------------.
3601 | Report that the YYRULE is going to be reduced. |
3602 `------------------------------------------------*/
3603
3604 static void
yy_reduce_print(yytype_int16 * yyssp,YYSTYPE * yyvsp,int yyrule,glslang::TParseContext * pParseContext)3605 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext)
3606 {
3607 unsigned long int yylno = yyrline[yyrule];
3608 int yynrhs = yyr2[yyrule];
3609 int yyi;
3610 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3611 yyrule - 1, yylno);
3612 /* The symbols being reduced. */
3613 for (yyi = 0; yyi < yynrhs; yyi++)
3614 {
3615 YYFPRINTF (stderr, " $%d = ", yyi + 1);
3616 yy_symbol_print (stderr,
3617 yystos[yyssp[yyi + 1 - yynrhs]],
3618 &(yyvsp[(yyi + 1) - (yynrhs)])
3619 , pParseContext);
3620 YYFPRINTF (stderr, "\n");
3621 }
3622 }
3623
3624 # define YY_REDUCE_PRINT(Rule) \
3625 do { \
3626 if (yydebug) \
3627 yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \
3628 } while (0)
3629
3630 /* Nonzero means print parse trace. It is left uninitialized so that
3631 multiple parsers can coexist. */
3632 int yydebug;
3633 #else /* !YYDEBUG */
3634 # define YYDPRINTF(Args)
3635 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3636 # define YY_STACK_PRINT(Bottom, Top)
3637 # define YY_REDUCE_PRINT(Rule)
3638 #endif /* !YYDEBUG */
3639
3640
3641 /* YYINITDEPTH -- initial size of the parser's stacks. */
3642 #ifndef YYINITDEPTH
3643 # define YYINITDEPTH 200
3644 #endif
3645
3646 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3647 if the built-in stack extension method is used).
3648
3649 Do not make this value too large; the results are undefined if
3650 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3651 evaluated with infinite-precision integer arithmetic. */
3652
3653 #ifndef YYMAXDEPTH
3654 # define YYMAXDEPTH 10000
3655 #endif
3656
3657
3658 #if YYERROR_VERBOSE
3659
3660 # ifndef yystrlen
3661 # if defined __GLIBC__ && defined _STRING_H
3662 # define yystrlen strlen
3663 # else
3664 /* Return the length of YYSTR. */
3665 static YYSIZE_T
yystrlen(const char * yystr)3666 yystrlen (const char *yystr)
3667 {
3668 YYSIZE_T yylen;
3669 for (yylen = 0; yystr[yylen]; yylen++)
3670 continue;
3671 return yylen;
3672 }
3673 # endif
3674 # endif
3675
3676 # ifndef yystpcpy
3677 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3678 # define yystpcpy stpcpy
3679 # else
3680 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3681 YYDEST. */
3682 static char *
yystpcpy(char * yydest,const char * yysrc)3683 yystpcpy (char *yydest, const char *yysrc)
3684 {
3685 char *yyd = yydest;
3686 const char *yys = yysrc;
3687
3688 while ((*yyd++ = *yys++) != '\0')
3689 continue;
3690
3691 return yyd - 1;
3692 }
3693 # endif
3694 # endif
3695
3696 # ifndef yytnamerr
3697 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3698 quotes and backslashes, so that it's suitable for yyerror. The
3699 heuristic is that double-quoting is unnecessary unless the string
3700 contains an apostrophe, a comma, or backslash (other than
3701 backslash-backslash). YYSTR is taken from yytname. If YYRES is
3702 null, do not copy; instead, return the length of what the result
3703 would have been. */
3704 static YYSIZE_T
yytnamerr(char * yyres,const char * yystr)3705 yytnamerr (char *yyres, const char *yystr)
3706 {
3707 if (*yystr == '"')
3708 {
3709 YYSIZE_T yyn = 0;
3710 char const *yyp = yystr;
3711
3712 for (;;)
3713 switch (*++yyp)
3714 {
3715 case '\'':
3716 case ',':
3717 goto do_not_strip_quotes;
3718
3719 case '\\':
3720 if (*++yyp != '\\')
3721 goto do_not_strip_quotes;
3722 /* Fall through. */
3723 default:
3724 if (yyres)
3725 yyres[yyn] = *yyp;
3726 yyn++;
3727 break;
3728
3729 case '"':
3730 if (yyres)
3731 yyres[yyn] = '\0';
3732 return yyn;
3733 }
3734 do_not_strip_quotes: ;
3735 }
3736
3737 if (! yyres)
3738 return yystrlen (yystr);
3739
3740 return yystpcpy (yyres, yystr) - yyres;
3741 }
3742 # endif
3743
3744 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
3745 about the unexpected token YYTOKEN for the state stack whose top is
3746 YYSSP.
3747
3748 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
3749 not large enough to hold the message. In that case, also set
3750 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
3751 required number of bytes is too large to store. */
3752 static int
yysyntax_error(YYSIZE_T * yymsg_alloc,char ** yymsg,yytype_int16 * yyssp,int yytoken)3753 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
3754 yytype_int16 *yyssp, int yytoken)
3755 {
3756 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
3757 YYSIZE_T yysize = yysize0;
3758 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3759 /* Internationalized format string. */
3760 const char *yyformat = YY_NULLPTR;
3761 /* Arguments of yyformat. */
3762 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3763 /* Number of reported tokens (one for the "unexpected", one per
3764 "expected"). */
3765 int yycount = 0;
3766
3767 /* There are many possibilities here to consider:
3768 - If this state is a consistent state with a default action, then
3769 the only way this function was invoked is if the default action
3770 is an error action. In that case, don't check for expected
3771 tokens because there are none.
3772 - The only way there can be no lookahead present (in yychar) is if
3773 this state is a consistent state with a default action. Thus,
3774 detecting the absence of a lookahead is sufficient to determine
3775 that there is no unexpected or expected token to report. In that
3776 case, just report a simple "syntax error".
3777 - Don't assume there isn't a lookahead just because this state is a
3778 consistent state with a default action. There might have been a
3779 previous inconsistent state, consistent state with a non-default
3780 action, or user semantic action that manipulated yychar.
3781 - Of course, the expected token list depends on states to have
3782 correct lookahead information, and it depends on the parser not
3783 to perform extra reductions after fetching a lookahead from the
3784 scanner and before detecting a syntax error. Thus, state merging
3785 (from LALR or IELR) and default reductions corrupt the expected
3786 token list. However, the list is correct for canonical LR with
3787 one exception: it will still contain any token that will not be
3788 accepted due to an error action in a later state.
3789 */
3790 if (yytoken != YYEMPTY)
3791 {
3792 int yyn = yypact[*yyssp];
3793 yyarg[yycount++] = yytname[yytoken];
3794 if (!yypact_value_is_default (yyn))
3795 {
3796 /* Start YYX at -YYN if negative to avoid negative indexes in
3797 YYCHECK. In other words, skip the first -YYN actions for
3798 this state because they are default actions. */
3799 int yyxbegin = yyn < 0 ? -yyn : 0;
3800 /* Stay within bounds of both yycheck and yytname. */
3801 int yychecklim = YYLAST - yyn + 1;
3802 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3803 int yyx;
3804
3805 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3806 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
3807 && !yytable_value_is_error (yytable[yyx + yyn]))
3808 {
3809 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3810 {
3811 yycount = 1;
3812 yysize = yysize0;
3813 break;
3814 }
3815 yyarg[yycount++] = yytname[yyx];
3816 {
3817 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
3818 if (! (yysize <= yysize1
3819 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3820 return 2;
3821 yysize = yysize1;
3822 }
3823 }
3824 }
3825 }
3826
3827 switch (yycount)
3828 {
3829 # define YYCASE_(N, S) \
3830 case N: \
3831 yyformat = S; \
3832 break
3833 YYCASE_(0, YY_("syntax error"));
3834 YYCASE_(1, YY_("syntax error, unexpected %s"));
3835 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
3836 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
3837 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
3838 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
3839 # undef YYCASE_
3840 }
3841
3842 {
3843 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
3844 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3845 return 2;
3846 yysize = yysize1;
3847 }
3848
3849 if (*yymsg_alloc < yysize)
3850 {
3851 *yymsg_alloc = 2 * yysize;
3852 if (! (yysize <= *yymsg_alloc
3853 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
3854 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
3855 return 1;
3856 }
3857
3858 /* Avoid sprintf, as that infringes on the user's name space.
3859 Don't have undefined behavior even if the translation
3860 produced a string with the wrong number of "%s"s. */
3861 {
3862 char *yyp = *yymsg;
3863 int yyi = 0;
3864 while ((*yyp = *yyformat) != '\0')
3865 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
3866 {
3867 yyp += yytnamerr (yyp, yyarg[yyi++]);
3868 yyformat += 2;
3869 }
3870 else
3871 {
3872 yyp++;
3873 yyformat++;
3874 }
3875 }
3876 return 0;
3877 }
3878 #endif /* YYERROR_VERBOSE */
3879
3880 /*-----------------------------------------------.
3881 | Release the memory associated to this symbol. |
3882 `-----------------------------------------------*/
3883
3884 static void
yydestruct(const char * yymsg,int yytype,YYSTYPE * yyvaluep,glslang::TParseContext * pParseContext)3885 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext)
3886 {
3887 YYUSE (yyvaluep);
3888 YYUSE (pParseContext);
3889 if (!yymsg)
3890 yymsg = "Deleting";
3891 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3892
3893 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3894 YYUSE (yytype);
3895 YY_IGNORE_MAYBE_UNINITIALIZED_END
3896 }
3897
3898
3899
3900
3901 /*----------.
3902 | yyparse. |
3903 `----------*/
3904
3905 int
yyparse(glslang::TParseContext * pParseContext)3906 yyparse (glslang::TParseContext* pParseContext)
3907 {
3908 /* The lookahead symbol. */
3909 int yychar;
3910
3911
3912 /* The semantic value of the lookahead symbol. */
3913 /* Default value used for initialization, for pacifying older GCCs
3914 or non-GCC compilers. */
3915 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
3916 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
3917
3918 /* Number of syntax errors so far. */
3919 int yynerrs;
3920
3921 int yystate;
3922 /* Number of tokens to shift before error messages enabled. */
3923 int yyerrstatus;
3924
3925 /* The stacks and their tools:
3926 'yyss': related to states.
3927 'yyvs': related to semantic values.
3928
3929 Refer to the stacks through separate pointers, to allow yyoverflow
3930 to reallocate them elsewhere. */
3931
3932 /* The state stack. */
3933 yytype_int16 yyssa[YYINITDEPTH];
3934 yytype_int16 *yyss;
3935 yytype_int16 *yyssp;
3936
3937 /* The semantic value stack. */
3938 YYSTYPE yyvsa[YYINITDEPTH];
3939 YYSTYPE *yyvs;
3940 YYSTYPE *yyvsp;
3941
3942 YYSIZE_T yystacksize;
3943
3944 int yyn;
3945 int yyresult;
3946 /* Lookahead token as an internal (translated) token number. */
3947 int yytoken = 0;
3948 /* The variables used to return semantic value and location from the
3949 action routines. */
3950 YYSTYPE yyval;
3951
3952 #if YYERROR_VERBOSE
3953 /* Buffer for error messages, and its allocated size. */
3954 char yymsgbuf[128];
3955 char *yymsg = yymsgbuf;
3956 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
3957 #endif
3958
3959 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
3960
3961 /* The number of symbols on the RHS of the reduced rule.
3962 Keep to zero when no symbol should be popped. */
3963 int yylen = 0;
3964
3965 yyssp = yyss = yyssa;
3966 yyvsp = yyvs = yyvsa;
3967 yystacksize = YYINITDEPTH;
3968
3969 YYDPRINTF ((stderr, "Starting parse\n"));
3970
3971 yystate = 0;
3972 yyerrstatus = 0;
3973 yynerrs = 0;
3974 yychar = YYEMPTY; /* Cause a token to be read. */
3975 goto yysetstate;
3976
3977 /*------------------------------------------------------------.
3978 | yynewstate -- Push a new state, which is found in yystate. |
3979 `------------------------------------------------------------*/
3980 yynewstate:
3981 /* In all cases, when you get here, the value and location stacks
3982 have just been pushed. So pushing a state here evens the stacks. */
3983 yyssp++;
3984
3985 yysetstate:
3986 *yyssp = yystate;
3987
3988 if (yyss + yystacksize - 1 <= yyssp)
3989 {
3990 /* Get the current used size of the three stacks, in elements. */
3991 YYSIZE_T yysize = yyssp - yyss + 1;
3992
3993 #ifdef yyoverflow
3994 {
3995 /* Give user a chance to reallocate the stack. Use copies of
3996 these so that the &'s don't force the real ones into
3997 memory. */
3998 YYSTYPE *yyvs1 = yyvs;
3999 yytype_int16 *yyss1 = yyss;
4000
4001 /* Each stack pointer address is followed by the size of the
4002 data in use in that stack, in bytes. This used to be a
4003 conditional around just the two extra args, but that might
4004 be undefined if yyoverflow is a macro. */
4005 yyoverflow (YY_("memory exhausted"),
4006 &yyss1, yysize * sizeof (*yyssp),
4007 &yyvs1, yysize * sizeof (*yyvsp),
4008 &yystacksize);
4009
4010 yyss = yyss1;
4011 yyvs = yyvs1;
4012 }
4013 #else /* no yyoverflow */
4014 # ifndef YYSTACK_RELOCATE
4015 goto yyexhaustedlab;
4016 # else
4017 /* Extend the stack our own way. */
4018 if (YYMAXDEPTH <= yystacksize)
4019 goto yyexhaustedlab;
4020 yystacksize *= 2;
4021 if (YYMAXDEPTH < yystacksize)
4022 yystacksize = YYMAXDEPTH;
4023
4024 {
4025 yytype_int16 *yyss1 = yyss;
4026 union yyalloc *yyptr =
4027 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
4028 if (! yyptr)
4029 goto yyexhaustedlab;
4030 YYSTACK_RELOCATE (yyss_alloc, yyss);
4031 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
4032 # undef YYSTACK_RELOCATE
4033 if (yyss1 != yyssa)
4034 YYSTACK_FREE (yyss1);
4035 }
4036 # endif
4037 #endif /* no yyoverflow */
4038
4039 yyssp = yyss + yysize - 1;
4040 yyvsp = yyvs + yysize - 1;
4041
4042 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
4043 (unsigned long int) yystacksize));
4044
4045 if (yyss + yystacksize - 1 <= yyssp)
4046 YYABORT;
4047 }
4048
4049 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4050
4051 if (yystate == YYFINAL)
4052 YYACCEPT;
4053
4054 goto yybackup;
4055
4056 /*-----------.
4057 | yybackup. |
4058 `-----------*/
4059 yybackup:
4060
4061 /* Do appropriate processing given the current state. Read a
4062 lookahead token if we need one and don't already have one. */
4063
4064 /* First try to decide what to do without reference to lookahead token. */
4065 yyn = yypact[yystate];
4066 if (yypact_value_is_default (yyn))
4067 goto yydefault;
4068
4069 /* Not known => get a lookahead token if don't already have one. */
4070
4071 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
4072 if (yychar == YYEMPTY)
4073 {
4074 YYDPRINTF ((stderr, "Reading a token: "));
4075 yychar = yylex (&yylval, parseContext);
4076 }
4077
4078 if (yychar <= YYEOF)
4079 {
4080 yychar = yytoken = YYEOF;
4081 YYDPRINTF ((stderr, "Now at end of input.\n"));
4082 }
4083 else
4084 {
4085 yytoken = YYTRANSLATE (yychar);
4086 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
4087 }
4088
4089 /* If the proper action on seeing token YYTOKEN is to reduce or to
4090 detect an error, take that action. */
4091 yyn += yytoken;
4092 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
4093 goto yydefault;
4094 yyn = yytable[yyn];
4095 if (yyn <= 0)
4096 {
4097 if (yytable_value_is_error (yyn))
4098 goto yyerrlab;
4099 yyn = -yyn;
4100 goto yyreduce;
4101 }
4102
4103 /* Count tokens shifted since error; after three, turn off error
4104 status. */
4105 if (yyerrstatus)
4106 yyerrstatus--;
4107
4108 /* Shift the lookahead token. */
4109 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
4110
4111 /* Discard the shifted token. */
4112 yychar = YYEMPTY;
4113
4114 yystate = yyn;
4115 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4116 *++yyvsp = yylval;
4117 YY_IGNORE_MAYBE_UNINITIALIZED_END
4118
4119 goto yynewstate;
4120
4121
4122 /*-----------------------------------------------------------.
4123 | yydefault -- do the default action for the current state. |
4124 `-----------------------------------------------------------*/
4125 yydefault:
4126 yyn = yydefact[yystate];
4127 if (yyn == 0)
4128 goto yyerrlab;
4129 goto yyreduce;
4130
4131
4132 /*-----------------------------.
4133 | yyreduce -- Do a reduction. |
4134 `-----------------------------*/
4135 yyreduce:
4136 /* yyn is the number of a rule to reduce with. */
4137 yylen = yyr2[yyn];
4138
4139 /* If YYLEN is nonzero, implement the default value of the action:
4140 '$$ = $1'.
4141
4142 Otherwise, the following line sets YYVAL to garbage.
4143 This behavior is undocumented and Bison
4144 users should not rely upon it. Assigning to YYVAL
4145 unconditionally makes the parser a bit smaller, and it avoids a
4146 GCC warning that YYVAL may be used uninitialized. */
4147 yyval = yyvsp[1-yylen];
4148
4149
4150 YY_REDUCE_PRINT (yyn);
4151 switch (yyn)
4152 {
4153 case 2:
4154 #line 302 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4155 {
4156 (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
4157 }
4158 #line 4159 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4159 break;
4160
4161 case 3:
4162 #line 308 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4163 {
4164 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4165 }
4166 #line 4167 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4167 break;
4168
4169 case 4:
4170 #line 311 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4171 {
4172 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
4173 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4174 }
4175 #line 4176 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4176 break;
4177
4178 case 5:
4179 #line 315 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4180 {
4181 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
4182 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4183 }
4184 #line 4185 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4185 break;
4186
4187 case 6:
4188 #line 319 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4189 {
4190 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4191 }
4192 #line 4193 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4193 break;
4194
4195 case 7:
4196 #line 322 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4197 {
4198 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
4199 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4200 }
4201 #line 4202 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4202 break;
4203
4204 case 8:
4205 #line 326 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4206 {
4207 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
4208 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
4209 }
4210 #line 4211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4211 break;
4212
4213 case 9:
4214 #line 330 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4215 {
4216 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
4217 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
4218 }
4219 #line 4220 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4220 break;
4221
4222 case 10:
4223 #line 334 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4224 {
4225 parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal");
4226 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4227 }
4228 #line 4229 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4229 break;
4230
4231 case 11:
4232 #line 338 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4233 {
4234 parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal");
4235 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4236 }
4237 #line 4238 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4238 break;
4239
4240 case 12:
4241 #line 342 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4242 {
4243 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
4244 }
4245 #line 4246 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4246 break;
4247
4248 case 13:
4249 #line 345 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4250 {
4251 parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
4252 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
4253 }
4254 #line 4255 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4255 break;
4256
4257 case 14:
4258 #line 349 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4259 {
4260 parseContext.float16Check((yyvsp[0].lex).loc, "half float literal");
4261 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true);
4262 }
4263 #line 4264 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4264 break;
4265
4266 case 15:
4267 #line 353 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4268 {
4269 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
4270 }
4271 #line 4272 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4272 break;
4273
4274 case 16:
4275 #line 356 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4276 {
4277 (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
4278 if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
4279 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
4280 }
4281 #line 4282 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4282 break;
4283
4284 case 17:
4285 #line 364 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4286 {
4287 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4288 }
4289 #line 4290 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4290 break;
4291
4292 case 18:
4293 #line 367 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4294 {
4295 (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
4296 }
4297 #line 4298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4298 break;
4299
4300 case 19:
4301 #line 370 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4302 {
4303 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4304 }
4305 #line 4306 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4306 break;
4307
4308 case 20:
4309 #line 373 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4310 {
4311 (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
4312 }
4313 #line 4314 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4314 break;
4315
4316 case 21:
4317 #line 376 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4318 {
4319 parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
4320 parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
4321 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
4322 }
4323 #line 4324 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4324 break;
4325
4326 case 22:
4327 #line 381 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4328 {
4329 parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
4330 parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
4331 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
4332 }
4333 #line 4334 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4334 break;
4335
4336 case 23:
4337 #line 389 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4338 {
4339 parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
4340 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4341 }
4342 #line 4343 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4343 break;
4344
4345 case 24:
4346 #line 396 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4347 {
4348 (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
4349 delete (yyvsp[0].interm).function;
4350 }
4351 #line 4352 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4352 break;
4353
4354 case 25:
4355 #line 403 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4356 {
4357 (yyval.interm) = (yyvsp[0].interm);
4358 }
4359 #line 4360 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4360 break;
4361
4362 case 26:
4363 #line 409 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4364 {
4365 (yyval.interm) = (yyvsp[-1].interm);
4366 (yyval.interm).loc = (yyvsp[0].lex).loc;
4367 }
4368 #line 4369 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4369 break;
4370
4371 case 27:
4372 #line 413 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4373 {
4374 (yyval.interm) = (yyvsp[-1].interm);
4375 (yyval.interm).loc = (yyvsp[0].lex).loc;
4376 }
4377 #line 4378 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4378 break;
4379
4380 case 28:
4381 #line 420 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4382 {
4383 (yyval.interm) = (yyvsp[-1].interm);
4384 }
4385 #line 4386 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4386 break;
4387
4388 case 29:
4389 #line 423 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4390 {
4391 (yyval.interm) = (yyvsp[0].interm);
4392 }
4393 #line 4394 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4394 break;
4395
4396 case 30:
4397 #line 429 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4398 {
4399 TParameter param = { 0, new TType };
4400 param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
4401 (yyvsp[-1].interm).function->addParameter(param);
4402 (yyval.interm).function = (yyvsp[-1].interm).function;
4403 (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
4404 }
4405 #line 4406 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4406 break;
4407
4408 case 31:
4409 #line 436 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4410 {
4411 TParameter param = { 0, new TType };
4412 param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
4413 (yyvsp[-2].interm).function->addParameter(param);
4414 (yyval.interm).function = (yyvsp[-2].interm).function;
4415 (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
4416 }
4417 #line 4418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4418 break;
4419
4420 case 32:
4421 #line 446 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4422 {
4423 (yyval.interm) = (yyvsp[-1].interm);
4424 }
4425 #line 4426 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4426 break;
4427
4428 case 33:
4429 #line 454 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4430 {
4431 // Constructor
4432 (yyval.interm).intermNode = 0;
4433 (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
4434 }
4435 #line 4436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4436 break;
4437
4438 case 34:
4439 #line 459 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4440 {
4441 //
4442 // Should be a method or subroutine call, but we haven't recognized the arguments yet.
4443 //
4444 (yyval.interm).function = 0;
4445 (yyval.interm).intermNode = 0;
4446
4447 TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode();
4448 if (method) {
4449 (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength);
4450 (yyval.interm).intermNode = method->getObject();
4451 } else {
4452 TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode();
4453 if (symbol) {
4454 parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName());
4455 TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid));
4456 (yyval.interm).function = function;
4457 } else
4458 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", "");
4459 }
4460
4461 if ((yyval.interm).function == 0) {
4462 // error recover
4463 TString* empty = NewPoolTString("");
4464 (yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull);
4465 }
4466 }
4467 #line 4468 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4468 break;
4469
4470 case 35:
4471 #line 486 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4472 {
4473 // Constructor
4474 (yyval.interm).intermNode = 0;
4475 (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
4476 }
4477 #line 4478 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4478 break;
4479
4480 case 36:
4481 #line 494 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4482 {
4483 parseContext.variableCheck((yyvsp[0].interm.intermTypedNode));
4484 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4485 if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
4486 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
4487 }
4488 #line 4489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4489 break;
4490
4491 case 37:
4492 #line 500 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4493 {
4494 parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode));
4495 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode));
4496 }
4497 #line 4498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4498 break;
4499
4500 case 38:
4501 #line 504 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4502 {
4503 parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode));
4504 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode));
4505 }
4506 #line 4507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4507 break;
4508
4509 case 39:
4510 #line 508 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4511 {
4512 if ((yyvsp[-1].interm).op != EOpNull) {
4513 char errorOp[2] = {0, 0};
4514 switch((yyvsp[-1].interm).op) {
4515 case EOpNegative: errorOp[0] = '-'; break;
4516 case EOpLogicalNot: errorOp[0] = '!'; break;
4517 case EOpBitwiseNot: errorOp[0] = '~'; break;
4518 default: break; // some compilers want this
4519 }
4520 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode));
4521 } else {
4522 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4523 if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
4524 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
4525 }
4526 }
4527 #line 4528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4528 break;
4529
4530 case 40:
4531 #line 528 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4532 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
4533 #line 4534 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4534 break;
4535
4536 case 41:
4537 #line 529 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4538 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
4539 #line 4540 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4540 break;
4541
4542 case 42:
4543 #line 530 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4544 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
4545 #line 4546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4546 break;
4547
4548 case 43:
4549 #line 531 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4550 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
4551 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
4552 #line 4553 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4553 break;
4554
4555 case 44:
4556 #line 537 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4557 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4558 #line 4559 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4559 break;
4560
4561 case 45:
4562 #line 538 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4563 {
4564 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4565 if ((yyval.interm.intermTypedNode) == 0)
4566 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4567 }
4568 #line 4569 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4569 break;
4570
4571 case 46:
4572 #line 543 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4573 {
4574 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4575 if ((yyval.interm.intermTypedNode) == 0)
4576 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4577 }
4578 #line 4579 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4579 break;
4580
4581 case 47:
4582 #line 548 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4583 {
4584 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%");
4585 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4586 if ((yyval.interm.intermTypedNode) == 0)
4587 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4588 }
4589 #line 4590 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4590 break;
4591
4592 case 48:
4593 #line 557 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4594 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4595 #line 4596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4596 break;
4597
4598 case 49:
4599 #line 558 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4600 {
4601 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4602 if ((yyval.interm.intermTypedNode) == 0)
4603 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4604 }
4605 #line 4606 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4606 break;
4607
4608 case 50:
4609 #line 563 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4610 {
4611 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4612 if ((yyval.interm.intermTypedNode) == 0)
4613 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4614 }
4615 #line 4616 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4616 break;
4617
4618 case 51:
4619 #line 571 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4620 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4621 #line 4622 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4622 break;
4623
4624 case 52:
4625 #line 572 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4626 {
4627 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left");
4628 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4629 if ((yyval.interm.intermTypedNode) == 0)
4630 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4631 }
4632 #line 4633 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4633 break;
4634
4635 case 53:
4636 #line 578 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4637 {
4638 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right");
4639 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4640 if ((yyval.interm.intermTypedNode) == 0)
4641 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4642 }
4643 #line 4644 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4644 break;
4645
4646 case 54:
4647 #line 587 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4648 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4649 #line 4650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4650 break;
4651
4652 case 55:
4653 #line 588 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4654 {
4655 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4656 if ((yyval.interm.intermTypedNode) == 0)
4657 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4658 }
4659 #line 4660 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4660 break;
4661
4662 case 56:
4663 #line 593 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4664 {
4665 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4666 if ((yyval.interm.intermTypedNode) == 0)
4667 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4668 }
4669 #line 4670 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4670 break;
4671
4672 case 57:
4673 #line 598 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4674 {
4675 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4676 if ((yyval.interm.intermTypedNode) == 0)
4677 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4678 }
4679 #line 4680 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4680 break;
4681
4682 case 58:
4683 #line 603 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4684 {
4685 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4686 if ((yyval.interm.intermTypedNode) == 0)
4687 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4688 }
4689 #line 4690 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4690 break;
4691
4692 case 59:
4693 #line 611 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4694 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4695 #line 4696 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4696 break;
4697
4698 case 60:
4699 #line 612 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4700 {
4701 parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
4702 parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
4703 parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
4704 parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
4705 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4706 if ((yyval.interm.intermTypedNode) == 0)
4707 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4708 }
4709 #line 4710 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4710 break;
4711
4712 case 61:
4713 #line 621 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4714 {
4715 parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
4716 parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
4717 parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
4718 parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
4719 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4720 if ((yyval.interm.intermTypedNode) == 0)
4721 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4722 }
4723 #line 4724 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4724 break;
4725
4726 case 62:
4727 #line 633 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4728 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4729 #line 4730 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4730 break;
4731
4732 case 63:
4733 #line 634 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4734 {
4735 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and");
4736 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4737 if ((yyval.interm.intermTypedNode) == 0)
4738 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4739 }
4740 #line 4741 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4741 break;
4742
4743 case 64:
4744 #line 643 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4745 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4746 #line 4747 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4747 break;
4748
4749 case 65:
4750 #line 644 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4751 {
4752 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or");
4753 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4754 if ((yyval.interm.intermTypedNode) == 0)
4755 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4756 }
4757 #line 4758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4758 break;
4759
4760 case 66:
4761 #line 653 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4762 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4763 #line 4764 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4764 break;
4765
4766 case 67:
4767 #line 654 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4768 {
4769 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or");
4770 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4771 if ((yyval.interm.intermTypedNode) == 0)
4772 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4773 }
4774 #line 4775 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4775 break;
4776
4777 case 68:
4778 #line 663 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4779 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4780 #line 4781 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4781 break;
4782
4783 case 69:
4784 #line 664 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4785 {
4786 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4787 if ((yyval.interm.intermTypedNode) == 0)
4788 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4789 }
4790 #line 4791 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4791 break;
4792
4793 case 70:
4794 #line 672 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4795 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4796 #line 4797 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4797 break;
4798
4799 case 71:
4800 #line 673 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4801 {
4802 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4803 if ((yyval.interm.intermTypedNode) == 0)
4804 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4805 }
4806 #line 4807 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4807 break;
4808
4809 case 72:
4810 #line 681 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4811 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4812 #line 4813 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4813 break;
4814
4815 case 73:
4816 #line 682 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4817 {
4818 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4819 if ((yyval.interm.intermTypedNode) == 0)
4820 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4821 }
4822 #line 4823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4823 break;
4824
4825 case 74:
4826 #line 690 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4827 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4828 #line 4829 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4829 break;
4830
4831 case 75:
4832 #line 691 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4833 {
4834 ++parseContext.controlFlowNestingLevel;
4835 }
4836 #line 4837 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4837 break;
4838
4839 case 76:
4840 #line 694 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4841 {
4842 --parseContext.controlFlowNestingLevel;
4843 parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
4844 parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode));
4845 parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode));
4846 parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode));
4847 (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc);
4848 if ((yyval.interm.intermTypedNode) == 0) {
4849 parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
4850 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4851 }
4852 }
4853 #line 4854 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4854 break;
4855
4856 case 77:
4857 #line 709 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4858 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4859 #line 4860 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4860 break;
4861
4862 case 78:
4863 #line 710 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4864 {
4865 parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment");
4866 parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
4867 parseContext.storage16BitAssignmentCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
4868 parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
4869 parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode));
4870 parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode));
4871 (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].interm).loc);
4872 if ((yyval.interm.intermTypedNode) == 0) {
4873 parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
4874 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4875 }
4876 }
4877 #line 4878 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4878 break;
4879
4880 case 79:
4881 #line 726 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4882 {
4883 (yyval.interm).loc = (yyvsp[0].lex).loc;
4884 (yyval.interm).op = EOpAssign;
4885 }
4886 #line 4887 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4887 break;
4888
4889 case 80:
4890 #line 730 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4891 {
4892 (yyval.interm).loc = (yyvsp[0].lex).loc;
4893 (yyval.interm).op = EOpMulAssign;
4894 }
4895 #line 4896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4896 break;
4897
4898 case 81:
4899 #line 734 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4900 {
4901 (yyval.interm).loc = (yyvsp[0].lex).loc;
4902 (yyval.interm).op = EOpDivAssign;
4903 }
4904 #line 4905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4905 break;
4906
4907 case 82:
4908 #line 738 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4909 {
4910 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
4911 (yyval.interm).loc = (yyvsp[0].lex).loc;
4912 (yyval.interm).op = EOpModAssign;
4913 }
4914 #line 4915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4915 break;
4916
4917 case 83:
4918 #line 743 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4919 {
4920 (yyval.interm).loc = (yyvsp[0].lex).loc;
4921 (yyval.interm).op = EOpAddAssign;
4922 }
4923 #line 4924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4924 break;
4925
4926 case 84:
4927 #line 747 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4928 {
4929 (yyval.interm).loc = (yyvsp[0].lex).loc;
4930 (yyval.interm).op = EOpSubAssign;
4931 }
4932 #line 4933 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4933 break;
4934
4935 case 85:
4936 #line 751 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4937 {
4938 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
4939 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
4940 }
4941 #line 4942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4942 break;
4943
4944 case 86:
4945 #line 755 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4946 {
4947 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
4948 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
4949 }
4950 #line 4951 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4951 break;
4952
4953 case 87:
4954 #line 759 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4955 {
4956 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
4957 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
4958 }
4959 #line 4960 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4960 break;
4961
4962 case 88:
4963 #line 763 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4964 {
4965 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
4966 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
4967 }
4968 #line 4969 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4969 break;
4970
4971 case 89:
4972 #line 767 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4973 {
4974 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
4975 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
4976 }
4977 #line 4978 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4978 break;
4979
4980 case 90:
4981 #line 774 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4982 {
4983 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4984 }
4985 #line 4986 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4986 break;
4987
4988 case 91:
4989 #line 777 "MachineIndependent/glslang.y" /* yacc.c:1646 */
4990 {
4991 parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
4992 (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
4993 if ((yyval.interm.intermTypedNode) == 0) {
4994 parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
4995 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4996 }
4997 }
4998 #line 4999 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
4999 break;
5000
5001 case 92:
5002 #line 788 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5003 {
5004 parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
5005 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5006 }
5007 #line 5008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5008 break;
5009
5010 case 93:
5011 #line 795 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5012 {
5013 parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
5014 (yyval.interm.intermNode) = 0;
5015 // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
5016 }
5017 #line 5018 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5018 break;
5019
5020 case 94:
5021 #line 800 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5022 {
5023 if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate())
5024 (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
5025 (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
5026 }
5027 #line 5028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5028 break;
5029
5030 case 95:
5031 #line 805 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5032 {
5033 parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
5034
5035 // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
5036 parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]);
5037 parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
5038 (yyval.interm.intermNode) = 0;
5039 }
5040 #line 5041 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5041 break;
5042
5043 case 96:
5044 #line 813 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5045 {
5046 parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
5047 (yyval.interm.intermNode) = 0;
5048 }
5049 #line 5050 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5050 break;
5051
5052 case 97:
5053 #line 817 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5054 {
5055 parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
5056 (yyval.interm.intermNode) = 0;
5057 }
5058 #line 5059 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5059 break;
5060
5061 case 98:
5062 #line 821 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5063 {
5064 parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
5065 (yyval.interm.intermNode) = 0;
5066 }
5067 #line 5068 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5068 break;
5069
5070 case 99:
5071 #line 825 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5072 {
5073 parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
5074 parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
5075 (yyval.interm.intermNode) = 0;
5076 }
5077 #line 5078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5078 break;
5079
5080 case 100:
5081 #line 830 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5082 {
5083 parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
5084 parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
5085 (yyval.interm.intermNode) = 0;
5086 }
5087 #line 5088 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5088 break;
5089
5090 case 101:
5091 #line 835 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5092 {
5093 parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
5094 (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string);
5095 parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
5096 (yyval.interm.intermNode) = 0;
5097 }
5098 #line 5099 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5099 break;
5100
5101 case 102:
5102 #line 844 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5103 { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
5104 #line 5105 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5105 break;
5106
5107 case 103:
5108 #line 844 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5109 {
5110 --parseContext.structNestingLevel;
5111 parseContext.blockName = (yyvsp[-4].lex).string;
5112 parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier);
5113 parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers);
5114 parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier;
5115 (yyval.interm).loc = (yyvsp[-5].interm.type).loc;
5116 (yyval.interm).typeList = (yyvsp[-1].interm.typeList);
5117 }
5118 #line 5119 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5119 break;
5120
5121 case 104:
5122 #line 855 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5123 {
5124 (yyval.interm.identifierList) = new TIdentifierList;
5125 (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
5126 }
5127 #line 5128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5128 break;
5129
5130 case 105:
5131 #line 859 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5132 {
5133 (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
5134 (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
5135 }
5136 #line 5137 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5137 break;
5138
5139 case 106:
5140 #line 866 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5141 {
5142 (yyval.interm).function = (yyvsp[-1].interm.function);
5143 (yyval.interm).loc = (yyvsp[0].lex).loc;
5144 }
5145 #line 5146 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5146 break;
5147
5148 case 107:
5149 #line 873 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5150 {
5151 (yyval.interm.function) = (yyvsp[0].interm.function);
5152 }
5153 #line 5154 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5154 break;
5155
5156 case 108:
5157 #line 876 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5158 {
5159 (yyval.interm.function) = (yyvsp[0].interm.function);
5160 }
5161 #line 5162 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5162 break;
5163
5164 case 109:
5165 #line 883 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5166 {
5167 // Add the parameter
5168 (yyval.interm.function) = (yyvsp[-1].interm.function);
5169 if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid)
5170 (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param);
5171 else
5172 delete (yyvsp[0].interm).param.type;
5173 }
5174 #line 5175 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5175 break;
5176
5177 case 110:
5178 #line 891 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5179 {
5180 //
5181 // Only first parameter of one-parameter functions can be void
5182 // The check for named parameters not being void is done in parameter_declarator
5183 //
5184 if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) {
5185 //
5186 // This parameter > first is void
5187 //
5188 parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", "");
5189 delete (yyvsp[0].interm).param.type;
5190 } else {
5191 // Add the parameter
5192 (yyval.interm.function) = (yyvsp[-2].interm.function);
5193 (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
5194 }
5195 }
5196 #line 5197 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5197 break;
5198
5199 case 111:
5200 #line 911 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5201 {
5202 if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
5203 parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
5204 GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), "");
5205 }
5206 if ((yyvsp[-2].interm.type).arraySizes)
5207 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
5208
5209 // Add the function as a prototype after parsing it (we do not support recursion)
5210 TFunction *function;
5211 TType type((yyvsp[-2].interm.type));
5212
5213 // Potentially rename shader entry point function. No-op most of the time.
5214 parseContext.renameShaderFunction((yyvsp[-1].lex).string);
5215
5216 // Make the function
5217 function = new TFunction((yyvsp[-1].lex).string, type);
5218 (yyval.interm.function) = function;
5219 }
5220 #line 5221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5221 break;
5222
5223 case 112:
5224 #line 934 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5225 {
5226 if ((yyvsp[-1].interm.type).arraySizes) {
5227 parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5228 parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5229 parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes);
5230 }
5231 if ((yyvsp[-1].interm.type).basicType == EbtVoid) {
5232 parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), "");
5233 }
5234 parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string);
5235
5236 TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))};
5237 (yyval.interm).loc = (yyvsp[0].lex).loc;
5238 (yyval.interm).param = param;
5239 }
5240 #line 5241 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5241 break;
5242
5243 case 113:
5244 #line 949 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5245 {
5246 if ((yyvsp[-2].interm.type).arraySizes) {
5247 parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5248 parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5249 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
5250 }
5251 TType* type = new TType((yyvsp[-2].interm.type));
5252 type->transferArraySizes((yyvsp[0].interm).arraySizes);
5253 type->copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
5254
5255 parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, type->getArraySizes());
5256 parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes);
5257 parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string);
5258
5259 TParameter param = { (yyvsp[-1].lex).string, type };
5260
5261 (yyval.interm).loc = (yyvsp[-1].lex).loc;
5262 (yyval.interm).param = param;
5263 }
5264 #line 5265 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5265 break;
5266
5267 case 114:
5268 #line 974 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5269 {
5270 (yyval.interm) = (yyvsp[0].interm);
5271 if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
5272 (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
5273 parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5274
5275 parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5276 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
5277 parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
5278
5279 }
5280 #line 5281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5281 break;
5282
5283 case 115:
5284 #line 985 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5285 {
5286 (yyval.interm) = (yyvsp[0].interm);
5287
5288 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
5289 parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
5290 parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5291 }
5292 #line 5293 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5293 break;
5294
5295 case 116:
5296 #line 995 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5297 {
5298 (yyval.interm) = (yyvsp[0].interm);
5299 if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
5300 (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
5301 parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5302
5303 parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5304 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
5305 parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
5306 }
5307 #line 5308 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5308 break;
5309
5310 case 117:
5311 #line 1005 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5312 {
5313 (yyval.interm) = (yyvsp[0].interm);
5314
5315 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
5316 parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
5317 parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5318 }
5319 #line 5320 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5320 break;
5321
5322 case 118:
5323 #line 1015 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5324 {
5325 TParameter param = { 0, new TType((yyvsp[0].interm.type)) };
5326 (yyval.interm).param = param;
5327 if ((yyvsp[0].interm.type).arraySizes)
5328 parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
5329 }
5330 #line 5331 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5331 break;
5332
5333 case 119:
5334 #line 1024 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5335 {
5336 (yyval.interm) = (yyvsp[0].interm);
5337 }
5338 #line 5339 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5339 break;
5340
5341 case 120:
5342 #line 1027 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5343 {
5344 (yyval.interm) = (yyvsp[-2].interm);
5345 parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
5346 }
5347 #line 5348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5348 break;
5349
5350 case 121:
5351 #line 1031 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5352 {
5353 (yyval.interm) = (yyvsp[-3].interm);
5354 parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
5355 }
5356 #line 5357 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5357 break;
5358
5359 case 122:
5360 #line 1035 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5361 {
5362 (yyval.interm).type = (yyvsp[-5].interm).type;
5363 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
5364 (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
5365 }
5366 #line 5367 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5367 break;
5368
5369 case 123:
5370 #line 1040 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5371 {
5372 (yyval.interm).type = (yyvsp[-4].interm).type;
5373 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
5374 (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
5375 }
5376 #line 5377 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5377 break;
5378
5379 case 124:
5380 #line 1048 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5381 {
5382 (yyval.interm).type = (yyvsp[0].interm.type);
5383 (yyval.interm).intermNode = 0;
5384 parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
5385 }
5386 #line 5387 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5387 break;
5388
5389 case 125:
5390 #line 1053 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5391 {
5392 (yyval.interm).type = (yyvsp[-1].interm.type);
5393 (yyval.interm).intermNode = 0;
5394 parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
5395 }
5396 #line 5397 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5397 break;
5398
5399 case 126:
5400 #line 1058 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5401 {
5402 (yyval.interm).type = (yyvsp[-2].interm.type);
5403 (yyval.interm).intermNode = 0;
5404 parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
5405 }
5406 #line 5407 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5407 break;
5408
5409 case 127:
5410 #line 1063 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5411 {
5412 (yyval.interm).type = (yyvsp[-4].interm.type);
5413 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
5414 (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
5415 }
5416 #line 5417 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5417 break;
5418
5419 case 128:
5420 #line 1068 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5421 {
5422 (yyval.interm).type = (yyvsp[-3].interm.type);
5423 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
5424 (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
5425 }
5426 #line 5427 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5427 break;
5428
5429 case 129:
5430 #line 1077 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5431 {
5432 (yyval.interm.type) = (yyvsp[0].interm.type);
5433
5434 parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type));
5435 if ((yyvsp[0].interm.type).arraySizes) {
5436 parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5437 parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5438 }
5439
5440 parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
5441 }
5442 #line 5443 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5443 break;
5444
5445 case 130:
5446 #line 1088 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5447 {
5448 parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
5449 parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
5450
5451 if ((yyvsp[0].interm.type).arraySizes) {
5452 parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5453 parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5454 }
5455
5456 if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier))
5457 (yyvsp[0].interm.type).arraySizes = nullptr;
5458
5459 parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5460 (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers);
5461 parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true);
5462 parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier);
5463
5464 (yyval.interm.type) = (yyvsp[0].interm.type);
5465
5466 if (! (yyval.interm.type).qualifier.isInterpolation() &&
5467 ((parseContext.language == EShLangVertex && (yyval.interm.type).qualifier.storage == EvqVaryingOut) ||
5468 (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
5469 (yyval.interm.type).qualifier.smooth = true;
5470 }
5471 #line 5472 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5472 break;
5473
5474 case 131:
5475 #line 1115 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5476 {
5477 parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
5478 parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
5479 (yyval.interm.type).init((yyvsp[0].lex).loc);
5480 (yyval.interm.type).qualifier.invariant = true;
5481 }
5482 #line 5483 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5483 break;
5484
5485 case 132:
5486 #line 1124 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5487 {
5488 parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
5489 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
5490 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth");
5491 (yyval.interm.type).init((yyvsp[0].lex).loc);
5492 (yyval.interm.type).qualifier.smooth = true;
5493 }
5494 #line 5495 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5495 break;
5496
5497 case 133:
5498 #line 1131 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5499 {
5500 parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
5501 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
5502 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat");
5503 (yyval.interm.type).init((yyvsp[0].lex).loc);
5504 (yyval.interm.type).qualifier.flat = true;
5505 }
5506 #line 5507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5507 break;
5508
5509 case 134:
5510 #line 1138 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5511 {
5512 parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
5513 #ifdef NV_EXTENSIONS
5514 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
5515 #else
5516 parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "noperspective");
5517 #endif
5518 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective");
5519 (yyval.interm.type).init((yyvsp[0].lex).loc);
5520 (yyval.interm.type).qualifier.nopersp = true;
5521 }
5522 #line 5523 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5523 break;
5524
5525 case 135:
5526 #line 1149 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5527 {
5528 #ifdef AMD_EXTENSIONS
5529 parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD");
5530 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
5531 parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
5532 (yyval.interm.type).init((yyvsp[0].lex).loc);
5533 (yyval.interm.type).qualifier.explicitInterp = true;
5534 #endif
5535 }
5536 #line 5537 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5537 break;
5538
5539 case 136:
5540 #line 1158 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5541 {
5542 #ifdef NV_EXTENSIONS
5543 parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV");
5544 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
5545 parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
5546 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
5547 (yyval.interm.type).init((yyvsp[0].lex).loc);
5548 (yyval.interm.type).qualifier.pervertexNV = true;
5549 #endif
5550 }
5551 #line 5552 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5552 break;
5553
5554 case 137:
5555 #line 1168 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5556 {
5557 #ifdef NV_EXTENSIONS
5558 // No need for profile version or extension check. Shader stage already checks both.
5559 parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV");
5560 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshNVMask), "perprimitiveNV");
5561 // Fragment shader stage doesn't check for extension. So we explicitly add below extension check.
5562 if (parseContext.language == EShLangFragment)
5563 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_NV_mesh_shader, "perprimitiveNV");
5564 (yyval.interm.type).init((yyvsp[0].lex).loc);
5565 (yyval.interm.type).qualifier.perPrimitiveNV = true;
5566 #endif
5567 }
5568 #line 5569 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5569 break;
5570
5571 case 138:
5572 #line 1180 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5573 {
5574 #ifdef NV_EXTENSIONS
5575 // No need for profile version or extension check. Shader stage already checks both.
5576 parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV");
5577 parseContext.requireStage((yyvsp[0].lex).loc, EShLangMeshNV, "perviewNV");
5578 (yyval.interm.type).init((yyvsp[0].lex).loc);
5579 (yyval.interm.type).qualifier.perViewNV = true;
5580 #endif
5581 }
5582 #line 5583 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5583 break;
5584
5585 case 139:
5586 #line 1189 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5587 {
5588 #ifdef NV_EXTENSIONS
5589 // No need for profile version or extension check. Shader stage already checks both.
5590 parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV");
5591 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "taskNV");
5592 (yyval.interm.type).init((yyvsp[0].lex).loc);
5593 (yyval.interm.type).qualifier.perTaskNV = true;
5594 #endif
5595 }
5596 #line 5597 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5597 break;
5598
5599 case 140:
5600 #line 1201 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5601 {
5602 (yyval.interm.type) = (yyvsp[-1].interm.type);
5603 }
5604 #line 5605 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5605 break;
5606
5607 case 141:
5608 #line 1207 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5609 {
5610 (yyval.interm.type) = (yyvsp[0].interm.type);
5611 }
5612 #line 5613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5613 break;
5614
5615 case 142:
5616 #line 1210 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5617 {
5618 (yyval.interm.type) = (yyvsp[-2].interm.type);
5619 (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
5620 parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
5621 }
5622 #line 5623 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5623 break;
5624
5625 case 143:
5626 #line 1217 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5627 {
5628 (yyval.interm.type).init((yyvsp[0].lex).loc);
5629 parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
5630 }
5631 #line 5632 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5632 break;
5633
5634 case 144:
5635 #line 1221 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5636 {
5637 (yyval.interm.type).init((yyvsp[-2].lex).loc);
5638 parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode));
5639 }
5640 #line 5641 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5641 break;
5642
5643 case 145:
5644 #line 1225 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5645 { // because "shared" is both an identifier and a keyword
5646 (yyval.interm.type).init((yyvsp[0].lex).loc);
5647 TString strShared("shared");
5648 parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
5649 }
5650 #line 5651 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5651 break;
5652
5653 case 146:
5654 #line 1233 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5655 {
5656 parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
5657 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
5658 (yyval.interm.type).init((yyvsp[0].lex).loc);
5659 (yyval.interm.type).qualifier.noContraction = true;
5660 }
5661 #line 5662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5662 break;
5663
5664 case 147:
5665 #line 1242 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5666 {
5667 (yyval.interm.type) = (yyvsp[0].interm.type);
5668 }
5669 #line 5670 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5670 break;
5671
5672 case 148:
5673 #line 1245 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5674 {
5675 (yyval.interm.type) = (yyvsp[-1].interm.type);
5676 if ((yyval.interm.type).basicType == EbtVoid)
5677 (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType;
5678
5679 (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
5680 parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
5681 }
5682 #line 5683 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5683 break;
5684
5685 case 149:
5686 #line 1256 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5687 {
5688 (yyval.interm.type) = (yyvsp[0].interm.type);
5689 }
5690 #line 5691 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5691 break;
5692
5693 case 150:
5694 #line 1259 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5695 {
5696 (yyval.interm.type) = (yyvsp[0].interm.type);
5697 }
5698 #line 5699 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5699 break;
5700
5701 case 151:
5702 #line 1262 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5703 {
5704 parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
5705 (yyval.interm.type) = (yyvsp[0].interm.type);
5706 }
5707 #line 5708 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5708 break;
5709
5710 case 152:
5711 #line 1266 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5712 {
5713 // allow inheritance of storage qualifier from block declaration
5714 (yyval.interm.type) = (yyvsp[0].interm.type);
5715 }
5716 #line 5717 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5717 break;
5718
5719 case 153:
5720 #line 1270 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5721 {
5722 // allow inheritance of storage qualifier from block declaration
5723 (yyval.interm.type) = (yyvsp[0].interm.type);
5724 }
5725 #line 5726 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5726 break;
5727
5728 case 154:
5729 #line 1274 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5730 {
5731 // allow inheritance of storage qualifier from block declaration
5732 (yyval.interm.type) = (yyvsp[0].interm.type);
5733 }
5734 #line 5735 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5735 break;
5736
5737 case 155:
5738 #line 1278 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5739 {
5740 (yyval.interm.type) = (yyvsp[0].interm.type);
5741 }
5742 #line 5743 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5743 break;
5744
5745 case 156:
5746 #line 1284 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5747 {
5748 (yyval.interm.type).init((yyvsp[0].lex).loc);
5749 (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant
5750 }
5751 #line 5752 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5752 break;
5753
5754 case 157:
5755 #line 1288 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5756 {
5757 parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
5758 parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
5759 parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute");
5760 parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute");
5761 parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute");
5762
5763 parseContext.globalCheck((yyvsp[0].lex).loc, "attribute");
5764
5765 (yyval.interm.type).init((yyvsp[0].lex).loc);
5766 (yyval.interm.type).qualifier.storage = EvqVaryingIn;
5767 }
5768 #line 5769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5769 break;
5770
5771 case 158:
5772 #line 1300 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5773 {
5774 parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
5775 parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
5776 parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying");
5777 parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying");
5778
5779 parseContext.globalCheck((yyvsp[0].lex).loc, "varying");
5780
5781 (yyval.interm.type).init((yyvsp[0].lex).loc);
5782 if (parseContext.language == EShLangVertex)
5783 (yyval.interm.type).qualifier.storage = EvqVaryingOut;
5784 else
5785 (yyval.interm.type).qualifier.storage = EvqVaryingIn;
5786 }
5787 #line 5788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5788 break;
5789
5790 case 159:
5791 #line 1314 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5792 {
5793 parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
5794 (yyval.interm.type).init((yyvsp[0].lex).loc);
5795 (yyval.interm.type).qualifier.storage = EvqInOut;
5796 }
5797 #line 5798 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5798 break;
5799
5800 case 160:
5801 #line 1319 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5802 {
5803 parseContext.globalCheck((yyvsp[0].lex).loc, "in");
5804 (yyval.interm.type).init((yyvsp[0].lex).loc);
5805 // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
5806 (yyval.interm.type).qualifier.storage = EvqIn;
5807 }
5808 #line 5809 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5809 break;
5810
5811 case 161:
5812 #line 1325 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5813 {
5814 parseContext.globalCheck((yyvsp[0].lex).loc, "out");
5815 (yyval.interm.type).init((yyvsp[0].lex).loc);
5816 // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
5817 (yyval.interm.type).qualifier.storage = EvqOut;
5818 }
5819 #line 5820 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5820 break;
5821
5822 case 162:
5823 #line 1331 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5824 {
5825 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
5826 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
5827 parseContext.globalCheck((yyvsp[0].lex).loc, "centroid");
5828 (yyval.interm.type).init((yyvsp[0].lex).loc);
5829 (yyval.interm.type).qualifier.centroid = true;
5830 }
5831 #line 5832 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5832 break;
5833
5834 case 163:
5835 #line 1338 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5836 {
5837 parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
5838 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
5839 (yyval.interm.type).init((yyvsp[0].lex).loc);
5840 (yyval.interm.type).qualifier.patch = true;
5841 }
5842 #line 5843 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5843 break;
5844
5845 case 164:
5846 #line 1344 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5847 {
5848 parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
5849 (yyval.interm.type).init((yyvsp[0].lex).loc);
5850 (yyval.interm.type).qualifier.sample = true;
5851 }
5852 #line 5853 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5853 break;
5854
5855 case 165:
5856 #line 1349 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5857 {
5858 parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
5859 (yyval.interm.type).init((yyvsp[0].lex).loc);
5860 (yyval.interm.type).qualifier.storage = EvqUniform;
5861 }
5862 #line 5863 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5863 break;
5864
5865 case 166:
5866 #line 1354 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5867 {
5868 parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
5869 (yyval.interm.type).init((yyvsp[0].lex).loc);
5870 (yyval.interm.type).qualifier.storage = EvqBuffer;
5871 }
5872 #line 5873 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5873 break;
5874
5875 case 167:
5876 #line 1359 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5877 {
5878 #ifdef NV_EXTENSIONS
5879 parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
5880 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectNVMask | EShLangClosestHitNVMask
5881 | EShLangAnyHitNVMask), "hitAttributeNV");
5882 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV");
5883 (yyval.interm.type).init((yyvsp[0].lex).loc);
5884 (yyval.interm.type).qualifier.storage = EvqHitAttrNV;
5885 #endif
5886 }
5887 #line 5888 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5888 break;
5889
5890 case 168:
5891 #line 1369 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5892 {
5893 #ifdef NV_EXTENSIONS
5894 parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV");
5895 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangClosestHitNVMask |
5896 EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadNV");
5897 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV");
5898 (yyval.interm.type).init((yyvsp[0].lex).loc);
5899 (yyval.interm.type).qualifier.storage = EvqPayloadNV;
5900 #endif
5901 }
5902 #line 5903 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5903 break;
5904
5905 case 169:
5906 #line 1379 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5907 {
5908 #ifdef NV_EXTENSIONS
5909 parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV");
5910 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitNVMask |
5911 EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadInNV");
5912 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV");
5913 (yyval.interm.type).init((yyvsp[0].lex).loc);
5914 (yyval.interm.type).qualifier.storage = EvqPayloadInNV;
5915 #endif
5916 }
5917 #line 5918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5918 break;
5919
5920 case 170:
5921 #line 1389 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5922 {
5923 #ifdef NV_EXTENSIONS
5924 parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV");
5925 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenNVMask |
5926 EShLangClosestHitNVMask | EShLangMissNVMask | EShLangCallableNVMask), "callableDataNV");
5927 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV");
5928 (yyval.interm.type).init((yyvsp[0].lex).loc);
5929 (yyval.interm.type).qualifier.storage = EvqCallableDataNV;
5930 #endif
5931 }
5932 #line 5933 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5933 break;
5934
5935 case 171:
5936 #line 1399 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5937 {
5938 #ifdef NV_EXTENSIONS
5939 parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV");
5940 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableNVMask), "callableDataInNV");
5941 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV");
5942 (yyval.interm.type).init((yyvsp[0].lex).loc);
5943 (yyval.interm.type).qualifier.storage = EvqCallableDataInNV;
5944 #endif
5945 }
5946 #line 5947 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5947 break;
5948
5949 case 172:
5950 #line 1408 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5951 {
5952 parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
5953 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
5954 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared");
5955 #ifdef NV_EXTENSIONS
5956 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared");
5957 #else
5958 parseContext.requireStage((yyvsp[0].lex).loc, EShLangCompute, "shared");
5959 #endif
5960 (yyval.interm.type).init((yyvsp[0].lex).loc);
5961 (yyval.interm.type).qualifier.storage = EvqShared;
5962 }
5963 #line 5964 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5964 break;
5965
5966 case 173:
5967 #line 1420 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5968 {
5969 (yyval.interm.type).init((yyvsp[0].lex).loc);
5970 (yyval.interm.type).qualifier.coherent = true;
5971 }
5972 #line 5973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5973 break;
5974
5975 case 174:
5976 #line 1424 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5977 {
5978 (yyval.interm.type).init((yyvsp[0].lex).loc);
5979 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
5980 (yyval.interm.type).qualifier.devicecoherent = true;
5981 }
5982 #line 5983 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5983 break;
5984
5985 case 175:
5986 #line 1429 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5987 {
5988 (yyval.interm.type).init((yyvsp[0].lex).loc);
5989 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent");
5990 (yyval.interm.type).qualifier.queuefamilycoherent = true;
5991 }
5992 #line 5993 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
5993 break;
5994
5995 case 176:
5996 #line 1434 "MachineIndependent/glslang.y" /* yacc.c:1646 */
5997 {
5998 (yyval.interm.type).init((yyvsp[0].lex).loc);
5999 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent");
6000 (yyval.interm.type).qualifier.workgroupcoherent = true;
6001 }
6002 #line 6003 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6003 break;
6004
6005 case 177:
6006 #line 1439 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6007 {
6008 (yyval.interm.type).init((yyvsp[0].lex).loc);
6009 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent");
6010 (yyval.interm.type).qualifier.subgroupcoherent = true;
6011 }
6012 #line 6013 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6013 break;
6014
6015 case 178:
6016 #line 1444 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6017 {
6018 (yyval.interm.type).init((yyvsp[0].lex).loc);
6019 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate");
6020 (yyval.interm.type).qualifier.nonprivate = true;
6021 }
6022 #line 6023 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6023 break;
6024
6025 case 179:
6026 #line 1449 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6027 {
6028 (yyval.interm.type).init((yyvsp[0].lex).loc);
6029 (yyval.interm.type).qualifier.volatil = true;
6030 }
6031 #line 6032 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6032 break;
6033
6034 case 180:
6035 #line 1453 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6036 {
6037 (yyval.interm.type).init((yyvsp[0].lex).loc);
6038 (yyval.interm.type).qualifier.restrict = true;
6039 }
6040 #line 6041 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6041 break;
6042
6043 case 181:
6044 #line 1457 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6045 {
6046 (yyval.interm.type).init((yyvsp[0].lex).loc);
6047 (yyval.interm.type).qualifier.readonly = true;
6048 }
6049 #line 6050 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6050 break;
6051
6052 case 182:
6053 #line 1461 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6054 {
6055 (yyval.interm.type).init((yyvsp[0].lex).loc);
6056 (yyval.interm.type).qualifier.writeonly = true;
6057 }
6058 #line 6059 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6059 break;
6060
6061 case 183:
6062 #line 1465 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6063 {
6064 parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine");
6065 parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine");
6066 parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine");
6067 (yyval.interm.type).init((yyvsp[0].lex).loc);
6068 }
6069 #line 6070 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6070 break;
6071
6072 case 184:
6073 #line 1471 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6074 {
6075 parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine");
6076 parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine");
6077 parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine");
6078 (yyval.interm.type).init((yyvsp[-3].lex).loc);
6079 }
6080 #line 6081 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6081 break;
6082
6083 case 185:
6084 #line 1480 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6085 {
6086 (yyval.interm.type).init((yyvsp[0].lex).loc);
6087 (yyval.interm.type).qualifier.nonUniform = true;
6088 }
6089 #line 6090 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6090 break;
6091
6092 case 186:
6093 #line 1487 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6094 {
6095 // TODO
6096 }
6097 #line 6098 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6098 break;
6099
6100 case 187:
6101 #line 1490 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6102 {
6103 // TODO: 4.0 semantics: subroutines
6104 // 1) make sure each identifier is a type declared earlier with SUBROUTINE
6105 // 2) save all of the identifiers for future comparison with the declared function
6106 }
6107 #line 6108 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6108 break;
6109
6110 case 188:
6111 #line 1498 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6112 {
6113 (yyval.interm.type) = (yyvsp[-1].interm.type);
6114 (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
6115 (yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters);
6116 }
6117 #line 6118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6118 break;
6119
6120 case 189:
6121 #line 1503 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6122 {
6123 parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes);
6124 (yyval.interm.type) = (yyvsp[-2].interm.type);
6125 (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
6126 (yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters);
6127 (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
6128 }
6129 #line 6130 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6130 break;
6131
6132 case 190:
6133 #line 1513 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6134 {
6135 (yyval.interm).loc = (yyvsp[-1].lex).loc;
6136 (yyval.interm).arraySizes = new TArraySizes;
6137 (yyval.interm).arraySizes->addInnerSize();
6138 }
6139 #line 6140 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6140 break;
6141
6142 case 191:
6143 #line 1518 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6144 {
6145 (yyval.interm).loc = (yyvsp[-2].lex).loc;
6146 (yyval.interm).arraySizes = new TArraySizes;
6147
6148 TArraySize size;
6149 parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
6150 (yyval.interm).arraySizes->addInnerSize(size);
6151 }
6152 #line 6153 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6153 break;
6154
6155 case 192:
6156 #line 1526 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6157 {
6158 (yyval.interm) = (yyvsp[-2].interm);
6159 (yyval.interm).arraySizes->addInnerSize();
6160 }
6161 #line 6162 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6162 break;
6163
6164 case 193:
6165 #line 1530 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6166 {
6167 (yyval.interm) = (yyvsp[-3].interm);
6168
6169 TArraySize size;
6170 parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
6171 (yyval.interm).arraySizes->addInnerSize(size);
6172 }
6173 #line 6174 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6174 break;
6175
6176 case 194:
6177 #line 1540 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6178 {
6179 (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters);
6180 }
6181 #line 6182 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6182 break;
6183
6184 case 195:
6185 #line 1543 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6186 {
6187 (yyval.interm.typeParameters) = 0;
6188 }
6189 #line 6190 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6190 break;
6191
6192 case 196:
6193 #line 1549 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6194 {
6195 (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters);
6196 }
6197 #line 6198 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6198 break;
6199
6200 case 197:
6201 #line 1555 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6202 {
6203 (yyval.interm.typeParameters) = new TArraySizes;
6204
6205 TArraySize size;
6206 parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
6207 (yyval.interm.typeParameters)->addInnerSize(size);
6208 }
6209 #line 6210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6210 break;
6211
6212 case 198:
6213 #line 1562 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6214 {
6215 (yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters);
6216
6217 TArraySize size;
6218 parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
6219 (yyval.interm.typeParameters)->addInnerSize(size);
6220 }
6221 #line 6222 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6222 break;
6223
6224 case 199:
6225 #line 1572 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6226 {
6227 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6228 (yyval.interm.type).basicType = EbtVoid;
6229 }
6230 #line 6231 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6231 break;
6232
6233 case 200:
6234 #line 1576 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6235 {
6236 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6237 (yyval.interm.type).basicType = EbtFloat;
6238 }
6239 #line 6240 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6240 break;
6241
6242 case 201:
6243 #line 1580 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6244 {
6245 parseContext.doubleCheck((yyvsp[0].lex).loc, "double");
6246 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6247 (yyval.interm.type).basicType = EbtDouble;
6248 }
6249 #line 6250 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6250 break;
6251
6252 case 202:
6253 #line 1585 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6254 {
6255 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel());
6256 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6257 (yyval.interm.type).basicType = EbtFloat16;
6258 }
6259 #line 6260 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6260 break;
6261
6262 case 203:
6263 #line 1590 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6264 {
6265 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel());
6266 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6267 (yyval.interm.type).basicType = EbtFloat;
6268 }
6269 #line 6270 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6270 break;
6271
6272 case 204:
6273 #line 1595 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6274 {
6275 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel());
6276 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6277 (yyval.interm.type).basicType = EbtDouble;
6278 }
6279 #line 6280 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6280 break;
6281
6282 case 205:
6283 #line 1600 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6284 {
6285 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6286 (yyval.interm.type).basicType = EbtInt;
6287 }
6288 #line 6289 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6289 break;
6290
6291 case 206:
6292 #line 1604 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6293 {
6294 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
6295 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6296 (yyval.interm.type).basicType = EbtUint;
6297 }
6298 #line 6299 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6299 break;
6300
6301 case 207:
6302 #line 1609 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6303 {
6304 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
6305 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6306 (yyval.interm.type).basicType = EbtInt8;
6307 }
6308 #line 6309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6309 break;
6310
6311 case 208:
6312 #line 1614 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6313 {
6314 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6315 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6316 (yyval.interm.type).basicType = EbtUint8;
6317 }
6318 #line 6319 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6319 break;
6320
6321 case 209:
6322 #line 1619 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6323 {
6324 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
6325 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6326 (yyval.interm.type).basicType = EbtInt16;
6327 }
6328 #line 6329 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6329 break;
6330
6331 case 210:
6332 #line 1624 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6333 {
6334 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6335 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6336 (yyval.interm.type).basicType = EbtUint16;
6337 }
6338 #line 6339 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6339 break;
6340
6341 case 211:
6342 #line 1629 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6343 {
6344 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
6345 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6346 (yyval.interm.type).basicType = EbtInt;
6347 }
6348 #line 6349 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6349 break;
6350
6351 case 212:
6352 #line 1634 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6353 {
6354 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6355 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6356 (yyval.interm.type).basicType = EbtUint;
6357 }
6358 #line 6359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6359 break;
6360
6361 case 213:
6362 #line 1639 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6363 {
6364 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
6365 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6366 (yyval.interm.type).basicType = EbtInt64;
6367 }
6368 #line 6369 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6369 break;
6370
6371 case 214:
6372 #line 1644 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6373 {
6374 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6375 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6376 (yyval.interm.type).basicType = EbtUint64;
6377 }
6378 #line 6379 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6379 break;
6380
6381 case 215:
6382 #line 1649 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6383 {
6384 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6385 (yyval.interm.type).basicType = EbtBool;
6386 }
6387 #line 6388 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6388 break;
6389
6390 case 216:
6391 #line 1653 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6392 {
6393 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6394 (yyval.interm.type).basicType = EbtFloat;
6395 (yyval.interm.type).setVector(2);
6396 }
6397 #line 6398 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6398 break;
6399
6400 case 217:
6401 #line 1658 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6402 {
6403 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6404 (yyval.interm.type).basicType = EbtFloat;
6405 (yyval.interm.type).setVector(3);
6406 }
6407 #line 6408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6408 break;
6409
6410 case 218:
6411 #line 1663 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6412 {
6413 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6414 (yyval.interm.type).basicType = EbtFloat;
6415 (yyval.interm.type).setVector(4);
6416 }
6417 #line 6418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6418 break;
6419
6420 case 219:
6421 #line 1668 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6422 {
6423 parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
6424 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6425 (yyval.interm.type).basicType = EbtDouble;
6426 (yyval.interm.type).setVector(2);
6427 }
6428 #line 6429 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6429 break;
6430
6431 case 220:
6432 #line 1674 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6433 {
6434 parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
6435 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6436 (yyval.interm.type).basicType = EbtDouble;
6437 (yyval.interm.type).setVector(3);
6438 }
6439 #line 6440 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6440 break;
6441
6442 case 221:
6443 #line 1680 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6444 {
6445 parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
6446 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6447 (yyval.interm.type).basicType = EbtDouble;
6448 (yyval.interm.type).setVector(4);
6449 }
6450 #line 6451 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6451 break;
6452
6453 case 222:
6454 #line 1686 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6455 {
6456 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
6457 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6458 (yyval.interm.type).basicType = EbtFloat16;
6459 (yyval.interm.type).setVector(2);
6460 }
6461 #line 6462 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6462 break;
6463
6464 case 223:
6465 #line 1692 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6466 {
6467 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
6468 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6469 (yyval.interm.type).basicType = EbtFloat16;
6470 (yyval.interm.type).setVector(3);
6471 }
6472 #line 6473 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6473 break;
6474
6475 case 224:
6476 #line 1698 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6477 {
6478 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
6479 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6480 (yyval.interm.type).basicType = EbtFloat16;
6481 (yyval.interm.type).setVector(4);
6482 }
6483 #line 6484 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6484 break;
6485
6486 case 225:
6487 #line 1704 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6488 {
6489 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
6490 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6491 (yyval.interm.type).basicType = EbtFloat;
6492 (yyval.interm.type).setVector(2);
6493 }
6494 #line 6495 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6495 break;
6496
6497 case 226:
6498 #line 1710 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6499 {
6500 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
6501 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6502 (yyval.interm.type).basicType = EbtFloat;
6503 (yyval.interm.type).setVector(3);
6504 }
6505 #line 6506 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6506 break;
6507
6508 case 227:
6509 #line 1716 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6510 {
6511 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
6512 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6513 (yyval.interm.type).basicType = EbtFloat;
6514 (yyval.interm.type).setVector(4);
6515 }
6516 #line 6517 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6517 break;
6518
6519 case 228:
6520 #line 1722 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6521 {
6522 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
6523 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6524 (yyval.interm.type).basicType = EbtDouble;
6525 (yyval.interm.type).setVector(2);
6526 }
6527 #line 6528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6528 break;
6529
6530 case 229:
6531 #line 1728 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6532 {
6533 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
6534 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6535 (yyval.interm.type).basicType = EbtDouble;
6536 (yyval.interm.type).setVector(3);
6537 }
6538 #line 6539 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6539 break;
6540
6541 case 230:
6542 #line 1734 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6543 {
6544 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
6545 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6546 (yyval.interm.type).basicType = EbtDouble;
6547 (yyval.interm.type).setVector(4);
6548 }
6549 #line 6550 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6550 break;
6551
6552 case 231:
6553 #line 1740 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6554 {
6555 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6556 (yyval.interm.type).basicType = EbtBool;
6557 (yyval.interm.type).setVector(2);
6558 }
6559 #line 6560 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6560 break;
6561
6562 case 232:
6563 #line 1745 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6564 {
6565 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6566 (yyval.interm.type).basicType = EbtBool;
6567 (yyval.interm.type).setVector(3);
6568 }
6569 #line 6570 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6570 break;
6571
6572 case 233:
6573 #line 1750 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6574 {
6575 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6576 (yyval.interm.type).basicType = EbtBool;
6577 (yyval.interm.type).setVector(4);
6578 }
6579 #line 6580 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6580 break;
6581
6582 case 234:
6583 #line 1755 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6584 {
6585 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6586 (yyval.interm.type).basicType = EbtInt;
6587 (yyval.interm.type).setVector(2);
6588 }
6589 #line 6590 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6590 break;
6591
6592 case 235:
6593 #line 1760 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6594 {
6595 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6596 (yyval.interm.type).basicType = EbtInt;
6597 (yyval.interm.type).setVector(3);
6598 }
6599 #line 6600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6600 break;
6601
6602 case 236:
6603 #line 1765 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6604 {
6605 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6606 (yyval.interm.type).basicType = EbtInt;
6607 (yyval.interm.type).setVector(4);
6608 }
6609 #line 6610 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6610 break;
6611
6612 case 237:
6613 #line 1770 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6614 {
6615 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6616 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6617 (yyval.interm.type).basicType = EbtInt8;
6618 (yyval.interm.type).setVector(2);
6619 }
6620 #line 6621 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6621 break;
6622
6623 case 238:
6624 #line 1776 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6625 {
6626 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6627 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6628 (yyval.interm.type).basicType = EbtInt8;
6629 (yyval.interm.type).setVector(3);
6630 }
6631 #line 6632 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6632 break;
6633
6634 case 239:
6635 #line 1782 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6636 {
6637 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6638 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6639 (yyval.interm.type).basicType = EbtInt8;
6640 (yyval.interm.type).setVector(4);
6641 }
6642 #line 6643 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6643 break;
6644
6645 case 240:
6646 #line 1788 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6647 {
6648 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6649 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6650 (yyval.interm.type).basicType = EbtInt16;
6651 (yyval.interm.type).setVector(2);
6652 }
6653 #line 6654 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6654 break;
6655
6656 case 241:
6657 #line 1794 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6658 {
6659 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6660 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6661 (yyval.interm.type).basicType = EbtInt16;
6662 (yyval.interm.type).setVector(3);
6663 }
6664 #line 6665 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6665 break;
6666
6667 case 242:
6668 #line 1800 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6669 {
6670 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6671 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6672 (yyval.interm.type).basicType = EbtInt16;
6673 (yyval.interm.type).setVector(4);
6674 }
6675 #line 6676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6676 break;
6677
6678 case 243:
6679 #line 1806 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6680 {
6681 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6682 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6683 (yyval.interm.type).basicType = EbtInt;
6684 (yyval.interm.type).setVector(2);
6685 }
6686 #line 6687 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6687 break;
6688
6689 case 244:
6690 #line 1812 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6691 {
6692 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6693 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6694 (yyval.interm.type).basicType = EbtInt;
6695 (yyval.interm.type).setVector(3);
6696 }
6697 #line 6698 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6698 break;
6699
6700 case 245:
6701 #line 1818 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6702 {
6703 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6704 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6705 (yyval.interm.type).basicType = EbtInt;
6706 (yyval.interm.type).setVector(4);
6707 }
6708 #line 6709 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6709 break;
6710
6711 case 246:
6712 #line 1824 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6713 {
6714 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
6715 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6716 (yyval.interm.type).basicType = EbtInt64;
6717 (yyval.interm.type).setVector(2);
6718 }
6719 #line 6720 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6720 break;
6721
6722 case 247:
6723 #line 1830 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6724 {
6725 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
6726 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6727 (yyval.interm.type).basicType = EbtInt64;
6728 (yyval.interm.type).setVector(3);
6729 }
6730 #line 6731 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6731 break;
6732
6733 case 248:
6734 #line 1836 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6735 {
6736 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
6737 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6738 (yyval.interm.type).basicType = EbtInt64;
6739 (yyval.interm.type).setVector(4);
6740 }
6741 #line 6742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6742 break;
6743
6744 case 249:
6745 #line 1842 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6746 {
6747 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6748 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6749 (yyval.interm.type).basicType = EbtUint;
6750 (yyval.interm.type).setVector(2);
6751 }
6752 #line 6753 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6753 break;
6754
6755 case 250:
6756 #line 1848 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6757 {
6758 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6759 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6760 (yyval.interm.type).basicType = EbtUint;
6761 (yyval.interm.type).setVector(3);
6762 }
6763 #line 6764 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6764 break;
6765
6766 case 251:
6767 #line 1854 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6768 {
6769 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6770 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6771 (yyval.interm.type).basicType = EbtUint;
6772 (yyval.interm.type).setVector(4);
6773 }
6774 #line 6775 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6775 break;
6776
6777 case 252:
6778 #line 1860 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6779 {
6780 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6781 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6782 (yyval.interm.type).basicType = EbtUint8;
6783 (yyval.interm.type).setVector(2);
6784 }
6785 #line 6786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6786 break;
6787
6788 case 253:
6789 #line 1866 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6790 {
6791 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6792 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6793 (yyval.interm.type).basicType = EbtUint8;
6794 (yyval.interm.type).setVector(3);
6795 }
6796 #line 6797 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6797 break;
6798
6799 case 254:
6800 #line 1872 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6801 {
6802 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6803 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6804 (yyval.interm.type).basicType = EbtUint8;
6805 (yyval.interm.type).setVector(4);
6806 }
6807 #line 6808 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6808 break;
6809
6810 case 255:
6811 #line 1878 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6812 {
6813 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6814 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6815 (yyval.interm.type).basicType = EbtUint16;
6816 (yyval.interm.type).setVector(2);
6817 }
6818 #line 6819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6819 break;
6820
6821 case 256:
6822 #line 1884 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6823 {
6824 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6825 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6826 (yyval.interm.type).basicType = EbtUint16;
6827 (yyval.interm.type).setVector(3);
6828 }
6829 #line 6830 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6830 break;
6831
6832 case 257:
6833 #line 1890 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6834 {
6835 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6836 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6837 (yyval.interm.type).basicType = EbtUint16;
6838 (yyval.interm.type).setVector(4);
6839 }
6840 #line 6841 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6841 break;
6842
6843 case 258:
6844 #line 1896 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6845 {
6846 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6847 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6848 (yyval.interm.type).basicType = EbtUint;
6849 (yyval.interm.type).setVector(2);
6850 }
6851 #line 6852 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6852 break;
6853
6854 case 259:
6855 #line 1902 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6856 {
6857 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6858 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6859 (yyval.interm.type).basicType = EbtUint;
6860 (yyval.interm.type).setVector(3);
6861 }
6862 #line 6863 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6863 break;
6864
6865 case 260:
6866 #line 1908 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6867 {
6868 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6869 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6870 (yyval.interm.type).basicType = EbtUint;
6871 (yyval.interm.type).setVector(4);
6872 }
6873 #line 6874 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6874 break;
6875
6876 case 261:
6877 #line 1914 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6878 {
6879 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6880 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6881 (yyval.interm.type).basicType = EbtUint64;
6882 (yyval.interm.type).setVector(2);
6883 }
6884 #line 6885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6885 break;
6886
6887 case 262:
6888 #line 1920 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6889 {
6890 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6891 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6892 (yyval.interm.type).basicType = EbtUint64;
6893 (yyval.interm.type).setVector(3);
6894 }
6895 #line 6896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6896 break;
6897
6898 case 263:
6899 #line 1926 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6900 {
6901 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
6902 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6903 (yyval.interm.type).basicType = EbtUint64;
6904 (yyval.interm.type).setVector(4);
6905 }
6906 #line 6907 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6907 break;
6908
6909 case 264:
6910 #line 1932 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6911 {
6912 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6913 (yyval.interm.type).basicType = EbtFloat;
6914 (yyval.interm.type).setMatrix(2, 2);
6915 }
6916 #line 6917 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6917 break;
6918
6919 case 265:
6920 #line 1937 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6921 {
6922 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6923 (yyval.interm.type).basicType = EbtFloat;
6924 (yyval.interm.type).setMatrix(3, 3);
6925 }
6926 #line 6927 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6927 break;
6928
6929 case 266:
6930 #line 1942 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6931 {
6932 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6933 (yyval.interm.type).basicType = EbtFloat;
6934 (yyval.interm.type).setMatrix(4, 4);
6935 }
6936 #line 6937 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6937 break;
6938
6939 case 267:
6940 #line 1947 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6941 {
6942 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6943 (yyval.interm.type).basicType = EbtFloat;
6944 (yyval.interm.type).setMatrix(2, 2);
6945 }
6946 #line 6947 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6947 break;
6948
6949 case 268:
6950 #line 1952 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6951 {
6952 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6953 (yyval.interm.type).basicType = EbtFloat;
6954 (yyval.interm.type).setMatrix(2, 3);
6955 }
6956 #line 6957 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6957 break;
6958
6959 case 269:
6960 #line 1957 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6961 {
6962 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6963 (yyval.interm.type).basicType = EbtFloat;
6964 (yyval.interm.type).setMatrix(2, 4);
6965 }
6966 #line 6967 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6967 break;
6968
6969 case 270:
6970 #line 1962 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6971 {
6972 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6973 (yyval.interm.type).basicType = EbtFloat;
6974 (yyval.interm.type).setMatrix(3, 2);
6975 }
6976 #line 6977 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6977 break;
6978
6979 case 271:
6980 #line 1967 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6981 {
6982 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6983 (yyval.interm.type).basicType = EbtFloat;
6984 (yyval.interm.type).setMatrix(3, 3);
6985 }
6986 #line 6987 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6987 break;
6988
6989 case 272:
6990 #line 1972 "MachineIndependent/glslang.y" /* yacc.c:1646 */
6991 {
6992 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6993 (yyval.interm.type).basicType = EbtFloat;
6994 (yyval.interm.type).setMatrix(3, 4);
6995 }
6996 #line 6997 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
6997 break;
6998
6999 case 273:
7000 #line 1977 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7001 {
7002 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7003 (yyval.interm.type).basicType = EbtFloat;
7004 (yyval.interm.type).setMatrix(4, 2);
7005 }
7006 #line 7007 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7007 break;
7008
7009 case 274:
7010 #line 1982 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7011 {
7012 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7013 (yyval.interm.type).basicType = EbtFloat;
7014 (yyval.interm.type).setMatrix(4, 3);
7015 }
7016 #line 7017 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7017 break;
7018
7019 case 275:
7020 #line 1987 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7021 {
7022 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7023 (yyval.interm.type).basicType = EbtFloat;
7024 (yyval.interm.type).setMatrix(4, 4);
7025 }
7026 #line 7027 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7027 break;
7028
7029 case 276:
7030 #line 1992 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7031 {
7032 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7033 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7034 (yyval.interm.type).basicType = EbtDouble;
7035 (yyval.interm.type).setMatrix(2, 2);
7036 }
7037 #line 7038 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7038 break;
7039
7040 case 277:
7041 #line 1998 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7042 {
7043 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7044 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7045 (yyval.interm.type).basicType = EbtDouble;
7046 (yyval.interm.type).setMatrix(3, 3);
7047 }
7048 #line 7049 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7049 break;
7050
7051 case 278:
7052 #line 2004 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7053 {
7054 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7055 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7056 (yyval.interm.type).basicType = EbtDouble;
7057 (yyval.interm.type).setMatrix(4, 4);
7058 }
7059 #line 7060 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7060 break;
7061
7062 case 279:
7063 #line 2010 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7064 {
7065 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7066 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7067 (yyval.interm.type).basicType = EbtDouble;
7068 (yyval.interm.type).setMatrix(2, 2);
7069 }
7070 #line 7071 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7071 break;
7072
7073 case 280:
7074 #line 2016 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7075 {
7076 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7077 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7078 (yyval.interm.type).basicType = EbtDouble;
7079 (yyval.interm.type).setMatrix(2, 3);
7080 }
7081 #line 7082 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7082 break;
7083
7084 case 281:
7085 #line 2022 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7086 {
7087 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7088 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7089 (yyval.interm.type).basicType = EbtDouble;
7090 (yyval.interm.type).setMatrix(2, 4);
7091 }
7092 #line 7093 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7093 break;
7094
7095 case 282:
7096 #line 2028 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7097 {
7098 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7099 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7100 (yyval.interm.type).basicType = EbtDouble;
7101 (yyval.interm.type).setMatrix(3, 2);
7102 }
7103 #line 7104 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7104 break;
7105
7106 case 283:
7107 #line 2034 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7108 {
7109 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7110 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7111 (yyval.interm.type).basicType = EbtDouble;
7112 (yyval.interm.type).setMatrix(3, 3);
7113 }
7114 #line 7115 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7115 break;
7116
7117 case 284:
7118 #line 2040 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7119 {
7120 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7121 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7122 (yyval.interm.type).basicType = EbtDouble;
7123 (yyval.interm.type).setMatrix(3, 4);
7124 }
7125 #line 7126 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7126 break;
7127
7128 case 285:
7129 #line 2046 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7130 {
7131 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7132 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7133 (yyval.interm.type).basicType = EbtDouble;
7134 (yyval.interm.type).setMatrix(4, 2);
7135 }
7136 #line 7137 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7137 break;
7138
7139 case 286:
7140 #line 2052 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7141 {
7142 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7143 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7144 (yyval.interm.type).basicType = EbtDouble;
7145 (yyval.interm.type).setMatrix(4, 3);
7146 }
7147 #line 7148 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7148 break;
7149
7150 case 287:
7151 #line 2058 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7152 {
7153 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7154 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7155 (yyval.interm.type).basicType = EbtDouble;
7156 (yyval.interm.type).setMatrix(4, 4);
7157 }
7158 #line 7159 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7159 break;
7160
7161 case 288:
7162 #line 2064 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7163 {
7164 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7165 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7166 (yyval.interm.type).basicType = EbtFloat16;
7167 (yyval.interm.type).setMatrix(2, 2);
7168 }
7169 #line 7170 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7170 break;
7171
7172 case 289:
7173 #line 2070 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7174 {
7175 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7176 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7177 (yyval.interm.type).basicType = EbtFloat16;
7178 (yyval.interm.type).setMatrix(3, 3);
7179 }
7180 #line 7181 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7181 break;
7182
7183 case 290:
7184 #line 2076 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7185 {
7186 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7187 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7188 (yyval.interm.type).basicType = EbtFloat16;
7189 (yyval.interm.type).setMatrix(4, 4);
7190 }
7191 #line 7192 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7192 break;
7193
7194 case 291:
7195 #line 2082 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7196 {
7197 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7198 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7199 (yyval.interm.type).basicType = EbtFloat16;
7200 (yyval.interm.type).setMatrix(2, 2);
7201 }
7202 #line 7203 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7203 break;
7204
7205 case 292:
7206 #line 2088 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7207 {
7208 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7209 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7210 (yyval.interm.type).basicType = EbtFloat16;
7211 (yyval.interm.type).setMatrix(2, 3);
7212 }
7213 #line 7214 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7214 break;
7215
7216 case 293:
7217 #line 2094 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7218 {
7219 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7220 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7221 (yyval.interm.type).basicType = EbtFloat16;
7222 (yyval.interm.type).setMatrix(2, 4);
7223 }
7224 #line 7225 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7225 break;
7226
7227 case 294:
7228 #line 2100 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7229 {
7230 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7231 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7232 (yyval.interm.type).basicType = EbtFloat16;
7233 (yyval.interm.type).setMatrix(3, 2);
7234 }
7235 #line 7236 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7236 break;
7237
7238 case 295:
7239 #line 2106 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7240 {
7241 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7242 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7243 (yyval.interm.type).basicType = EbtFloat16;
7244 (yyval.interm.type).setMatrix(3, 3);
7245 }
7246 #line 7247 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7247 break;
7248
7249 case 296:
7250 #line 2112 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7251 {
7252 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7253 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7254 (yyval.interm.type).basicType = EbtFloat16;
7255 (yyval.interm.type).setMatrix(3, 4);
7256 }
7257 #line 7258 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7258 break;
7259
7260 case 297:
7261 #line 2118 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7262 {
7263 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7264 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7265 (yyval.interm.type).basicType = EbtFloat16;
7266 (yyval.interm.type).setMatrix(4, 2);
7267 }
7268 #line 7269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7269 break;
7270
7271 case 298:
7272 #line 2124 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7273 {
7274 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7275 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7276 (yyval.interm.type).basicType = EbtFloat16;
7277 (yyval.interm.type).setMatrix(4, 3);
7278 }
7279 #line 7280 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7280 break;
7281
7282 case 299:
7283 #line 2130 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7284 {
7285 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7286 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7287 (yyval.interm.type).basicType = EbtFloat16;
7288 (yyval.interm.type).setMatrix(4, 4);
7289 }
7290 #line 7291 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7291 break;
7292
7293 case 300:
7294 #line 2136 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7295 {
7296 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7297 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7298 (yyval.interm.type).basicType = EbtFloat;
7299 (yyval.interm.type).setMatrix(2, 2);
7300 }
7301 #line 7302 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7302 break;
7303
7304 case 301:
7305 #line 2142 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7306 {
7307 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7308 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7309 (yyval.interm.type).basicType = EbtFloat;
7310 (yyval.interm.type).setMatrix(3, 3);
7311 }
7312 #line 7313 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7313 break;
7314
7315 case 302:
7316 #line 2148 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7317 {
7318 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7319 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7320 (yyval.interm.type).basicType = EbtFloat;
7321 (yyval.interm.type).setMatrix(4, 4);
7322 }
7323 #line 7324 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7324 break;
7325
7326 case 303:
7327 #line 2154 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7328 {
7329 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7330 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7331 (yyval.interm.type).basicType = EbtFloat;
7332 (yyval.interm.type).setMatrix(2, 2);
7333 }
7334 #line 7335 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7335 break;
7336
7337 case 304:
7338 #line 2160 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7339 {
7340 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7341 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7342 (yyval.interm.type).basicType = EbtFloat;
7343 (yyval.interm.type).setMatrix(2, 3);
7344 }
7345 #line 7346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7346 break;
7347
7348 case 305:
7349 #line 2166 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7350 {
7351 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7352 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7353 (yyval.interm.type).basicType = EbtFloat;
7354 (yyval.interm.type).setMatrix(2, 4);
7355 }
7356 #line 7357 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7357 break;
7358
7359 case 306:
7360 #line 2172 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7361 {
7362 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7363 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7364 (yyval.interm.type).basicType = EbtFloat;
7365 (yyval.interm.type).setMatrix(3, 2);
7366 }
7367 #line 7368 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7368 break;
7369
7370 case 307:
7371 #line 2178 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7372 {
7373 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7374 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7375 (yyval.interm.type).basicType = EbtFloat;
7376 (yyval.interm.type).setMatrix(3, 3);
7377 }
7378 #line 7379 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7379 break;
7380
7381 case 308:
7382 #line 2184 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7383 {
7384 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7385 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7386 (yyval.interm.type).basicType = EbtFloat;
7387 (yyval.interm.type).setMatrix(3, 4);
7388 }
7389 #line 7390 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7390 break;
7391
7392 case 309:
7393 #line 2190 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7394 {
7395 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7396 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7397 (yyval.interm.type).basicType = EbtFloat;
7398 (yyval.interm.type).setMatrix(4, 2);
7399 }
7400 #line 7401 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7401 break;
7402
7403 case 310:
7404 #line 2196 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7405 {
7406 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7407 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7408 (yyval.interm.type).basicType = EbtFloat;
7409 (yyval.interm.type).setMatrix(4, 3);
7410 }
7411 #line 7412 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7412 break;
7413
7414 case 311:
7415 #line 2202 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7416 {
7417 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7418 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7419 (yyval.interm.type).basicType = EbtFloat;
7420 (yyval.interm.type).setMatrix(4, 4);
7421 }
7422 #line 7423 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7423 break;
7424
7425 case 312:
7426 #line 2208 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7427 {
7428 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7429 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7430 (yyval.interm.type).basicType = EbtDouble;
7431 (yyval.interm.type).setMatrix(2, 2);
7432 }
7433 #line 7434 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7434 break;
7435
7436 case 313:
7437 #line 2214 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7438 {
7439 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7440 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7441 (yyval.interm.type).basicType = EbtDouble;
7442 (yyval.interm.type).setMatrix(3, 3);
7443 }
7444 #line 7445 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7445 break;
7446
7447 case 314:
7448 #line 2220 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7449 {
7450 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7451 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7452 (yyval.interm.type).basicType = EbtDouble;
7453 (yyval.interm.type).setMatrix(4, 4);
7454 }
7455 #line 7456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7456 break;
7457
7458 case 315:
7459 #line 2226 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7460 {
7461 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7462 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7463 (yyval.interm.type).basicType = EbtDouble;
7464 (yyval.interm.type).setMatrix(2, 2);
7465 }
7466 #line 7467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7467 break;
7468
7469 case 316:
7470 #line 2232 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7471 {
7472 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7473 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7474 (yyval.interm.type).basicType = EbtDouble;
7475 (yyval.interm.type).setMatrix(2, 3);
7476 }
7477 #line 7478 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7478 break;
7479
7480 case 317:
7481 #line 2238 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7482 {
7483 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7484 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7485 (yyval.interm.type).basicType = EbtDouble;
7486 (yyval.interm.type).setMatrix(2, 4);
7487 }
7488 #line 7489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7489 break;
7490
7491 case 318:
7492 #line 2244 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7493 {
7494 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7495 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7496 (yyval.interm.type).basicType = EbtDouble;
7497 (yyval.interm.type).setMatrix(3, 2);
7498 }
7499 #line 7500 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7500 break;
7501
7502 case 319:
7503 #line 2250 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7504 {
7505 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7506 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7507 (yyval.interm.type).basicType = EbtDouble;
7508 (yyval.interm.type).setMatrix(3, 3);
7509 }
7510 #line 7511 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7511 break;
7512
7513 case 320:
7514 #line 2256 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7515 {
7516 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7517 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7518 (yyval.interm.type).basicType = EbtDouble;
7519 (yyval.interm.type).setMatrix(3, 4);
7520 }
7521 #line 7522 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7522 break;
7523
7524 case 321:
7525 #line 2262 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7526 {
7527 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7528 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7529 (yyval.interm.type).basicType = EbtDouble;
7530 (yyval.interm.type).setMatrix(4, 2);
7531 }
7532 #line 7533 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7533 break;
7534
7535 case 322:
7536 #line 2268 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7537 {
7538 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7539 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7540 (yyval.interm.type).basicType = EbtDouble;
7541 (yyval.interm.type).setMatrix(4, 3);
7542 }
7543 #line 7544 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7544 break;
7545
7546 case 323:
7547 #line 2274 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7548 {
7549 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7550 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7551 (yyval.interm.type).basicType = EbtDouble;
7552 (yyval.interm.type).setMatrix(4, 4);
7553 }
7554 #line 7555 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7555 break;
7556
7557 case 324:
7558 #line 2280 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7559 {
7560 #ifdef NV_EXTENSIONS
7561 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7562 (yyval.interm.type).basicType = EbtAccStructNV;
7563 #endif
7564 }
7565 #line 7566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7566 break;
7567
7568 case 325:
7569 #line 2286 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7570 {
7571 parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types");
7572 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7573 (yyval.interm.type).basicType = EbtAtomicUint;
7574 }
7575 #line 7576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7576 break;
7577
7578 case 326:
7579 #line 2291 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7580 {
7581 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7582 (yyval.interm.type).basicType = EbtSampler;
7583 (yyval.interm.type).sampler.set(EbtFloat, Esd1D);
7584 }
7585 #line 7586 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7586 break;
7587
7588 case 327:
7589 #line 2296 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7590 {
7591 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7592 (yyval.interm.type).basicType = EbtSampler;
7593 (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
7594 }
7595 #line 7596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7596 break;
7597
7598 case 328:
7599 #line 2301 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7600 {
7601 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7602 (yyval.interm.type).basicType = EbtSampler;
7603 (yyval.interm.type).sampler.set(EbtFloat, Esd3D);
7604 }
7605 #line 7606 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7606 break;
7607
7608 case 329:
7609 #line 2306 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7610 {
7611 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7612 (yyval.interm.type).basicType = EbtSampler;
7613 (yyval.interm.type).sampler.set(EbtFloat, EsdCube);
7614 }
7615 #line 7616 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7616 break;
7617
7618 case 330:
7619 #line 2311 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7620 {
7621 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7622 (yyval.interm.type).basicType = EbtSampler;
7623 (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
7624 }
7625 #line 7626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7626 break;
7627
7628 case 331:
7629 #line 2316 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7630 {
7631 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7632 (yyval.interm.type).basicType = EbtSampler;
7633 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
7634 }
7635 #line 7636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7636 break;
7637
7638 case 332:
7639 #line 2321 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7640 {
7641 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7642 (yyval.interm.type).basicType = EbtSampler;
7643 (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
7644 }
7645 #line 7646 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7646 break;
7647
7648 case 333:
7649 #line 2326 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7650 {
7651 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7652 (yyval.interm.type).basicType = EbtSampler;
7653 (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
7654 }
7655 #line 7656 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7656 break;
7657
7658 case 334:
7659 #line 2331 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7660 {
7661 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7662 (yyval.interm.type).basicType = EbtSampler;
7663 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
7664 }
7665 #line 7666 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7666 break;
7667
7668 case 335:
7669 #line 2336 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7670 {
7671 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7672 (yyval.interm.type).basicType = EbtSampler;
7673 (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
7674 }
7675 #line 7676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7676 break;
7677
7678 case 336:
7679 #line 2341 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7680 {
7681 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7682 (yyval.interm.type).basicType = EbtSampler;
7683 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
7684 }
7685 #line 7686 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7686 break;
7687
7688 case 337:
7689 #line 2346 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7690 {
7691 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7692 (yyval.interm.type).basicType = EbtSampler;
7693 (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
7694 }
7695 #line 7696 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7696 break;
7697
7698 case 338:
7699 #line 2351 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7700 {
7701 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7702 (yyval.interm.type).basicType = EbtSampler;
7703 (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
7704 }
7705 #line 7706 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7706 break;
7707
7708 case 339:
7709 #line 2356 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7710 {
7711 #ifdef AMD_EXTENSIONS
7712 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7713 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7714 (yyval.interm.type).basicType = EbtSampler;
7715 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D);
7716 #endif
7717 }
7718 #line 7719 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7719 break;
7720
7721 case 340:
7722 #line 2364 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7723 {
7724 #ifdef AMD_EXTENSIONS
7725 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7726 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7727 (yyval.interm.type).basicType = EbtSampler;
7728 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D);
7729 #endif
7730 }
7731 #line 7732 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7732 break;
7733
7734 case 341:
7735 #line 2372 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7736 {
7737 #ifdef AMD_EXTENSIONS
7738 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7739 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7740 (yyval.interm.type).basicType = EbtSampler;
7741 (yyval.interm.type).sampler.set(EbtFloat16, Esd3D);
7742 #endif
7743 }
7744 #line 7745 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7745 break;
7746
7747 case 342:
7748 #line 2380 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7749 {
7750 #ifdef AMD_EXTENSIONS
7751 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7752 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7753 (yyval.interm.type).basicType = EbtSampler;
7754 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube);
7755 #endif
7756 }
7757 #line 7758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7758 break;
7759
7760 case 343:
7761 #line 2388 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7762 {
7763 #ifdef AMD_EXTENSIONS
7764 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7765 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7766 (yyval.interm.type).basicType = EbtSampler;
7767 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true);
7768 #endif
7769 }
7770 #line 7771 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7771 break;
7772
7773 case 344:
7774 #line 2396 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7775 {
7776 #ifdef AMD_EXTENSIONS
7777 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7778 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7779 (yyval.interm.type).basicType = EbtSampler;
7780 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true);
7781 #endif
7782 }
7783 #line 7784 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7784 break;
7785
7786 case 345:
7787 #line 2404 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7788 {
7789 #ifdef AMD_EXTENSIONS
7790 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7791 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7792 (yyval.interm.type).basicType = EbtSampler;
7793 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true);
7794 #endif
7795 }
7796 #line 7797 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7797 break;
7798
7799 case 346:
7800 #line 2412 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7801 {
7802 #ifdef AMD_EXTENSIONS
7803 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7804 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7805 (yyval.interm.type).basicType = EbtSampler;
7806 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true);
7807 #endif
7808 }
7809 #line 7810 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7810 break;
7811
7812 case 347:
7813 #line 2420 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7814 {
7815 #ifdef AMD_EXTENSIONS
7816 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7817 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7818 (yyval.interm.type).basicType = EbtSampler;
7819 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true);
7820 #endif
7821 }
7822 #line 7823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7823 break;
7824
7825 case 348:
7826 #line 2428 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7827 {
7828 #ifdef AMD_EXTENSIONS
7829 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7830 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7831 (yyval.interm.type).basicType = EbtSampler;
7832 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true);
7833 #endif
7834 }
7835 #line 7836 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7836 break;
7837
7838 case 349:
7839 #line 2436 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7840 {
7841 #ifdef AMD_EXTENSIONS
7842 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7843 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7844 (yyval.interm.type).basicType = EbtSampler;
7845 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true);
7846 #endif
7847 }
7848 #line 7849 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7849 break;
7850
7851 case 350:
7852 #line 2444 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7853 {
7854 #ifdef AMD_EXTENSIONS
7855 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7856 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7857 (yyval.interm.type).basicType = EbtSampler;
7858 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true);
7859 #endif
7860 }
7861 #line 7862 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7862 break;
7863
7864 case 351:
7865 #line 2452 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7866 {
7867 #ifdef AMD_EXTENSIONS
7868 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7869 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7870 (yyval.interm.type).basicType = EbtSampler;
7871 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true);
7872 #endif
7873 }
7874 #line 7875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7875 break;
7876
7877 case 352:
7878 #line 2460 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7879 {
7880 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7881 (yyval.interm.type).basicType = EbtSampler;
7882 (yyval.interm.type).sampler.set(EbtInt, Esd1D);
7883 }
7884 #line 7885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7885 break;
7886
7887 case 353:
7888 #line 2465 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7889 {
7890 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7891 (yyval.interm.type).basicType = EbtSampler;
7892 (yyval.interm.type).sampler.set(EbtInt, Esd2D);
7893 }
7894 #line 7895 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7895 break;
7896
7897 case 354:
7898 #line 2470 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7899 {
7900 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7901 (yyval.interm.type).basicType = EbtSampler;
7902 (yyval.interm.type).sampler.set(EbtInt, Esd3D);
7903 }
7904 #line 7905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7905 break;
7906
7907 case 355:
7908 #line 2475 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7909 {
7910 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7911 (yyval.interm.type).basicType = EbtSampler;
7912 (yyval.interm.type).sampler.set(EbtInt, EsdCube);
7913 }
7914 #line 7915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7915 break;
7916
7917 case 356:
7918 #line 2480 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7919 {
7920 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7921 (yyval.interm.type).basicType = EbtSampler;
7922 (yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
7923 }
7924 #line 7925 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7925 break;
7926
7927 case 357:
7928 #line 2485 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7929 {
7930 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7931 (yyval.interm.type).basicType = EbtSampler;
7932 (yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
7933 }
7934 #line 7935 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7935 break;
7936
7937 case 358:
7938 #line 2490 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7939 {
7940 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7941 (yyval.interm.type).basicType = EbtSampler;
7942 (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
7943 }
7944 #line 7945 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7945 break;
7946
7947 case 359:
7948 #line 2495 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7949 {
7950 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7951 (yyval.interm.type).basicType = EbtSampler;
7952 (yyval.interm.type).sampler.set(EbtUint, Esd1D);
7953 }
7954 #line 7955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7955 break;
7956
7957 case 360:
7958 #line 2500 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7959 {
7960 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7961 (yyval.interm.type).basicType = EbtSampler;
7962 (yyval.interm.type).sampler.set(EbtUint, Esd2D);
7963 }
7964 #line 7965 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7965 break;
7966
7967 case 361:
7968 #line 2505 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7969 {
7970 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7971 (yyval.interm.type).basicType = EbtSampler;
7972 (yyval.interm.type).sampler.set(EbtUint, Esd3D);
7973 }
7974 #line 7975 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7975 break;
7976
7977 case 362:
7978 #line 2510 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7979 {
7980 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7981 (yyval.interm.type).basicType = EbtSampler;
7982 (yyval.interm.type).sampler.set(EbtUint, EsdCube);
7983 }
7984 #line 7985 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7985 break;
7986
7987 case 363:
7988 #line 2515 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7989 {
7990 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7991 (yyval.interm.type).basicType = EbtSampler;
7992 (yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
7993 }
7994 #line 7995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
7995 break;
7996
7997 case 364:
7998 #line 2520 "MachineIndependent/glslang.y" /* yacc.c:1646 */
7999 {
8000 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8001 (yyval.interm.type).basicType = EbtSampler;
8002 (yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
8003 }
8004 #line 8005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8005 break;
8006
8007 case 365:
8008 #line 2525 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8009 {
8010 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8011 (yyval.interm.type).basicType = EbtSampler;
8012 (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
8013 }
8014 #line 8015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8015 break;
8016
8017 case 366:
8018 #line 2530 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8019 {
8020 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8021 (yyval.interm.type).basicType = EbtSampler;
8022 (yyval.interm.type).sampler.set(EbtFloat, EsdRect);
8023 }
8024 #line 8025 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8025 break;
8026
8027 case 367:
8028 #line 2535 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8029 {
8030 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8031 (yyval.interm.type).basicType = EbtSampler;
8032 (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
8033 }
8034 #line 8035 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8035 break;
8036
8037 case 368:
8038 #line 2540 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8039 {
8040 #ifdef AMD_EXTENSIONS
8041 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8042 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8043 (yyval.interm.type).basicType = EbtSampler;
8044 (yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
8045 #endif
8046 }
8047 #line 8048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8048 break;
8049
8050 case 369:
8051 #line 2548 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8052 {
8053 #ifdef AMD_EXTENSIONS
8054 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8055 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8056 (yyval.interm.type).basicType = EbtSampler;
8057 (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
8058 #endif
8059 }
8060 #line 8061 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8061 break;
8062
8063 case 370:
8064 #line 2556 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8065 {
8066 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8067 (yyval.interm.type).basicType = EbtSampler;
8068 (yyval.interm.type).sampler.set(EbtInt, EsdRect);
8069 }
8070 #line 8071 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8071 break;
8072
8073 case 371:
8074 #line 2561 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8075 {
8076 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8077 (yyval.interm.type).basicType = EbtSampler;
8078 (yyval.interm.type).sampler.set(EbtUint, EsdRect);
8079 }
8080 #line 8081 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8081 break;
8082
8083 case 372:
8084 #line 2566 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8085 {
8086 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8087 (yyval.interm.type).basicType = EbtSampler;
8088 (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
8089 }
8090 #line 8091 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8091 break;
8092
8093 case 373:
8094 #line 2571 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8095 {
8096 #ifdef AMD_EXTENSIONS
8097 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8098 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8099 (yyval.interm.type).basicType = EbtSampler;
8100 (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
8101 #endif
8102 }
8103 #line 8104 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8104 break;
8105
8106 case 374:
8107 #line 2579 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8108 {
8109 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8110 (yyval.interm.type).basicType = EbtSampler;
8111 (yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
8112 }
8113 #line 8114 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8114 break;
8115
8116 case 375:
8117 #line 2584 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8118 {
8119 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8120 (yyval.interm.type).basicType = EbtSampler;
8121 (yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
8122 }
8123 #line 8124 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8124 break;
8125
8126 case 376:
8127 #line 2589 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8128 {
8129 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8130 (yyval.interm.type).basicType = EbtSampler;
8131 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
8132 }
8133 #line 8134 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8134 break;
8135
8136 case 377:
8137 #line 2594 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8138 {
8139 #ifdef AMD_EXTENSIONS
8140 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8141 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8142 (yyval.interm.type).basicType = EbtSampler;
8143 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
8144 #endif
8145 }
8146 #line 8147 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8147 break;
8148
8149 case 378:
8150 #line 2602 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8151 {
8152 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8153 (yyval.interm.type).basicType = EbtSampler;
8154 (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
8155 }
8156 #line 8157 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8157 break;
8158
8159 case 379:
8160 #line 2607 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8161 {
8162 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8163 (yyval.interm.type).basicType = EbtSampler;
8164 (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
8165 }
8166 #line 8167 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8167 break;
8168
8169 case 380:
8170 #line 2612 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8171 {
8172 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8173 (yyval.interm.type).basicType = EbtSampler;
8174 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
8175 }
8176 #line 8177 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8177 break;
8178
8179 case 381:
8180 #line 2617 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8181 {
8182 #ifdef AMD_EXTENSIONS
8183 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8184 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8185 (yyval.interm.type).basicType = EbtSampler;
8186 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
8187 #endif
8188 }
8189 #line 8190 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8190 break;
8191
8192 case 382:
8193 #line 2625 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8194 {
8195 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8196 (yyval.interm.type).basicType = EbtSampler;
8197 (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
8198 }
8199 #line 8200 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8200 break;
8201
8202 case 383:
8203 #line 2630 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8204 {
8205 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8206 (yyval.interm.type).basicType = EbtSampler;
8207 (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
8208 }
8209 #line 8210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8210 break;
8211
8212 case 384:
8213 #line 2635 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8214 {
8215 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8216 (yyval.interm.type).basicType = EbtSampler;
8217 (yyval.interm.type).sampler.setPureSampler(false);
8218 }
8219 #line 8220 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8220 break;
8221
8222 case 385:
8223 #line 2640 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8224 {
8225 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8226 (yyval.interm.type).basicType = EbtSampler;
8227 (yyval.interm.type).sampler.setPureSampler(true);
8228 }
8229 #line 8230 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8230 break;
8231
8232 case 386:
8233 #line 2645 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8234 {
8235 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8236 (yyval.interm.type).basicType = EbtSampler;
8237 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
8238 }
8239 #line 8240 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8240 break;
8241
8242 case 387:
8243 #line 2650 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8244 {
8245 #ifdef AMD_EXTENSIONS
8246 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8247 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8248 (yyval.interm.type).basicType = EbtSampler;
8249 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
8250 #endif
8251 }
8252 #line 8253 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8253 break;
8254
8255 case 388:
8256 #line 2658 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8257 {
8258 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8259 (yyval.interm.type).basicType = EbtSampler;
8260 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
8261 }
8262 #line 8263 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8263 break;
8264
8265 case 389:
8266 #line 2663 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8267 {
8268 #ifdef AMD_EXTENSIONS
8269 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8270 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8271 (yyval.interm.type).basicType = EbtSampler;
8272 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
8273 #endif
8274 }
8275 #line 8276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8276 break;
8277
8278 case 390:
8279 #line 2671 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8280 {
8281 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8282 (yyval.interm.type).basicType = EbtSampler;
8283 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
8284 }
8285 #line 8286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8286 break;
8287
8288 case 391:
8289 #line 2676 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8290 {
8291 #ifdef AMD_EXTENSIONS
8292 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8293 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8294 (yyval.interm.type).basicType = EbtSampler;
8295 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
8296 #endif
8297 }
8298 #line 8299 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8299 break;
8300
8301 case 392:
8302 #line 2684 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8303 {
8304 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8305 (yyval.interm.type).basicType = EbtSampler;
8306 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
8307 }
8308 #line 8309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8309 break;
8310
8311 case 393:
8312 #line 2689 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8313 {
8314 #ifdef AMD_EXTENSIONS
8315 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8316 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8317 (yyval.interm.type).basicType = EbtSampler;
8318 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
8319 #endif
8320 }
8321 #line 8322 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8322 break;
8323
8324 case 394:
8325 #line 2697 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8326 {
8327 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8328 (yyval.interm.type).basicType = EbtSampler;
8329 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
8330 }
8331 #line 8332 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8332 break;
8333
8334 case 395:
8335 #line 2702 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8336 {
8337 #ifdef AMD_EXTENSIONS
8338 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8339 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8340 (yyval.interm.type).basicType = EbtSampler;
8341 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
8342 #endif
8343 }
8344 #line 8345 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8345 break;
8346
8347 case 396:
8348 #line 2710 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8349 {
8350 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8351 (yyval.interm.type).basicType = EbtSampler;
8352 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
8353 }
8354 #line 8355 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8355 break;
8356
8357 case 397:
8358 #line 2715 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8359 {
8360 #ifdef AMD_EXTENSIONS
8361 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8362 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8363 (yyval.interm.type).basicType = EbtSampler;
8364 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true);
8365 #endif
8366 }
8367 #line 8368 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8368 break;
8369
8370 case 398:
8371 #line 2723 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8372 {
8373 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8374 (yyval.interm.type).basicType = EbtSampler;
8375 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
8376 }
8377 #line 8378 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8378 break;
8379
8380 case 399:
8381 #line 2728 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8382 {
8383 #ifdef AMD_EXTENSIONS
8384 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8385 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8386 (yyval.interm.type).basicType = EbtSampler;
8387 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
8388 #endif
8389 }
8390 #line 8391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8391 break;
8392
8393 case 400:
8394 #line 2736 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8395 {
8396 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8397 (yyval.interm.type).basicType = EbtSampler;
8398 (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
8399 }
8400 #line 8401 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8401 break;
8402
8403 case 401:
8404 #line 2741 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8405 {
8406 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8407 (yyval.interm.type).basicType = EbtSampler;
8408 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
8409 }
8410 #line 8411 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8411 break;
8412
8413 case 402:
8414 #line 2746 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8415 {
8416 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8417 (yyval.interm.type).basicType = EbtSampler;
8418 (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
8419 }
8420 #line 8421 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8421 break;
8422
8423 case 403:
8424 #line 2751 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8425 {
8426 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8427 (yyval.interm.type).basicType = EbtSampler;
8428 (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
8429 }
8430 #line 8431 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8431 break;
8432
8433 case 404:
8434 #line 2756 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8435 {
8436 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8437 (yyval.interm.type).basicType = EbtSampler;
8438 (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
8439 }
8440 #line 8441 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8441 break;
8442
8443 case 405:
8444 #line 2761 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8445 {
8446 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8447 (yyval.interm.type).basicType = EbtSampler;
8448 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
8449 }
8450 #line 8451 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8451 break;
8452
8453 case 406:
8454 #line 2766 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8455 {
8456 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8457 (yyval.interm.type).basicType = EbtSampler;
8458 (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
8459 }
8460 #line 8461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8461 break;
8462
8463 case 407:
8464 #line 2771 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8465 {
8466 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8467 (yyval.interm.type).basicType = EbtSampler;
8468 (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
8469 }
8470 #line 8471 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8471 break;
8472
8473 case 408:
8474 #line 2776 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8475 {
8476 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8477 (yyval.interm.type).basicType = EbtSampler;
8478 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
8479 }
8480 #line 8481 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8481 break;
8482
8483 case 409:
8484 #line 2781 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8485 {
8486 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8487 (yyval.interm.type).basicType = EbtSampler;
8488 (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
8489 }
8490 #line 8491 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8491 break;
8492
8493 case 410:
8494 #line 2786 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8495 {
8496 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8497 (yyval.interm.type).basicType = EbtSampler;
8498 (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
8499 }
8500 #line 8501 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8501 break;
8502
8503 case 411:
8504 #line 2791 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8505 {
8506 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8507 (yyval.interm.type).basicType = EbtSampler;
8508 (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
8509 }
8510 #line 8511 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8511 break;
8512
8513 case 412:
8514 #line 2796 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8515 {
8516 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8517 (yyval.interm.type).basicType = EbtSampler;
8518 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
8519 }
8520 #line 8521 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8521 break;
8522
8523 case 413:
8524 #line 2801 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8525 {
8526 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8527 (yyval.interm.type).basicType = EbtSampler;
8528 (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
8529 }
8530 #line 8531 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8531 break;
8532
8533 case 414:
8534 #line 2806 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8535 {
8536 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8537 (yyval.interm.type).basicType = EbtSampler;
8538 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
8539 }
8540 #line 8541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8541 break;
8542
8543 case 415:
8544 #line 2811 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8545 {
8546 #ifdef AMD_EXTENSIONS
8547 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8548 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8549 (yyval.interm.type).basicType = EbtSampler;
8550 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect);
8551 #endif
8552 }
8553 #line 8554 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8554 break;
8555
8556 case 416:
8557 #line 2819 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8558 {
8559 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8560 (yyval.interm.type).basicType = EbtSampler;
8561 (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
8562 }
8563 #line 8564 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8564 break;
8565
8566 case 417:
8567 #line 2824 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8568 {
8569 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8570 (yyval.interm.type).basicType = EbtSampler;
8571 (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
8572 }
8573 #line 8574 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8574 break;
8575
8576 case 418:
8577 #line 2829 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8578 {
8579 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8580 (yyval.interm.type).basicType = EbtSampler;
8581 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
8582 }
8583 #line 8584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8584 break;
8585
8586 case 419:
8587 #line 2834 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8588 {
8589 #ifdef AMD_EXTENSIONS
8590 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8591 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8592 (yyval.interm.type).basicType = EbtSampler;
8593 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer);
8594 #endif
8595 }
8596 #line 8597 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8597 break;
8598
8599 case 420:
8600 #line 2842 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8601 {
8602 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8603 (yyval.interm.type).basicType = EbtSampler;
8604 (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
8605 }
8606 #line 8607 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8607 break;
8608
8609 case 421:
8610 #line 2847 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8611 {
8612 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8613 (yyval.interm.type).basicType = EbtSampler;
8614 (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
8615 }
8616 #line 8617 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8617 break;
8618
8619 case 422:
8620 #line 2852 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8621 {
8622 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8623 (yyval.interm.type).basicType = EbtSampler;
8624 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
8625 }
8626 #line 8627 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8627 break;
8628
8629 case 423:
8630 #line 2857 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8631 {
8632 #ifdef AMD_EXTENSIONS
8633 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8634 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8635 (yyval.interm.type).basicType = EbtSampler;
8636 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
8637 #endif
8638 }
8639 #line 8640 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8640 break;
8641
8642 case 424:
8643 #line 2865 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8644 {
8645 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8646 (yyval.interm.type).basicType = EbtSampler;
8647 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
8648 }
8649 #line 8650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8650 break;
8651
8652 case 425:
8653 #line 2870 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8654 {
8655 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8656 (yyval.interm.type).basicType = EbtSampler;
8657 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
8658 }
8659 #line 8660 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8660 break;
8661
8662 case 426:
8663 #line 2875 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8664 {
8665 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8666 (yyval.interm.type).basicType = EbtSampler;
8667 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
8668 }
8669 #line 8670 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8670 break;
8671
8672 case 427:
8673 #line 2880 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8674 {
8675 #ifdef AMD_EXTENSIONS
8676 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8677 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8678 (yyval.interm.type).basicType = EbtSampler;
8679 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
8680 #endif
8681 }
8682 #line 8683 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8683 break;
8684
8685 case 428:
8686 #line 2888 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8687 {
8688 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8689 (yyval.interm.type).basicType = EbtSampler;
8690 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
8691 }
8692 #line 8693 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8693 break;
8694
8695 case 429:
8696 #line 2893 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8697 {
8698 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8699 (yyval.interm.type).basicType = EbtSampler;
8700 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
8701 }
8702 #line 8703 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8703 break;
8704
8705 case 430:
8706 #line 2898 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8707 {
8708 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8709 (yyval.interm.type).basicType = EbtSampler;
8710 (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
8711 }
8712 #line 8713 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8713 break;
8714
8715 case 431:
8716 #line 2903 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8717 {
8718 #ifdef AMD_EXTENSIONS
8719 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8720 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8721 (yyval.interm.type).basicType = EbtSampler;
8722 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D);
8723 #endif
8724 }
8725 #line 8726 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8726 break;
8727
8728 case 432:
8729 #line 2911 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8730 {
8731 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8732 (yyval.interm.type).basicType = EbtSampler;
8733 (yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
8734 }
8735 #line 8736 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8736 break;
8737
8738 case 433:
8739 #line 2916 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8740 {
8741 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8742 (yyval.interm.type).basicType = EbtSampler;
8743 (yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
8744 }
8745 #line 8746 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8746 break;
8747
8748 case 434:
8749 #line 2921 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8750 {
8751 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8752 (yyval.interm.type).basicType = EbtSampler;
8753 (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
8754 }
8755 #line 8756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8756 break;
8757
8758 case 435:
8759 #line 2926 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8760 {
8761 #ifdef AMD_EXTENSIONS
8762 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8763 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8764 (yyval.interm.type).basicType = EbtSampler;
8765 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D);
8766 #endif
8767 }
8768 #line 8769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8769 break;
8770
8771 case 436:
8772 #line 2934 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8773 {
8774 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8775 (yyval.interm.type).basicType = EbtSampler;
8776 (yyval.interm.type).sampler.setImage(EbtInt, Esd2D);
8777 }
8778 #line 8779 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8779 break;
8780
8781 case 437:
8782 #line 2939 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8783 {
8784 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8785 (yyval.interm.type).basicType = EbtSampler;
8786 (yyval.interm.type).sampler.setImage(EbtUint, Esd2D);
8787 }
8788 #line 8789 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8789 break;
8790
8791 case 438:
8792 #line 2944 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8793 {
8794 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8795 (yyval.interm.type).basicType = EbtSampler;
8796 (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
8797 }
8798 #line 8799 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8799 break;
8800
8801 case 439:
8802 #line 2949 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8803 {
8804 #ifdef AMD_EXTENSIONS
8805 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8806 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8807 (yyval.interm.type).basicType = EbtSampler;
8808 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D);
8809 #endif
8810 }
8811 #line 8812 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8812 break;
8813
8814 case 440:
8815 #line 2957 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8816 {
8817 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8818 (yyval.interm.type).basicType = EbtSampler;
8819 (yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
8820 }
8821 #line 8822 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8822 break;
8823
8824 case 441:
8825 #line 2962 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8826 {
8827 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8828 (yyval.interm.type).basicType = EbtSampler;
8829 (yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
8830 }
8831 #line 8832 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8832 break;
8833
8834 case 442:
8835 #line 2967 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8836 {
8837 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8838 (yyval.interm.type).basicType = EbtSampler;
8839 (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
8840 }
8841 #line 8842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8842 break;
8843
8844 case 443:
8845 #line 2972 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8846 {
8847 #ifdef AMD_EXTENSIONS
8848 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8849 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8850 (yyval.interm.type).basicType = EbtSampler;
8851 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect);
8852 #endif
8853 }
8854 #line 8855 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8855 break;
8856
8857 case 444:
8858 #line 2980 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8859 {
8860 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8861 (yyval.interm.type).basicType = EbtSampler;
8862 (yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
8863 }
8864 #line 8865 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8865 break;
8866
8867 case 445:
8868 #line 2985 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8869 {
8870 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8871 (yyval.interm.type).basicType = EbtSampler;
8872 (yyval.interm.type).sampler.setImage(EbtUint, EsdRect);
8873 }
8874 #line 8875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8875 break;
8876
8877 case 446:
8878 #line 2990 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8879 {
8880 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8881 (yyval.interm.type).basicType = EbtSampler;
8882 (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
8883 }
8884 #line 8885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8885 break;
8886
8887 case 447:
8888 #line 2995 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8889 {
8890 #ifdef AMD_EXTENSIONS
8891 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8892 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8893 (yyval.interm.type).basicType = EbtSampler;
8894 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube);
8895 #endif
8896 }
8897 #line 8898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8898 break;
8899
8900 case 448:
8901 #line 3003 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8902 {
8903 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8904 (yyval.interm.type).basicType = EbtSampler;
8905 (yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
8906 }
8907 #line 8908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8908 break;
8909
8910 case 449:
8911 #line 3008 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8912 {
8913 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8914 (yyval.interm.type).basicType = EbtSampler;
8915 (yyval.interm.type).sampler.setImage(EbtUint, EsdCube);
8916 }
8917 #line 8918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8918 break;
8919
8920 case 450:
8921 #line 3013 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8922 {
8923 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8924 (yyval.interm.type).basicType = EbtSampler;
8925 (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
8926 }
8927 #line 8928 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8928 break;
8929
8930 case 451:
8931 #line 3018 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8932 {
8933 #ifdef AMD_EXTENSIONS
8934 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8935 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8936 (yyval.interm.type).basicType = EbtSampler;
8937 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer);
8938 #endif
8939 }
8940 #line 8941 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8941 break;
8942
8943 case 452:
8944 #line 3026 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8945 {
8946 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8947 (yyval.interm.type).basicType = EbtSampler;
8948 (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
8949 }
8950 #line 8951 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8951 break;
8952
8953 case 453:
8954 #line 3031 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8955 {
8956 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8957 (yyval.interm.type).basicType = EbtSampler;
8958 (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer);
8959 }
8960 #line 8961 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8961 break;
8962
8963 case 454:
8964 #line 3036 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8965 {
8966 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8967 (yyval.interm.type).basicType = EbtSampler;
8968 (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
8969 }
8970 #line 8971 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8971 break;
8972
8973 case 455:
8974 #line 3041 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8975 {
8976 #ifdef AMD_EXTENSIONS
8977 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8978 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8979 (yyval.interm.type).basicType = EbtSampler;
8980 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true);
8981 #endif
8982 }
8983 #line 8984 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8984 break;
8985
8986 case 456:
8987 #line 3049 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8988 {
8989 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8990 (yyval.interm.type).basicType = EbtSampler;
8991 (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
8992 }
8993 #line 8994 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
8994 break;
8995
8996 case 457:
8997 #line 3054 "MachineIndependent/glslang.y" /* yacc.c:1646 */
8998 {
8999 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9000 (yyval.interm.type).basicType = EbtSampler;
9001 (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true);
9002 }
9003 #line 9004 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9004 break;
9005
9006 case 458:
9007 #line 3059 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9008 {
9009 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9010 (yyval.interm.type).basicType = EbtSampler;
9011 (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
9012 }
9013 #line 9014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9014 break;
9015
9016 case 459:
9017 #line 3064 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9018 {
9019 #ifdef AMD_EXTENSIONS
9020 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9021 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9022 (yyval.interm.type).basicType = EbtSampler;
9023 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true);
9024 #endif
9025 }
9026 #line 9027 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9027 break;
9028
9029 case 460:
9030 #line 3072 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9031 {
9032 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9033 (yyval.interm.type).basicType = EbtSampler;
9034 (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
9035 }
9036 #line 9037 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9037 break;
9038
9039 case 461:
9040 #line 3077 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9041 {
9042 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9043 (yyval.interm.type).basicType = EbtSampler;
9044 (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
9045 }
9046 #line 9047 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9047 break;
9048
9049 case 462:
9050 #line 3082 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9051 {
9052 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9053 (yyval.interm.type).basicType = EbtSampler;
9054 (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
9055 }
9056 #line 9057 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9057 break;
9058
9059 case 463:
9060 #line 3087 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9061 {
9062 #ifdef AMD_EXTENSIONS
9063 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9064 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9065 (yyval.interm.type).basicType = EbtSampler;
9066 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true);
9067 #endif
9068 }
9069 #line 9070 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9070 break;
9071
9072 case 464:
9073 #line 3095 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9074 {
9075 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9076 (yyval.interm.type).basicType = EbtSampler;
9077 (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
9078 }
9079 #line 9080 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9080 break;
9081
9082 case 465:
9083 #line 3100 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9084 {
9085 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9086 (yyval.interm.type).basicType = EbtSampler;
9087 (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
9088 }
9089 #line 9090 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9090 break;
9091
9092 case 466:
9093 #line 3105 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9094 {
9095 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9096 (yyval.interm.type).basicType = EbtSampler;
9097 (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
9098 }
9099 #line 9100 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9100 break;
9101
9102 case 467:
9103 #line 3110 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9104 {
9105 #ifdef AMD_EXTENSIONS
9106 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9107 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9108 (yyval.interm.type).basicType = EbtSampler;
9109 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true);
9110 #endif
9111 }
9112 #line 9113 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9113 break;
9114
9115 case 468:
9116 #line 3118 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9117 {
9118 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9119 (yyval.interm.type).basicType = EbtSampler;
9120 (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
9121 }
9122 #line 9123 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9123 break;
9124
9125 case 469:
9126 #line 3123 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9127 {
9128 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9129 (yyval.interm.type).basicType = EbtSampler;
9130 (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
9131 }
9132 #line 9133 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9133 break;
9134
9135 case 470:
9136 #line 3128 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9137 {
9138 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9139 (yyval.interm.type).basicType = EbtSampler;
9140 (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
9141 }
9142 #line 9143 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9143 break;
9144
9145 case 471:
9146 #line 3133 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9147 {
9148 #ifdef AMD_EXTENSIONS
9149 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9150 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9151 (yyval.interm.type).basicType = EbtSampler;
9152 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true);
9153 #endif
9154 }
9155 #line 9156 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9156 break;
9157
9158 case 472:
9159 #line 3141 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9160 {
9161 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9162 (yyval.interm.type).basicType = EbtSampler;
9163 (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
9164 }
9165 #line 9166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9166 break;
9167
9168 case 473:
9169 #line 3146 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9170 {
9171 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9172 (yyval.interm.type).basicType = EbtSampler;
9173 (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
9174 }
9175 #line 9176 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9176 break;
9177
9178 case 474:
9179 #line 3151 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9180 { // GL_OES_EGL_image_external
9181 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9182 (yyval.interm.type).basicType = EbtSampler;
9183 (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
9184 (yyval.interm.type).sampler.external = true;
9185 }
9186 #line 9187 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9187 break;
9188
9189 case 475:
9190 #line 3157 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9191 { // GL_EXT_YUV_target
9192 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9193 (yyval.interm.type).basicType = EbtSampler;
9194 (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
9195 (yyval.interm.type).sampler.yuv = true;
9196 }
9197 #line 9198 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9198 break;
9199
9200 case 476:
9201 #line 3163 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9202 {
9203 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9204 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9205 (yyval.interm.type).basicType = EbtSampler;
9206 (yyval.interm.type).sampler.setSubpass(EbtFloat);
9207 }
9208 #line 9209 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9209 break;
9210
9211 case 477:
9212 #line 3169 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9213 {
9214 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9215 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9216 (yyval.interm.type).basicType = EbtSampler;
9217 (yyval.interm.type).sampler.setSubpass(EbtFloat, true);
9218 }
9219 #line 9220 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9220 break;
9221
9222 case 478:
9223 #line 3175 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9224 {
9225 #ifdef AMD_EXTENSIONS
9226 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
9227 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9228 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9229 (yyval.interm.type).basicType = EbtSampler;
9230 (yyval.interm.type).sampler.setSubpass(EbtFloat16);
9231 #endif
9232 }
9233 #line 9234 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9234 break;
9235
9236 case 479:
9237 #line 3184 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9238 {
9239 #ifdef AMD_EXTENSIONS
9240 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
9241 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9242 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9243 (yyval.interm.type).basicType = EbtSampler;
9244 (yyval.interm.type).sampler.setSubpass(EbtFloat16, true);
9245 #endif
9246 }
9247 #line 9248 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9248 break;
9249
9250 case 480:
9251 #line 3193 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9252 {
9253 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9254 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9255 (yyval.interm.type).basicType = EbtSampler;
9256 (yyval.interm.type).sampler.setSubpass(EbtInt);
9257 }
9258 #line 9259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9259 break;
9260
9261 case 481:
9262 #line 3199 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9263 {
9264 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9265 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9266 (yyval.interm.type).basicType = EbtSampler;
9267 (yyval.interm.type).sampler.setSubpass(EbtInt, true);
9268 }
9269 #line 9270 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9270 break;
9271
9272 case 482:
9273 #line 3205 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9274 {
9275 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9276 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9277 (yyval.interm.type).basicType = EbtSampler;
9278 (yyval.interm.type).sampler.setSubpass(EbtUint);
9279 }
9280 #line 9281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9281 break;
9282
9283 case 483:
9284 #line 3211 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9285 {
9286 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9287 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9288 (yyval.interm.type).basicType = EbtSampler;
9289 (yyval.interm.type).sampler.setSubpass(EbtUint, true);
9290 }
9291 #line 9292 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9292 break;
9293
9294 case 484:
9295 #line 3217 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9296 {
9297 parseContext.fcoopmatCheck((yyvsp[0].lex).loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
9298 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9299 (yyval.interm.type).basicType = EbtFloat;
9300 (yyval.interm.type).coopmat = true;
9301 }
9302 #line 9303 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9303 break;
9304
9305 case 485:
9306 #line 3223 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9307 {
9308 (yyval.interm.type) = (yyvsp[0].interm.type);
9309 (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
9310 parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
9311 }
9312 #line 9313 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9313 break;
9314
9315 case 486:
9316 #line 3228 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9317 {
9318 //
9319 // This is for user defined type names. The lexical phase looked up the
9320 // type.
9321 //
9322 if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) {
9323 const TType& structure = variable->getType();
9324 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9325 (yyval.interm.type).basicType = EbtStruct;
9326 (yyval.interm.type).userDef = &structure;
9327 } else
9328 parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
9329 }
9330 #line 9331 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9331 break;
9332
9333 case 487:
9334 #line 3244 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9335 {
9336 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
9337 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9338 parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
9339 }
9340 #line 9341 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9341 break;
9342
9343 case 488:
9344 #line 3249 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9345 {
9346 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
9347 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9348 parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
9349 }
9350 #line 9351 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9351 break;
9352
9353 case 489:
9354 #line 3254 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9355 {
9356 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
9357 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9358 parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
9359 }
9360 #line 9361 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9361 break;
9362
9363 case 490:
9364 #line 3262 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9365 { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
9366 #line 9367 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9367 break;
9368
9369 case 491:
9370 #line 3262 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9371 {
9372 TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
9373 parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
9374 TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true);
9375 if (! parseContext.symbolTable.insert(*userTypeDef))
9376 parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct");
9377 (yyval.interm.type).init((yyvsp[-5].lex).loc);
9378 (yyval.interm.type).basicType = EbtStruct;
9379 (yyval.interm.type).userDef = structure;
9380 --parseContext.structNestingLevel;
9381 }
9382 #line 9383 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9383 break;
9384
9385 case 492:
9386 #line 3273 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9387 { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
9388 #line 9389 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9389 break;
9390
9391 case 493:
9392 #line 3273 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9393 {
9394 TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
9395 (yyval.interm.type).init((yyvsp[-4].lex).loc);
9396 (yyval.interm.type).basicType = EbtStruct;
9397 (yyval.interm.type).userDef = structure;
9398 --parseContext.structNestingLevel;
9399 }
9400 #line 9401 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9401 break;
9402
9403 case 494:
9404 #line 3283 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9405 {
9406 (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
9407 }
9408 #line 9409 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9409 break;
9410
9411 case 495:
9412 #line 3286 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9413 {
9414 (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
9415 for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
9416 for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) {
9417 if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName())
9418 parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str());
9419 }
9420 (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
9421 }
9422 }
9423 #line 9424 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9424 break;
9425
9426 case 496:
9427 #line 3299 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9428 {
9429 if ((yyvsp[-2].interm.type).arraySizes) {
9430 parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
9431 parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
9432 if (parseContext.profile == EEsProfile)
9433 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
9434 }
9435
9436 (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
9437
9438 parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
9439 parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
9440
9441 for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
9442 TType type((yyvsp[-2].interm.type));
9443 type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
9444 type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
9445 type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
9446 parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
9447 (*(yyval.interm.typeList))[i].type->shallowCopy(type);
9448 }
9449 }
9450 #line 9451 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9451 break;
9452
9453 case 497:
9454 #line 3321 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9455 {
9456 if ((yyvsp[-2].interm.type).arraySizes) {
9457 parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
9458 parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
9459 if (parseContext.profile == EEsProfile)
9460 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
9461 }
9462
9463 (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
9464
9465 parseContext.memberQualifierCheck((yyvsp[-3].interm.type));
9466 parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
9467 parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true);
9468 parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
9469
9470 for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
9471 TType type((yyvsp[-2].interm.type));
9472 type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
9473 type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
9474 type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
9475 parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
9476 (*(yyval.interm.typeList))[i].type->shallowCopy(type);
9477 }
9478 }
9479 #line 9480 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9480 break;
9481
9482 case 498:
9483 #line 3348 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9484 {
9485 (yyval.interm.typeList) = new TTypeList;
9486 (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
9487 }
9488 #line 9489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9489 break;
9490
9491 case 499:
9492 #line 3352 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9493 {
9494 (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
9495 }
9496 #line 9497 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9497 break;
9498
9499 case 500:
9500 #line 3358 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9501 {
9502 (yyval.interm.typeLine).type = new TType(EbtVoid);
9503 (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
9504 (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
9505 }
9506 #line 9507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9507 break;
9508
9509 case 501:
9510 #line 3363 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9511 {
9512 parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
9513
9514 (yyval.interm.typeLine).type = new TType(EbtVoid);
9515 (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc;
9516 (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
9517 (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
9518 }
9519 #line 9520 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9520 break;
9521
9522 case 502:
9523 #line 3374 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9524 {
9525 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
9526 }
9527 #line 9528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9528 break;
9529
9530 case 503:
9531 #line 3377 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9532 {
9533 const char* initFeature = "{ } style initializers";
9534 parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
9535 parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
9536 (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
9537 }
9538 #line 9539 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9539 break;
9540
9541 case 504:
9542 #line 3383 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9543 {
9544 const char* initFeature = "{ } style initializers";
9545 parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
9546 parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
9547 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
9548 }
9549 #line 9550 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9550 break;
9551
9552 case 505:
9553 #line 3392 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9554 {
9555 (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
9556 }
9557 #line 9558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9558 break;
9559
9560 case 506:
9561 #line 3395 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9562 {
9563 (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
9564 }
9565 #line 9566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9566 break;
9567
9568 case 507:
9569 #line 3401 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9570 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9571 #line 9572 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9572 break;
9573
9574 case 508:
9575 #line 3405 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9576 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9577 #line 9578 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9578 break;
9579
9580 case 509:
9581 #line 3406 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9582 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9583 #line 9584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9584 break;
9585
9586 case 510:
9587 #line 3412 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9588 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9589 #line 9590 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9590 break;
9591
9592 case 511:
9593 #line 3413 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9594 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9595 #line 9596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9596 break;
9597
9598 case 512:
9599 #line 3414 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9600 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9601 #line 9602 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9602 break;
9603
9604 case 513:
9605 #line 3415 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9606 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9607 #line 9608 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9608 break;
9609
9610 case 514:
9611 #line 3416 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9612 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9613 #line 9614 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9614 break;
9615
9616 case 515:
9617 #line 3417 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9618 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9619 #line 9620 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9620 break;
9621
9622 case 516:
9623 #line 3418 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9624 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9625 #line 9626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9626 break;
9627
9628 case 517:
9629 #line 3422 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9630 { (yyval.interm.intermNode) = 0; }
9631 #line 9632 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9632 break;
9633
9634 case 518:
9635 #line 3423 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9636 {
9637 parseContext.symbolTable.push();
9638 ++parseContext.statementNestingLevel;
9639 }
9640 #line 9641 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9641 break;
9642
9643 case 519:
9644 #line 3427 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9645 {
9646 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9647 --parseContext.statementNestingLevel;
9648 }
9649 #line 9650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9650 break;
9651
9652 case 520:
9653 #line 3431 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9654 {
9655 if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate())
9656 (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
9657 (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode);
9658 }
9659 #line 9660 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9660 break;
9661
9662 case 521:
9663 #line 3439 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9664 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9665 #line 9666 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9666 break;
9667
9668 case 522:
9669 #line 3440 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9670 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9671 #line 9672 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9672 break;
9673
9674 case 523:
9675 #line 3444 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9676 {
9677 ++parseContext.controlFlowNestingLevel;
9678 }
9679 #line 9680 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9680 break;
9681
9682 case 524:
9683 #line 3447 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9684 {
9685 --parseContext.controlFlowNestingLevel;
9686 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9687 }
9688 #line 9689 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9689 break;
9690
9691 case 525:
9692 #line 3451 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9693 {
9694 parseContext.symbolTable.push();
9695 ++parseContext.statementNestingLevel;
9696 ++parseContext.controlFlowNestingLevel;
9697 }
9698 #line 9699 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9699 break;
9700
9701 case 526:
9702 #line 3456 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9703 {
9704 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9705 --parseContext.statementNestingLevel;
9706 --parseContext.controlFlowNestingLevel;
9707 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9708 }
9709 #line 9710 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9710 break;
9711
9712 case 527:
9713 #line 3465 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9714 {
9715 (yyval.interm.intermNode) = 0;
9716 }
9717 #line 9718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9718 break;
9719
9720 case 528:
9721 #line 3468 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9722 {
9723 if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate())
9724 (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
9725 (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode);
9726 }
9727 #line 9728 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9728 break;
9729
9730 case 529:
9731 #line 3476 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9732 {
9733 (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
9734 if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
9735 (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
9736 parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode));
9737 (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case
9738 }
9739 }
9740 #line 9741 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9741 break;
9742
9743 case 530:
9744 #line 3484 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9745 {
9746 if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
9747 (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
9748 parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode));
9749 (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case
9750 } else
9751 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
9752 }
9753 #line 9754 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9754 break;
9755
9756 case 531:
9757 #line 3495 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9758 { (yyval.interm.intermNode) = 0; }
9759 #line 9760 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9760 break;
9761
9762 case 532:
9763 #line 3496 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9764 { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
9765 #line 9766 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9766 break;
9767
9768 case 533:
9769 #line 3500 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9770 {
9771 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9772 }
9773 #line 9774 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9774 break;
9775
9776 case 534:
9777 #line 3503 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9778 {
9779 parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
9780 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9781 }
9782 #line 9783 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9783 break;
9784
9785 case 535:
9786 #line 3509 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9787 {
9788 parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
9789 (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
9790 }
9791 #line 9792 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9792 break;
9793
9794 case 536:
9795 #line 3516 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9796 {
9797 (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
9798 (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
9799 }
9800 #line 9801 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9801 break;
9802
9803 case 537:
9804 #line 3520 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9805 {
9806 (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
9807 (yyval.interm.nodePair).node2 = 0;
9808 }
9809 #line 9810 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9810 break;
9811
9812 case 538:
9813 #line 3528 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9814 {
9815 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
9816 parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
9817 }
9818 #line 9819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9819 break;
9820
9821 case 539:
9822 #line 3532 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9823 {
9824 parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
9825
9826 TType type((yyvsp[-3].interm.type));
9827 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
9828 if (initNode)
9829 (yyval.interm.intermTypedNode) = initNode->getAsTyped();
9830 else
9831 (yyval.interm.intermTypedNode) = 0;
9832 }
9833 #line 9834 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9834 break;
9835
9836 case 540:
9837 #line 3545 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9838 {
9839 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9840 }
9841 #line 9842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9842 break;
9843
9844 case 541:
9845 #line 3548 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9846 {
9847 parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
9848 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9849 }
9850 #line 9851 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9851 break;
9852
9853 case 542:
9854 #line 3554 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9855 {
9856 // start new switch sequence on the switch stack
9857 ++parseContext.controlFlowNestingLevel;
9858 ++parseContext.statementNestingLevel;
9859 parseContext.switchSequenceStack.push_back(new TIntermSequence);
9860 parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
9861 parseContext.symbolTable.push();
9862 }
9863 #line 9864 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9864 break;
9865
9866 case 543:
9867 #line 3562 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9868 {
9869 (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
9870 delete parseContext.switchSequenceStack.back();
9871 parseContext.switchSequenceStack.pop_back();
9872 parseContext.switchLevel.pop_back();
9873 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9874 --parseContext.statementNestingLevel;
9875 --parseContext.controlFlowNestingLevel;
9876 }
9877 #line 9878 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9878 break;
9879
9880 case 544:
9881 #line 3574 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9882 {
9883 (yyval.interm.intermNode) = 0;
9884 }
9885 #line 9886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9886 break;
9887
9888 case 545:
9889 #line 3577 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9890 {
9891 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9892 }
9893 #line 9894 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9894 break;
9895
9896 case 546:
9897 #line 3583 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9898 {
9899 (yyval.interm.intermNode) = 0;
9900 if (parseContext.switchLevel.size() == 0)
9901 parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", "");
9902 else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
9903 parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", "");
9904 else {
9905 parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case");
9906 parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case");
9907 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
9908 }
9909 }
9910 #line 9911 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9911 break;
9912
9913 case 547:
9914 #line 3595 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9915 {
9916 (yyval.interm.intermNode) = 0;
9917 if (parseContext.switchLevel.size() == 0)
9918 parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", "");
9919 else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
9920 parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", "");
9921 else
9922 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
9923 }
9924 #line 9925 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9925 break;
9926
9927 case 548:
9928 #line 3607 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9929 {
9930 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9931 }
9932 #line 9933 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9933 break;
9934
9935 case 549:
9936 #line 3610 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9937 {
9938 parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
9939 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9940 }
9941 #line 9942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9942 break;
9943
9944 case 550:
9945 #line 3616 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9946 {
9947 if (! parseContext.limits.whileLoops)
9948 parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
9949 parseContext.symbolTable.push();
9950 ++parseContext.loopNestingLevel;
9951 ++parseContext.statementNestingLevel;
9952 ++parseContext.controlFlowNestingLevel;
9953 }
9954 #line 9955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9955 break;
9956
9957 case 551:
9958 #line 3624 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9959 {
9960 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9961 (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
9962 --parseContext.loopNestingLevel;
9963 --parseContext.statementNestingLevel;
9964 --parseContext.controlFlowNestingLevel;
9965 }
9966 #line 9967 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9967 break;
9968
9969 case 552:
9970 #line 3631 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9971 {
9972 ++parseContext.loopNestingLevel;
9973 ++parseContext.statementNestingLevel;
9974 ++parseContext.controlFlowNestingLevel;
9975 }
9976 #line 9977 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9977 break;
9978
9979 case 553:
9980 #line 3636 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9981 {
9982 if (! parseContext.limits.whileLoops)
9983 parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
9984
9985 parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode));
9986
9987 (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc);
9988 --parseContext.loopNestingLevel;
9989 --parseContext.statementNestingLevel;
9990 --parseContext.controlFlowNestingLevel;
9991 }
9992 #line 9993 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
9993 break;
9994
9995 case 554:
9996 #line 3647 "MachineIndependent/glslang.y" /* yacc.c:1646 */
9997 {
9998 parseContext.symbolTable.push();
9999 ++parseContext.loopNestingLevel;
10000 ++parseContext.statementNestingLevel;
10001 ++parseContext.controlFlowNestingLevel;
10002 }
10003 #line 10004 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10004 break;
10005
10006 case 555:
10007 #line 3653 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10008 {
10009 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10010 (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
10011 TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node1), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node2), true, (yyvsp[-6].lex).loc);
10012 if (! parseContext.limits.nonInductiveForLoops)
10013 parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop);
10014 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc);
10015 (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
10016 --parseContext.loopNestingLevel;
10017 --parseContext.statementNestingLevel;
10018 --parseContext.controlFlowNestingLevel;
10019 }
10020 #line 10021 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10021 break;
10022
10023 case 556:
10024 #line 3668 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10025 {
10026 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10027 }
10028 #line 10029 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10029 break;
10030
10031 case 557:
10032 #line 3671 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10033 {
10034 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10035 }
10036 #line 10037 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10037 break;
10038
10039 case 558:
10040 #line 3677 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10041 {
10042 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
10043 }
10044 #line 10045 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10045 break;
10046
10047 case 559:
10048 #line 3680 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10049 {
10050 (yyval.interm.intermTypedNode) = 0;
10051 }
10052 #line 10053 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10053 break;
10054
10055 case 560:
10056 #line 3686 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10057 {
10058 (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
10059 (yyval.interm.nodePair).node2 = 0;
10060 }
10061 #line 10062 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10062 break;
10063
10064 case 561:
10065 #line 3690 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10066 {
10067 (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
10068 (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
10069 }
10070 #line 10071 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10071 break;
10072
10073 case 562:
10074 #line 3697 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10075 {
10076 if (parseContext.loopNestingLevel <= 0)
10077 parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
10078 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
10079 }
10080 #line 10081 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10081 break;
10082
10083 case 563:
10084 #line 3702 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10085 {
10086 if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
10087 parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
10088 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
10089 }
10090 #line 10091 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10091 break;
10092
10093 case 564:
10094 #line 3707 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10095 {
10096 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
10097 if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
10098 parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", "");
10099 if (parseContext.inMain)
10100 parseContext.postEntryPointReturn = true;
10101 }
10102 #line 10103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10103 break;
10104
10105 case 565:
10106 #line 3714 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10107 {
10108 (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
10109 }
10110 #line 10111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10111 break;
10112
10113 case 566:
10114 #line 3717 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10115 {
10116 parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
10117 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
10118 }
10119 #line 10120 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10120 break;
10121
10122 case 567:
10123 #line 3726 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10124 {
10125 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10126 parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
10127 }
10128 #line 10129 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10129 break;
10130
10131 case 568:
10132 #line 3730 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10133 {
10134 if ((yyvsp[0].interm.intermNode) != nullptr) {
10135 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
10136 parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
10137 }
10138 }
10139 #line 10140 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10140 break;
10141
10142 case 569:
10143 #line 3739 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10144 {
10145 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10146 }
10147 #line 10148 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10148 break;
10149
10150 case 570:
10151 #line 3742 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10152 {
10153 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10154 }
10155 #line 10156 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10156 break;
10157
10158 case 571:
10159 #line 3745 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10160 {
10161 parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
10162 parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
10163 (yyval.interm.intermNode) = nullptr;
10164 }
10165 #line 10166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10166 break;
10167
10168 case 572:
10169 #line 3753 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10170 {
10171 (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
10172 (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
10173 }
10174 #line 10175 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10175 break;
10176
10177 case 573:
10178 #line 3757 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10179 {
10180 // May be best done as post process phase on intermediate code
10181 if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
10182 parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str());
10183 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10184 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode));
10185 parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc);
10186 (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str());
10187
10188 // store the pragma information for debug and optimize and other vendor specific
10189 // information. This information can be queried from the parse tree
10190 (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize);
10191 (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
10192 (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable);
10193 }
10194 #line 10195 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10195 break;
10196
10197 case 574:
10198 #line 3775 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10199 {
10200 (yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
10201 parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute");
10202 }
10203 #line 10204 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10204 break;
10205
10206 case 575:
10207 #line 3781 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10208 {
10209 (yyval.interm.attributes) = (yyvsp[0].interm.attributes);
10210 }
10211 #line 10212 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10212 break;
10213
10214 case 576:
10215 #line 3784 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10216 {
10217 (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
10218 }
10219 #line 10220 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10220 break;
10221
10222 case 577:
10223 #line 3789 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10224 {
10225 (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
10226 }
10227 #line 10228 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10228 break;
10229
10230 case 578:
10231 #line 3792 "MachineIndependent/glslang.y" /* yacc.c:1646 */
10232 {
10233 (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
10234 }
10235 #line 10236 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10236 break;
10237
10238
10239 #line 10240 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
10240 default: break;
10241 }
10242 /* User semantic actions sometimes alter yychar, and that requires
10243 that yytoken be updated with the new translation. We take the
10244 approach of translating immediately before every use of yytoken.
10245 One alternative is translating here after every semantic action,
10246 but that translation would be missed if the semantic action invokes
10247 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
10248 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
10249 incorrect destructor might then be invoked immediately. In the
10250 case of YYERROR or YYBACKUP, subsequent parser actions might lead
10251 to an incorrect destructor call or verbose syntax error message
10252 before the lookahead is translated. */
10253 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
10254
10255 YYPOPSTACK (yylen);
10256 yylen = 0;
10257 YY_STACK_PRINT (yyss, yyssp);
10258
10259 *++yyvsp = yyval;
10260
10261 /* Now 'shift' the result of the reduction. Determine what state
10262 that goes to, based on the state we popped back to and the rule
10263 number reduced by. */
10264
10265 yyn = yyr1[yyn];
10266
10267 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
10268 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
10269 yystate = yytable[yystate];
10270 else
10271 yystate = yydefgoto[yyn - YYNTOKENS];
10272
10273 goto yynewstate;
10274
10275
10276 /*--------------------------------------.
10277 | yyerrlab -- here on detecting error. |
10278 `--------------------------------------*/
10279 yyerrlab:
10280 /* Make sure we have latest lookahead translation. See comments at
10281 user semantic actions for why this is necessary. */
10282 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
10283
10284 /* If not already recovering from an error, report this error. */
10285 if (!yyerrstatus)
10286 {
10287 ++yynerrs;
10288 #if ! YYERROR_VERBOSE
10289 yyerror (pParseContext, YY_("syntax error"));
10290 #else
10291 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
10292 yyssp, yytoken)
10293 {
10294 char const *yymsgp = YY_("syntax error");
10295 int yysyntax_error_status;
10296 yysyntax_error_status = YYSYNTAX_ERROR;
10297 if (yysyntax_error_status == 0)
10298 yymsgp = yymsg;
10299 else if (yysyntax_error_status == 1)
10300 {
10301 if (yymsg != yymsgbuf)
10302 YYSTACK_FREE (yymsg);
10303 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
10304 if (!yymsg)
10305 {
10306 yymsg = yymsgbuf;
10307 yymsg_alloc = sizeof yymsgbuf;
10308 yysyntax_error_status = 2;
10309 }
10310 else
10311 {
10312 yysyntax_error_status = YYSYNTAX_ERROR;
10313 yymsgp = yymsg;
10314 }
10315 }
10316 yyerror (pParseContext, yymsgp);
10317 if (yysyntax_error_status == 2)
10318 goto yyexhaustedlab;
10319 }
10320 # undef YYSYNTAX_ERROR
10321 #endif
10322 }
10323
10324
10325
10326 if (yyerrstatus == 3)
10327 {
10328 /* If just tried and failed to reuse lookahead token after an
10329 error, discard it. */
10330
10331 if (yychar <= YYEOF)
10332 {
10333 /* Return failure if at end of input. */
10334 if (yychar == YYEOF)
10335 YYABORT;
10336 }
10337 else
10338 {
10339 yydestruct ("Error: discarding",
10340 yytoken, &yylval, pParseContext);
10341 yychar = YYEMPTY;
10342 }
10343 }
10344
10345 /* Else will try to reuse lookahead token after shifting the error
10346 token. */
10347 goto yyerrlab1;
10348
10349
10350 /*---------------------------------------------------.
10351 | yyerrorlab -- error raised explicitly by YYERROR. |
10352 `---------------------------------------------------*/
10353 yyerrorlab:
10354
10355 /* Pacify compilers like GCC when the user code never invokes
10356 YYERROR and the label yyerrorlab therefore never appears in user
10357 code. */
10358 if (/*CONSTCOND*/ 0)
10359 goto yyerrorlab;
10360
10361 /* Do not reclaim the symbols of the rule whose action triggered
10362 this YYERROR. */
10363 YYPOPSTACK (yylen);
10364 yylen = 0;
10365 YY_STACK_PRINT (yyss, yyssp);
10366 yystate = *yyssp;
10367 goto yyerrlab1;
10368
10369
10370 /*-------------------------------------------------------------.
10371 | yyerrlab1 -- common code for both syntax error and YYERROR. |
10372 `-------------------------------------------------------------*/
10373 yyerrlab1:
10374 yyerrstatus = 3; /* Each real token shifted decrements this. */
10375
10376 for (;;)
10377 {
10378 yyn = yypact[yystate];
10379 if (!yypact_value_is_default (yyn))
10380 {
10381 yyn += YYTERROR;
10382 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
10383 {
10384 yyn = yytable[yyn];
10385 if (0 < yyn)
10386 break;
10387 }
10388 }
10389
10390 /* Pop the current state because it cannot handle the error token. */
10391 if (yyssp == yyss)
10392 YYABORT;
10393
10394
10395 yydestruct ("Error: popping",
10396 yystos[yystate], yyvsp, pParseContext);
10397 YYPOPSTACK (1);
10398 yystate = *yyssp;
10399 YY_STACK_PRINT (yyss, yyssp);
10400 }
10401
10402 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
10403 *++yyvsp = yylval;
10404 YY_IGNORE_MAYBE_UNINITIALIZED_END
10405
10406
10407 /* Shift the error token. */
10408 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
10409
10410 yystate = yyn;
10411 goto yynewstate;
10412
10413
10414 /*-------------------------------------.
10415 | yyacceptlab -- YYACCEPT comes here. |
10416 `-------------------------------------*/
10417 yyacceptlab:
10418 yyresult = 0;
10419 goto yyreturn;
10420
10421 /*-----------------------------------.
10422 | yyabortlab -- YYABORT comes here. |
10423 `-----------------------------------*/
10424 yyabortlab:
10425 yyresult = 1;
10426 goto yyreturn;
10427
10428 #if !defined yyoverflow || YYERROR_VERBOSE
10429 /*-------------------------------------------------.
10430 | yyexhaustedlab -- memory exhaustion comes here. |
10431 `-------------------------------------------------*/
10432 yyexhaustedlab:
10433 yyerror (pParseContext, YY_("memory exhausted"));
10434 yyresult = 2;
10435 /* Fall through. */
10436 #endif
10437
10438 yyreturn:
10439 if (yychar != YYEMPTY)
10440 {
10441 /* Make sure we have latest lookahead translation. See comments at
10442 user semantic actions for why this is necessary. */
10443 yytoken = YYTRANSLATE (yychar);
10444 yydestruct ("Cleanup: discarding lookahead",
10445 yytoken, &yylval, pParseContext);
10446 }
10447 /* Do not reclaim the symbols of the rule whose action triggered
10448 this YYABORT or YYACCEPT. */
10449 YYPOPSTACK (yylen);
10450 YY_STACK_PRINT (yyss, yyssp);
10451 while (yyssp != yyss)
10452 {
10453 yydestruct ("Cleanup: popping",
10454 yystos[*yyssp], yyvsp, pParseContext);
10455 YYPOPSTACK (1);
10456 }
10457 #ifndef yyoverflow
10458 if (yyss != yyssa)
10459 YYSTACK_FREE (yyss);
10460 #endif
10461 #if YYERROR_VERBOSE
10462 if (yymsg != yymsgbuf)
10463 YYSTACK_FREE (yymsg);
10464 #endif
10465 return yyresult;
10466 }
10467 #line 3796 "MachineIndependent/glslang.y" /* yacc.c:1906 */
10468
10469