1 /* A Bison parser, made by GNU Bison 3.0.4. */
2
3 /* Bison implementation for Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34 simplifying the original so-called "semantic" parser. */
35
36 /* All symbols defined below should begin with yy or YY, to avoid
37 infringing on user name space. This should be done even for local
38 variables, as they might otherwise be expanded by user macros.
39 There are some unavoidable exceptions within include files to
40 define necessary library symbols; they are noted "INFRINGES ON
41 USER NAME SPACE" below. */
42
43 /* Identify Bison output. */
44 #define YYBISON 1
45
46 /* Bison version. */
47 #define YYBISON_VERSION "3.0.4"
48
49 /* Skeleton name. */
50 #define YYSKELETON_NAME "yacc.c"
51
52 /* Pure parsers. */
53 #define YYPURE 1
54
55 /* Push parsers. */
56 #define YYPUSH 0
57
58 /* Pull parsers. */
59 #define YYPULL 1
60
61
62
63
64 /* Copy the first part of user declarations. */
65 #line 69 "glslang.y" /* yacc.c:339 */
66
67
68 /* Based on:
69 ANSI C Yacc grammar
70
71 In 1985, Jeff Lee published his Yacc grammar (which is accompanied by a
72 matching Lex specification) for the April 30, 1985 draft version of the
73 ANSI C standard. Tom Stockfisch reposted it to net.sources in 1987; that
74 original, as mentioned in the answer to question 17.25 of the comp.lang.c
75 FAQ, can be ftp'ed from ftp.uu.net, file usenet/net.sources/ansi.c.grammar.Z.
76
77 I intend to keep this version as close to the current C Standard grammar as
78 possible; please let me know if you discover discrepancies.
79
80 Jutta Degener, 1995
81 */
82
83 #include "SymbolTable.h"
84 #include "ParseHelper.h"
85 #include "../Public/ShaderLang.h"
86 #include "attribute.h"
87
88 using namespace glslang;
89
90
91 #line 92 "glslang_tab.cpp" /* yacc.c:339 */
92
93 # ifndef YY_NULLPTR
94 # if defined __cplusplus && 201103L <= __cplusplus
95 # define YY_NULLPTR nullptr
96 # else
97 # define YY_NULLPTR 0
98 # endif
99 # endif
100
101 /* Enabling verbose error messages. */
102 #ifdef YYERROR_VERBOSE
103 # undef YYERROR_VERBOSE
104 # define YYERROR_VERBOSE 1
105 #else
106 # define YYERROR_VERBOSE 1
107 #endif
108
109 /* In a future release of Bison, this section will be replaced
110 by #include "glslang_tab.cpp.h". */
111 #ifndef YY_YY_GLSLANG_TAB_CPP_H_INCLUDED
112 # define YY_YY_GLSLANG_TAB_CPP_H_INCLUDED
113 /* Debug traces. */
114 #ifndef YYDEBUG
115 # define YYDEBUG 1
116 #endif
117 #if YYDEBUG
118 extern int yydebug;
119 #endif
120
121 /* Token type. */
122 #ifndef YYTOKENTYPE
123 # define YYTOKENTYPE
124 enum yytokentype
125 {
126 CONST = 258,
127 BOOL = 259,
128 INT = 260,
129 UINT = 261,
130 FLOAT = 262,
131 BVEC2 = 263,
132 BVEC3 = 264,
133 BVEC4 = 265,
134 IVEC2 = 266,
135 IVEC3 = 267,
136 IVEC4 = 268,
137 UVEC2 = 269,
138 UVEC3 = 270,
139 UVEC4 = 271,
140 VEC2 = 272,
141 VEC3 = 273,
142 VEC4 = 274,
143 MAT2 = 275,
144 MAT3 = 276,
145 MAT4 = 277,
146 MAT2X2 = 278,
147 MAT2X3 = 279,
148 MAT2X4 = 280,
149 MAT3X2 = 281,
150 MAT3X3 = 282,
151 MAT3X4 = 283,
152 MAT4X2 = 284,
153 MAT4X3 = 285,
154 MAT4X4 = 286,
155 SAMPLER2D = 287,
156 SAMPLER3D = 288,
157 SAMPLERCUBE = 289,
158 SAMPLER2DSHADOW = 290,
159 SAMPLERCUBESHADOW = 291,
160 SAMPLER2DARRAY = 292,
161 SAMPLER2DARRAYSHADOW = 293,
162 ISAMPLER2D = 294,
163 ISAMPLER3D = 295,
164 ISAMPLERCUBE = 296,
165 ISAMPLER2DARRAY = 297,
166 USAMPLER2D = 298,
167 USAMPLER3D = 299,
168 USAMPLERCUBE = 300,
169 USAMPLER2DARRAY = 301,
170 SAMPLER = 302,
171 SAMPLERSHADOW = 303,
172 TEXTURE2D = 304,
173 TEXTURE3D = 305,
174 TEXTURECUBE = 306,
175 TEXTURE2DARRAY = 307,
176 ITEXTURE2D = 308,
177 ITEXTURE3D = 309,
178 ITEXTURECUBE = 310,
179 ITEXTURE2DARRAY = 311,
180 UTEXTURE2D = 312,
181 UTEXTURE3D = 313,
182 UTEXTURECUBE = 314,
183 UTEXTURE2DARRAY = 315,
184 ATTRIBUTE = 316,
185 VARYING = 317,
186 FLOAT16_T = 318,
187 FLOAT32_T = 319,
188 DOUBLE = 320,
189 FLOAT64_T = 321,
190 INT64_T = 322,
191 UINT64_T = 323,
192 INT32_T = 324,
193 UINT32_T = 325,
194 INT16_T = 326,
195 UINT16_T = 327,
196 INT8_T = 328,
197 UINT8_T = 329,
198 I64VEC2 = 330,
199 I64VEC3 = 331,
200 I64VEC4 = 332,
201 U64VEC2 = 333,
202 U64VEC3 = 334,
203 U64VEC4 = 335,
204 I32VEC2 = 336,
205 I32VEC3 = 337,
206 I32VEC4 = 338,
207 U32VEC2 = 339,
208 U32VEC3 = 340,
209 U32VEC4 = 341,
210 I16VEC2 = 342,
211 I16VEC3 = 343,
212 I16VEC4 = 344,
213 U16VEC2 = 345,
214 U16VEC3 = 346,
215 U16VEC4 = 347,
216 I8VEC2 = 348,
217 I8VEC3 = 349,
218 I8VEC4 = 350,
219 U8VEC2 = 351,
220 U8VEC3 = 352,
221 U8VEC4 = 353,
222 DVEC2 = 354,
223 DVEC3 = 355,
224 DVEC4 = 356,
225 DMAT2 = 357,
226 DMAT3 = 358,
227 DMAT4 = 359,
228 F16VEC2 = 360,
229 F16VEC3 = 361,
230 F16VEC4 = 362,
231 F16MAT2 = 363,
232 F16MAT3 = 364,
233 F16MAT4 = 365,
234 F32VEC2 = 366,
235 F32VEC3 = 367,
236 F32VEC4 = 368,
237 F32MAT2 = 369,
238 F32MAT3 = 370,
239 F32MAT4 = 371,
240 F64VEC2 = 372,
241 F64VEC3 = 373,
242 F64VEC4 = 374,
243 F64MAT2 = 375,
244 F64MAT3 = 376,
245 F64MAT4 = 377,
246 DMAT2X2 = 378,
247 DMAT2X3 = 379,
248 DMAT2X4 = 380,
249 DMAT3X2 = 381,
250 DMAT3X3 = 382,
251 DMAT3X4 = 383,
252 DMAT4X2 = 384,
253 DMAT4X3 = 385,
254 DMAT4X4 = 386,
255 F16MAT2X2 = 387,
256 F16MAT2X3 = 388,
257 F16MAT2X4 = 389,
258 F16MAT3X2 = 390,
259 F16MAT3X3 = 391,
260 F16MAT3X4 = 392,
261 F16MAT4X2 = 393,
262 F16MAT4X3 = 394,
263 F16MAT4X4 = 395,
264 F32MAT2X2 = 396,
265 F32MAT2X3 = 397,
266 F32MAT2X4 = 398,
267 F32MAT3X2 = 399,
268 F32MAT3X3 = 400,
269 F32MAT3X4 = 401,
270 F32MAT4X2 = 402,
271 F32MAT4X3 = 403,
272 F32MAT4X4 = 404,
273 F64MAT2X2 = 405,
274 F64MAT2X3 = 406,
275 F64MAT2X4 = 407,
276 F64MAT3X2 = 408,
277 F64MAT3X3 = 409,
278 F64MAT3X4 = 410,
279 F64MAT4X2 = 411,
280 F64MAT4X3 = 412,
281 F64MAT4X4 = 413,
282 ATOMIC_UINT = 414,
283 ACCSTRUCTNV = 415,
284 ACCSTRUCTEXT = 416,
285 RAYQUERYEXT = 417,
286 FCOOPMATNV = 418,
287 ICOOPMATNV = 419,
288 UCOOPMATNV = 420,
289 SAMPLERCUBEARRAY = 421,
290 SAMPLERCUBEARRAYSHADOW = 422,
291 ISAMPLERCUBEARRAY = 423,
292 USAMPLERCUBEARRAY = 424,
293 SAMPLER1D = 425,
294 SAMPLER1DARRAY = 426,
295 SAMPLER1DARRAYSHADOW = 427,
296 ISAMPLER1D = 428,
297 SAMPLER1DSHADOW = 429,
298 SAMPLER2DRECT = 430,
299 SAMPLER2DRECTSHADOW = 431,
300 ISAMPLER2DRECT = 432,
301 USAMPLER2DRECT = 433,
302 SAMPLERBUFFER = 434,
303 ISAMPLERBUFFER = 435,
304 USAMPLERBUFFER = 436,
305 SAMPLER2DMS = 437,
306 ISAMPLER2DMS = 438,
307 USAMPLER2DMS = 439,
308 SAMPLER2DMSARRAY = 440,
309 ISAMPLER2DMSARRAY = 441,
310 USAMPLER2DMSARRAY = 442,
311 SAMPLEREXTERNALOES = 443,
312 SAMPLEREXTERNAL2DY2YEXT = 444,
313 ISAMPLER1DARRAY = 445,
314 USAMPLER1D = 446,
315 USAMPLER1DARRAY = 447,
316 F16SAMPLER1D = 448,
317 F16SAMPLER2D = 449,
318 F16SAMPLER3D = 450,
319 F16SAMPLER2DRECT = 451,
320 F16SAMPLERCUBE = 452,
321 F16SAMPLER1DARRAY = 453,
322 F16SAMPLER2DARRAY = 454,
323 F16SAMPLERCUBEARRAY = 455,
324 F16SAMPLERBUFFER = 456,
325 F16SAMPLER2DMS = 457,
326 F16SAMPLER2DMSARRAY = 458,
327 F16SAMPLER1DSHADOW = 459,
328 F16SAMPLER2DSHADOW = 460,
329 F16SAMPLER1DARRAYSHADOW = 461,
330 F16SAMPLER2DARRAYSHADOW = 462,
331 F16SAMPLER2DRECTSHADOW = 463,
332 F16SAMPLERCUBESHADOW = 464,
333 F16SAMPLERCUBEARRAYSHADOW = 465,
334 IMAGE1D = 466,
335 IIMAGE1D = 467,
336 UIMAGE1D = 468,
337 IMAGE2D = 469,
338 IIMAGE2D = 470,
339 UIMAGE2D = 471,
340 IMAGE3D = 472,
341 IIMAGE3D = 473,
342 UIMAGE3D = 474,
343 IMAGE2DRECT = 475,
344 IIMAGE2DRECT = 476,
345 UIMAGE2DRECT = 477,
346 IMAGECUBE = 478,
347 IIMAGECUBE = 479,
348 UIMAGECUBE = 480,
349 IMAGEBUFFER = 481,
350 IIMAGEBUFFER = 482,
351 UIMAGEBUFFER = 483,
352 IMAGE1DARRAY = 484,
353 IIMAGE1DARRAY = 485,
354 UIMAGE1DARRAY = 486,
355 IMAGE2DARRAY = 487,
356 IIMAGE2DARRAY = 488,
357 UIMAGE2DARRAY = 489,
358 IMAGECUBEARRAY = 490,
359 IIMAGECUBEARRAY = 491,
360 UIMAGECUBEARRAY = 492,
361 IMAGE2DMS = 493,
362 IIMAGE2DMS = 494,
363 UIMAGE2DMS = 495,
364 IMAGE2DMSARRAY = 496,
365 IIMAGE2DMSARRAY = 497,
366 UIMAGE2DMSARRAY = 498,
367 F16IMAGE1D = 499,
368 F16IMAGE2D = 500,
369 F16IMAGE3D = 501,
370 F16IMAGE2DRECT = 502,
371 F16IMAGECUBE = 503,
372 F16IMAGE1DARRAY = 504,
373 F16IMAGE2DARRAY = 505,
374 F16IMAGECUBEARRAY = 506,
375 F16IMAGEBUFFER = 507,
376 F16IMAGE2DMS = 508,
377 F16IMAGE2DMSARRAY = 509,
378 TEXTURECUBEARRAY = 510,
379 ITEXTURECUBEARRAY = 511,
380 UTEXTURECUBEARRAY = 512,
381 TEXTURE1D = 513,
382 ITEXTURE1D = 514,
383 UTEXTURE1D = 515,
384 TEXTURE1DARRAY = 516,
385 ITEXTURE1DARRAY = 517,
386 UTEXTURE1DARRAY = 518,
387 TEXTURE2DRECT = 519,
388 ITEXTURE2DRECT = 520,
389 UTEXTURE2DRECT = 521,
390 TEXTUREBUFFER = 522,
391 ITEXTUREBUFFER = 523,
392 UTEXTUREBUFFER = 524,
393 TEXTURE2DMS = 525,
394 ITEXTURE2DMS = 526,
395 UTEXTURE2DMS = 527,
396 TEXTURE2DMSARRAY = 528,
397 ITEXTURE2DMSARRAY = 529,
398 UTEXTURE2DMSARRAY = 530,
399 F16TEXTURE1D = 531,
400 F16TEXTURE2D = 532,
401 F16TEXTURE3D = 533,
402 F16TEXTURE2DRECT = 534,
403 F16TEXTURECUBE = 535,
404 F16TEXTURE1DARRAY = 536,
405 F16TEXTURE2DARRAY = 537,
406 F16TEXTURECUBEARRAY = 538,
407 F16TEXTUREBUFFER = 539,
408 F16TEXTURE2DMS = 540,
409 F16TEXTURE2DMSARRAY = 541,
410 SUBPASSINPUT = 542,
411 SUBPASSINPUTMS = 543,
412 ISUBPASSINPUT = 544,
413 ISUBPASSINPUTMS = 545,
414 USUBPASSINPUT = 546,
415 USUBPASSINPUTMS = 547,
416 F16SUBPASSINPUT = 548,
417 F16SUBPASSINPUTMS = 549,
418 LEFT_OP = 550,
419 RIGHT_OP = 551,
420 INC_OP = 552,
421 DEC_OP = 553,
422 LE_OP = 554,
423 GE_OP = 555,
424 EQ_OP = 556,
425 NE_OP = 557,
426 AND_OP = 558,
427 OR_OP = 559,
428 XOR_OP = 560,
429 MUL_ASSIGN = 561,
430 DIV_ASSIGN = 562,
431 ADD_ASSIGN = 563,
432 MOD_ASSIGN = 564,
433 LEFT_ASSIGN = 565,
434 RIGHT_ASSIGN = 566,
435 AND_ASSIGN = 567,
436 XOR_ASSIGN = 568,
437 OR_ASSIGN = 569,
438 SUB_ASSIGN = 570,
439 STRING_LITERAL = 571,
440 LEFT_PAREN = 572,
441 RIGHT_PAREN = 573,
442 LEFT_BRACKET = 574,
443 RIGHT_BRACKET = 575,
444 LEFT_BRACE = 576,
445 RIGHT_BRACE = 577,
446 DOT = 578,
447 COMMA = 579,
448 COLON = 580,
449 EQUAL = 581,
450 SEMICOLON = 582,
451 BANG = 583,
452 DASH = 584,
453 TILDE = 585,
454 PLUS = 586,
455 STAR = 587,
456 SLASH = 588,
457 PERCENT = 589,
458 LEFT_ANGLE = 590,
459 RIGHT_ANGLE = 591,
460 VERTICAL_BAR = 592,
461 CARET = 593,
462 AMPERSAND = 594,
463 QUESTION = 595,
464 INVARIANT = 596,
465 HIGH_PRECISION = 597,
466 MEDIUM_PRECISION = 598,
467 LOW_PRECISION = 599,
468 PRECISION = 600,
469 PACKED = 601,
470 RESOURCE = 602,
471 SUPERP = 603,
472 FLOATCONSTANT = 604,
473 INTCONSTANT = 605,
474 UINTCONSTANT = 606,
475 BOOLCONSTANT = 607,
476 IDENTIFIER = 608,
477 TYPE_NAME = 609,
478 CENTROID = 610,
479 IN = 611,
480 OUT = 612,
481 INOUT = 613,
482 STRUCT = 614,
483 VOID = 615,
484 WHILE = 616,
485 BREAK = 617,
486 CONTINUE = 618,
487 DO = 619,
488 ELSE = 620,
489 FOR = 621,
490 IF = 622,
491 DISCARD = 623,
492 RETURN = 624,
493 SWITCH = 625,
494 CASE = 626,
495 DEFAULT = 627,
496 UNIFORM = 628,
497 SHARED = 629,
498 BUFFER = 630,
499 FLAT = 631,
500 SMOOTH = 632,
501 LAYOUT = 633,
502 DOUBLECONSTANT = 634,
503 INT16CONSTANT = 635,
504 UINT16CONSTANT = 636,
505 FLOAT16CONSTANT = 637,
506 INT32CONSTANT = 638,
507 UINT32CONSTANT = 639,
508 INT64CONSTANT = 640,
509 UINT64CONSTANT = 641,
510 SUBROUTINE = 642,
511 DEMOTE = 643,
512 PAYLOADNV = 644,
513 PAYLOADINNV = 645,
514 HITATTRNV = 646,
515 CALLDATANV = 647,
516 CALLDATAINNV = 648,
517 PAYLOADEXT = 649,
518 PAYLOADINEXT = 650,
519 HITATTREXT = 651,
520 CALLDATAEXT = 652,
521 CALLDATAINEXT = 653,
522 PATCH = 654,
523 SAMPLE = 655,
524 NONUNIFORM = 656,
525 COHERENT = 657,
526 VOLATILE = 658,
527 RESTRICT = 659,
528 READONLY = 660,
529 WRITEONLY = 661,
530 DEVICECOHERENT = 662,
531 QUEUEFAMILYCOHERENT = 663,
532 WORKGROUPCOHERENT = 664,
533 SUBGROUPCOHERENT = 665,
534 NONPRIVATE = 666,
535 SHADERCALLCOHERENT = 667,
536 NOPERSPECTIVE = 668,
537 EXPLICITINTERPAMD = 669,
538 PERVERTEXNV = 670,
539 PERPRIMITIVENV = 671,
540 PERVIEWNV = 672,
541 PERTASKNV = 673,
542 PRECISE = 674
543 };
544 #endif
545
546 /* Value type. */
547 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
548
549 union YYSTYPE
550 {
551 #line 97 "glslang.y" /* yacc.c:355 */
552
553 struct {
554 glslang::TSourceLoc loc;
555 union {
556 glslang::TString *string;
557 int i;
558 unsigned int u;
559 long long i64;
560 unsigned long long u64;
561 bool b;
562 double d;
563 };
564 glslang::TSymbol* symbol;
565 } lex;
566 struct {
567 glslang::TSourceLoc loc;
568 glslang::TOperator op;
569 union {
570 TIntermNode* intermNode;
571 glslang::TIntermNodePair nodePair;
572 glslang::TIntermTyped* intermTypedNode;
573 glslang::TAttributes* attributes;
574 };
575 union {
576 glslang::TPublicType type;
577 glslang::TFunction* function;
578 glslang::TParameter param;
579 glslang::TTypeLoc typeLine;
580 glslang::TTypeList* typeList;
581 glslang::TArraySizes* arraySizes;
582 glslang::TIdentifierList* identifierList;
583 };
584 glslang::TArraySizes* typeParameters;
585 } interm;
586
587 #line 588 "glslang_tab.cpp" /* yacc.c:355 */
588 };
589
590 typedef union YYSTYPE YYSTYPE;
591 # define YYSTYPE_IS_TRIVIAL 1
592 # define YYSTYPE_IS_DECLARED 1
593 #endif
594
595
596
597 int yyparse (glslang::TParseContext* pParseContext);
598
599 #endif /* !YY_YY_GLSLANG_TAB_CPP_H_INCLUDED */
600
601 /* Copy the second part of user declarations. */
602 #line 133 "glslang.y" /* yacc.c:358 */
603
604
605 /* windows only pragma */
606 #ifdef _MSC_VER
607 #pragma warning(disable : 4065)
608 #pragma warning(disable : 4127)
609 #pragma warning(disable : 4244)
610 #endif
611
612 #define parseContext (*pParseContext)
613 #define yyerror(context, msg) context->parserError(msg)
614
615 extern int yylex(YYSTYPE*, TParseContext&);
616
617
618 #line 619 "glslang_tab.cpp" /* yacc.c:358 */
619
620 #ifdef short
621 # undef short
622 #endif
623
624 #ifdef YYTYPE_UINT8
625 typedef YYTYPE_UINT8 yytype_uint8;
626 #else
627 typedef unsigned char yytype_uint8;
628 #endif
629
630 #ifdef YYTYPE_INT8
631 typedef YYTYPE_INT8 yytype_int8;
632 #else
633 typedef signed char yytype_int8;
634 #endif
635
636 #ifdef YYTYPE_UINT16
637 typedef YYTYPE_UINT16 yytype_uint16;
638 #else
639 typedef unsigned short int yytype_uint16;
640 #endif
641
642 #ifdef YYTYPE_INT16
643 typedef YYTYPE_INT16 yytype_int16;
644 #else
645 typedef short int yytype_int16;
646 #endif
647
648 #ifndef YYSIZE_T
649 # ifdef __SIZE_TYPE__
650 # define YYSIZE_T __SIZE_TYPE__
651 # elif defined size_t
652 # define YYSIZE_T size_t
653 # elif ! defined YYSIZE_T
654 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
655 # define YYSIZE_T size_t
656 # else
657 # define YYSIZE_T unsigned int
658 # endif
659 #endif
660
661 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
662
663 #ifndef YY_
664 # if defined YYENABLE_NLS && YYENABLE_NLS
665 # if ENABLE_NLS
666 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
667 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
668 # endif
669 # endif
670 # ifndef YY_
671 # define YY_(Msgid) Msgid
672 # endif
673 #endif
674
675 #ifndef YY_ATTRIBUTE
676 # if (defined __GNUC__ \
677 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
678 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
679 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
680 # else
681 # define YY_ATTRIBUTE(Spec) /* empty */
682 # endif
683 #endif
684
685 #ifndef YY_ATTRIBUTE_PURE
686 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
687 #endif
688
689 #ifndef YY_ATTRIBUTE_UNUSED
690 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
691 #endif
692
693 #if !defined _Noreturn \
694 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
695 # if defined _MSC_VER && 1200 <= _MSC_VER
696 # define _Noreturn __declspec (noreturn)
697 # else
698 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
699 # endif
700 #endif
701
702 /* Suppress unused-variable warnings by "using" E. */
703 #if ! defined lint || defined __GNUC__
704 # define YYUSE(E) ((void) (E))
705 #else
706 # define YYUSE(E) /* empty */
707 #endif
708
709 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
710 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
711 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
712 _Pragma ("GCC diagnostic push") \
713 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
714 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
715 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
716 _Pragma ("GCC diagnostic pop")
717 #else
718 # define YY_INITIAL_VALUE(Value) Value
719 #endif
720 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
721 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
722 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
723 #endif
724 #ifndef YY_INITIAL_VALUE
725 # define YY_INITIAL_VALUE(Value) /* Nothing. */
726 #endif
727
728
729 #if ! defined yyoverflow || YYERROR_VERBOSE
730
731 /* The parser invokes alloca or malloc; define the necessary symbols. */
732
733 # ifdef YYSTACK_USE_ALLOCA
734 # if YYSTACK_USE_ALLOCA
735 # ifdef __GNUC__
736 # define YYSTACK_ALLOC __builtin_alloca
737 # elif defined __BUILTIN_VA_ARG_INCR
738 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
739 # elif defined _AIX
740 # define YYSTACK_ALLOC __alloca
741 # elif defined _MSC_VER
742 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
743 # define alloca _alloca
744 # else
745 # define YYSTACK_ALLOC alloca
746 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
747 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
748 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
749 # ifndef EXIT_SUCCESS
750 # define EXIT_SUCCESS 0
751 # endif
752 # endif
753 # endif
754 # endif
755 # endif
756
757 # ifdef YYSTACK_ALLOC
758 /* Pacify GCC's 'empty if-body' warning. */
759 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
760 # ifndef YYSTACK_ALLOC_MAXIMUM
761 /* The OS might guarantee only one guard page at the bottom of the stack,
762 and a page size can be as small as 4096 bytes. So we cannot safely
763 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
764 to allow for a few compiler-allocated temporary stack slots. */
765 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
766 # endif
767 # else
768 # define YYSTACK_ALLOC YYMALLOC
769 # define YYSTACK_FREE YYFREE
770 # ifndef YYSTACK_ALLOC_MAXIMUM
771 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
772 # endif
773 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
774 && ! ((defined YYMALLOC || defined malloc) \
775 && (defined YYFREE || defined free)))
776 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
777 # ifndef EXIT_SUCCESS
778 # define EXIT_SUCCESS 0
779 # endif
780 # endif
781 # ifndef YYMALLOC
782 # define YYMALLOC malloc
783 # if ! defined malloc && ! defined EXIT_SUCCESS
784 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
785 # endif
786 # endif
787 # ifndef YYFREE
788 # define YYFREE free
789 # if ! defined free && ! defined EXIT_SUCCESS
790 void free (void *); /* INFRINGES ON USER NAME SPACE */
791 # endif
792 # endif
793 # endif
794 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
795
796
797 #if (! defined yyoverflow \
798 && (! defined __cplusplus \
799 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
800
801 /* A type that is properly aligned for any stack member. */
802 union yyalloc
803 {
804 yytype_int16 yyss_alloc;
805 YYSTYPE yyvs_alloc;
806 };
807
808 /* The size of the maximum gap between one aligned stack and the next. */
809 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
810
811 /* The size of an array large to enough to hold all stacks, each with
812 N elements. */
813 # define YYSTACK_BYTES(N) \
814 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
815 + YYSTACK_GAP_MAXIMUM)
816
817 # define YYCOPY_NEEDED 1
818
819 /* Relocate STACK from its old location to the new one. The
820 local variables YYSIZE and YYSTACKSIZE give the old and new number of
821 elements in the stack, and YYPTR gives the new location of the
822 stack. Advance YYPTR to a properly aligned location for the next
823 stack. */
824 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
825 do \
826 { \
827 YYSIZE_T yynewbytes; \
828 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
829 Stack = &yyptr->Stack_alloc; \
830 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
831 yyptr += yynewbytes / sizeof (*yyptr); \
832 } \
833 while (0)
834
835 #endif
836
837 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
838 /* Copy COUNT objects from SRC to DST. The source and destination do
839 not overlap. */
840 # ifndef YYCOPY
841 # if defined __GNUC__ && 1 < __GNUC__
842 # define YYCOPY(Dst, Src, Count) \
843 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
844 # else
845 # define YYCOPY(Dst, Src, Count) \
846 do \
847 { \
848 YYSIZE_T yyi; \
849 for (yyi = 0; yyi < (Count); yyi++) \
850 (Dst)[yyi] = (Src)[yyi]; \
851 } \
852 while (0)
853 # endif
854 # endif
855 #endif /* !YYCOPY_NEEDED */
856
857 /* YYFINAL -- State number of the termination state. */
858 #define YYFINAL 394
859 /* YYLAST -- Last index in YYTABLE. */
860 #define YYLAST 9550
861
862 /* YYNTOKENS -- Number of terminals. */
863 #define YYNTOKENS 420
864 /* YYNNTS -- Number of nonterminals. */
865 #define YYNNTS 111
866 /* YYNRULES -- Number of rules. */
867 #define YYNRULES 591
868 /* YYNSTATES -- Number of states. */
869 #define YYNSTATES 736
870
871 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
872 by yylex, with out-of-bounds checking. */
873 #define YYUNDEFTOK 2
874 #define YYMAXUTOK 674
875
876 #define YYTRANSLATE(YYX) \
877 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
878
879 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
880 as returned by yylex, without out-of-bounds checking. */
881 static const yytype_uint16 yytranslate[] =
882 {
883 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
884 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
885 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
886 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
887 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
888 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
889 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
890 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
891 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
892 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
893 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
894 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
895 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
896 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
897 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
898 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
899 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
900 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
901 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
902 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
903 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
904 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
905 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
906 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
907 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
908 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
909 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
910 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
911 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
912 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
913 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
914 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
915 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
916 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
917 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
918 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
919 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
920 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
921 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
922 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
923 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
924 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
925 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
926 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
927 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
928 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
929 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
930 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
931 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
932 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
933 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
934 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
935 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
936 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
937 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
938 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
939 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
940 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
941 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
942 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
943 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
944 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
945 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
946 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
947 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
948 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
949 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
950 415, 416, 417, 418, 419
951 };
952
953 #if YYDEBUG
954 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
955 static const yytype_uint16 yyrline[] =
956 {
957 0, 357, 357, 363, 366, 371, 374, 377, 381, 385,
958 388, 392, 396, 400, 404, 408, 412, 418, 426, 429,
959 432, 435, 438, 443, 451, 458, 465, 471, 475, 482,
960 485, 491, 498, 508, 516, 521, 549, 558, 564, 568,
961 572, 592, 593, 594, 595, 601, 602, 607, 612, 621,
962 622, 627, 635, 636, 642, 651, 652, 657, 662, 667,
963 675, 676, 685, 697, 698, 707, 708, 717, 718, 727,
964 728, 736, 737, 745, 746, 754, 755, 755, 773, 774,
965 790, 794, 798, 802, 807, 811, 815, 819, 823, 827,
966 831, 838, 841, 852, 859, 864, 869, 876, 880, 884,
967 888, 893, 898, 907, 907, 918, 922, 929, 936, 939,
968 946, 954, 974, 997, 1012, 1037, 1048, 1058, 1068, 1078,
969 1087, 1090, 1094, 1098, 1103, 1111, 1118, 1123, 1128, 1133,
970 1142, 1152, 1179, 1188, 1195, 1203, 1210, 1217, 1225, 1235,
971 1242, 1253, 1259, 1262, 1269, 1273, 1277, 1286, 1296, 1299,
972 1310, 1313, 1316, 1320, 1324, 1329, 1333, 1340, 1344, 1349,
973 1355, 1361, 1368, 1373, 1381, 1387, 1399, 1413, 1419, 1424,
974 1432, 1440, 1448, 1456, 1464, 1472, 1480, 1488, 1495, 1502,
975 1506, 1511, 1516, 1521, 1526, 1531, 1536, 1540, 1544, 1548,
976 1552, 1558, 1569, 1576, 1579, 1588, 1593, 1603, 1608, 1616,
977 1620, 1630, 1633, 1639, 1645, 1652, 1662, 1666, 1670, 1674,
978 1679, 1683, 1688, 1693, 1698, 1703, 1708, 1713, 1718, 1723,
979 1728, 1734, 1740, 1746, 1751, 1756, 1761, 1766, 1771, 1776,
980 1781, 1786, 1791, 1796, 1801, 1807, 1814, 1819, 1824, 1829,
981 1834, 1839, 1844, 1849, 1854, 1859, 1864, 1869, 1877, 1885,
982 1893, 1899, 1905, 1911, 1917, 1923, 1929, 1935, 1941, 1947,
983 1953, 1959, 1965, 1971, 1977, 1983, 1989, 1995, 2001, 2007,
984 2013, 2019, 2025, 2031, 2037, 2043, 2049, 2055, 2061, 2067,
985 2073, 2079, 2085, 2091, 2099, 2107, 2115, 2123, 2131, 2139,
986 2147, 2155, 2163, 2171, 2179, 2187, 2193, 2199, 2205, 2211,
987 2217, 2223, 2229, 2235, 2241, 2247, 2253, 2259, 2265, 2271,
988 2277, 2283, 2289, 2295, 2301, 2307, 2313, 2319, 2325, 2331,
989 2337, 2343, 2349, 2355, 2361, 2367, 2373, 2379, 2385, 2391,
990 2397, 2403, 2407, 2411, 2415, 2420, 2426, 2431, 2436, 2441,
991 2446, 2451, 2456, 2462, 2467, 2472, 2477, 2482, 2487, 2493,
992 2499, 2505, 2511, 2517, 2523, 2529, 2535, 2541, 2547, 2553,
993 2559, 2565, 2571, 2576, 2581, 2586, 2591, 2596, 2601, 2607,
994 2612, 2617, 2622, 2627, 2632, 2637, 2642, 2648, 2653, 2658,
995 2663, 2668, 2673, 2678, 2683, 2688, 2693, 2698, 2703, 2708,
996 2713, 2718, 2724, 2729, 2734, 2740, 2746, 2751, 2756, 2761,
997 2767, 2772, 2777, 2782, 2788, 2793, 2798, 2803, 2809, 2814,
998 2819, 2824, 2830, 2836, 2842, 2848, 2853, 2859, 2865, 2871,
999 2876, 2881, 2886, 2891, 2896, 2902, 2907, 2912, 2917, 2923,
1000 2928, 2933, 2938, 2944, 2949, 2954, 2959, 2965, 2970, 2975,
1001 2980, 2986, 2991, 2996, 3001, 3007, 3012, 3017, 3022, 3028,
1002 3033, 3038, 3043, 3049, 3054, 3059, 3064, 3070, 3075, 3080,
1003 3085, 3091, 3096, 3101, 3106, 3112, 3117, 3122, 3127, 3133,
1004 3138, 3143, 3148, 3154, 3159, 3164, 3169, 3175, 3180, 3185,
1005 3190, 3196, 3201, 3206, 3212, 3218, 3224, 3230, 3237, 3244,
1006 3250, 3256, 3262, 3268, 3274, 3280, 3287, 3292, 3308, 3313,
1007 3318, 3326, 3326, 3337, 3337, 3347, 3350, 3363, 3385, 3412,
1008 3416, 3422, 3427, 3438, 3442, 3448, 3459, 3462, 3469, 3473,
1009 3474, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3488, 3494,
1010 3503, 3504, 3508, 3504, 3520, 3521, 3525, 3525, 3532, 3532,
1011 3546, 3549, 3557, 3565, 3576, 3577, 3581, 3585, 3592, 3599,
1012 3603, 3611, 3615, 3628, 3632, 3639, 3639, 3659, 3662, 3668,
1013 3680, 3692, 3696, 3703, 3703, 3718, 3718, 3734, 3734, 3755,
1014 3758, 3764, 3767, 3773, 3777, 3784, 3789, 3794, 3801, 3804,
1015 3813, 3817, 3826, 3829, 3833, 3842, 3842, 3865, 3871, 3874,
1016 3879, 3882
1017 };
1018 #endif
1019
1020 #if YYDEBUG || YYERROR_VERBOSE || 1
1021 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1022 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1023 static const char *const yytname[] =
1024 {
1025 "$end", "error", "$undefined", "CONST", "BOOL", "INT", "UINT", "FLOAT",
1026 "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", "UVEC2", "UVEC3",
1027 "UVEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3", "MAT4", "MAT2X2",
1028 "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3",
1029 "MAT4X4", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE", "SAMPLER2DSHADOW",
1030 "SAMPLERCUBESHADOW", "SAMPLER2DARRAY", "SAMPLER2DARRAYSHADOW",
1031 "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE", "ISAMPLER2DARRAY",
1032 "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER2DARRAY", "SAMPLER",
1033 "SAMPLERSHADOW", "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE",
1034 "TEXTURE2DARRAY", "ITEXTURE2D", "ITEXTURE3D", "ITEXTURECUBE",
1035 "ITEXTURE2DARRAY", "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE",
1036 "UTEXTURE2DARRAY", "ATTRIBUTE", "VARYING", "FLOAT16_T", "FLOAT32_T",
1037 "DOUBLE", "FLOAT64_T", "INT64_T", "UINT64_T", "INT32_T", "UINT32_T",
1038 "INT16_T", "UINT16_T", "INT8_T", "UINT8_T", "I64VEC2", "I64VEC3",
1039 "I64VEC4", "U64VEC2", "U64VEC3", "U64VEC4", "I32VEC2", "I32VEC3",
1040 "I32VEC4", "U32VEC2", "U32VEC3", "U32VEC4", "I16VEC2", "I16VEC3",
1041 "I16VEC4", "U16VEC2", "U16VEC3", "U16VEC4", "I8VEC2", "I8VEC3", "I8VEC4",
1042 "U8VEC2", "U8VEC3", "U8VEC4", "DVEC2", "DVEC3", "DVEC4", "DMAT2",
1043 "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4", "F16MAT2", "F16MAT3",
1044 "F16MAT4", "F32VEC2", "F32VEC3", "F32VEC4", "F32MAT2", "F32MAT3",
1045 "F32MAT4", "F64VEC2", "F64VEC3", "F64VEC4", "F64MAT2", "F64MAT3",
1046 "F64MAT4", "DMAT2X2", "DMAT2X3", "DMAT2X4", "DMAT3X2", "DMAT3X3",
1047 "DMAT3X4", "DMAT4X2", "DMAT4X3", "DMAT4X4", "F16MAT2X2", "F16MAT2X3",
1048 "F16MAT2X4", "F16MAT3X2", "F16MAT3X3", "F16MAT3X4", "F16MAT4X2",
1049 "F16MAT4X3", "F16MAT4X4", "F32MAT2X2", "F32MAT2X3", "F32MAT2X4",
1050 "F32MAT3X2", "F32MAT3X3", "F32MAT3X4", "F32MAT4X2", "F32MAT4X3",
1051 "F32MAT4X4", "F64MAT2X2", "F64MAT2X3", "F64MAT2X4", "F64MAT3X2",
1052 "F64MAT3X3", "F64MAT3X4", "F64MAT4X2", "F64MAT4X3", "F64MAT4X4",
1053 "ATOMIC_UINT", "ACCSTRUCTNV", "ACCSTRUCTEXT", "RAYQUERYEXT",
1054 "FCOOPMATNV", "ICOOPMATNV", "UCOOPMATNV", "SAMPLERCUBEARRAY",
1055 "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY",
1056 "SAMPLER1D", "SAMPLER1DARRAY", "SAMPLER1DARRAYSHADOW", "ISAMPLER1D",
1057 "SAMPLER1DSHADOW", "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW",
1058 "ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER",
1059 "USAMPLERBUFFER", "SAMPLER2DMS", "ISAMPLER2DMS", "USAMPLER2DMS",
1060 "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", "USAMPLER2DMSARRAY",
1061 "SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT", "ISAMPLER1DARRAY",
1062 "USAMPLER1D", "USAMPLER1DARRAY", "F16SAMPLER1D", "F16SAMPLER2D",
1063 "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE",
1064 "F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY",
1065 "F16SAMPLERBUFFER", "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY",
1066 "F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW",
1067 "F16SAMPLER2DARRAYSHADOW", "F16SAMPLER2DRECTSHADOW",
1068 "F16SAMPLERCUBESHADOW", "F16SAMPLERCUBEARRAYSHADOW", "IMAGE1D",
1069 "IIMAGE1D", "UIMAGE1D", "IMAGE2D", "IIMAGE2D", "UIMAGE2D", "IMAGE3D",
1070 "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", "IIMAGE2DRECT", "UIMAGE2DRECT",
1071 "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", "IMAGEBUFFER", "IIMAGEBUFFER",
1072 "UIMAGEBUFFER", "IMAGE1DARRAY", "IIMAGE1DARRAY", "UIMAGE1DARRAY",
1073 "IMAGE2DARRAY", "IIMAGE2DARRAY", "UIMAGE2DARRAY", "IMAGECUBEARRAY",
1074 "IIMAGECUBEARRAY", "UIMAGECUBEARRAY", "IMAGE2DMS", "IIMAGE2DMS",
1075 "UIMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY",
1076 "F16IMAGE1D", "F16IMAGE2D", "F16IMAGE3D", "F16IMAGE2DRECT",
1077 "F16IMAGECUBE", "F16IMAGE1DARRAY", "F16IMAGE2DARRAY",
1078 "F16IMAGECUBEARRAY", "F16IMAGEBUFFER", "F16IMAGE2DMS",
1079 "F16IMAGE2DMSARRAY", "TEXTURECUBEARRAY", "ITEXTURECUBEARRAY",
1080 "UTEXTURECUBEARRAY", "TEXTURE1D", "ITEXTURE1D", "UTEXTURE1D",
1081 "TEXTURE1DARRAY", "ITEXTURE1DARRAY", "UTEXTURE1DARRAY", "TEXTURE2DRECT",
1082 "ITEXTURE2DRECT", "UTEXTURE2DRECT", "TEXTUREBUFFER", "ITEXTUREBUFFER",
1083 "UTEXTUREBUFFER", "TEXTURE2DMS", "ITEXTURE2DMS", "UTEXTURE2DMS",
1084 "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY", "UTEXTURE2DMSARRAY",
1085 "F16TEXTURE1D", "F16TEXTURE2D", "F16TEXTURE3D", "F16TEXTURE2DRECT",
1086 "F16TEXTURECUBE", "F16TEXTURE1DARRAY", "F16TEXTURE2DARRAY",
1087 "F16TEXTURECUBEARRAY", "F16TEXTUREBUFFER", "F16TEXTURE2DMS",
1088 "F16TEXTURE2DMSARRAY", "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT",
1089 "ISUBPASSINPUTMS", "USUBPASSINPUT", "USUBPASSINPUTMS", "F16SUBPASSINPUT",
1090 "F16SUBPASSINPUTMS", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
1091 "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
1092 "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
1093 "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "STRING_LITERAL",
1094 "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET",
1095 "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL",
1096 "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT",
1097 "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND",
1098 "QUESTION", "INVARIANT", "HIGH_PRECISION", "MEDIUM_PRECISION",
1099 "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP",
1100 "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT",
1101 "IDENTIFIER", "TYPE_NAME", "CENTROID", "IN", "OUT", "INOUT", "STRUCT",
1102 "VOID", "WHILE", "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF",
1103 "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "UNIFORM", "SHARED",
1104 "BUFFER", "FLAT", "SMOOTH", "LAYOUT", "DOUBLECONSTANT", "INT16CONSTANT",
1105 "UINT16CONSTANT", "FLOAT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT",
1106 "INT64CONSTANT", "UINT64CONSTANT", "SUBROUTINE", "DEMOTE", "PAYLOADNV",
1107 "PAYLOADINNV", "HITATTRNV", "CALLDATANV", "CALLDATAINNV", "PAYLOADEXT",
1108 "PAYLOADINEXT", "HITATTREXT", "CALLDATAEXT", "CALLDATAINEXT", "PATCH",
1109 "SAMPLE", "NONUNIFORM", "COHERENT", "VOLATILE", "RESTRICT", "READONLY",
1110 "WRITEONLY", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT",
1111 "WORKGROUPCOHERENT", "SUBGROUPCOHERENT", "NONPRIVATE",
1112 "SHADERCALLCOHERENT", "NOPERSPECTIVE", "EXPLICITINTERPAMD",
1113 "PERVERTEXNV", "PERPRIMITIVENV", "PERVIEWNV", "PERTASKNV", "PRECISE",
1114 "$accept", "variable_identifier", "primary_expression",
1115 "postfix_expression", "integer_expression", "function_call",
1116 "function_call_or_method", "function_call_generic",
1117 "function_call_header_no_parameters",
1118 "function_call_header_with_parameters", "function_call_header",
1119 "function_identifier", "unary_expression", "unary_operator",
1120 "multiplicative_expression", "additive_expression", "shift_expression",
1121 "relational_expression", "equality_expression", "and_expression",
1122 "exclusive_or_expression", "inclusive_or_expression",
1123 "logical_and_expression", "logical_xor_expression",
1124 "logical_or_expression", "conditional_expression", "$@1",
1125 "assignment_expression", "assignment_operator", "expression",
1126 "constant_expression", "declaration", "block_structure", "$@2",
1127 "identifier_list", "function_prototype", "function_declarator",
1128 "function_header_with_parameters", "function_header",
1129 "parameter_declarator", "parameter_declaration",
1130 "parameter_type_specifier", "init_declarator_list", "single_declaration",
1131 "fully_specified_type", "invariant_qualifier", "interpolation_qualifier",
1132 "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
1133 "precise_qualifier", "type_qualifier", "single_type_qualifier",
1134 "storage_qualifier", "non_uniform_qualifier", "type_name_list",
1135 "type_specifier", "array_specifier", "type_parameter_specifier_opt",
1136 "type_parameter_specifier", "type_parameter_specifier_list",
1137 "type_specifier_nonarray", "precision_qualifier", "struct_specifier",
1138 "$@3", "$@4", "struct_declaration_list", "struct_declaration",
1139 "struct_declarator_list", "struct_declarator", "initializer",
1140 "initializer_list", "declaration_statement", "statement",
1141 "simple_statement", "demote_statement", "compound_statement", "$@5",
1142 "$@6", "statement_no_new_scope", "statement_scoped", "$@7", "$@8",
1143 "compound_statement_no_new_scope", "statement_list",
1144 "expression_statement", "selection_statement",
1145 "selection_statement_nonattributed", "selection_rest_statement",
1146 "condition", "switch_statement", "switch_statement_nonattributed", "$@9",
1147 "switch_statement_list", "case_label", "iteration_statement",
1148 "iteration_statement_nonattributed", "$@10", "$@11", "$@12",
1149 "for_init_statement", "conditionopt", "for_rest_statement",
1150 "jump_statement", "translation_unit", "external_declaration",
1151 "function_definition", "$@13", "attribute", "attribute_list",
1152 "single_attribute", YY_NULLPTR
1153 };
1154 #endif
1155
1156 # ifdef YYPRINT
1157 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1158 (internal) symbol number NUM (which must be that of a token). */
1159 static const yytype_uint16 yytoknum[] =
1160 {
1161 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1162 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1163 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1164 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1165 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1166 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1167 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1168 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1169 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1170 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1171 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1172 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1173 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1174 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1175 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1176 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1177 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1178 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1179 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1180 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1181 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1182 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1183 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
1184 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
1185 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
1186 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
1187 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
1188 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
1189 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
1190 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
1191 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
1192 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
1193 575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
1194 585, 586, 587, 588, 589, 590, 591, 592, 593, 594,
1195 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
1196 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
1197 615, 616, 617, 618, 619, 620, 621, 622, 623, 624,
1198 625, 626, 627, 628, 629, 630, 631, 632, 633, 634,
1199 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
1200 645, 646, 647, 648, 649, 650, 651, 652, 653, 654,
1201 655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
1202 665, 666, 667, 668, 669, 670, 671, 672, 673, 674
1203 };
1204 # endif
1205
1206 #define YYPACT_NINF -457
1207
1208 #define yypact_value_is_default(Yystate) \
1209 (!!((Yystate) == (-457)))
1210
1211 #define YYTABLE_NINF -537
1212
1213 #define yytable_value_is_error(Yytable_value) \
1214 0
1215
1216 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1217 STATE-NUM. */
1218 static const yytype_int16 yypact[] =
1219 {
1220 4075, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1221 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1222 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1223 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1224 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1225 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1226 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1227 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1228 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1229 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1230 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1231 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1232 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1233 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1234 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1235 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1236 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1237 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1238 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1239 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1240 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1241 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1242 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1243 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1244 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1245 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1246 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1247 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1248 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1249 -457, -457, -457, -457, -457, -457, -457, -457, 132, -457,
1250 -457, -457, -457, -457, -1, -457, -457, -457, -457, -457,
1251 -457, -301, -298, -457, -457, -457, -457, -457, -457, -457,
1252 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1253 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1254 -457, -457, -457, -457, -457, 11, -249, 17, 30, 6160,
1255 20, -457, 28, -457, -457, -457, -457, 4492, -457, -457,
1256 -457, -457, 50, -457, -457, 739, -457, -457, 16, -457,
1257 81, -29, 69, -457, -313, -457, 111, -457, 6160, -457,
1258 -457, -457, 6160, 103, 106, -457, -314, -457, 72, -457,
1259 -457, 8566, 142, -457, -457, -457, 136, 6160, -457, 144,
1260 -457, 53, -457, -457, 76, 6974, -457, -312, 1156, -457,
1261 -457, -457, -457, 142, -309, -457, 7372, -308, -457, 119,
1262 -457, 65, 8566, 8566, -457, 8566, -457, -457, -457, -457,
1263 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1264 -457, -457, -457, -457, -457, 36, -457, -457, -457, 171,
1265 85, 8964, 173, -457, 8566, -457, -457, -323, 174, -457,
1266 6160, 139, 4909, -457, 6160, 8566, -457, -29, -457, 141,
1267 -457, -457, 145, 99, 35, 26, 71, 156, 159, 161,
1268 196, 195, 23, 181, 7770, -457, 183, 182, -457, -457,
1269 186, 179, 180, -457, 191, 192, 187, 8168, 193, 8566,
1270 188, 189, 127, -457, -457, 96, -457, -249, 200, 201,
1271 -457, -457, -457, -457, -457, 1573, -457, -457, -457, -457,
1272 -457, -457, -457, -457, -457, -24, 174, 7372, 13, 7372,
1273 -457, -457, 7372, 6160, -457, 166, -457, -457, -457, 86,
1274 -457, -457, 8566, 168, -457, -457, 8566, 205, -457, -457,
1275 -457, 8566, -457, 139, 142, 124, -457, -457, -457, 5326,
1276 -457, -457, -457, -457, 8566, 8566, 8566, 8566, 8566, 8566,
1277 8566, 8566, 8566, 8566, 8566, 8566, 8566, 8566, 8566, 8566,
1278 8566, 8566, 8566, -457, -457, -457, 206, 172, -457, 1990,
1279 -457, -457, -457, 1990, -457, 8566, -457, -457, 130, 8566,
1280 125, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1281 -457, -457, -457, -457, 8566, 8566, -457, -457, -457, -457,
1282 -457, -457, -457, 7372, -457, 94, -457, 5743, -457, -457,
1283 207, 204, -457, -457, -457, 131, 174, 139, -457, -457,
1284 -457, -457, -457, 145, 145, 99, 99, 35, 35, 35,
1285 35, 26, 26, 71, 156, 159, 161, 196, 195, 8566,
1286 -457, 212, 60, -457, 1990, 3658, 169, 3241, 87, -457,
1287 89, -457, -457, -457, -457, -457, 6576, -457, -457, -457,
1288 -457, 143, 8566, 211, 172, 210, 204, 184, 6160, 217,
1289 219, -457, -457, 3658, 218, -457, -457, -457, 8566, 220,
1290 -457, -457, -457, 214, 2407, 8566, -457, 216, 223, 185,
1291 224, 2824, -457, 225, -457, -457, 7372, -457, -457, -457,
1292 97, 8566, 2407, 218, -457, -457, 1990, -457, 222, 204,
1293 -457, -457, 1990, 229, -457, -457
1294 };
1295
1296 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1297 Performed when YYTABLE does not specify something else to do. Zero
1298 means the default is an error. */
1299 static const yytype_uint16 yydefact[] =
1300 {
1301 0, 157, 210, 208, 209, 207, 214, 215, 216, 217,
1302 218, 219, 220, 221, 222, 211, 212, 213, 223, 224,
1303 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1304 336, 337, 338, 339, 340, 341, 342, 362, 363, 364,
1305 365, 366, 367, 368, 377, 390, 391, 378, 379, 381,
1306 380, 382, 383, 384, 385, 386, 387, 388, 389, 165,
1307 166, 236, 237, 235, 238, 245, 246, 243, 244, 241,
1308 242, 239, 240, 268, 269, 270, 280, 281, 282, 265,
1309 266, 267, 277, 278, 279, 262, 263, 264, 274, 275,
1310 276, 259, 260, 261, 271, 272, 273, 247, 248, 249,
1311 283, 284, 285, 250, 251, 252, 295, 296, 297, 253,
1312 254, 255, 307, 308, 309, 256, 257, 258, 319, 320,
1313 321, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1314 298, 299, 300, 301, 302, 303, 304, 305, 306, 310,
1315 311, 312, 313, 314, 315, 316, 317, 318, 322, 323,
1316 324, 325, 326, 327, 328, 329, 330, 334, 331, 332,
1317 333, 493, 494, 495, 346, 347, 370, 373, 335, 344,
1318 345, 361, 343, 392, 393, 396, 397, 398, 400, 401,
1319 402, 404, 405, 406, 408, 409, 483, 484, 369, 371,
1320 372, 348, 349, 350, 394, 351, 355, 356, 359, 399,
1321 403, 407, 352, 353, 357, 358, 395, 354, 360, 439,
1322 441, 442, 443, 445, 446, 447, 449, 450, 451, 453,
1323 454, 455, 457, 458, 459, 461, 462, 463, 465, 466,
1324 467, 469, 470, 471, 473, 474, 475, 477, 478, 479,
1325 481, 482, 440, 444, 448, 452, 456, 464, 468, 472,
1326 460, 476, 480, 374, 375, 376, 410, 419, 421, 415,
1327 420, 422, 423, 425, 426, 427, 429, 430, 431, 433,
1328 434, 435, 437, 438, 411, 412, 413, 424, 414, 416,
1329 417, 418, 428, 432, 436, 485, 486, 489, 490, 491,
1330 492, 487, 488, 584, 132, 498, 499, 500, 0, 497,
1331 161, 159, 160, 158, 0, 206, 162, 163, 164, 134,
1332 133, 0, 190, 171, 173, 169, 175, 177, 172, 174,
1333 170, 176, 178, 167, 168, 192, 179, 186, 187, 188,
1334 189, 180, 181, 182, 183, 184, 185, 135, 136, 137,
1335 138, 139, 140, 147, 583, 0, 585, 0, 109, 108,
1336 0, 120, 125, 154, 153, 151, 155, 0, 148, 150,
1337 156, 130, 202, 152, 496, 0, 580, 582, 0, 503,
1338 0, 0, 0, 97, 0, 94, 0, 107, 0, 116,
1339 110, 118, 0, 119, 0, 95, 126, 100, 0, 149,
1340 131, 0, 195, 201, 1, 581, 0, 0, 501, 144,
1341 146, 0, 142, 193, 0, 0, 98, 0, 0, 586,
1342 111, 115, 117, 113, 121, 112, 0, 127, 103, 0,
1343 101, 0, 0, 0, 9, 0, 43, 42, 44, 41,
1344 5, 6, 7, 8, 2, 16, 14, 15, 17, 10,
1345 11, 12, 13, 3, 18, 37, 20, 25, 26, 0,
1346 0, 30, 0, 204, 0, 36, 34, 0, 196, 96,
1347 0, 0, 0, 505, 0, 0, 141, 0, 191, 0,
1348 197, 45, 49, 52, 55, 60, 63, 65, 67, 69,
1349 71, 73, 75, 0, 0, 99, 0, 531, 540, 544,
1350 0, 0, 0, 565, 0, 0, 0, 0, 0, 0,
1351 0, 0, 45, 78, 91, 0, 518, 0, 156, 130,
1352 521, 542, 520, 528, 519, 0, 522, 523, 546, 524,
1353 553, 525, 526, 561, 527, 0, 114, 0, 122, 0,
1354 513, 129, 0, 0, 105, 0, 102, 38, 39, 0,
1355 22, 23, 0, 0, 28, 27, 0, 206, 31, 33,
1356 40, 0, 203, 0, 511, 0, 509, 504, 506, 0,
1357 93, 145, 143, 194, 0, 0, 0, 0, 0, 0,
1358 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1359 0, 0, 0, 76, 198, 199, 0, 0, 530, 0,
1360 563, 576, 575, 0, 567, 0, 579, 577, 0, 0,
1361 0, 560, 529, 81, 82, 84, 83, 86, 87, 88,
1362 89, 90, 85, 80, 0, 0, 545, 541, 543, 547,
1363 554, 562, 124, 0, 516, 0, 128, 0, 106, 4,
1364 0, 24, 21, 32, 205, 0, 512, 0, 507, 502,
1365 46, 47, 48, 51, 50, 53, 54, 58, 59, 56,
1366 57, 61, 62, 64, 66, 68, 70, 72, 74, 0,
1367 200, 590, 0, 588, 532, 0, 0, 0, 0, 578,
1368 0, 559, 79, 92, 123, 514, 0, 104, 19, 508,
1369 510, 0, 0, 0, 0, 0, 551, 0, 0, 0,
1370 0, 570, 569, 572, 538, 555, 515, 517, 0, 0,
1371 587, 589, 533, 0, 0, 0, 571, 0, 0, 550,
1372 0, 0, 548, 0, 77, 591, 0, 535, 564, 534,
1373 0, 573, 0, 538, 537, 539, 557, 552, 0, 574,
1374 568, 549, 558, 0, 566, 556
1375 };
1376
1377 /* YYPGOTO[NTERM-NUM]. */
1378 static const yytype_int16 yypgoto[] =
1379 {
1380 -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
1381 -457, -457, 8868, -457, -87, -84, -127, -93, -33, -31,
1382 -27, -25, -28, -26, -457, -86, -457, -103, -457, -111,
1383 -125, 2, -457, -457, -457, 4, -457, -457, -457, 176,
1384 194, 178, -457, -457, -337, -457, -457, -457, -457, 95,
1385 -457, -37, -46, -457, 9, -457, 0, -63, -457, -457,
1386 -457, -457, 263, -457, -457, -457, -456, -140, 10, -73,
1387 -211, -457, -102, -198, -321, -457, -144, -457, -457, -155,
1388 -154, -457, -457, 198, -274, -97, -457, 46, -457, -118,
1389 -457, 51, -457, -457, -457, -457, 52, -457, -457, -457,
1390 -457, -457, -457, -457, -457, 213, -457, -457, -457, -457,
1391 -105
1392 };
1393
1394 /* YYDEFGOTO[NTERM-NUM]. */
1395 static const yytype_int16 yydefgoto[] =
1396 {
1397 -1, 443, 444, 445, 630, 446, 447, 448, 449, 450,
1398 451, 452, 502, 454, 472, 473, 474, 475, 476, 477,
1399 478, 479, 480, 481, 482, 503, 659, 504, 614, 505,
1400 561, 506, 345, 533, 421, 507, 347, 348, 349, 379,
1401 380, 381, 350, 351, 352, 353, 354, 355, 401, 402,
1402 356, 357, 358, 359, 455, 404, 456, 407, 392, 393,
1403 457, 362, 363, 364, 464, 397, 462, 463, 555, 556,
1404 531, 625, 510, 511, 512, 513, 514, 589, 685, 718,
1405 709, 710, 711, 719, 515, 516, 517, 518, 712, 689,
1406 519, 520, 713, 733, 521, 522, 523, 665, 593, 667,
1407 693, 707, 708, 524, 365, 366, 367, 376, 525, 662,
1408 663
1409 };
1410
1411 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
1412 positive, shift that token. If negative, reduce the rule whose
1413 number is the opposite. If YYTABLE_NINF, syntax error. */
1414 static const yytype_int16 yytable[] =
1415 {
1416 361, 551, 344, 415, 346, 405, 405, 484, 559, 360,
1417 405, 484, 416, 552, 406, 485, 371, 527, 532, 372,
1418 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1419 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1420 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1421 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1422 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1423 52, 53, 54, 55, 56, 57, 58, 627, 375, 61,
1424 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1425 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1426 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1427 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1428 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1429 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
1430 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1431 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
1432 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
1433 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
1434 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
1435 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
1436 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1437 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
1438 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
1439 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
1440 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
1441 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
1442 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
1443 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
1444 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
1445 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
1446 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
1447 292, 389, 382, 530, 539, 664, 622, 618, 624, 483,
1448 369, 626, 558, 417, 399, 571, 572, 582, 687, 458,
1449 569, 570, 484, 540, 541, 377, 389, 490, 373, 623,
1450 493, 382, 494, 495, 384, 400, 498, 385, 548, 383,
1451 526, 528, 370, -35, 378, 542, 687, 390, 360, 543,
1452 460, 573, 574, 583, 374, 361, 360, 344, 396, 346,
1453 299, 466, 575, 576, 360, 304, 305, 467, 383, 560,
1454 683, 386, 383, 717, 684, 391, 598, 360, 600, 535,
1455 725, 360, 536, 418, 468, 666, 419, 461, 586, 420,
1456 469, 717, 398, 545, 629, 694, 360, 695, 509, 546,
1457 615, 615, 674, 615, 389, 728, 675, 508, 676, 558,
1458 615, 615, 403, 616, 530, 460, 530, 460, 567, 530,
1459 568, 631, 408, 603, 604, 605, 606, 607, 608, 609,
1460 610, 611, 612, 633, 647, 648, 649, 650, 637, 615,
1461 671, 638, 732, 613, 615, 637, 413, 669, 679, 414,
1462 553, 405, 461, 459, 461, 697, 618, 615, 698, 360,
1463 465, 360, 534, 360, 295, 296, 297, 564, 565, 566,
1464 643, 644, 651, 652, 668, 645, 646, 558, 670, 544,
1465 549, 636, 554, 484, 563, 577, 460, 578, 579, 580,
1466 581, 584, 587, 590, 588, 727, 591, 592, 594, 595,
1467 599, 672, 673, 601, 596, 509, 602, -36, -34, 628,
1468 530, 632, 460, -29, 508, 661, 660, 678, 615, 682,
1469 690, 700, 702, 461, 618, 704, 705, 703, 715, -536,
1470 716, 722, 360, 721, 653, 487, 726, 654, 681, 734,
1471 723, 735, 655, 657, 686, 656, 658, 699, 411, 461,
1472 412, 368, 562, 635, 680, 691, 724, 730, 360, 731,
1473 692, 619, 410, 530, 409, 706, 620, 621, 395, 701,
1474 0, 0, 686, 0, 0, 0, 0, 0, 0, 509,
1475 460, 0, 0, 509, 720, 714, 560, 0, 508, 0,
1476 0, 0, 508, 0, 0, 0, 0, 0, 0, 0,
1477 729, 0, 0, 530, 0, 0, 0, 0, 0, 0,
1478 0, 0, 0, 0, 0, 0, 0, 461, 688, 0,
1479 0, 0, 0, 0, 0, 0, 360, 0, 0, 0,
1480 0, 0, 389, 0, 0, 0, 0, 0, 0, 0,
1481 0, 0, 0, 0, 0, 0, 688, 0, 0, 0,
1482 0, 0, 0, 0, 509, 509, 0, 509, 0, 0,
1483 0, 0, 0, 508, 508, 0, 508, 0, 0, 0,
1484 0, 0, 0, 0, 0, 0, 0, 0, 390, 0,
1485 0, 0, 0, 509, 0, 0, 0, 360, 0, 0,
1486 0, 0, 508, 0, 509, 0, 0, 0, 0, 0,
1487 0, 509, 0, 508, 0, 0, 0, 0, 0, 0,
1488 508, 0, 509, 0, 0, 0, 509, 0, 0, 0,
1489 0, 508, 509, 0, 0, 508, 0, 0, 0, 394,
1490 0, 508, 1, 2, 3, 4, 5, 6, 7, 8,
1491 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
1492 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1493 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1494 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1495 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1496 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1497 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1498 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1499 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1500 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1501 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
1502 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
1503 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1504 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
1505 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
1506 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
1507 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
1508 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
1509 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
1510 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
1511 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
1512 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
1513 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
1514 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
1515 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
1516 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
1517 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
1518 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
1519 289, 290, 291, 292, 0, 0, 0, 0, 0, 0,
1520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1522 0, 0, 0, 0, 0, 0, 293, 0, 0, 0,
1523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1524 294, 295, 296, 297, 298, 0, 0, 0, 0, 0,
1525 0, 0, 0, 299, 300, 301, 302, 303, 304, 305,
1526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1527 0, 0, 306, 307, 308, 309, 310, 311, 0, 0,
1528 0, 0, 0, 0, 0, 0, 312, 0, 313, 314,
1529 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1530 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1531 335, 336, 337, 338, 339, 340, 341, 342, 343, 1,
1532 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1533 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1534 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1535 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1536 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1537 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1538 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1539 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1540 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1541 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1542 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1543 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
1544 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1545 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
1546 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
1547 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
1548 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
1549 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
1550 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1551 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
1552 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
1553 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
1554 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
1555 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
1556 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
1557 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
1558 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
1559 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
1560 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
1561 292, 0, 0, 422, 423, 0, 0, 0, 0, 0,
1562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1563 0, 0, 424, 425, 0, 486, 0, 487, 488, 0,
1564 0, 0, 0, 489, 426, 427, 428, 429, 0, 0,
1565 0, 0, 0, 0, 0, 0, 0, 294, 295, 296,
1566 297, 298, 0, 0, 0, 430, 431, 432, 433, 434,
1567 299, 300, 301, 302, 303, 304, 305, 490, 491, 492,
1568 493, 0, 494, 495, 496, 497, 498, 499, 500, 306,
1569 307, 308, 309, 310, 311, 435, 436, 437, 438, 439,
1570 440, 441, 442, 312, 501, 313, 314, 315, 316, 317,
1571 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
1572 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
1573 338, 339, 340, 341, 342, 343, 1, 2, 3, 4,
1574 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1575 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1576 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1577 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1578 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1579 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1580 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1581 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1582 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1583 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1584 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1585 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1586 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1587 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1588 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1589 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1590 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1591 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1592 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1593 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1594 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1595 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1596 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1597 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1598 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1599 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1600 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1601 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1602 285, 286, 287, 288, 289, 290, 291, 292, 0, 0,
1603 422, 423, 0, 0, 0, 0, 0, 0, 0, 0,
1604 0, 0, 0, 0, 0, 0, 0, 0, 0, 424,
1605 425, 0, 486, 0, 487, 617, 0, 0, 0, 0,
1606 489, 426, 427, 428, 429, 0, 0, 0, 0, 0,
1607 0, 0, 0, 0, 294, 295, 296, 297, 298, 0,
1608 0, 0, 430, 431, 432, 433, 434, 299, 300, 301,
1609 302, 303, 304, 305, 490, 491, 492, 493, 0, 494,
1610 495, 496, 497, 498, 499, 500, 306, 307, 308, 309,
1611 310, 311, 435, 436, 437, 438, 439, 440, 441, 442,
1612 312, 501, 313, 314, 315, 316, 317, 318, 319, 320,
1613 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
1614 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
1615 341, 342, 343, 1, 2, 3, 4, 5, 6, 7,
1616 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
1617 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1618 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1619 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1620 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1621 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1622 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1623 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1624 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1625 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1626 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1627 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
1628 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1629 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
1630 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
1631 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
1632 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
1633 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
1634 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
1635 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
1636 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
1637 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
1638 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
1639 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
1640 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
1641 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
1642 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
1643 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
1644 288, 289, 290, 291, 292, 0, 0, 422, 423, 0,
1645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1646 0, 0, 0, 0, 0, 0, 424, 425, 0, 486,
1647 0, 487, 0, 0, 0, 0, 0, 489, 426, 427,
1648 428, 429, 0, 0, 0, 0, 0, 0, 0, 0,
1649 0, 294, 295, 296, 297, 298, 0, 0, 0, 430,
1650 431, 432, 433, 434, 299, 300, 301, 302, 303, 304,
1651 305, 490, 491, 492, 493, 0, 494, 495, 496, 497,
1652 498, 499, 500, 306, 307, 308, 309, 310, 311, 435,
1653 436, 437, 438, 439, 440, 441, 442, 312, 501, 313,
1654 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
1655 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
1656 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
1657 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
1658 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1659 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1660 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1661 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1662 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1663 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1664 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1665 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1666 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1667 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1668 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
1669 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
1670 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1671 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
1672 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
1673 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
1674 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
1675 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
1676 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
1677 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
1678 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
1679 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
1680 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
1681 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
1682 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
1683 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
1684 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
1685 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
1686 291, 292, 0, 0, 422, 423, 0, 0, 0, 0,
1687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1688 0, 0, 0, 424, 425, 0, 486, 0, 408, 0,
1689 0, 0, 0, 0, 489, 426, 427, 428, 429, 0,
1690 0, 0, 0, 0, 0, 0, 0, 0, 294, 295,
1691 296, 297, 298, 0, 0, 0, 430, 431, 432, 433,
1692 434, 299, 300, 301, 302, 303, 304, 305, 490, 491,
1693 492, 493, 0, 494, 495, 496, 497, 498, 499, 500,
1694 306, 307, 308, 309, 310, 311, 435, 436, 437, 438,
1695 439, 440, 441, 442, 312, 501, 313, 314, 315, 316,
1696 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
1697 327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
1698 337, 338, 339, 340, 341, 342, 343, 1, 2, 3,
1699 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1700 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1701 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1702 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1703 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1704 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1705 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1706 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1707 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1708 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1709 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1710 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1711 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1712 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
1713 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1714 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
1715 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
1716 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
1717 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
1718 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
1719 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
1720 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
1721 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
1722 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
1723 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
1724 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
1725 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
1726 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
1727 284, 285, 286, 287, 288, 289, 290, 291, 292, 0,
1728 0, 422, 423, 0, 0, 0, 0, 0, 0, 0,
1729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1730 424, 425, 0, 486, 0, 0, 0, 0, 0, 0,
1731 0, 489, 426, 427, 428, 429, 0, 0, 0, 0,
1732 0, 0, 0, 0, 0, 294, 295, 296, 297, 298,
1733 0, 0, 0, 430, 431, 432, 433, 434, 299, 300,
1734 301, 302, 303, 304, 305, 490, 491, 492, 493, 0,
1735 494, 495, 496, 497, 498, 499, 500, 306, 307, 308,
1736 309, 310, 311, 435, 436, 437, 438, 439, 440, 441,
1737 442, 312, 501, 313, 314, 315, 316, 317, 318, 319,
1738 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
1739 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
1740 340, 341, 342, 343, 1, 2, 3, 4, 5, 6,
1741 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1742 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1743 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1744 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1745 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1746 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1747 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1748 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
1749 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1750 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1751 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1752 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
1753 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
1754 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
1755 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
1756 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
1757 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
1758 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
1759 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
1760 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
1761 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
1762 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
1763 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
1764 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
1765 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
1766 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
1767 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
1768 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
1769 287, 288, 289, 290, 291, 292, 0, 0, 422, 423,
1770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1771 0, 0, 0, 0, 0, 0, 0, 424, 425, 0,
1772 0, 0, 0, 0, 0, 0, 0, 0, 489, 426,
1773 427, 428, 429, 0, 0, 0, 0, 0, 0, 0,
1774 0, 0, 294, 295, 296, 297, 298, 0, 0, 0,
1775 430, 431, 432, 433, 434, 299, 300, 301, 302, 303,
1776 304, 305, 0, 0, 0, 0, 0, 0, 0, 0,
1777 0, 0, 0, 0, 306, 307, 308, 309, 310, 311,
1778 435, 436, 437, 438, 439, 440, 441, 442, 312, 0,
1779 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
1780 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
1781 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
1782 343, 1, 2, 3, 4, 5, 6, 7, 8, 9,
1783 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1784 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1785 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1786 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1787 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1788 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1789 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1790 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1791 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1792 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1793 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1794 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
1795 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1796 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
1797 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
1798 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
1799 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
1800 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
1801 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
1802 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
1803 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
1804 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
1805 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
1806 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
1807 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
1808 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
1809 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
1810 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
1811 290, 291, 292, 0, 0, 422, 423, 0, 0, 0,
1812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1813 0, 0, 0, 0, 424, 425, 0, 0, 0, 0,
1814 0, 0, 0, 0, 0, 0, 426, 427, 428, 429,
1815 0, 0, 0, 0, 0, 0, 0, 0, 0, 294,
1816 295, 296, 297, 0, 0, 0, 0, 430, 431, 432,
1817 433, 434, 299, 300, 301, 302, 303, 304, 305, 0,
1818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1819 0, 306, 307, 308, 309, 310, 311, 435, 436, 437,
1820 438, 439, 440, 441, 442, 312, 0, 313, 314, 315,
1821 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
1822 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
1823 336, 337, 338, 339, 340, 341, 342, 343, 1, 2,
1824 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1825 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1826 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1827 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1828 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1829 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1830 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1831 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1832 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1833 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1834 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1835 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
1836 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
1837 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
1838 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
1839 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
1840 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
1841 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
1842 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
1843 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
1844 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
1845 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
1846 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
1847 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
1848 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
1849 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
1850 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
1851 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
1852 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
1853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1856 0, 0, 293, 0, 0, 0, 0, 0, 0, 0,
1857 0, 0, 0, 0, 0, 0, 294, 295, 296, 297,
1858 298, 0, 0, 0, 0, 0, 0, 0, 0, 299,
1859 300, 301, 302, 303, 304, 305, 0, 0, 0, 0,
1860 0, 0, 0, 0, 0, 0, 0, 0, 306, 307,
1861 308, 309, 310, 311, 0, 0, 0, 0, 0, 0,
1862 0, 0, 312, 0, 313, 314, 315, 316, 317, 318,
1863 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
1864 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
1865 339, 340, 341, 342, 343, 1, 2, 3, 4, 5,
1866 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1867 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1868 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1869 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1870 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1871 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1872 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1873 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1874 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1875 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1876 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1877 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
1878 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1879 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1880 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
1881 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
1882 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
1883 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
1884 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
1885 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
1886 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
1887 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1888 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
1889 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
1890 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
1891 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1892 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
1893 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
1894 286, 287, 288, 289, 290, 291, 292, 0, 0, 0,
1895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1897 0, 0, 0, 0, 0, 0, 0, 0, 0, 387,
1898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1899 0, 0, 0, 294, 295, 296, 297, 0, 0, 0,
1900 0, 0, 0, 0, 0, 388, 299, 300, 301, 302,
1901 303, 304, 305, 0, 0, 0, 0, 0, 0, 0,
1902 0, 0, 0, 0, 0, 306, 307, 308, 309, 310,
1903 311, 0, 0, 0, 0, 0, 0, 0, 0, 312,
1904 0, 313, 314, 315, 316, 317, 318, 319, 320, 321,
1905 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
1906 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
1907 342, 343, 1, 2, 3, 4, 5, 6, 7, 8,
1908 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
1909 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1910 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1911 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1912 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1913 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1914 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1915 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1916 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1917 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1918 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
1919 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
1920 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1921 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
1922 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
1923 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
1924 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
1925 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
1926 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
1927 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
1928 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
1929 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
1930 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
1931 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
1932 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
1933 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
1934 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
1935 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
1936 289, 290, 291, 292, 0, 0, 0, 0, 0, 0,
1937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1939 0, 557, 0, 0, 0, 0, 0, 0, 0, 0,
1940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1941 294, 295, 296, 297, 0, 0, 0, 0, 0, 0,
1942 0, 0, 0, 299, 300, 301, 302, 303, 304, 305,
1943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1944 0, 0, 306, 307, 308, 309, 310, 311, 0, 0,
1945 0, 0, 0, 0, 0, 0, 312, 0, 313, 314,
1946 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1947 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1948 335, 336, 337, 338, 339, 340, 341, 342, 343, 1,
1949 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1950 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1951 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1952 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1953 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1954 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1955 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1956 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1957 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1958 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1959 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1960 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
1961 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1962 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
1963 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
1964 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
1965 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
1966 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
1967 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1968 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
1969 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
1970 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
1971 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
1972 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
1973 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
1974 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
1975 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
1976 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
1977 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
1978 292, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1979 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1980 0, 0, 0, 0, 0, 0, 0, 0, 639, 0,
1981 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1982 0, 0, 0, 0, 0, 0, 0, 294, 295, 296,
1983 297, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1984 299, 300, 301, 302, 303, 304, 305, 0, 0, 0,
1985 0, 0, 0, 0, 0, 0, 0, 0, 0, 306,
1986 307, 308, 309, 310, 311, 0, 0, 0, 0, 0,
1987 0, 0, 0, 312, 0, 313, 314, 315, 316, 317,
1988 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
1989 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
1990 338, 339, 340, 341, 342, 343, 1, 2, 3, 4,
1991 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1992 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1993 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1994 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1995 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1996 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1997 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1998 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1999 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2000 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2001 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2002 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2003 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2004 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2005 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2006 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2007 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2008 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2009 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2010 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2011 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2012 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2013 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2014 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2015 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2016 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2017 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2018 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2019 285, 286, 287, 288, 289, 290, 291, 292, 0, 0,
2020 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2021 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2022 0, 0, 0, 0, 0, 677, 0, 0, 0, 0,
2023 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2024 0, 0, 0, 0, 294, 295, 296, 297, 0, 0,
2025 0, 0, 0, 0, 0, 0, 0, 299, 300, 301,
2026 302, 303, 304, 305, 0, 0, 0, 0, 0, 0,
2027 0, 0, 0, 0, 0, 0, 306, 307, 308, 309,
2028 310, 311, 0, 0, 0, 0, 0, 0, 0, 0,
2029 312, 0, 313, 314, 315, 316, 317, 318, 319, 320,
2030 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
2031 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
2032 341, 342, 343, 1, 2, 3, 4, 5, 6, 7,
2033 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
2034 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
2035 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2036 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2037 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2038 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
2039 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2040 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
2041 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
2042 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
2043 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2044 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
2045 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2046 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2047 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2048 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2049 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2050 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2051 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
2052 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
2053 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
2054 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
2055 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
2056 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
2057 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
2058 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
2059 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
2060 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
2061 288, 289, 290, 291, 292, 0, 0, 0, 0, 0,
2062 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2063 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2064 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2066 0, 294, 295, 296, 297, 0, 0, 0, 0, 0,
2067 0, 0, 0, 0, 299, 300, 301, 302, 303, 304,
2068 305, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2069 0, 0, 0, 306, 307, 308, 309, 310, 311, 0,
2070 0, 0, 0, 0, 0, 0, 0, 312, 0, 313,
2071 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
2072 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
2073 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
2074 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
2075 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
2076 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2077 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2078 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2079 52, 53, 54, 55, 56, 57, 58, 0, 0, 61,
2080 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2081 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2082 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
2083 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
2084 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2085 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2086 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2087 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2088 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2089 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2090 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2091 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2092 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
2093 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
2094 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
2095 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
2096 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
2097 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
2098 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
2099 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
2100 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
2101 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
2102 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
2103 292, 0, 0, 422, 423, 0, 0, 0, 0, 0,
2104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2105 0, 0, 424, 425, 0, 0, 0, 529, 696, 0,
2106 0, 0, 0, 0, 426, 427, 428, 429, 0, 0,
2107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2108 0, 0, 0, 0, 0, 430, 431, 432, 433, 434,
2109 299, 0, 0, 0, 0, 304, 305, 0, 0, 0,
2110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2111 0, 0, 0, 0, 0, 435, 436, 437, 438, 439,
2112 440, 441, 442, 0, 0, 0, 0, 0, 0, 0,
2113 0, 0, 0, 0, 0, 0, 0, 325, 2, 3,
2114 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2115 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2116 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
2117 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2118 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2119 54, 55, 56, 57, 58, 0, 0, 61, 62, 63,
2120 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2121 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2122 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
2123 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
2124 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2125 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2126 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2127 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2128 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2129 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2130 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2131 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
2132 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
2133 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
2134 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
2135 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
2136 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
2137 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
2138 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
2139 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
2140 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
2141 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
2142 284, 285, 286, 287, 288, 289, 290, 291, 292, 0,
2143 0, 422, 423, 0, 0, 0, 0, 0, 0, 0,
2144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2145 424, 425, 0, 0, 470, 0, 0, 0, 0, 0,
2146 0, 0, 426, 427, 428, 429, 0, 0, 0, 0,
2147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2148 0, 0, 0, 430, 431, 432, 433, 434, 299, 0,
2149 0, 0, 0, 304, 305, 0, 0, 0, 0, 0,
2150 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2151 0, 0, 0, 435, 436, 437, 438, 439, 440, 441,
2152 442, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2153 0, 0, 0, 0, 0, 325, 2, 3, 4, 5,
2154 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
2155 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
2156 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
2157 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2158 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2159 56, 57, 58, 0, 0, 61, 62, 63, 64, 65,
2160 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2161 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2162 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
2163 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
2164 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2165 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2166 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2167 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2168 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2169 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2170 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2171 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
2172 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
2173 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
2174 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
2175 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
2176 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
2177 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
2178 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
2179 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
2180 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
2181 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
2182 286, 287, 288, 289, 290, 291, 292, 0, 0, 422,
2183 423, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2184 0, 0, 0, 0, 0, 0, 0, 0, 424, 425,
2185 0, 0, 0, 529, 0, 0, 0, 0, 0, 0,
2186 426, 427, 428, 429, 0, 0, 0, 0, 0, 0,
2187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2188 0, 430, 431, 432, 433, 434, 299, 0, 0, 0,
2189 0, 304, 305, 0, 0, 0, 0, 0, 0, 0,
2190 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2191 0, 435, 436, 437, 438, 439, 440, 441, 442, 0,
2192 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2193 0, 0, 0, 325, 2, 3, 4, 5, 6, 7,
2194 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
2195 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
2196 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2197 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2198 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2199 58, 0, 0, 61, 62, 63, 64, 65, 66, 67,
2200 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2201 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
2202 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
2203 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
2204 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2205 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
2206 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2207 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2208 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2209 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2210 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2211 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2212 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
2213 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
2214 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
2215 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
2216 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
2217 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
2218 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
2219 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
2220 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
2221 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
2222 288, 289, 290, 291, 292, 0, 0, 422, 423, 0,
2223 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2224 0, 0, 0, 0, 0, 0, 424, 425, 0, 0,
2225 585, 0, 0, 0, 0, 0, 0, 0, 426, 427,
2226 428, 429, 0, 0, 0, 0, 0, 0, 0, 0,
2227 0, 0, 0, 0, 0, 0, 0, 0, 0, 430,
2228 431, 432, 433, 434, 299, 0, 0, 0, 0, 304,
2229 305, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2230 0, 0, 0, 0, 0, 0, 0, 0, 0, 435,
2231 436, 437, 438, 439, 440, 441, 442, 0, 0, 0,
2232 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2233 0, 325, 2, 3, 4, 5, 6, 7, 8, 9,
2234 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2235 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2236 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2237 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2238 50, 51, 52, 53, 54, 55, 56, 57, 58, 0,
2239 0, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2240 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2241 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2242 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
2243 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2244 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2245 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2246 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2247 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2248 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2249 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2250 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2251 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
2252 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
2253 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
2254 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
2255 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
2256 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
2257 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
2258 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
2259 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
2260 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
2261 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
2262 290, 291, 292, 0, 0, 422, 423, 0, 0, 0,
2263 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2264 0, 0, 0, 0, 424, 425, 0, 0, 0, 0,
2265 0, 0, 0, 0, 0, 597, 426, 427, 428, 429,
2266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2267 0, 0, 0, 0, 0, 0, 0, 430, 431, 432,
2268 433, 434, 299, 0, 0, 0, 0, 304, 305, 0,
2269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2270 0, 0, 0, 0, 0, 0, 0, 435, 436, 437,
2271 438, 439, 440, 441, 442, 0, 0, 0, 0, 0,
2272 0, 0, 0, 0, 0, 0, 0, 0, 0, 325,
2273 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
2274 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
2275 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2276 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2277 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2278 52, 53, 54, 55, 56, 57, 58, 0, 0, 61,
2279 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2280 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2281 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
2282 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
2283 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2284 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2285 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2286 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2287 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2288 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2289 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2290 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2291 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
2292 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
2293 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
2294 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
2295 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
2296 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
2297 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
2298 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
2299 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
2300 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
2301 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
2302 292, 0, 0, 422, 423, 0, 0, 0, 0, 0,
2303 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2304 0, 0, 424, 425, 0, 0, 0, 0, 0, 0,
2305 0, 0, 0, 0, 426, 427, 428, 429, 0, 0,
2306 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2307 0, 0, 0, 0, 0, 430, 431, 432, 433, 434,
2308 299, 0, 0, 0, 0, 304, 305, 0, 0, 0,
2309 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2310 0, 0, 0, 0, 0, 435, 436, 437, 438, 439,
2311 440, 441, 442, 0, 0, 0, 0, 0, 0, 0,
2312 0, 0, 0, 0, 0, 0, 0, 325, 2, 3,
2313 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2314 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2315 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
2316 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2317 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2318 54, 55, 56, 57, 58, 0, 0, 61, 62, 63,
2319 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2320 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2321 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
2322 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
2323 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2324 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2325 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2326 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2327 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2328 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2329 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2330 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
2331 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
2332 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
2333 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
2334 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
2335 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
2336 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
2337 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
2338 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
2339 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
2340 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
2341 284, 285, 286, 287, 288, 289, 290, 291, 292, 453,
2342 0, 422, 423, 0, 0, 0, 0, 0, 0, 0,
2343 0, 0, 0, 471, 0, 0, 0, 0, 0, 0,
2344 424, 425, 0, 0, 0, 0, 0, 0, 0, 0,
2345 537, 538, 426, 427, 428, 429, 0, 0, 0, 0,
2346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2347 0, 0, 0, 430, 431, 432, 433, 434, 299, 0,
2348 0, 0, 550, 304, 547, 0, 0, 0, 0, 0,
2349 0, 0, 0, 471, 0, 0, 0, 0, 0, 0,
2350 0, 0, 0, 435, 436, 437, 438, 439, 440, 441,
2351 442, 0, 471, 0, 0, 0, 0, 0, 0, 0,
2352 0, 0, 0, 0, 0, 325, 0, 0, 0, 0,
2353 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2354 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2356 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2357 0, 0, 0, 0, 0, 0, 0, 0, 0, 634,
2358 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2359 0, 0, 640, 641, 642, 471, 471, 471, 471, 471,
2360 471, 471, 471, 471, 471, 471, 471, 471, 471, 471,
2361 471, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2364 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2366 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2369 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2370 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2371 471
2372 };
2373
2374 static const yytype_int16 yycheck[] =
2375 {
2376 0, 324, 0, 317, 0, 319, 319, 319, 464, 0,
2377 319, 319, 326, 336, 327, 327, 317, 326, 326, 317,
2378 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2379 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2380 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
2381 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2382 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2383 54, 55, 56, 57, 58, 59, 60, 533, 327, 63,
2384 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2385 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2386 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
2387 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
2388 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2389 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2390 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2391 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2392 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2393 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2394 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2395 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
2396 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
2397 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
2398 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
2399 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
2400 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
2401 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
2402 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
2403 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
2404 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
2405 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
2406 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
2407 294, 357, 349, 416, 425, 589, 527, 515, 529, 405,
2408 321, 532, 462, 386, 353, 299, 300, 304, 665, 392,
2409 295, 296, 319, 297, 298, 318, 382, 361, 327, 326,
2410 364, 378, 366, 367, 324, 374, 370, 327, 451, 349,
2411 413, 414, 353, 317, 324, 319, 693, 357, 349, 323,
2412 397, 335, 336, 340, 353, 365, 357, 365, 368, 365,
2413 354, 318, 301, 302, 365, 359, 360, 324, 378, 465,
2414 320, 353, 382, 704, 324, 335, 497, 378, 499, 324,
2415 711, 382, 327, 321, 318, 593, 324, 397, 484, 327,
2416 324, 722, 321, 318, 318, 318, 397, 318, 408, 324,
2417 324, 324, 623, 324, 460, 318, 322, 408, 324, 559,
2418 324, 324, 353, 327, 527, 462, 529, 464, 329, 532,
2419 331, 542, 321, 306, 307, 308, 309, 310, 311, 312,
2420 313, 314, 315, 546, 571, 572, 573, 574, 324, 324,
2421 325, 327, 726, 326, 324, 324, 353, 327, 327, 353,
2422 460, 319, 462, 327, 464, 676, 664, 324, 325, 460,
2423 326, 462, 353, 464, 342, 343, 344, 332, 333, 334,
2424 567, 568, 575, 576, 595, 569, 570, 627, 599, 318,
2425 317, 554, 353, 319, 353, 339, 533, 338, 337, 303,
2426 305, 320, 319, 317, 322, 716, 327, 327, 317, 317,
2427 317, 614, 615, 325, 327, 515, 327, 317, 317, 353,
2428 623, 353, 559, 318, 515, 353, 320, 320, 324, 317,
2429 361, 320, 322, 533, 732, 318, 317, 353, 318, 321,
2430 326, 318, 533, 327, 577, 321, 321, 578, 659, 327,
2431 365, 322, 579, 581, 665, 580, 582, 682, 382, 559,
2432 382, 298, 467, 553, 637, 667, 710, 722, 559, 723,
2433 667, 525, 378, 676, 376, 693, 525, 525, 365, 684,
2434 -1, -1, 693, -1, -1, -1, -1, -1, -1, 589,
2435 627, -1, -1, 593, 705, 698, 682, -1, 589, -1,
2436 -1, -1, 593, -1, -1, -1, -1, -1, -1, -1,
2437 721, -1, -1, 716, -1, -1, -1, -1, -1, -1,
2438 -1, -1, -1, -1, -1, -1, -1, 627, 665, -1,
2439 -1, -1, -1, -1, -1, -1, 627, -1, -1, -1,
2440 -1, -1, 688, -1, -1, -1, -1, -1, -1, -1,
2441 -1, -1, -1, -1, -1, -1, 693, -1, -1, -1,
2442 -1, -1, -1, -1, 664, 665, -1, 667, -1, -1,
2443 -1, -1, -1, 664, 665, -1, 667, -1, -1, -1,
2444 -1, -1, -1, -1, -1, -1, -1, -1, 688, -1,
2445 -1, -1, -1, 693, -1, -1, -1, 688, -1, -1,
2446 -1, -1, 693, -1, 704, -1, -1, -1, -1, -1,
2447 -1, 711, -1, 704, -1, -1, -1, -1, -1, -1,
2448 711, -1, 722, -1, -1, -1, 726, -1, -1, -1,
2449 -1, 722, 732, -1, -1, 726, -1, -1, -1, 0,
2450 -1, 732, 3, 4, 5, 6, 7, 8, 9, 10,
2451 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2452 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
2453 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2454 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2455 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
2456 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
2457 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
2458 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
2459 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
2460 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2461 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2462 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2463 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2464 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2465 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2466 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2467 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
2468 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
2469 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
2470 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
2471 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
2472 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
2473 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
2474 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
2475 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
2476 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
2477 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
2478 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
2479 291, 292, 293, 294, -1, -1, -1, -1, -1, -1,
2480 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2481 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2482 -1, -1, -1, -1, -1, -1, 327, -1, -1, -1,
2483 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2484 341, 342, 343, 344, 345, -1, -1, -1, -1, -1,
2485 -1, -1, -1, 354, 355, 356, 357, 358, 359, 360,
2486 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2487 -1, -1, 373, 374, 375, 376, 377, 378, -1, -1,
2488 -1, -1, -1, -1, -1, -1, 387, -1, 389, 390,
2489 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
2490 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
2491 411, 412, 413, 414, 415, 416, 417, 418, 419, 3,
2492 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2493 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2494 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
2495 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2496 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2497 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
2498 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2499 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2500 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
2501 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
2502 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2503 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2504 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2505 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2506 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2507 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2508 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2509 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
2510 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
2511 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
2512 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
2513 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
2514 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
2515 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
2516 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
2517 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
2518 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
2519 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
2520 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
2521 294, -1, -1, 297, 298, -1, -1, -1, -1, -1,
2522 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2523 -1, -1, 316, 317, -1, 319, -1, 321, 322, -1,
2524 -1, -1, -1, 327, 328, 329, 330, 331, -1, -1,
2525 -1, -1, -1, -1, -1, -1, -1, 341, 342, 343,
2526 344, 345, -1, -1, -1, 349, 350, 351, 352, 353,
2527 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
2528 364, -1, 366, 367, 368, 369, 370, 371, 372, 373,
2529 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
2530 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
2531 394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
2532 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
2533 414, 415, 416, 417, 418, 419, 3, 4, 5, 6,
2534 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
2535 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2536 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
2537 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
2538 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2539 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
2540 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
2541 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
2542 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
2543 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
2544 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2545 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2546 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2547 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2548 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2549 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2550 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2551 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
2552 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
2553 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
2554 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
2555 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
2556 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
2557 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
2558 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
2559 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
2560 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
2561 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
2562 287, 288, 289, 290, 291, 292, 293, 294, -1, -1,
2563 297, 298, -1, -1, -1, -1, -1, -1, -1, -1,
2564 -1, -1, -1, -1, -1, -1, -1, -1, -1, 316,
2565 317, -1, 319, -1, 321, 322, -1, -1, -1, -1,
2566 327, 328, 329, 330, 331, -1, -1, -1, -1, -1,
2567 -1, -1, -1, -1, 341, 342, 343, 344, 345, -1,
2568 -1, -1, 349, 350, 351, 352, 353, 354, 355, 356,
2569 357, 358, 359, 360, 361, 362, 363, 364, -1, 366,
2570 367, 368, 369, 370, 371, 372, 373, 374, 375, 376,
2571 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
2572 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
2573 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
2574 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
2575 417, 418, 419, 3, 4, 5, 6, 7, 8, 9,
2576 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2577 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2578 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2579 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2580 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2581 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2582 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2583 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2584 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
2585 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2586 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2587 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2588 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2589 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2590 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2591 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2592 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2593 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
2594 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
2595 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
2596 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
2597 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
2598 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
2599 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
2600 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
2601 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
2602 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
2603 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
2604 290, 291, 292, 293, 294, -1, -1, 297, 298, -1,
2605 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2606 -1, -1, -1, -1, -1, -1, 316, 317, -1, 319,
2607 -1, 321, -1, -1, -1, -1, -1, 327, 328, 329,
2608 330, 331, -1, -1, -1, -1, -1, -1, -1, -1,
2609 -1, 341, 342, 343, 344, 345, -1, -1, -1, 349,
2610 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
2611 360, 361, 362, 363, 364, -1, 366, 367, 368, 369,
2612 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
2613 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
2614 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
2615 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
2616 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
2617 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
2618 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
2619 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
2620 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
2621 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2622 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2623 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
2624 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2625 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
2626 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
2627 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2628 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2629 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2630 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2631 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2632 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2633 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2634 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2635 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
2636 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
2637 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
2638 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
2639 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
2640 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
2641 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
2642 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
2643 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
2644 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
2645 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
2646 293, 294, -1, -1, 297, 298, -1, -1, -1, -1,
2647 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2648 -1, -1, -1, 316, 317, -1, 319, -1, 321, -1,
2649 -1, -1, -1, -1, 327, 328, 329, 330, 331, -1,
2650 -1, -1, -1, -1, -1, -1, -1, -1, 341, 342,
2651 343, 344, 345, -1, -1, -1, 349, 350, 351, 352,
2652 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
2653 363, 364, -1, 366, 367, 368, 369, 370, 371, 372,
2654 373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
2655 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
2656 393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
2657 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
2658 413, 414, 415, 416, 417, 418, 419, 3, 4, 5,
2659 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
2660 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
2661 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
2662 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2663 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2664 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
2665 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2666 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2667 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
2668 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
2669 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2670 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2671 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2672 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2673 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2674 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2675 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2676 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
2677 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
2678 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
2679 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
2680 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
2681 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
2682 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
2683 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
2684 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
2685 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
2686 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
2687 286, 287, 288, 289, 290, 291, 292, 293, 294, -1,
2688 -1, 297, 298, -1, -1, -1, -1, -1, -1, -1,
2689 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2690 316, 317, -1, 319, -1, -1, -1, -1, -1, -1,
2691 -1, 327, 328, 329, 330, 331, -1, -1, -1, -1,
2692 -1, -1, -1, -1, -1, 341, 342, 343, 344, 345,
2693 -1, -1, -1, 349, 350, 351, 352, 353, 354, 355,
2694 356, 357, 358, 359, 360, 361, 362, 363, 364, -1,
2695 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
2696 376, 377, 378, 379, 380, 381, 382, 383, 384, 385,
2697 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
2698 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
2699 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
2700 416, 417, 418, 419, 3, 4, 5, 6, 7, 8,
2701 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2702 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
2703 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2704 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
2705 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
2706 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
2707 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
2708 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
2709 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
2710 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2711 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2712 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
2713 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2714 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2715 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2716 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2717 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2718 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
2719 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
2720 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
2721 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
2722 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
2723 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
2724 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
2725 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
2726 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
2727 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
2728 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
2729 289, 290, 291, 292, 293, 294, -1, -1, 297, 298,
2730 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2731 -1, -1, -1, -1, -1, -1, -1, 316, 317, -1,
2732 -1, -1, -1, -1, -1, -1, -1, -1, 327, 328,
2733 329, 330, 331, -1, -1, -1, -1, -1, -1, -1,
2734 -1, -1, 341, 342, 343, 344, 345, -1, -1, -1,
2735 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
2736 359, 360, -1, -1, -1, -1, -1, -1, -1, -1,
2737 -1, -1, -1, -1, 373, 374, 375, 376, 377, 378,
2738 379, 380, 381, 382, 383, 384, 385, 386, 387, -1,
2739 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
2740 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
2741 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
2742 419, 3, 4, 5, 6, 7, 8, 9, 10, 11,
2743 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
2744 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2745 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2746 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2747 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
2748 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2749 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2750 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
2751 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
2752 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2753 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2754 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2755 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2756 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2757 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2758 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2759 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2760 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
2761 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
2762 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
2763 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
2764 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
2765 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
2766 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
2767 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
2768 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
2769 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
2770 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
2771 292, 293, 294, -1, -1, 297, 298, -1, -1, -1,
2772 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2773 -1, -1, -1, -1, 316, 317, -1, -1, -1, -1,
2774 -1, -1, -1, -1, -1, -1, 328, 329, 330, 331,
2775 -1, -1, -1, -1, -1, -1, -1, -1, -1, 341,
2776 342, 343, 344, -1, -1, -1, -1, 349, 350, 351,
2777 352, 353, 354, 355, 356, 357, 358, 359, 360, -1,
2778 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2779 -1, 373, 374, 375, 376, 377, 378, 379, 380, 381,
2780 382, 383, 384, 385, 386, 387, -1, 389, 390, 391,
2781 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
2782 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
2783 412, 413, 414, 415, 416, 417, 418, 419, 3, 4,
2784 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2785 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2786 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2787 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2788 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2789 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2790 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2791 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2792 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2793 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2794 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2795 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2796 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2797 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2798 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2799 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2800 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2801 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2802 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
2803 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
2804 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
2805 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2806 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
2807 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
2808 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2809 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2810 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2811 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2812 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2813 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2814 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2815 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2816 -1, -1, 327, -1, -1, -1, -1, -1, -1, -1,
2817 -1, -1, -1, -1, -1, -1, 341, 342, 343, 344,
2818 345, -1, -1, -1, -1, -1, -1, -1, -1, 354,
2819 355, 356, 357, 358, 359, 360, -1, -1, -1, -1,
2820 -1, -1, -1, -1, -1, -1, -1, -1, 373, 374,
2821 375, 376, 377, 378, -1, -1, -1, -1, -1, -1,
2822 -1, -1, 387, -1, 389, 390, 391, 392, 393, 394,
2823 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
2824 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
2825 415, 416, 417, 418, 419, 3, 4, 5, 6, 7,
2826 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
2827 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
2828 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2829 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2830 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2831 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
2832 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2833 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
2834 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
2835 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
2836 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2837 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
2838 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2839 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2840 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2841 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2842 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2843 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2844 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
2845 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
2846 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
2847 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
2848 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
2849 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
2850 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
2851 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
2852 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
2853 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
2854 288, 289, 290, 291, 292, 293, 294, -1, -1, -1,
2855 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2856 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2857 -1, -1, -1, -1, -1, -1, -1, -1, -1, 327,
2858 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2859 -1, -1, -1, 341, 342, 343, 344, -1, -1, -1,
2860 -1, -1, -1, -1, -1, 353, 354, 355, 356, 357,
2861 358, 359, 360, -1, -1, -1, -1, -1, -1, -1,
2862 -1, -1, -1, -1, -1, 373, 374, 375, 376, 377,
2863 378, -1, -1, -1, -1, -1, -1, -1, -1, 387,
2864 -1, 389, 390, 391, 392, 393, 394, 395, 396, 397,
2865 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
2866 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
2867 418, 419, 3, 4, 5, 6, 7, 8, 9, 10,
2868 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2869 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
2870 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2871 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2872 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
2873 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
2874 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
2875 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
2876 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
2877 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2878 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2879 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2880 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2881 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2882 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2883 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2884 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
2885 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
2886 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
2887 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
2888 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
2889 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
2890 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
2891 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
2892 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
2893 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
2894 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
2895 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
2896 291, 292, 293, 294, -1, -1, -1, -1, -1, -1,
2897 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2898 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2899 -1, 322, -1, -1, -1, -1, -1, -1, -1, -1,
2900 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2901 341, 342, 343, 344, -1, -1, -1, -1, -1, -1,
2902 -1, -1, -1, 354, 355, 356, 357, 358, 359, 360,
2903 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2904 -1, -1, 373, 374, 375, 376, 377, 378, -1, -1,
2905 -1, -1, -1, -1, -1, -1, 387, -1, 389, 390,
2906 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
2907 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
2908 411, 412, 413, 414, 415, 416, 417, 418, 419, 3,
2909 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2910 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2911 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
2912 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2913 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2914 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
2915 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2916 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2917 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
2918 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
2919 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2920 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2921 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2922 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2923 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2924 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2925 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2926 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
2927 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
2928 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
2929 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
2930 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
2931 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
2932 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
2933 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
2934 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
2935 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
2936 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
2937 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
2938 294, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2939 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2940 -1, -1, -1, -1, -1, -1, -1, -1, 322, -1,
2941 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2942 -1, -1, -1, -1, -1, -1, -1, 341, 342, 343,
2943 344, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2944 354, 355, 356, 357, 358, 359, 360, -1, -1, -1,
2945 -1, -1, -1, -1, -1, -1, -1, -1, -1, 373,
2946 374, 375, 376, 377, 378, -1, -1, -1, -1, -1,
2947 -1, -1, -1, 387, -1, 389, 390, 391, 392, 393,
2948 394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
2949 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
2950 414, 415, 416, 417, 418, 419, 3, 4, 5, 6,
2951 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
2952 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2953 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
2954 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
2955 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2956 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
2957 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
2958 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
2959 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
2960 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
2961 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2962 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2963 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2964 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2965 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2966 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2967 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2968 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
2969 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
2970 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
2971 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
2972 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
2973 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
2974 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
2975 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
2976 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
2977 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
2978 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
2979 287, 288, 289, 290, 291, 292, 293, 294, -1, -1,
2980 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2981 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2982 -1, -1, -1, -1, -1, 322, -1, -1, -1, -1,
2983 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2984 -1, -1, -1, -1, 341, 342, 343, 344, -1, -1,
2985 -1, -1, -1, -1, -1, -1, -1, 354, 355, 356,
2986 357, 358, 359, 360, -1, -1, -1, -1, -1, -1,
2987 -1, -1, -1, -1, -1, -1, 373, 374, 375, 376,
2988 377, 378, -1, -1, -1, -1, -1, -1, -1, -1,
2989 387, -1, 389, 390, 391, 392, 393, 394, 395, 396,
2990 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
2991 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
2992 417, 418, 419, 3, 4, 5, 6, 7, 8, 9,
2993 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2994 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2995 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2996 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2997 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2998 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2999 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3000 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
3001 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
3002 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
3003 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
3004 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
3005 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
3006 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
3007 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
3008 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
3009 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
3010 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
3011 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
3012 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
3013 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
3014 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
3015 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
3016 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
3017 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
3018 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
3019 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
3020 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
3021 290, 291, 292, 293, 294, -1, -1, -1, -1, -1,
3022 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3023 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3024 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3025 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3026 -1, 341, 342, 343, 344, -1, -1, -1, -1, -1,
3027 -1, -1, -1, -1, 354, 355, 356, 357, 358, 359,
3028 360, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3029 -1, -1, -1, 373, 374, 375, 376, 377, 378, -1,
3030 -1, -1, -1, -1, -1, -1, -1, 387, -1, 389,
3031 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
3032 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
3033 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
3034 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3035 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
3036 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
3037 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
3038 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3039 54, 55, 56, 57, 58, 59, 60, -1, -1, 63,
3040 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3041 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3042 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
3043 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
3044 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
3045 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
3046 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
3047 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
3048 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
3049 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
3050 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
3051 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
3052 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
3053 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
3054 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
3055 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
3056 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
3057 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
3058 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
3059 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
3060 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
3061 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
3062 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
3063 294, -1, -1, 297, 298, -1, -1, -1, -1, -1,
3064 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3065 -1, -1, 316, 317, -1, -1, -1, 321, 322, -1,
3066 -1, -1, -1, -1, 328, 329, 330, 331, -1, -1,
3067 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3068 -1, -1, -1, -1, -1, 349, 350, 351, 352, 353,
3069 354, -1, -1, -1, -1, 359, 360, -1, -1, -1,
3070 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3071 -1, -1, -1, -1, -1, 379, 380, 381, 382, 383,
3072 384, 385, 386, -1, -1, -1, -1, -1, -1, -1,
3073 -1, -1, -1, -1, -1, -1, -1, 401, 4, 5,
3074 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
3075 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3076 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
3077 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
3078 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3079 56, 57, 58, 59, 60, -1, -1, 63, 64, 65,
3080 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3081 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3082 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
3083 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
3084 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
3085 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3086 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
3087 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
3088 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
3089 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
3090 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
3091 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
3092 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
3093 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
3094 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
3095 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
3096 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
3097 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
3098 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
3099 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
3100 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
3101 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
3102 286, 287, 288, 289, 290, 291, 292, 293, 294, -1,
3103 -1, 297, 298, -1, -1, -1, -1, -1, -1, -1,
3104 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3105 316, 317, -1, -1, 320, -1, -1, -1, -1, -1,
3106 -1, -1, 328, 329, 330, 331, -1, -1, -1, -1,
3107 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3108 -1, -1, -1, 349, 350, 351, 352, 353, 354, -1,
3109 -1, -1, -1, 359, 360, -1, -1, -1, -1, -1,
3110 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3111 -1, -1, -1, 379, 380, 381, 382, 383, 384, 385,
3112 386, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3113 -1, -1, -1, -1, -1, 401, 4, 5, 6, 7,
3114 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
3115 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
3116 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
3117 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
3118 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3119 58, 59, 60, -1, -1, 63, 64, 65, 66, 67,
3120 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3121 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
3122 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
3123 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
3124 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
3125 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
3126 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
3127 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3128 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
3129 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
3130 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
3131 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3132 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
3133 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
3134 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
3135 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
3136 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
3137 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
3138 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
3139 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
3140 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
3141 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
3142 288, 289, 290, 291, 292, 293, 294, -1, -1, 297,
3143 298, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3144 -1, -1, -1, -1, -1, -1, -1, -1, 316, 317,
3145 -1, -1, -1, 321, -1, -1, -1, -1, -1, -1,
3146 328, 329, 330, 331, -1, -1, -1, -1, -1, -1,
3147 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3148 -1, 349, 350, 351, 352, 353, 354, -1, -1, -1,
3149 -1, 359, 360, -1, -1, -1, -1, -1, -1, -1,
3150 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3151 -1, 379, 380, 381, 382, 383, 384, 385, 386, -1,
3152 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3153 -1, -1, -1, 401, 4, 5, 6, 7, 8, 9,
3154 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
3155 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
3156 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
3157 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
3158 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3159 60, -1, -1, 63, 64, 65, 66, 67, 68, 69,
3160 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3161 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
3162 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
3163 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
3164 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
3165 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
3166 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
3167 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
3168 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
3169 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
3170 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
3171 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
3172 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
3173 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
3174 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
3175 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
3176 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
3177 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
3178 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
3179 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
3180 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
3181 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
3182 290, 291, 292, 293, 294, -1, -1, 297, 298, -1,
3183 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3184 -1, -1, -1, -1, -1, -1, 316, 317, -1, -1,
3185 320, -1, -1, -1, -1, -1, -1, -1, 328, 329,
3186 330, 331, -1, -1, -1, -1, -1, -1, -1, -1,
3187 -1, -1, -1, -1, -1, -1, -1, -1, -1, 349,
3188 350, 351, 352, 353, 354, -1, -1, -1, -1, 359,
3189 360, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3190 -1, -1, -1, -1, -1, -1, -1, -1, -1, 379,
3191 380, 381, 382, 383, 384, 385, 386, -1, -1, -1,
3192 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3193 -1, 401, 4, 5, 6, 7, 8, 9, 10, 11,
3194 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3195 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
3196 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
3197 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
3198 52, 53, 54, 55, 56, 57, 58, 59, 60, -1,
3199 -1, 63, 64, 65, 66, 67, 68, 69, 70, 71,
3200 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3201 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
3202 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
3203 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
3204 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3205 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
3206 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
3207 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
3208 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
3209 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
3210 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
3211 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
3212 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
3213 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
3214 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
3215 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
3216 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
3217 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
3218 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
3219 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
3220 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
3221 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
3222 292, 293, 294, -1, -1, 297, 298, -1, -1, -1,
3223 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3224 -1, -1, -1, -1, 316, 317, -1, -1, -1, -1,
3225 -1, -1, -1, -1, -1, 327, 328, 329, 330, 331,
3226 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3227 -1, -1, -1, -1, -1, -1, -1, 349, 350, 351,
3228 352, 353, 354, -1, -1, -1, -1, 359, 360, -1,
3229 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3230 -1, -1, -1, -1, -1, -1, -1, 379, 380, 381,
3231 382, 383, 384, 385, 386, -1, -1, -1, -1, -1,
3232 -1, -1, -1, -1, -1, -1, -1, -1, -1, 401,
3233 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3234 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
3235 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
3236 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
3237 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3238 54, 55, 56, 57, 58, 59, 60, -1, -1, 63,
3239 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3240 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3241 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
3242 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
3243 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
3244 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
3245 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
3246 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
3247 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
3248 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
3249 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
3250 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
3251 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
3252 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
3253 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
3254 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
3255 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
3256 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
3257 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
3258 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
3259 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
3260 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
3261 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
3262 294, -1, -1, 297, 298, -1, -1, -1, -1, -1,
3263 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3264 -1, -1, 316, 317, -1, -1, -1, -1, -1, -1,
3265 -1, -1, -1, -1, 328, 329, 330, 331, -1, -1,
3266 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3267 -1, -1, -1, -1, -1, 349, 350, 351, 352, 353,
3268 354, -1, -1, -1, -1, 359, 360, -1, -1, -1,
3269 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3270 -1, -1, -1, -1, -1, 379, 380, 381, 382, 383,
3271 384, 385, 386, -1, -1, -1, -1, -1, -1, -1,
3272 -1, -1, -1, -1, -1, -1, -1, 401, 4, 5,
3273 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
3274 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3275 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
3276 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
3277 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3278 56, 57, 58, 59, 60, -1, -1, 63, 64, 65,
3279 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3280 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3281 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
3282 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
3283 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
3284 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3285 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
3286 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
3287 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
3288 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
3289 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
3290 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
3291 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
3292 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
3293 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
3294 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
3295 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
3296 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
3297 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
3298 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
3299 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
3300 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
3301 286, 287, 288, 289, 290, 291, 292, 293, 294, 391,
3302 -1, 297, 298, -1, -1, -1, -1, -1, -1, -1,
3303 -1, -1, -1, 405, -1, -1, -1, -1, -1, -1,
3304 316, 317, -1, -1, -1, -1, -1, -1, -1, -1,
3305 422, 423, 328, 329, 330, 331, -1, -1, -1, -1,
3306 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3307 -1, -1, -1, 349, 350, 351, 352, 353, 354, -1,
3308 -1, -1, 454, 359, 360, -1, -1, -1, -1, -1,
3309 -1, -1, -1, 465, -1, -1, -1, -1, -1, -1,
3310 -1, -1, -1, 379, 380, 381, 382, 383, 384, 385,
3311 386, -1, 484, -1, -1, -1, -1, -1, -1, -1,
3312 -1, -1, -1, -1, -1, 401, -1, -1, -1, -1,
3313 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3314 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3315 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3316 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3317 -1, -1, -1, -1, -1, -1, -1, -1, -1, 551,
3318 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3319 -1, -1, 564, 565, 566, 567, 568, 569, 570, 571,
3320 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
3321 582, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3322 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3323 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3324 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3325 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3326 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3327 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3328 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3329 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3330 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3331 682
3332 };
3333
3334 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
3335 symbol of state STATE-NUM. */
3336 static const yytype_uint16 yystos[] =
3337 {
3338 0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3339 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3340 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
3341 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
3342 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
3343 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
3344 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
3345 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3346 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
3347 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
3348 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
3349 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3350 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
3351 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
3352 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
3353 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
3354 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
3355 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
3356 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
3357 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
3358 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
3359 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
3360 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
3361 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
3362 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
3363 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
3364 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
3365 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
3366 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
3367 292, 293, 294, 327, 341, 342, 343, 344, 345, 354,
3368 355, 356, 357, 358, 359, 360, 373, 374, 375, 376,
3369 377, 378, 387, 389, 390, 391, 392, 393, 394, 395,
3370 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
3371 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
3372 416, 417, 418, 419, 451, 452, 455, 456, 457, 458,
3373 462, 463, 464, 465, 466, 467, 470, 471, 472, 473,
3374 474, 476, 481, 482, 483, 524, 525, 526, 482, 321,
3375 353, 317, 317, 327, 353, 327, 527, 318, 324, 459,
3376 460, 461, 471, 476, 324, 327, 353, 327, 353, 472,
3377 476, 335, 478, 479, 0, 525, 476, 485, 321, 353,
3378 374, 468, 469, 353, 475, 319, 327, 477, 321, 503,
3379 460, 459, 461, 353, 353, 317, 326, 477, 321, 324,
3380 327, 454, 297, 298, 316, 317, 328, 329, 330, 331,
3381 349, 350, 351, 352, 353, 379, 380, 381, 382, 383,
3382 384, 385, 386, 421, 422, 423, 425, 426, 427, 428,
3383 429, 430, 431, 432, 433, 474, 476, 480, 477, 327,
3384 471, 476, 486, 487, 484, 326, 318, 324, 318, 324,
3385 320, 432, 434, 435, 436, 437, 438, 439, 440, 441,
3386 442, 443, 444, 445, 319, 327, 319, 321, 322, 327,
3387 361, 362, 363, 364, 366, 367, 368, 369, 370, 371,
3388 372, 388, 432, 445, 447, 449, 451, 455, 474, 476,
3389 492, 493, 494, 495, 496, 504, 505, 506, 507, 510,
3390 511, 514, 515, 516, 523, 528, 477, 326, 477, 321,
3391 447, 490, 326, 453, 353, 324, 327, 432, 432, 449,
3392 297, 298, 319, 323, 318, 318, 324, 360, 447, 317,
3393 432, 324, 336, 476, 353, 488, 489, 322, 487, 486,
3394 445, 450, 469, 353, 332, 333, 334, 329, 331, 295,
3395 296, 299, 300, 335, 336, 301, 302, 339, 338, 337,
3396 303, 305, 304, 340, 320, 320, 445, 319, 322, 497,
3397 317, 327, 327, 518, 317, 317, 327, 327, 449, 317,
3398 449, 325, 327, 306, 307, 308, 309, 310, 311, 312,
3399 313, 314, 315, 326, 448, 324, 327, 322, 493, 507,
3400 511, 516, 490, 326, 490, 491, 490, 486, 353, 318,
3401 424, 449, 353, 447, 432, 488, 477, 324, 327, 322,
3402 432, 432, 432, 434, 434, 435, 435, 436, 436, 436,
3403 436, 437, 437, 438, 439, 440, 441, 442, 443, 446,
3404 320, 353, 529, 530, 504, 517, 493, 519, 449, 327,
3405 449, 325, 447, 447, 490, 322, 324, 322, 320, 327,
3406 489, 449, 317, 320, 324, 498, 449, 464, 471, 509,
3407 361, 492, 505, 520, 318, 318, 322, 490, 325, 450,
3408 320, 530, 322, 353, 318, 317, 509, 521, 522, 500,
3409 501, 502, 508, 512, 447, 318, 326, 494, 499, 503,
3410 449, 327, 318, 365, 496, 494, 321, 490, 318, 449,
3411 499, 500, 504, 513, 327, 322
3412 };
3413
3414 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
3415 static const yytype_uint16 yyr1[] =
3416 {
3417 0, 420, 421, 422, 422, 422, 422, 422, 422, 422,
3418 422, 422, 422, 422, 422, 422, 422, 422, 423, 423,
3419 423, 423, 423, 423, 424, 425, 426, 427, 427, 428,
3420 428, 429, 429, 430, 431, 431, 431, 432, 432, 432,
3421 432, 433, 433, 433, 433, 434, 434, 434, 434, 435,
3422 435, 435, 436, 436, 436, 437, 437, 437, 437, 437,
3423 438, 438, 438, 439, 439, 440, 440, 441, 441, 442,
3424 442, 443, 443, 444, 444, 445, 446, 445, 447, 447,
3425 448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
3426 448, 449, 449, 450, 451, 451, 451, 451, 451, 451,
3427 451, 451, 451, 453, 452, 454, 454, 455, 456, 456,
3428 457, 457, 458, 459, 459, 460, 460, 460, 460, 461,
3429 462, 462, 462, 462, 462, 463, 463, 463, 463, 463,
3430 464, 464, 465, 466, 466, 466, 466, 466, 466, 466,
3431 466, 467, 468, 468, 469, 469, 469, 470, 471, 471,
3432 472, 472, 472, 472, 472, 472, 472, 473, 473, 473,
3433 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
3434 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
3435 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
3436 473, 473, 474, 475, 475, 476, 476, 477, 477, 477,
3437 477, 478, 478, 479, 480, 480, 481, 481, 481, 481,
3438 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3439 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3440 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3441 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3442 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3443 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3444 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3445 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3446 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3447 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3448 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3449 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3450 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3451 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3452 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3453 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3454 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3455 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3456 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3457 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3458 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3459 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3460 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3461 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3462 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3463 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3464 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3465 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
3466 481, 481, 481, 481, 481, 481, 481, 481, 482, 482,
3467 482, 484, 483, 485, 483, 486, 486, 487, 487, 488,
3468 488, 489, 489, 490, 490, 490, 491, 491, 492, 493,
3469 493, 494, 494, 494, 494, 494, 494, 494, 494, 495,
3470 496, 497, 498, 496, 499, 499, 501, 500, 502, 500,
3471 503, 503, 504, 504, 505, 505, 506, 506, 507, 508,
3472 508, 509, 509, 510, 510, 512, 511, 513, 513, 514,
3473 514, 515, 515, 517, 516, 518, 516, 519, 516, 520,
3474 520, 521, 521, 522, 522, 523, 523, 523, 523, 523,
3475 524, 524, 525, 525, 525, 527, 526, 528, 529, 529,
3476 530, 530
3477 };
3478
3479 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
3480 static const yytype_uint8 yyr2[] =
3481 {
3482 0, 2, 1, 1, 3, 1, 1, 1, 1, 1,
3483 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
3484 1, 3, 2, 2, 1, 1, 1, 2, 2, 2,
3485 1, 2, 3, 2, 1, 1, 1, 1, 2, 2,
3486 2, 1, 1, 1, 1, 1, 3, 3, 3, 1,
3487 3, 3, 1, 3, 3, 1, 3, 3, 3, 3,
3488 1, 3, 3, 1, 3, 1, 3, 1, 3, 1,
3489 3, 1, 3, 1, 3, 1, 0, 6, 1, 3,
3490 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3491 1, 1, 3, 1, 2, 2, 4, 2, 3, 4,
3492 2, 3, 4, 0, 6, 2, 3, 2, 1, 1,
3493 2, 3, 3, 2, 3, 2, 1, 2, 1, 1,
3494 1, 3, 4, 6, 5, 1, 2, 3, 5, 4,
3495 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
3496 1, 4, 1, 3, 1, 3, 1, 1, 1, 2,
3497 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3498 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3499 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3500 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3501 1, 4, 1, 1, 3, 2, 3, 2, 3, 3,
3502 4, 1, 0, 3, 1, 3, 1, 1, 1, 1,
3503 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3504 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3505 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3506 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3507 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3508 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3509 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3510 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3511 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3512 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3513 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3514 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3515 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3516 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3517 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3518 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3519 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3520 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3521 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3522 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3523 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3524 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3525 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3526 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3527 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3528 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3529 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3530 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3531 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3532 1, 0, 6, 0, 5, 1, 2, 3, 4, 1,
3533 3, 1, 2, 1, 3, 4, 1, 3, 1, 1,
3534 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
3535 2, 0, 0, 5, 1, 1, 0, 2, 0, 2,
3536 2, 3, 1, 2, 1, 2, 1, 2, 5, 3,
3537 1, 1, 4, 1, 2, 0, 8, 0, 1, 3,
3538 2, 1, 2, 0, 6, 0, 8, 0, 7, 1,
3539 1, 1, 0, 2, 3, 2, 2, 2, 3, 2,
3540 1, 2, 1, 1, 1, 0, 3, 5, 1, 3,
3541 1, 4
3542 };
3543
3544
3545 #define yyerrok (yyerrstatus = 0)
3546 #define yyclearin (yychar = YYEMPTY)
3547 #define YYEMPTY (-2)
3548 #define YYEOF 0
3549
3550 #define YYACCEPT goto yyacceptlab
3551 #define YYABORT goto yyabortlab
3552 #define YYERROR goto yyerrorlab
3553
3554
3555 #define YYRECOVERING() (!!yyerrstatus)
3556
3557 #define YYBACKUP(Token, Value) \
3558 do \
3559 if (yychar == YYEMPTY) \
3560 { \
3561 yychar = (Token); \
3562 yylval = (Value); \
3563 YYPOPSTACK (yylen); \
3564 yystate = *yyssp; \
3565 goto yybackup; \
3566 } \
3567 else \
3568 { \
3569 yyerror (pParseContext, YY_("syntax error: cannot back up")); \
3570 YYERROR; \
3571 } \
3572 while (0)
3573
3574 /* Error token number */
3575 #define YYTERROR 1
3576 #define YYERRCODE 256
3577
3578
3579
3580 /* Enable debugging if requested. */
3581 #if YYDEBUG
3582
3583 # ifndef YYFPRINTF
3584 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3585 # define YYFPRINTF fprintf
3586 # endif
3587
3588 # define YYDPRINTF(Args) \
3589 do { \
3590 if (yydebug) \
3591 YYFPRINTF Args; \
3592 } while (0)
3593
3594 /* This macro is provided for backward compatibility. */
3595 #ifndef YY_LOCATION_PRINT
3596 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3597 #endif
3598
3599
3600 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
3601 do { \
3602 if (yydebug) \
3603 { \
3604 YYFPRINTF (stderr, "%s ", Title); \
3605 yy_symbol_print (stderr, \
3606 Type, Value, pParseContext); \
3607 YYFPRINTF (stderr, "\n"); \
3608 } \
3609 } while (0)
3610
3611
3612 /*----------------------------------------.
3613 | Print this symbol's value on YYOUTPUT. |
3614 `----------------------------------------*/
3615
3616 static void
yy_symbol_value_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep,glslang::TParseContext * pParseContext)3617 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
3618 {
3619 FILE *yyo = yyoutput;
3620 YYUSE (yyo);
3621 YYUSE (pParseContext);
3622 if (!yyvaluep)
3623 return;
3624 # ifdef YYPRINT
3625 if (yytype < YYNTOKENS)
3626 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3627 # endif
3628 YYUSE (yytype);
3629 }
3630
3631
3632 /*--------------------------------.
3633 | Print this symbol on YYOUTPUT. |
3634 `--------------------------------*/
3635
3636 static void
yy_symbol_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep,glslang::TParseContext * pParseContext)3637 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
3638 {
3639 YYFPRINTF (yyoutput, "%s %s (",
3640 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
3641
3642 yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext);
3643 YYFPRINTF (yyoutput, ")");
3644 }
3645
3646 /*------------------------------------------------------------------.
3647 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
3648 | TOP (included). |
3649 `------------------------------------------------------------------*/
3650
3651 static void
yy_stack_print(yytype_int16 * yybottom,yytype_int16 * yytop)3652 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
3653 {
3654 YYFPRINTF (stderr, "Stack now");
3655 for (; yybottom <= yytop; yybottom++)
3656 {
3657 int yybot = *yybottom;
3658 YYFPRINTF (stderr, " %d", yybot);
3659 }
3660 YYFPRINTF (stderr, "\n");
3661 }
3662
3663 # define YY_STACK_PRINT(Bottom, Top) \
3664 do { \
3665 if (yydebug) \
3666 yy_stack_print ((Bottom), (Top)); \
3667 } while (0)
3668
3669
3670 /*------------------------------------------------.
3671 | Report that the YYRULE is going to be reduced. |
3672 `------------------------------------------------*/
3673
3674 static void
yy_reduce_print(yytype_int16 * yyssp,YYSTYPE * yyvsp,int yyrule,glslang::TParseContext * pParseContext)3675 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext)
3676 {
3677 unsigned long int yylno = yyrline[yyrule];
3678 int yynrhs = yyr2[yyrule];
3679 int yyi;
3680 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3681 yyrule - 1, yylno);
3682 /* The symbols being reduced. */
3683 for (yyi = 0; yyi < yynrhs; yyi++)
3684 {
3685 YYFPRINTF (stderr, " $%d = ", yyi + 1);
3686 yy_symbol_print (stderr,
3687 yystos[yyssp[yyi + 1 - yynrhs]],
3688 &(yyvsp[(yyi + 1) - (yynrhs)])
3689 , pParseContext);
3690 YYFPRINTF (stderr, "\n");
3691 }
3692 }
3693
3694 # define YY_REDUCE_PRINT(Rule) \
3695 do { \
3696 if (yydebug) \
3697 yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \
3698 } while (0)
3699
3700 /* Nonzero means print parse trace. It is left uninitialized so that
3701 multiple parsers can coexist. */
3702 int yydebug;
3703 #else /* !YYDEBUG */
3704 # define YYDPRINTF(Args)
3705 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3706 # define YY_STACK_PRINT(Bottom, Top)
3707 # define YY_REDUCE_PRINT(Rule)
3708 #endif /* !YYDEBUG */
3709
3710
3711 /* YYINITDEPTH -- initial size of the parser's stacks. */
3712 #ifndef YYINITDEPTH
3713 # define YYINITDEPTH 200
3714 #endif
3715
3716 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3717 if the built-in stack extension method is used).
3718
3719 Do not make this value too large; the results are undefined if
3720 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3721 evaluated with infinite-precision integer arithmetic. */
3722
3723 #ifndef YYMAXDEPTH
3724 # define YYMAXDEPTH 10000
3725 #endif
3726
3727
3728 #if YYERROR_VERBOSE
3729
3730 # ifndef yystrlen
3731 # if defined __GLIBC__ && defined _STRING_H
3732 # define yystrlen strlen
3733 # else
3734 /* Return the length of YYSTR. */
3735 static YYSIZE_T
yystrlen(const char * yystr)3736 yystrlen (const char *yystr)
3737 {
3738 YYSIZE_T yylen;
3739 for (yylen = 0; yystr[yylen]; yylen++)
3740 continue;
3741 return yylen;
3742 }
3743 # endif
3744 # endif
3745
3746 # ifndef yystpcpy
3747 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3748 # define yystpcpy stpcpy
3749 # else
3750 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3751 YYDEST. */
3752 static char *
yystpcpy(char * yydest,const char * yysrc)3753 yystpcpy (char *yydest, const char *yysrc)
3754 {
3755 char *yyd = yydest;
3756 const char *yys = yysrc;
3757
3758 while ((*yyd++ = *yys++) != '\0')
3759 continue;
3760
3761 return yyd - 1;
3762 }
3763 # endif
3764 # endif
3765
3766 # ifndef yytnamerr
3767 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3768 quotes and backslashes, so that it's suitable for yyerror. The
3769 heuristic is that double-quoting is unnecessary unless the string
3770 contains an apostrophe, a comma, or backslash (other than
3771 backslash-backslash). YYSTR is taken from yytname. If YYRES is
3772 null, do not copy; instead, return the length of what the result
3773 would have been. */
3774 static YYSIZE_T
yytnamerr(char * yyres,const char * yystr)3775 yytnamerr (char *yyres, const char *yystr)
3776 {
3777 if (*yystr == '"')
3778 {
3779 YYSIZE_T yyn = 0;
3780 char const *yyp = yystr;
3781
3782 for (;;)
3783 switch (*++yyp)
3784 {
3785 case '\'':
3786 case ',':
3787 goto do_not_strip_quotes;
3788
3789 case '\\':
3790 if (*++yyp != '\\')
3791 goto do_not_strip_quotes;
3792 /* Fall through. */
3793 default:
3794 if (yyres)
3795 yyres[yyn] = *yyp;
3796 yyn++;
3797 break;
3798
3799 case '"':
3800 if (yyres)
3801 yyres[yyn] = '\0';
3802 return yyn;
3803 }
3804 do_not_strip_quotes: ;
3805 }
3806
3807 if (! yyres)
3808 return yystrlen (yystr);
3809
3810 return yystpcpy (yyres, yystr) - yyres;
3811 }
3812 # endif
3813
3814 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
3815 about the unexpected token YYTOKEN for the state stack whose top is
3816 YYSSP.
3817
3818 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
3819 not large enough to hold the message. In that case, also set
3820 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
3821 required number of bytes is too large to store. */
3822 static int
yysyntax_error(YYSIZE_T * yymsg_alloc,char ** yymsg,yytype_int16 * yyssp,int yytoken)3823 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
3824 yytype_int16 *yyssp, int yytoken)
3825 {
3826 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
3827 YYSIZE_T yysize = yysize0;
3828 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3829 /* Internationalized format string. */
3830 const char *yyformat = YY_NULLPTR;
3831 /* Arguments of yyformat. */
3832 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3833 /* Number of reported tokens (one for the "unexpected", one per
3834 "expected"). */
3835 int yycount = 0;
3836
3837 /* There are many possibilities here to consider:
3838 - If this state is a consistent state with a default action, then
3839 the only way this function was invoked is if the default action
3840 is an error action. In that case, don't check for expected
3841 tokens because there are none.
3842 - The only way there can be no lookahead present (in yychar) is if
3843 this state is a consistent state with a default action. Thus,
3844 detecting the absence of a lookahead is sufficient to determine
3845 that there is no unexpected or expected token to report. In that
3846 case, just report a simple "syntax error".
3847 - Don't assume there isn't a lookahead just because this state is a
3848 consistent state with a default action. There might have been a
3849 previous inconsistent state, consistent state with a non-default
3850 action, or user semantic action that manipulated yychar.
3851 - Of course, the expected token list depends on states to have
3852 correct lookahead information, and it depends on the parser not
3853 to perform extra reductions after fetching a lookahead from the
3854 scanner and before detecting a syntax error. Thus, state merging
3855 (from LALR or IELR) and default reductions corrupt the expected
3856 token list. However, the list is correct for canonical LR with
3857 one exception: it will still contain any token that will not be
3858 accepted due to an error action in a later state.
3859 */
3860 if (yytoken != YYEMPTY)
3861 {
3862 int yyn = yypact[*yyssp];
3863 yyarg[yycount++] = yytname[yytoken];
3864 if (!yypact_value_is_default (yyn))
3865 {
3866 /* Start YYX at -YYN if negative to avoid negative indexes in
3867 YYCHECK. In other words, skip the first -YYN actions for
3868 this state because they are default actions. */
3869 int yyxbegin = yyn < 0 ? -yyn : 0;
3870 /* Stay within bounds of both yycheck and yytname. */
3871 int yychecklim = YYLAST - yyn + 1;
3872 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3873 int yyx;
3874
3875 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3876 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
3877 && !yytable_value_is_error (yytable[yyx + yyn]))
3878 {
3879 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3880 {
3881 yycount = 1;
3882 yysize = yysize0;
3883 break;
3884 }
3885 yyarg[yycount++] = yytname[yyx];
3886 {
3887 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
3888 if (! (yysize <= yysize1
3889 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3890 return 2;
3891 yysize = yysize1;
3892 }
3893 }
3894 }
3895 }
3896
3897 switch (yycount)
3898 {
3899 # define YYCASE_(N, S) \
3900 case N: \
3901 yyformat = S; \
3902 break
3903 YYCASE_(0, YY_("syntax error"));
3904 YYCASE_(1, YY_("syntax error, unexpected %s"));
3905 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
3906 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
3907 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
3908 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
3909 # undef YYCASE_
3910 }
3911
3912 {
3913 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
3914 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3915 return 2;
3916 yysize = yysize1;
3917 }
3918
3919 if (*yymsg_alloc < yysize)
3920 {
3921 *yymsg_alloc = 2 * yysize;
3922 if (! (yysize <= *yymsg_alloc
3923 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
3924 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
3925 return 1;
3926 }
3927
3928 /* Avoid sprintf, as that infringes on the user's name space.
3929 Don't have undefined behavior even if the translation
3930 produced a string with the wrong number of "%s"s. */
3931 {
3932 char *yyp = *yymsg;
3933 int yyi = 0;
3934 while ((*yyp = *yyformat) != '\0')
3935 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
3936 {
3937 yyp += yytnamerr (yyp, yyarg[yyi++]);
3938 yyformat += 2;
3939 }
3940 else
3941 {
3942 yyp++;
3943 yyformat++;
3944 }
3945 }
3946 return 0;
3947 }
3948 #endif /* YYERROR_VERBOSE */
3949
3950 /*-----------------------------------------------.
3951 | Release the memory associated to this symbol. |
3952 `-----------------------------------------------*/
3953
3954 static void
yydestruct(const char * yymsg,int yytype,YYSTYPE * yyvaluep,glslang::TParseContext * pParseContext)3955 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext)
3956 {
3957 YYUSE (yyvaluep);
3958 YYUSE (pParseContext);
3959 if (!yymsg)
3960 yymsg = "Deleting";
3961 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3962
3963 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3964 YYUSE (yytype);
3965 YY_IGNORE_MAYBE_UNINITIALIZED_END
3966 }
3967
3968
3969
3970
3971 /*----------.
3972 | yyparse. |
3973 `----------*/
3974
3975 int
yyparse(glslang::TParseContext * pParseContext)3976 yyparse (glslang::TParseContext* pParseContext)
3977 {
3978 /* The lookahead symbol. */
3979 int yychar;
3980
3981
3982 /* The semantic value of the lookahead symbol. */
3983 /* Default value used for initialization, for pacifying older GCCs
3984 or non-GCC compilers. */
3985 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
3986 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
3987
3988 /* Number of syntax errors so far. */
3989 int yynerrs;
3990
3991 int yystate;
3992 /* Number of tokens to shift before error messages enabled. */
3993 int yyerrstatus;
3994
3995 /* The stacks and their tools:
3996 'yyss': related to states.
3997 'yyvs': related to semantic values.
3998
3999 Refer to the stacks through separate pointers, to allow yyoverflow
4000 to reallocate them elsewhere. */
4001
4002 /* The state stack. */
4003 yytype_int16 yyssa[YYINITDEPTH];
4004 yytype_int16 *yyss;
4005 yytype_int16 *yyssp;
4006
4007 /* The semantic value stack. */
4008 YYSTYPE yyvsa[YYINITDEPTH];
4009 YYSTYPE *yyvs;
4010 YYSTYPE *yyvsp;
4011
4012 YYSIZE_T yystacksize;
4013
4014 int yyn;
4015 int yyresult;
4016 /* Lookahead token as an internal (translated) token number. */
4017 int yytoken = 0;
4018 /* The variables used to return semantic value and location from the
4019 action routines. */
4020 YYSTYPE yyval;
4021
4022 #if YYERROR_VERBOSE
4023 /* Buffer for error messages, and its allocated size. */
4024 char yymsgbuf[128];
4025 char *yymsg = yymsgbuf;
4026 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
4027 #endif
4028
4029 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
4030
4031 /* The number of symbols on the RHS of the reduced rule.
4032 Keep to zero when no symbol should be popped. */
4033 int yylen = 0;
4034
4035 yyssp = yyss = yyssa;
4036 yyvsp = yyvs = yyvsa;
4037 yystacksize = YYINITDEPTH;
4038
4039 YYDPRINTF ((stderr, "Starting parse\n"));
4040
4041 yystate = 0;
4042 yyerrstatus = 0;
4043 yynerrs = 0;
4044 yychar = YYEMPTY; /* Cause a token to be read. */
4045 goto yysetstate;
4046
4047 /*------------------------------------------------------------.
4048 | yynewstate -- Push a new state, which is found in yystate. |
4049 `------------------------------------------------------------*/
4050 yynewstate:
4051 /* In all cases, when you get here, the value and location stacks
4052 have just been pushed. So pushing a state here evens the stacks. */
4053 yyssp++;
4054
4055 yysetstate:
4056 *yyssp = yystate;
4057
4058 if (yyss + yystacksize - 1 <= yyssp)
4059 {
4060 /* Get the current used size of the three stacks, in elements. */
4061 YYSIZE_T yysize = yyssp - yyss + 1;
4062
4063 #ifdef yyoverflow
4064 {
4065 /* Give user a chance to reallocate the stack. Use copies of
4066 these so that the &'s don't force the real ones into
4067 memory. */
4068 YYSTYPE *yyvs1 = yyvs;
4069 yytype_int16 *yyss1 = yyss;
4070
4071 /* Each stack pointer address is followed by the size of the
4072 data in use in that stack, in bytes. This used to be a
4073 conditional around just the two extra args, but that might
4074 be undefined if yyoverflow is a macro. */
4075 yyoverflow (YY_("memory exhausted"),
4076 &yyss1, yysize * sizeof (*yyssp),
4077 &yyvs1, yysize * sizeof (*yyvsp),
4078 &yystacksize);
4079
4080 yyss = yyss1;
4081 yyvs = yyvs1;
4082 }
4083 #else /* no yyoverflow */
4084 # ifndef YYSTACK_RELOCATE
4085 goto yyexhaustedlab;
4086 # else
4087 /* Extend the stack our own way. */
4088 if (YYMAXDEPTH <= yystacksize)
4089 goto yyexhaustedlab;
4090 yystacksize *= 2;
4091 if (YYMAXDEPTH < yystacksize)
4092 yystacksize = YYMAXDEPTH;
4093
4094 {
4095 yytype_int16 *yyss1 = yyss;
4096 union yyalloc *yyptr =
4097 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
4098 if (! yyptr)
4099 goto yyexhaustedlab;
4100 YYSTACK_RELOCATE (yyss_alloc, yyss);
4101 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
4102 # undef YYSTACK_RELOCATE
4103 if (yyss1 != yyssa)
4104 YYSTACK_FREE (yyss1);
4105 }
4106 # endif
4107 #endif /* no yyoverflow */
4108
4109 yyssp = yyss + yysize - 1;
4110 yyvsp = yyvs + yysize - 1;
4111
4112 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
4113 (unsigned long int) yystacksize));
4114
4115 if (yyss + yystacksize - 1 <= yyssp)
4116 YYABORT;
4117 }
4118
4119 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4120
4121 if (yystate == YYFINAL)
4122 YYACCEPT;
4123
4124 goto yybackup;
4125
4126 /*-----------.
4127 | yybackup. |
4128 `-----------*/
4129 yybackup:
4130
4131 /* Do appropriate processing given the current state. Read a
4132 lookahead token if we need one and don't already have one. */
4133
4134 /* First try to decide what to do without reference to lookahead token. */
4135 yyn = yypact[yystate];
4136 if (yypact_value_is_default (yyn))
4137 goto yydefault;
4138
4139 /* Not known => get a lookahead token if don't already have one. */
4140
4141 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
4142 if (yychar == YYEMPTY)
4143 {
4144 YYDPRINTF ((stderr, "Reading a token: "));
4145 yychar = yylex (&yylval, parseContext);
4146 }
4147
4148 if (yychar <= YYEOF)
4149 {
4150 yychar = yytoken = YYEOF;
4151 YYDPRINTF ((stderr, "Now at end of input.\n"));
4152 }
4153 else
4154 {
4155 yytoken = YYTRANSLATE (yychar);
4156 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
4157 }
4158
4159 /* If the proper action on seeing token YYTOKEN is to reduce or to
4160 detect an error, take that action. */
4161 yyn += yytoken;
4162 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
4163 goto yydefault;
4164 yyn = yytable[yyn];
4165 if (yyn <= 0)
4166 {
4167 if (yytable_value_is_error (yyn))
4168 goto yyerrlab;
4169 yyn = -yyn;
4170 goto yyreduce;
4171 }
4172
4173 /* Count tokens shifted since error; after three, turn off error
4174 status. */
4175 if (yyerrstatus)
4176 yyerrstatus--;
4177
4178 /* Shift the lookahead token. */
4179 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
4180
4181 /* Discard the shifted token. */
4182 yychar = YYEMPTY;
4183
4184 yystate = yyn;
4185 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4186 *++yyvsp = yylval;
4187 YY_IGNORE_MAYBE_UNINITIALIZED_END
4188
4189 goto yynewstate;
4190
4191
4192 /*-----------------------------------------------------------.
4193 | yydefault -- do the default action for the current state. |
4194 `-----------------------------------------------------------*/
4195 yydefault:
4196 yyn = yydefact[yystate];
4197 if (yyn == 0)
4198 goto yyerrlab;
4199 goto yyreduce;
4200
4201
4202 /*-----------------------------.
4203 | yyreduce -- Do a reduction. |
4204 `-----------------------------*/
4205 yyreduce:
4206 /* yyn is the number of a rule to reduce with. */
4207 yylen = yyr2[yyn];
4208
4209 /* If YYLEN is nonzero, implement the default value of the action:
4210 '$$ = $1'.
4211
4212 Otherwise, the following line sets YYVAL to garbage.
4213 This behavior is undocumented and Bison
4214 users should not rely upon it. Assigning to YYVAL
4215 unconditionally makes the parser a bit smaller, and it avoids a
4216 GCC warning that YYVAL may be used uninitialized. */
4217 yyval = yyvsp[1-yylen];
4218
4219
4220 YY_REDUCE_PRINT (yyn);
4221 switch (yyn)
4222 {
4223 case 2:
4224 #line 357 "glslang.y" /* yacc.c:1646 */
4225 {
4226 (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
4227 }
4228 #line 4229 "glslang_tab.cpp" /* yacc.c:1646 */
4229 break;
4230
4231 case 3:
4232 #line 363 "glslang.y" /* yacc.c:1646 */
4233 {
4234 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4235 }
4236 #line 4237 "glslang_tab.cpp" /* yacc.c:1646 */
4237 break;
4238
4239 case 4:
4240 #line 366 "glslang.y" /* yacc.c:1646 */
4241 {
4242 (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
4243 if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
4244 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
4245 }
4246 #line 4247 "glslang_tab.cpp" /* yacc.c:1646 */
4247 break;
4248
4249 case 5:
4250 #line 371 "glslang.y" /* yacc.c:1646 */
4251 {
4252 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
4253 }
4254 #line 4255 "glslang_tab.cpp" /* yacc.c:1646 */
4255 break;
4256
4257 case 6:
4258 #line 374 "glslang.y" /* yacc.c:1646 */
4259 {
4260 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4261 }
4262 #line 4263 "glslang_tab.cpp" /* yacc.c:1646 */
4263 break;
4264
4265 case 7:
4266 #line 377 "glslang.y" /* yacc.c:1646 */
4267 {
4268 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
4269 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4270 }
4271 #line 4272 "glslang_tab.cpp" /* yacc.c:1646 */
4272 break;
4273
4274 case 8:
4275 #line 381 "glslang.y" /* yacc.c:1646 */
4276 {
4277 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
4278 }
4279 #line 4280 "glslang_tab.cpp" /* yacc.c:1646 */
4280 break;
4281
4282 case 9:
4283 #line 385 "glslang.y" /* yacc.c:1646 */
4284 {
4285 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
4286 }
4287 #line 4288 "glslang_tab.cpp" /* yacc.c:1646 */
4288 break;
4289
4290 case 10:
4291 #line 388 "glslang.y" /* yacc.c:1646 */
4292 {
4293 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
4294 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4295 }
4296 #line 4297 "glslang_tab.cpp" /* yacc.c:1646 */
4297 break;
4298
4299 case 11:
4300 #line 392 "glslang.y" /* yacc.c:1646 */
4301 {
4302 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
4303 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4304 }
4305 #line 4306 "glslang_tab.cpp" /* yacc.c:1646 */
4306 break;
4307
4308 case 12:
4309 #line 396 "glslang.y" /* yacc.c:1646 */
4310 {
4311 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
4312 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
4313 }
4314 #line 4315 "glslang_tab.cpp" /* yacc.c:1646 */
4315 break;
4316
4317 case 13:
4318 #line 400 "glslang.y" /* yacc.c:1646 */
4319 {
4320 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
4321 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
4322 }
4323 #line 4324 "glslang_tab.cpp" /* yacc.c:1646 */
4324 break;
4325
4326 case 14:
4327 #line 404 "glslang.y" /* yacc.c:1646 */
4328 {
4329 parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal");
4330 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
4331 }
4332 #line 4333 "glslang_tab.cpp" /* yacc.c:1646 */
4333 break;
4334
4335 case 15:
4336 #line 408 "glslang.y" /* yacc.c:1646 */
4337 {
4338 parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal");
4339 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
4340 }
4341 #line 4342 "glslang_tab.cpp" /* yacc.c:1646 */
4342 break;
4343
4344 case 16:
4345 #line 412 "glslang.y" /* yacc.c:1646 */
4346 {
4347 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double literal");
4348 if (! parseContext.symbolTable.atBuiltInLevel())
4349 parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
4350 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
4351 }
4352 #line 4353 "glslang_tab.cpp" /* yacc.c:1646 */
4353 break;
4354
4355 case 17:
4356 #line 418 "glslang.y" /* yacc.c:1646 */
4357 {
4358 parseContext.float16Check((yyvsp[0].lex).loc, "half float literal");
4359 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true);
4360 }
4361 #line 4362 "glslang_tab.cpp" /* yacc.c:1646 */
4362 break;
4363
4364 case 18:
4365 #line 426 "glslang.y" /* yacc.c:1646 */
4366 {
4367 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4368 }
4369 #line 4370 "glslang_tab.cpp" /* yacc.c:1646 */
4370 break;
4371
4372 case 19:
4373 #line 429 "glslang.y" /* yacc.c:1646 */
4374 {
4375 (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
4376 }
4377 #line 4378 "glslang_tab.cpp" /* yacc.c:1646 */
4378 break;
4379
4380 case 20:
4381 #line 432 "glslang.y" /* yacc.c:1646 */
4382 {
4383 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4384 }
4385 #line 4386 "glslang_tab.cpp" /* yacc.c:1646 */
4386 break;
4387
4388 case 21:
4389 #line 435 "glslang.y" /* yacc.c:1646 */
4390 {
4391 (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
4392 }
4393 #line 4394 "glslang_tab.cpp" /* yacc.c:1646 */
4394 break;
4395
4396 case 22:
4397 #line 438 "glslang.y" /* yacc.c:1646 */
4398 {
4399 parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
4400 parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
4401 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
4402 }
4403 #line 4404 "glslang_tab.cpp" /* yacc.c:1646 */
4404 break;
4405
4406 case 23:
4407 #line 443 "glslang.y" /* yacc.c:1646 */
4408 {
4409 parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
4410 parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
4411 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
4412 }
4413 #line 4414 "glslang_tab.cpp" /* yacc.c:1646 */
4414 break;
4415
4416 case 24:
4417 #line 451 "glslang.y" /* yacc.c:1646 */
4418 {
4419 parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
4420 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4421 }
4422 #line 4423 "glslang_tab.cpp" /* yacc.c:1646 */
4423 break;
4424
4425 case 25:
4426 #line 458 "glslang.y" /* yacc.c:1646 */
4427 {
4428 (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
4429 delete (yyvsp[0].interm).function;
4430 }
4431 #line 4432 "glslang_tab.cpp" /* yacc.c:1646 */
4432 break;
4433
4434 case 26:
4435 #line 465 "glslang.y" /* yacc.c:1646 */
4436 {
4437 (yyval.interm) = (yyvsp[0].interm);
4438 }
4439 #line 4440 "glslang_tab.cpp" /* yacc.c:1646 */
4440 break;
4441
4442 case 27:
4443 #line 471 "glslang.y" /* yacc.c:1646 */
4444 {
4445 (yyval.interm) = (yyvsp[-1].interm);
4446 (yyval.interm).loc = (yyvsp[0].lex).loc;
4447 }
4448 #line 4449 "glslang_tab.cpp" /* yacc.c:1646 */
4449 break;
4450
4451 case 28:
4452 #line 475 "glslang.y" /* yacc.c:1646 */
4453 {
4454 (yyval.interm) = (yyvsp[-1].interm);
4455 (yyval.interm).loc = (yyvsp[0].lex).loc;
4456 }
4457 #line 4458 "glslang_tab.cpp" /* yacc.c:1646 */
4458 break;
4459
4460 case 29:
4461 #line 482 "glslang.y" /* yacc.c:1646 */
4462 {
4463 (yyval.interm) = (yyvsp[-1].interm);
4464 }
4465 #line 4466 "glslang_tab.cpp" /* yacc.c:1646 */
4466 break;
4467
4468 case 30:
4469 #line 485 "glslang.y" /* yacc.c:1646 */
4470 {
4471 (yyval.interm) = (yyvsp[0].interm);
4472 }
4473 #line 4474 "glslang_tab.cpp" /* yacc.c:1646 */
4474 break;
4475
4476 case 31:
4477 #line 491 "glslang.y" /* yacc.c:1646 */
4478 {
4479 TParameter param = { 0, new TType };
4480 param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
4481 (yyvsp[-1].interm).function->addParameter(param);
4482 (yyval.interm).function = (yyvsp[-1].interm).function;
4483 (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
4484 }
4485 #line 4486 "glslang_tab.cpp" /* yacc.c:1646 */
4486 break;
4487
4488 case 32:
4489 #line 498 "glslang.y" /* yacc.c:1646 */
4490 {
4491 TParameter param = { 0, new TType };
4492 param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
4493 (yyvsp[-2].interm).function->addParameter(param);
4494 (yyval.interm).function = (yyvsp[-2].interm).function;
4495 (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
4496 }
4497 #line 4498 "glslang_tab.cpp" /* yacc.c:1646 */
4498 break;
4499
4500 case 33:
4501 #line 508 "glslang.y" /* yacc.c:1646 */
4502 {
4503 (yyval.interm) = (yyvsp[-1].interm);
4504 }
4505 #line 4506 "glslang_tab.cpp" /* yacc.c:1646 */
4506 break;
4507
4508 case 34:
4509 #line 516 "glslang.y" /* yacc.c:1646 */
4510 {
4511 // Constructor
4512 (yyval.interm).intermNode = 0;
4513 (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
4514 }
4515 #line 4516 "glslang_tab.cpp" /* yacc.c:1646 */
4516 break;
4517
4518 case 35:
4519 #line 521 "glslang.y" /* yacc.c:1646 */
4520 {
4521 //
4522 // Should be a method or subroutine call, but we haven't recognized the arguments yet.
4523 //
4524 (yyval.interm).function = 0;
4525 (yyval.interm).intermNode = 0;
4526
4527 TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode();
4528 if (method) {
4529 (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength);
4530 (yyval.interm).intermNode = method->getObject();
4531 } else {
4532 TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode();
4533 if (symbol) {
4534 parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName());
4535 TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid));
4536 (yyval.interm).function = function;
4537 } else
4538 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", "");
4539 }
4540
4541 if ((yyval.interm).function == 0) {
4542 // error recover
4543 TString* empty = NewPoolTString("");
4544 (yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull);
4545 }
4546 }
4547 #line 4548 "glslang_tab.cpp" /* yacc.c:1646 */
4548 break;
4549
4550 case 36:
4551 #line 549 "glslang.y" /* yacc.c:1646 */
4552 {
4553 // Constructor
4554 (yyval.interm).intermNode = 0;
4555 (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
4556 }
4557 #line 4558 "glslang_tab.cpp" /* yacc.c:1646 */
4558 break;
4559
4560 case 37:
4561 #line 558 "glslang.y" /* yacc.c:1646 */
4562 {
4563 parseContext.variableCheck((yyvsp[0].interm.intermTypedNode));
4564 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4565 if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
4566 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
4567 }
4568 #line 4569 "glslang_tab.cpp" /* yacc.c:1646 */
4569 break;
4570
4571 case 38:
4572 #line 564 "glslang.y" /* yacc.c:1646 */
4573 {
4574 parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode));
4575 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode));
4576 }
4577 #line 4578 "glslang_tab.cpp" /* yacc.c:1646 */
4578 break;
4579
4580 case 39:
4581 #line 568 "glslang.y" /* yacc.c:1646 */
4582 {
4583 parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode));
4584 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode));
4585 }
4586 #line 4587 "glslang_tab.cpp" /* yacc.c:1646 */
4587 break;
4588
4589 case 40:
4590 #line 572 "glslang.y" /* yacc.c:1646 */
4591 {
4592 if ((yyvsp[-1].interm).op != EOpNull) {
4593 char errorOp[2] = {0, 0};
4594 switch((yyvsp[-1].interm).op) {
4595 case EOpNegative: errorOp[0] = '-'; break;
4596 case EOpLogicalNot: errorOp[0] = '!'; break;
4597 case EOpBitwiseNot: errorOp[0] = '~'; break;
4598 default: break; // some compilers want this
4599 }
4600 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode));
4601 } else {
4602 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4603 if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
4604 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
4605 }
4606 }
4607 #line 4608 "glslang_tab.cpp" /* yacc.c:1646 */
4608 break;
4609
4610 case 41:
4611 #line 592 "glslang.y" /* yacc.c:1646 */
4612 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
4613 #line 4614 "glslang_tab.cpp" /* yacc.c:1646 */
4614 break;
4615
4616 case 42:
4617 #line 593 "glslang.y" /* yacc.c:1646 */
4618 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
4619 #line 4620 "glslang_tab.cpp" /* yacc.c:1646 */
4620 break;
4621
4622 case 43:
4623 #line 594 "glslang.y" /* yacc.c:1646 */
4624 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
4625 #line 4626 "glslang_tab.cpp" /* yacc.c:1646 */
4626 break;
4627
4628 case 44:
4629 #line 595 "glslang.y" /* yacc.c:1646 */
4630 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
4631 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
4632 #line 4633 "glslang_tab.cpp" /* yacc.c:1646 */
4633 break;
4634
4635 case 45:
4636 #line 601 "glslang.y" /* yacc.c:1646 */
4637 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4638 #line 4639 "glslang_tab.cpp" /* yacc.c:1646 */
4639 break;
4640
4641 case 46:
4642 #line 602 "glslang.y" /* yacc.c:1646 */
4643 {
4644 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4645 if ((yyval.interm.intermTypedNode) == 0)
4646 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4647 }
4648 #line 4649 "glslang_tab.cpp" /* yacc.c:1646 */
4649 break;
4650
4651 case 47:
4652 #line 607 "glslang.y" /* yacc.c:1646 */
4653 {
4654 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4655 if ((yyval.interm.intermTypedNode) == 0)
4656 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4657 }
4658 #line 4659 "glslang_tab.cpp" /* yacc.c:1646 */
4659 break;
4660
4661 case 48:
4662 #line 612 "glslang.y" /* yacc.c:1646 */
4663 {
4664 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%");
4665 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4666 if ((yyval.interm.intermTypedNode) == 0)
4667 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4668 }
4669 #line 4670 "glslang_tab.cpp" /* yacc.c:1646 */
4670 break;
4671
4672 case 49:
4673 #line 621 "glslang.y" /* yacc.c:1646 */
4674 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4675 #line 4676 "glslang_tab.cpp" /* yacc.c:1646 */
4676 break;
4677
4678 case 50:
4679 #line 622 "glslang.y" /* yacc.c:1646 */
4680 {
4681 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4682 if ((yyval.interm.intermTypedNode) == 0)
4683 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4684 }
4685 #line 4686 "glslang_tab.cpp" /* yacc.c:1646 */
4686 break;
4687
4688 case 51:
4689 #line 627 "glslang.y" /* yacc.c:1646 */
4690 {
4691 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4692 if ((yyval.interm.intermTypedNode) == 0)
4693 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4694 }
4695 #line 4696 "glslang_tab.cpp" /* yacc.c:1646 */
4696 break;
4697
4698 case 52:
4699 #line 635 "glslang.y" /* yacc.c:1646 */
4700 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4701 #line 4702 "glslang_tab.cpp" /* yacc.c:1646 */
4702 break;
4703
4704 case 53:
4705 #line 636 "glslang.y" /* yacc.c:1646 */
4706 {
4707 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left");
4708 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4709 if ((yyval.interm.intermTypedNode) == 0)
4710 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4711 }
4712 #line 4713 "glslang_tab.cpp" /* yacc.c:1646 */
4713 break;
4714
4715 case 54:
4716 #line 642 "glslang.y" /* yacc.c:1646 */
4717 {
4718 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right");
4719 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4720 if ((yyval.interm.intermTypedNode) == 0)
4721 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4722 }
4723 #line 4724 "glslang_tab.cpp" /* yacc.c:1646 */
4724 break;
4725
4726 case 55:
4727 #line 651 "glslang.y" /* yacc.c:1646 */
4728 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4729 #line 4730 "glslang_tab.cpp" /* yacc.c:1646 */
4730 break;
4731
4732 case 56:
4733 #line 652 "glslang.y" /* yacc.c:1646 */
4734 {
4735 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4736 if ((yyval.interm.intermTypedNode) == 0)
4737 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4738 }
4739 #line 4740 "glslang_tab.cpp" /* yacc.c:1646 */
4740 break;
4741
4742 case 57:
4743 #line 657 "glslang.y" /* yacc.c:1646 */
4744 {
4745 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4746 if ((yyval.interm.intermTypedNode) == 0)
4747 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4748 }
4749 #line 4750 "glslang_tab.cpp" /* yacc.c:1646 */
4750 break;
4751
4752 case 58:
4753 #line 662 "glslang.y" /* yacc.c:1646 */
4754 {
4755 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4756 if ((yyval.interm.intermTypedNode) == 0)
4757 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4758 }
4759 #line 4760 "glslang_tab.cpp" /* yacc.c:1646 */
4760 break;
4761
4762 case 59:
4763 #line 667 "glslang.y" /* yacc.c:1646 */
4764 {
4765 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4766 if ((yyval.interm.intermTypedNode) == 0)
4767 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4768 }
4769 #line 4770 "glslang_tab.cpp" /* yacc.c:1646 */
4770 break;
4771
4772 case 60:
4773 #line 675 "glslang.y" /* yacc.c:1646 */
4774 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4775 #line 4776 "glslang_tab.cpp" /* yacc.c:1646 */
4776 break;
4777
4778 case 61:
4779 #line 676 "glslang.y" /* yacc.c:1646 */
4780 {
4781 parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
4782 parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
4783 parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
4784 parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
4785 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4786 if ((yyval.interm.intermTypedNode) == 0)
4787 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4788 }
4789 #line 4790 "glslang_tab.cpp" /* yacc.c:1646 */
4790 break;
4791
4792 case 62:
4793 #line 685 "glslang.y" /* yacc.c:1646 */
4794 {
4795 parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
4796 parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
4797 parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
4798 parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
4799 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4800 if ((yyval.interm.intermTypedNode) == 0)
4801 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4802 }
4803 #line 4804 "glslang_tab.cpp" /* yacc.c:1646 */
4804 break;
4805
4806 case 63:
4807 #line 697 "glslang.y" /* yacc.c:1646 */
4808 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4809 #line 4810 "glslang_tab.cpp" /* yacc.c:1646 */
4810 break;
4811
4812 case 64:
4813 #line 698 "glslang.y" /* yacc.c:1646 */
4814 {
4815 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and");
4816 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4817 if ((yyval.interm.intermTypedNode) == 0)
4818 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4819 }
4820 #line 4821 "glslang_tab.cpp" /* yacc.c:1646 */
4821 break;
4822
4823 case 65:
4824 #line 707 "glslang.y" /* yacc.c:1646 */
4825 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4826 #line 4827 "glslang_tab.cpp" /* yacc.c:1646 */
4827 break;
4828
4829 case 66:
4830 #line 708 "glslang.y" /* yacc.c:1646 */
4831 {
4832 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or");
4833 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4834 if ((yyval.interm.intermTypedNode) == 0)
4835 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4836 }
4837 #line 4838 "glslang_tab.cpp" /* yacc.c:1646 */
4838 break;
4839
4840 case 67:
4841 #line 717 "glslang.y" /* yacc.c:1646 */
4842 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4843 #line 4844 "glslang_tab.cpp" /* yacc.c:1646 */
4844 break;
4845
4846 case 68:
4847 #line 718 "glslang.y" /* yacc.c:1646 */
4848 {
4849 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or");
4850 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4851 if ((yyval.interm.intermTypedNode) == 0)
4852 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4853 }
4854 #line 4855 "glslang_tab.cpp" /* yacc.c:1646 */
4855 break;
4856
4857 case 69:
4858 #line 727 "glslang.y" /* yacc.c:1646 */
4859 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4860 #line 4861 "glslang_tab.cpp" /* yacc.c:1646 */
4861 break;
4862
4863 case 70:
4864 #line 728 "glslang.y" /* yacc.c:1646 */
4865 {
4866 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4867 if ((yyval.interm.intermTypedNode) == 0)
4868 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4869 }
4870 #line 4871 "glslang_tab.cpp" /* yacc.c:1646 */
4871 break;
4872
4873 case 71:
4874 #line 736 "glslang.y" /* yacc.c:1646 */
4875 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4876 #line 4877 "glslang_tab.cpp" /* yacc.c:1646 */
4877 break;
4878
4879 case 72:
4880 #line 737 "glslang.y" /* yacc.c:1646 */
4881 {
4882 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4883 if ((yyval.interm.intermTypedNode) == 0)
4884 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4885 }
4886 #line 4887 "glslang_tab.cpp" /* yacc.c:1646 */
4887 break;
4888
4889 case 73:
4890 #line 745 "glslang.y" /* yacc.c:1646 */
4891 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4892 #line 4893 "glslang_tab.cpp" /* yacc.c:1646 */
4893 break;
4894
4895 case 74:
4896 #line 746 "glslang.y" /* yacc.c:1646 */
4897 {
4898 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
4899 if ((yyval.interm.intermTypedNode) == 0)
4900 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
4901 }
4902 #line 4903 "glslang_tab.cpp" /* yacc.c:1646 */
4903 break;
4904
4905 case 75:
4906 #line 754 "glslang.y" /* yacc.c:1646 */
4907 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4908 #line 4909 "glslang_tab.cpp" /* yacc.c:1646 */
4909 break;
4910
4911 case 76:
4912 #line 755 "glslang.y" /* yacc.c:1646 */
4913 {
4914 ++parseContext.controlFlowNestingLevel;
4915 }
4916 #line 4917 "glslang_tab.cpp" /* yacc.c:1646 */
4917 break;
4918
4919 case 77:
4920 #line 758 "glslang.y" /* yacc.c:1646 */
4921 {
4922 --parseContext.controlFlowNestingLevel;
4923 parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
4924 parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode));
4925 parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode));
4926 parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode));
4927 (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc);
4928 if ((yyval.interm.intermTypedNode) == 0) {
4929 parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
4930 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
4931 }
4932 }
4933 #line 4934 "glslang_tab.cpp" /* yacc.c:1646 */
4934 break;
4935
4936 case 78:
4937 #line 773 "glslang.y" /* yacc.c:1646 */
4938 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
4939 #line 4940 "glslang_tab.cpp" /* yacc.c:1646 */
4940 break;
4941
4942 case 79:
4943 #line 774 "glslang.y" /* yacc.c:1646 */
4944 {
4945 parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment");
4946 parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
4947 parseContext.storage16BitAssignmentCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
4948 parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
4949 parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode));
4950 parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode));
4951 (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].interm).loc);
4952 if ((yyval.interm.intermTypedNode) == 0) {
4953 parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
4954 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
4955 }
4956 }
4957 #line 4958 "glslang_tab.cpp" /* yacc.c:1646 */
4958 break;
4959
4960 case 80:
4961 #line 790 "glslang.y" /* yacc.c:1646 */
4962 {
4963 (yyval.interm).loc = (yyvsp[0].lex).loc;
4964 (yyval.interm).op = EOpAssign;
4965 }
4966 #line 4967 "glslang_tab.cpp" /* yacc.c:1646 */
4967 break;
4968
4969 case 81:
4970 #line 794 "glslang.y" /* yacc.c:1646 */
4971 {
4972 (yyval.interm).loc = (yyvsp[0].lex).loc;
4973 (yyval.interm).op = EOpMulAssign;
4974 }
4975 #line 4976 "glslang_tab.cpp" /* yacc.c:1646 */
4976 break;
4977
4978 case 82:
4979 #line 798 "glslang.y" /* yacc.c:1646 */
4980 {
4981 (yyval.interm).loc = (yyvsp[0].lex).loc;
4982 (yyval.interm).op = EOpDivAssign;
4983 }
4984 #line 4985 "glslang_tab.cpp" /* yacc.c:1646 */
4985 break;
4986
4987 case 83:
4988 #line 802 "glslang.y" /* yacc.c:1646 */
4989 {
4990 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
4991 (yyval.interm).loc = (yyvsp[0].lex).loc;
4992 (yyval.interm).op = EOpModAssign;
4993 }
4994 #line 4995 "glslang_tab.cpp" /* yacc.c:1646 */
4995 break;
4996
4997 case 84:
4998 #line 807 "glslang.y" /* yacc.c:1646 */
4999 {
5000 (yyval.interm).loc = (yyvsp[0].lex).loc;
5001 (yyval.interm).op = EOpAddAssign;
5002 }
5003 #line 5004 "glslang_tab.cpp" /* yacc.c:1646 */
5004 break;
5005
5006 case 85:
5007 #line 811 "glslang.y" /* yacc.c:1646 */
5008 {
5009 (yyval.interm).loc = (yyvsp[0].lex).loc;
5010 (yyval.interm).op = EOpSubAssign;
5011 }
5012 #line 5013 "glslang_tab.cpp" /* yacc.c:1646 */
5013 break;
5014
5015 case 86:
5016 #line 815 "glslang.y" /* yacc.c:1646 */
5017 {
5018 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
5019 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
5020 }
5021 #line 5022 "glslang_tab.cpp" /* yacc.c:1646 */
5022 break;
5023
5024 case 87:
5025 #line 819 "glslang.y" /* yacc.c:1646 */
5026 {
5027 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
5028 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
5029 }
5030 #line 5031 "glslang_tab.cpp" /* yacc.c:1646 */
5031 break;
5032
5033 case 88:
5034 #line 823 "glslang.y" /* yacc.c:1646 */
5035 {
5036 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
5037 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
5038 }
5039 #line 5040 "glslang_tab.cpp" /* yacc.c:1646 */
5040 break;
5041
5042 case 89:
5043 #line 827 "glslang.y" /* yacc.c:1646 */
5044 {
5045 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
5046 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
5047 }
5048 #line 5049 "glslang_tab.cpp" /* yacc.c:1646 */
5049 break;
5050
5051 case 90:
5052 #line 831 "glslang.y" /* yacc.c:1646 */
5053 {
5054 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
5055 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
5056 }
5057 #line 5058 "glslang_tab.cpp" /* yacc.c:1646 */
5058 break;
5059
5060 case 91:
5061 #line 838 "glslang.y" /* yacc.c:1646 */
5062 {
5063 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5064 }
5065 #line 5066 "glslang_tab.cpp" /* yacc.c:1646 */
5066 break;
5067
5068 case 92:
5069 #line 841 "glslang.y" /* yacc.c:1646 */
5070 {
5071 parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
5072 (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
5073 if ((yyval.interm.intermTypedNode) == 0) {
5074 parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
5075 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5076 }
5077 }
5078 #line 5079 "glslang_tab.cpp" /* yacc.c:1646 */
5079 break;
5080
5081 case 93:
5082 #line 852 "glslang.y" /* yacc.c:1646 */
5083 {
5084 parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
5085 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5086 }
5087 #line 5088 "glslang_tab.cpp" /* yacc.c:1646 */
5088 break;
5089
5090 case 94:
5091 #line 859 "glslang.y" /* yacc.c:1646 */
5092 {
5093 parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
5094 (yyval.interm.intermNode) = 0;
5095 // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
5096 }
5097 #line 5098 "glslang_tab.cpp" /* yacc.c:1646 */
5098 break;
5099
5100 case 95:
5101 #line 864 "glslang.y" /* yacc.c:1646 */
5102 {
5103 if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate())
5104 (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
5105 (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
5106 }
5107 #line 5108 "glslang_tab.cpp" /* yacc.c:1646 */
5108 break;
5109
5110 case 96:
5111 #line 869 "glslang.y" /* yacc.c:1646 */
5112 {
5113 parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
5114 // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
5115 parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]);
5116 parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
5117 (yyval.interm.intermNode) = 0;
5118 }
5119 #line 5120 "glslang_tab.cpp" /* yacc.c:1646 */
5120 break;
5121
5122 case 97:
5123 #line 876 "glslang.y" /* yacc.c:1646 */
5124 {
5125 parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
5126 (yyval.interm.intermNode) = 0;
5127 }
5128 #line 5129 "glslang_tab.cpp" /* yacc.c:1646 */
5129 break;
5130
5131 case 98:
5132 #line 880 "glslang.y" /* yacc.c:1646 */
5133 {
5134 parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
5135 (yyval.interm.intermNode) = 0;
5136 }
5137 #line 5138 "glslang_tab.cpp" /* yacc.c:1646 */
5138 break;
5139
5140 case 99:
5141 #line 884 "glslang.y" /* yacc.c:1646 */
5142 {
5143 parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
5144 (yyval.interm.intermNode) = 0;
5145 }
5146 #line 5147 "glslang_tab.cpp" /* yacc.c:1646 */
5147 break;
5148
5149 case 100:
5150 #line 888 "glslang.y" /* yacc.c:1646 */
5151 {
5152 parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
5153 parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
5154 (yyval.interm.intermNode) = 0;
5155 }
5156 #line 5157 "glslang_tab.cpp" /* yacc.c:1646 */
5157 break;
5158
5159 case 101:
5160 #line 893 "glslang.y" /* yacc.c:1646 */
5161 {
5162 parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
5163 parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
5164 (yyval.interm.intermNode) = 0;
5165 }
5166 #line 5167 "glslang_tab.cpp" /* yacc.c:1646 */
5167 break;
5168
5169 case 102:
5170 #line 898 "glslang.y" /* yacc.c:1646 */
5171 {
5172 parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
5173 (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string);
5174 parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
5175 (yyval.interm.intermNode) = 0;
5176 }
5177 #line 5178 "glslang_tab.cpp" /* yacc.c:1646 */
5178 break;
5179
5180 case 103:
5181 #line 907 "glslang.y" /* yacc.c:1646 */
5182 { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
5183 #line 5184 "glslang_tab.cpp" /* yacc.c:1646 */
5184 break;
5185
5186 case 104:
5187 #line 907 "glslang.y" /* yacc.c:1646 */
5188 {
5189 --parseContext.structNestingLevel;
5190 parseContext.blockName = (yyvsp[-4].lex).string;
5191 parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier);
5192 parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers);
5193 parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier;
5194 (yyval.interm).loc = (yyvsp[-5].interm.type).loc;
5195 (yyval.interm).typeList = (yyvsp[-1].interm.typeList);
5196 }
5197 #line 5198 "glslang_tab.cpp" /* yacc.c:1646 */
5198 break;
5199
5200 case 105:
5201 #line 918 "glslang.y" /* yacc.c:1646 */
5202 {
5203 (yyval.interm.identifierList) = new TIdentifierList;
5204 (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
5205 }
5206 #line 5207 "glslang_tab.cpp" /* yacc.c:1646 */
5207 break;
5208
5209 case 106:
5210 #line 922 "glslang.y" /* yacc.c:1646 */
5211 {
5212 (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
5213 (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
5214 }
5215 #line 5216 "glslang_tab.cpp" /* yacc.c:1646 */
5216 break;
5217
5218 case 107:
5219 #line 929 "glslang.y" /* yacc.c:1646 */
5220 {
5221 (yyval.interm).function = (yyvsp[-1].interm.function);
5222 (yyval.interm).loc = (yyvsp[0].lex).loc;
5223 }
5224 #line 5225 "glslang_tab.cpp" /* yacc.c:1646 */
5225 break;
5226
5227 case 108:
5228 #line 936 "glslang.y" /* yacc.c:1646 */
5229 {
5230 (yyval.interm.function) = (yyvsp[0].interm.function);
5231 }
5232 #line 5233 "glslang_tab.cpp" /* yacc.c:1646 */
5233 break;
5234
5235 case 109:
5236 #line 939 "glslang.y" /* yacc.c:1646 */
5237 {
5238 (yyval.interm.function) = (yyvsp[0].interm.function);
5239 }
5240 #line 5241 "glslang_tab.cpp" /* yacc.c:1646 */
5241 break;
5242
5243 case 110:
5244 #line 946 "glslang.y" /* yacc.c:1646 */
5245 {
5246 // Add the parameter
5247 (yyval.interm.function) = (yyvsp[-1].interm.function);
5248 if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid)
5249 (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param);
5250 else
5251 delete (yyvsp[0].interm).param.type;
5252 }
5253 #line 5254 "glslang_tab.cpp" /* yacc.c:1646 */
5254 break;
5255
5256 case 111:
5257 #line 954 "glslang.y" /* yacc.c:1646 */
5258 {
5259 //
5260 // Only first parameter of one-parameter functions can be void
5261 // The check for named parameters not being void is done in parameter_declarator
5262 //
5263 if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) {
5264 //
5265 // This parameter > first is void
5266 //
5267 parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", "");
5268 delete (yyvsp[0].interm).param.type;
5269 } else {
5270 // Add the parameter
5271 (yyval.interm.function) = (yyvsp[-2].interm.function);
5272 (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
5273 }
5274 }
5275 #line 5276 "glslang_tab.cpp" /* yacc.c:1646 */
5276 break;
5277
5278 case 112:
5279 #line 974 "glslang.y" /* yacc.c:1646 */
5280 {
5281 if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
5282 parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
5283 GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), "");
5284 }
5285 if ((yyvsp[-2].interm.type).arraySizes)
5286 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
5287
5288 // Add the function as a prototype after parsing it (we do not support recursion)
5289 TFunction *function;
5290 TType type((yyvsp[-2].interm.type));
5291
5292 // Potentially rename shader entry point function. No-op most of the time.
5293 parseContext.renameShaderFunction((yyvsp[-1].lex).string);
5294
5295 // Make the function
5296 function = new TFunction((yyvsp[-1].lex).string, type);
5297 (yyval.interm.function) = function;
5298 }
5299 #line 5300 "glslang_tab.cpp" /* yacc.c:1646 */
5300 break;
5301
5302 case 113:
5303 #line 997 "glslang.y" /* yacc.c:1646 */
5304 {
5305 if ((yyvsp[-1].interm.type).arraySizes) {
5306 parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5307 parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5308 parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes);
5309 }
5310 if ((yyvsp[-1].interm.type).basicType == EbtVoid) {
5311 parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), "");
5312 }
5313 parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string);
5314
5315 TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))};
5316 (yyval.interm).loc = (yyvsp[0].lex).loc;
5317 (yyval.interm).param = param;
5318 }
5319 #line 5320 "glslang_tab.cpp" /* yacc.c:1646 */
5320 break;
5321
5322 case 114:
5323 #line 1012 "glslang.y" /* yacc.c:1646 */
5324 {
5325 if ((yyvsp[-2].interm.type).arraySizes) {
5326 parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5327 parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5328 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
5329 }
5330 TType* type = new TType((yyvsp[-2].interm.type));
5331 type->transferArraySizes((yyvsp[0].interm).arraySizes);
5332 type->copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
5333
5334 parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, type->getArraySizes());
5335 parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes);
5336 parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string);
5337
5338 TParameter param = { (yyvsp[-1].lex).string, type };
5339
5340 (yyval.interm).loc = (yyvsp[-1].lex).loc;
5341 (yyval.interm).param = param;
5342 }
5343 #line 5344 "glslang_tab.cpp" /* yacc.c:1646 */
5344 break;
5345
5346 case 115:
5347 #line 1037 "glslang.y" /* yacc.c:1646 */
5348 {
5349 (yyval.interm) = (yyvsp[0].interm);
5350 if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
5351 (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
5352 parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5353
5354 parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5355 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
5356 parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
5357
5358 }
5359 #line 5360 "glslang_tab.cpp" /* yacc.c:1646 */
5360 break;
5361
5362 case 116:
5363 #line 1048 "glslang.y" /* yacc.c:1646 */
5364 {
5365 (yyval.interm) = (yyvsp[0].interm);
5366
5367 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
5368 parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
5369 parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5370 }
5371 #line 5372 "glslang_tab.cpp" /* yacc.c:1646 */
5372 break;
5373
5374 case 117:
5375 #line 1058 "glslang.y" /* yacc.c:1646 */
5376 {
5377 (yyval.interm) = (yyvsp[0].interm);
5378 if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
5379 (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
5380 parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5381
5382 parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5383 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
5384 parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
5385 }
5386 #line 5387 "glslang_tab.cpp" /* yacc.c:1646 */
5387 break;
5388
5389 case 118:
5390 #line 1068 "glslang.y" /* yacc.c:1646 */
5391 {
5392 (yyval.interm) = (yyvsp[0].interm);
5393
5394 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
5395 parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
5396 parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
5397 }
5398 #line 5399 "glslang_tab.cpp" /* yacc.c:1646 */
5399 break;
5400
5401 case 119:
5402 #line 1078 "glslang.y" /* yacc.c:1646 */
5403 {
5404 TParameter param = { 0, new TType((yyvsp[0].interm.type)) };
5405 (yyval.interm).param = param;
5406 if ((yyvsp[0].interm.type).arraySizes)
5407 parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
5408 }
5409 #line 5410 "glslang_tab.cpp" /* yacc.c:1646 */
5410 break;
5411
5412 case 120:
5413 #line 1087 "glslang.y" /* yacc.c:1646 */
5414 {
5415 (yyval.interm) = (yyvsp[0].interm);
5416 }
5417 #line 5418 "glslang_tab.cpp" /* yacc.c:1646 */
5418 break;
5419
5420 case 121:
5421 #line 1090 "glslang.y" /* yacc.c:1646 */
5422 {
5423 (yyval.interm) = (yyvsp[-2].interm);
5424 parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
5425 }
5426 #line 5427 "glslang_tab.cpp" /* yacc.c:1646 */
5427 break;
5428
5429 case 122:
5430 #line 1094 "glslang.y" /* yacc.c:1646 */
5431 {
5432 (yyval.interm) = (yyvsp[-3].interm);
5433 parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
5434 }
5435 #line 5436 "glslang_tab.cpp" /* yacc.c:1646 */
5436 break;
5437
5438 case 123:
5439 #line 1098 "glslang.y" /* yacc.c:1646 */
5440 {
5441 (yyval.interm).type = (yyvsp[-5].interm).type;
5442 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
5443 (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
5444 }
5445 #line 5446 "glslang_tab.cpp" /* yacc.c:1646 */
5446 break;
5447
5448 case 124:
5449 #line 1103 "glslang.y" /* yacc.c:1646 */
5450 {
5451 (yyval.interm).type = (yyvsp[-4].interm).type;
5452 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
5453 (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
5454 }
5455 #line 5456 "glslang_tab.cpp" /* yacc.c:1646 */
5456 break;
5457
5458 case 125:
5459 #line 1111 "glslang.y" /* yacc.c:1646 */
5460 {
5461 (yyval.interm).type = (yyvsp[0].interm.type);
5462 (yyval.interm).intermNode = 0;
5463
5464 parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
5465
5466 }
5467 #line 5468 "glslang_tab.cpp" /* yacc.c:1646 */
5468 break;
5469
5470 case 126:
5471 #line 1118 "glslang.y" /* yacc.c:1646 */
5472 {
5473 (yyval.interm).type = (yyvsp[-1].interm.type);
5474 (yyval.interm).intermNode = 0;
5475 parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
5476 }
5477 #line 5478 "glslang_tab.cpp" /* yacc.c:1646 */
5478 break;
5479
5480 case 127:
5481 #line 1123 "glslang.y" /* yacc.c:1646 */
5482 {
5483 (yyval.interm).type = (yyvsp[-2].interm.type);
5484 (yyval.interm).intermNode = 0;
5485 parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
5486 }
5487 #line 5488 "glslang_tab.cpp" /* yacc.c:1646 */
5488 break;
5489
5490 case 128:
5491 #line 1128 "glslang.y" /* yacc.c:1646 */
5492 {
5493 (yyval.interm).type = (yyvsp[-4].interm.type);
5494 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
5495 (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
5496 }
5497 #line 5498 "glslang_tab.cpp" /* yacc.c:1646 */
5498 break;
5499
5500 case 129:
5501 #line 1133 "glslang.y" /* yacc.c:1646 */
5502 {
5503 (yyval.interm).type = (yyvsp[-3].interm.type);
5504 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
5505 (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
5506 }
5507 #line 5508 "glslang_tab.cpp" /* yacc.c:1646 */
5508 break;
5509
5510 case 130:
5511 #line 1142 "glslang.y" /* yacc.c:1646 */
5512 {
5513 (yyval.interm.type) = (yyvsp[0].interm.type);
5514
5515 parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type));
5516 if ((yyvsp[0].interm.type).arraySizes) {
5517 parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5518 parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5519 }
5520 parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
5521 }
5522 #line 5523 "glslang_tab.cpp" /* yacc.c:1646 */
5523 break;
5524
5525 case 131:
5526 #line 1152 "glslang.y" /* yacc.c:1646 */
5527 {
5528 parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
5529 parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
5530
5531 if ((yyvsp[0].interm.type).arraySizes) {
5532 parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
5533 parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
5534 }
5535
5536 if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier))
5537 (yyvsp[0].interm.type).arraySizes = nullptr;
5538
5539 parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
5540 (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers);
5541 parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true);
5542 parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier);
5543
5544 (yyval.interm.type) = (yyvsp[0].interm.type);
5545
5546 if (! (yyval.interm.type).qualifier.isInterpolation() &&
5547 ((parseContext.language == EShLangVertex && (yyval.interm.type).qualifier.storage == EvqVaryingOut) ||
5548 (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
5549 (yyval.interm.type).qualifier.smooth = true;
5550 }
5551 #line 5552 "glslang_tab.cpp" /* yacc.c:1646 */
5552 break;
5553
5554 case 132:
5555 #line 1179 "glslang.y" /* yacc.c:1646 */
5556 {
5557 parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
5558 parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
5559 (yyval.interm.type).init((yyvsp[0].lex).loc);
5560 (yyval.interm.type).qualifier.invariant = true;
5561 }
5562 #line 5563 "glslang_tab.cpp" /* yacc.c:1646 */
5563 break;
5564
5565 case 133:
5566 #line 1188 "glslang.y" /* yacc.c:1646 */
5567 {
5568 parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
5569 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
5570 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth");
5571 (yyval.interm.type).init((yyvsp[0].lex).loc);
5572 (yyval.interm.type).qualifier.smooth = true;
5573 }
5574 #line 5575 "glslang_tab.cpp" /* yacc.c:1646 */
5575 break;
5576
5577 case 134:
5578 #line 1195 "glslang.y" /* yacc.c:1646 */
5579 {
5580 parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
5581 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
5582 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat");
5583 (yyval.interm.type).init((yyvsp[0].lex).loc);
5584 (yyval.interm.type).qualifier.flat = true;
5585 }
5586 #line 5587 "glslang_tab.cpp" /* yacc.c:1646 */
5587 break;
5588
5589 case 135:
5590 #line 1203 "glslang.y" /* yacc.c:1646 */
5591 {
5592 parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
5593 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
5594 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective");
5595 (yyval.interm.type).init((yyvsp[0].lex).loc);
5596 (yyval.interm.type).qualifier.nopersp = true;
5597 }
5598 #line 5599 "glslang_tab.cpp" /* yacc.c:1646 */
5599 break;
5600
5601 case 136:
5602 #line 1210 "glslang.y" /* yacc.c:1646 */
5603 {
5604 parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD");
5605 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
5606 parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
5607 (yyval.interm.type).init((yyvsp[0].lex).loc);
5608 (yyval.interm.type).qualifier.explicitInterp = true;
5609 }
5610 #line 5611 "glslang_tab.cpp" /* yacc.c:1646 */
5611 break;
5612
5613 case 137:
5614 #line 1217 "glslang.y" /* yacc.c:1646 */
5615 {
5616 parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV");
5617 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
5618 parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
5619 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
5620 (yyval.interm.type).init((yyvsp[0].lex).loc);
5621 (yyval.interm.type).qualifier.pervertexNV = true;
5622 }
5623 #line 5624 "glslang_tab.cpp" /* yacc.c:1646 */
5624 break;
5625
5626 case 138:
5627 #line 1225 "glslang.y" /* yacc.c:1646 */
5628 {
5629 // No need for profile version or extension check. Shader stage already checks both.
5630 parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV");
5631 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshNVMask), "perprimitiveNV");
5632 // Fragment shader stage doesn't check for extension. So we explicitly add below extension check.
5633 if (parseContext.language == EShLangFragment)
5634 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_NV_mesh_shader, "perprimitiveNV");
5635 (yyval.interm.type).init((yyvsp[0].lex).loc);
5636 (yyval.interm.type).qualifier.perPrimitiveNV = true;
5637 }
5638 #line 5639 "glslang_tab.cpp" /* yacc.c:1646 */
5639 break;
5640
5641 case 139:
5642 #line 1235 "glslang.y" /* yacc.c:1646 */
5643 {
5644 // No need for profile version or extension check. Shader stage already checks both.
5645 parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV");
5646 parseContext.requireStage((yyvsp[0].lex).loc, EShLangMeshNV, "perviewNV");
5647 (yyval.interm.type).init((yyvsp[0].lex).loc);
5648 (yyval.interm.type).qualifier.perViewNV = true;
5649 }
5650 #line 5651 "glslang_tab.cpp" /* yacc.c:1646 */
5651 break;
5652
5653 case 140:
5654 #line 1242 "glslang.y" /* yacc.c:1646 */
5655 {
5656 // No need for profile version or extension check. Shader stage already checks both.
5657 parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV");
5658 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "taskNV");
5659 (yyval.interm.type).init((yyvsp[0].lex).loc);
5660 (yyval.interm.type).qualifier.perTaskNV = true;
5661 }
5662 #line 5663 "glslang_tab.cpp" /* yacc.c:1646 */
5663 break;
5664
5665 case 141:
5666 #line 1253 "glslang.y" /* yacc.c:1646 */
5667 {
5668 (yyval.interm.type) = (yyvsp[-1].interm.type);
5669 }
5670 #line 5671 "glslang_tab.cpp" /* yacc.c:1646 */
5671 break;
5672
5673 case 142:
5674 #line 1259 "glslang.y" /* yacc.c:1646 */
5675 {
5676 (yyval.interm.type) = (yyvsp[0].interm.type);
5677 }
5678 #line 5679 "glslang_tab.cpp" /* yacc.c:1646 */
5679 break;
5680
5681 case 143:
5682 #line 1262 "glslang.y" /* yacc.c:1646 */
5683 {
5684 (yyval.interm.type) = (yyvsp[-2].interm.type);
5685 (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
5686 parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
5687 }
5688 #line 5689 "glslang_tab.cpp" /* yacc.c:1646 */
5689 break;
5690
5691 case 144:
5692 #line 1269 "glslang.y" /* yacc.c:1646 */
5693 {
5694 (yyval.interm.type).init((yyvsp[0].lex).loc);
5695 parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
5696 }
5697 #line 5698 "glslang_tab.cpp" /* yacc.c:1646 */
5698 break;
5699
5700 case 145:
5701 #line 1273 "glslang.y" /* yacc.c:1646 */
5702 {
5703 (yyval.interm.type).init((yyvsp[-2].lex).loc);
5704 parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode));
5705 }
5706 #line 5707 "glslang_tab.cpp" /* yacc.c:1646 */
5707 break;
5708
5709 case 146:
5710 #line 1277 "glslang.y" /* yacc.c:1646 */
5711 { // because "shared" is both an identifier and a keyword
5712 (yyval.interm.type).init((yyvsp[0].lex).loc);
5713 TString strShared("shared");
5714 parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
5715 }
5716 #line 5717 "glslang_tab.cpp" /* yacc.c:1646 */
5717 break;
5718
5719 case 147:
5720 #line 1286 "glslang.y" /* yacc.c:1646 */
5721 {
5722 parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
5723 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
5724 (yyval.interm.type).init((yyvsp[0].lex).loc);
5725 (yyval.interm.type).qualifier.noContraction = true;
5726 }
5727 #line 5728 "glslang_tab.cpp" /* yacc.c:1646 */
5728 break;
5729
5730 case 148:
5731 #line 1296 "glslang.y" /* yacc.c:1646 */
5732 {
5733 (yyval.interm.type) = (yyvsp[0].interm.type);
5734 }
5735 #line 5736 "glslang_tab.cpp" /* yacc.c:1646 */
5736 break;
5737
5738 case 149:
5739 #line 1299 "glslang.y" /* yacc.c:1646 */
5740 {
5741 (yyval.interm.type) = (yyvsp[-1].interm.type);
5742 if ((yyval.interm.type).basicType == EbtVoid)
5743 (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType;
5744
5745 (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
5746 parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
5747 }
5748 #line 5749 "glslang_tab.cpp" /* yacc.c:1646 */
5749 break;
5750
5751 case 150:
5752 #line 1310 "glslang.y" /* yacc.c:1646 */
5753 {
5754 (yyval.interm.type) = (yyvsp[0].interm.type);
5755 }
5756 #line 5757 "glslang_tab.cpp" /* yacc.c:1646 */
5757 break;
5758
5759 case 151:
5760 #line 1313 "glslang.y" /* yacc.c:1646 */
5761 {
5762 (yyval.interm.type) = (yyvsp[0].interm.type);
5763 }
5764 #line 5765 "glslang_tab.cpp" /* yacc.c:1646 */
5765 break;
5766
5767 case 152:
5768 #line 1316 "glslang.y" /* yacc.c:1646 */
5769 {
5770 parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
5771 (yyval.interm.type) = (yyvsp[0].interm.type);
5772 }
5773 #line 5774 "glslang_tab.cpp" /* yacc.c:1646 */
5774 break;
5775
5776 case 153:
5777 #line 1320 "glslang.y" /* yacc.c:1646 */
5778 {
5779 // allow inheritance of storage qualifier from block declaration
5780 (yyval.interm.type) = (yyvsp[0].interm.type);
5781 }
5782 #line 5783 "glslang_tab.cpp" /* yacc.c:1646 */
5783 break;
5784
5785 case 154:
5786 #line 1324 "glslang.y" /* yacc.c:1646 */
5787 {
5788 // allow inheritance of storage qualifier from block declaration
5789 (yyval.interm.type) = (yyvsp[0].interm.type);
5790 }
5791 #line 5792 "glslang_tab.cpp" /* yacc.c:1646 */
5792 break;
5793
5794 case 155:
5795 #line 1329 "glslang.y" /* yacc.c:1646 */
5796 {
5797 // allow inheritance of storage qualifier from block declaration
5798 (yyval.interm.type) = (yyvsp[0].interm.type);
5799 }
5800 #line 5801 "glslang_tab.cpp" /* yacc.c:1646 */
5801 break;
5802
5803 case 156:
5804 #line 1333 "glslang.y" /* yacc.c:1646 */
5805 {
5806 (yyval.interm.type) = (yyvsp[0].interm.type);
5807 }
5808 #line 5809 "glslang_tab.cpp" /* yacc.c:1646 */
5809 break;
5810
5811 case 157:
5812 #line 1340 "glslang.y" /* yacc.c:1646 */
5813 {
5814 (yyval.interm.type).init((yyvsp[0].lex).loc);
5815 (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant
5816 }
5817 #line 5818 "glslang_tab.cpp" /* yacc.c:1646 */
5818 break;
5819
5820 case 158:
5821 #line 1344 "glslang.y" /* yacc.c:1646 */
5822 {
5823 parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
5824 (yyval.interm.type).init((yyvsp[0].lex).loc);
5825 (yyval.interm.type).qualifier.storage = EvqInOut;
5826 }
5827 #line 5828 "glslang_tab.cpp" /* yacc.c:1646 */
5828 break;
5829
5830 case 159:
5831 #line 1349 "glslang.y" /* yacc.c:1646 */
5832 {
5833 parseContext.globalCheck((yyvsp[0].lex).loc, "in");
5834 (yyval.interm.type).init((yyvsp[0].lex).loc);
5835 // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
5836 (yyval.interm.type).qualifier.storage = EvqIn;
5837 }
5838 #line 5839 "glslang_tab.cpp" /* yacc.c:1646 */
5839 break;
5840
5841 case 160:
5842 #line 1355 "glslang.y" /* yacc.c:1646 */
5843 {
5844 parseContext.globalCheck((yyvsp[0].lex).loc, "out");
5845 (yyval.interm.type).init((yyvsp[0].lex).loc);
5846 // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
5847 (yyval.interm.type).qualifier.storage = EvqOut;
5848 }
5849 #line 5850 "glslang_tab.cpp" /* yacc.c:1646 */
5850 break;
5851
5852 case 161:
5853 #line 1361 "glslang.y" /* yacc.c:1646 */
5854 {
5855 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
5856 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
5857 parseContext.globalCheck((yyvsp[0].lex).loc, "centroid");
5858 (yyval.interm.type).init((yyvsp[0].lex).loc);
5859 (yyval.interm.type).qualifier.centroid = true;
5860 }
5861 #line 5862 "glslang_tab.cpp" /* yacc.c:1646 */
5862 break;
5863
5864 case 162:
5865 #line 1368 "glslang.y" /* yacc.c:1646 */
5866 {
5867 parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
5868 (yyval.interm.type).init((yyvsp[0].lex).loc);
5869 (yyval.interm.type).qualifier.storage = EvqUniform;
5870 }
5871 #line 5872 "glslang_tab.cpp" /* yacc.c:1646 */
5872 break;
5873
5874 case 163:
5875 #line 1373 "glslang.y" /* yacc.c:1646 */
5876 {
5877 parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
5878 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
5879 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared");
5880 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared");
5881 (yyval.interm.type).init((yyvsp[0].lex).loc);
5882 (yyval.interm.type).qualifier.storage = EvqShared;
5883 }
5884 #line 5885 "glslang_tab.cpp" /* yacc.c:1646 */
5885 break;
5886
5887 case 164:
5888 #line 1381 "glslang.y" /* yacc.c:1646 */
5889 {
5890 parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
5891 (yyval.interm.type).init((yyvsp[0].lex).loc);
5892 (yyval.interm.type).qualifier.storage = EvqBuffer;
5893 }
5894 #line 5895 "glslang_tab.cpp" /* yacc.c:1646 */
5895 break;
5896
5897 case 165:
5898 #line 1387 "glslang.y" /* yacc.c:1646 */
5899 {
5900 parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
5901 parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
5902 parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute");
5903 parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute");
5904 parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute");
5905
5906 parseContext.globalCheck((yyvsp[0].lex).loc, "attribute");
5907
5908 (yyval.interm.type).init((yyvsp[0].lex).loc);
5909 (yyval.interm.type).qualifier.storage = EvqVaryingIn;
5910 }
5911 #line 5912 "glslang_tab.cpp" /* yacc.c:1646 */
5912 break;
5913
5914 case 166:
5915 #line 1399 "glslang.y" /* yacc.c:1646 */
5916 {
5917 parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
5918 parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
5919 parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying");
5920 parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying");
5921
5922 parseContext.globalCheck((yyvsp[0].lex).loc, "varying");
5923
5924 (yyval.interm.type).init((yyvsp[0].lex).loc);
5925 if (parseContext.language == EShLangVertex)
5926 (yyval.interm.type).qualifier.storage = EvqVaryingOut;
5927 else
5928 (yyval.interm.type).qualifier.storage = EvqVaryingIn;
5929 }
5930 #line 5931 "glslang_tab.cpp" /* yacc.c:1646 */
5931 break;
5932
5933 case 167:
5934 #line 1413 "glslang.y" /* yacc.c:1646 */
5935 {
5936 parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
5937 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
5938 (yyval.interm.type).init((yyvsp[0].lex).loc);
5939 (yyval.interm.type).qualifier.patch = true;
5940 }
5941 #line 5942 "glslang_tab.cpp" /* yacc.c:1646 */
5942 break;
5943
5944 case 168:
5945 #line 1419 "glslang.y" /* yacc.c:1646 */
5946 {
5947 parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
5948 (yyval.interm.type).init((yyvsp[0].lex).loc);
5949 (yyval.interm.type).qualifier.sample = true;
5950 }
5951 #line 5952 "glslang_tab.cpp" /* yacc.c:1646 */
5952 break;
5953
5954 case 169:
5955 #line 1424 "glslang.y" /* yacc.c:1646 */
5956 {
5957 parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
5958 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
5959 | EShLangAnyHitMask), "hitAttributeNV");
5960 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV");
5961 (yyval.interm.type).init((yyvsp[0].lex).loc);
5962 (yyval.interm.type).qualifier.storage = EvqHitAttr;
5963 }
5964 #line 5965 "glslang_tab.cpp" /* yacc.c:1646 */
5965 break;
5966
5967 case 170:
5968 #line 1432 "glslang.y" /* yacc.c:1646 */
5969 {
5970 parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeEXT");
5971 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
5972 | EShLangAnyHitMask), "hitAttributeEXT");
5973 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "hitAttributeNV");
5974 (yyval.interm.type).init((yyvsp[0].lex).loc);
5975 (yyval.interm.type).qualifier.storage = EvqHitAttr;
5976 }
5977 #line 5978 "glslang_tab.cpp" /* yacc.c:1646 */
5978 break;
5979
5980 case 171:
5981 #line 1440 "glslang.y" /* yacc.c:1646 */
5982 {
5983 parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV");
5984 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
5985 EShLangAnyHitMask | EShLangMissMask), "rayPayloadNV");
5986 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV");
5987 (yyval.interm.type).init((yyvsp[0].lex).loc);
5988 (yyval.interm.type).qualifier.storage = EvqPayload;
5989 }
5990 #line 5991 "glslang_tab.cpp" /* yacc.c:1646 */
5991 break;
5992
5993 case 172:
5994 #line 1448 "glslang.y" /* yacc.c:1646 */
5995 {
5996 parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadEXT");
5997 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
5998 EShLangAnyHitMask | EShLangMissMask), "rayPayloadEXT");
5999 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadEXT");
6000 (yyval.interm.type).init((yyvsp[0].lex).loc);
6001 (yyval.interm.type).qualifier.storage = EvqPayload;
6002 }
6003 #line 6004 "glslang_tab.cpp" /* yacc.c:1646 */
6004 break;
6005
6006 case 173:
6007 #line 1456 "glslang.y" /* yacc.c:1646 */
6008 {
6009 parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV");
6010 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
6011 EShLangAnyHitMask | EShLangMissMask), "rayPayloadInNV");
6012 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV");
6013 (yyval.interm.type).init((yyvsp[0].lex).loc);
6014 (yyval.interm.type).qualifier.storage = EvqPayloadIn;
6015 }
6016 #line 6017 "glslang_tab.cpp" /* yacc.c:1646 */
6017 break;
6018
6019 case 174:
6020 #line 1464 "glslang.y" /* yacc.c:1646 */
6021 {
6022 parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInEXT");
6023 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
6024 EShLangAnyHitMask | EShLangMissMask), "rayPayloadInEXT");
6025 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadInEXT");
6026 (yyval.interm.type).init((yyvsp[0].lex).loc);
6027 (yyval.interm.type).qualifier.storage = EvqPayloadIn;
6028 }
6029 #line 6030 "glslang_tab.cpp" /* yacc.c:1646 */
6030 break;
6031
6032 case 175:
6033 #line 1472 "glslang.y" /* yacc.c:1646 */
6034 {
6035 parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV");
6036 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
6037 EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataNV");
6038 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV");
6039 (yyval.interm.type).init((yyvsp[0].lex).loc);
6040 (yyval.interm.type).qualifier.storage = EvqCallableData;
6041 }
6042 #line 6043 "glslang_tab.cpp" /* yacc.c:1646 */
6043 break;
6044
6045 case 176:
6046 #line 1480 "glslang.y" /* yacc.c:1646 */
6047 {
6048 parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataEXT");
6049 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
6050 EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataEXT");
6051 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataEXT");
6052 (yyval.interm.type).init((yyvsp[0].lex).loc);
6053 (yyval.interm.type).qualifier.storage = EvqCallableData;
6054 }
6055 #line 6056 "glslang_tab.cpp" /* yacc.c:1646 */
6056 break;
6057
6058 case 177:
6059 #line 1488 "glslang.y" /* yacc.c:1646 */
6060 {
6061 parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV");
6062 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV");
6063 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV");
6064 (yyval.interm.type).init((yyvsp[0].lex).loc);
6065 (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
6066 }
6067 #line 6068 "glslang_tab.cpp" /* yacc.c:1646 */
6068 break;
6069
6070 case 178:
6071 #line 1495 "glslang.y" /* yacc.c:1646 */
6072 {
6073 parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInEXT");
6074 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInEXT");
6075 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataInEXT");
6076 (yyval.interm.type).init((yyvsp[0].lex).loc);
6077 (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
6078 }
6079 #line 6080 "glslang_tab.cpp" /* yacc.c:1646 */
6080 break;
6081
6082 case 179:
6083 #line 1502 "glslang.y" /* yacc.c:1646 */
6084 {
6085 (yyval.interm.type).init((yyvsp[0].lex).loc);
6086 (yyval.interm.type).qualifier.coherent = true;
6087 }
6088 #line 6089 "glslang_tab.cpp" /* yacc.c:1646 */
6089 break;
6090
6091 case 180:
6092 #line 1506 "glslang.y" /* yacc.c:1646 */
6093 {
6094 (yyval.interm.type).init((yyvsp[0].lex).loc);
6095 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
6096 (yyval.interm.type).qualifier.devicecoherent = true;
6097 }
6098 #line 6099 "glslang_tab.cpp" /* yacc.c:1646 */
6099 break;
6100
6101 case 181:
6102 #line 1511 "glslang.y" /* yacc.c:1646 */
6103 {
6104 (yyval.interm.type).init((yyvsp[0].lex).loc);
6105 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent");
6106 (yyval.interm.type).qualifier.queuefamilycoherent = true;
6107 }
6108 #line 6109 "glslang_tab.cpp" /* yacc.c:1646 */
6109 break;
6110
6111 case 182:
6112 #line 1516 "glslang.y" /* yacc.c:1646 */
6113 {
6114 (yyval.interm.type).init((yyvsp[0].lex).loc);
6115 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent");
6116 (yyval.interm.type).qualifier.workgroupcoherent = true;
6117 }
6118 #line 6119 "glslang_tab.cpp" /* yacc.c:1646 */
6119 break;
6120
6121 case 183:
6122 #line 1521 "glslang.y" /* yacc.c:1646 */
6123 {
6124 (yyval.interm.type).init((yyvsp[0].lex).loc);
6125 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent");
6126 (yyval.interm.type).qualifier.subgroupcoherent = true;
6127 }
6128 #line 6129 "glslang_tab.cpp" /* yacc.c:1646 */
6129 break;
6130
6131 case 184:
6132 #line 1526 "glslang.y" /* yacc.c:1646 */
6133 {
6134 (yyval.interm.type).init((yyvsp[0].lex).loc);
6135 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate");
6136 (yyval.interm.type).qualifier.nonprivate = true;
6137 }
6138 #line 6139 "glslang_tab.cpp" /* yacc.c:1646 */
6139 break;
6140
6141 case 185:
6142 #line 1531 "glslang.y" /* yacc.c:1646 */
6143 {
6144 (yyval.interm.type).init((yyvsp[0].lex).loc);
6145 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
6146 (yyval.interm.type).qualifier.shadercallcoherent = true;
6147 }
6148 #line 6149 "glslang_tab.cpp" /* yacc.c:1646 */
6149 break;
6150
6151 case 186:
6152 #line 1536 "glslang.y" /* yacc.c:1646 */
6153 {
6154 (yyval.interm.type).init((yyvsp[0].lex).loc);
6155 (yyval.interm.type).qualifier.volatil = true;
6156 }
6157 #line 6158 "glslang_tab.cpp" /* yacc.c:1646 */
6158 break;
6159
6160 case 187:
6161 #line 1540 "glslang.y" /* yacc.c:1646 */
6162 {
6163 (yyval.interm.type).init((yyvsp[0].lex).loc);
6164 (yyval.interm.type).qualifier.restrict = true;
6165 }
6166 #line 6167 "glslang_tab.cpp" /* yacc.c:1646 */
6167 break;
6168
6169 case 188:
6170 #line 1544 "glslang.y" /* yacc.c:1646 */
6171 {
6172 (yyval.interm.type).init((yyvsp[0].lex).loc);
6173 (yyval.interm.type).qualifier.readonly = true;
6174 }
6175 #line 6176 "glslang_tab.cpp" /* yacc.c:1646 */
6176 break;
6177
6178 case 189:
6179 #line 1548 "glslang.y" /* yacc.c:1646 */
6180 {
6181 (yyval.interm.type).init((yyvsp[0].lex).loc);
6182 (yyval.interm.type).qualifier.writeonly = true;
6183 }
6184 #line 6185 "glslang_tab.cpp" /* yacc.c:1646 */
6185 break;
6186
6187 case 190:
6188 #line 1552 "glslang.y" /* yacc.c:1646 */
6189 {
6190 parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine");
6191 parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine");
6192 parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine");
6193 (yyval.interm.type).init((yyvsp[0].lex).loc);
6194 }
6195 #line 6196 "glslang_tab.cpp" /* yacc.c:1646 */
6196 break;
6197
6198 case 191:
6199 #line 1558 "glslang.y" /* yacc.c:1646 */
6200 {
6201 parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine");
6202 parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine");
6203 parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine");
6204 (yyval.interm.type).init((yyvsp[-3].lex).loc);
6205 }
6206 #line 6207 "glslang_tab.cpp" /* yacc.c:1646 */
6207 break;
6208
6209 case 192:
6210 #line 1569 "glslang.y" /* yacc.c:1646 */
6211 {
6212 (yyval.interm.type).init((yyvsp[0].lex).loc);
6213 (yyval.interm.type).qualifier.nonUniform = true;
6214 }
6215 #line 6216 "glslang_tab.cpp" /* yacc.c:1646 */
6216 break;
6217
6218 case 193:
6219 #line 1576 "glslang.y" /* yacc.c:1646 */
6220 {
6221 // TODO
6222 }
6223 #line 6224 "glslang_tab.cpp" /* yacc.c:1646 */
6224 break;
6225
6226 case 194:
6227 #line 1579 "glslang.y" /* yacc.c:1646 */
6228 {
6229 // TODO: 4.0 semantics: subroutines
6230 // 1) make sure each identifier is a type declared earlier with SUBROUTINE
6231 // 2) save all of the identifiers for future comparison with the declared function
6232 }
6233 #line 6234 "glslang_tab.cpp" /* yacc.c:1646 */
6234 break;
6235
6236 case 195:
6237 #line 1588 "glslang.y" /* yacc.c:1646 */
6238 {
6239 (yyval.interm.type) = (yyvsp[-1].interm.type);
6240 (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
6241 (yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters);
6242 }
6243 #line 6244 "glslang_tab.cpp" /* yacc.c:1646 */
6244 break;
6245
6246 case 196:
6247 #line 1593 "glslang.y" /* yacc.c:1646 */
6248 {
6249 parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes);
6250 (yyval.interm.type) = (yyvsp[-2].interm.type);
6251 (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
6252 (yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters);
6253 (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
6254 }
6255 #line 6256 "glslang_tab.cpp" /* yacc.c:1646 */
6256 break;
6257
6258 case 197:
6259 #line 1603 "glslang.y" /* yacc.c:1646 */
6260 {
6261 (yyval.interm).loc = (yyvsp[-1].lex).loc;
6262 (yyval.interm).arraySizes = new TArraySizes;
6263 (yyval.interm).arraySizes->addInnerSize();
6264 }
6265 #line 6266 "glslang_tab.cpp" /* yacc.c:1646 */
6266 break;
6267
6268 case 198:
6269 #line 1608 "glslang.y" /* yacc.c:1646 */
6270 {
6271 (yyval.interm).loc = (yyvsp[-2].lex).loc;
6272 (yyval.interm).arraySizes = new TArraySizes;
6273
6274 TArraySize size;
6275 parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
6276 (yyval.interm).arraySizes->addInnerSize(size);
6277 }
6278 #line 6279 "glslang_tab.cpp" /* yacc.c:1646 */
6279 break;
6280
6281 case 199:
6282 #line 1616 "glslang.y" /* yacc.c:1646 */
6283 {
6284 (yyval.interm) = (yyvsp[-2].interm);
6285 (yyval.interm).arraySizes->addInnerSize();
6286 }
6287 #line 6288 "glslang_tab.cpp" /* yacc.c:1646 */
6288 break;
6289
6290 case 200:
6291 #line 1620 "glslang.y" /* yacc.c:1646 */
6292 {
6293 (yyval.interm) = (yyvsp[-3].interm);
6294
6295 TArraySize size;
6296 parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
6297 (yyval.interm).arraySizes->addInnerSize(size);
6298 }
6299 #line 6300 "glslang_tab.cpp" /* yacc.c:1646 */
6300 break;
6301
6302 case 201:
6303 #line 1630 "glslang.y" /* yacc.c:1646 */
6304 {
6305 (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters);
6306 }
6307 #line 6308 "glslang_tab.cpp" /* yacc.c:1646 */
6308 break;
6309
6310 case 202:
6311 #line 1633 "glslang.y" /* yacc.c:1646 */
6312 {
6313 (yyval.interm.typeParameters) = 0;
6314 }
6315 #line 6316 "glslang_tab.cpp" /* yacc.c:1646 */
6316 break;
6317
6318 case 203:
6319 #line 1639 "glslang.y" /* yacc.c:1646 */
6320 {
6321 (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters);
6322 }
6323 #line 6324 "glslang_tab.cpp" /* yacc.c:1646 */
6324 break;
6325
6326 case 204:
6327 #line 1645 "glslang.y" /* yacc.c:1646 */
6328 {
6329 (yyval.interm.typeParameters) = new TArraySizes;
6330
6331 TArraySize size;
6332 parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
6333 (yyval.interm.typeParameters)->addInnerSize(size);
6334 }
6335 #line 6336 "glslang_tab.cpp" /* yacc.c:1646 */
6336 break;
6337
6338 case 205:
6339 #line 1652 "glslang.y" /* yacc.c:1646 */
6340 {
6341 (yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters);
6342
6343 TArraySize size;
6344 parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
6345 (yyval.interm.typeParameters)->addInnerSize(size);
6346 }
6347 #line 6348 "glslang_tab.cpp" /* yacc.c:1646 */
6348 break;
6349
6350 case 206:
6351 #line 1662 "glslang.y" /* yacc.c:1646 */
6352 {
6353 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6354 (yyval.interm.type).basicType = EbtVoid;
6355 }
6356 #line 6357 "glslang_tab.cpp" /* yacc.c:1646 */
6357 break;
6358
6359 case 207:
6360 #line 1666 "glslang.y" /* yacc.c:1646 */
6361 {
6362 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6363 (yyval.interm.type).basicType = EbtFloat;
6364 }
6365 #line 6366 "glslang_tab.cpp" /* yacc.c:1646 */
6366 break;
6367
6368 case 208:
6369 #line 1670 "glslang.y" /* yacc.c:1646 */
6370 {
6371 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6372 (yyval.interm.type).basicType = EbtInt;
6373 }
6374 #line 6375 "glslang_tab.cpp" /* yacc.c:1646 */
6375 break;
6376
6377 case 209:
6378 #line 1674 "glslang.y" /* yacc.c:1646 */
6379 {
6380 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
6381 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6382 (yyval.interm.type).basicType = EbtUint;
6383 }
6384 #line 6385 "glslang_tab.cpp" /* yacc.c:1646 */
6385 break;
6386
6387 case 210:
6388 #line 1679 "glslang.y" /* yacc.c:1646 */
6389 {
6390 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6391 (yyval.interm.type).basicType = EbtBool;
6392 }
6393 #line 6394 "glslang_tab.cpp" /* yacc.c:1646 */
6394 break;
6395
6396 case 211:
6397 #line 1683 "glslang.y" /* yacc.c:1646 */
6398 {
6399 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6400 (yyval.interm.type).basicType = EbtFloat;
6401 (yyval.interm.type).setVector(2);
6402 }
6403 #line 6404 "glslang_tab.cpp" /* yacc.c:1646 */
6404 break;
6405
6406 case 212:
6407 #line 1688 "glslang.y" /* yacc.c:1646 */
6408 {
6409 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6410 (yyval.interm.type).basicType = EbtFloat;
6411 (yyval.interm.type).setVector(3);
6412 }
6413 #line 6414 "glslang_tab.cpp" /* yacc.c:1646 */
6414 break;
6415
6416 case 213:
6417 #line 1693 "glslang.y" /* yacc.c:1646 */
6418 {
6419 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6420 (yyval.interm.type).basicType = EbtFloat;
6421 (yyval.interm.type).setVector(4);
6422 }
6423 #line 6424 "glslang_tab.cpp" /* yacc.c:1646 */
6424 break;
6425
6426 case 214:
6427 #line 1698 "glslang.y" /* yacc.c:1646 */
6428 {
6429 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6430 (yyval.interm.type).basicType = EbtBool;
6431 (yyval.interm.type).setVector(2);
6432 }
6433 #line 6434 "glslang_tab.cpp" /* yacc.c:1646 */
6434 break;
6435
6436 case 215:
6437 #line 1703 "glslang.y" /* yacc.c:1646 */
6438 {
6439 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6440 (yyval.interm.type).basicType = EbtBool;
6441 (yyval.interm.type).setVector(3);
6442 }
6443 #line 6444 "glslang_tab.cpp" /* yacc.c:1646 */
6444 break;
6445
6446 case 216:
6447 #line 1708 "glslang.y" /* yacc.c:1646 */
6448 {
6449 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6450 (yyval.interm.type).basicType = EbtBool;
6451 (yyval.interm.type).setVector(4);
6452 }
6453 #line 6454 "glslang_tab.cpp" /* yacc.c:1646 */
6454 break;
6455
6456 case 217:
6457 #line 1713 "glslang.y" /* yacc.c:1646 */
6458 {
6459 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6460 (yyval.interm.type).basicType = EbtInt;
6461 (yyval.interm.type).setVector(2);
6462 }
6463 #line 6464 "glslang_tab.cpp" /* yacc.c:1646 */
6464 break;
6465
6466 case 218:
6467 #line 1718 "glslang.y" /* yacc.c:1646 */
6468 {
6469 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6470 (yyval.interm.type).basicType = EbtInt;
6471 (yyval.interm.type).setVector(3);
6472 }
6473 #line 6474 "glslang_tab.cpp" /* yacc.c:1646 */
6474 break;
6475
6476 case 219:
6477 #line 1723 "glslang.y" /* yacc.c:1646 */
6478 {
6479 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6480 (yyval.interm.type).basicType = EbtInt;
6481 (yyval.interm.type).setVector(4);
6482 }
6483 #line 6484 "glslang_tab.cpp" /* yacc.c:1646 */
6484 break;
6485
6486 case 220:
6487 #line 1728 "glslang.y" /* yacc.c:1646 */
6488 {
6489 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6490 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6491 (yyval.interm.type).basicType = EbtUint;
6492 (yyval.interm.type).setVector(2);
6493 }
6494 #line 6495 "glslang_tab.cpp" /* yacc.c:1646 */
6495 break;
6496
6497 case 221:
6498 #line 1734 "glslang.y" /* yacc.c:1646 */
6499 {
6500 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6501 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6502 (yyval.interm.type).basicType = EbtUint;
6503 (yyval.interm.type).setVector(3);
6504 }
6505 #line 6506 "glslang_tab.cpp" /* yacc.c:1646 */
6506 break;
6507
6508 case 222:
6509 #line 1740 "glslang.y" /* yacc.c:1646 */
6510 {
6511 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
6512 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6513 (yyval.interm.type).basicType = EbtUint;
6514 (yyval.interm.type).setVector(4);
6515 }
6516 #line 6517 "glslang_tab.cpp" /* yacc.c:1646 */
6517 break;
6518
6519 case 223:
6520 #line 1746 "glslang.y" /* yacc.c:1646 */
6521 {
6522 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6523 (yyval.interm.type).basicType = EbtFloat;
6524 (yyval.interm.type).setMatrix(2, 2);
6525 }
6526 #line 6527 "glslang_tab.cpp" /* yacc.c:1646 */
6527 break;
6528
6529 case 224:
6530 #line 1751 "glslang.y" /* yacc.c:1646 */
6531 {
6532 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6533 (yyval.interm.type).basicType = EbtFloat;
6534 (yyval.interm.type).setMatrix(3, 3);
6535 }
6536 #line 6537 "glslang_tab.cpp" /* yacc.c:1646 */
6537 break;
6538
6539 case 225:
6540 #line 1756 "glslang.y" /* yacc.c:1646 */
6541 {
6542 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6543 (yyval.interm.type).basicType = EbtFloat;
6544 (yyval.interm.type).setMatrix(4, 4);
6545 }
6546 #line 6547 "glslang_tab.cpp" /* yacc.c:1646 */
6547 break;
6548
6549 case 226:
6550 #line 1761 "glslang.y" /* yacc.c:1646 */
6551 {
6552 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6553 (yyval.interm.type).basicType = EbtFloat;
6554 (yyval.interm.type).setMatrix(2, 2);
6555 }
6556 #line 6557 "glslang_tab.cpp" /* yacc.c:1646 */
6557 break;
6558
6559 case 227:
6560 #line 1766 "glslang.y" /* yacc.c:1646 */
6561 {
6562 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6563 (yyval.interm.type).basicType = EbtFloat;
6564 (yyval.interm.type).setMatrix(2, 3);
6565 }
6566 #line 6567 "glslang_tab.cpp" /* yacc.c:1646 */
6567 break;
6568
6569 case 228:
6570 #line 1771 "glslang.y" /* yacc.c:1646 */
6571 {
6572 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6573 (yyval.interm.type).basicType = EbtFloat;
6574 (yyval.interm.type).setMatrix(2, 4);
6575 }
6576 #line 6577 "glslang_tab.cpp" /* yacc.c:1646 */
6577 break;
6578
6579 case 229:
6580 #line 1776 "glslang.y" /* yacc.c:1646 */
6581 {
6582 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6583 (yyval.interm.type).basicType = EbtFloat;
6584 (yyval.interm.type).setMatrix(3, 2);
6585 }
6586 #line 6587 "glslang_tab.cpp" /* yacc.c:1646 */
6587 break;
6588
6589 case 230:
6590 #line 1781 "glslang.y" /* yacc.c:1646 */
6591 {
6592 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6593 (yyval.interm.type).basicType = EbtFloat;
6594 (yyval.interm.type).setMatrix(3, 3);
6595 }
6596 #line 6597 "glslang_tab.cpp" /* yacc.c:1646 */
6597 break;
6598
6599 case 231:
6600 #line 1786 "glslang.y" /* yacc.c:1646 */
6601 {
6602 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6603 (yyval.interm.type).basicType = EbtFloat;
6604 (yyval.interm.type).setMatrix(3, 4);
6605 }
6606 #line 6607 "glslang_tab.cpp" /* yacc.c:1646 */
6607 break;
6608
6609 case 232:
6610 #line 1791 "glslang.y" /* yacc.c:1646 */
6611 {
6612 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6613 (yyval.interm.type).basicType = EbtFloat;
6614 (yyval.interm.type).setMatrix(4, 2);
6615 }
6616 #line 6617 "glslang_tab.cpp" /* yacc.c:1646 */
6617 break;
6618
6619 case 233:
6620 #line 1796 "glslang.y" /* yacc.c:1646 */
6621 {
6622 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6623 (yyval.interm.type).basicType = EbtFloat;
6624 (yyval.interm.type).setMatrix(4, 3);
6625 }
6626 #line 6627 "glslang_tab.cpp" /* yacc.c:1646 */
6627 break;
6628
6629 case 234:
6630 #line 1801 "glslang.y" /* yacc.c:1646 */
6631 {
6632 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6633 (yyval.interm.type).basicType = EbtFloat;
6634 (yyval.interm.type).setMatrix(4, 4);
6635 }
6636 #line 6637 "glslang_tab.cpp" /* yacc.c:1646 */
6637 break;
6638
6639 case 235:
6640 #line 1807 "glslang.y" /* yacc.c:1646 */
6641 {
6642 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double");
6643 if (! parseContext.symbolTable.atBuiltInLevel())
6644 parseContext.doubleCheck((yyvsp[0].lex).loc, "double");
6645 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6646 (yyval.interm.type).basicType = EbtDouble;
6647 }
6648 #line 6649 "glslang_tab.cpp" /* yacc.c:1646 */
6649 break;
6650
6651 case 236:
6652 #line 1814 "glslang.y" /* yacc.c:1646 */
6653 {
6654 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel());
6655 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6656 (yyval.interm.type).basicType = EbtFloat16;
6657 }
6658 #line 6659 "glslang_tab.cpp" /* yacc.c:1646 */
6659 break;
6660
6661 case 237:
6662 #line 1819 "glslang.y" /* yacc.c:1646 */
6663 {
6664 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel());
6665 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6666 (yyval.interm.type).basicType = EbtFloat;
6667 }
6668 #line 6669 "glslang_tab.cpp" /* yacc.c:1646 */
6669 break;
6670
6671 case 238:
6672 #line 1824 "glslang.y" /* yacc.c:1646 */
6673 {
6674 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel());
6675 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6676 (yyval.interm.type).basicType = EbtDouble;
6677 }
6678 #line 6679 "glslang_tab.cpp" /* yacc.c:1646 */
6679 break;
6680
6681 case 239:
6682 #line 1829 "glslang.y" /* yacc.c:1646 */
6683 {
6684 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
6685 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6686 (yyval.interm.type).basicType = EbtInt8;
6687 }
6688 #line 6689 "glslang_tab.cpp" /* yacc.c:1646 */
6689 break;
6690
6691 case 240:
6692 #line 1834 "glslang.y" /* yacc.c:1646 */
6693 {
6694 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6695 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6696 (yyval.interm.type).basicType = EbtUint8;
6697 }
6698 #line 6699 "glslang_tab.cpp" /* yacc.c:1646 */
6699 break;
6700
6701 case 241:
6702 #line 1839 "glslang.y" /* yacc.c:1646 */
6703 {
6704 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
6705 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6706 (yyval.interm.type).basicType = EbtInt16;
6707 }
6708 #line 6709 "glslang_tab.cpp" /* yacc.c:1646 */
6709 break;
6710
6711 case 242:
6712 #line 1844 "glslang.y" /* yacc.c:1646 */
6713 {
6714 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6715 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6716 (yyval.interm.type).basicType = EbtUint16;
6717 }
6718 #line 6719 "glslang_tab.cpp" /* yacc.c:1646 */
6719 break;
6720
6721 case 243:
6722 #line 1849 "glslang.y" /* yacc.c:1646 */
6723 {
6724 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
6725 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6726 (yyval.interm.type).basicType = EbtInt;
6727 }
6728 #line 6729 "glslang_tab.cpp" /* yacc.c:1646 */
6729 break;
6730
6731 case 244:
6732 #line 1854 "glslang.y" /* yacc.c:1646 */
6733 {
6734 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6735 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6736 (yyval.interm.type).basicType = EbtUint;
6737 }
6738 #line 6739 "glslang_tab.cpp" /* yacc.c:1646 */
6739 break;
6740
6741 case 245:
6742 #line 1859 "glslang.y" /* yacc.c:1646 */
6743 {
6744 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
6745 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6746 (yyval.interm.type).basicType = EbtInt64;
6747 }
6748 #line 6749 "glslang_tab.cpp" /* yacc.c:1646 */
6749 break;
6750
6751 case 246:
6752 #line 1864 "glslang.y" /* yacc.c:1646 */
6753 {
6754 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
6755 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6756 (yyval.interm.type).basicType = EbtUint64;
6757 }
6758 #line 6759 "glslang_tab.cpp" /* yacc.c:1646 */
6759 break;
6760
6761 case 247:
6762 #line 1869 "glslang.y" /* yacc.c:1646 */
6763 {
6764 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
6765 if (! parseContext.symbolTable.atBuiltInLevel())
6766 parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
6767 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6768 (yyval.interm.type).basicType = EbtDouble;
6769 (yyval.interm.type).setVector(2);
6770 }
6771 #line 6772 "glslang_tab.cpp" /* yacc.c:1646 */
6772 break;
6773
6774 case 248:
6775 #line 1877 "glslang.y" /* yacc.c:1646 */
6776 {
6777 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
6778 if (! parseContext.symbolTable.atBuiltInLevel())
6779 parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
6780 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6781 (yyval.interm.type).basicType = EbtDouble;
6782 (yyval.interm.type).setVector(3);
6783 }
6784 #line 6785 "glslang_tab.cpp" /* yacc.c:1646 */
6785 break;
6786
6787 case 249:
6788 #line 1885 "glslang.y" /* yacc.c:1646 */
6789 {
6790 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
6791 if (! parseContext.symbolTable.atBuiltInLevel())
6792 parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
6793 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6794 (yyval.interm.type).basicType = EbtDouble;
6795 (yyval.interm.type).setVector(4);
6796 }
6797 #line 6798 "glslang_tab.cpp" /* yacc.c:1646 */
6798 break;
6799
6800 case 250:
6801 #line 1893 "glslang.y" /* yacc.c:1646 */
6802 {
6803 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
6804 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6805 (yyval.interm.type).basicType = EbtFloat16;
6806 (yyval.interm.type).setVector(2);
6807 }
6808 #line 6809 "glslang_tab.cpp" /* yacc.c:1646 */
6809 break;
6810
6811 case 251:
6812 #line 1899 "glslang.y" /* yacc.c:1646 */
6813 {
6814 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
6815 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6816 (yyval.interm.type).basicType = EbtFloat16;
6817 (yyval.interm.type).setVector(3);
6818 }
6819 #line 6820 "glslang_tab.cpp" /* yacc.c:1646 */
6820 break;
6821
6822 case 252:
6823 #line 1905 "glslang.y" /* yacc.c:1646 */
6824 {
6825 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
6826 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6827 (yyval.interm.type).basicType = EbtFloat16;
6828 (yyval.interm.type).setVector(4);
6829 }
6830 #line 6831 "glslang_tab.cpp" /* yacc.c:1646 */
6831 break;
6832
6833 case 253:
6834 #line 1911 "glslang.y" /* yacc.c:1646 */
6835 {
6836 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
6837 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6838 (yyval.interm.type).basicType = EbtFloat;
6839 (yyval.interm.type).setVector(2);
6840 }
6841 #line 6842 "glslang_tab.cpp" /* yacc.c:1646 */
6842 break;
6843
6844 case 254:
6845 #line 1917 "glslang.y" /* yacc.c:1646 */
6846 {
6847 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
6848 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6849 (yyval.interm.type).basicType = EbtFloat;
6850 (yyval.interm.type).setVector(3);
6851 }
6852 #line 6853 "glslang_tab.cpp" /* yacc.c:1646 */
6853 break;
6854
6855 case 255:
6856 #line 1923 "glslang.y" /* yacc.c:1646 */
6857 {
6858 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
6859 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6860 (yyval.interm.type).basicType = EbtFloat;
6861 (yyval.interm.type).setVector(4);
6862 }
6863 #line 6864 "glslang_tab.cpp" /* yacc.c:1646 */
6864 break;
6865
6866 case 256:
6867 #line 1929 "glslang.y" /* yacc.c:1646 */
6868 {
6869 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
6870 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6871 (yyval.interm.type).basicType = EbtDouble;
6872 (yyval.interm.type).setVector(2);
6873 }
6874 #line 6875 "glslang_tab.cpp" /* yacc.c:1646 */
6875 break;
6876
6877 case 257:
6878 #line 1935 "glslang.y" /* yacc.c:1646 */
6879 {
6880 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
6881 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6882 (yyval.interm.type).basicType = EbtDouble;
6883 (yyval.interm.type).setVector(3);
6884 }
6885 #line 6886 "glslang_tab.cpp" /* yacc.c:1646 */
6886 break;
6887
6888 case 258:
6889 #line 1941 "glslang.y" /* yacc.c:1646 */
6890 {
6891 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
6892 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6893 (yyval.interm.type).basicType = EbtDouble;
6894 (yyval.interm.type).setVector(4);
6895 }
6896 #line 6897 "glslang_tab.cpp" /* yacc.c:1646 */
6897 break;
6898
6899 case 259:
6900 #line 1947 "glslang.y" /* yacc.c:1646 */
6901 {
6902 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6903 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6904 (yyval.interm.type).basicType = EbtInt8;
6905 (yyval.interm.type).setVector(2);
6906 }
6907 #line 6908 "glslang_tab.cpp" /* yacc.c:1646 */
6908 break;
6909
6910 case 260:
6911 #line 1953 "glslang.y" /* yacc.c:1646 */
6912 {
6913 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6914 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6915 (yyval.interm.type).basicType = EbtInt8;
6916 (yyval.interm.type).setVector(3);
6917 }
6918 #line 6919 "glslang_tab.cpp" /* yacc.c:1646 */
6919 break;
6920
6921 case 261:
6922 #line 1959 "glslang.y" /* yacc.c:1646 */
6923 {
6924 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6925 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6926 (yyval.interm.type).basicType = EbtInt8;
6927 (yyval.interm.type).setVector(4);
6928 }
6929 #line 6930 "glslang_tab.cpp" /* yacc.c:1646 */
6930 break;
6931
6932 case 262:
6933 #line 1965 "glslang.y" /* yacc.c:1646 */
6934 {
6935 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6936 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6937 (yyval.interm.type).basicType = EbtInt16;
6938 (yyval.interm.type).setVector(2);
6939 }
6940 #line 6941 "glslang_tab.cpp" /* yacc.c:1646 */
6941 break;
6942
6943 case 263:
6944 #line 1971 "glslang.y" /* yacc.c:1646 */
6945 {
6946 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6947 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6948 (yyval.interm.type).basicType = EbtInt16;
6949 (yyval.interm.type).setVector(3);
6950 }
6951 #line 6952 "glslang_tab.cpp" /* yacc.c:1646 */
6952 break;
6953
6954 case 264:
6955 #line 1977 "glslang.y" /* yacc.c:1646 */
6956 {
6957 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6958 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6959 (yyval.interm.type).basicType = EbtInt16;
6960 (yyval.interm.type).setVector(4);
6961 }
6962 #line 6963 "glslang_tab.cpp" /* yacc.c:1646 */
6963 break;
6964
6965 case 265:
6966 #line 1983 "glslang.y" /* yacc.c:1646 */
6967 {
6968 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6969 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6970 (yyval.interm.type).basicType = EbtInt;
6971 (yyval.interm.type).setVector(2);
6972 }
6973 #line 6974 "glslang_tab.cpp" /* yacc.c:1646 */
6974 break;
6975
6976 case 266:
6977 #line 1989 "glslang.y" /* yacc.c:1646 */
6978 {
6979 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6980 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6981 (yyval.interm.type).basicType = EbtInt;
6982 (yyval.interm.type).setVector(3);
6983 }
6984 #line 6985 "glslang_tab.cpp" /* yacc.c:1646 */
6985 break;
6986
6987 case 267:
6988 #line 1995 "glslang.y" /* yacc.c:1646 */
6989 {
6990 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
6991 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
6992 (yyval.interm.type).basicType = EbtInt;
6993 (yyval.interm.type).setVector(4);
6994 }
6995 #line 6996 "glslang_tab.cpp" /* yacc.c:1646 */
6996 break;
6997
6998 case 268:
6999 #line 2001 "glslang.y" /* yacc.c:1646 */
7000 {
7001 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
7002 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7003 (yyval.interm.type).basicType = EbtInt64;
7004 (yyval.interm.type).setVector(2);
7005 }
7006 #line 7007 "glslang_tab.cpp" /* yacc.c:1646 */
7007 break;
7008
7009 case 269:
7010 #line 2007 "glslang.y" /* yacc.c:1646 */
7011 {
7012 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
7013 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7014 (yyval.interm.type).basicType = EbtInt64;
7015 (yyval.interm.type).setVector(3);
7016 }
7017 #line 7018 "glslang_tab.cpp" /* yacc.c:1646 */
7018 break;
7019
7020 case 270:
7021 #line 2013 "glslang.y" /* yacc.c:1646 */
7022 {
7023 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
7024 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7025 (yyval.interm.type).basicType = EbtInt64;
7026 (yyval.interm.type).setVector(4);
7027 }
7028 #line 7029 "glslang_tab.cpp" /* yacc.c:1646 */
7029 break;
7030
7031 case 271:
7032 #line 2019 "glslang.y" /* yacc.c:1646 */
7033 {
7034 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7035 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7036 (yyval.interm.type).basicType = EbtUint8;
7037 (yyval.interm.type).setVector(2);
7038 }
7039 #line 7040 "glslang_tab.cpp" /* yacc.c:1646 */
7040 break;
7041
7042 case 272:
7043 #line 2025 "glslang.y" /* yacc.c:1646 */
7044 {
7045 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7046 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7047 (yyval.interm.type).basicType = EbtUint8;
7048 (yyval.interm.type).setVector(3);
7049 }
7050 #line 7051 "glslang_tab.cpp" /* yacc.c:1646 */
7051 break;
7052
7053 case 273:
7054 #line 2031 "glslang.y" /* yacc.c:1646 */
7055 {
7056 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7057 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7058 (yyval.interm.type).basicType = EbtUint8;
7059 (yyval.interm.type).setVector(4);
7060 }
7061 #line 7062 "glslang_tab.cpp" /* yacc.c:1646 */
7062 break;
7063
7064 case 274:
7065 #line 2037 "glslang.y" /* yacc.c:1646 */
7066 {
7067 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7068 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7069 (yyval.interm.type).basicType = EbtUint16;
7070 (yyval.interm.type).setVector(2);
7071 }
7072 #line 7073 "glslang_tab.cpp" /* yacc.c:1646 */
7073 break;
7074
7075 case 275:
7076 #line 2043 "glslang.y" /* yacc.c:1646 */
7077 {
7078 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7079 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7080 (yyval.interm.type).basicType = EbtUint16;
7081 (yyval.interm.type).setVector(3);
7082 }
7083 #line 7084 "glslang_tab.cpp" /* yacc.c:1646 */
7084 break;
7085
7086 case 276:
7087 #line 2049 "glslang.y" /* yacc.c:1646 */
7088 {
7089 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7090 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7091 (yyval.interm.type).basicType = EbtUint16;
7092 (yyval.interm.type).setVector(4);
7093 }
7094 #line 7095 "glslang_tab.cpp" /* yacc.c:1646 */
7095 break;
7096
7097 case 277:
7098 #line 2055 "glslang.y" /* yacc.c:1646 */
7099 {
7100 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7101 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7102 (yyval.interm.type).basicType = EbtUint;
7103 (yyval.interm.type).setVector(2);
7104 }
7105 #line 7106 "glslang_tab.cpp" /* yacc.c:1646 */
7106 break;
7107
7108 case 278:
7109 #line 2061 "glslang.y" /* yacc.c:1646 */
7110 {
7111 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7112 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7113 (yyval.interm.type).basicType = EbtUint;
7114 (yyval.interm.type).setVector(3);
7115 }
7116 #line 7117 "glslang_tab.cpp" /* yacc.c:1646 */
7117 break;
7118
7119 case 279:
7120 #line 2067 "glslang.y" /* yacc.c:1646 */
7121 {
7122 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7123 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7124 (yyval.interm.type).basicType = EbtUint;
7125 (yyval.interm.type).setVector(4);
7126 }
7127 #line 7128 "glslang_tab.cpp" /* yacc.c:1646 */
7128 break;
7129
7130 case 280:
7131 #line 2073 "glslang.y" /* yacc.c:1646 */
7132 {
7133 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7134 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7135 (yyval.interm.type).basicType = EbtUint64;
7136 (yyval.interm.type).setVector(2);
7137 }
7138 #line 7139 "glslang_tab.cpp" /* yacc.c:1646 */
7139 break;
7140
7141 case 281:
7142 #line 2079 "glslang.y" /* yacc.c:1646 */
7143 {
7144 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7145 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7146 (yyval.interm.type).basicType = EbtUint64;
7147 (yyval.interm.type).setVector(3);
7148 }
7149 #line 7150 "glslang_tab.cpp" /* yacc.c:1646 */
7150 break;
7151
7152 case 282:
7153 #line 2085 "glslang.y" /* yacc.c:1646 */
7154 {
7155 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
7156 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7157 (yyval.interm.type).basicType = EbtUint64;
7158 (yyval.interm.type).setVector(4);
7159 }
7160 #line 7161 "glslang_tab.cpp" /* yacc.c:1646 */
7161 break;
7162
7163 case 283:
7164 #line 2091 "glslang.y" /* yacc.c:1646 */
7165 {
7166 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7167 if (! parseContext.symbolTable.atBuiltInLevel())
7168 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7169 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7170 (yyval.interm.type).basicType = EbtDouble;
7171 (yyval.interm.type).setMatrix(2, 2);
7172 }
7173 #line 7174 "glslang_tab.cpp" /* yacc.c:1646 */
7174 break;
7175
7176 case 284:
7177 #line 2099 "glslang.y" /* yacc.c:1646 */
7178 {
7179 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7180 if (! parseContext.symbolTable.atBuiltInLevel())
7181 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7182 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7183 (yyval.interm.type).basicType = EbtDouble;
7184 (yyval.interm.type).setMatrix(3, 3);
7185 }
7186 #line 7187 "glslang_tab.cpp" /* yacc.c:1646 */
7187 break;
7188
7189 case 285:
7190 #line 2107 "glslang.y" /* yacc.c:1646 */
7191 {
7192 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7193 if (! parseContext.symbolTable.atBuiltInLevel())
7194 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7195 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7196 (yyval.interm.type).basicType = EbtDouble;
7197 (yyval.interm.type).setMatrix(4, 4);
7198 }
7199 #line 7200 "glslang_tab.cpp" /* yacc.c:1646 */
7200 break;
7201
7202 case 286:
7203 #line 2115 "glslang.y" /* yacc.c:1646 */
7204 {
7205 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7206 if (! parseContext.symbolTable.atBuiltInLevel())
7207 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7208 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7209 (yyval.interm.type).basicType = EbtDouble;
7210 (yyval.interm.type).setMatrix(2, 2);
7211 }
7212 #line 7213 "glslang_tab.cpp" /* yacc.c:1646 */
7213 break;
7214
7215 case 287:
7216 #line 2123 "glslang.y" /* yacc.c:1646 */
7217 {
7218 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7219 if (! parseContext.symbolTable.atBuiltInLevel())
7220 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7221 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7222 (yyval.interm.type).basicType = EbtDouble;
7223 (yyval.interm.type).setMatrix(2, 3);
7224 }
7225 #line 7226 "glslang_tab.cpp" /* yacc.c:1646 */
7226 break;
7227
7228 case 288:
7229 #line 2131 "glslang.y" /* yacc.c:1646 */
7230 {
7231 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7232 if (! parseContext.symbolTable.atBuiltInLevel())
7233 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7234 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7235 (yyval.interm.type).basicType = EbtDouble;
7236 (yyval.interm.type).setMatrix(2, 4);
7237 }
7238 #line 7239 "glslang_tab.cpp" /* yacc.c:1646 */
7239 break;
7240
7241 case 289:
7242 #line 2139 "glslang.y" /* yacc.c:1646 */
7243 {
7244 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7245 if (! parseContext.symbolTable.atBuiltInLevel())
7246 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7247 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7248 (yyval.interm.type).basicType = EbtDouble;
7249 (yyval.interm.type).setMatrix(3, 2);
7250 }
7251 #line 7252 "glslang_tab.cpp" /* yacc.c:1646 */
7252 break;
7253
7254 case 290:
7255 #line 2147 "glslang.y" /* yacc.c:1646 */
7256 {
7257 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7258 if (! parseContext.symbolTable.atBuiltInLevel())
7259 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7260 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7261 (yyval.interm.type).basicType = EbtDouble;
7262 (yyval.interm.type).setMatrix(3, 3);
7263 }
7264 #line 7265 "glslang_tab.cpp" /* yacc.c:1646 */
7265 break;
7266
7267 case 291:
7268 #line 2155 "glslang.y" /* yacc.c:1646 */
7269 {
7270 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7271 if (! parseContext.symbolTable.atBuiltInLevel())
7272 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7273 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7274 (yyval.interm.type).basicType = EbtDouble;
7275 (yyval.interm.type).setMatrix(3, 4);
7276 }
7277 #line 7278 "glslang_tab.cpp" /* yacc.c:1646 */
7278 break;
7279
7280 case 292:
7281 #line 2163 "glslang.y" /* yacc.c:1646 */
7282 {
7283 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7284 if (! parseContext.symbolTable.atBuiltInLevel())
7285 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7286 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7287 (yyval.interm.type).basicType = EbtDouble;
7288 (yyval.interm.type).setMatrix(4, 2);
7289 }
7290 #line 7291 "glslang_tab.cpp" /* yacc.c:1646 */
7291 break;
7292
7293 case 293:
7294 #line 2171 "glslang.y" /* yacc.c:1646 */
7295 {
7296 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7297 if (! parseContext.symbolTable.atBuiltInLevel())
7298 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7299 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7300 (yyval.interm.type).basicType = EbtDouble;
7301 (yyval.interm.type).setMatrix(4, 3);
7302 }
7303 #line 7304 "glslang_tab.cpp" /* yacc.c:1646 */
7304 break;
7305
7306 case 294:
7307 #line 2179 "glslang.y" /* yacc.c:1646 */
7308 {
7309 parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
7310 if (! parseContext.symbolTable.atBuiltInLevel())
7311 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
7312 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7313 (yyval.interm.type).basicType = EbtDouble;
7314 (yyval.interm.type).setMatrix(4, 4);
7315 }
7316 #line 7317 "glslang_tab.cpp" /* yacc.c:1646 */
7317 break;
7318
7319 case 295:
7320 #line 2187 "glslang.y" /* yacc.c:1646 */
7321 {
7322 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7323 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7324 (yyval.interm.type).basicType = EbtFloat16;
7325 (yyval.interm.type).setMatrix(2, 2);
7326 }
7327 #line 7328 "glslang_tab.cpp" /* yacc.c:1646 */
7328 break;
7329
7330 case 296:
7331 #line 2193 "glslang.y" /* yacc.c:1646 */
7332 {
7333 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7334 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7335 (yyval.interm.type).basicType = EbtFloat16;
7336 (yyval.interm.type).setMatrix(3, 3);
7337 }
7338 #line 7339 "glslang_tab.cpp" /* yacc.c:1646 */
7339 break;
7340
7341 case 297:
7342 #line 2199 "glslang.y" /* yacc.c:1646 */
7343 {
7344 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7345 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7346 (yyval.interm.type).basicType = EbtFloat16;
7347 (yyval.interm.type).setMatrix(4, 4);
7348 }
7349 #line 7350 "glslang_tab.cpp" /* yacc.c:1646 */
7350 break;
7351
7352 case 298:
7353 #line 2205 "glslang.y" /* yacc.c:1646 */
7354 {
7355 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7356 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7357 (yyval.interm.type).basicType = EbtFloat16;
7358 (yyval.interm.type).setMatrix(2, 2);
7359 }
7360 #line 7361 "glslang_tab.cpp" /* yacc.c:1646 */
7361 break;
7362
7363 case 299:
7364 #line 2211 "glslang.y" /* yacc.c:1646 */
7365 {
7366 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7367 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7368 (yyval.interm.type).basicType = EbtFloat16;
7369 (yyval.interm.type).setMatrix(2, 3);
7370 }
7371 #line 7372 "glslang_tab.cpp" /* yacc.c:1646 */
7372 break;
7373
7374 case 300:
7375 #line 2217 "glslang.y" /* yacc.c:1646 */
7376 {
7377 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7378 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7379 (yyval.interm.type).basicType = EbtFloat16;
7380 (yyval.interm.type).setMatrix(2, 4);
7381 }
7382 #line 7383 "glslang_tab.cpp" /* yacc.c:1646 */
7383 break;
7384
7385 case 301:
7386 #line 2223 "glslang.y" /* yacc.c:1646 */
7387 {
7388 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7389 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7390 (yyval.interm.type).basicType = EbtFloat16;
7391 (yyval.interm.type).setMatrix(3, 2);
7392 }
7393 #line 7394 "glslang_tab.cpp" /* yacc.c:1646 */
7394 break;
7395
7396 case 302:
7397 #line 2229 "glslang.y" /* yacc.c:1646 */
7398 {
7399 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7400 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7401 (yyval.interm.type).basicType = EbtFloat16;
7402 (yyval.interm.type).setMatrix(3, 3);
7403 }
7404 #line 7405 "glslang_tab.cpp" /* yacc.c:1646 */
7405 break;
7406
7407 case 303:
7408 #line 2235 "glslang.y" /* yacc.c:1646 */
7409 {
7410 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7411 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7412 (yyval.interm.type).basicType = EbtFloat16;
7413 (yyval.interm.type).setMatrix(3, 4);
7414 }
7415 #line 7416 "glslang_tab.cpp" /* yacc.c:1646 */
7416 break;
7417
7418 case 304:
7419 #line 2241 "glslang.y" /* yacc.c:1646 */
7420 {
7421 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7422 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7423 (yyval.interm.type).basicType = EbtFloat16;
7424 (yyval.interm.type).setMatrix(4, 2);
7425 }
7426 #line 7427 "glslang_tab.cpp" /* yacc.c:1646 */
7427 break;
7428
7429 case 305:
7430 #line 2247 "glslang.y" /* yacc.c:1646 */
7431 {
7432 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7433 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7434 (yyval.interm.type).basicType = EbtFloat16;
7435 (yyval.interm.type).setMatrix(4, 3);
7436 }
7437 #line 7438 "glslang_tab.cpp" /* yacc.c:1646 */
7438 break;
7439
7440 case 306:
7441 #line 2253 "glslang.y" /* yacc.c:1646 */
7442 {
7443 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
7444 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7445 (yyval.interm.type).basicType = EbtFloat16;
7446 (yyval.interm.type).setMatrix(4, 4);
7447 }
7448 #line 7449 "glslang_tab.cpp" /* yacc.c:1646 */
7449 break;
7450
7451 case 307:
7452 #line 2259 "glslang.y" /* yacc.c:1646 */
7453 {
7454 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7455 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7456 (yyval.interm.type).basicType = EbtFloat;
7457 (yyval.interm.type).setMatrix(2, 2);
7458 }
7459 #line 7460 "glslang_tab.cpp" /* yacc.c:1646 */
7460 break;
7461
7462 case 308:
7463 #line 2265 "glslang.y" /* yacc.c:1646 */
7464 {
7465 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7466 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7467 (yyval.interm.type).basicType = EbtFloat;
7468 (yyval.interm.type).setMatrix(3, 3);
7469 }
7470 #line 7471 "glslang_tab.cpp" /* yacc.c:1646 */
7471 break;
7472
7473 case 309:
7474 #line 2271 "glslang.y" /* yacc.c:1646 */
7475 {
7476 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7477 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7478 (yyval.interm.type).basicType = EbtFloat;
7479 (yyval.interm.type).setMatrix(4, 4);
7480 }
7481 #line 7482 "glslang_tab.cpp" /* yacc.c:1646 */
7482 break;
7483
7484 case 310:
7485 #line 2277 "glslang.y" /* yacc.c:1646 */
7486 {
7487 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7488 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7489 (yyval.interm.type).basicType = EbtFloat;
7490 (yyval.interm.type).setMatrix(2, 2);
7491 }
7492 #line 7493 "glslang_tab.cpp" /* yacc.c:1646 */
7493 break;
7494
7495 case 311:
7496 #line 2283 "glslang.y" /* yacc.c:1646 */
7497 {
7498 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7499 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7500 (yyval.interm.type).basicType = EbtFloat;
7501 (yyval.interm.type).setMatrix(2, 3);
7502 }
7503 #line 7504 "glslang_tab.cpp" /* yacc.c:1646 */
7504 break;
7505
7506 case 312:
7507 #line 2289 "glslang.y" /* yacc.c:1646 */
7508 {
7509 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7510 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7511 (yyval.interm.type).basicType = EbtFloat;
7512 (yyval.interm.type).setMatrix(2, 4);
7513 }
7514 #line 7515 "glslang_tab.cpp" /* yacc.c:1646 */
7515 break;
7516
7517 case 313:
7518 #line 2295 "glslang.y" /* yacc.c:1646 */
7519 {
7520 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7521 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7522 (yyval.interm.type).basicType = EbtFloat;
7523 (yyval.interm.type).setMatrix(3, 2);
7524 }
7525 #line 7526 "glslang_tab.cpp" /* yacc.c:1646 */
7526 break;
7527
7528 case 314:
7529 #line 2301 "glslang.y" /* yacc.c:1646 */
7530 {
7531 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7532 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7533 (yyval.interm.type).basicType = EbtFloat;
7534 (yyval.interm.type).setMatrix(3, 3);
7535 }
7536 #line 7537 "glslang_tab.cpp" /* yacc.c:1646 */
7537 break;
7538
7539 case 315:
7540 #line 2307 "glslang.y" /* yacc.c:1646 */
7541 {
7542 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7543 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7544 (yyval.interm.type).basicType = EbtFloat;
7545 (yyval.interm.type).setMatrix(3, 4);
7546 }
7547 #line 7548 "glslang_tab.cpp" /* yacc.c:1646 */
7548 break;
7549
7550 case 316:
7551 #line 2313 "glslang.y" /* yacc.c:1646 */
7552 {
7553 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7554 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7555 (yyval.interm.type).basicType = EbtFloat;
7556 (yyval.interm.type).setMatrix(4, 2);
7557 }
7558 #line 7559 "glslang_tab.cpp" /* yacc.c:1646 */
7559 break;
7560
7561 case 317:
7562 #line 2319 "glslang.y" /* yacc.c:1646 */
7563 {
7564 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7565 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7566 (yyval.interm.type).basicType = EbtFloat;
7567 (yyval.interm.type).setMatrix(4, 3);
7568 }
7569 #line 7570 "glslang_tab.cpp" /* yacc.c:1646 */
7570 break;
7571
7572 case 318:
7573 #line 2325 "glslang.y" /* yacc.c:1646 */
7574 {
7575 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
7576 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7577 (yyval.interm.type).basicType = EbtFloat;
7578 (yyval.interm.type).setMatrix(4, 4);
7579 }
7580 #line 7581 "glslang_tab.cpp" /* yacc.c:1646 */
7581 break;
7582
7583 case 319:
7584 #line 2331 "glslang.y" /* yacc.c:1646 */
7585 {
7586 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7587 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7588 (yyval.interm.type).basicType = EbtDouble;
7589 (yyval.interm.type).setMatrix(2, 2);
7590 }
7591 #line 7592 "glslang_tab.cpp" /* yacc.c:1646 */
7592 break;
7593
7594 case 320:
7595 #line 2337 "glslang.y" /* yacc.c:1646 */
7596 {
7597 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7598 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7599 (yyval.interm.type).basicType = EbtDouble;
7600 (yyval.interm.type).setMatrix(3, 3);
7601 }
7602 #line 7603 "glslang_tab.cpp" /* yacc.c:1646 */
7603 break;
7604
7605 case 321:
7606 #line 2343 "glslang.y" /* yacc.c:1646 */
7607 {
7608 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7609 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7610 (yyval.interm.type).basicType = EbtDouble;
7611 (yyval.interm.type).setMatrix(4, 4);
7612 }
7613 #line 7614 "glslang_tab.cpp" /* yacc.c:1646 */
7614 break;
7615
7616 case 322:
7617 #line 2349 "glslang.y" /* yacc.c:1646 */
7618 {
7619 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7620 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7621 (yyval.interm.type).basicType = EbtDouble;
7622 (yyval.interm.type).setMatrix(2, 2);
7623 }
7624 #line 7625 "glslang_tab.cpp" /* yacc.c:1646 */
7625 break;
7626
7627 case 323:
7628 #line 2355 "glslang.y" /* yacc.c:1646 */
7629 {
7630 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7631 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7632 (yyval.interm.type).basicType = EbtDouble;
7633 (yyval.interm.type).setMatrix(2, 3);
7634 }
7635 #line 7636 "glslang_tab.cpp" /* yacc.c:1646 */
7636 break;
7637
7638 case 324:
7639 #line 2361 "glslang.y" /* yacc.c:1646 */
7640 {
7641 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7642 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7643 (yyval.interm.type).basicType = EbtDouble;
7644 (yyval.interm.type).setMatrix(2, 4);
7645 }
7646 #line 7647 "glslang_tab.cpp" /* yacc.c:1646 */
7647 break;
7648
7649 case 325:
7650 #line 2367 "glslang.y" /* yacc.c:1646 */
7651 {
7652 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7653 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7654 (yyval.interm.type).basicType = EbtDouble;
7655 (yyval.interm.type).setMatrix(3, 2);
7656 }
7657 #line 7658 "glslang_tab.cpp" /* yacc.c:1646 */
7658 break;
7659
7660 case 326:
7661 #line 2373 "glslang.y" /* yacc.c:1646 */
7662 {
7663 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7664 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7665 (yyval.interm.type).basicType = EbtDouble;
7666 (yyval.interm.type).setMatrix(3, 3);
7667 }
7668 #line 7669 "glslang_tab.cpp" /* yacc.c:1646 */
7669 break;
7670
7671 case 327:
7672 #line 2379 "glslang.y" /* yacc.c:1646 */
7673 {
7674 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7675 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7676 (yyval.interm.type).basicType = EbtDouble;
7677 (yyval.interm.type).setMatrix(3, 4);
7678 }
7679 #line 7680 "glslang_tab.cpp" /* yacc.c:1646 */
7680 break;
7681
7682 case 328:
7683 #line 2385 "glslang.y" /* yacc.c:1646 */
7684 {
7685 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7686 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7687 (yyval.interm.type).basicType = EbtDouble;
7688 (yyval.interm.type).setMatrix(4, 2);
7689 }
7690 #line 7691 "glslang_tab.cpp" /* yacc.c:1646 */
7691 break;
7692
7693 case 329:
7694 #line 2391 "glslang.y" /* yacc.c:1646 */
7695 {
7696 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7697 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7698 (yyval.interm.type).basicType = EbtDouble;
7699 (yyval.interm.type).setMatrix(4, 3);
7700 }
7701 #line 7702 "glslang_tab.cpp" /* yacc.c:1646 */
7702 break;
7703
7704 case 330:
7705 #line 2397 "glslang.y" /* yacc.c:1646 */
7706 {
7707 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
7708 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7709 (yyval.interm.type).basicType = EbtDouble;
7710 (yyval.interm.type).setMatrix(4, 4);
7711 }
7712 #line 7713 "glslang_tab.cpp" /* yacc.c:1646 */
7713 break;
7714
7715 case 331:
7716 #line 2403 "glslang.y" /* yacc.c:1646 */
7717 {
7718 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7719 (yyval.interm.type).basicType = EbtAccStruct;
7720 }
7721 #line 7722 "glslang_tab.cpp" /* yacc.c:1646 */
7722 break;
7723
7724 case 332:
7725 #line 2407 "glslang.y" /* yacc.c:1646 */
7726 {
7727 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7728 (yyval.interm.type).basicType = EbtAccStruct;
7729 }
7730 #line 7731 "glslang_tab.cpp" /* yacc.c:1646 */
7731 break;
7732
7733 case 333:
7734 #line 2411 "glslang.y" /* yacc.c:1646 */
7735 {
7736 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7737 (yyval.interm.type).basicType = EbtRayQuery;
7738 }
7739 #line 7740 "glslang_tab.cpp" /* yacc.c:1646 */
7740 break;
7741
7742 case 334:
7743 #line 2415 "glslang.y" /* yacc.c:1646 */
7744 {
7745 parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types");
7746 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7747 (yyval.interm.type).basicType = EbtAtomicUint;
7748 }
7749 #line 7750 "glslang_tab.cpp" /* yacc.c:1646 */
7750 break;
7751
7752 case 335:
7753 #line 2420 "glslang.y" /* yacc.c:1646 */
7754 {
7755 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7756 (yyval.interm.type).basicType = EbtSampler;
7757 (yyval.interm.type).sampler.set(EbtFloat, Esd1D);
7758 }
7759 #line 7760 "glslang_tab.cpp" /* yacc.c:1646 */
7760 break;
7761
7762 case 336:
7763 #line 2426 "glslang.y" /* yacc.c:1646 */
7764 {
7765 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7766 (yyval.interm.type).basicType = EbtSampler;
7767 (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
7768 }
7769 #line 7770 "glslang_tab.cpp" /* yacc.c:1646 */
7770 break;
7771
7772 case 337:
7773 #line 2431 "glslang.y" /* yacc.c:1646 */
7774 {
7775 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7776 (yyval.interm.type).basicType = EbtSampler;
7777 (yyval.interm.type).sampler.set(EbtFloat, Esd3D);
7778 }
7779 #line 7780 "glslang_tab.cpp" /* yacc.c:1646 */
7780 break;
7781
7782 case 338:
7783 #line 2436 "glslang.y" /* yacc.c:1646 */
7784 {
7785 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7786 (yyval.interm.type).basicType = EbtSampler;
7787 (yyval.interm.type).sampler.set(EbtFloat, EsdCube);
7788 }
7789 #line 7790 "glslang_tab.cpp" /* yacc.c:1646 */
7790 break;
7791
7792 case 339:
7793 #line 2441 "glslang.y" /* yacc.c:1646 */
7794 {
7795 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7796 (yyval.interm.type).basicType = EbtSampler;
7797 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
7798 }
7799 #line 7800 "glslang_tab.cpp" /* yacc.c:1646 */
7800 break;
7801
7802 case 340:
7803 #line 2446 "glslang.y" /* yacc.c:1646 */
7804 {
7805 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7806 (yyval.interm.type).basicType = EbtSampler;
7807 (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
7808 }
7809 #line 7810 "glslang_tab.cpp" /* yacc.c:1646 */
7810 break;
7811
7812 case 341:
7813 #line 2451 "glslang.y" /* yacc.c:1646 */
7814 {
7815 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7816 (yyval.interm.type).basicType = EbtSampler;
7817 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
7818 }
7819 #line 7820 "glslang_tab.cpp" /* yacc.c:1646 */
7820 break;
7821
7822 case 342:
7823 #line 2456 "glslang.y" /* yacc.c:1646 */
7824 {
7825 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7826 (yyval.interm.type).basicType = EbtSampler;
7827 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
7828 }
7829 #line 7830 "glslang_tab.cpp" /* yacc.c:1646 */
7830 break;
7831
7832 case 343:
7833 #line 2462 "glslang.y" /* yacc.c:1646 */
7834 {
7835 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7836 (yyval.interm.type).basicType = EbtSampler;
7837 (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
7838 }
7839 #line 7840 "glslang_tab.cpp" /* yacc.c:1646 */
7840 break;
7841
7842 case 344:
7843 #line 2467 "glslang.y" /* yacc.c:1646 */
7844 {
7845 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7846 (yyval.interm.type).basicType = EbtSampler;
7847 (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
7848 }
7849 #line 7850 "glslang_tab.cpp" /* yacc.c:1646 */
7850 break;
7851
7852 case 345:
7853 #line 2472 "glslang.y" /* yacc.c:1646 */
7854 {
7855 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7856 (yyval.interm.type).basicType = EbtSampler;
7857 (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
7858 }
7859 #line 7860 "glslang_tab.cpp" /* yacc.c:1646 */
7860 break;
7861
7862 case 346:
7863 #line 2477 "glslang.y" /* yacc.c:1646 */
7864 {
7865 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7866 (yyval.interm.type).basicType = EbtSampler;
7867 (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
7868 }
7869 #line 7870 "glslang_tab.cpp" /* yacc.c:1646 */
7870 break;
7871
7872 case 347:
7873 #line 2482 "glslang.y" /* yacc.c:1646 */
7874 {
7875 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7876 (yyval.interm.type).basicType = EbtSampler;
7877 (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
7878 }
7879 #line 7880 "glslang_tab.cpp" /* yacc.c:1646 */
7880 break;
7881
7882 case 348:
7883 #line 2487 "glslang.y" /* yacc.c:1646 */
7884 {
7885 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7886 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7887 (yyval.interm.type).basicType = EbtSampler;
7888 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D);
7889 }
7890 #line 7891 "glslang_tab.cpp" /* yacc.c:1646 */
7891 break;
7892
7893 case 349:
7894 #line 2493 "glslang.y" /* yacc.c:1646 */
7895 {
7896 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7897 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7898 (yyval.interm.type).basicType = EbtSampler;
7899 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D);
7900 }
7901 #line 7902 "glslang_tab.cpp" /* yacc.c:1646 */
7902 break;
7903
7904 case 350:
7905 #line 2499 "glslang.y" /* yacc.c:1646 */
7906 {
7907 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7908 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7909 (yyval.interm.type).basicType = EbtSampler;
7910 (yyval.interm.type).sampler.set(EbtFloat16, Esd3D);
7911 }
7912 #line 7913 "glslang_tab.cpp" /* yacc.c:1646 */
7913 break;
7914
7915 case 351:
7916 #line 2505 "glslang.y" /* yacc.c:1646 */
7917 {
7918 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7919 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7920 (yyval.interm.type).basicType = EbtSampler;
7921 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube);
7922 }
7923 #line 7924 "glslang_tab.cpp" /* yacc.c:1646 */
7924 break;
7925
7926 case 352:
7927 #line 2511 "glslang.y" /* yacc.c:1646 */
7928 {
7929 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7930 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7931 (yyval.interm.type).basicType = EbtSampler;
7932 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true);
7933 }
7934 #line 7935 "glslang_tab.cpp" /* yacc.c:1646 */
7935 break;
7936
7937 case 353:
7938 #line 2517 "glslang.y" /* yacc.c:1646 */
7939 {
7940 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7941 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7942 (yyval.interm.type).basicType = EbtSampler;
7943 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true);
7944 }
7945 #line 7946 "glslang_tab.cpp" /* yacc.c:1646 */
7946 break;
7947
7948 case 354:
7949 #line 2523 "glslang.y" /* yacc.c:1646 */
7950 {
7951 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7952 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7953 (yyval.interm.type).basicType = EbtSampler;
7954 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true);
7955 }
7956 #line 7957 "glslang_tab.cpp" /* yacc.c:1646 */
7957 break;
7958
7959 case 355:
7960 #line 2529 "glslang.y" /* yacc.c:1646 */
7961 {
7962 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7963 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7964 (yyval.interm.type).basicType = EbtSampler;
7965 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true);
7966 }
7967 #line 7968 "glslang_tab.cpp" /* yacc.c:1646 */
7968 break;
7969
7970 case 356:
7971 #line 2535 "glslang.y" /* yacc.c:1646 */
7972 {
7973 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7974 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7975 (yyval.interm.type).basicType = EbtSampler;
7976 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true);
7977 }
7978 #line 7979 "glslang_tab.cpp" /* yacc.c:1646 */
7979 break;
7980
7981 case 357:
7982 #line 2541 "glslang.y" /* yacc.c:1646 */
7983 {
7984 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7985 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7986 (yyval.interm.type).basicType = EbtSampler;
7987 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true);
7988 }
7989 #line 7990 "glslang_tab.cpp" /* yacc.c:1646 */
7990 break;
7991
7992 case 358:
7993 #line 2547 "glslang.y" /* yacc.c:1646 */
7994 {
7995 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
7996 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
7997 (yyval.interm.type).basicType = EbtSampler;
7998 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true);
7999 }
8000 #line 8001 "glslang_tab.cpp" /* yacc.c:1646 */
8001 break;
8002
8003 case 359:
8004 #line 2553 "glslang.y" /* yacc.c:1646 */
8005 {
8006 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8007 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8008 (yyval.interm.type).basicType = EbtSampler;
8009 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true);
8010 }
8011 #line 8012 "glslang_tab.cpp" /* yacc.c:1646 */
8012 break;
8013
8014 case 360:
8015 #line 2559 "glslang.y" /* yacc.c:1646 */
8016 {
8017 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8018 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8019 (yyval.interm.type).basicType = EbtSampler;
8020 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true);
8021 }
8022 #line 8023 "glslang_tab.cpp" /* yacc.c:1646 */
8023 break;
8024
8025 case 361:
8026 #line 2565 "glslang.y" /* yacc.c:1646 */
8027 {
8028 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8029 (yyval.interm.type).basicType = EbtSampler;
8030 (yyval.interm.type).sampler.set(EbtInt, Esd1D);
8031 }
8032 #line 8033 "glslang_tab.cpp" /* yacc.c:1646 */
8033 break;
8034
8035 case 362:
8036 #line 2571 "glslang.y" /* yacc.c:1646 */
8037 {
8038 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8039 (yyval.interm.type).basicType = EbtSampler;
8040 (yyval.interm.type).sampler.set(EbtInt, Esd2D);
8041 }
8042 #line 8043 "glslang_tab.cpp" /* yacc.c:1646 */
8043 break;
8044
8045 case 363:
8046 #line 2576 "glslang.y" /* yacc.c:1646 */
8047 {
8048 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8049 (yyval.interm.type).basicType = EbtSampler;
8050 (yyval.interm.type).sampler.set(EbtInt, Esd3D);
8051 }
8052 #line 8053 "glslang_tab.cpp" /* yacc.c:1646 */
8053 break;
8054
8055 case 364:
8056 #line 2581 "glslang.y" /* yacc.c:1646 */
8057 {
8058 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8059 (yyval.interm.type).basicType = EbtSampler;
8060 (yyval.interm.type).sampler.set(EbtInt, EsdCube);
8061 }
8062 #line 8063 "glslang_tab.cpp" /* yacc.c:1646 */
8063 break;
8064
8065 case 365:
8066 #line 2586 "glslang.y" /* yacc.c:1646 */
8067 {
8068 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8069 (yyval.interm.type).basicType = EbtSampler;
8070 (yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
8071 }
8072 #line 8073 "glslang_tab.cpp" /* yacc.c:1646 */
8073 break;
8074
8075 case 366:
8076 #line 2591 "glslang.y" /* yacc.c:1646 */
8077 {
8078 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8079 (yyval.interm.type).basicType = EbtSampler;
8080 (yyval.interm.type).sampler.set(EbtUint, Esd2D);
8081 }
8082 #line 8083 "glslang_tab.cpp" /* yacc.c:1646 */
8083 break;
8084
8085 case 367:
8086 #line 2596 "glslang.y" /* yacc.c:1646 */
8087 {
8088 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8089 (yyval.interm.type).basicType = EbtSampler;
8090 (yyval.interm.type).sampler.set(EbtUint, Esd3D);
8091 }
8092 #line 8093 "glslang_tab.cpp" /* yacc.c:1646 */
8093 break;
8094
8095 case 368:
8096 #line 2601 "glslang.y" /* yacc.c:1646 */
8097 {
8098 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8099 (yyval.interm.type).basicType = EbtSampler;
8100 (yyval.interm.type).sampler.set(EbtUint, EsdCube);
8101 }
8102 #line 8103 "glslang_tab.cpp" /* yacc.c:1646 */
8103 break;
8104
8105 case 369:
8106 #line 2607 "glslang.y" /* yacc.c:1646 */
8107 {
8108 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8109 (yyval.interm.type).basicType = EbtSampler;
8110 (yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
8111 }
8112 #line 8113 "glslang_tab.cpp" /* yacc.c:1646 */
8113 break;
8114
8115 case 370:
8116 #line 2612 "glslang.y" /* yacc.c:1646 */
8117 {
8118 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8119 (yyval.interm.type).basicType = EbtSampler;
8120 (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
8121 }
8122 #line 8123 "glslang_tab.cpp" /* yacc.c:1646 */
8123 break;
8124
8125 case 371:
8126 #line 2617 "glslang.y" /* yacc.c:1646 */
8127 {
8128 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8129 (yyval.interm.type).basicType = EbtSampler;
8130 (yyval.interm.type).sampler.set(EbtUint, Esd1D);
8131 }
8132 #line 8133 "glslang_tab.cpp" /* yacc.c:1646 */
8133 break;
8134
8135 case 372:
8136 #line 2622 "glslang.y" /* yacc.c:1646 */
8137 {
8138 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8139 (yyval.interm.type).basicType = EbtSampler;
8140 (yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
8141 }
8142 #line 8143 "glslang_tab.cpp" /* yacc.c:1646 */
8143 break;
8144
8145 case 373:
8146 #line 2627 "glslang.y" /* yacc.c:1646 */
8147 {
8148 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8149 (yyval.interm.type).basicType = EbtSampler;
8150 (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
8151 }
8152 #line 8153 "glslang_tab.cpp" /* yacc.c:1646 */
8153 break;
8154
8155 case 374:
8156 #line 2632 "glslang.y" /* yacc.c:1646 */
8157 {
8158 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8159 (yyval.interm.type).basicType = EbtSampler;
8160 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
8161 }
8162 #line 8163 "glslang_tab.cpp" /* yacc.c:1646 */
8163 break;
8164
8165 case 375:
8166 #line 2637 "glslang.y" /* yacc.c:1646 */
8167 {
8168 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8169 (yyval.interm.type).basicType = EbtSampler;
8170 (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
8171 }
8172 #line 8173 "glslang_tab.cpp" /* yacc.c:1646 */
8173 break;
8174
8175 case 376:
8176 #line 2642 "glslang.y" /* yacc.c:1646 */
8177 {
8178 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8179 (yyval.interm.type).basicType = EbtSampler;
8180 (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
8181 }
8182 #line 8183 "glslang_tab.cpp" /* yacc.c:1646 */
8183 break;
8184
8185 case 377:
8186 #line 2648 "glslang.y" /* yacc.c:1646 */
8187 {
8188 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8189 (yyval.interm.type).basicType = EbtSampler;
8190 (yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
8191 }
8192 #line 8193 "glslang_tab.cpp" /* yacc.c:1646 */
8193 break;
8194
8195 case 378:
8196 #line 2653 "glslang.y" /* yacc.c:1646 */
8197 {
8198 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8199 (yyval.interm.type).basicType = EbtSampler;
8200 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
8201 }
8202 #line 8203 "glslang_tab.cpp" /* yacc.c:1646 */
8203 break;
8204
8205 case 379:
8206 #line 2658 "glslang.y" /* yacc.c:1646 */
8207 {
8208 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8209 (yyval.interm.type).basicType = EbtSampler;
8210 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
8211 }
8212 #line 8213 "glslang_tab.cpp" /* yacc.c:1646 */
8213 break;
8214
8215 case 380:
8216 #line 2663 "glslang.y" /* yacc.c:1646 */
8217 {
8218 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8219 (yyval.interm.type).basicType = EbtSampler;
8220 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
8221 }
8222 #line 8223 "glslang_tab.cpp" /* yacc.c:1646 */
8223 break;
8224
8225 case 381:
8226 #line 2668 "glslang.y" /* yacc.c:1646 */
8227 {
8228 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8229 (yyval.interm.type).basicType = EbtSampler;
8230 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
8231 }
8232 #line 8233 "glslang_tab.cpp" /* yacc.c:1646 */
8233 break;
8234
8235 case 382:
8236 #line 2673 "glslang.y" /* yacc.c:1646 */
8237 {
8238 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8239 (yyval.interm.type).basicType = EbtSampler;
8240 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
8241 }
8242 #line 8243 "glslang_tab.cpp" /* yacc.c:1646 */
8243 break;
8244
8245 case 383:
8246 #line 2678 "glslang.y" /* yacc.c:1646 */
8247 {
8248 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8249 (yyval.interm.type).basicType = EbtSampler;
8250 (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
8251 }
8252 #line 8253 "glslang_tab.cpp" /* yacc.c:1646 */
8253 break;
8254
8255 case 384:
8256 #line 2683 "glslang.y" /* yacc.c:1646 */
8257 {
8258 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8259 (yyval.interm.type).basicType = EbtSampler;
8260 (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
8261 }
8262 #line 8263 "glslang_tab.cpp" /* yacc.c:1646 */
8263 break;
8264
8265 case 385:
8266 #line 2688 "glslang.y" /* yacc.c:1646 */
8267 {
8268 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8269 (yyval.interm.type).basicType = EbtSampler;
8270 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
8271 }
8272 #line 8273 "glslang_tab.cpp" /* yacc.c:1646 */
8273 break;
8274
8275 case 386:
8276 #line 2693 "glslang.y" /* yacc.c:1646 */
8277 {
8278 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8279 (yyval.interm.type).basicType = EbtSampler;
8280 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
8281 }
8282 #line 8283 "glslang_tab.cpp" /* yacc.c:1646 */
8283 break;
8284
8285 case 387:
8286 #line 2698 "glslang.y" /* yacc.c:1646 */
8287 {
8288 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8289 (yyval.interm.type).basicType = EbtSampler;
8290 (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
8291 }
8292 #line 8293 "glslang_tab.cpp" /* yacc.c:1646 */
8293 break;
8294
8295 case 388:
8296 #line 2703 "glslang.y" /* yacc.c:1646 */
8297 {
8298 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8299 (yyval.interm.type).basicType = EbtSampler;
8300 (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
8301 }
8302 #line 8303 "glslang_tab.cpp" /* yacc.c:1646 */
8303 break;
8304
8305 case 389:
8306 #line 2708 "glslang.y" /* yacc.c:1646 */
8307 {
8308 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8309 (yyval.interm.type).basicType = EbtSampler;
8310 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
8311 }
8312 #line 8313 "glslang_tab.cpp" /* yacc.c:1646 */
8313 break;
8314
8315 case 390:
8316 #line 2713 "glslang.y" /* yacc.c:1646 */
8317 {
8318 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8319 (yyval.interm.type).basicType = EbtSampler;
8320 (yyval.interm.type).sampler.setPureSampler(false);
8321 }
8322 #line 8323 "glslang_tab.cpp" /* yacc.c:1646 */
8323 break;
8324
8325 case 391:
8326 #line 2718 "glslang.y" /* yacc.c:1646 */
8327 {
8328 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8329 (yyval.interm.type).basicType = EbtSampler;
8330 (yyval.interm.type).sampler.setPureSampler(true);
8331 }
8332 #line 8333 "glslang_tab.cpp" /* yacc.c:1646 */
8333 break;
8334
8335 case 392:
8336 #line 2724 "glslang.y" /* yacc.c:1646 */
8337 {
8338 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8339 (yyval.interm.type).basicType = EbtSampler;
8340 (yyval.interm.type).sampler.set(EbtFloat, EsdRect);
8341 }
8342 #line 8343 "glslang_tab.cpp" /* yacc.c:1646 */
8343 break;
8344
8345 case 393:
8346 #line 2729 "glslang.y" /* yacc.c:1646 */
8347 {
8348 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8349 (yyval.interm.type).basicType = EbtSampler;
8350 (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
8351 }
8352 #line 8353 "glslang_tab.cpp" /* yacc.c:1646 */
8353 break;
8354
8355 case 394:
8356 #line 2734 "glslang.y" /* yacc.c:1646 */
8357 {
8358 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8359 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8360 (yyval.interm.type).basicType = EbtSampler;
8361 (yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
8362 }
8363 #line 8364 "glslang_tab.cpp" /* yacc.c:1646 */
8364 break;
8365
8366 case 395:
8367 #line 2740 "glslang.y" /* yacc.c:1646 */
8368 {
8369 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8370 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8371 (yyval.interm.type).basicType = EbtSampler;
8372 (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
8373 }
8374 #line 8375 "glslang_tab.cpp" /* yacc.c:1646 */
8375 break;
8376
8377 case 396:
8378 #line 2746 "glslang.y" /* yacc.c:1646 */
8379 {
8380 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8381 (yyval.interm.type).basicType = EbtSampler;
8382 (yyval.interm.type).sampler.set(EbtInt, EsdRect);
8383 }
8384 #line 8385 "glslang_tab.cpp" /* yacc.c:1646 */
8385 break;
8386
8387 case 397:
8388 #line 2751 "glslang.y" /* yacc.c:1646 */
8389 {
8390 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8391 (yyval.interm.type).basicType = EbtSampler;
8392 (yyval.interm.type).sampler.set(EbtUint, EsdRect);
8393 }
8394 #line 8395 "glslang_tab.cpp" /* yacc.c:1646 */
8395 break;
8396
8397 case 398:
8398 #line 2756 "glslang.y" /* yacc.c:1646 */
8399 {
8400 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8401 (yyval.interm.type).basicType = EbtSampler;
8402 (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
8403 }
8404 #line 8405 "glslang_tab.cpp" /* yacc.c:1646 */
8405 break;
8406
8407 case 399:
8408 #line 2761 "glslang.y" /* yacc.c:1646 */
8409 {
8410 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8411 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8412 (yyval.interm.type).basicType = EbtSampler;
8413 (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
8414 }
8415 #line 8416 "glslang_tab.cpp" /* yacc.c:1646 */
8416 break;
8417
8418 case 400:
8419 #line 2767 "glslang.y" /* yacc.c:1646 */
8420 {
8421 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8422 (yyval.interm.type).basicType = EbtSampler;
8423 (yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
8424 }
8425 #line 8426 "glslang_tab.cpp" /* yacc.c:1646 */
8426 break;
8427
8428 case 401:
8429 #line 2772 "glslang.y" /* yacc.c:1646 */
8430 {
8431 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8432 (yyval.interm.type).basicType = EbtSampler;
8433 (yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
8434 }
8435 #line 8436 "glslang_tab.cpp" /* yacc.c:1646 */
8436 break;
8437
8438 case 402:
8439 #line 2777 "glslang.y" /* yacc.c:1646 */
8440 {
8441 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8442 (yyval.interm.type).basicType = EbtSampler;
8443 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
8444 }
8445 #line 8446 "glslang_tab.cpp" /* yacc.c:1646 */
8446 break;
8447
8448 case 403:
8449 #line 2782 "glslang.y" /* yacc.c:1646 */
8450 {
8451 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8452 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8453 (yyval.interm.type).basicType = EbtSampler;
8454 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
8455 }
8456 #line 8457 "glslang_tab.cpp" /* yacc.c:1646 */
8457 break;
8458
8459 case 404:
8460 #line 2788 "glslang.y" /* yacc.c:1646 */
8461 {
8462 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8463 (yyval.interm.type).basicType = EbtSampler;
8464 (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
8465 }
8466 #line 8467 "glslang_tab.cpp" /* yacc.c:1646 */
8467 break;
8468
8469 case 405:
8470 #line 2793 "glslang.y" /* yacc.c:1646 */
8471 {
8472 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8473 (yyval.interm.type).basicType = EbtSampler;
8474 (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
8475 }
8476 #line 8477 "glslang_tab.cpp" /* yacc.c:1646 */
8477 break;
8478
8479 case 406:
8480 #line 2798 "glslang.y" /* yacc.c:1646 */
8481 {
8482 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8483 (yyval.interm.type).basicType = EbtSampler;
8484 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
8485 }
8486 #line 8487 "glslang_tab.cpp" /* yacc.c:1646 */
8487 break;
8488
8489 case 407:
8490 #line 2803 "glslang.y" /* yacc.c:1646 */
8491 {
8492 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
8493 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8494 (yyval.interm.type).basicType = EbtSampler;
8495 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
8496 }
8497 #line 8498 "glslang_tab.cpp" /* yacc.c:1646 */
8498 break;
8499
8500 case 408:
8501 #line 2809 "glslang.y" /* yacc.c:1646 */
8502 {
8503 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8504 (yyval.interm.type).basicType = EbtSampler;
8505 (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
8506 }
8507 #line 8508 "glslang_tab.cpp" /* yacc.c:1646 */
8508 break;
8509
8510 case 409:
8511 #line 2814 "glslang.y" /* yacc.c:1646 */
8512 {
8513 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8514 (yyval.interm.type).basicType = EbtSampler;
8515 (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
8516 }
8517 #line 8518 "glslang_tab.cpp" /* yacc.c:1646 */
8518 break;
8519
8520 case 410:
8521 #line 2819 "glslang.y" /* yacc.c:1646 */
8522 {
8523 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8524 (yyval.interm.type).basicType = EbtSampler;
8525 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
8526 }
8527 #line 8528 "glslang_tab.cpp" /* yacc.c:1646 */
8528 break;
8529
8530 case 411:
8531 #line 2824 "glslang.y" /* yacc.c:1646 */
8532 {
8533 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8534 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8535 (yyval.interm.type).basicType = EbtSampler;
8536 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
8537 }
8538 #line 8539 "glslang_tab.cpp" /* yacc.c:1646 */
8539 break;
8540
8541 case 412:
8542 #line 2830 "glslang.y" /* yacc.c:1646 */
8543 {
8544 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8545 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8546 (yyval.interm.type).basicType = EbtSampler;
8547 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
8548 }
8549 #line 8550 "glslang_tab.cpp" /* yacc.c:1646 */
8550 break;
8551
8552 case 413:
8553 #line 2836 "glslang.y" /* yacc.c:1646 */
8554 {
8555 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8556 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8557 (yyval.interm.type).basicType = EbtSampler;
8558 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
8559 }
8560 #line 8561 "glslang_tab.cpp" /* yacc.c:1646 */
8561 break;
8562
8563 case 414:
8564 #line 2842 "glslang.y" /* yacc.c:1646 */
8565 {
8566 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8567 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8568 (yyval.interm.type).basicType = EbtSampler;
8569 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
8570 }
8571 #line 8572 "glslang_tab.cpp" /* yacc.c:1646 */
8572 break;
8573
8574 case 415:
8575 #line 2848 "glslang.y" /* yacc.c:1646 */
8576 {
8577 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8578 (yyval.interm.type).basicType = EbtSampler;
8579 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
8580 }
8581 #line 8582 "glslang_tab.cpp" /* yacc.c:1646 */
8582 break;
8583
8584 case 416:
8585 #line 2853 "glslang.y" /* yacc.c:1646 */
8586 {
8587 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8588 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8589 (yyval.interm.type).basicType = EbtSampler;
8590 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
8591 }
8592 #line 8593 "glslang_tab.cpp" /* yacc.c:1646 */
8593 break;
8594
8595 case 417:
8596 #line 2859 "glslang.y" /* yacc.c:1646 */
8597 {
8598 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8599 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8600 (yyval.interm.type).basicType = EbtSampler;
8601 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true);
8602 }
8603 #line 8604 "glslang_tab.cpp" /* yacc.c:1646 */
8604 break;
8605
8606 case 418:
8607 #line 2865 "glslang.y" /* yacc.c:1646 */
8608 {
8609 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8610 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8611 (yyval.interm.type).basicType = EbtSampler;
8612 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
8613 }
8614 #line 8615 "glslang_tab.cpp" /* yacc.c:1646 */
8615 break;
8616
8617 case 419:
8618 #line 2871 "glslang.y" /* yacc.c:1646 */
8619 {
8620 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8621 (yyval.interm.type).basicType = EbtSampler;
8622 (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
8623 }
8624 #line 8625 "glslang_tab.cpp" /* yacc.c:1646 */
8625 break;
8626
8627 case 420:
8628 #line 2876 "glslang.y" /* yacc.c:1646 */
8629 {
8630 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8631 (yyval.interm.type).basicType = EbtSampler;
8632 (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
8633 }
8634 #line 8635 "glslang_tab.cpp" /* yacc.c:1646 */
8635 break;
8636
8637 case 421:
8638 #line 2881 "glslang.y" /* yacc.c:1646 */
8639 {
8640 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8641 (yyval.interm.type).basicType = EbtSampler;
8642 (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
8643 }
8644 #line 8645 "glslang_tab.cpp" /* yacc.c:1646 */
8645 break;
8646
8647 case 422:
8648 #line 2886 "glslang.y" /* yacc.c:1646 */
8649 {
8650 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8651 (yyval.interm.type).basicType = EbtSampler;
8652 (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
8653 }
8654 #line 8655 "glslang_tab.cpp" /* yacc.c:1646 */
8655 break;
8656
8657 case 423:
8658 #line 2891 "glslang.y" /* yacc.c:1646 */
8659 {
8660 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8661 (yyval.interm.type).basicType = EbtSampler;
8662 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
8663 }
8664 #line 8665 "glslang_tab.cpp" /* yacc.c:1646 */
8665 break;
8666
8667 case 424:
8668 #line 2896 "glslang.y" /* yacc.c:1646 */
8669 {
8670 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8671 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8672 (yyval.interm.type).basicType = EbtSampler;
8673 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect);
8674 }
8675 #line 8676 "glslang_tab.cpp" /* yacc.c:1646 */
8676 break;
8677
8678 case 425:
8679 #line 2902 "glslang.y" /* yacc.c:1646 */
8680 {
8681 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8682 (yyval.interm.type).basicType = EbtSampler;
8683 (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
8684 }
8685 #line 8686 "glslang_tab.cpp" /* yacc.c:1646 */
8686 break;
8687
8688 case 426:
8689 #line 2907 "glslang.y" /* yacc.c:1646 */
8690 {
8691 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8692 (yyval.interm.type).basicType = EbtSampler;
8693 (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
8694 }
8695 #line 8696 "glslang_tab.cpp" /* yacc.c:1646 */
8696 break;
8697
8698 case 427:
8699 #line 2912 "glslang.y" /* yacc.c:1646 */
8700 {
8701 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8702 (yyval.interm.type).basicType = EbtSampler;
8703 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
8704 }
8705 #line 8706 "glslang_tab.cpp" /* yacc.c:1646 */
8706 break;
8707
8708 case 428:
8709 #line 2917 "glslang.y" /* yacc.c:1646 */
8710 {
8711 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8712 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8713 (yyval.interm.type).basicType = EbtSampler;
8714 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer);
8715 }
8716 #line 8717 "glslang_tab.cpp" /* yacc.c:1646 */
8717 break;
8718
8719 case 429:
8720 #line 2923 "glslang.y" /* yacc.c:1646 */
8721 {
8722 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8723 (yyval.interm.type).basicType = EbtSampler;
8724 (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
8725 }
8726 #line 8727 "glslang_tab.cpp" /* yacc.c:1646 */
8727 break;
8728
8729 case 430:
8730 #line 2928 "glslang.y" /* yacc.c:1646 */
8731 {
8732 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8733 (yyval.interm.type).basicType = EbtSampler;
8734 (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
8735 }
8736 #line 8737 "glslang_tab.cpp" /* yacc.c:1646 */
8737 break;
8738
8739 case 431:
8740 #line 2933 "glslang.y" /* yacc.c:1646 */
8741 {
8742 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8743 (yyval.interm.type).basicType = EbtSampler;
8744 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
8745 }
8746 #line 8747 "glslang_tab.cpp" /* yacc.c:1646 */
8747 break;
8748
8749 case 432:
8750 #line 2938 "glslang.y" /* yacc.c:1646 */
8751 {
8752 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8753 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8754 (yyval.interm.type).basicType = EbtSampler;
8755 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
8756 }
8757 #line 8758 "glslang_tab.cpp" /* yacc.c:1646 */
8758 break;
8759
8760 case 433:
8761 #line 2944 "glslang.y" /* yacc.c:1646 */
8762 {
8763 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8764 (yyval.interm.type).basicType = EbtSampler;
8765 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
8766 }
8767 #line 8768 "glslang_tab.cpp" /* yacc.c:1646 */
8768 break;
8769
8770 case 434:
8771 #line 2949 "glslang.y" /* yacc.c:1646 */
8772 {
8773 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8774 (yyval.interm.type).basicType = EbtSampler;
8775 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
8776 }
8777 #line 8778 "glslang_tab.cpp" /* yacc.c:1646 */
8778 break;
8779
8780 case 435:
8781 #line 2954 "glslang.y" /* yacc.c:1646 */
8782 {
8783 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8784 (yyval.interm.type).basicType = EbtSampler;
8785 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
8786 }
8787 #line 8788 "glslang_tab.cpp" /* yacc.c:1646 */
8788 break;
8789
8790 case 436:
8791 #line 2959 "glslang.y" /* yacc.c:1646 */
8792 {
8793 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
8794 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8795 (yyval.interm.type).basicType = EbtSampler;
8796 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
8797 }
8798 #line 8799 "glslang_tab.cpp" /* yacc.c:1646 */
8799 break;
8800
8801 case 437:
8802 #line 2965 "glslang.y" /* yacc.c:1646 */
8803 {
8804 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8805 (yyval.interm.type).basicType = EbtSampler;
8806 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
8807 }
8808 #line 8809 "glslang_tab.cpp" /* yacc.c:1646 */
8809 break;
8810
8811 case 438:
8812 #line 2970 "glslang.y" /* yacc.c:1646 */
8813 {
8814 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8815 (yyval.interm.type).basicType = EbtSampler;
8816 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
8817 }
8818 #line 8819 "glslang_tab.cpp" /* yacc.c:1646 */
8819 break;
8820
8821 case 439:
8822 #line 2975 "glslang.y" /* yacc.c:1646 */
8823 {
8824 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8825 (yyval.interm.type).basicType = EbtSampler;
8826 (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
8827 }
8828 #line 8829 "glslang_tab.cpp" /* yacc.c:1646 */
8829 break;
8830
8831 case 440:
8832 #line 2980 "glslang.y" /* yacc.c:1646 */
8833 {
8834 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8835 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8836 (yyval.interm.type).basicType = EbtSampler;
8837 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D);
8838 }
8839 #line 8840 "glslang_tab.cpp" /* yacc.c:1646 */
8840 break;
8841
8842 case 441:
8843 #line 2986 "glslang.y" /* yacc.c:1646 */
8844 {
8845 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8846 (yyval.interm.type).basicType = EbtSampler;
8847 (yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
8848 }
8849 #line 8850 "glslang_tab.cpp" /* yacc.c:1646 */
8850 break;
8851
8852 case 442:
8853 #line 2991 "glslang.y" /* yacc.c:1646 */
8854 {
8855 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8856 (yyval.interm.type).basicType = EbtSampler;
8857 (yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
8858 }
8859 #line 8860 "glslang_tab.cpp" /* yacc.c:1646 */
8860 break;
8861
8862 case 443:
8863 #line 2996 "glslang.y" /* yacc.c:1646 */
8864 {
8865 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8866 (yyval.interm.type).basicType = EbtSampler;
8867 (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
8868 }
8869 #line 8870 "glslang_tab.cpp" /* yacc.c:1646 */
8870 break;
8871
8872 case 444:
8873 #line 3001 "glslang.y" /* yacc.c:1646 */
8874 {
8875 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8876 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8877 (yyval.interm.type).basicType = EbtSampler;
8878 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D);
8879 }
8880 #line 8881 "glslang_tab.cpp" /* yacc.c:1646 */
8881 break;
8882
8883 case 445:
8884 #line 3007 "glslang.y" /* yacc.c:1646 */
8885 {
8886 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8887 (yyval.interm.type).basicType = EbtSampler;
8888 (yyval.interm.type).sampler.setImage(EbtInt, Esd2D);
8889 }
8890 #line 8891 "glslang_tab.cpp" /* yacc.c:1646 */
8891 break;
8892
8893 case 446:
8894 #line 3012 "glslang.y" /* yacc.c:1646 */
8895 {
8896 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8897 (yyval.interm.type).basicType = EbtSampler;
8898 (yyval.interm.type).sampler.setImage(EbtUint, Esd2D);
8899 }
8900 #line 8901 "glslang_tab.cpp" /* yacc.c:1646 */
8901 break;
8902
8903 case 447:
8904 #line 3017 "glslang.y" /* yacc.c:1646 */
8905 {
8906 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8907 (yyval.interm.type).basicType = EbtSampler;
8908 (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
8909 }
8910 #line 8911 "glslang_tab.cpp" /* yacc.c:1646 */
8911 break;
8912
8913 case 448:
8914 #line 3022 "glslang.y" /* yacc.c:1646 */
8915 {
8916 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8917 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8918 (yyval.interm.type).basicType = EbtSampler;
8919 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D);
8920 }
8921 #line 8922 "glslang_tab.cpp" /* yacc.c:1646 */
8922 break;
8923
8924 case 449:
8925 #line 3028 "glslang.y" /* yacc.c:1646 */
8926 {
8927 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8928 (yyval.interm.type).basicType = EbtSampler;
8929 (yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
8930 }
8931 #line 8932 "glslang_tab.cpp" /* yacc.c:1646 */
8932 break;
8933
8934 case 450:
8935 #line 3033 "glslang.y" /* yacc.c:1646 */
8936 {
8937 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8938 (yyval.interm.type).basicType = EbtSampler;
8939 (yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
8940 }
8941 #line 8942 "glslang_tab.cpp" /* yacc.c:1646 */
8942 break;
8943
8944 case 451:
8945 #line 3038 "glslang.y" /* yacc.c:1646 */
8946 {
8947 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8948 (yyval.interm.type).basicType = EbtSampler;
8949 (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
8950 }
8951 #line 8952 "glslang_tab.cpp" /* yacc.c:1646 */
8952 break;
8953
8954 case 452:
8955 #line 3043 "glslang.y" /* yacc.c:1646 */
8956 {
8957 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8958 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8959 (yyval.interm.type).basicType = EbtSampler;
8960 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect);
8961 }
8962 #line 8963 "glslang_tab.cpp" /* yacc.c:1646 */
8963 break;
8964
8965 case 453:
8966 #line 3049 "glslang.y" /* yacc.c:1646 */
8967 {
8968 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8969 (yyval.interm.type).basicType = EbtSampler;
8970 (yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
8971 }
8972 #line 8973 "glslang_tab.cpp" /* yacc.c:1646 */
8973 break;
8974
8975 case 454:
8976 #line 3054 "glslang.y" /* yacc.c:1646 */
8977 {
8978 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8979 (yyval.interm.type).basicType = EbtSampler;
8980 (yyval.interm.type).sampler.setImage(EbtUint, EsdRect);
8981 }
8982 #line 8983 "glslang_tab.cpp" /* yacc.c:1646 */
8983 break;
8984
8985 case 455:
8986 #line 3059 "glslang.y" /* yacc.c:1646 */
8987 {
8988 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8989 (yyval.interm.type).basicType = EbtSampler;
8990 (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
8991 }
8992 #line 8993 "glslang_tab.cpp" /* yacc.c:1646 */
8993 break;
8994
8995 case 456:
8996 #line 3064 "glslang.y" /* yacc.c:1646 */
8997 {
8998 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
8999 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9000 (yyval.interm.type).basicType = EbtSampler;
9001 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube);
9002 }
9003 #line 9004 "glslang_tab.cpp" /* yacc.c:1646 */
9004 break;
9005
9006 case 457:
9007 #line 3070 "glslang.y" /* yacc.c:1646 */
9008 {
9009 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9010 (yyval.interm.type).basicType = EbtSampler;
9011 (yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
9012 }
9013 #line 9014 "glslang_tab.cpp" /* yacc.c:1646 */
9014 break;
9015
9016 case 458:
9017 #line 3075 "glslang.y" /* yacc.c:1646 */
9018 {
9019 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9020 (yyval.interm.type).basicType = EbtSampler;
9021 (yyval.interm.type).sampler.setImage(EbtUint, EsdCube);
9022 }
9023 #line 9024 "glslang_tab.cpp" /* yacc.c:1646 */
9024 break;
9025
9026 case 459:
9027 #line 3080 "glslang.y" /* yacc.c:1646 */
9028 {
9029 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9030 (yyval.interm.type).basicType = EbtSampler;
9031 (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
9032 }
9033 #line 9034 "glslang_tab.cpp" /* yacc.c:1646 */
9034 break;
9035
9036 case 460:
9037 #line 3085 "glslang.y" /* yacc.c:1646 */
9038 {
9039 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9040 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9041 (yyval.interm.type).basicType = EbtSampler;
9042 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer);
9043 }
9044 #line 9045 "glslang_tab.cpp" /* yacc.c:1646 */
9045 break;
9046
9047 case 461:
9048 #line 3091 "glslang.y" /* yacc.c:1646 */
9049 {
9050 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9051 (yyval.interm.type).basicType = EbtSampler;
9052 (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
9053 }
9054 #line 9055 "glslang_tab.cpp" /* yacc.c:1646 */
9055 break;
9056
9057 case 462:
9058 #line 3096 "glslang.y" /* yacc.c:1646 */
9059 {
9060 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9061 (yyval.interm.type).basicType = EbtSampler;
9062 (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer);
9063 }
9064 #line 9065 "glslang_tab.cpp" /* yacc.c:1646 */
9065 break;
9066
9067 case 463:
9068 #line 3101 "glslang.y" /* yacc.c:1646 */
9069 {
9070 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9071 (yyval.interm.type).basicType = EbtSampler;
9072 (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
9073 }
9074 #line 9075 "glslang_tab.cpp" /* yacc.c:1646 */
9075 break;
9076
9077 case 464:
9078 #line 3106 "glslang.y" /* yacc.c:1646 */
9079 {
9080 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9081 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9082 (yyval.interm.type).basicType = EbtSampler;
9083 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true);
9084 }
9085 #line 9086 "glslang_tab.cpp" /* yacc.c:1646 */
9086 break;
9087
9088 case 465:
9089 #line 3112 "glslang.y" /* yacc.c:1646 */
9090 {
9091 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9092 (yyval.interm.type).basicType = EbtSampler;
9093 (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
9094 }
9095 #line 9096 "glslang_tab.cpp" /* yacc.c:1646 */
9096 break;
9097
9098 case 466:
9099 #line 3117 "glslang.y" /* yacc.c:1646 */
9100 {
9101 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9102 (yyval.interm.type).basicType = EbtSampler;
9103 (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true);
9104 }
9105 #line 9106 "glslang_tab.cpp" /* yacc.c:1646 */
9106 break;
9107
9108 case 467:
9109 #line 3122 "glslang.y" /* yacc.c:1646 */
9110 {
9111 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9112 (yyval.interm.type).basicType = EbtSampler;
9113 (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
9114 }
9115 #line 9116 "glslang_tab.cpp" /* yacc.c:1646 */
9116 break;
9117
9118 case 468:
9119 #line 3127 "glslang.y" /* yacc.c:1646 */
9120 {
9121 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9122 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9123 (yyval.interm.type).basicType = EbtSampler;
9124 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true);
9125 }
9126 #line 9127 "glslang_tab.cpp" /* yacc.c:1646 */
9127 break;
9128
9129 case 469:
9130 #line 3133 "glslang.y" /* yacc.c:1646 */
9131 {
9132 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9133 (yyval.interm.type).basicType = EbtSampler;
9134 (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
9135 }
9136 #line 9137 "glslang_tab.cpp" /* yacc.c:1646 */
9137 break;
9138
9139 case 470:
9140 #line 3138 "glslang.y" /* yacc.c:1646 */
9141 {
9142 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9143 (yyval.interm.type).basicType = EbtSampler;
9144 (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
9145 }
9146 #line 9147 "glslang_tab.cpp" /* yacc.c:1646 */
9147 break;
9148
9149 case 471:
9150 #line 3143 "glslang.y" /* yacc.c:1646 */
9151 {
9152 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9153 (yyval.interm.type).basicType = EbtSampler;
9154 (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
9155 }
9156 #line 9157 "glslang_tab.cpp" /* yacc.c:1646 */
9157 break;
9158
9159 case 472:
9160 #line 3148 "glslang.y" /* yacc.c:1646 */
9161 {
9162 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9163 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9164 (yyval.interm.type).basicType = EbtSampler;
9165 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true);
9166 }
9167 #line 9168 "glslang_tab.cpp" /* yacc.c:1646 */
9168 break;
9169
9170 case 473:
9171 #line 3154 "glslang.y" /* yacc.c:1646 */
9172 {
9173 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9174 (yyval.interm.type).basicType = EbtSampler;
9175 (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
9176 }
9177 #line 9178 "glslang_tab.cpp" /* yacc.c:1646 */
9178 break;
9179
9180 case 474:
9181 #line 3159 "glslang.y" /* yacc.c:1646 */
9182 {
9183 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9184 (yyval.interm.type).basicType = EbtSampler;
9185 (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
9186 }
9187 #line 9188 "glslang_tab.cpp" /* yacc.c:1646 */
9188 break;
9189
9190 case 475:
9191 #line 3164 "glslang.y" /* yacc.c:1646 */
9192 {
9193 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9194 (yyval.interm.type).basicType = EbtSampler;
9195 (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
9196 }
9197 #line 9198 "glslang_tab.cpp" /* yacc.c:1646 */
9198 break;
9199
9200 case 476:
9201 #line 3169 "glslang.y" /* yacc.c:1646 */
9202 {
9203 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9204 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9205 (yyval.interm.type).basicType = EbtSampler;
9206 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true);
9207 }
9208 #line 9209 "glslang_tab.cpp" /* yacc.c:1646 */
9209 break;
9210
9211 case 477:
9212 #line 3175 "glslang.y" /* yacc.c:1646 */
9213 {
9214 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9215 (yyval.interm.type).basicType = EbtSampler;
9216 (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
9217 }
9218 #line 9219 "glslang_tab.cpp" /* yacc.c:1646 */
9219 break;
9220
9221 case 478:
9222 #line 3180 "glslang.y" /* yacc.c:1646 */
9223 {
9224 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9225 (yyval.interm.type).basicType = EbtSampler;
9226 (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
9227 }
9228 #line 9229 "glslang_tab.cpp" /* yacc.c:1646 */
9229 break;
9230
9231 case 479:
9232 #line 3185 "glslang.y" /* yacc.c:1646 */
9233 {
9234 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9235 (yyval.interm.type).basicType = EbtSampler;
9236 (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
9237 }
9238 #line 9239 "glslang_tab.cpp" /* yacc.c:1646 */
9239 break;
9240
9241 case 480:
9242 #line 3190 "glslang.y" /* yacc.c:1646 */
9243 {
9244 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
9245 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9246 (yyval.interm.type).basicType = EbtSampler;
9247 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true);
9248 }
9249 #line 9250 "glslang_tab.cpp" /* yacc.c:1646 */
9250 break;
9251
9252 case 481:
9253 #line 3196 "glslang.y" /* yacc.c:1646 */
9254 {
9255 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9256 (yyval.interm.type).basicType = EbtSampler;
9257 (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
9258 }
9259 #line 9260 "glslang_tab.cpp" /* yacc.c:1646 */
9260 break;
9261
9262 case 482:
9263 #line 3201 "glslang.y" /* yacc.c:1646 */
9264 {
9265 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9266 (yyval.interm.type).basicType = EbtSampler;
9267 (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
9268 }
9269 #line 9270 "glslang_tab.cpp" /* yacc.c:1646 */
9270 break;
9271
9272 case 483:
9273 #line 3206 "glslang.y" /* yacc.c:1646 */
9274 { // GL_OES_EGL_image_external
9275 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9276 (yyval.interm.type).basicType = EbtSampler;
9277 (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
9278 (yyval.interm.type).sampler.external = true;
9279 }
9280 #line 9281 "glslang_tab.cpp" /* yacc.c:1646 */
9281 break;
9282
9283 case 484:
9284 #line 3212 "glslang.y" /* yacc.c:1646 */
9285 { // GL_EXT_YUV_target
9286 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9287 (yyval.interm.type).basicType = EbtSampler;
9288 (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
9289 (yyval.interm.type).sampler.yuv = true;
9290 }
9291 #line 9292 "glslang_tab.cpp" /* yacc.c:1646 */
9292 break;
9293
9294 case 485:
9295 #line 3218 "glslang.y" /* yacc.c:1646 */
9296 {
9297 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9298 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9299 (yyval.interm.type).basicType = EbtSampler;
9300 (yyval.interm.type).sampler.setSubpass(EbtFloat);
9301 }
9302 #line 9303 "glslang_tab.cpp" /* yacc.c:1646 */
9303 break;
9304
9305 case 486:
9306 #line 3224 "glslang.y" /* yacc.c:1646 */
9307 {
9308 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9309 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9310 (yyval.interm.type).basicType = EbtSampler;
9311 (yyval.interm.type).sampler.setSubpass(EbtFloat, true);
9312 }
9313 #line 9314 "glslang_tab.cpp" /* yacc.c:1646 */
9314 break;
9315
9316 case 487:
9317 #line 3230 "glslang.y" /* yacc.c:1646 */
9318 {
9319 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
9320 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9321 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9322 (yyval.interm.type).basicType = EbtSampler;
9323 (yyval.interm.type).sampler.setSubpass(EbtFloat16);
9324 }
9325 #line 9326 "glslang_tab.cpp" /* yacc.c:1646 */
9326 break;
9327
9328 case 488:
9329 #line 3237 "glslang.y" /* yacc.c:1646 */
9330 {
9331 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
9332 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9333 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9334 (yyval.interm.type).basicType = EbtSampler;
9335 (yyval.interm.type).sampler.setSubpass(EbtFloat16, true);
9336 }
9337 #line 9338 "glslang_tab.cpp" /* yacc.c:1646 */
9338 break;
9339
9340 case 489:
9341 #line 3244 "glslang.y" /* yacc.c:1646 */
9342 {
9343 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9344 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9345 (yyval.interm.type).basicType = EbtSampler;
9346 (yyval.interm.type).sampler.setSubpass(EbtInt);
9347 }
9348 #line 9349 "glslang_tab.cpp" /* yacc.c:1646 */
9349 break;
9350
9351 case 490:
9352 #line 3250 "glslang.y" /* yacc.c:1646 */
9353 {
9354 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9355 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9356 (yyval.interm.type).basicType = EbtSampler;
9357 (yyval.interm.type).sampler.setSubpass(EbtInt, true);
9358 }
9359 #line 9360 "glslang_tab.cpp" /* yacc.c:1646 */
9360 break;
9361
9362 case 491:
9363 #line 3256 "glslang.y" /* yacc.c:1646 */
9364 {
9365 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9366 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9367 (yyval.interm.type).basicType = EbtSampler;
9368 (yyval.interm.type).sampler.setSubpass(EbtUint);
9369 }
9370 #line 9371 "glslang_tab.cpp" /* yacc.c:1646 */
9371 break;
9372
9373 case 492:
9374 #line 3262 "glslang.y" /* yacc.c:1646 */
9375 {
9376 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
9377 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9378 (yyval.interm.type).basicType = EbtSampler;
9379 (yyval.interm.type).sampler.setSubpass(EbtUint, true);
9380 }
9381 #line 9382 "glslang_tab.cpp" /* yacc.c:1646 */
9382 break;
9383
9384 case 493:
9385 #line 3268 "glslang.y" /* yacc.c:1646 */
9386 {
9387 parseContext.fcoopmatCheck((yyvsp[0].lex).loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
9388 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9389 (yyval.interm.type).basicType = EbtFloat;
9390 (yyval.interm.type).coopmat = true;
9391 }
9392 #line 9393 "glslang_tab.cpp" /* yacc.c:1646 */
9393 break;
9394
9395 case 494:
9396 #line 3274 "glslang.y" /* yacc.c:1646 */
9397 {
9398 parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel());
9399 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9400 (yyval.interm.type).basicType = EbtInt;
9401 (yyval.interm.type).coopmat = true;
9402 }
9403 #line 9404 "glslang_tab.cpp" /* yacc.c:1646 */
9404 break;
9405
9406 case 495:
9407 #line 3280 "glslang.y" /* yacc.c:1646 */
9408 {
9409 parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel());
9410 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9411 (yyval.interm.type).basicType = EbtUint;
9412 (yyval.interm.type).coopmat = true;
9413 }
9414 #line 9415 "glslang_tab.cpp" /* yacc.c:1646 */
9415 break;
9416
9417 case 496:
9418 #line 3287 "glslang.y" /* yacc.c:1646 */
9419 {
9420 (yyval.interm.type) = (yyvsp[0].interm.type);
9421 (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
9422 parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
9423 }
9424 #line 9425 "glslang_tab.cpp" /* yacc.c:1646 */
9425 break;
9426
9427 case 497:
9428 #line 3292 "glslang.y" /* yacc.c:1646 */
9429 {
9430 //
9431 // This is for user defined type names. The lexical phase looked up the
9432 // type.
9433 //
9434 if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) {
9435 const TType& structure = variable->getType();
9436 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9437 (yyval.interm.type).basicType = EbtStruct;
9438 (yyval.interm.type).userDef = &structure;
9439 } else
9440 parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
9441 }
9442 #line 9443 "glslang_tab.cpp" /* yacc.c:1646 */
9443 break;
9444
9445 case 498:
9446 #line 3308 "glslang.y" /* yacc.c:1646 */
9447 {
9448 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
9449 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9450 parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
9451 }
9452 #line 9453 "glslang_tab.cpp" /* yacc.c:1646 */
9453 break;
9454
9455 case 499:
9456 #line 3313 "glslang.y" /* yacc.c:1646 */
9457 {
9458 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
9459 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9460 parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
9461 }
9462 #line 9463 "glslang_tab.cpp" /* yacc.c:1646 */
9463 break;
9464
9465 case 500:
9466 #line 3318 "glslang.y" /* yacc.c:1646 */
9467 {
9468 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
9469 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9470 parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
9471 }
9472 #line 9473 "glslang_tab.cpp" /* yacc.c:1646 */
9473 break;
9474
9475 case 501:
9476 #line 3326 "glslang.y" /* yacc.c:1646 */
9477 { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
9478 #line 9479 "glslang_tab.cpp" /* yacc.c:1646 */
9479 break;
9480
9481 case 502:
9482 #line 3326 "glslang.y" /* yacc.c:1646 */
9483 {
9484 TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
9485 parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
9486 TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true);
9487 if (! parseContext.symbolTable.insert(*userTypeDef))
9488 parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct");
9489 (yyval.interm.type).init((yyvsp[-5].lex).loc);
9490 (yyval.interm.type).basicType = EbtStruct;
9491 (yyval.interm.type).userDef = structure;
9492 --parseContext.structNestingLevel;
9493 }
9494 #line 9495 "glslang_tab.cpp" /* yacc.c:1646 */
9495 break;
9496
9497 case 503:
9498 #line 3337 "glslang.y" /* yacc.c:1646 */
9499 { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
9500 #line 9501 "glslang_tab.cpp" /* yacc.c:1646 */
9501 break;
9502
9503 case 504:
9504 #line 3337 "glslang.y" /* yacc.c:1646 */
9505 {
9506 TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
9507 (yyval.interm.type).init((yyvsp[-4].lex).loc);
9508 (yyval.interm.type).basicType = EbtStruct;
9509 (yyval.interm.type).userDef = structure;
9510 --parseContext.structNestingLevel;
9511 }
9512 #line 9513 "glslang_tab.cpp" /* yacc.c:1646 */
9513 break;
9514
9515 case 505:
9516 #line 3347 "glslang.y" /* yacc.c:1646 */
9517 {
9518 (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
9519 }
9520 #line 9521 "glslang_tab.cpp" /* yacc.c:1646 */
9521 break;
9522
9523 case 506:
9524 #line 3350 "glslang.y" /* yacc.c:1646 */
9525 {
9526 (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
9527 for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
9528 for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) {
9529 if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName())
9530 parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str());
9531 }
9532 (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
9533 }
9534 }
9535 #line 9536 "glslang_tab.cpp" /* yacc.c:1646 */
9536 break;
9537
9538 case 507:
9539 #line 3363 "glslang.y" /* yacc.c:1646 */
9540 {
9541 if ((yyvsp[-2].interm.type).arraySizes) {
9542 parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
9543 parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
9544 if (parseContext.isEsProfile())
9545 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
9546 }
9547
9548 (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
9549
9550 parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
9551 parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
9552
9553 for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
9554 TType type((yyvsp[-2].interm.type));
9555 type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
9556 type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
9557 type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
9558 parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
9559 (*(yyval.interm.typeList))[i].type->shallowCopy(type);
9560 }
9561 }
9562 #line 9563 "glslang_tab.cpp" /* yacc.c:1646 */
9563 break;
9564
9565 case 508:
9566 #line 3385 "glslang.y" /* yacc.c:1646 */
9567 {
9568 if ((yyvsp[-2].interm.type).arraySizes) {
9569 parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
9570 parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
9571 if (parseContext.isEsProfile())
9572 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
9573 }
9574
9575 (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
9576
9577 parseContext.memberQualifierCheck((yyvsp[-3].interm.type));
9578 parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
9579 parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true);
9580 parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
9581
9582 for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
9583 TType type((yyvsp[-2].interm.type));
9584 type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
9585 type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
9586 type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
9587 parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
9588 (*(yyval.interm.typeList))[i].type->shallowCopy(type);
9589 }
9590 }
9591 #line 9592 "glslang_tab.cpp" /* yacc.c:1646 */
9592 break;
9593
9594 case 509:
9595 #line 3412 "glslang.y" /* yacc.c:1646 */
9596 {
9597 (yyval.interm.typeList) = new TTypeList;
9598 (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
9599 }
9600 #line 9601 "glslang_tab.cpp" /* yacc.c:1646 */
9601 break;
9602
9603 case 510:
9604 #line 3416 "glslang.y" /* yacc.c:1646 */
9605 {
9606 (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
9607 }
9608 #line 9609 "glslang_tab.cpp" /* yacc.c:1646 */
9609 break;
9610
9611 case 511:
9612 #line 3422 "glslang.y" /* yacc.c:1646 */
9613 {
9614 (yyval.interm.typeLine).type = new TType(EbtVoid);
9615 (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
9616 (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
9617 }
9618 #line 9619 "glslang_tab.cpp" /* yacc.c:1646 */
9619 break;
9620
9621 case 512:
9622 #line 3427 "glslang.y" /* yacc.c:1646 */
9623 {
9624 parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
9625
9626 (yyval.interm.typeLine).type = new TType(EbtVoid);
9627 (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc;
9628 (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
9629 (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
9630 }
9631 #line 9632 "glslang_tab.cpp" /* yacc.c:1646 */
9632 break;
9633
9634 case 513:
9635 #line 3438 "glslang.y" /* yacc.c:1646 */
9636 {
9637 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
9638 }
9639 #line 9640 "glslang_tab.cpp" /* yacc.c:1646 */
9640 break;
9641
9642 case 514:
9643 #line 3442 "glslang.y" /* yacc.c:1646 */
9644 {
9645 const char* initFeature = "{ } style initializers";
9646 parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
9647 parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
9648 (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
9649 }
9650 #line 9651 "glslang_tab.cpp" /* yacc.c:1646 */
9651 break;
9652
9653 case 515:
9654 #line 3448 "glslang.y" /* yacc.c:1646 */
9655 {
9656 const char* initFeature = "{ } style initializers";
9657 parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
9658 parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
9659 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
9660 }
9661 #line 9662 "glslang_tab.cpp" /* yacc.c:1646 */
9662 break;
9663
9664 case 516:
9665 #line 3459 "glslang.y" /* yacc.c:1646 */
9666 {
9667 (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
9668 }
9669 #line 9670 "glslang_tab.cpp" /* yacc.c:1646 */
9670 break;
9671
9672 case 517:
9673 #line 3462 "glslang.y" /* yacc.c:1646 */
9674 {
9675 (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
9676 }
9677 #line 9678 "glslang_tab.cpp" /* yacc.c:1646 */
9678 break;
9679
9680 case 518:
9681 #line 3469 "glslang.y" /* yacc.c:1646 */
9682 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9683 #line 9684 "glslang_tab.cpp" /* yacc.c:1646 */
9684 break;
9685
9686 case 519:
9687 #line 3473 "glslang.y" /* yacc.c:1646 */
9688 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9689 #line 9690 "glslang_tab.cpp" /* yacc.c:1646 */
9690 break;
9691
9692 case 520:
9693 #line 3474 "glslang.y" /* yacc.c:1646 */
9694 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9695 #line 9696 "glslang_tab.cpp" /* yacc.c:1646 */
9696 break;
9697
9698 case 521:
9699 #line 3480 "glslang.y" /* yacc.c:1646 */
9700 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9701 #line 9702 "glslang_tab.cpp" /* yacc.c:1646 */
9702 break;
9703
9704 case 522:
9705 #line 3481 "glslang.y" /* yacc.c:1646 */
9706 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9707 #line 9708 "glslang_tab.cpp" /* yacc.c:1646 */
9708 break;
9709
9710 case 523:
9711 #line 3482 "glslang.y" /* yacc.c:1646 */
9712 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9713 #line 9714 "glslang_tab.cpp" /* yacc.c:1646 */
9714 break;
9715
9716 case 524:
9717 #line 3483 "glslang.y" /* yacc.c:1646 */
9718 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9719 #line 9720 "glslang_tab.cpp" /* yacc.c:1646 */
9720 break;
9721
9722 case 525:
9723 #line 3484 "glslang.y" /* yacc.c:1646 */
9724 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9725 #line 9726 "glslang_tab.cpp" /* yacc.c:1646 */
9726 break;
9727
9728 case 526:
9729 #line 3485 "glslang.y" /* yacc.c:1646 */
9730 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9731 #line 9732 "glslang_tab.cpp" /* yacc.c:1646 */
9732 break;
9733
9734 case 527:
9735 #line 3486 "glslang.y" /* yacc.c:1646 */
9736 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9737 #line 9738 "glslang_tab.cpp" /* yacc.c:1646 */
9738 break;
9739
9740 case 528:
9741 #line 3488 "glslang.y" /* yacc.c:1646 */
9742 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9743 #line 9744 "glslang_tab.cpp" /* yacc.c:1646 */
9744 break;
9745
9746 case 529:
9747 #line 3494 "glslang.y" /* yacc.c:1646 */
9748 {
9749 parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "demote");
9750 parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_demote_to_helper_invocation, "demote");
9751 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDemote, (yyvsp[-1].lex).loc);
9752 }
9753 #line 9754 "glslang_tab.cpp" /* yacc.c:1646 */
9754 break;
9755
9756 case 530:
9757 #line 3503 "glslang.y" /* yacc.c:1646 */
9758 { (yyval.interm.intermNode) = 0; }
9759 #line 9760 "glslang_tab.cpp" /* yacc.c:1646 */
9760 break;
9761
9762 case 531:
9763 #line 3504 "glslang.y" /* yacc.c:1646 */
9764 {
9765 parseContext.symbolTable.push();
9766 ++parseContext.statementNestingLevel;
9767 }
9768 #line 9769 "glslang_tab.cpp" /* yacc.c:1646 */
9769 break;
9770
9771 case 532:
9772 #line 3508 "glslang.y" /* yacc.c:1646 */
9773 {
9774 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9775 --parseContext.statementNestingLevel;
9776 }
9777 #line 9778 "glslang_tab.cpp" /* yacc.c:1646 */
9778 break;
9779
9780 case 533:
9781 #line 3512 "glslang.y" /* yacc.c:1646 */
9782 {
9783 if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate())
9784 (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
9785 (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode);
9786 }
9787 #line 9788 "glslang_tab.cpp" /* yacc.c:1646 */
9788 break;
9789
9790 case 534:
9791 #line 3520 "glslang.y" /* yacc.c:1646 */
9792 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9793 #line 9794 "glslang_tab.cpp" /* yacc.c:1646 */
9794 break;
9795
9796 case 535:
9797 #line 3521 "glslang.y" /* yacc.c:1646 */
9798 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
9799 #line 9800 "glslang_tab.cpp" /* yacc.c:1646 */
9800 break;
9801
9802 case 536:
9803 #line 3525 "glslang.y" /* yacc.c:1646 */
9804 {
9805 ++parseContext.controlFlowNestingLevel;
9806 }
9807 #line 9808 "glslang_tab.cpp" /* yacc.c:1646 */
9808 break;
9809
9810 case 537:
9811 #line 3528 "glslang.y" /* yacc.c:1646 */
9812 {
9813 --parseContext.controlFlowNestingLevel;
9814 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9815 }
9816 #line 9817 "glslang_tab.cpp" /* yacc.c:1646 */
9817 break;
9818
9819 case 538:
9820 #line 3532 "glslang.y" /* yacc.c:1646 */
9821 {
9822 parseContext.symbolTable.push();
9823 ++parseContext.statementNestingLevel;
9824 ++parseContext.controlFlowNestingLevel;
9825 }
9826 #line 9827 "glslang_tab.cpp" /* yacc.c:1646 */
9827 break;
9828
9829 case 539:
9830 #line 3537 "glslang.y" /* yacc.c:1646 */
9831 {
9832 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
9833 --parseContext.statementNestingLevel;
9834 --parseContext.controlFlowNestingLevel;
9835 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9836 }
9837 #line 9838 "glslang_tab.cpp" /* yacc.c:1646 */
9838 break;
9839
9840 case 540:
9841 #line 3546 "glslang.y" /* yacc.c:1646 */
9842 {
9843 (yyval.interm.intermNode) = 0;
9844 }
9845 #line 9846 "glslang_tab.cpp" /* yacc.c:1646 */
9846 break;
9847
9848 case 541:
9849 #line 3549 "glslang.y" /* yacc.c:1646 */
9850 {
9851 if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate())
9852 (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
9853 (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode);
9854 }
9855 #line 9856 "glslang_tab.cpp" /* yacc.c:1646 */
9856 break;
9857
9858 case 542:
9859 #line 3557 "glslang.y" /* yacc.c:1646 */
9860 {
9861 (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
9862 if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
9863 (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
9864 parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode));
9865 (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case
9866 }
9867 }
9868 #line 9869 "glslang_tab.cpp" /* yacc.c:1646 */
9869 break;
9870
9871 case 543:
9872 #line 3565 "glslang.y" /* yacc.c:1646 */
9873 {
9874 if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
9875 (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
9876 parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode));
9877 (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case
9878 } else
9879 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
9880 }
9881 #line 9882 "glslang_tab.cpp" /* yacc.c:1646 */
9882 break;
9883
9884 case 544:
9885 #line 3576 "glslang.y" /* yacc.c:1646 */
9886 { (yyval.interm.intermNode) = 0; }
9887 #line 9888 "glslang_tab.cpp" /* yacc.c:1646 */
9888 break;
9889
9890 case 545:
9891 #line 3577 "glslang.y" /* yacc.c:1646 */
9892 { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
9893 #line 9894 "glslang_tab.cpp" /* yacc.c:1646 */
9894 break;
9895
9896 case 546:
9897 #line 3581 "glslang.y" /* yacc.c:1646 */
9898 {
9899 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9900 }
9901 #line 9902 "glslang_tab.cpp" /* yacc.c:1646 */
9902 break;
9903
9904 case 547:
9905 #line 3585 "glslang.y" /* yacc.c:1646 */
9906 {
9907 parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
9908 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9909 }
9910 #line 9911 "glslang_tab.cpp" /* yacc.c:1646 */
9911 break;
9912
9913 case 548:
9914 #line 3592 "glslang.y" /* yacc.c:1646 */
9915 {
9916 parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
9917 (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
9918 }
9919 #line 9920 "glslang_tab.cpp" /* yacc.c:1646 */
9920 break;
9921
9922 case 549:
9923 #line 3599 "glslang.y" /* yacc.c:1646 */
9924 {
9925 (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
9926 (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
9927 }
9928 #line 9929 "glslang_tab.cpp" /* yacc.c:1646 */
9929 break;
9930
9931 case 550:
9932 #line 3603 "glslang.y" /* yacc.c:1646 */
9933 {
9934 (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
9935 (yyval.interm.nodePair).node2 = 0;
9936 }
9937 #line 9938 "glslang_tab.cpp" /* yacc.c:1646 */
9938 break;
9939
9940 case 551:
9941 #line 3611 "glslang.y" /* yacc.c:1646 */
9942 {
9943 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
9944 parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
9945 }
9946 #line 9947 "glslang_tab.cpp" /* yacc.c:1646 */
9947 break;
9948
9949 case 552:
9950 #line 3615 "glslang.y" /* yacc.c:1646 */
9951 {
9952 parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
9953
9954 TType type((yyvsp[-3].interm.type));
9955 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
9956 if (initNode)
9957 (yyval.interm.intermTypedNode) = initNode->getAsTyped();
9958 else
9959 (yyval.interm.intermTypedNode) = 0;
9960 }
9961 #line 9962 "glslang_tab.cpp" /* yacc.c:1646 */
9962 break;
9963
9964 case 553:
9965 #line 3628 "glslang.y" /* yacc.c:1646 */
9966 {
9967 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9968 }
9969 #line 9970 "glslang_tab.cpp" /* yacc.c:1646 */
9970 break;
9971
9972 case 554:
9973 #line 3632 "glslang.y" /* yacc.c:1646 */
9974 {
9975 parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
9976 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
9977 }
9978 #line 9979 "glslang_tab.cpp" /* yacc.c:1646 */
9979 break;
9980
9981 case 555:
9982 #line 3639 "glslang.y" /* yacc.c:1646 */
9983 {
9984 // start new switch sequence on the switch stack
9985 ++parseContext.controlFlowNestingLevel;
9986 ++parseContext.statementNestingLevel;
9987 parseContext.switchSequenceStack.push_back(new TIntermSequence);
9988 parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
9989 parseContext.symbolTable.push();
9990 }
9991 #line 9992 "glslang_tab.cpp" /* yacc.c:1646 */
9992 break;
9993
9994 case 556:
9995 #line 3647 "glslang.y" /* yacc.c:1646 */
9996 {
9997 (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
9998 delete parseContext.switchSequenceStack.back();
9999 parseContext.switchSequenceStack.pop_back();
10000 parseContext.switchLevel.pop_back();
10001 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10002 --parseContext.statementNestingLevel;
10003 --parseContext.controlFlowNestingLevel;
10004 }
10005 #line 10006 "glslang_tab.cpp" /* yacc.c:1646 */
10006 break;
10007
10008 case 557:
10009 #line 3659 "glslang.y" /* yacc.c:1646 */
10010 {
10011 (yyval.interm.intermNode) = 0;
10012 }
10013 #line 10014 "glslang_tab.cpp" /* yacc.c:1646 */
10014 break;
10015
10016 case 558:
10017 #line 3662 "glslang.y" /* yacc.c:1646 */
10018 {
10019 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10020 }
10021 #line 10022 "glslang_tab.cpp" /* yacc.c:1646 */
10022 break;
10023
10024 case 559:
10025 #line 3668 "glslang.y" /* yacc.c:1646 */
10026 {
10027 (yyval.interm.intermNode) = 0;
10028 if (parseContext.switchLevel.size() == 0)
10029 parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", "");
10030 else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
10031 parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", "");
10032 else {
10033 parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case");
10034 parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case");
10035 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
10036 }
10037 }
10038 #line 10039 "glslang_tab.cpp" /* yacc.c:1646 */
10039 break;
10040
10041 case 560:
10042 #line 3680 "glslang.y" /* yacc.c:1646 */
10043 {
10044 (yyval.interm.intermNode) = 0;
10045 if (parseContext.switchLevel.size() == 0)
10046 parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", "");
10047 else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
10048 parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", "");
10049 else
10050 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
10051 }
10052 #line 10053 "glslang_tab.cpp" /* yacc.c:1646 */
10053 break;
10054
10055 case 561:
10056 #line 3692 "glslang.y" /* yacc.c:1646 */
10057 {
10058 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10059 }
10060 #line 10061 "glslang_tab.cpp" /* yacc.c:1646 */
10061 break;
10062
10063 case 562:
10064 #line 3696 "glslang.y" /* yacc.c:1646 */
10065 {
10066 parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
10067 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10068 }
10069 #line 10070 "glslang_tab.cpp" /* yacc.c:1646 */
10070 break;
10071
10072 case 563:
10073 #line 3703 "glslang.y" /* yacc.c:1646 */
10074 {
10075 if (! parseContext.limits.whileLoops)
10076 parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
10077 parseContext.symbolTable.push();
10078 ++parseContext.loopNestingLevel;
10079 ++parseContext.statementNestingLevel;
10080 ++parseContext.controlFlowNestingLevel;
10081 }
10082 #line 10083 "glslang_tab.cpp" /* yacc.c:1646 */
10083 break;
10084
10085 case 564:
10086 #line 3711 "glslang.y" /* yacc.c:1646 */
10087 {
10088 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10089 (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
10090 --parseContext.loopNestingLevel;
10091 --parseContext.statementNestingLevel;
10092 --parseContext.controlFlowNestingLevel;
10093 }
10094 #line 10095 "glslang_tab.cpp" /* yacc.c:1646 */
10095 break;
10096
10097 case 565:
10098 #line 3718 "glslang.y" /* yacc.c:1646 */
10099 {
10100 ++parseContext.loopNestingLevel;
10101 ++parseContext.statementNestingLevel;
10102 ++parseContext.controlFlowNestingLevel;
10103 }
10104 #line 10105 "glslang_tab.cpp" /* yacc.c:1646 */
10105 break;
10106
10107 case 566:
10108 #line 3723 "glslang.y" /* yacc.c:1646 */
10109 {
10110 if (! parseContext.limits.whileLoops)
10111 parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
10112
10113 parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode));
10114
10115 (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc);
10116 --parseContext.loopNestingLevel;
10117 --parseContext.statementNestingLevel;
10118 --parseContext.controlFlowNestingLevel;
10119 }
10120 #line 10121 "glslang_tab.cpp" /* yacc.c:1646 */
10121 break;
10122
10123 case 567:
10124 #line 3734 "glslang.y" /* yacc.c:1646 */
10125 {
10126 parseContext.symbolTable.push();
10127 ++parseContext.loopNestingLevel;
10128 ++parseContext.statementNestingLevel;
10129 ++parseContext.controlFlowNestingLevel;
10130 }
10131 #line 10132 "glslang_tab.cpp" /* yacc.c:1646 */
10132 break;
10133
10134 case 568:
10135 #line 3740 "glslang.y" /* yacc.c:1646 */
10136 {
10137 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10138 (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
10139 TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node1), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node2), true, (yyvsp[-6].lex).loc);
10140 if (! parseContext.limits.nonInductiveForLoops)
10141 parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop);
10142 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc);
10143 (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
10144 --parseContext.loopNestingLevel;
10145 --parseContext.statementNestingLevel;
10146 --parseContext.controlFlowNestingLevel;
10147 }
10148 #line 10149 "glslang_tab.cpp" /* yacc.c:1646 */
10149 break;
10150
10151 case 569:
10152 #line 3755 "glslang.y" /* yacc.c:1646 */
10153 {
10154 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10155 }
10156 #line 10157 "glslang_tab.cpp" /* yacc.c:1646 */
10157 break;
10158
10159 case 570:
10160 #line 3758 "glslang.y" /* yacc.c:1646 */
10161 {
10162 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10163 }
10164 #line 10165 "glslang_tab.cpp" /* yacc.c:1646 */
10165 break;
10166
10167 case 571:
10168 #line 3764 "glslang.y" /* yacc.c:1646 */
10169 {
10170 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
10171 }
10172 #line 10173 "glslang_tab.cpp" /* yacc.c:1646 */
10173 break;
10174
10175 case 572:
10176 #line 3767 "glslang.y" /* yacc.c:1646 */
10177 {
10178 (yyval.interm.intermTypedNode) = 0;
10179 }
10180 #line 10181 "glslang_tab.cpp" /* yacc.c:1646 */
10181 break;
10182
10183 case 573:
10184 #line 3773 "glslang.y" /* yacc.c:1646 */
10185 {
10186 (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
10187 (yyval.interm.nodePair).node2 = 0;
10188 }
10189 #line 10190 "glslang_tab.cpp" /* yacc.c:1646 */
10190 break;
10191
10192 case 574:
10193 #line 3777 "glslang.y" /* yacc.c:1646 */
10194 {
10195 (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
10196 (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
10197 }
10198 #line 10199 "glslang_tab.cpp" /* yacc.c:1646 */
10199 break;
10200
10201 case 575:
10202 #line 3784 "glslang.y" /* yacc.c:1646 */
10203 {
10204 if (parseContext.loopNestingLevel <= 0)
10205 parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
10206 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
10207 }
10208 #line 10209 "glslang_tab.cpp" /* yacc.c:1646 */
10209 break;
10210
10211 case 576:
10212 #line 3789 "glslang.y" /* yacc.c:1646 */
10213 {
10214 if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
10215 parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
10216 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
10217 }
10218 #line 10219 "glslang_tab.cpp" /* yacc.c:1646 */
10219 break;
10220
10221 case 577:
10222 #line 3794 "glslang.y" /* yacc.c:1646 */
10223 {
10224 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
10225 if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
10226 parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", "");
10227 if (parseContext.inMain)
10228 parseContext.postEntryPointReturn = true;
10229 }
10230 #line 10231 "glslang_tab.cpp" /* yacc.c:1646 */
10231 break;
10232
10233 case 578:
10234 #line 3801 "glslang.y" /* yacc.c:1646 */
10235 {
10236 (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
10237 }
10238 #line 10239 "glslang_tab.cpp" /* yacc.c:1646 */
10239 break;
10240
10241 case 579:
10242 #line 3804 "glslang.y" /* yacc.c:1646 */
10243 {
10244 parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
10245 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
10246 }
10247 #line 10248 "glslang_tab.cpp" /* yacc.c:1646 */
10248 break;
10249
10250 case 580:
10251 #line 3813 "glslang.y" /* yacc.c:1646 */
10252 {
10253 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10254 parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
10255 }
10256 #line 10257 "glslang_tab.cpp" /* yacc.c:1646 */
10257 break;
10258
10259 case 581:
10260 #line 3817 "glslang.y" /* yacc.c:1646 */
10261 {
10262 if ((yyvsp[0].interm.intermNode) != nullptr) {
10263 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
10264 parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
10265 }
10266 }
10267 #line 10268 "glslang_tab.cpp" /* yacc.c:1646 */
10268 break;
10269
10270 case 582:
10271 #line 3826 "glslang.y" /* yacc.c:1646 */
10272 {
10273 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10274 }
10275 #line 10276 "glslang_tab.cpp" /* yacc.c:1646 */
10276 break;
10277
10278 case 583:
10279 #line 3829 "glslang.y" /* yacc.c:1646 */
10280 {
10281 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
10282 }
10283 #line 10284 "glslang_tab.cpp" /* yacc.c:1646 */
10284 break;
10285
10286 case 584:
10287 #line 3833 "glslang.y" /* yacc.c:1646 */
10288 {
10289 parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
10290 parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
10291 (yyval.interm.intermNode) = nullptr;
10292 }
10293 #line 10294 "glslang_tab.cpp" /* yacc.c:1646 */
10294 break;
10295
10296 case 585:
10297 #line 3842 "glslang.y" /* yacc.c:1646 */
10298 {
10299 (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
10300 (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
10301 }
10302 #line 10303 "glslang_tab.cpp" /* yacc.c:1646 */
10303 break;
10304
10305 case 586:
10306 #line 3846 "glslang.y" /* yacc.c:1646 */
10307 {
10308 // May be best done as post process phase on intermediate code
10309 if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
10310 parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str());
10311 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
10312 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode));
10313 parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc);
10314 (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str());
10315
10316 // store the pragma information for debug and optimize and other vendor specific
10317 // information. This information can be queried from the parse tree
10318 (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize);
10319 (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
10320 (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable);
10321 }
10322 #line 10323 "glslang_tab.cpp" /* yacc.c:1646 */
10323 break;
10324
10325 case 587:
10326 #line 3865 "glslang.y" /* yacc.c:1646 */
10327 {
10328 (yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
10329 parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute");
10330 }
10331 #line 10332 "glslang_tab.cpp" /* yacc.c:1646 */
10332 break;
10333
10334 case 588:
10335 #line 3871 "glslang.y" /* yacc.c:1646 */
10336 {
10337 (yyval.interm.attributes) = (yyvsp[0].interm.attributes);
10338 }
10339 #line 10340 "glslang_tab.cpp" /* yacc.c:1646 */
10340 break;
10341
10342 case 589:
10343 #line 3874 "glslang.y" /* yacc.c:1646 */
10344 {
10345 (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
10346 }
10347 #line 10348 "glslang_tab.cpp" /* yacc.c:1646 */
10348 break;
10349
10350 case 590:
10351 #line 3879 "glslang.y" /* yacc.c:1646 */
10352 {
10353 (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
10354 }
10355 #line 10356 "glslang_tab.cpp" /* yacc.c:1646 */
10356 break;
10357
10358 case 591:
10359 #line 3882 "glslang.y" /* yacc.c:1646 */
10360 {
10361 (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
10362 }
10363 #line 10364 "glslang_tab.cpp" /* yacc.c:1646 */
10364 break;
10365
10366
10367 #line 10368 "glslang_tab.cpp" /* yacc.c:1646 */
10368 default: break;
10369 }
10370 /* User semantic actions sometimes alter yychar, and that requires
10371 that yytoken be updated with the new translation. We take the
10372 approach of translating immediately before every use of yytoken.
10373 One alternative is translating here after every semantic action,
10374 but that translation would be missed if the semantic action invokes
10375 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
10376 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
10377 incorrect destructor might then be invoked immediately. In the
10378 case of YYERROR or YYBACKUP, subsequent parser actions might lead
10379 to an incorrect destructor call or verbose syntax error message
10380 before the lookahead is translated. */
10381 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
10382
10383 YYPOPSTACK (yylen);
10384 yylen = 0;
10385 YY_STACK_PRINT (yyss, yyssp);
10386
10387 *++yyvsp = yyval;
10388
10389 /* Now 'shift' the result of the reduction. Determine what state
10390 that goes to, based on the state we popped back to and the rule
10391 number reduced by. */
10392
10393 yyn = yyr1[yyn];
10394
10395 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
10396 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
10397 yystate = yytable[yystate];
10398 else
10399 yystate = yydefgoto[yyn - YYNTOKENS];
10400
10401 goto yynewstate;
10402
10403
10404 /*--------------------------------------.
10405 | yyerrlab -- here on detecting error. |
10406 `--------------------------------------*/
10407 yyerrlab:
10408 /* Make sure we have latest lookahead translation. See comments at
10409 user semantic actions for why this is necessary. */
10410 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
10411
10412 /* If not already recovering from an error, report this error. */
10413 if (!yyerrstatus)
10414 {
10415 ++yynerrs;
10416 #if ! YYERROR_VERBOSE
10417 yyerror (pParseContext, YY_("syntax error"));
10418 #else
10419 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
10420 yyssp, yytoken)
10421 {
10422 char const *yymsgp = YY_("syntax error");
10423 int yysyntax_error_status;
10424 yysyntax_error_status = YYSYNTAX_ERROR;
10425 if (yysyntax_error_status == 0)
10426 yymsgp = yymsg;
10427 else if (yysyntax_error_status == 1)
10428 {
10429 if (yymsg != yymsgbuf)
10430 YYSTACK_FREE (yymsg);
10431 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
10432 if (!yymsg)
10433 {
10434 yymsg = yymsgbuf;
10435 yymsg_alloc = sizeof yymsgbuf;
10436 yysyntax_error_status = 2;
10437 }
10438 else
10439 {
10440 yysyntax_error_status = YYSYNTAX_ERROR;
10441 yymsgp = yymsg;
10442 }
10443 }
10444 yyerror (pParseContext, yymsgp);
10445 if (yysyntax_error_status == 2)
10446 goto yyexhaustedlab;
10447 }
10448 # undef YYSYNTAX_ERROR
10449 #endif
10450 }
10451
10452
10453
10454 if (yyerrstatus == 3)
10455 {
10456 /* If just tried and failed to reuse lookahead token after an
10457 error, discard it. */
10458
10459 if (yychar <= YYEOF)
10460 {
10461 /* Return failure if at end of input. */
10462 if (yychar == YYEOF)
10463 YYABORT;
10464 }
10465 else
10466 {
10467 yydestruct ("Error: discarding",
10468 yytoken, &yylval, pParseContext);
10469 yychar = YYEMPTY;
10470 }
10471 }
10472
10473 /* Else will try to reuse lookahead token after shifting the error
10474 token. */
10475 goto yyerrlab1;
10476
10477
10478 /*---------------------------------------------------.
10479 | yyerrorlab -- error raised explicitly by YYERROR. |
10480 `---------------------------------------------------*/
10481 yyerrorlab:
10482
10483 /* Pacify compilers like GCC when the user code never invokes
10484 YYERROR and the label yyerrorlab therefore never appears in user
10485 code. */
10486 if (/*CONSTCOND*/ 0)
10487 goto yyerrorlab;
10488
10489 /* Do not reclaim the symbols of the rule whose action triggered
10490 this YYERROR. */
10491 YYPOPSTACK (yylen);
10492 yylen = 0;
10493 YY_STACK_PRINT (yyss, yyssp);
10494 yystate = *yyssp;
10495 goto yyerrlab1;
10496
10497
10498 /*-------------------------------------------------------------.
10499 | yyerrlab1 -- common code for both syntax error and YYERROR. |
10500 `-------------------------------------------------------------*/
10501 yyerrlab1:
10502 yyerrstatus = 3; /* Each real token shifted decrements this. */
10503
10504 for (;;)
10505 {
10506 yyn = yypact[yystate];
10507 if (!yypact_value_is_default (yyn))
10508 {
10509 yyn += YYTERROR;
10510 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
10511 {
10512 yyn = yytable[yyn];
10513 if (0 < yyn)
10514 break;
10515 }
10516 }
10517
10518 /* Pop the current state because it cannot handle the error token. */
10519 if (yyssp == yyss)
10520 YYABORT;
10521
10522
10523 yydestruct ("Error: popping",
10524 yystos[yystate], yyvsp, pParseContext);
10525 YYPOPSTACK (1);
10526 yystate = *yyssp;
10527 YY_STACK_PRINT (yyss, yyssp);
10528 }
10529
10530 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
10531 *++yyvsp = yylval;
10532 YY_IGNORE_MAYBE_UNINITIALIZED_END
10533
10534
10535 /* Shift the error token. */
10536 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
10537
10538 yystate = yyn;
10539 goto yynewstate;
10540
10541
10542 /*-------------------------------------.
10543 | yyacceptlab -- YYACCEPT comes here. |
10544 `-------------------------------------*/
10545 yyacceptlab:
10546 yyresult = 0;
10547 goto yyreturn;
10548
10549 /*-----------------------------------.
10550 | yyabortlab -- YYABORT comes here. |
10551 `-----------------------------------*/
10552 yyabortlab:
10553 yyresult = 1;
10554 goto yyreturn;
10555
10556 #if !defined yyoverflow || YYERROR_VERBOSE
10557 /*-------------------------------------------------.
10558 | yyexhaustedlab -- memory exhaustion comes here. |
10559 `-------------------------------------------------*/
10560 yyexhaustedlab:
10561 yyerror (pParseContext, YY_("memory exhausted"));
10562 yyresult = 2;
10563 /* Fall through. */
10564 #endif
10565
10566 yyreturn:
10567 if (yychar != YYEMPTY)
10568 {
10569 /* Make sure we have latest lookahead translation. See comments at
10570 user semantic actions for why this is necessary. */
10571 yytoken = YYTRANSLATE (yychar);
10572 yydestruct ("Cleanup: discarding lookahead",
10573 yytoken, &yylval, pParseContext);
10574 }
10575 /* Do not reclaim the symbols of the rule whose action triggered
10576 this YYABORT or YYACCEPT. */
10577 YYPOPSTACK (yylen);
10578 YY_STACK_PRINT (yyss, yyssp);
10579 while (yyssp != yyss)
10580 {
10581 yydestruct ("Cleanup: popping",
10582 yystos[*yyssp], yyvsp, pParseContext);
10583 YYPOPSTACK (1);
10584 }
10585 #ifndef yyoverflow
10586 if (yyss != yyssa)
10587 YYSTACK_FREE (yyss);
10588 #endif
10589 #if YYERROR_VERBOSE
10590 if (yymsg != yymsgbuf)
10591 YYSTACK_FREE (yymsg);
10592 #endif
10593 return yyresult;
10594 }
10595 #line 3887 "glslang.y" /* yacc.c:1906 */
10596
10597
10598