1 /* A Bison parser, made by GNU Bison 3.0.4. */ 2 3 /* Bison implementation for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. 6 7 This program is free software: you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation, either version 3 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 19 20 /* As a special exception, you may create a larger work that contains 21 part or all of the Bison parser skeleton and distribute that work 22 under terms of your choice, so long as that work isn't itself a 23 parser generator using the skeleton or a modified version thereof 24 as a parser skeleton. Alternatively, if you modify or redistribute 25 the parser skeleton itself, you may (at your option) remove this 26 special exception, which will cause the skeleton and the resulting 27 Bison output files to be licensed under the GNU General Public 28 License without this special exception. 29 30 This special exception was added by the Free Software Foundation in 31 version 2.2 of Bison. */ 32 33 /* C LALR(1) parser skeleton written by Richard Stallman, by 34 simplifying the original so-called "semantic" parser. */ 35 36 /* All symbols defined below should begin with yy or YY, to avoid 37 infringing on user name space. This should be done even for local 38 variables, as they might otherwise be expanded by user macros. 39 There are some unavoidable exceptions within include files to 40 define necessary library symbols; they are noted "INFRINGES ON 41 USER NAME SPACE" below. */ 42 43 /* Identify Bison output. */ 44 #define YYBISON 1 45 46 /* Bison version. */ 47 #define YYBISON_VERSION "3.0.4" 48 49 /* Skeleton name. */ 50 #define YYSKELETON_NAME "yacc.c" 51 52 /* Pure parsers. */ 53 #define YYPURE 1 54 55 /* Push parsers. */ 56 #define YYPUSH 0 57 58 /* Pull parsers. */ 59 #define YYPULL 1 60 61 62 63 64 /* Copy the first part of user declarations. */ 65 #line 42 "MachineIndependent/glslang.y" /* yacc.c:339 */ 66 67 68 /* Based on: 69 ANSI C Yacc grammar 70 71 In 1985, Jeff Lee published his Yacc grammar (which is accompanied by a 72 matching Lex specification) for the April 30, 1985 draft version of the 73 ANSI C standard. Tom Stockfisch reposted it to net.sources in 1987; that 74 original, as mentioned in the answer to question 17.25 of the comp.lang.c 75 FAQ, can be ftp'ed from ftp.uu.net, file usenet/net.sources/ansi.c.grammar.Z. 76 77 I intend to keep this version as close to the current C Standard grammar as 78 possible; please let me know if you discover discrepancies. 79 80 Jutta Degener, 1995 81 */ 82 83 #include "SymbolTable.h" 84 #include "ParseHelper.h" 85 #include "../Public/ShaderLang.h" 86 #include "attribute.h" 87 88 using namespace glslang; 89 90 91 #line 92 "MachineIndependent/glslang_tab.cpp" /* yacc.c:339 */ 92 93 # ifndef YY_NULLPTR 94 # if defined __cplusplus && 201103L <= __cplusplus 95 # define YY_NULLPTR nullptr 96 # else 97 # define YY_NULLPTR 0 98 # endif 99 # endif 100 101 /* Enabling verbose error messages. */ 102 #ifdef YYERROR_VERBOSE 103 # undef YYERROR_VERBOSE 104 # define YYERROR_VERBOSE 1 105 #else 106 # define YYERROR_VERBOSE 1 107 #endif 108 109 /* In a future release of Bison, this section will be replaced 110 by #include "glslang_tab.cpp.h". */ 111 #ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED 112 # define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED 113 /* Debug traces. */ 114 #ifndef YYDEBUG 115 # define YYDEBUG 1 116 #endif 117 #if YYDEBUG 118 extern int yydebug; 119 #endif 120 121 /* Token type. */ 122 #ifndef YYTOKENTYPE 123 # define YYTOKENTYPE 124 enum yytokentype 125 { 126 ATTRIBUTE = 258, 127 VARYING = 259, 128 FLOAT16_T = 260, 129 FLOAT = 261, 130 FLOAT32_T = 262, 131 DOUBLE = 263, 132 FLOAT64_T = 264, 133 CONST = 265, 134 BOOL = 266, 135 INT = 267, 136 UINT = 268, 137 INT64_T = 269, 138 UINT64_T = 270, 139 INT32_T = 271, 140 UINT32_T = 272, 141 INT16_T = 273, 142 UINT16_T = 274, 143 INT8_T = 275, 144 UINT8_T = 276, 145 BREAK = 277, 146 CONTINUE = 278, 147 DO = 279, 148 ELSE = 280, 149 FOR = 281, 150 IF = 282, 151 DISCARD = 283, 152 RETURN = 284, 153 SWITCH = 285, 154 CASE = 286, 155 DEFAULT = 287, 156 SUBROUTINE = 288, 157 BVEC2 = 289, 158 BVEC3 = 290, 159 BVEC4 = 291, 160 IVEC2 = 292, 161 IVEC3 = 293, 162 IVEC4 = 294, 163 UVEC2 = 295, 164 UVEC3 = 296, 165 UVEC4 = 297, 166 I64VEC2 = 298, 167 I64VEC3 = 299, 168 I64VEC4 = 300, 169 U64VEC2 = 301, 170 U64VEC3 = 302, 171 U64VEC4 = 303, 172 I32VEC2 = 304, 173 I32VEC3 = 305, 174 I32VEC4 = 306, 175 U32VEC2 = 307, 176 U32VEC3 = 308, 177 U32VEC4 = 309, 178 I16VEC2 = 310, 179 I16VEC3 = 311, 180 I16VEC4 = 312, 181 U16VEC2 = 313, 182 U16VEC3 = 314, 183 U16VEC4 = 315, 184 I8VEC2 = 316, 185 I8VEC3 = 317, 186 I8VEC4 = 318, 187 U8VEC2 = 319, 188 U8VEC3 = 320, 189 U8VEC4 = 321, 190 VEC2 = 322, 191 VEC3 = 323, 192 VEC4 = 324, 193 MAT2 = 325, 194 MAT3 = 326, 195 MAT4 = 327, 196 CENTROID = 328, 197 IN = 329, 198 OUT = 330, 199 INOUT = 331, 200 UNIFORM = 332, 201 PATCH = 333, 202 SAMPLE = 334, 203 BUFFER = 335, 204 SHARED = 336, 205 NONUNIFORM = 337, 206 PAYLOADNV = 338, 207 PAYLOADINNV = 339, 208 HITATTRNV = 340, 209 CALLDATANV = 341, 210 CALLDATAINNV = 342, 211 COHERENT = 343, 212 VOLATILE = 344, 213 RESTRICT = 345, 214 READONLY = 346, 215 WRITEONLY = 347, 216 DEVICECOHERENT = 348, 217 QUEUEFAMILYCOHERENT = 349, 218 WORKGROUPCOHERENT = 350, 219 SUBGROUPCOHERENT = 351, 220 NONPRIVATE = 352, 221 DVEC2 = 353, 222 DVEC3 = 354, 223 DVEC4 = 355, 224 DMAT2 = 356, 225 DMAT3 = 357, 226 DMAT4 = 358, 227 F16VEC2 = 359, 228 F16VEC3 = 360, 229 F16VEC4 = 361, 230 F16MAT2 = 362, 231 F16MAT3 = 363, 232 F16MAT4 = 364, 233 F32VEC2 = 365, 234 F32VEC3 = 366, 235 F32VEC4 = 367, 236 F32MAT2 = 368, 237 F32MAT3 = 369, 238 F32MAT4 = 370, 239 F64VEC2 = 371, 240 F64VEC3 = 372, 241 F64VEC4 = 373, 242 F64MAT2 = 374, 243 F64MAT3 = 375, 244 F64MAT4 = 376, 245 NOPERSPECTIVE = 377, 246 FLAT = 378, 247 SMOOTH = 379, 248 LAYOUT = 380, 249 EXPLICITINTERPAMD = 381, 250 PERVERTEXNV = 382, 251 PERPRIMITIVENV = 383, 252 PERVIEWNV = 384, 253 PERTASKNV = 385, 254 MAT2X2 = 386, 255 MAT2X3 = 387, 256 MAT2X4 = 388, 257 MAT3X2 = 389, 258 MAT3X3 = 390, 259 MAT3X4 = 391, 260 MAT4X2 = 392, 261 MAT4X3 = 393, 262 MAT4X4 = 394, 263 DMAT2X2 = 395, 264 DMAT2X3 = 396, 265 DMAT2X4 = 397, 266 DMAT3X2 = 398, 267 DMAT3X3 = 399, 268 DMAT3X4 = 400, 269 DMAT4X2 = 401, 270 DMAT4X3 = 402, 271 DMAT4X4 = 403, 272 F16MAT2X2 = 404, 273 F16MAT2X3 = 405, 274 F16MAT2X4 = 406, 275 F16MAT3X2 = 407, 276 F16MAT3X3 = 408, 277 F16MAT3X4 = 409, 278 F16MAT4X2 = 410, 279 F16MAT4X3 = 411, 280 F16MAT4X4 = 412, 281 F32MAT2X2 = 413, 282 F32MAT2X3 = 414, 283 F32MAT2X4 = 415, 284 F32MAT3X2 = 416, 285 F32MAT3X3 = 417, 286 F32MAT3X4 = 418, 287 F32MAT4X2 = 419, 288 F32MAT4X3 = 420, 289 F32MAT4X4 = 421, 290 F64MAT2X2 = 422, 291 F64MAT2X3 = 423, 292 F64MAT2X4 = 424, 293 F64MAT3X2 = 425, 294 F64MAT3X3 = 426, 295 F64MAT3X4 = 427, 296 F64MAT4X2 = 428, 297 F64MAT4X3 = 429, 298 F64MAT4X4 = 430, 299 ATOMIC_UINT = 431, 300 ACCSTRUCTNV = 432, 301 SAMPLER1D = 433, 302 SAMPLER2D = 434, 303 SAMPLER3D = 435, 304 SAMPLERCUBE = 436, 305 SAMPLER1DSHADOW = 437, 306 SAMPLER2DSHADOW = 438, 307 SAMPLERCUBESHADOW = 439, 308 SAMPLER1DARRAY = 440, 309 SAMPLER2DARRAY = 441, 310 SAMPLER1DARRAYSHADOW = 442, 311 SAMPLER2DARRAYSHADOW = 443, 312 ISAMPLER1D = 444, 313 ISAMPLER2D = 445, 314 ISAMPLER3D = 446, 315 ISAMPLERCUBE = 447, 316 ISAMPLER1DARRAY = 448, 317 ISAMPLER2DARRAY = 449, 318 USAMPLER1D = 450, 319 USAMPLER2D = 451, 320 USAMPLER3D = 452, 321 USAMPLERCUBE = 453, 322 USAMPLER1DARRAY = 454, 323 USAMPLER2DARRAY = 455, 324 SAMPLER2DRECT = 456, 325 SAMPLER2DRECTSHADOW = 457, 326 ISAMPLER2DRECT = 458, 327 USAMPLER2DRECT = 459, 328 SAMPLERBUFFER = 460, 329 ISAMPLERBUFFER = 461, 330 USAMPLERBUFFER = 462, 331 SAMPLERCUBEARRAY = 463, 332 SAMPLERCUBEARRAYSHADOW = 464, 333 ISAMPLERCUBEARRAY = 465, 334 USAMPLERCUBEARRAY = 466, 335 SAMPLER2DMS = 467, 336 ISAMPLER2DMS = 468, 337 USAMPLER2DMS = 469, 338 SAMPLER2DMSARRAY = 470, 339 ISAMPLER2DMSARRAY = 471, 340 USAMPLER2DMSARRAY = 472, 341 SAMPLEREXTERNALOES = 473, 342 F16SAMPLER1D = 474, 343 F16SAMPLER2D = 475, 344 F16SAMPLER3D = 476, 345 F16SAMPLER2DRECT = 477, 346 F16SAMPLERCUBE = 478, 347 F16SAMPLER1DARRAY = 479, 348 F16SAMPLER2DARRAY = 480, 349 F16SAMPLERCUBEARRAY = 481, 350 F16SAMPLERBUFFER = 482, 351 F16SAMPLER2DMS = 483, 352 F16SAMPLER2DMSARRAY = 484, 353 F16SAMPLER1DSHADOW = 485, 354 F16SAMPLER2DSHADOW = 486, 355 F16SAMPLER1DARRAYSHADOW = 487, 356 F16SAMPLER2DARRAYSHADOW = 488, 357 F16SAMPLER2DRECTSHADOW = 489, 358 F16SAMPLERCUBESHADOW = 490, 359 F16SAMPLERCUBEARRAYSHADOW = 491, 360 SAMPLER = 492, 361 SAMPLERSHADOW = 493, 362 TEXTURE1D = 494, 363 TEXTURE2D = 495, 364 TEXTURE3D = 496, 365 TEXTURECUBE = 497, 366 TEXTURE1DARRAY = 498, 367 TEXTURE2DARRAY = 499, 368 ITEXTURE1D = 500, 369 ITEXTURE2D = 501, 370 ITEXTURE3D = 502, 371 ITEXTURECUBE = 503, 372 ITEXTURE1DARRAY = 504, 373 ITEXTURE2DARRAY = 505, 374 UTEXTURE1D = 506, 375 UTEXTURE2D = 507, 376 UTEXTURE3D = 508, 377 UTEXTURECUBE = 509, 378 UTEXTURE1DARRAY = 510, 379 UTEXTURE2DARRAY = 511, 380 TEXTURE2DRECT = 512, 381 ITEXTURE2DRECT = 513, 382 UTEXTURE2DRECT = 514, 383 TEXTUREBUFFER = 515, 384 ITEXTUREBUFFER = 516, 385 UTEXTUREBUFFER = 517, 386 TEXTURECUBEARRAY = 518, 387 ITEXTURECUBEARRAY = 519, 388 UTEXTURECUBEARRAY = 520, 389 TEXTURE2DMS = 521, 390 ITEXTURE2DMS = 522, 391 UTEXTURE2DMS = 523, 392 TEXTURE2DMSARRAY = 524, 393 ITEXTURE2DMSARRAY = 525, 394 UTEXTURE2DMSARRAY = 526, 395 F16TEXTURE1D = 527, 396 F16TEXTURE2D = 528, 397 F16TEXTURE3D = 529, 398 F16TEXTURE2DRECT = 530, 399 F16TEXTURECUBE = 531, 400 F16TEXTURE1DARRAY = 532, 401 F16TEXTURE2DARRAY = 533, 402 F16TEXTURECUBEARRAY = 534, 403 F16TEXTUREBUFFER = 535, 404 F16TEXTURE2DMS = 536, 405 F16TEXTURE2DMSARRAY = 537, 406 SUBPASSINPUT = 538, 407 SUBPASSINPUTMS = 539, 408 ISUBPASSINPUT = 540, 409 ISUBPASSINPUTMS = 541, 410 USUBPASSINPUT = 542, 411 USUBPASSINPUTMS = 543, 412 F16SUBPASSINPUT = 544, 413 F16SUBPASSINPUTMS = 545, 414 IMAGE1D = 546, 415 IIMAGE1D = 547, 416 UIMAGE1D = 548, 417 IMAGE2D = 549, 418 IIMAGE2D = 550, 419 UIMAGE2D = 551, 420 IMAGE3D = 552, 421 IIMAGE3D = 553, 422 UIMAGE3D = 554, 423 IMAGE2DRECT = 555, 424 IIMAGE2DRECT = 556, 425 UIMAGE2DRECT = 557, 426 IMAGECUBE = 558, 427 IIMAGECUBE = 559, 428 UIMAGECUBE = 560, 429 IMAGEBUFFER = 561, 430 IIMAGEBUFFER = 562, 431 UIMAGEBUFFER = 563, 432 IMAGE1DARRAY = 564, 433 IIMAGE1DARRAY = 565, 434 UIMAGE1DARRAY = 566, 435 IMAGE2DARRAY = 567, 436 IIMAGE2DARRAY = 568, 437 UIMAGE2DARRAY = 569, 438 IMAGECUBEARRAY = 570, 439 IIMAGECUBEARRAY = 571, 440 UIMAGECUBEARRAY = 572, 441 IMAGE2DMS = 573, 442 IIMAGE2DMS = 574, 443 UIMAGE2DMS = 575, 444 IMAGE2DMSARRAY = 576, 445 IIMAGE2DMSARRAY = 577, 446 UIMAGE2DMSARRAY = 578, 447 F16IMAGE1D = 579, 448 F16IMAGE2D = 580, 449 F16IMAGE3D = 581, 450 F16IMAGE2DRECT = 582, 451 F16IMAGECUBE = 583, 452 F16IMAGE1DARRAY = 584, 453 F16IMAGE2DARRAY = 585, 454 F16IMAGECUBEARRAY = 586, 455 F16IMAGEBUFFER = 587, 456 F16IMAGE2DMS = 588, 457 F16IMAGE2DMSARRAY = 589, 458 STRUCT = 590, 459 VOID = 591, 460 WHILE = 592, 461 IDENTIFIER = 593, 462 TYPE_NAME = 594, 463 FLOATCONSTANT = 595, 464 DOUBLECONSTANT = 596, 465 INT16CONSTANT = 597, 466 UINT16CONSTANT = 598, 467 INT32CONSTANT = 599, 468 UINT32CONSTANT = 600, 469 INTCONSTANT = 601, 470 UINTCONSTANT = 602, 471 INT64CONSTANT = 603, 472 UINT64CONSTANT = 604, 473 BOOLCONSTANT = 605, 474 FLOAT16CONSTANT = 606, 475 LEFT_OP = 607, 476 RIGHT_OP = 608, 477 INC_OP = 609, 478 DEC_OP = 610, 479 LE_OP = 611, 480 GE_OP = 612, 481 EQ_OP = 613, 482 NE_OP = 614, 483 AND_OP = 615, 484 OR_OP = 616, 485 XOR_OP = 617, 486 MUL_ASSIGN = 618, 487 DIV_ASSIGN = 619, 488 ADD_ASSIGN = 620, 489 MOD_ASSIGN = 621, 490 LEFT_ASSIGN = 622, 491 RIGHT_ASSIGN = 623, 492 AND_ASSIGN = 624, 493 XOR_ASSIGN = 625, 494 OR_ASSIGN = 626, 495 SUB_ASSIGN = 627, 496 LEFT_PAREN = 628, 497 RIGHT_PAREN = 629, 498 LEFT_BRACKET = 630, 499 RIGHT_BRACKET = 631, 500 LEFT_BRACE = 632, 501 RIGHT_BRACE = 633, 502 DOT = 634, 503 COMMA = 635, 504 COLON = 636, 505 EQUAL = 637, 506 SEMICOLON = 638, 507 BANG = 639, 508 DASH = 640, 509 TILDE = 641, 510 PLUS = 642, 511 STAR = 643, 512 SLASH = 644, 513 PERCENT = 645, 514 LEFT_ANGLE = 646, 515 RIGHT_ANGLE = 647, 516 VERTICAL_BAR = 648, 517 CARET = 649, 518 AMPERSAND = 650, 519 QUESTION = 651, 520 INVARIANT = 652, 521 PRECISE = 653, 522 HIGH_PRECISION = 654, 523 MEDIUM_PRECISION = 655, 524 LOW_PRECISION = 656, 525 PRECISION = 657, 526 PACKED = 658, 527 RESOURCE = 659, 528 SUPERP = 660 529 }; 530 #endif 531 532 /* Value type. */ 533 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 534 535 union YYSTYPE 536 { 537 #line 70 "MachineIndependent/glslang.y" /* yacc.c:355 */ 538 539 struct { 540 glslang::TSourceLoc loc; 541 union { 542 glslang::TString *string; 543 int i; 544 unsigned int u; 545 long long i64; 546 unsigned long long u64; 547 bool b; 548 double d; 549 }; 550 glslang::TSymbol* symbol; 551 } lex; 552 struct { 553 glslang::TSourceLoc loc; 554 glslang::TOperator op; 555 union { 556 TIntermNode* intermNode; 557 glslang::TIntermNodePair nodePair; 558 glslang::TIntermTyped* intermTypedNode; 559 glslang::TAttributes* attributes; 560 }; 561 union { 562 glslang::TPublicType type; 563 glslang::TFunction* function; 564 glslang::TParameter param; 565 glslang::TTypeLoc typeLine; 566 glslang::TTypeList* typeList; 567 glslang::TArraySizes* arraySizes; 568 glslang::TIdentifierList* identifierList; 569 }; 570 } interm; 571 572 #line 573 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355 */ 573 }; 574 575 typedef union YYSTYPE YYSTYPE; 576 # define YYSTYPE_IS_TRIVIAL 1 577 # define YYSTYPE_IS_DECLARED 1 578 #endif 579 580 581 582 int yyparse (glslang::TParseContext* pParseContext); 583 584 #endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED */ 585 586 /* Copy the second part of user declarations. */ 587 #line 105 "MachineIndependent/glslang.y" /* yacc.c:358 */ 588 589 590 /* windows only pragma */ 591 #ifdef _MSC_VER 592 #pragma warning(disable : 4065) 593 #pragma warning(disable : 4127) 594 #pragma warning(disable : 4244) 595 #endif 596 597 #define parseContext (*pParseContext) 598 #define yyerror(context, msg) context->parserError(msg) 599 600 extern int yylex(YYSTYPE*, TParseContext&); 601 602 603 #line 604 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358 */ 604 605 #ifdef short 606 # undef short 607 #endif 608 609 #ifdef YYTYPE_UINT8 610 typedef YYTYPE_UINT8 yytype_uint8; 611 #else 612 typedef unsigned char yytype_uint8; 613 #endif 614 615 #ifdef YYTYPE_INT8 616 typedef YYTYPE_INT8 yytype_int8; 617 #else 618 typedef signed char yytype_int8; 619 #endif 620 621 #ifdef YYTYPE_UINT16 622 typedef YYTYPE_UINT16 yytype_uint16; 623 #else 624 typedef unsigned short int yytype_uint16; 625 #endif 626 627 #ifdef YYTYPE_INT16 628 typedef YYTYPE_INT16 yytype_int16; 629 #else 630 typedef short int yytype_int16; 631 #endif 632 633 #ifndef YYSIZE_T 634 # ifdef __SIZE_TYPE__ 635 # define YYSIZE_T __SIZE_TYPE__ 636 # elif defined size_t 637 # define YYSIZE_T size_t 638 # elif ! defined YYSIZE_T 639 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 640 # define YYSIZE_T size_t 641 # else 642 # define YYSIZE_T unsigned int 643 # endif 644 #endif 645 646 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 647 648 #ifndef YY_ 649 # if defined YYENABLE_NLS && YYENABLE_NLS 650 # if ENABLE_NLS 651 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 652 # define YY_(Msgid) dgettext ("bison-runtime", Msgid) 653 # endif 654 # endif 655 # ifndef YY_ 656 # define YY_(Msgid) Msgid 657 # endif 658 #endif 659 660 #ifndef YY_ATTRIBUTE 661 # if (defined __GNUC__ \ 662 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ 663 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C 664 # define YY_ATTRIBUTE(Spec) __attribute__(Spec) 665 # else 666 # define YY_ATTRIBUTE(Spec) /* empty */ 667 # endif 668 #endif 669 670 #ifndef YY_ATTRIBUTE_PURE 671 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) 672 #endif 673 674 #ifndef YY_ATTRIBUTE_UNUSED 675 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) 676 #endif 677 678 #if !defined _Noreturn \ 679 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) 680 # if defined _MSC_VER && 1200 <= _MSC_VER 681 # define _Noreturn __declspec (noreturn) 682 # else 683 # define _Noreturn YY_ATTRIBUTE ((__noreturn__)) 684 # endif 685 #endif 686 687 /* Suppress unused-variable warnings by "using" E. */ 688 #if ! defined lint || defined __GNUC__ 689 # define YYUSE(E) ((void) (E)) 690 #else 691 # define YYUSE(E) /* empty */ 692 #endif 693 694 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 695 /* Suppress an incorrect diagnostic about yylval being uninitialized. */ 696 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 697 _Pragma ("GCC diagnostic push") \ 698 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 699 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 700 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 701 _Pragma ("GCC diagnostic pop") 702 #else 703 # define YY_INITIAL_VALUE(Value) Value 704 #endif 705 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 706 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 707 # define YY_IGNORE_MAYBE_UNINITIALIZED_END 708 #endif 709 #ifndef YY_INITIAL_VALUE 710 # define YY_INITIAL_VALUE(Value) /* Nothing. */ 711 #endif 712 713 714 #if ! defined yyoverflow || YYERROR_VERBOSE 715 716 /* The parser invokes alloca or malloc; define the necessary symbols. */ 717 718 # ifdef YYSTACK_USE_ALLOCA 719 # if YYSTACK_USE_ALLOCA 720 # ifdef __GNUC__ 721 # define YYSTACK_ALLOC __builtin_alloca 722 # elif defined __BUILTIN_VA_ARG_INCR 723 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */ 724 # elif defined _AIX 725 # define YYSTACK_ALLOC __alloca 726 # elif defined _MSC_VER 727 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */ 728 # define alloca _alloca 729 # else 730 # define YYSTACK_ALLOC alloca 731 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 732 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 733 /* Use EXIT_SUCCESS as a witness for stdlib.h. */ 734 # ifndef EXIT_SUCCESS 735 # define EXIT_SUCCESS 0 736 # endif 737 # endif 738 # endif 739 # endif 740 # endif 741 742 # ifdef YYSTACK_ALLOC 743 /* Pacify GCC's 'empty if-body' warning. */ 744 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 745 # ifndef YYSTACK_ALLOC_MAXIMUM 746 /* The OS might guarantee only one guard page at the bottom of the stack, 747 and a page size can be as small as 4096 bytes. So we cannot safely 748 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number 749 to allow for a few compiler-allocated temporary stack slots. */ 750 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ 751 # endif 752 # else 753 # define YYSTACK_ALLOC YYMALLOC 754 # define YYSTACK_FREE YYFREE 755 # ifndef YYSTACK_ALLOC_MAXIMUM 756 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 757 # endif 758 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 759 && ! ((defined YYMALLOC || defined malloc) \ 760 && (defined YYFREE || defined free))) 761 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 762 # ifndef EXIT_SUCCESS 763 # define EXIT_SUCCESS 0 764 # endif 765 # endif 766 # ifndef YYMALLOC 767 # define YYMALLOC malloc 768 # if ! defined malloc && ! defined EXIT_SUCCESS 769 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 770 # endif 771 # endif 772 # ifndef YYFREE 773 # define YYFREE free 774 # if ! defined free && ! defined EXIT_SUCCESS 775 void free (void *); /* INFRINGES ON USER NAME SPACE */ 776 # endif 777 # endif 778 # endif 779 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ 780 781 782 #if (! defined yyoverflow \ 783 && (! defined __cplusplus \ 784 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 785 786 /* A type that is properly aligned for any stack member. */ 787 union yyalloc 788 { 789 yytype_int16 yyss_alloc; 790 YYSTYPE yyvs_alloc; 791 }; 792 793 /* The size of the maximum gap between one aligned stack and the next. */ 794 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 795 796 /* The size of an array large to enough to hold all stacks, each with 797 N elements. */ 798 # define YYSTACK_BYTES(N) \ 799 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 800 + YYSTACK_GAP_MAXIMUM) 801 802 # define YYCOPY_NEEDED 1 803 804 /* Relocate STACK from its old location to the new one. The 805 local variables YYSIZE and YYSTACKSIZE give the old and new number of 806 elements in the stack, and YYPTR gives the new location of the 807 stack. Advance YYPTR to a properly aligned location for the next 808 stack. */ 809 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 810 do \ 811 { \ 812 YYSIZE_T yynewbytes; \ 813 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 814 Stack = &yyptr->Stack_alloc; \ 815 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 816 yyptr += yynewbytes / sizeof (*yyptr); \ 817 } \ 818 while (0) 819 820 #endif 821 822 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 823 /* Copy COUNT objects from SRC to DST. The source and destination do 824 not overlap. */ 825 # ifndef YYCOPY 826 # if defined __GNUC__ && 1 < __GNUC__ 827 # define YYCOPY(Dst, Src, Count) \ 828 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) 829 # else 830 # define YYCOPY(Dst, Src, Count) \ 831 do \ 832 { \ 833 YYSIZE_T yyi; \ 834 for (yyi = 0; yyi < (Count); yyi++) \ 835 (Dst)[yyi] = (Src)[yyi]; \ 836 } \ 837 while (0) 838 # endif 839 # endif 840 #endif /* !YYCOPY_NEEDED */ 841 842 /* YYFINAL -- State number of the termination state. */ 843 #define YYFINAL 381 844 /* YYLAST -- Last index in YYTABLE. */ 845 #define YYLAST 9294 846 847 /* YYNTOKENS -- Number of terminals. */ 848 #define YYNTOKENS 406 849 /* YYNNTS -- Number of nonterminals. */ 850 #define YYNNTS 107 851 /* YYNRULES -- Number of rules. */ 852 #define YYNRULES 571 853 /* YYNSTATES -- Number of states. */ 854 #define YYNSTATES 712 855 856 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned 857 by yylex, with out-of-bounds checking. */ 858 #define YYUNDEFTOK 2 859 #define YYMAXUTOK 660 860 861 #define YYTRANSLATE(YYX) \ 862 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 863 864 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 865 as returned by yylex, without out-of-bounds checking. */ 866 static const yytype_uint16 yytranslate[] = 867 { 868 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 869 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 870 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 871 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 872 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 873 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 874 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 875 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 876 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 877 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 878 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 879 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 880 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 881 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 882 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 883 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 884 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 885 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 886 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 887 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 888 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 889 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 890 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 891 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 892 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 893 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 894 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 895 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 896 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 897 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 898 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 899 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 900 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 901 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 902 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 903 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 904 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 905 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 906 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 907 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 908 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 909 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 910 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 911 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 912 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 913 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 914 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 915 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 916 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 917 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 918 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 919 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 920 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 921 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 922 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 923 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 924 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 925 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 926 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 927 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 928 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 929 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 930 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 931 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 932 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 933 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 934 405 935 }; 936 937 #if YYDEBUG 938 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 939 static const yytype_uint16 yyrline[] = 940 { 941 0, 294, 294, 300, 303, 307, 311, 314, 318, 322, 942 326, 330, 334, 337, 341, 345, 348, 356, 359, 362, 943 365, 368, 373, 381, 388, 395, 401, 405, 412, 415, 944 421, 428, 438, 446, 451, 478, 486, 492, 496, 500, 945 520, 521, 522, 523, 529, 530, 535, 540, 549, 550, 946 555, 563, 564, 570, 579, 580, 585, 590, 595, 603, 947 604, 612, 623, 624, 633, 634, 643, 644, 653, 654, 948 662, 663, 671, 672, 680, 681, 681, 699, 700, 716, 949 720, 724, 728, 733, 737, 741, 745, 749, 753, 757, 950 764, 767, 778, 785, 790, 795, 803, 807, 811, 815, 951 820, 825, 834, 834, 845, 849, 856, 863, 866, 873, 952 881, 901, 924, 939, 964, 975, 985, 995, 1005, 1014, 953 1017, 1021, 1025, 1030, 1038, 1043, 1048, 1053, 1058, 1067, 954 1078, 1105, 1114, 1121, 1128, 1139, 1148, 1158, 1170, 1179, 955 1191, 1197, 1200, 1207, 1211, 1215, 1223, 1232, 1235, 1246, 956 1249, 1252, 1256, 1260, 1264, 1268, 1274, 1278, 1290, 1304, 957 1309, 1315, 1321, 1328, 1334, 1339, 1344, 1349, 1359, 1369, 958 1379, 1389, 1398, 1410, 1414, 1419, 1424, 1429, 1434, 1439, 959 1443, 1447, 1451, 1455, 1461, 1470, 1477, 1480, 1488, 1492, 960 1501, 1506, 1514, 1518, 1528, 1532, 1536, 1541, 1546, 1551, 961 1556, 1560, 1565, 1570, 1575, 1580, 1585, 1590, 1595, 1600, 962 1605, 1609, 1614, 1619, 1624, 1630, 1636, 1642, 1648, 1654, 963 1660, 1666, 1672, 1678, 1684, 1690, 1696, 1701, 1706, 1711, 964 1716, 1721, 1726, 1732, 1738, 1744, 1750, 1756, 1762, 1768, 965 1774, 1780, 1786, 1792, 1798, 1804, 1810, 1816, 1822, 1828, 966 1834, 1840, 1846, 1852, 1858, 1864, 1870, 1876, 1882, 1888, 967 1893, 1898, 1903, 1908, 1913, 1918, 1923, 1928, 1933, 1938, 968 1943, 1948, 1954, 1960, 1966, 1972, 1978, 1984, 1990, 1996, 969 2002, 2008, 2014, 2020, 2026, 2032, 2038, 2044, 2050, 2056, 970 2062, 2068, 2074, 2080, 2086, 2092, 2098, 2104, 2110, 2116, 971 2122, 2128, 2134, 2140, 2146, 2152, 2158, 2164, 2170, 2176, 972 2182, 2188, 2194, 2200, 2206, 2212, 2218, 2224, 2230, 2236, 973 2242, 2247, 2252, 2257, 2262, 2267, 2272, 2277, 2282, 2287, 974 2292, 2297, 2302, 2307, 2312, 2320, 2328, 2336, 2344, 2352, 975 2360, 2368, 2376, 2384, 2392, 2400, 2408, 2416, 2421, 2426, 976 2431, 2436, 2441, 2446, 2451, 2456, 2461, 2466, 2471, 2476, 977 2481, 2486, 2491, 2496, 2504, 2512, 2517, 2522, 2527, 2535, 978 2540, 2545, 2550, 2558, 2563, 2568, 2573, 2581, 2586, 2591, 979 2596, 2601, 2606, 2614, 2619, 2627, 2632, 2640, 2645, 2653, 980 2658, 2666, 2671, 2679, 2684, 2692, 2697, 2702, 2707, 2712, 981 2717, 2722, 2727, 2732, 2737, 2742, 2747, 2752, 2757, 2762, 982 2767, 2775, 2780, 2785, 2790, 2798, 2803, 2808, 2813, 2821, 983 2826, 2831, 2836, 2844, 2849, 2854, 2859, 2867, 2872, 2877, 984 2882, 2890, 2895, 2900, 2905, 2913, 2918, 2923, 2928, 2936, 985 2941, 2946, 2951, 2959, 2964, 2969, 2974, 2982, 2987, 2992, 986 2997, 3005, 3010, 3015, 3020, 3028, 3033, 3038, 3043, 3051, 987 3056, 3061, 3066, 3074, 3079, 3084, 3089, 3097, 3102, 3107, 988 3113, 3119, 3125, 3134, 3143, 3149, 3155, 3161, 3167, 3172, 989 3188, 3193, 3198, 3206, 3206, 3217, 3217, 3227, 3230, 3243, 990 3265, 3292, 3296, 3302, 3307, 3318, 3321, 3327, 3336, 3339, 991 3345, 3349, 3350, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 992 3366, 3367, 3371, 3367, 3383, 3384, 3388, 3388, 3395, 3395, 993 3409, 3412, 3420, 3428, 3439, 3440, 3444, 3447, 3453, 3460, 994 3464, 3472, 3476, 3489, 3492, 3498, 3498, 3518, 3521, 3527, 995 3539, 3551, 3554, 3560, 3560, 3575, 3575, 3591, 3591, 3612, 996 3615, 3621, 3624, 3630, 3634, 3641, 3646, 3651, 3658, 3661, 997 3670, 3674, 3683, 3686, 3689, 3697, 3697, 3719, 3725, 3728, 998 3733, 3736 999 }; 1000 #endif 1001 1002 #if YYDEBUG || YYERROR_VERBOSE || 1 1003 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 1004 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 1005 static const char *const yytname[] = 1006 { 1007 "$end", "error", "$undefined", "ATTRIBUTE", "VARYING", "FLOAT16_T", 1008 "FLOAT", "FLOAT32_T", "DOUBLE", "FLOAT64_T", "CONST", "BOOL", "INT", 1009 "UINT", "INT64_T", "UINT64_T", "INT32_T", "UINT32_T", "INT16_T", 1010 "UINT16_T", "INT8_T", "UINT8_T", "BREAK", "CONTINUE", "DO", "ELSE", 1011 "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", 1012 "SUBROUTINE", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", 1013 "UVEC2", "UVEC3", "UVEC4", "I64VEC2", "I64VEC3", "I64VEC4", "U64VEC2", 1014 "U64VEC3", "U64VEC4", "I32VEC2", "I32VEC3", "I32VEC4", "U32VEC2", 1015 "U32VEC3", "U32VEC4", "I16VEC2", "I16VEC3", "I16VEC4", "U16VEC2", 1016 "U16VEC3", "U16VEC4", "I8VEC2", "I8VEC3", "I8VEC4", "U8VEC2", "U8VEC3", 1017 "U8VEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3", "MAT4", "CENTROID", 1018 "IN", "OUT", "INOUT", "UNIFORM", "PATCH", "SAMPLE", "BUFFER", "SHARED", 1019 "NONUNIFORM", "PAYLOADNV", "PAYLOADINNV", "HITATTRNV", "CALLDATANV", 1020 "CALLDATAINNV", "COHERENT", "VOLATILE", "RESTRICT", "READONLY", 1021 "WRITEONLY", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT", 1022 "WORKGROUPCOHERENT", "SUBGROUPCOHERENT", "NONPRIVATE", "DVEC2", "DVEC3", 1023 "DVEC4", "DMAT2", "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4", 1024 "F16MAT2", "F16MAT3", "F16MAT4", "F32VEC2", "F32VEC3", "F32VEC4", 1025 "F32MAT2", "F32MAT3", "F32MAT4", "F64VEC2", "F64VEC3", "F64VEC4", 1026 "F64MAT2", "F64MAT3", "F64MAT4", "NOPERSPECTIVE", "FLAT", "SMOOTH", 1027 "LAYOUT", "EXPLICITINTERPAMD", "PERVERTEXNV", "PERPRIMITIVENV", 1028 "PERVIEWNV", "PERTASKNV", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", 1029 "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3", "MAT4X4", "DMAT2X2", "DMAT2X3", 1030 "DMAT2X4", "DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3", 1031 "DMAT4X4", "F16MAT2X2", "F16MAT2X3", "F16MAT2X4", "F16MAT3X2", 1032 "F16MAT3X3", "F16MAT3X4", "F16MAT4X2", "F16MAT4X3", "F16MAT4X4", 1033 "F32MAT2X2", "F32MAT2X3", "F32MAT2X4", "F32MAT3X2", "F32MAT3X3", 1034 "F32MAT3X4", "F32MAT4X2", "F32MAT4X3", "F32MAT4X4", "F64MAT2X2", 1035 "F64MAT2X3", "F64MAT2X4", "F64MAT3X2", "F64MAT3X3", "F64MAT3X4", 1036 "F64MAT4X2", "F64MAT4X3", "F64MAT4X4", "ATOMIC_UINT", "ACCSTRUCTNV", 1037 "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE", "SAMPLER1DSHADOW", 1038 "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER1DARRAY", 1039 "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW", "SAMPLER2DARRAYSHADOW", 1040 "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE", 1041 "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D", "USAMPLER2D", 1042 "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY", "USAMPLER2DARRAY", 1043 "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT", 1044 "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", 1045 "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY", 1046 "USAMPLERCUBEARRAY", "SAMPLER2DMS", "ISAMPLER2DMS", "USAMPLER2DMS", 1047 "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", "USAMPLER2DMSARRAY", 1048 "SAMPLEREXTERNALOES", "F16SAMPLER1D", "F16SAMPLER2D", "F16SAMPLER3D", 1049 "F16SAMPLER2DRECT", "F16SAMPLERCUBE", "F16SAMPLER1DARRAY", 1050 "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY", "F16SAMPLERBUFFER", 1051 "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY", "F16SAMPLER1DSHADOW", 1052 "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW", 1053 "F16SAMPLER2DARRAYSHADOW", "F16SAMPLER2DRECTSHADOW", 1054 "F16SAMPLERCUBESHADOW", "F16SAMPLERCUBEARRAYSHADOW", "SAMPLER", 1055 "SAMPLERSHADOW", "TEXTURE1D", "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE", 1056 "TEXTURE1DARRAY", "TEXTURE2DARRAY", "ITEXTURE1D", "ITEXTURE2D", 1057 "ITEXTURE3D", "ITEXTURECUBE", "ITEXTURE1DARRAY", "ITEXTURE2DARRAY", 1058 "UTEXTURE1D", "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE", 1059 "UTEXTURE1DARRAY", "UTEXTURE2DARRAY", "TEXTURE2DRECT", "ITEXTURE2DRECT", 1060 "UTEXTURE2DRECT", "TEXTUREBUFFER", "ITEXTUREBUFFER", "UTEXTUREBUFFER", 1061 "TEXTURECUBEARRAY", "ITEXTURECUBEARRAY", "UTEXTURECUBEARRAY", 1062 "TEXTURE2DMS", "ITEXTURE2DMS", "UTEXTURE2DMS", "TEXTURE2DMSARRAY", 1063 "ITEXTURE2DMSARRAY", "UTEXTURE2DMSARRAY", "F16TEXTURE1D", "F16TEXTURE2D", 1064 "F16TEXTURE3D", "F16TEXTURE2DRECT", "F16TEXTURECUBE", 1065 "F16TEXTURE1DARRAY", "F16TEXTURE2DARRAY", "F16TEXTURECUBEARRAY", 1066 "F16TEXTUREBUFFER", "F16TEXTURE2DMS", "F16TEXTURE2DMSARRAY", 1067 "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT", "ISUBPASSINPUTMS", 1068 "USUBPASSINPUT", "USUBPASSINPUTMS", "F16SUBPASSINPUT", 1069 "F16SUBPASSINPUTMS", "IMAGE1D", "IIMAGE1D", "UIMAGE1D", "IMAGE2D", 1070 "IIMAGE2D", "UIMAGE2D", "IMAGE3D", "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", 1071 "IIMAGE2DRECT", "UIMAGE2DRECT", "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", 1072 "IMAGEBUFFER", "IIMAGEBUFFER", "UIMAGEBUFFER", "IMAGE1DARRAY", 1073 "IIMAGE1DARRAY", "UIMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE2DARRAY", 1074 "UIMAGE2DARRAY", "IMAGECUBEARRAY", "IIMAGECUBEARRAY", "UIMAGECUBEARRAY", 1075 "IMAGE2DMS", "IIMAGE2DMS", "UIMAGE2DMS", "IMAGE2DMSARRAY", 1076 "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY", "F16IMAGE1D", "F16IMAGE2D", 1077 "F16IMAGE3D", "F16IMAGE2DRECT", "F16IMAGECUBE", "F16IMAGE1DARRAY", 1078 "F16IMAGE2DARRAY", "F16IMAGECUBEARRAY", "F16IMAGEBUFFER", "F16IMAGE2DMS", 1079 "F16IMAGE2DMSARRAY", "STRUCT", "VOID", "WHILE", "IDENTIFIER", 1080 "TYPE_NAME", "FLOATCONSTANT", "DOUBLECONSTANT", "INT16CONSTANT", 1081 "UINT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT", "INTCONSTANT", 1082 "UINTCONSTANT", "INT64CONSTANT", "UINT64CONSTANT", "BOOLCONSTANT", 1083 "FLOAT16CONSTANT", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP", 1084 "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN", 1085 "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", 1086 "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN", 1087 "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE", 1088 "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG", 1089 "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT", "LEFT_ANGLE", 1090 "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND", "QUESTION", 1091 "INVARIANT", "PRECISE", "HIGH_PRECISION", "MEDIUM_PRECISION", 1092 "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP", "$accept", 1093 "variable_identifier", "primary_expression", "postfix_expression", 1094 "integer_expression", "function_call", "function_call_or_method", 1095 "function_call_generic", "function_call_header_no_parameters", 1096 "function_call_header_with_parameters", "function_call_header", 1097 "function_identifier", "unary_expression", "unary_operator", 1098 "multiplicative_expression", "additive_expression", "shift_expression", 1099 "relational_expression", "equality_expression", "and_expression", 1100 "exclusive_or_expression", "inclusive_or_expression", 1101 "logical_and_expression", "logical_xor_expression", 1102 "logical_or_expression", "conditional_expression", "$@1", 1103 "assignment_expression", "assignment_operator", "expression", 1104 "constant_expression", "declaration", "block_structure", "$@2", 1105 "identifier_list", "function_prototype", "function_declarator", 1106 "function_header_with_parameters", "function_header", 1107 "parameter_declarator", "parameter_declaration", 1108 "parameter_type_specifier", "init_declarator_list", "single_declaration", 1109 "fully_specified_type", "invariant_qualifier", "interpolation_qualifier", 1110 "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id", 1111 "precise_qualifier", "type_qualifier", "single_type_qualifier", 1112 "storage_qualifier", "non_uniform_qualifier", "type_name_list", 1113 "type_specifier", "array_specifier", "type_specifier_nonarray", 1114 "precision_qualifier", "struct_specifier", "$@3", "$@4", 1115 "struct_declaration_list", "struct_declaration", 1116 "struct_declarator_list", "struct_declarator", "initializer", 1117 "initializer_list", "declaration_statement", "statement", 1118 "simple_statement", "compound_statement", "$@5", "$@6", 1119 "statement_no_new_scope", "statement_scoped", "$@7", "$@8", 1120 "compound_statement_no_new_scope", "statement_list", 1121 "expression_statement", "selection_statement", 1122 "selection_statement_nonattributed", "selection_rest_statement", 1123 "condition", "switch_statement", "switch_statement_nonattributed", "$@9", 1124 "switch_statement_list", "case_label", "iteration_statement", 1125 "iteration_statement_nonattributed", "$@10", "$@11", "$@12", 1126 "for_init_statement", "conditionopt", "for_rest_statement", 1127 "jump_statement", "translation_unit", "external_declaration", 1128 "function_definition", "$@13", "attribute", "attribute_list", 1129 "single_attribute", YY_NULLPTR 1130 }; 1131 #endif 1132 1133 # ifdef YYPRINT 1134 /* YYTOKNUM[NUM] -- (External) token number corresponding to the 1135 (internal) symbol number NUM (which must be that of a token). */ 1136 static const yytype_uint16 yytoknum[] = 1137 { 1138 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 1139 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 1140 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 1141 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 1142 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 1143 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 1144 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 1145 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 1146 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 1147 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 1148 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 1149 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 1150 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 1151 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 1152 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 1153 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 1154 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 1155 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 1156 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 1157 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 1158 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1159 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 1160 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 1161 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 1162 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 1163 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 1164 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 1165 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 1166 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 1167 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 1168 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 1169 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 1170 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 1171 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 1172 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 1173 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 1174 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 1175 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 1176 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 1177 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 1178 655, 656, 657, 658, 659, 660 1179 }; 1180 # endif 1181 1182 #define YYPACT_NINF -649 1183 1184 #define yypact_value_is_default(Yystate) \ 1185 (!!((Yystate) == (-649))) 1186 1187 #define YYTABLE_NINF -517 1188 1189 #define yytable_value_is_error(Yytable_value) \ 1190 0 1191 1192 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1193 STATE-NUM. */ 1194 static const yytype_int16 yypact[] = 1195 { 1196 3511, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1197 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1198 -326, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1199 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1200 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1201 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1202 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1203 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1204 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1205 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1206 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1207 -649, -649, -310, -649, -649, -649, -649, -649, -649, -649, 1208 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1209 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1210 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1211 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1212 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1213 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1214 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1215 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1216 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1217 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1218 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1219 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1220 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1221 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1222 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1223 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1224 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1225 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1226 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1227 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1228 -649, -649, -316, -649, -649, -649, -649, -649, -649, -649, 1229 -649, -256, -649, -317, -357, -305, -269, 5906, -315, -649, 1230 -225, -649, -649, -649, -649, 4310, -649, -649, -649, -649, 1231 -234, -649, -649, 711, -649, -649, -204, -69, -222, -649, 1232 8955, -335, -649, -649, -218, -649, 5906, -649, -649, -649, 1233 5906, -170, -169, -649, -339, -303, -649, -649, -649, 6657, 1234 -205, -649, -649, -649, -307, -649, -211, -302, -649, -649, 1235 5906, -210, -649, -321, 1111, -649, -649, -649, -649, -234, 1236 -340, -649, 7040, -325, -649, -166, -649, -292, -649, -649, 1237 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1238 -649, 8189, 8189, 8189, -649, -649, -649, -649, -649, -649, 1239 -649, -324, -649, -649, -649, -200, -298, 8572, -198, -649, 1240 8189, -242, -278, -314, -333, -209, -219, -217, -215, -180, 1241 -181, -336, -194, -649, -649, 7423, -649, -155, 8189, -649, 1242 -69, 5906, 5906, -154, 4709, -649, -649, -649, -197, -195, 1243 -649, -188, -184, -193, 7806, -179, 8189, -189, -178, -182, 1244 -177, -649, -649, -267, -649, -649, -252, -649, -357, -176, 1245 -173, -649, -649, -649, -649, 1511, -649, -649, -649, -649, 1246 -649, -649, -649, -649, -649, -19, -205, 7040, -311, 7040, 1247 -649, -649, 7040, 5906, -649, -142, -649, -649, -649, -293, 1248 -649, -649, 8189, -136, -649, -649, 8189, -171, -649, -649, 1249 -649, 8189, 8189, 8189, 8189, 8189, 8189, 8189, 8189, 8189, 1250 8189, 8189, 8189, 8189, 8189, 8189, 8189, 8189, 8189, 8189, 1251 -649, -649, -649, -172, -649, -649, -649, -649, 5108, -154, 1252 -234, -251, -649, -649, -649, -649, -649, 1911, -649, 8189, 1253 -649, -649, -245, 8189, -228, -649, -649, -133, -649, 1911, 1254 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1255 -649, 8189, 8189, -649, -649, -649, -649, -649, -649, -649, 1256 7040, -649, -285, -649, 5507, -649, -649, -168, -165, -649, 1257 -649, -649, -649, -649, -242, -242, -278, -278, -314, -314, 1258 -314, -314, -333, -333, -209, -219, -217, -215, -180, -181, 1259 8189, -649, -649, -241, -205, -154, -649, -128, 3111, -290, 1260 -649, -268, -649, 3911, -163, -297, -649, 1911, -649, -649, 1261 -649, -649, 6274, -649, -649, -223, -649, -649, -162, -649, 1262 -649, 3911, -161, -649, -165, -126, 5906, -160, 8189, -159, 1263 -133, -158, -649, -649, 8189, 8189, -649, -164, -156, 196, 1264 -151, 2711, -649, -131, -135, 2311, -152, -649, -649, -649, 1265 -649, -254, 8189, 2311, -161, -649, -649, 1911, 7040, -649, 1266 -649, -649, -649, -134, -165, -649, -649, 1911, -127, -649, 1267 -649, -649 1268 }; 1269 1270 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 1271 Performed when YYTABLE does not specify something else to do. Zero 1272 means the default is an error. */ 1273 static const yytype_uint16 yydefact[] = 1274 { 1275 0, 157, 158, 197, 195, 198, 196, 199, 156, 210, 1276 200, 201, 208, 209, 206, 207, 204, 205, 202, 203, 1277 183, 226, 227, 228, 229, 230, 231, 244, 245, 246, 1278 241, 242, 243, 256, 257, 258, 238, 239, 240, 253, 1279 254, 255, 235, 236, 237, 250, 251, 252, 232, 233, 1280 234, 247, 248, 249, 211, 212, 213, 259, 260, 261, 1281 162, 160, 161, 159, 165, 163, 164, 166, 172, 185, 1282 168, 169, 167, 170, 171, 173, 179, 180, 181, 182, 1283 174, 175, 176, 177, 178, 214, 215, 216, 271, 272, 1284 273, 217, 218, 219, 283, 284, 285, 220, 221, 222, 1285 295, 296, 297, 223, 224, 225, 307, 308, 309, 134, 1286 133, 132, 0, 135, 136, 137, 138, 139, 262, 263, 1287 264, 265, 266, 267, 268, 269, 270, 274, 275, 276, 1288 277, 278, 279, 280, 281, 282, 286, 287, 288, 289, 1289 290, 291, 292, 293, 294, 298, 299, 300, 301, 302, 1290 303, 304, 305, 306, 310, 311, 312, 313, 314, 315, 1291 316, 317, 318, 320, 319, 321, 322, 323, 324, 325, 1292 326, 327, 328, 329, 330, 331, 347, 348, 349, 350, 1293 351, 352, 354, 355, 356, 357, 358, 359, 361, 362, 1294 365, 366, 367, 369, 370, 332, 333, 353, 360, 371, 1295 373, 374, 375, 377, 378, 469, 334, 335, 336, 363, 1296 337, 341, 342, 345, 368, 372, 376, 338, 339, 343, 1297 344, 364, 340, 346, 379, 380, 381, 383, 385, 387, 1298 389, 391, 395, 396, 397, 398, 399, 400, 402, 403, 1299 404, 405, 406, 407, 409, 411, 412, 413, 415, 416, 1300 393, 401, 408, 417, 419, 420, 421, 423, 424, 382, 1301 384, 386, 410, 388, 390, 392, 394, 414, 418, 422, 1302 470, 471, 474, 475, 476, 477, 472, 473, 425, 427, 1303 428, 429, 431, 432, 433, 435, 436, 437, 439, 440, 1304 441, 443, 444, 445, 447, 448, 449, 451, 452, 453, 1305 455, 456, 457, 459, 460, 461, 463, 464, 465, 467, 1306 468, 426, 430, 434, 438, 442, 450, 454, 458, 446, 1307 462, 466, 0, 194, 479, 564, 131, 146, 480, 481, 1308 482, 0, 563, 0, 565, 0, 108, 107, 0, 119, 1309 124, 153, 152, 150, 154, 0, 147, 149, 155, 129, 1310 188, 151, 478, 0, 560, 562, 0, 0, 0, 485, 1311 0, 0, 96, 93, 0, 106, 0, 115, 109, 117, 1312 0, 118, 0, 94, 125, 0, 99, 148, 130, 0, 1313 189, 1, 561, 186, 0, 145, 143, 0, 141, 483, 1314 0, 0, 97, 0, 0, 566, 110, 114, 116, 112, 1315 120, 111, 0, 126, 102, 0, 100, 0, 2, 12, 1316 13, 10, 11, 4, 5, 6, 7, 8, 9, 15, 1317 14, 0, 0, 0, 190, 42, 41, 43, 40, 3, 1318 17, 36, 19, 24, 25, 0, 0, 29, 0, 44, 1319 0, 48, 51, 54, 59, 62, 64, 66, 68, 70, 1320 72, 74, 0, 35, 33, 0, 184, 0, 0, 140, 1321 0, 0, 0, 0, 0, 487, 95, 98, 0, 0, 1322 545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1323 511, 520, 524, 44, 77, 90, 0, 500, 0, 155, 1324 129, 503, 522, 502, 501, 0, 504, 505, 526, 506, 1325 533, 507, 508, 541, 509, 0, 113, 0, 121, 0, 1326 495, 128, 0, 0, 104, 0, 101, 37, 38, 0, 1327 21, 22, 0, 0, 27, 26, 0, 194, 30, 32, 1328 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1330 75, 191, 192, 0, 187, 92, 144, 142, 0, 0, 1331 493, 0, 491, 486, 488, 556, 555, 0, 547, 0, 1332 559, 557, 0, 0, 0, 540, 543, 0, 510, 0, 1333 80, 81, 83, 82, 85, 86, 87, 88, 89, 84, 1334 79, 0, 0, 525, 521, 523, 527, 534, 542, 123, 1335 0, 498, 0, 127, 0, 105, 16, 0, 23, 20, 1336 31, 45, 46, 47, 50, 49, 52, 53, 57, 58, 1337 55, 56, 60, 61, 63, 65, 67, 69, 71, 73, 1338 0, 193, 484, 0, 494, 0, 489, 0, 0, 0, 1339 558, 0, 539, 0, 570, 0, 568, 512, 78, 91, 1340 122, 496, 0, 103, 18, 0, 490, 492, 0, 550, 1341 549, 552, 518, 535, 531, 0, 0, 0, 0, 0, 1342 0, 0, 497, 499, 0, 0, 551, 0, 0, 530, 1343 0, 0, 528, 0, 0, 0, 0, 567, 569, 513, 1344 76, 0, 553, 0, 518, 517, 519, 537, 0, 515, 1345 544, 514, 571, 0, 554, 548, 529, 538, 0, 532, 1346 546, 536 1347 }; 1348 1349 /* YYPGOTO[NTERM-NUM]. */ 1350 static const yytype_int16 yypgoto[] = 1351 { 1352 -649, -649, -649, -649, -649, -649, -649, -649, -649, -649, 1353 -649, -649, -304, -649, -373, -370, -416, -379, -294, -322, 1354 -291, -295, -288, -296, -649, -369, -649, -393, -649, -382, 1355 -414, 1, -649, -649, -649, 2, -649, -649, -649, -114, 1356 -109, -112, -649, -649, -615, -649, -649, -649, -649, -196, 1357 -649, -334, -341, -649, 6, -649, 0, -347, -649, -68, 1358 -649, -649, -649, -443, -448, -287, -368, -492, -649, -376, 1359 -482, -648, -415, -649, -649, -427, -426, -649, -649, -93, 1360 -560, -365, -649, -231, -649, -386, -649, -229, -649, -649, 1361 -649, -649, -227, -649, -649, -649, -649, -649, -649, -649, 1362 -649, -76, -649, -649, -649, -649, -390 1363 }; 1364 1365 /* YYDEFGOTO[NTERM-NUM]. */ 1366 static const yytype_int16 yydefgoto[] = 1367 { 1368 -1, 429, 430, 431, 607, 432, 433, 434, 435, 436, 1369 437, 438, 483, 440, 441, 442, 443, 444, 445, 446, 1370 447, 448, 449, 450, 451, 484, 630, 485, 591, 486, 1371 556, 487, 333, 513, 407, 488, 335, 336, 337, 367, 1372 368, 369, 338, 339, 340, 341, 342, 343, 387, 388, 1373 344, 345, 346, 347, 453, 384, 454, 380, 350, 351, 1374 352, 461, 390, 464, 465, 561, 562, 511, 602, 491, 1375 492, 493, 494, 579, 671, 700, 679, 680, 681, 701, 1376 495, 496, 497, 498, 682, 667, 499, 500, 683, 708, 1377 501, 502, 503, 643, 567, 638, 661, 677, 678, 504, 1378 353, 354, 355, 364, 505, 645, 646 1379 }; 1380 1381 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 1382 positive, shift that token. If negative, reduce the rule whose 1383 number is the opposite. If YYTABLE_NINF, syntax error. */ 1384 static const yytype_int16 yytable[] = 1385 { 1386 349, 332, 334, 370, 377, 470, 348, 471, 472, 510, 1387 452, 475, 385, 595, 393, 599, 564, 601, 558, 647, 1388 603, 361, 358, 538, 539, 549, 363, 403, 665, 377, 1389 520, 521, 370, 696, 401, 379, 379, 699, 536, 537, 1390 379, 519, 507, 402, 528, 699, 665, 356, 392, -34, 1391 455, 522, 506, 508, 455, 523, 462, 512, 540, 541, 1392 550, 359, 467, 357, 455, 372, 362, 456, 373, 365, 1393 604, 600, 459, 457, 404, 439, 525, 405, 460, 669, 1394 406, 606, 526, 670, 662, 637, 553, 592, 515, 555, 1395 592, 516, 572, 651, 574, 652, 580, 581, 582, 583, 1396 584, 585, 586, 587, 588, 589, 663, 534, 650, 535, 1397 564, 366, 592, 374, 510, 590, 510, 517, 518, 510, 1398 703, 377, 618, 619, 620, 621, 592, 462, 592, 635, 1399 462, 593, 636, 610, 383, 592, 530, 707, 640, 635, 1400 608, 379, 656, 328, 329, 330, 531, 532, 533, 542, 1401 543, 439, 592, 642, 439, 389, 564, 592, 674, 394, 1402 673, 614, 615, 622, 623, 595, 616, 617, 399, 400, 1403 455, 458, 514, 466, 524, 529, 544, 545, 546, 462, 1404 547, 548, 551, 554, 560, 568, 565, 639, 566, 569, 1405 570, 641, 575, 577, 573, 576, 605, -35, 648, 649, 1406 -33, 578, 609, -28, 631, 644, 709, 510, 654, 658, 1407 668, 675, 684, 634, 685, 592, -516, 687, 693, 692, 1408 689, 694, 702, 625, 462, 595, 480, 611, 612, 613, 1409 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 1410 439, 439, 439, 439, 439, 439, 697, 698, 655, 710, 1411 624, 711, 627, 629, 686, 626, 397, 396, 398, 510, 1412 628, 664, 659, 360, 557, 695, 705, 657, 706, 386, 1413 462, 395, 633, 660, 596, 676, 597, 382, 598, 664, 1414 688, 690, 0, 0, 0, 0, 0, 0, 0, 0, 1415 0, 0, 0, 691, 0, 0, 0, 0, 0, 555, 1416 0, 0, 0, 0, 0, 510, 0, 0, 0, 666, 1417 704, 0, 0, 0, 0, 0, 0, 0, 478, 0, 1418 0, 0, 0, 0, 0, 377, 0, 666, 0, 0, 1419 0, 0, 0, 0, 0, 0, 0, 371, 0, 0, 1420 0, 0, 0, 348, 0, 378, 0, 0, 0, 0, 1421 0, 348, 0, 349, 332, 334, 0, 0, 0, 348, 1422 391, 0, 0, 0, 439, 0, 371, 0, 0, 0, 1423 371, 0, 348, 0, 0, 0, 348, 0, 0, 0, 1424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1425 463, 0, 0, 0, 490, 0, 348, 0, 0, 0, 1426 489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1427 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1432 0, 463, 559, 0, 463, 0, 0, 348, 348, 0, 1433 348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1435 0, 0, 0, 0, 0, 490, 0, 0, 0, 0, 1436 0, 489, 0, 0, 0, 0, 0, 0, 0, 0, 1437 0, 0, 0, 463, 0, 0, 0, 0, 0, 348, 1438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1441 0, 0, 0, 0, 0, 0, 0, 0, 463, 0, 1442 0, 0, 0, 0, 348, 0, 0, 490, 0, 0, 1443 0, 0, 0, 489, 0, 0, 0, 0, 0, 490, 1444 0, 0, 0, 0, 0, 489, 0, 0, 0, 0, 1445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1446 0, 0, 0, 0, 463, 0, 0, 0, 0, 0, 1447 348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1449 0, 0, 0, 0, 0, 0, 0, 0, 490, 0, 1450 0, 0, 0, 490, 489, 0, 0, 490, 0, 489, 1451 0, 0, 0, 489, 0, 0, 0, 0, 0, 0, 1452 0, 490, 0, 0, 0, 0, 378, 489, 0, 0, 1453 0, 0, 348, 0, 0, 0, 0, 0, 0, 0, 1454 0, 490, 0, 0, 0, 490, 0, 489, 0, 0, 1455 0, 489, 0, 490, 0, 0, 0, 490, 0, 489, 1456 0, 0, 0, 489, 0, 0, 0, 490, 0, 0, 1457 0, 381, 0, 489, 1, 2, 3, 4, 5, 6, 1458 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1459 17, 18, 19, 0, 0, 0, 0, 0, 0, 0, 1460 0, 0, 0, 0, 20, 21, 22, 23, 24, 25, 1461 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 1462 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 1463 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 1464 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 1465 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 1466 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 1467 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 1468 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 1469 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 1470 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 1471 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 1472 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 1473 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 1474 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 1475 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 1476 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 1477 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 1478 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 1479 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 1480 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 1481 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 1482 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 1483 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 1484 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 1485 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 1486 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 1487 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 1488 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 1489 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 1490 316, 317, 318, 319, 320, 321, 322, 323, 0, 0, 1491 324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1495 0, 0, 0, 0, 325, 0, 0, 0, 0, 0, 1496 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 1497 328, 329, 330, 331, 1, 2, 3, 4, 5, 6, 1498 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1499 17, 18, 19, 468, 469, 470, 0, 471, 472, 473, 1500 474, 475, 476, 477, 20, 21, 22, 23, 24, 25, 1501 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 1502 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 1503 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 1504 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 1505 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 1506 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 1507 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 1508 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 1509 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 1510 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 1511 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 1512 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 1513 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 1514 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 1515 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 1516 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 1517 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 1518 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 1519 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 1520 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 1521 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 1522 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 1523 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 1524 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 1525 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 1526 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 1527 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 1528 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 1529 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 1530 316, 317, 318, 319, 320, 321, 322, 323, 478, 408, 1531 324, 409, 410, 411, 412, 413, 414, 415, 416, 417, 1532 418, 419, 420, 0, 0, 421, 422, 0, 0, 0, 1533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1534 0, 0, 0, 0, 423, 0, 479, 0, 480, 481, 1535 0, 0, 0, 0, 482, 425, 426, 427, 428, 0, 1536 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 1537 328, 329, 330, 331, 1, 2, 3, 4, 5, 6, 1538 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1539 17, 18, 19, 468, 469, 470, 0, 471, 472, 473, 1540 474, 475, 476, 477, 20, 21, 22, 23, 24, 25, 1541 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 1542 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 1543 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 1544 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 1545 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 1546 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 1547 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 1548 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 1549 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 1550 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 1551 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 1552 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 1553 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 1554 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 1555 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 1556 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 1557 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 1558 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 1559 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 1560 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 1561 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 1562 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 1563 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 1564 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 1565 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 1566 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 1567 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 1568 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 1569 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 1570 316, 317, 318, 319, 320, 321, 322, 323, 478, 408, 1571 324, 409, 410, 411, 412, 413, 414, 415, 416, 417, 1572 418, 419, 420, 0, 0, 421, 422, 0, 0, 0, 1573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1574 0, 0, 0, 0, 423, 0, 479, 0, 480, 594, 1575 0, 0, 0, 0, 482, 425, 426, 427, 428, 0, 1576 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 1577 328, 329, 330, 331, 1, 2, 3, 4, 5, 6, 1578 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1579 17, 18, 19, 468, 469, 470, 0, 471, 472, 473, 1580 474, 475, 476, 477, 20, 21, 22, 23, 24, 25, 1581 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 1582 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 1583 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 1584 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 1585 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 1586 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 1587 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 1588 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 1589 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 1590 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 1591 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 1592 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 1593 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 1594 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 1595 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 1596 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 1597 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 1598 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 1599 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 1600 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 1601 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 1602 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 1603 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 1604 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 1605 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 1606 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 1607 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 1608 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 1609 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 1610 316, 317, 318, 319, 320, 321, 322, 323, 478, 408, 1611 324, 409, 410, 411, 412, 413, 414, 415, 416, 417, 1612 418, 419, 420, 0, 0, 421, 422, 0, 0, 0, 1613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1614 0, 0, 0, 0, 423, 0, 479, 0, 480, 0, 1615 0, 0, 0, 0, 482, 425, 426, 427, 428, 0, 1616 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 1617 328, 329, 330, 331, 1, 2, 3, 4, 5, 6, 1618 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1619 17, 18, 19, 468, 469, 470, 0, 471, 472, 473, 1620 474, 475, 476, 477, 20, 21, 22, 23, 24, 25, 1621 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 1622 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 1623 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 1624 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 1625 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 1626 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 1627 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 1628 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 1629 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 1630 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 1631 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 1632 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 1633 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 1634 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 1635 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 1636 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 1637 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 1638 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 1639 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 1640 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 1641 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 1642 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 1643 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 1644 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 1645 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 1646 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 1647 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 1648 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 1649 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 1650 316, 317, 318, 319, 320, 321, 322, 323, 478, 408, 1651 324, 409, 410, 411, 412, 413, 414, 415, 416, 417, 1652 418, 419, 420, 0, 0, 421, 422, 0, 0, 0, 1653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1654 0, 0, 0, 0, 423, 0, 479, 0, 394, 0, 1655 0, 0, 0, 0, 482, 425, 426, 427, 428, 0, 1656 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 1657 328, 329, 330, 331, 1, 2, 3, 4, 5, 6, 1658 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1659 17, 18, 19, 468, 469, 470, 0, 471, 472, 473, 1660 474, 475, 476, 477, 20, 21, 22, 23, 24, 25, 1661 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 1662 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 1663 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 1664 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 1665 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 1666 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 1667 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 1668 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 1669 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 1670 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 1671 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 1672 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 1673 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 1674 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 1675 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 1676 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 1677 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 1678 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 1679 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 1680 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 1681 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 1682 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 1683 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 1684 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 1685 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 1686 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 1687 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 1688 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 1689 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 1690 316, 317, 318, 319, 320, 321, 322, 323, 478, 408, 1691 324, 409, 410, 411, 412, 413, 414, 415, 416, 417, 1692 418, 419, 420, 0, 0, 421, 422, 0, 0, 0, 1693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1694 0, 0, 0, 0, 423, 0, 479, 0, 0, 0, 1695 0, 0, 0, 0, 482, 425, 426, 427, 428, 0, 1696 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 1697 328, 329, 330, 331, 1, 2, 3, 4, 5, 6, 1698 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1699 17, 18, 19, 0, 0, 0, 0, 0, 0, 0, 1700 0, 0, 0, 0, 20, 21, 22, 23, 24, 25, 1701 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 1702 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 1703 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 1704 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 1705 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 1706 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 1707 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 1708 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 1709 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 1710 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 1711 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 1712 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 1713 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 1714 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 1715 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 1716 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 1717 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 1718 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 1719 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 1720 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 1721 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 1722 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 1723 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 1724 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 1725 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 1726 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 1727 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 1728 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 1729 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 1730 316, 317, 318, 319, 320, 321, 322, 323, 0, 408, 1731 324, 409, 410, 411, 412, 413, 414, 415, 416, 417, 1732 418, 419, 420, 0, 0, 421, 422, 0, 0, 0, 1733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1734 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 1735 0, 0, 0, 0, 482, 425, 426, 427, 428, 0, 1736 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 1737 328, 329, 330, 331, 1, 2, 3, 4, 5, 6, 1738 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1739 17, 18, 19, 0, 0, 0, 0, 0, 0, 0, 1740 0, 0, 0, 0, 20, 21, 22, 23, 24, 25, 1741 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 1742 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 1743 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 1744 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 1745 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 1746 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 1747 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 1748 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 1749 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 1750 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 1751 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 1752 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 1753 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 1754 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 1755 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 1756 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 1757 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 1758 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 1759 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 1760 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 1761 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 1762 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 1763 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 1764 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 1765 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 1766 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 1767 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 1768 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 1769 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 1770 316, 317, 318, 319, 320, 321, 322, 323, 0, 0, 1771 324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1775 0, 0, 0, 0, 325, 0, 0, 0, 0, 0, 1776 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 1777 328, 329, 330, 331, 1, 2, 3, 4, 5, 6, 1778 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1779 17, 18, 19, 0, 0, 0, 0, 0, 0, 0, 1780 0, 0, 0, 0, 20, 21, 22, 23, 24, 25, 1781 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 1782 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 1783 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 1784 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 1785 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 1786 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 1787 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 1788 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 1789 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 1790 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 1791 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 1792 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 1793 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 1794 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 1795 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 1796 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 1797 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 1798 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 1799 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 1800 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 1801 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 1802 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 1803 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 1804 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 1805 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 1806 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 1807 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 1808 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 1809 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 1810 316, 317, 318, 319, 320, 321, 322, 323, 0, 408, 1811 324, 409, 410, 411, 412, 413, 414, 415, 416, 417, 1812 418, 419, 420, 0, 0, 421, 422, 0, 0, 0, 1813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1814 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 1815 0, 0, 0, 0, 0, 425, 426, 427, 428, 0, 1816 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 1817 328, 329, 330, 1, 2, 3, 4, 5, 6, 7, 1818 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 1819 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, 1820 0, 0, 0, 20, 21, 22, 23, 24, 25, 26, 1821 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 1822 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 1823 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 1824 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 1825 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 1826 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 1827 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 1828 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 1829 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 1830 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 1831 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 1832 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 1833 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 1834 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 1835 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 1836 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 1837 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 1838 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 1839 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 1840 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 1841 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 1842 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 1843 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 1844 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 1845 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 1846 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 1847 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 1848 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 1849 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 1850 317, 318, 319, 320, 321, 322, 323, 0, 375, 324, 1851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 376, 0, 0, 0, 0, 0, 0, 1856 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 1857 329, 330, 1, 2, 3, 4, 5, 6, 7, 8, 1858 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1859 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1860 0, 0, 20, 21, 22, 23, 24, 25, 26, 27, 1861 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 1862 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 1863 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 1864 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 1865 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 1866 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 1867 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 1868 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 1869 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 1870 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 1871 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 1872 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 1873 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 1874 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 1875 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 1876 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 1877 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 1878 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 1879 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 1880 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 1881 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 1882 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 1883 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 1884 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 1885 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 1886 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 1887 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 1888 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 1889 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 1890 318, 319, 320, 321, 322, 323, 0, 0, 324, 0, 1891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1894 0, 0, 0, 0, 0, 0, 0, 563, 0, 0, 1895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1896 0, 0, 0, 0, 0, 0, 326, 327, 328, 329, 1897 330, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1898 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1900 0, 20, 21, 22, 23, 24, 25, 26, 27, 28, 1901 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 1902 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 1903 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 1904 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 1905 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 1906 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 1907 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 1908 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 1909 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 1910 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 1911 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 1912 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 1913 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 1914 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 1915 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 1916 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 1917 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 1918 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 1919 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 1920 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1921 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 1922 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 1923 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1924 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 1925 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 1926 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 1927 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 1928 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 1929 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 1930 319, 320, 321, 322, 323, 0, 0, 324, 0, 0, 1931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1934 0, 0, 0, 0, 0, 0, 632, 0, 0, 0, 1935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1936 0, 0, 0, 0, 0, 326, 327, 328, 329, 330, 1937 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1938 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 1939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1940 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 1941 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 1942 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 1943 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 1944 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 1945 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 1946 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 1947 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 1948 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 1949 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 1950 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 1951 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 1952 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 1953 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 1954 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 1955 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 1956 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 1957 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 1958 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 1959 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 1960 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 1961 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 1962 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 1963 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1964 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 1965 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 1966 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 1967 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 1968 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 1969 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 1970 320, 321, 322, 323, 0, 0, 324, 0, 0, 0, 1971 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1972 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1974 0, 0, 0, 0, 0, 653, 0, 0, 0, 0, 1975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1976 0, 0, 0, 0, 326, 327, 328, 329, 330, 1, 1977 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1978 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 1979 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1980 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 1981 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 1982 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 1983 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 1984 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 1985 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 1986 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 1987 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 1988 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 1989 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 1990 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 1991 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 1992 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 1993 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 1994 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 1995 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 1996 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 1997 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 1998 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 1999 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 2000 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 2001 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 2002 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 2003 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 2004 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 2005 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 2006 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 2007 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 2008 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 2009 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 2010 321, 322, 323, 0, 0, 324, 0, 0, 0, 0, 2011 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2012 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2013 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2014 4, 5, 6, 7, 0, 9, 10, 11, 12, 13, 2015 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, 2016 0, 0, 0, 326, 327, 328, 329, 330, 21, 22, 2017 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 2018 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 2019 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 2020 53, 54, 55, 56, 57, 58, 59, 0, 0, 0, 2021 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 2022 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2023 0, 0, 85, 86, 87, 88, 89, 90, 91, 92, 2024 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 2025 103, 104, 105, 106, 107, 108, 0, 0, 0, 0, 2026 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 2027 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 2028 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 2029 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 2030 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 2031 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 2032 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 2033 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 2034 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 2035 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 2036 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 2037 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 2038 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 2039 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 2040 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 2041 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 2042 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 2043 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 2044 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 2045 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 2046 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 2047 323, 0, 408, 324, 409, 410, 411, 412, 413, 414, 2048 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, 2049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2050 0, 0, 0, 0, 0, 0, 0, 423, 0, 0, 2051 0, 509, 672, 0, 0, 0, 0, 0, 425, 426, 2052 427, 428, 3, 4, 5, 6, 7, 0, 9, 10, 2053 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 2054 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2055 0, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2056 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 2057 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 2058 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 2059 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 2060 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2061 0, 0, 0, 0, 0, 85, 86, 87, 88, 89, 2062 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2063 100, 101, 102, 103, 104, 105, 106, 107, 108, 0, 2064 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 2065 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 2066 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 2067 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 2068 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 2069 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 2070 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 2071 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 2072 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 2073 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 2074 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 2075 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 2076 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 2077 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 2078 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 2079 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 2080 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 2081 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 2082 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 2083 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 2084 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 2085 320, 321, 322, 323, 0, 408, 324, 409, 410, 411, 2086 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, 2087 0, 421, 422, 0, 0, 0, 0, 0, 0, 0, 2088 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2089 423, 0, 0, 424, 0, 0, 0, 0, 0, 0, 2090 0, 425, 426, 427, 428, 3, 4, 5, 6, 7, 2091 0, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2092 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, 2093 0, 0, 0, 0, 21, 22, 23, 24, 25, 26, 2094 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 2095 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 2096 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 2097 57, 58, 59, 0, 0, 0, 0, 0, 0, 0, 2098 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 2099 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 2100 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 2101 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 2102 107, 108, 0, 0, 0, 0, 0, 0, 0, 0, 2103 0, 118, 119, 120, 121, 122, 123, 124, 125, 126, 2104 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 2105 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 2106 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 2107 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 2108 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 2109 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 2110 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 2111 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 2112 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 2113 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 2114 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 2115 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 2116 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 2117 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 2118 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 2119 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 2120 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 2121 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 2122 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 2123 317, 318, 319, 320, 321, 322, 323, 0, 408, 324, 2124 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 2125 419, 420, 0, 0, 421, 422, 0, 0, 0, 0, 2126 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2127 0, 0, 0, 423, 0, 0, 0, 509, 0, 0, 2128 0, 0, 0, 0, 425, 426, 427, 428, 3, 4, 2129 5, 6, 7, 0, 9, 10, 11, 12, 13, 14, 2130 15, 16, 17, 18, 19, 0, 0, 0, 0, 0, 2131 0, 0, 0, 0, 0, 0, 0, 21, 22, 23, 2132 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 2133 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 2134 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 2135 54, 55, 56, 57, 58, 59, 0, 0, 0, 0, 2136 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 2137 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2138 0, 85, 86, 87, 88, 89, 90, 91, 92, 93, 2139 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 2140 104, 105, 106, 107, 108, 0, 0, 0, 0, 0, 2141 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 2142 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 2143 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 2144 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 2145 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 2146 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 2147 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 2148 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 2149 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 2150 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 2151 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 2152 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 2153 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 2154 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 2155 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 2156 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 2157 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 2158 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 2159 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 2160 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 2161 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 2162 0, 408, 324, 409, 410, 411, 412, 413, 414, 415, 2163 416, 417, 418, 419, 420, 0, 0, 421, 422, 0, 2164 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2165 0, 0, 0, 0, 0, 0, 423, 0, 0, 552, 2166 0, 0, 0, 0, 0, 0, 0, 425, 426, 427, 2167 428, 3, 4, 5, 6, 7, 0, 9, 10, 11, 2168 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 2169 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2170 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 2171 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 2172 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 2173 51, 52, 53, 54, 55, 56, 57, 58, 59, 0, 2174 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 2175 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2176 0, 0, 0, 0, 85, 86, 87, 88, 89, 90, 2177 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 2178 101, 102, 103, 104, 105, 106, 107, 108, 0, 0, 2179 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 2180 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 2181 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 2182 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 2183 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 2184 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 2185 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 2186 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 2187 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 2188 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 2189 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 2190 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 2191 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 2192 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 2193 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 2194 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 2195 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 2196 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 2197 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 2198 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 2199 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 2200 321, 322, 323, 0, 408, 324, 409, 410, 411, 412, 2201 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, 2202 421, 422, 0, 0, 0, 0, 0, 0, 0, 0, 2203 0, 0, 0, 0, 0, 0, 0, 0, 0, 423, 2204 0, 0, 0, 0, 0, 0, 0, 0, 0, 571, 2205 425, 426, 427, 428, 3, 4, 5, 6, 7, 0, 2206 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2207 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2208 0, 0, 0, 21, 22, 23, 24, 25, 26, 27, 2209 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 2210 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 2211 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 2212 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 2213 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 2214 0, 0, 0, 0, 0, 0, 0, 85, 86, 87, 2215 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 2216 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 2217 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2218 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 2219 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 2220 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 2221 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 2222 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 2223 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 2224 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 2225 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 2226 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 2227 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 2228 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 2229 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 2230 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 2231 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 2232 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 2233 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 2234 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 2235 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 2236 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 2237 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 2238 318, 319, 320, 321, 322, 323, 0, 408, 324, 409, 2239 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 2240 420, 0, 0, 421, 422, 0, 0, 0, 0, 0, 2241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2242 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 2243 0, 0, 0, 425, 426, 427, 428, 3, 4, 5, 2244 6, 7, 0, 9, 10, 11, 12, 13, 14, 15, 2245 16, 17, 18, 19, 0, 0, 0, 0, 0, 0, 2246 0, 0, 0, 0, 0, 0, 21, 22, 23, 24, 2247 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 2248 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 2249 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 2250 55, 56, 57, 58, 59, 0, 0, 0, 0, 0, 2251 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 2252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2253 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 2254 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 2255 105, 106, 107, 108, 0, 0, 0, 0, 0, 0, 2256 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 2257 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 2258 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 2259 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 2260 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 2261 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 2262 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 2263 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 2264 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 2265 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 2266 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 2267 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 2268 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 2269 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 2270 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 2271 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 2272 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 2273 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 2274 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 2275 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 2276 315, 316, 317, 318, 319, 320, 321, 322, 527, 0, 2277 408, 324, 409, 410, 411, 412, 413, 414, 415, 416, 2278 417, 418, 419, 420, 0, 0, 421, 422, 0, 0, 2279 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2280 0, 0, 0, 0, 0, 423, 0, 0, 0, 0, 2281 0, 0, 0, 0, 0, 0, 425, 426, 427, 428, 2282 3, 4, 5, 6, 7, 0, 9, 10, 11, 12, 2283 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, 2284 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 2285 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 2286 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 2287 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 2288 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, 2289 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2290 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2291 0, 0, 0, 85, 86, 87, 88, 89, 90, 91, 2292 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 2293 102, 103, 104, 105, 106, 107, 108, 0, 0, 0, 2294 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 2295 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 2296 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 2297 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 2298 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 2299 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 2300 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 2301 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 2302 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 2303 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 2304 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 2305 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 2306 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 2307 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 2308 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 2309 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 2310 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 2311 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 2312 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 2313 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 2314 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 2315 322, 323, 0, 0, 324 2316 }; 2317 2318 static const yytype_int16 yycheck[] = 2319 { 2320 0, 0, 0, 337, 345, 24, 0, 26, 27, 402, 2321 379, 30, 81, 495, 361, 507, 464, 509, 461, 579, 2322 512, 338, 338, 356, 357, 361, 383, 374, 643, 370, 2323 354, 355, 366, 681, 373, 375, 375, 685, 352, 353, 2324 375, 423, 382, 382, 437, 693, 661, 373, 383, 373, 2325 375, 375, 399, 400, 375, 379, 390, 382, 391, 392, 2326 396, 377, 383, 373, 375, 380, 383, 374, 383, 374, 2327 513, 382, 374, 380, 377, 379, 374, 380, 380, 376, 2328 383, 374, 380, 380, 374, 567, 455, 380, 380, 458, 2329 380, 383, 474, 378, 476, 380, 363, 364, 365, 366, 2330 367, 368, 369, 370, 371, 372, 374, 385, 600, 387, 2331 558, 380, 380, 338, 507, 382, 509, 421, 422, 512, 2332 374, 462, 538, 539, 540, 541, 380, 461, 380, 380, 2333 464, 383, 383, 526, 338, 380, 440, 697, 383, 380, 2334 522, 375, 383, 399, 400, 401, 388, 389, 390, 358, 2335 359, 455, 380, 381, 458, 377, 604, 380, 381, 377, 2336 652, 534, 535, 542, 543, 647, 536, 537, 338, 338, 2337 375, 382, 338, 383, 374, 373, 395, 394, 393, 513, 2338 360, 362, 376, 338, 338, 373, 383, 569, 383, 373, 2339 383, 573, 381, 375, 373, 373, 338, 373, 591, 592, 2340 373, 378, 338, 374, 376, 338, 698, 600, 376, 337, 2341 373, 373, 338, 560, 374, 380, 377, 376, 374, 383, 2342 378, 25, 374, 545, 558, 707, 377, 531, 532, 533, 2343 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 2344 544, 545, 546, 547, 548, 549, 377, 382, 630, 383, 2345 544, 378, 547, 549, 668, 546, 370, 366, 370, 652, 2346 548, 643, 638, 331, 460, 680, 693, 635, 694, 338, 2347 604, 364, 559, 638, 505, 661, 505, 353, 505, 661, 2348 670, 674, -1, -1, -1, -1, -1, -1, -1, -1, 2349 -1, -1, -1, 675, -1, -1, -1, -1, -1, 668, 2350 -1, -1, -1, -1, -1, 698, -1, -1, -1, 643, 2351 692, -1, -1, -1, -1, -1, -1, -1, 337, -1, 2352 -1, -1, -1, -1, -1, 666, -1, 661, -1, -1, 2353 -1, -1, -1, -1, -1, -1, -1, 337, -1, -1, 2354 -1, -1, -1, 337, -1, 345, -1, -1, -1, -1, 2355 -1, 345, -1, 353, 353, 353, -1, -1, -1, 353, 2356 360, -1, -1, -1, 668, -1, 366, -1, -1, -1, 2357 370, -1, 366, -1, -1, -1, 370, -1, -1, -1, 2358 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2359 390, -1, -1, -1, 394, -1, 390, -1, -1, -1, 2360 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2361 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2362 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2363 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2364 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2365 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2366 -1, 461, 462, -1, 464, -1, -1, 461, 462, -1, 2367 464, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2368 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2369 -1, -1, -1, -1, -1, 495, -1, -1, -1, -1, 2370 -1, 495, -1, -1, -1, -1, -1, -1, -1, -1, 2371 -1, -1, -1, 513, -1, -1, -1, -1, -1, 513, 2372 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2373 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2374 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2375 -1, -1, -1, -1, -1, -1, -1, -1, 558, -1, 2376 -1, -1, -1, -1, 558, -1, -1, 567, -1, -1, 2377 -1, -1, -1, 567, -1, -1, -1, -1, -1, 579, 2378 -1, -1, -1, -1, -1, 579, -1, -1, -1, -1, 2379 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2380 -1, -1, -1, -1, 604, -1, -1, -1, -1, -1, 2381 604, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2382 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2383 -1, -1, -1, -1, -1, -1, -1, -1, 638, -1, 2384 -1, -1, -1, 643, 638, -1, -1, 647, -1, 643, 2385 -1, -1, -1, 647, -1, -1, -1, -1, -1, -1, 2386 -1, 661, -1, -1, -1, -1, 666, 661, -1, -1, 2387 -1, -1, 666, -1, -1, -1, -1, -1, -1, -1, 2388 -1, 681, -1, -1, -1, 685, -1, 681, -1, -1, 2389 -1, 685, -1, 693, -1, -1, -1, 697, -1, 693, 2390 -1, -1, -1, 697, -1, -1, -1, 707, -1, -1, 2391 -1, 0, -1, 707, 3, 4, 5, 6, 7, 8, 2392 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2393 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, 2394 -1, -1, -1, -1, 33, 34, 35, 36, 37, 38, 2395 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 2396 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 2397 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 2398 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 2399 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 2400 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 2401 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 2402 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 2403 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 2404 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 2405 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 2406 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 2407 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 2408 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 2409 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 2410 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 2411 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 2412 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 2413 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 2414 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 2415 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 2416 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 2417 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 2418 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 2419 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 2420 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 2421 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 2422 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 2423 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 2424 329, 330, 331, 332, 333, 334, 335, 336, -1, -1, 2425 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2426 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2427 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2428 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2429 -1, -1, -1, -1, 383, -1, -1, -1, -1, -1, 2430 -1, -1, -1, -1, -1, -1, -1, -1, 397, 398, 2431 399, 400, 401, 402, 3, 4, 5, 6, 7, 8, 2432 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2433 19, 20, 21, 22, 23, 24, -1, 26, 27, 28, 2434 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 2435 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 2436 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 2437 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 2438 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 2439 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 2440 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 2441 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 2442 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 2443 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 2444 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 2445 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 2446 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 2447 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 2448 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 2449 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 2450 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 2451 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 2452 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 2453 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 2454 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 2455 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 2456 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 2457 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 2458 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 2459 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 2460 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 2461 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 2462 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 2463 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 2464 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 2465 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 2466 349, 350, 351, -1, -1, 354, 355, -1, -1, -1, 2467 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2468 -1, -1, -1, -1, 373, -1, 375, -1, 377, 378, 2469 -1, -1, -1, -1, 383, 384, 385, 386, 387, -1, 2470 -1, -1, -1, -1, -1, -1, -1, -1, 397, 398, 2471 399, 400, 401, 402, 3, 4, 5, 6, 7, 8, 2472 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2473 19, 20, 21, 22, 23, 24, -1, 26, 27, 28, 2474 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 2475 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 2476 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 2477 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 2478 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 2479 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 2480 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 2481 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 2482 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 2483 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 2484 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 2485 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 2486 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 2487 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 2488 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 2489 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 2490 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 2491 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 2492 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 2493 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 2494 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 2495 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 2496 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 2497 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 2498 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 2499 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 2500 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 2501 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 2502 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 2503 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 2504 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 2505 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 2506 349, 350, 351, -1, -1, 354, 355, -1, -1, -1, 2507 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2508 -1, -1, -1, -1, 373, -1, 375, -1, 377, 378, 2509 -1, -1, -1, -1, 383, 384, 385, 386, 387, -1, 2510 -1, -1, -1, -1, -1, -1, -1, -1, 397, 398, 2511 399, 400, 401, 402, 3, 4, 5, 6, 7, 8, 2512 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2513 19, 20, 21, 22, 23, 24, -1, 26, 27, 28, 2514 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 2515 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 2516 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 2517 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 2518 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 2519 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 2520 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 2521 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 2522 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 2523 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 2524 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 2525 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 2526 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 2527 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 2528 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 2529 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 2530 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 2531 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 2532 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 2533 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 2534 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 2535 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 2536 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 2537 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 2538 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 2539 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 2540 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 2541 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 2542 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 2543 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 2544 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 2545 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 2546 349, 350, 351, -1, -1, 354, 355, -1, -1, -1, 2547 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2548 -1, -1, -1, -1, 373, -1, 375, -1, 377, -1, 2549 -1, -1, -1, -1, 383, 384, 385, 386, 387, -1, 2550 -1, -1, -1, -1, -1, -1, -1, -1, 397, 398, 2551 399, 400, 401, 402, 3, 4, 5, 6, 7, 8, 2552 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2553 19, 20, 21, 22, 23, 24, -1, 26, 27, 28, 2554 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 2555 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 2556 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 2557 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 2558 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 2559 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 2560 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 2561 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 2562 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 2563 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 2564 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 2565 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 2566 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 2567 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 2568 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 2569 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 2570 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 2571 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 2572 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 2573 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 2574 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 2575 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 2576 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 2577 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 2578 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 2579 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 2580 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 2581 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 2582 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 2583 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 2584 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 2585 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 2586 349, 350, 351, -1, -1, 354, 355, -1, -1, -1, 2587 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2588 -1, -1, -1, -1, 373, -1, 375, -1, 377, -1, 2589 -1, -1, -1, -1, 383, 384, 385, 386, 387, -1, 2590 -1, -1, -1, -1, -1, -1, -1, -1, 397, 398, 2591 399, 400, 401, 402, 3, 4, 5, 6, 7, 8, 2592 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2593 19, 20, 21, 22, 23, 24, -1, 26, 27, 28, 2594 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 2595 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 2596 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 2597 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 2598 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 2599 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 2600 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 2601 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 2602 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 2603 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 2604 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 2605 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 2606 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 2607 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 2608 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 2609 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 2610 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 2611 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 2612 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 2613 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 2614 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 2615 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 2616 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 2617 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 2618 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 2619 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 2620 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 2621 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 2622 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 2623 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 2624 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 2625 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 2626 349, 350, 351, -1, -1, 354, 355, -1, -1, -1, 2627 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2628 -1, -1, -1, -1, 373, -1, 375, -1, -1, -1, 2629 -1, -1, -1, -1, 383, 384, 385, 386, 387, -1, 2630 -1, -1, -1, -1, -1, -1, -1, -1, 397, 398, 2631 399, 400, 401, 402, 3, 4, 5, 6, 7, 8, 2632 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2633 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, 2634 -1, -1, -1, -1, 33, 34, 35, 36, 37, 38, 2635 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 2636 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 2637 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 2638 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 2639 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 2640 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 2641 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 2642 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 2643 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 2644 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 2645 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 2646 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 2647 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 2648 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 2649 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 2650 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 2651 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 2652 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 2653 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 2654 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 2655 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 2656 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 2657 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 2658 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 2659 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 2660 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 2661 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 2662 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 2663 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 2664 329, 330, 331, 332, 333, 334, 335, 336, -1, 338, 2665 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 2666 349, 350, 351, -1, -1, 354, 355, -1, -1, -1, 2667 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2668 -1, -1, -1, -1, 373, -1, -1, -1, -1, -1, 2669 -1, -1, -1, -1, 383, 384, 385, 386, 387, -1, 2670 -1, -1, -1, -1, -1, -1, -1, -1, 397, 398, 2671 399, 400, 401, 402, 3, 4, 5, 6, 7, 8, 2672 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2673 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, 2674 -1, -1, -1, -1, 33, 34, 35, 36, 37, 38, 2675 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 2676 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 2677 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 2678 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 2679 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 2680 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 2681 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 2682 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 2683 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 2684 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 2685 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 2686 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 2687 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 2688 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 2689 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 2690 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 2691 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 2692 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 2693 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 2694 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 2695 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 2696 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 2697 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 2698 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 2699 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 2700 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 2701 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 2702 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 2703 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 2704 329, 330, 331, 332, 333, 334, 335, 336, -1, -1, 2705 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2706 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2707 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2708 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2709 -1, -1, -1, -1, 383, -1, -1, -1, -1, -1, 2710 -1, -1, -1, -1, -1, -1, -1, -1, 397, 398, 2711 399, 400, 401, 402, 3, 4, 5, 6, 7, 8, 2712 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2713 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, 2714 -1, -1, -1, -1, 33, 34, 35, 36, 37, 38, 2715 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 2716 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 2717 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 2718 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 2719 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 2720 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 2721 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 2722 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 2723 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 2724 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 2725 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 2726 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 2727 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 2728 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 2729 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 2730 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 2731 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 2732 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 2733 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 2734 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 2735 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 2736 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 2737 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 2738 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 2739 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 2740 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 2741 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 2742 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 2743 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 2744 329, 330, 331, 332, 333, 334, 335, 336, -1, 338, 2745 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 2746 349, 350, 351, -1, -1, 354, 355, -1, -1, -1, 2747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2748 -1, -1, -1, -1, 373, -1, -1, -1, -1, -1, 2749 -1, -1, -1, -1, -1, 384, 385, 386, 387, -1, 2750 -1, -1, -1, -1, -1, -1, -1, -1, 397, 398, 2751 399, 400, 401, 3, 4, 5, 6, 7, 8, 9, 2752 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2753 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, 2754 -1, -1, -1, 33, 34, 35, 36, 37, 38, 39, 2755 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 2756 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 2757 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 2758 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 2759 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 2760 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2761 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 2762 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 2763 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 2764 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 2765 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 2766 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 2767 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 2768 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 2769 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 2770 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 2771 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 2772 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 2773 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 2774 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 2775 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 2776 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 2777 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 2778 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 2779 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 2780 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 2781 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 2782 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 2783 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 2784 330, 331, 332, 333, 334, 335, 336, -1, 338, 339, 2785 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2786 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2787 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2788 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2789 -1, -1, -1, 383, -1, -1, -1, -1, -1, -1, 2790 -1, -1, -1, -1, -1, -1, -1, 397, 398, 399, 2791 400, 401, 3, 4, 5, 6, 7, 8, 9, 10, 2792 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2793 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2794 -1, -1, 33, 34, 35, 36, 37, 38, 39, 40, 2795 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 2796 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 2797 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 2798 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 2799 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 2800 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 2801 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 2802 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 2803 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 2804 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 2805 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 2806 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 2807 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 2808 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 2809 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 2810 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 2811 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 2812 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 2813 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 2814 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 2815 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 2816 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 2817 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 2818 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 2819 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 2820 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 2821 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 2822 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 2823 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 2824 331, 332, 333, 334, 335, 336, -1, -1, 339, -1, 2825 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2826 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2827 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2828 -1, -1, -1, -1, -1, -1, -1, 378, -1, -1, 2829 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2830 -1, -1, -1, -1, -1, -1, 397, 398, 399, 400, 2831 401, 3, 4, 5, 6, 7, 8, 9, 10, 11, 2832 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2833 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2834 -1, 33, 34, 35, 36, 37, 38, 39, 40, 41, 2835 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 2836 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 2837 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 2838 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 2839 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 2840 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 2841 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 2842 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 2843 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 2844 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 2845 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 2846 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 2847 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 2848 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 2849 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 2850 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 2851 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 2852 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 2853 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 2854 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 2855 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 2856 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 2857 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 2858 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 2859 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 2860 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 2861 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 2862 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 2863 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 2864 332, 333, 334, 335, 336, -1, -1, 339, -1, -1, 2865 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2866 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2867 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2868 -1, -1, -1, -1, -1, -1, 378, -1, -1, -1, 2869 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2870 -1, -1, -1, -1, -1, 397, 398, 399, 400, 401, 2871 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2872 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, 2873 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2874 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 2875 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 2876 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 2877 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 2878 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 2879 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 2880 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 2881 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 2882 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 2883 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 2884 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 2885 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 2886 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 2887 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 2888 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 2889 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 2890 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 2891 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 2892 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 2893 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 2894 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 2895 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 2896 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 2897 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 2898 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 2899 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 2900 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 2901 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 2902 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 2903 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 2904 333, 334, 335, 336, -1, -1, 339, -1, -1, -1, 2905 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2906 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2907 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2908 -1, -1, -1, -1, -1, 378, -1, -1, -1, -1, 2909 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2910 -1, -1, -1, -1, 397, 398, 399, 400, 401, 3, 2911 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2912 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, 2913 -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 2914 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 2915 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 2916 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 2917 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 2918 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 2919 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 2920 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 2921 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 2922 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2923 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 2924 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 2925 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 2926 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 2927 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 2928 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 2929 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 2930 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 2931 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 2932 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 2933 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 2934 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 2935 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 2936 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 2937 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 2938 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 2939 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 2940 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 2941 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 2942 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 2943 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 2944 334, 335, 336, -1, -1, 339, -1, -1, -1, -1, 2945 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2946 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2947 -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, 2948 6, 7, 8, 9, -1, 11, 12, 13, 14, 15, 2949 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, 2950 -1, -1, -1, 397, 398, 399, 400, 401, 34, 35, 2951 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 2952 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 2953 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 2954 66, 67, 68, 69, 70, 71, 72, -1, -1, -1, 2955 -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, 2956 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2957 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 2958 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 2959 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, 2960 -1, -1, -1, -1, -1, 131, 132, 133, 134, 135, 2961 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 2962 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 2963 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 2964 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 2965 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 2966 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 2967 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 2968 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 2969 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 2970 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 2971 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 2972 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 2973 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 2974 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 2975 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 2976 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 2977 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 2978 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 2979 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 2980 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 2981 336, -1, 338, 339, 340, 341, 342, 343, 344, 345, 2982 346, 347, 348, 349, 350, 351, -1, -1, 354, 355, 2983 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2984 -1, -1, -1, -1, -1, -1, -1, 373, -1, -1, 2985 -1, 377, 378, -1, -1, -1, -1, -1, 384, 385, 2986 386, 387, 5, 6, 7, 8, 9, -1, 11, 12, 2987 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, 2988 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2989 -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 2990 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 2991 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 2992 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 2993 -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, 2994 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2995 -1, -1, -1, -1, -1, 98, 99, 100, 101, 102, 2996 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 2997 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 2998 -1, -1, -1, -1, -1, -1, -1, -1, 131, 132, 2999 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 3000 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 3001 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 3002 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 3003 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 3004 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 3005 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 3006 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 3007 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 3008 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 3009 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 3010 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 3011 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 3012 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 3013 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 3014 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 3015 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 3016 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 3017 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 3018 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 3019 333, 334, 335, 336, -1, 338, 339, 340, 341, 342, 3020 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 3021 -1, 354, 355, -1, -1, -1, -1, -1, -1, -1, 3022 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3023 373, -1, -1, 376, -1, -1, -1, -1, -1, -1, 3024 -1, 384, 385, 386, 387, 5, 6, 7, 8, 9, 3025 -1, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3026 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, 3027 -1, -1, -1, -1, 34, 35, 36, 37, 38, 39, 3028 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 3029 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 3030 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 3031 70, 71, 72, -1, -1, -1, -1, -1, -1, -1, 3032 -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, 3033 -1, -1, -1, -1, -1, -1, -1, -1, 98, 99, 3034 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 3035 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 3036 120, 121, -1, -1, -1, -1, -1, -1, -1, -1, 3037 -1, 131, 132, 133, 134, 135, 136, 137, 138, 139, 3038 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 3039 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 3040 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 3041 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 3042 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 3043 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 3044 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 3045 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 3046 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 3047 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 3048 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 3049 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 3050 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 3051 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 3052 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 3053 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 3054 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 3055 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 3056 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 3057 330, 331, 332, 333, 334, 335, 336, -1, 338, 339, 3058 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 3059 350, 351, -1, -1, 354, 355, -1, -1, -1, -1, 3060 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3061 -1, -1, -1, 373, -1, -1, -1, 377, -1, -1, 3062 -1, -1, -1, -1, 384, 385, 386, 387, 5, 6, 3063 7, 8, 9, -1, 11, 12, 13, 14, 15, 16, 3064 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, 3065 -1, -1, -1, -1, -1, -1, -1, 34, 35, 36, 3066 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 3067 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 3068 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 3069 67, 68, 69, 70, 71, 72, -1, -1, -1, -1, 3070 -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, 3071 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3072 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, 3073 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 3074 117, 118, 119, 120, 121, -1, -1, -1, -1, -1, 3075 -1, -1, -1, -1, 131, 132, 133, 134, 135, 136, 3076 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 3077 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 3078 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 3079 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 3080 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 3081 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 3082 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 3083 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 3084 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 3085 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 3086 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 3087 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 3088 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 3089 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 3090 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 3091 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 3092 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 3093 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 3094 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 3095 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 3096 -1, 338, 339, 340, 341, 342, 343, 344, 345, 346, 3097 347, 348, 349, 350, 351, -1, -1, 354, 355, -1, 3098 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3099 -1, -1, -1, -1, -1, -1, 373, -1, -1, 376, 3100 -1, -1, -1, -1, -1, -1, -1, 384, 385, 386, 3101 387, 5, 6, 7, 8, 9, -1, 11, 12, 13, 3102 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, 3103 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3104 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 3105 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 3106 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 3107 64, 65, 66, 67, 68, 69, 70, 71, 72, -1, 3108 -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, 3109 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3110 -1, -1, -1, -1, 98, 99, 100, 101, 102, 103, 3111 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 3112 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 3113 -1, -1, -1, -1, -1, -1, -1, 131, 132, 133, 3114 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 3115 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 3116 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 3117 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 3118 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 3119 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 3120 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 3121 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 3122 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 3123 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 3124 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 3125 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 3126 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 3127 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 3128 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 3129 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 3130 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 3131 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 3132 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 3133 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 3134 334, 335, 336, -1, 338, 339, 340, 341, 342, 343, 3135 344, 345, 346, 347, 348, 349, 350, 351, -1, -1, 3136 354, 355, -1, -1, -1, -1, -1, -1, -1, -1, 3137 -1, -1, -1, -1, -1, -1, -1, -1, -1, 373, 3138 -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, 3139 384, 385, 386, 387, 5, 6, 7, 8, 9, -1, 3140 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3141 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3142 -1, -1, -1, 34, 35, 36, 37, 38, 39, 40, 3143 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 3144 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 3145 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 3146 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, 3147 -1, 82, -1, -1, -1, -1, -1, -1, -1, -1, 3148 -1, -1, -1, -1, -1, -1, -1, 98, 99, 100, 3149 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 3150 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 3151 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3152 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 3153 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 3154 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 3155 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 3156 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 3157 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 3158 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 3159 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 3160 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 3161 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 3162 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 3163 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 3164 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 3165 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 3166 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 3167 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 3168 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 3169 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 3170 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 3171 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 3172 331, 332, 333, 334, 335, 336, -1, 338, 339, 340, 3173 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 3174 351, -1, -1, 354, 355, -1, -1, -1, -1, -1, 3175 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3176 -1, -1, 373, -1, -1, -1, -1, -1, -1, -1, 3177 -1, -1, -1, 384, 385, 386, 387, 5, 6, 7, 3178 8, 9, -1, 11, 12, 13, 14, 15, 16, 17, 3179 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, 3180 -1, -1, -1, -1, -1, -1, 34, 35, 36, 37, 3181 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 3182 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 3183 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 3184 68, 69, 70, 71, 72, -1, -1, -1, -1, -1, 3185 -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, 3186 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3187 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 3188 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 3189 118, 119, 120, 121, -1, -1, -1, -1, -1, -1, 3190 -1, -1, -1, 131, 132, 133, 134, 135, 136, 137, 3191 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 3192 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 3193 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 3194 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 3195 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 3196 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 3197 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 3198 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 3199 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 3200 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 3201 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 3202 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 3203 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 3204 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 3205 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 3206 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 3207 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 3208 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 3209 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 3210 328, 329, 330, 331, 332, 333, 334, 335, 336, -1, 3211 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 3212 348, 349, 350, 351, -1, -1, 354, 355, -1, -1, 3213 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3214 -1, -1, -1, -1, -1, 373, -1, -1, -1, -1, 3215 -1, -1, -1, -1, -1, -1, 384, 385, 386, 387, 3216 5, 6, 7, 8, 9, -1, 11, 12, 13, 14, 3217 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, 3218 -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, 3219 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 3220 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 3221 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 3222 65, 66, 67, 68, 69, 70, 71, 72, -1, -1, 3223 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3224 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3225 -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 3226 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 3227 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, 3228 -1, -1, -1, -1, -1, -1, 131, 132, 133, 134, 3229 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 3230 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 3231 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 3232 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 3233 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 3234 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 3235 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 3236 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 3237 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 3238 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 3239 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 3240 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 3241 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 3242 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 3243 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 3244 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 3245 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 3246 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 3247 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 3248 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 3249 335, 336, -1, -1, 339 3250 }; 3251 3252 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 3253 symbol of state STATE-NUM. */ 3254 static const yytype_uint16 yystos[] = 3255 { 3256 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3257 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3258 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 3259 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 3260 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 3261 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 3262 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 3263 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 3264 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 3265 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 3266 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 3267 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 3268 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 3269 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 3270 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 3271 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 3272 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 3273 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 3274 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 3275 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 3276 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 3277 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 3278 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 3279 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 3280 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 3281 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 3282 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 3283 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 3284 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 3285 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 3286 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 3287 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 3288 333, 334, 335, 336, 339, 383, 397, 398, 399, 400, 3289 401, 402, 437, 438, 441, 442, 443, 444, 448, 449, 3290 450, 451, 452, 453, 456, 457, 458, 459, 460, 462, 3291 464, 465, 466, 506, 507, 508, 373, 373, 338, 377, 3292 465, 338, 383, 383, 509, 374, 380, 445, 446, 447, 3293 457, 462, 380, 383, 338, 338, 383, 458, 462, 375, 3294 463, 0, 507, 338, 461, 81, 338, 454, 455, 377, 3295 468, 462, 383, 463, 377, 485, 446, 445, 447, 338, 3296 338, 373, 382, 463, 377, 380, 383, 440, 338, 340, 3297 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 3298 351, 354, 355, 373, 376, 384, 385, 386, 387, 407, 3299 408, 409, 411, 412, 413, 414, 415, 416, 417, 418, 3300 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 3301 429, 430, 431, 460, 462, 375, 374, 380, 382, 374, 3302 380, 467, 457, 462, 469, 470, 383, 383, 22, 23, 3303 24, 26, 27, 28, 29, 30, 31, 32, 337, 375, 3304 377, 378, 383, 418, 431, 433, 435, 437, 441, 460, 3305 462, 475, 476, 477, 478, 486, 487, 488, 489, 492, 3306 493, 496, 497, 498, 505, 510, 463, 382, 463, 377, 3307 433, 473, 382, 439, 338, 380, 383, 418, 418, 435, 3308 354, 355, 375, 379, 374, 374, 380, 336, 433, 373, 3309 418, 388, 389, 390, 385, 387, 352, 353, 356, 357, 3310 391, 392, 358, 359, 395, 394, 393, 360, 362, 361, 3311 396, 376, 376, 431, 338, 431, 436, 455, 469, 462, 3312 338, 471, 472, 378, 470, 383, 383, 500, 373, 373, 3313 383, 383, 435, 373, 435, 381, 373, 375, 378, 479, 3314 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 3315 382, 434, 380, 383, 378, 476, 489, 493, 498, 473, 3316 382, 473, 474, 473, 469, 338, 374, 410, 435, 338, 3317 433, 418, 418, 418, 420, 420, 421, 421, 422, 422, 3318 422, 422, 423, 423, 424, 425, 426, 427, 428, 429, 3319 432, 376, 378, 471, 463, 380, 383, 476, 501, 435, 3320 383, 435, 381, 499, 338, 511, 512, 486, 433, 433, 3321 473, 378, 380, 378, 376, 435, 383, 472, 337, 475, 3322 487, 502, 374, 374, 435, 450, 457, 491, 373, 376, 3323 380, 480, 378, 473, 381, 373, 491, 503, 504, 482, 3324 483, 484, 490, 494, 338, 374, 436, 376, 512, 378, 3325 433, 435, 383, 374, 25, 478, 477, 377, 382, 477, 3326 481, 485, 374, 374, 435, 481, 482, 486, 495, 473, 3327 383, 378 3328 }; 3329 3330 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 3331 static const yytype_uint16 yyr1[] = 3332 { 3333 0, 406, 407, 408, 408, 408, 408, 408, 408, 408, 3334 408, 408, 408, 408, 408, 408, 408, 409, 409, 409, 3335 409, 409, 409, 410, 411, 412, 413, 413, 414, 414, 3336 415, 415, 416, 417, 417, 417, 418, 418, 418, 418, 3337 419, 419, 419, 419, 420, 420, 420, 420, 421, 421, 3338 421, 422, 422, 422, 423, 423, 423, 423, 423, 424, 3339 424, 424, 425, 425, 426, 426, 427, 427, 428, 428, 3340 429, 429, 430, 430, 431, 432, 431, 433, 433, 434, 3341 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, 3342 435, 435, 436, 437, 437, 437, 437, 437, 437, 437, 3343 437, 437, 439, 438, 440, 440, 441, 442, 442, 443, 3344 443, 444, 445, 445, 446, 446, 446, 446, 447, 448, 3345 448, 448, 448, 448, 449, 449, 449, 449, 449, 450, 3346 450, 451, 452, 452, 452, 452, 452, 452, 452, 452, 3347 453, 454, 454, 455, 455, 455, 456, 457, 457, 458, 3348 458, 458, 458, 458, 458, 458, 459, 459, 459, 459, 3349 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 3350 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 3351 459, 459, 459, 459, 459, 460, 461, 461, 462, 462, 3352 463, 463, 463, 463, 464, 464, 464, 464, 464, 464, 3353 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3354 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3355 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3356 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3357 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3358 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3359 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3360 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3361 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3362 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3363 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3364 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3365 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3366 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3367 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3368 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3369 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3370 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3371 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3372 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3373 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3374 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3375 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3376 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3377 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3378 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3379 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3380 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 3381 465, 465, 465, 467, 466, 468, 466, 469, 469, 470, 3382 470, 471, 471, 472, 472, 473, 473, 473, 474, 474, 3383 475, 476, 476, 477, 477, 477, 477, 477, 477, 477, 3384 478, 479, 480, 478, 481, 481, 483, 482, 484, 482, 3385 485, 485, 486, 486, 487, 487, 488, 488, 489, 490, 3386 490, 491, 491, 492, 492, 494, 493, 495, 495, 496, 3387 496, 497, 497, 499, 498, 500, 498, 501, 498, 502, 3388 502, 503, 503, 504, 504, 505, 505, 505, 505, 505, 3389 506, 506, 507, 507, 507, 509, 508, 510, 511, 511, 3390 512, 512 3391 }; 3392 3393 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 3394 static const yytype_uint8 yyr2[] = 3395 { 3396 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3397 1, 1, 1, 1, 1, 1, 3, 1, 4, 1, 3398 3, 2, 2, 1, 1, 1, 2, 2, 2, 1, 3399 2, 3, 2, 1, 1, 1, 1, 2, 2, 2, 3400 1, 1, 1, 1, 1, 3, 3, 3, 1, 3, 3401 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3402 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3403 1, 3, 1, 3, 1, 0, 6, 1, 3, 1, 3404 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3405 1, 3, 1, 2, 2, 4, 2, 3, 4, 2, 3406 3, 4, 0, 6, 2, 3, 2, 1, 1, 2, 3407 3, 3, 2, 3, 2, 1, 2, 1, 1, 1, 3408 3, 4, 6, 5, 1, 2, 3, 5, 4, 1, 3409 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3410 4, 1, 3, 1, 3, 1, 1, 1, 2, 1, 3411 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3412 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3413 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3414 1, 1, 1, 1, 4, 1, 1, 3, 1, 2, 3415 2, 3, 3, 4, 1, 1, 1, 1, 1, 1, 3416 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3417 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3418 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3419 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3420 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3421 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3422 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3423 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3424 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3425 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3426 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3427 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3428 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3429 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3430 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3431 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3432 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3433 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3434 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3435 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3436 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3437 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3438 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3439 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3440 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3441 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3442 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3443 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3444 1, 1, 1, 0, 6, 0, 5, 1, 2, 3, 3445 4, 1, 3, 1, 2, 1, 3, 4, 1, 3, 3446 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3447 2, 0, 0, 5, 1, 1, 0, 2, 0, 2, 3448 2, 3, 1, 2, 1, 2, 1, 2, 5, 3, 3449 1, 1, 4, 1, 2, 0, 8, 0, 1, 3, 3450 2, 1, 2, 0, 6, 0, 8, 0, 7, 1, 3451 1, 1, 0, 2, 3, 2, 2, 2, 3, 2, 3452 1, 2, 1, 1, 1, 0, 3, 5, 1, 3, 3453 1, 4 3454 }; 3455 3456 3457 #define yyerrok (yyerrstatus = 0) 3458 #define yyclearin (yychar = YYEMPTY) 3459 #define YYEMPTY (-2) 3460 #define YYEOF 0 3461 3462 #define YYACCEPT goto yyacceptlab 3463 #define YYABORT goto yyabortlab 3464 #define YYERROR goto yyerrorlab 3465 3466 3467 #define YYRECOVERING() (!!yyerrstatus) 3468 3469 #define YYBACKUP(Token, Value) \ 3470 do \ 3471 if (yychar == YYEMPTY) \ 3472 { \ 3473 yychar = (Token); \ 3474 yylval = (Value); \ 3475 YYPOPSTACK (yylen); \ 3476 yystate = *yyssp; \ 3477 goto yybackup; \ 3478 } \ 3479 else \ 3480 { \ 3481 yyerror (pParseContext, YY_("syntax error: cannot back up")); \ 3482 YYERROR; \ 3483 } \ 3484 while (0) 3485 3486 /* Error token number */ 3487 #define YYTERROR 1 3488 #define YYERRCODE 256 3489 3490 3491 3492 /* Enable debugging if requested. */ 3493 #if YYDEBUG 3494 3495 # ifndef YYFPRINTF 3496 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 3497 # define YYFPRINTF fprintf 3498 # endif 3499 3500 # define YYDPRINTF(Args) \ 3501 do { \ 3502 if (yydebug) \ 3503 YYFPRINTF Args; \ 3504 } while (0) 3505 3506 /* This macro is provided for backward compatibility. */ 3507 #ifndef YY_LOCATION_PRINT 3508 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 3509 #endif 3510 3511 3512 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 3513 do { \ 3514 if (yydebug) \ 3515 { \ 3516 YYFPRINTF (stderr, "%s ", Title); \ 3517 yy_symbol_print (stderr, \ 3518 Type, Value, pParseContext); \ 3519 YYFPRINTF (stderr, "\n"); \ 3520 } \ 3521 } while (0) 3522 3523 3524 /*----------------------------------------. 3525 | Print this symbol's value on YYOUTPUT. | 3526 `----------------------------------------*/ 3527 3528 static void 3529 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) 3530 { 3531 FILE *yyo = yyoutput; 3532 YYUSE (yyo); 3533 YYUSE (pParseContext); 3534 if (!yyvaluep) 3535 return; 3536 # ifdef YYPRINT 3537 if (yytype < YYNTOKENS) 3538 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 3539 # endif 3540 YYUSE (yytype); 3541 } 3542 3543 3544 /*--------------------------------. 3545 | Print this symbol on YYOUTPUT. | 3546 `--------------------------------*/ 3547 3548 static void 3549 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) 3550 { 3551 YYFPRINTF (yyoutput, "%s %s (", 3552 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 3553 3554 yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext); 3555 YYFPRINTF (yyoutput, ")"); 3556 } 3557 3558 /*------------------------------------------------------------------. 3559 | yy_stack_print -- Print the state stack from its BOTTOM up to its | 3560 | TOP (included). | 3561 `------------------------------------------------------------------*/ 3562 3563 static void 3564 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 3565 { 3566 YYFPRINTF (stderr, "Stack now"); 3567 for (; yybottom <= yytop; yybottom++) 3568 { 3569 int yybot = *yybottom; 3570 YYFPRINTF (stderr, " %d", yybot); 3571 } 3572 YYFPRINTF (stderr, "\n"); 3573 } 3574 3575 # define YY_STACK_PRINT(Bottom, Top) \ 3576 do { \ 3577 if (yydebug) \ 3578 yy_stack_print ((Bottom), (Top)); \ 3579 } while (0) 3580 3581 3582 /*------------------------------------------------. 3583 | Report that the YYRULE is going to be reduced. | 3584 `------------------------------------------------*/ 3585 3586 static void 3587 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext) 3588 { 3589 unsigned long int yylno = yyrline[yyrule]; 3590 int yynrhs = yyr2[yyrule]; 3591 int yyi; 3592 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 3593 yyrule - 1, yylno); 3594 /* The symbols being reduced. */ 3595 for (yyi = 0; yyi < yynrhs; yyi++) 3596 { 3597 YYFPRINTF (stderr, " $%d = ", yyi + 1); 3598 yy_symbol_print (stderr, 3599 yystos[yyssp[yyi + 1 - yynrhs]], 3600 &(yyvsp[(yyi + 1) - (yynrhs)]) 3601 , pParseContext); 3602 YYFPRINTF (stderr, "\n"); 3603 } 3604 } 3605 3606 # define YY_REDUCE_PRINT(Rule) \ 3607 do { \ 3608 if (yydebug) \ 3609 yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \ 3610 } while (0) 3611 3612 /* Nonzero means print parse trace. It is left uninitialized so that 3613 multiple parsers can coexist. */ 3614 int yydebug; 3615 #else /* !YYDEBUG */ 3616 # define YYDPRINTF(Args) 3617 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) 3618 # define YY_STACK_PRINT(Bottom, Top) 3619 # define YY_REDUCE_PRINT(Rule) 3620 #endif /* !YYDEBUG */ 3621 3622 3623 /* YYINITDEPTH -- initial size of the parser's stacks. */ 3624 #ifndef YYINITDEPTH 3625 # define YYINITDEPTH 200 3626 #endif 3627 3628 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 3629 if the built-in stack extension method is used). 3630 3631 Do not make this value too large; the results are undefined if 3632 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) 3633 evaluated with infinite-precision integer arithmetic. */ 3634 3635 #ifndef YYMAXDEPTH 3636 # define YYMAXDEPTH 10000 3637 #endif 3638 3639 3640 #if YYERROR_VERBOSE 3641 3642 # ifndef yystrlen 3643 # if defined __GLIBC__ && defined _STRING_H 3644 # define yystrlen strlen 3645 # else 3646 /* Return the length of YYSTR. */ 3647 static YYSIZE_T 3648 yystrlen (const char *yystr) 3649 { 3650 YYSIZE_T yylen; 3651 for (yylen = 0; yystr[yylen]; yylen++) 3652 continue; 3653 return yylen; 3654 } 3655 # endif 3656 # endif 3657 3658 # ifndef yystpcpy 3659 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 3660 # define yystpcpy stpcpy 3661 # else 3662 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 3663 YYDEST. */ 3664 static char * 3665 yystpcpy (char *yydest, const char *yysrc) 3666 { 3667 char *yyd = yydest; 3668 const char *yys = yysrc; 3669 3670 while ((*yyd++ = *yys++) != '\0') 3671 continue; 3672 3673 return yyd - 1; 3674 } 3675 # endif 3676 # endif 3677 3678 # ifndef yytnamerr 3679 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary 3680 quotes and backslashes, so that it's suitable for yyerror. The 3681 heuristic is that double-quoting is unnecessary unless the string 3682 contains an apostrophe, a comma, or backslash (other than 3683 backslash-backslash). YYSTR is taken from yytname. If YYRES is 3684 null, do not copy; instead, return the length of what the result 3685 would have been. */ 3686 static YYSIZE_T 3687 yytnamerr (char *yyres, const char *yystr) 3688 { 3689 if (*yystr == '"') 3690 { 3691 YYSIZE_T yyn = 0; 3692 char const *yyp = yystr; 3693 3694 for (;;) 3695 switch (*++yyp) 3696 { 3697 case '\'': 3698 case ',': 3699 goto do_not_strip_quotes; 3700 3701 case '\\': 3702 if (*++yyp != '\\') 3703 goto do_not_strip_quotes; 3704 /* Fall through. */ 3705 default: 3706 if (yyres) 3707 yyres[yyn] = *yyp; 3708 yyn++; 3709 break; 3710 3711 case '"': 3712 if (yyres) 3713 yyres[yyn] = '\0'; 3714 return yyn; 3715 } 3716 do_not_strip_quotes: ; 3717 } 3718 3719 if (! yyres) 3720 return yystrlen (yystr); 3721 3722 return yystpcpy (yyres, yystr) - yyres; 3723 } 3724 # endif 3725 3726 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message 3727 about the unexpected token YYTOKEN for the state stack whose top is 3728 YYSSP. 3729 3730 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is 3731 not large enough to hold the message. In that case, also set 3732 *YYMSG_ALLOC to the required number of bytes. Return 2 if the 3733 required number of bytes is too large to store. */ 3734 static int 3735 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, 3736 yytype_int16 *yyssp, int yytoken) 3737 { 3738 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); 3739 YYSIZE_T yysize = yysize0; 3740 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 3741 /* Internationalized format string. */ 3742 const char *yyformat = YY_NULLPTR; 3743 /* Arguments of yyformat. */ 3744 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 3745 /* Number of reported tokens (one for the "unexpected", one per 3746 "expected"). */ 3747 int yycount = 0; 3748 3749 /* There are many possibilities here to consider: 3750 - If this state is a consistent state with a default action, then 3751 the only way this function was invoked is if the default action 3752 is an error action. In that case, don't check for expected 3753 tokens because there are none. 3754 - The only way there can be no lookahead present (in yychar) is if 3755 this state is a consistent state with a default action. Thus, 3756 detecting the absence of a lookahead is sufficient to determine 3757 that there is no unexpected or expected token to report. In that 3758 case, just report a simple "syntax error". 3759 - Don't assume there isn't a lookahead just because this state is a 3760 consistent state with a default action. There might have been a 3761 previous inconsistent state, consistent state with a non-default 3762 action, or user semantic action that manipulated yychar. 3763 - Of course, the expected token list depends on states to have 3764 correct lookahead information, and it depends on the parser not 3765 to perform extra reductions after fetching a lookahead from the 3766 scanner and before detecting a syntax error. Thus, state merging 3767 (from LALR or IELR) and default reductions corrupt the expected 3768 token list. However, the list is correct for canonical LR with 3769 one exception: it will still contain any token that will not be 3770 accepted due to an error action in a later state. 3771 */ 3772 if (yytoken != YYEMPTY) 3773 { 3774 int yyn = yypact[*yyssp]; 3775 yyarg[yycount++] = yytname[yytoken]; 3776 if (!yypact_value_is_default (yyn)) 3777 { 3778 /* Start YYX at -YYN if negative to avoid negative indexes in 3779 YYCHECK. In other words, skip the first -YYN actions for 3780 this state because they are default actions. */ 3781 int yyxbegin = yyn < 0 ? -yyn : 0; 3782 /* Stay within bounds of both yycheck and yytname. */ 3783 int yychecklim = YYLAST - yyn + 1; 3784 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 3785 int yyx; 3786 3787 for (yyx = yyxbegin; yyx < yyxend; ++yyx) 3788 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR 3789 && !yytable_value_is_error (yytable[yyx + yyn])) 3790 { 3791 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) 3792 { 3793 yycount = 1; 3794 yysize = yysize0; 3795 break; 3796 } 3797 yyarg[yycount++] = yytname[yyx]; 3798 { 3799 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 3800 if (! (yysize <= yysize1 3801 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 3802 return 2; 3803 yysize = yysize1; 3804 } 3805 } 3806 } 3807 } 3808 3809 switch (yycount) 3810 { 3811 # define YYCASE_(N, S) \ 3812 case N: \ 3813 yyformat = S; \ 3814 break 3815 YYCASE_(0, YY_("syntax error")); 3816 YYCASE_(1, YY_("syntax error, unexpected %s")); 3817 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); 3818 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); 3819 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); 3820 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); 3821 # undef YYCASE_ 3822 } 3823 3824 { 3825 YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 3826 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 3827 return 2; 3828 yysize = yysize1; 3829 } 3830 3831 if (*yymsg_alloc < yysize) 3832 { 3833 *yymsg_alloc = 2 * yysize; 3834 if (! (yysize <= *yymsg_alloc 3835 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) 3836 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; 3837 return 1; 3838 } 3839 3840 /* Avoid sprintf, as that infringes on the user's name space. 3841 Don't have undefined behavior even if the translation 3842 produced a string with the wrong number of "%s"s. */ 3843 { 3844 char *yyp = *yymsg; 3845 int yyi = 0; 3846 while ((*yyp = *yyformat) != '\0') 3847 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) 3848 { 3849 yyp += yytnamerr (yyp, yyarg[yyi++]); 3850 yyformat += 2; 3851 } 3852 else 3853 { 3854 yyp++; 3855 yyformat++; 3856 } 3857 } 3858 return 0; 3859 } 3860 #endif /* YYERROR_VERBOSE */ 3861 3862 /*-----------------------------------------------. 3863 | Release the memory associated to this symbol. | 3864 `-----------------------------------------------*/ 3865 3866 static void 3867 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext) 3868 { 3869 YYUSE (yyvaluep); 3870 YYUSE (pParseContext); 3871 if (!yymsg) 3872 yymsg = "Deleting"; 3873 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 3874 3875 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 3876 YYUSE (yytype); 3877 YY_IGNORE_MAYBE_UNINITIALIZED_END 3878 } 3879 3880 3881 3882 3883 /*----------. 3884 | yyparse. | 3885 `----------*/ 3886 3887 int 3888 yyparse (glslang::TParseContext* pParseContext) 3889 { 3890 /* The lookahead symbol. */ 3891 int yychar; 3892 3893 3894 /* The semantic value of the lookahead symbol. */ 3895 /* Default value used for initialization, for pacifying older GCCs 3896 or non-GCC compilers. */ 3897 YY_INITIAL_VALUE (static YYSTYPE yyval_default;) 3898 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); 3899 3900 /* Number of syntax errors so far. */ 3901 int yynerrs; 3902 3903 int yystate; 3904 /* Number of tokens to shift before error messages enabled. */ 3905 int yyerrstatus; 3906 3907 /* The stacks and their tools: 3908 'yyss': related to states. 3909 'yyvs': related to semantic values. 3910 3911 Refer to the stacks through separate pointers, to allow yyoverflow 3912 to reallocate them elsewhere. */ 3913 3914 /* The state stack. */ 3915 yytype_int16 yyssa[YYINITDEPTH]; 3916 yytype_int16 *yyss; 3917 yytype_int16 *yyssp; 3918 3919 /* The semantic value stack. */ 3920 YYSTYPE yyvsa[YYINITDEPTH]; 3921 YYSTYPE *yyvs; 3922 YYSTYPE *yyvsp; 3923 3924 YYSIZE_T yystacksize; 3925 3926 int yyn; 3927 int yyresult; 3928 /* Lookahead token as an internal (translated) token number. */ 3929 int yytoken = 0; 3930 /* The variables used to return semantic value and location from the 3931 action routines. */ 3932 YYSTYPE yyval; 3933 3934 #if YYERROR_VERBOSE 3935 /* Buffer for error messages, and its allocated size. */ 3936 char yymsgbuf[128]; 3937 char *yymsg = yymsgbuf; 3938 YYSIZE_T yymsg_alloc = sizeof yymsgbuf; 3939 #endif 3940 3941 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 3942 3943 /* The number of symbols on the RHS of the reduced rule. 3944 Keep to zero when no symbol should be popped. */ 3945 int yylen = 0; 3946 3947 yyssp = yyss = yyssa; 3948 yyvsp = yyvs = yyvsa; 3949 yystacksize = YYINITDEPTH; 3950 3951 YYDPRINTF ((stderr, "Starting parse\n")); 3952 3953 yystate = 0; 3954 yyerrstatus = 0; 3955 yynerrs = 0; 3956 yychar = YYEMPTY; /* Cause a token to be read. */ 3957 goto yysetstate; 3958 3959 /*------------------------------------------------------------. 3960 | yynewstate -- Push a new state, which is found in yystate. | 3961 `------------------------------------------------------------*/ 3962 yynewstate: 3963 /* In all cases, when you get here, the value and location stacks 3964 have just been pushed. So pushing a state here evens the stacks. */ 3965 yyssp++; 3966 3967 yysetstate: 3968 *yyssp = yystate; 3969 3970 if (yyss + yystacksize - 1 <= yyssp) 3971 { 3972 /* Get the current used size of the three stacks, in elements. */ 3973 YYSIZE_T yysize = yyssp - yyss + 1; 3974 3975 #ifdef yyoverflow 3976 { 3977 /* Give user a chance to reallocate the stack. Use copies of 3978 these so that the &'s don't force the real ones into 3979 memory. */ 3980 YYSTYPE *yyvs1 = yyvs; 3981 yytype_int16 *yyss1 = yyss; 3982 3983 /* Each stack pointer address is followed by the size of the 3984 data in use in that stack, in bytes. This used to be a 3985 conditional around just the two extra args, but that might 3986 be undefined if yyoverflow is a macro. */ 3987 yyoverflow (YY_("memory exhausted"), 3988 &yyss1, yysize * sizeof (*yyssp), 3989 &yyvs1, yysize * sizeof (*yyvsp), 3990 &yystacksize); 3991 3992 yyss = yyss1; 3993 yyvs = yyvs1; 3994 } 3995 #else /* no yyoverflow */ 3996 # ifndef YYSTACK_RELOCATE 3997 goto yyexhaustedlab; 3998 # else 3999 /* Extend the stack our own way. */ 4000 if (YYMAXDEPTH <= yystacksize) 4001 goto yyexhaustedlab; 4002 yystacksize *= 2; 4003 if (YYMAXDEPTH < yystacksize) 4004 yystacksize = YYMAXDEPTH; 4005 4006 { 4007 yytype_int16 *yyss1 = yyss; 4008 union yyalloc *yyptr = 4009 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 4010 if (! yyptr) 4011 goto yyexhaustedlab; 4012 YYSTACK_RELOCATE (yyss_alloc, yyss); 4013 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 4014 # undef YYSTACK_RELOCATE 4015 if (yyss1 != yyssa) 4016 YYSTACK_FREE (yyss1); 4017 } 4018 # endif 4019 #endif /* no yyoverflow */ 4020 4021 yyssp = yyss + yysize - 1; 4022 yyvsp = yyvs + yysize - 1; 4023 4024 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 4025 (unsigned long int) yystacksize)); 4026 4027 if (yyss + yystacksize - 1 <= yyssp) 4028 YYABORT; 4029 } 4030 4031 YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 4032 4033 if (yystate == YYFINAL) 4034 YYACCEPT; 4035 4036 goto yybackup; 4037 4038 /*-----------. 4039 | yybackup. | 4040 `-----------*/ 4041 yybackup: 4042 4043 /* Do appropriate processing given the current state. Read a 4044 lookahead token if we need one and don't already have one. */ 4045 4046 /* First try to decide what to do without reference to lookahead token. */ 4047 yyn = yypact[yystate]; 4048 if (yypact_value_is_default (yyn)) 4049 goto yydefault; 4050 4051 /* Not known => get a lookahead token if don't already have one. */ 4052 4053 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ 4054 if (yychar == YYEMPTY) 4055 { 4056 YYDPRINTF ((stderr, "Reading a token: ")); 4057 yychar = yylex (&yylval, parseContext); 4058 } 4059 4060 if (yychar <= YYEOF) 4061 { 4062 yychar = yytoken = YYEOF; 4063 YYDPRINTF ((stderr, "Now at end of input.\n")); 4064 } 4065 else 4066 { 4067 yytoken = YYTRANSLATE (yychar); 4068 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); 4069 } 4070 4071 /* If the proper action on seeing token YYTOKEN is to reduce or to 4072 detect an error, take that action. */ 4073 yyn += yytoken; 4074 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 4075 goto yydefault; 4076 yyn = yytable[yyn]; 4077 if (yyn <= 0) 4078 { 4079 if (yytable_value_is_error (yyn)) 4080 goto yyerrlab; 4081 yyn = -yyn; 4082 goto yyreduce; 4083 } 4084 4085 /* Count tokens shifted since error; after three, turn off error 4086 status. */ 4087 if (yyerrstatus) 4088 yyerrstatus--; 4089 4090 /* Shift the lookahead token. */ 4091 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 4092 4093 /* Discard the shifted token. */ 4094 yychar = YYEMPTY; 4095 4096 yystate = yyn; 4097 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 4098 *++yyvsp = yylval; 4099 YY_IGNORE_MAYBE_UNINITIALIZED_END 4100 4101 goto yynewstate; 4102 4103 4104 /*-----------------------------------------------------------. 4105 | yydefault -- do the default action for the current state. | 4106 `-----------------------------------------------------------*/ 4107 yydefault: 4108 yyn = yydefact[yystate]; 4109 if (yyn == 0) 4110 goto yyerrlab; 4111 goto yyreduce; 4112 4113 4114 /*-----------------------------. 4115 | yyreduce -- Do a reduction. | 4116 `-----------------------------*/ 4117 yyreduce: 4118 /* yyn is the number of a rule to reduce with. */ 4119 yylen = yyr2[yyn]; 4120 4121 /* If YYLEN is nonzero, implement the default value of the action: 4122 '$$ = $1'. 4123 4124 Otherwise, the following line sets YYVAL to garbage. 4125 This behavior is undocumented and Bison 4126 users should not rely upon it. Assigning to YYVAL 4127 unconditionally makes the parser a bit smaller, and it avoids a 4128 GCC warning that YYVAL may be used uninitialized. */ 4129 yyval = yyvsp[1-yylen]; 4130 4131 4132 YY_REDUCE_PRINT (yyn); 4133 switch (yyn) 4134 { 4135 case 2: 4136 #line 294 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4137 { 4138 (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string); 4139 } 4140 #line 4141 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4141 break; 4142 4143 case 3: 4144 #line 300 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4145 { 4146 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); 4147 } 4148 #line 4149 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4149 break; 4150 4151 case 4: 4152 #line 303 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4153 { 4154 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal"); 4155 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); 4156 } 4157 #line 4158 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4158 break; 4159 4160 case 5: 4161 #line 307 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4162 { 4163 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal"); 4164 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); 4165 } 4166 #line 4167 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4167 break; 4168 4169 case 6: 4170 #line 311 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4171 { 4172 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); 4173 } 4174 #line 4175 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4175 break; 4176 4177 case 7: 4178 #line 314 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4179 { 4180 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal"); 4181 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); 4182 } 4183 #line 4184 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4184 break; 4185 4186 case 8: 4187 #line 318 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4188 { 4189 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal"); 4190 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true); 4191 } 4192 #line 4193 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4193 break; 4194 4195 case 9: 4196 #line 322 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4197 { 4198 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal"); 4199 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true); 4200 } 4201 #line 4202 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4202 break; 4203 4204 case 10: 4205 #line 326 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4206 { 4207 parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal"); 4208 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); 4209 } 4210 #line 4211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4211 break; 4212 4213 case 11: 4214 #line 330 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4215 { 4216 parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal"); 4217 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); 4218 } 4219 #line 4220 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4220 break; 4221 4222 case 12: 4223 #line 334 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4224 { 4225 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true); 4226 } 4227 #line 4228 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4228 break; 4229 4230 case 13: 4231 #line 337 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4232 { 4233 parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal"); 4234 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true); 4235 } 4236 #line 4237 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4237 break; 4238 4239 case 14: 4240 #line 341 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4241 { 4242 parseContext.float16Check((yyvsp[0].lex).loc, "half float literal"); 4243 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true); 4244 } 4245 #line 4246 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4246 break; 4247 4248 case 15: 4249 #line 345 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4250 { 4251 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true); 4252 } 4253 #line 4254 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4254 break; 4255 4256 case 16: 4257 #line 348 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4258 { 4259 (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); 4260 if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) 4261 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); 4262 } 4263 #line 4264 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4264 break; 4265 4266 case 17: 4267 #line 356 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4268 { 4269 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); 4270 } 4271 #line 4272 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4272 break; 4273 4274 case 18: 4275 #line 359 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4276 { 4277 (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode)); 4278 } 4279 #line 4280 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4280 break; 4281 4282 case 19: 4283 #line 362 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4284 { 4285 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); 4286 } 4287 #line 4288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4288 break; 4289 4290 case 20: 4291 #line 365 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4292 { 4293 (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string); 4294 } 4295 #line 4296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4296 break; 4297 4298 case 21: 4299 #line 368 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4300 { 4301 parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); 4302 parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode)); 4303 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode)); 4304 } 4305 #line 4306 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4306 break; 4307 4308 case 22: 4309 #line 373 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4310 { 4311 parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); 4312 parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode)); 4313 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode)); 4314 } 4315 #line 4316 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4316 break; 4317 4318 case 23: 4319 #line 381 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4320 { 4321 parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]"); 4322 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); 4323 } 4324 #line 4325 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4325 break; 4326 4327 case 24: 4328 #line 388 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4329 { 4330 (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode); 4331 delete (yyvsp[0].interm).function; 4332 } 4333 #line 4334 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4334 break; 4335 4336 case 25: 4337 #line 395 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4338 { 4339 (yyval.interm) = (yyvsp[0].interm); 4340 } 4341 #line 4342 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4342 break; 4343 4344 case 26: 4345 #line 401 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4346 { 4347 (yyval.interm) = (yyvsp[-1].interm); 4348 (yyval.interm).loc = (yyvsp[0].lex).loc; 4349 } 4350 #line 4351 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4351 break; 4352 4353 case 27: 4354 #line 405 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4355 { 4356 (yyval.interm) = (yyvsp[-1].interm); 4357 (yyval.interm).loc = (yyvsp[0].lex).loc; 4358 } 4359 #line 4360 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4360 break; 4361 4362 case 28: 4363 #line 412 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4364 { 4365 (yyval.interm) = (yyvsp[-1].interm); 4366 } 4367 #line 4368 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4368 break; 4369 4370 case 29: 4371 #line 415 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4372 { 4373 (yyval.interm) = (yyvsp[0].interm); 4374 } 4375 #line 4376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4376 break; 4377 4378 case 30: 4379 #line 421 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4380 { 4381 TParameter param = { 0, new TType }; 4382 param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); 4383 (yyvsp[-1].interm).function->addParameter(param); 4384 (yyval.interm).function = (yyvsp[-1].interm).function; 4385 (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode); 4386 } 4387 #line 4388 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4388 break; 4389 4390 case 31: 4391 #line 428 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4392 { 4393 TParameter param = { 0, new TType }; 4394 param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); 4395 (yyvsp[-2].interm).function->addParameter(param); 4396 (yyval.interm).function = (yyvsp[-2].interm).function; 4397 (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); 4398 } 4399 #line 4400 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4400 break; 4401 4402 case 32: 4403 #line 438 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4404 { 4405 (yyval.interm) = (yyvsp[-1].interm); 4406 } 4407 #line 4408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4408 break; 4409 4410 case 33: 4411 #line 446 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4412 { 4413 // Constructor 4414 (yyval.interm).intermNode = 0; 4415 (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); 4416 } 4417 #line 4418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4418 break; 4419 4420 case 34: 4421 #line 451 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4422 { 4423 // 4424 // Should be a method or subroutine call, but we haven't recognized the arguments yet. 4425 // 4426 (yyval.interm).function = 0; 4427 (yyval.interm).intermNode = 0; 4428 4429 TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode(); 4430 if (method) { 4431 (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength); 4432 (yyval.interm).intermNode = method->getObject(); 4433 } else { 4434 TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode(); 4435 if (symbol) { 4436 parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName()); 4437 TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid)); 4438 (yyval.interm).function = function; 4439 } else 4440 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", ""); 4441 } 4442 4443 if ((yyval.interm).function == 0) { 4444 // error recover 4445 TString empty(""); 4446 (yyval.interm).function = new TFunction(&empty, TType(EbtVoid), EOpNull); 4447 } 4448 } 4449 #line 4450 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4450 break; 4451 4452 case 35: 4453 #line 478 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4454 { 4455 // Constructor 4456 (yyval.interm).intermNode = 0; 4457 (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); 4458 } 4459 #line 4460 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4460 break; 4461 4462 case 36: 4463 #line 486 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4464 { 4465 parseContext.variableCheck((yyvsp[0].interm.intermTypedNode)); 4466 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); 4467 if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode()) 4468 parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); 4469 } 4470 #line 4471 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4471 break; 4472 4473 case 37: 4474 #line 492 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4475 { 4476 parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode)); 4477 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode)); 4478 } 4479 #line 4480 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4480 break; 4481 4482 case 38: 4483 #line 496 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4484 { 4485 parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode)); 4486 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode)); 4487 } 4488 #line 4489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4489 break; 4490 4491 case 39: 4492 #line 500 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4493 { 4494 if ((yyvsp[-1].interm).op != EOpNull) { 4495 char errorOp[2] = {0, 0}; 4496 switch((yyvsp[-1].interm).op) { 4497 case EOpNegative: errorOp[0] = '-'; break; 4498 case EOpLogicalNot: errorOp[0] = '!'; break; 4499 case EOpBitwiseNot: errorOp[0] = '~'; break; 4500 default: break; // some compilers want this 4501 } 4502 (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode)); 4503 } else { 4504 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); 4505 if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) 4506 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); 4507 } 4508 } 4509 #line 4510 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4510 break; 4511 4512 case 40: 4513 #line 520 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4514 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; } 4515 #line 4516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4516 break; 4517 4518 case 41: 4519 #line 521 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4520 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; } 4521 #line 4522 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4522 break; 4523 4524 case 42: 4525 #line 522 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4526 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; } 4527 #line 4528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4528 break; 4529 4530 case 43: 4531 #line 523 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4532 { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot; 4533 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); } 4534 #line 4535 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4535 break; 4536 4537 case 44: 4538 #line 529 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4539 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } 4540 #line 4541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4541 break; 4542 4543 case 45: 4544 #line 530 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4545 { 4546 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 4547 if ((yyval.interm.intermTypedNode) == 0) 4548 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); 4549 } 4550 #line 4551 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4551 break; 4552 4553 case 46: 4554 #line 535 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4555 { 4556 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 4557 if ((yyval.interm.intermTypedNode) == 0) 4558 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); 4559 } 4560 #line 4561 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4561 break; 4562 4563 case 47: 4564 #line 540 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4565 { 4566 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%"); 4567 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 4568 if ((yyval.interm.intermTypedNode) == 0) 4569 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); 4570 } 4571 #line 4572 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4572 break; 4573 4574 case 48: 4575 #line 549 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4576 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } 4577 #line 4578 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4578 break; 4579 4580 case 49: 4581 #line 550 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4582 { 4583 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 4584 if ((yyval.interm.intermTypedNode) == 0) 4585 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); 4586 } 4587 #line 4588 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4588 break; 4589 4590 case 50: 4591 #line 555 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4592 { 4593 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 4594 if ((yyval.interm.intermTypedNode) == 0) 4595 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); 4596 } 4597 #line 4598 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4598 break; 4599 4600 case 51: 4601 #line 563 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4602 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } 4603 #line 4604 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4604 break; 4605 4606 case 52: 4607 #line 564 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4608 { 4609 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left"); 4610 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 4611 if ((yyval.interm.intermTypedNode) == 0) 4612 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); 4613 } 4614 #line 4615 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4615 break; 4616 4617 case 53: 4618 #line 570 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4619 { 4620 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right"); 4621 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 4622 if ((yyval.interm.intermTypedNode) == 0) 4623 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); 4624 } 4625 #line 4626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4626 break; 4627 4628 case 54: 4629 #line 579 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4630 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } 4631 #line 4632 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4632 break; 4633 4634 case 55: 4635 #line 580 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4636 { 4637 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 4638 if ((yyval.interm.intermTypedNode) == 0) 4639 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); 4640 } 4641 #line 4642 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4642 break; 4643 4644 case 56: 4645 #line 585 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4646 { 4647 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 4648 if ((yyval.interm.intermTypedNode) == 0) 4649 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); 4650 } 4651 #line 4652 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4652 break; 4653 4654 case 57: 4655 #line 590 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4656 { 4657 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 4658 if ((yyval.interm.intermTypedNode) == 0) 4659 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); 4660 } 4661 #line 4662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4662 break; 4663 4664 case 58: 4665 #line 595 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4666 { 4667 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 4668 if ((yyval.interm.intermTypedNode) == 0) 4669 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); 4670 } 4671 #line 4672 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4672 break; 4673 4674 case 59: 4675 #line 603 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4676 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } 4677 #line 4678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4678 break; 4679 4680 case 60: 4681 #line 604 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4682 { 4683 parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); 4684 parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); 4685 parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); 4686 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 4687 if ((yyval.interm.intermTypedNode) == 0) 4688 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); 4689 } 4690 #line 4691 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4691 break; 4692 4693 case 61: 4694 #line 612 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4695 { 4696 parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); 4697 parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); 4698 parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); 4699 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 4700 if ((yyval.interm.intermTypedNode) == 0) 4701 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); 4702 } 4703 #line 4704 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4704 break; 4705 4706 case 62: 4707 #line 623 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4708 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } 4709 #line 4710 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4710 break; 4711 4712 case 63: 4713 #line 624 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4714 { 4715 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and"); 4716 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 4717 if ((yyval.interm.intermTypedNode) == 0) 4718 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); 4719 } 4720 #line 4721 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4721 break; 4722 4723 case 64: 4724 #line 633 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4725 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } 4726 #line 4727 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4727 break; 4728 4729 case 65: 4730 #line 634 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4731 { 4732 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or"); 4733 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 4734 if ((yyval.interm.intermTypedNode) == 0) 4735 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); 4736 } 4737 #line 4738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4738 break; 4739 4740 case 66: 4741 #line 643 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4742 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } 4743 #line 4744 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4744 break; 4745 4746 case 67: 4747 #line 644 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4748 { 4749 parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or"); 4750 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 4751 if ((yyval.interm.intermTypedNode) == 0) 4752 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); 4753 } 4754 #line 4755 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4755 break; 4756 4757 case 68: 4758 #line 653 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4759 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } 4760 #line 4761 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4761 break; 4762 4763 case 69: 4764 #line 654 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4765 { 4766 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 4767 if ((yyval.interm.intermTypedNode) == 0) 4768 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); 4769 } 4770 #line 4771 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4771 break; 4772 4773 case 70: 4774 #line 662 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4775 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } 4776 #line 4777 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4777 break; 4778 4779 case 71: 4780 #line 663 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4781 { 4782 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 4783 if ((yyval.interm.intermTypedNode) == 0) 4784 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); 4785 } 4786 #line 4787 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4787 break; 4788 4789 case 72: 4790 #line 671 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4791 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } 4792 #line 4793 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4793 break; 4794 4795 case 73: 4796 #line 672 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4797 { 4798 (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 4799 if ((yyval.interm.intermTypedNode) == 0) 4800 (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); 4801 } 4802 #line 4803 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4803 break; 4804 4805 case 74: 4806 #line 680 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4807 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } 4808 #line 4809 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4809 break; 4810 4811 case 75: 4812 #line 681 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4813 { 4814 ++parseContext.controlFlowNestingLevel; 4815 } 4816 #line 4817 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4817 break; 4818 4819 case 76: 4820 #line 684 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4821 { 4822 --parseContext.controlFlowNestingLevel; 4823 parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode)); 4824 parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode)); 4825 parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)); 4826 parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode)); 4827 (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc); 4828 if ((yyval.interm.intermTypedNode) == 0) { 4829 parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); 4830 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); 4831 } 4832 } 4833 #line 4834 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4834 break; 4835 4836 case 77: 4837 #line 699 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4838 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } 4839 #line 4840 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4840 break; 4841 4842 case 78: 4843 #line 700 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4844 { 4845 parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment"); 4846 parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); 4847 parseContext.storage16BitAssignmentCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); 4848 parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); 4849 parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)); 4850 parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode)); 4851 (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].interm).loc); 4852 if ((yyval.interm.intermTypedNode) == 0) { 4853 parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); 4854 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); 4855 } 4856 } 4857 #line 4858 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4858 break; 4859 4860 case 79: 4861 #line 716 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4862 { 4863 (yyval.interm).loc = (yyvsp[0].lex).loc; 4864 (yyval.interm).op = EOpAssign; 4865 } 4866 #line 4867 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4867 break; 4868 4869 case 80: 4870 #line 720 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4871 { 4872 (yyval.interm).loc = (yyvsp[0].lex).loc; 4873 (yyval.interm).op = EOpMulAssign; 4874 } 4875 #line 4876 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4876 break; 4877 4878 case 81: 4879 #line 724 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4880 { 4881 (yyval.interm).loc = (yyvsp[0].lex).loc; 4882 (yyval.interm).op = EOpDivAssign; 4883 } 4884 #line 4885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4885 break; 4886 4887 case 82: 4888 #line 728 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4889 { 4890 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%="); 4891 (yyval.interm).loc = (yyvsp[0].lex).loc; 4892 (yyval.interm).op = EOpModAssign; 4893 } 4894 #line 4895 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4895 break; 4896 4897 case 83: 4898 #line 733 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4899 { 4900 (yyval.interm).loc = (yyvsp[0].lex).loc; 4901 (yyval.interm).op = EOpAddAssign; 4902 } 4903 #line 4904 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4904 break; 4905 4906 case 84: 4907 #line 737 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4908 { 4909 (yyval.interm).loc = (yyvsp[0].lex).loc; 4910 (yyval.interm).op = EOpSubAssign; 4911 } 4912 #line 4913 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4913 break; 4914 4915 case 85: 4916 #line 741 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4917 { 4918 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign"); 4919 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; 4920 } 4921 #line 4922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4922 break; 4923 4924 case 86: 4925 #line 745 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4926 { 4927 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign"); 4928 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign; 4929 } 4930 #line 4931 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4931 break; 4932 4933 case 87: 4934 #line 749 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4935 { 4936 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign"); 4937 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign; 4938 } 4939 #line 4940 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4940 break; 4941 4942 case 88: 4943 #line 753 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4944 { 4945 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign"); 4946 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; 4947 } 4948 #line 4949 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4949 break; 4950 4951 case 89: 4952 #line 757 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4953 { 4954 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign"); 4955 (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; 4956 } 4957 #line 4958 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4958 break; 4959 4960 case 90: 4961 #line 764 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4962 { 4963 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); 4964 } 4965 #line 4966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4966 break; 4967 4968 case 91: 4969 #line 767 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4970 { 4971 parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode)); 4972 (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); 4973 if ((yyval.interm.intermTypedNode) == 0) { 4974 parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); 4975 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); 4976 } 4977 } 4978 #line 4979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4979 break; 4980 4981 case 92: 4982 #line 778 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4983 { 4984 parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), ""); 4985 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); 4986 } 4987 #line 4988 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4988 break; 4989 4990 case 93: 4991 #line 785 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 4992 { 4993 parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */); 4994 (yyval.interm.intermNode) = 0; 4995 // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature 4996 } 4997 #line 4998 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 4998 break; 4999 5000 case 94: 5001 #line 790 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5002 { 5003 if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate()) 5004 (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence); 5005 (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode; 5006 } 5007 #line 5008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5008 break; 5009 5010 case 95: 5011 #line 795 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5012 { 5013 parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement"); 5014 5015 // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope 5016 parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]); 5017 parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision); 5018 (yyval.interm.intermNode) = 0; 5019 } 5020 #line 5021 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5021 break; 5022 5023 case 96: 5024 #line 803 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5025 { 5026 parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList); 5027 (yyval.interm.intermNode) = 0; 5028 } 5029 #line 5030 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5030 break; 5031 5032 case 97: 5033 #line 807 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5034 { 5035 parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string); 5036 (yyval.interm.intermNode) = 0; 5037 } 5038 #line 5039 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5039 break; 5040 5041 case 98: 5042 #line 811 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5043 { 5044 parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes); 5045 (yyval.interm.intermNode) = 0; 5046 } 5047 #line 5048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5048 break; 5049 5050 case 99: 5051 #line 815 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5052 { 5053 parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); 5054 parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type)); 5055 (yyval.interm.intermNode) = 0; 5056 } 5057 #line 5058 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5058 break; 5059 5060 case 100: 5061 #line 820 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5062 { 5063 parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers); 5064 parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string); 5065 (yyval.interm.intermNode) = 0; 5066 } 5067 #line 5068 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5068 break; 5069 5070 case 101: 5071 #line 825 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5072 { 5073 parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers); 5074 (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string); 5075 parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList)); 5076 (yyval.interm.intermNode) = 0; 5077 } 5078 #line 5079 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5079 break; 5080 5081 case 102: 5082 #line 834 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5083 { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); } 5084 #line 5085 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5085 break; 5086 5087 case 103: 5088 #line 834 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5089 { 5090 --parseContext.structNestingLevel; 5091 parseContext.blockName = (yyvsp[-4].lex).string; 5092 parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier); 5093 parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers); 5094 parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier; 5095 (yyval.interm).loc = (yyvsp[-5].interm.type).loc; 5096 (yyval.interm).typeList = (yyvsp[-1].interm.typeList); 5097 } 5098 #line 5099 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5099 break; 5100 5101 case 104: 5102 #line 845 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5103 { 5104 (yyval.interm.identifierList) = new TIdentifierList; 5105 (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); 5106 } 5107 #line 5108 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5108 break; 5109 5110 case 105: 5111 #line 849 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5112 { 5113 (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList); 5114 (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); 5115 } 5116 #line 5117 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5117 break; 5118 5119 case 106: 5120 #line 856 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5121 { 5122 (yyval.interm).function = (yyvsp[-1].interm.function); 5123 (yyval.interm).loc = (yyvsp[0].lex).loc; 5124 } 5125 #line 5126 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5126 break; 5127 5128 case 107: 5129 #line 863 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5130 { 5131 (yyval.interm.function) = (yyvsp[0].interm.function); 5132 } 5133 #line 5134 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5134 break; 5135 5136 case 108: 5137 #line 866 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5138 { 5139 (yyval.interm.function) = (yyvsp[0].interm.function); 5140 } 5141 #line 5142 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5142 break; 5143 5144 case 109: 5145 #line 873 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5146 { 5147 // Add the parameter 5148 (yyval.interm.function) = (yyvsp[-1].interm.function); 5149 if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid) 5150 (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param); 5151 else 5152 delete (yyvsp[0].interm).param.type; 5153 } 5154 #line 5155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5155 break; 5156 5157 case 110: 5158 #line 881 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5159 { 5160 // 5161 // Only first parameter of one-parameter functions can be void 5162 // The check for named parameters not being void is done in parameter_declarator 5163 // 5164 if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) { 5165 // 5166 // This parameter > first is void 5167 // 5168 parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", ""); 5169 delete (yyvsp[0].interm).param.type; 5170 } else { 5171 // Add the parameter 5172 (yyval.interm.function) = (yyvsp[-2].interm.function); 5173 (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param); 5174 } 5175 } 5176 #line 5177 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5177 break; 5178 5179 case 111: 5180 #line 901 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5181 { 5182 if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) { 5183 parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return", 5184 GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), ""); 5185 } 5186 if ((yyvsp[-2].interm.type).arraySizes) 5187 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); 5188 5189 // Add the function as a prototype after parsing it (we do not support recursion) 5190 TFunction *function; 5191 TType type((yyvsp[-2].interm.type)); 5192 5193 // Potentially rename shader entry point function. No-op most of the time. 5194 parseContext.renameShaderFunction((yyvsp[-1].lex).string); 5195 5196 // Make the function 5197 function = new TFunction((yyvsp[-1].lex).string, type); 5198 (yyval.interm.function) = function; 5199 } 5200 #line 5201 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5201 break; 5202 5203 case 112: 5204 #line 924 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5205 { 5206 if ((yyvsp[-1].interm.type).arraySizes) { 5207 parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); 5208 parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); 5209 parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes); 5210 } 5211 if ((yyvsp[-1].interm.type).basicType == EbtVoid) { 5212 parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), ""); 5213 } 5214 parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string); 5215 5216 TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))}; 5217 (yyval.interm).loc = (yyvsp[0].lex).loc; 5218 (yyval.interm).param = param; 5219 } 5220 #line 5221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5221 break; 5222 5223 case 113: 5224 #line 939 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5225 { 5226 if ((yyvsp[-2].interm.type).arraySizes) { 5227 parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); 5228 parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); 5229 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); 5230 } 5231 TType* type = new TType((yyvsp[-2].interm.type)); 5232 type->transferArraySizes((yyvsp[0].interm).arraySizes); 5233 type->copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes); 5234 5235 parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, type->getArraySizes()); 5236 parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes); 5237 parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string); 5238 5239 TParameter param = { (yyvsp[-1].lex).string, type }; 5240 5241 (yyval.interm).loc = (yyvsp[-1].lex).loc; 5242 (yyval.interm).param = param; 5243 } 5244 #line 5245 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5245 break; 5246 5247 case 114: 5248 #line 964 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5249 { 5250 (yyval.interm) = (yyvsp[0].interm); 5251 if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) 5252 (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision; 5253 parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); 5254 5255 parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); 5256 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); 5257 parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); 5258 5259 } 5260 #line 5261 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5261 break; 5262 5263 case 115: 5264 #line 975 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5265 { 5266 (yyval.interm) = (yyvsp[0].interm); 5267 5268 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type); 5269 parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); 5270 parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); 5271 } 5272 #line 5273 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5273 break; 5274 5275 case 116: 5276 #line 985 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5277 { 5278 (yyval.interm) = (yyvsp[0].interm); 5279 if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) 5280 (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision; 5281 parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); 5282 5283 parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); 5284 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); 5285 parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); 5286 } 5287 #line 5288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5288 break; 5289 5290 case 117: 5291 #line 995 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5292 { 5293 (yyval.interm) = (yyvsp[0].interm); 5294 5295 parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type); 5296 parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); 5297 parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); 5298 } 5299 #line 5300 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5300 break; 5301 5302 case 118: 5303 #line 1005 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5304 { 5305 TParameter param = { 0, new TType((yyvsp[0].interm.type)) }; 5306 (yyval.interm).param = param; 5307 if ((yyvsp[0].interm.type).arraySizes) 5308 parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes); 5309 } 5310 #line 5311 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5311 break; 5312 5313 case 119: 5314 #line 1014 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5315 { 5316 (yyval.interm) = (yyvsp[0].interm); 5317 } 5318 #line 5319 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5319 break; 5320 5321 case 120: 5322 #line 1017 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5323 { 5324 (yyval.interm) = (yyvsp[-2].interm); 5325 parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type); 5326 } 5327 #line 5328 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5328 break; 5329 5330 case 121: 5331 #line 1021 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5332 { 5333 (yyval.interm) = (yyvsp[-3].interm); 5334 parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes); 5335 } 5336 #line 5337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5337 break; 5338 5339 case 122: 5340 #line 1025 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5341 { 5342 (yyval.interm).type = (yyvsp[-5].interm).type; 5343 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); 5344 (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc); 5345 } 5346 #line 5347 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5347 break; 5348 5349 case 123: 5350 #line 1030 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5351 { 5352 (yyval.interm).type = (yyvsp[-4].interm).type; 5353 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode)); 5354 (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc); 5355 } 5356 #line 5357 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5357 break; 5358 5359 case 124: 5360 #line 1038 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5361 { 5362 (yyval.interm).type = (yyvsp[0].interm.type); 5363 (yyval.interm).intermNode = 0; 5364 parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type); 5365 } 5366 #line 5367 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5367 break; 5368 5369 case 125: 5370 #line 1043 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5371 { 5372 (yyval.interm).type = (yyvsp[-1].interm.type); 5373 (yyval.interm).intermNode = 0; 5374 parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type)); 5375 } 5376 #line 5377 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5377 break; 5378 5379 case 126: 5380 #line 1048 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5381 { 5382 (yyval.interm).type = (yyvsp[-2].interm.type); 5383 (yyval.interm).intermNode = 0; 5384 parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes); 5385 } 5386 #line 5387 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5387 break; 5388 5389 case 127: 5390 #line 1053 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5391 { 5392 (yyval.interm).type = (yyvsp[-4].interm.type); 5393 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); 5394 (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); 5395 } 5396 #line 5397 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5397 break; 5398 5399 case 128: 5400 #line 1058 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5401 { 5402 (yyval.interm).type = (yyvsp[-3].interm.type); 5403 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); 5404 (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); 5405 } 5406 #line 5407 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5407 break; 5408 5409 case 129: 5410 #line 1067 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5411 { 5412 (yyval.interm.type) = (yyvsp[0].interm.type); 5413 5414 parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type)); 5415 if ((yyvsp[0].interm.type).arraySizes) { 5416 parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); 5417 parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); 5418 } 5419 5420 parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier); 5421 } 5422 #line 5423 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5423 break; 5424 5425 case 130: 5426 #line 1078 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5427 { 5428 parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); 5429 parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type)); 5430 5431 if ((yyvsp[0].interm.type).arraySizes) { 5432 parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); 5433 parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); 5434 } 5435 5436 if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier)) 5437 (yyvsp[0].interm.type).arraySizes = nullptr; 5438 5439 parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); 5440 (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers); 5441 parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true); 5442 parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier); 5443 5444 (yyval.interm.type) = (yyvsp[0].interm.type); 5445 5446 if (! (yyval.interm.type).qualifier.isInterpolation() && 5447 ((parseContext.language == EShLangVertex && (yyval.interm.type).qualifier.storage == EvqVaryingOut) || 5448 (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn))) 5449 (yyval.interm.type).qualifier.smooth = true; 5450 } 5451 #line 5452 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5452 break; 5453 5454 case 131: 5455 #line 1105 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5456 { 5457 parseContext.globalCheck((yyvsp[0].lex).loc, "invariant"); 5458 parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant"); 5459 (yyval.interm.type).init((yyvsp[0].lex).loc); 5460 (yyval.interm.type).qualifier.invariant = true; 5461 } 5462 #line 5463 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5463 break; 5464 5465 case 132: 5466 #line 1114 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5467 { 5468 parseContext.globalCheck((yyvsp[0].lex).loc, "smooth"); 5469 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth"); 5470 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth"); 5471 (yyval.interm.type).init((yyvsp[0].lex).loc); 5472 (yyval.interm.type).qualifier.smooth = true; 5473 } 5474 #line 5475 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5475 break; 5476 5477 case 133: 5478 #line 1121 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5479 { 5480 parseContext.globalCheck((yyvsp[0].lex).loc, "flat"); 5481 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat"); 5482 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat"); 5483 (yyval.interm.type).init((yyvsp[0].lex).loc); 5484 (yyval.interm.type).qualifier.flat = true; 5485 } 5486 #line 5487 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5487 break; 5488 5489 case 134: 5490 #line 1128 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5491 { 5492 parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective"); 5493 #ifdef NV_EXTENSIONS 5494 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective"); 5495 #else 5496 parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "noperspective"); 5497 #endif 5498 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective"); 5499 (yyval.interm.type).init((yyvsp[0].lex).loc); 5500 (yyval.interm.type).qualifier.nopersp = true; 5501 } 5502 #line 5503 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5503 break; 5504 5505 case 135: 5506 #line 1139 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5507 { 5508 #ifdef AMD_EXTENSIONS 5509 parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD"); 5510 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); 5511 parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); 5512 (yyval.interm.type).init((yyvsp[0].lex).loc); 5513 (yyval.interm.type).qualifier.explicitInterp = true; 5514 #endif 5515 } 5516 #line 5517 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5517 break; 5518 5519 case 136: 5520 #line 1148 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5521 { 5522 #ifdef NV_EXTENSIONS 5523 parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV"); 5524 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric"); 5525 parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric"); 5526 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric"); 5527 (yyval.interm.type).init((yyvsp[0].lex).loc); 5528 (yyval.interm.type).qualifier.pervertexNV = true; 5529 #endif 5530 } 5531 #line 5532 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5532 break; 5533 5534 case 137: 5535 #line 1158 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5536 { 5537 #ifdef NV_EXTENSIONS 5538 // No need for profile version or extension check. Shader stage already checks both. 5539 parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV"); 5540 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshNVMask), "perprimitiveNV"); 5541 // Fragment shader stage doesn't check for extension. So we explicitly add below extension check. 5542 if (parseContext.language == EShLangFragment) 5543 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_NV_mesh_shader, "perprimitiveNV"); 5544 (yyval.interm.type).init((yyvsp[0].lex).loc); 5545 (yyval.interm.type).qualifier.perPrimitiveNV = true; 5546 #endif 5547 } 5548 #line 5549 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5549 break; 5550 5551 case 138: 5552 #line 1170 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5553 { 5554 #ifdef NV_EXTENSIONS 5555 // No need for profile version or extension check. Shader stage already checks both. 5556 parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV"); 5557 parseContext.requireStage((yyvsp[0].lex).loc, EShLangMeshNV, "perviewNV"); 5558 (yyval.interm.type).init((yyvsp[0].lex).loc); 5559 (yyval.interm.type).qualifier.perViewNV = true; 5560 #endif 5561 } 5562 #line 5563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5563 break; 5564 5565 case 139: 5566 #line 1179 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5567 { 5568 #ifdef NV_EXTENSIONS 5569 // No need for profile version or extension check. Shader stage already checks both. 5570 parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV"); 5571 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "taskNV"); 5572 (yyval.interm.type).init((yyvsp[0].lex).loc); 5573 (yyval.interm.type).qualifier.perTaskNV = true; 5574 #endif 5575 } 5576 #line 5577 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5577 break; 5578 5579 case 140: 5580 #line 1191 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5581 { 5582 (yyval.interm.type) = (yyvsp[-1].interm.type); 5583 } 5584 #line 5585 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5585 break; 5586 5587 case 141: 5588 #line 1197 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5589 { 5590 (yyval.interm.type) = (yyvsp[0].interm.type); 5591 } 5592 #line 5593 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5593 break; 5594 5595 case 142: 5596 #line 1200 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5597 { 5598 (yyval.interm.type) = (yyvsp[-2].interm.type); 5599 (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); 5600 parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); 5601 } 5602 #line 5603 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5603 break; 5604 5605 case 143: 5606 #line 1207 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5607 { 5608 (yyval.interm.type).init((yyvsp[0].lex).loc); 5609 parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string); 5610 } 5611 #line 5612 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5612 break; 5613 5614 case 144: 5615 #line 1211 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5616 { 5617 (yyval.interm.type).init((yyvsp[-2].lex).loc); 5618 parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode)); 5619 } 5620 #line 5621 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5621 break; 5622 5623 case 145: 5624 #line 1215 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5625 { // because "shared" is both an identifier and a keyword 5626 (yyval.interm.type).init((yyvsp[0].lex).loc); 5627 TString strShared("shared"); 5628 parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared); 5629 } 5630 #line 5631 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5631 break; 5632 5633 case 146: 5634 #line 1223 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5635 { 5636 parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise"); 5637 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise"); 5638 (yyval.interm.type).init((yyvsp[0].lex).loc); 5639 (yyval.interm.type).qualifier.noContraction = true; 5640 } 5641 #line 5642 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5642 break; 5643 5644 case 147: 5645 #line 1232 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5646 { 5647 (yyval.interm.type) = (yyvsp[0].interm.type); 5648 } 5649 #line 5650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5650 break; 5651 5652 case 148: 5653 #line 1235 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5654 { 5655 (yyval.interm.type) = (yyvsp[-1].interm.type); 5656 if ((yyval.interm.type).basicType == EbtVoid) 5657 (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType; 5658 5659 (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); 5660 parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); 5661 } 5662 #line 5663 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5663 break; 5664 5665 case 149: 5666 #line 1246 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5667 { 5668 (yyval.interm.type) = (yyvsp[0].interm.type); 5669 } 5670 #line 5671 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5671 break; 5672 5673 case 150: 5674 #line 1249 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5675 { 5676 (yyval.interm.type) = (yyvsp[0].interm.type); 5677 } 5678 #line 5679 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5679 break; 5680 5681 case 151: 5682 #line 1252 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5683 { 5684 parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision); 5685 (yyval.interm.type) = (yyvsp[0].interm.type); 5686 } 5687 #line 5688 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5688 break; 5689 5690 case 152: 5691 #line 1256 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5692 { 5693 // allow inheritance of storage qualifier from block declaration 5694 (yyval.interm.type) = (yyvsp[0].interm.type); 5695 } 5696 #line 5697 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5697 break; 5698 5699 case 153: 5700 #line 1260 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5701 { 5702 // allow inheritance of storage qualifier from block declaration 5703 (yyval.interm.type) = (yyvsp[0].interm.type); 5704 } 5705 #line 5706 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5706 break; 5707 5708 case 154: 5709 #line 1264 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5710 { 5711 // allow inheritance of storage qualifier from block declaration 5712 (yyval.interm.type) = (yyvsp[0].interm.type); 5713 } 5714 #line 5715 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5715 break; 5716 5717 case 155: 5718 #line 1268 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5719 { 5720 (yyval.interm.type) = (yyvsp[0].interm.type); 5721 } 5722 #line 5723 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5723 break; 5724 5725 case 156: 5726 #line 1274 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5727 { 5728 (yyval.interm.type).init((yyvsp[0].lex).loc); 5729 (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant 5730 } 5731 #line 5732 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5732 break; 5733 5734 case 157: 5735 #line 1278 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5736 { 5737 parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute"); 5738 parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute"); 5739 parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute"); 5740 parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute"); 5741 parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute"); 5742 5743 parseContext.globalCheck((yyvsp[0].lex).loc, "attribute"); 5744 5745 (yyval.interm.type).init((yyvsp[0].lex).loc); 5746 (yyval.interm.type).qualifier.storage = EvqVaryingIn; 5747 } 5748 #line 5749 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5749 break; 5750 5751 case 158: 5752 #line 1290 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5753 { 5754 parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying"); 5755 parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying"); 5756 parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying"); 5757 parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying"); 5758 5759 parseContext.globalCheck((yyvsp[0].lex).loc, "varying"); 5760 5761 (yyval.interm.type).init((yyvsp[0].lex).loc); 5762 if (parseContext.language == EShLangVertex) 5763 (yyval.interm.type).qualifier.storage = EvqVaryingOut; 5764 else 5765 (yyval.interm.type).qualifier.storage = EvqVaryingIn; 5766 } 5767 #line 5768 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5768 break; 5769 5770 case 159: 5771 #line 1304 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5772 { 5773 parseContext.globalCheck((yyvsp[0].lex).loc, "inout"); 5774 (yyval.interm.type).init((yyvsp[0].lex).loc); 5775 (yyval.interm.type).qualifier.storage = EvqInOut; 5776 } 5777 #line 5778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5778 break; 5779 5780 case 160: 5781 #line 1309 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5782 { 5783 parseContext.globalCheck((yyvsp[0].lex).loc, "in"); 5784 (yyval.interm.type).init((yyvsp[0].lex).loc); 5785 // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later 5786 (yyval.interm.type).qualifier.storage = EvqIn; 5787 } 5788 #line 5789 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5789 break; 5790 5791 case 161: 5792 #line 1315 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5793 { 5794 parseContext.globalCheck((yyvsp[0].lex).loc, "out"); 5795 (yyval.interm.type).init((yyvsp[0].lex).loc); 5796 // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later 5797 (yyval.interm.type).qualifier.storage = EvqOut; 5798 } 5799 #line 5800 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5800 break; 5801 5802 case 162: 5803 #line 1321 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5804 { 5805 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid"); 5806 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid"); 5807 parseContext.globalCheck((yyvsp[0].lex).loc, "centroid"); 5808 (yyval.interm.type).init((yyvsp[0].lex).loc); 5809 (yyval.interm.type).qualifier.centroid = true; 5810 } 5811 #line 5812 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5812 break; 5813 5814 case 163: 5815 #line 1328 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5816 { 5817 parseContext.globalCheck((yyvsp[0].lex).loc, "patch"); 5818 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); 5819 (yyval.interm.type).init((yyvsp[0].lex).loc); 5820 (yyval.interm.type).qualifier.patch = true; 5821 } 5822 #line 5823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5823 break; 5824 5825 case 164: 5826 #line 1334 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5827 { 5828 parseContext.globalCheck((yyvsp[0].lex).loc, "sample"); 5829 (yyval.interm.type).init((yyvsp[0].lex).loc); 5830 (yyval.interm.type).qualifier.sample = true; 5831 } 5832 #line 5833 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5833 break; 5834 5835 case 165: 5836 #line 1339 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5837 { 5838 parseContext.globalCheck((yyvsp[0].lex).loc, "uniform"); 5839 (yyval.interm.type).init((yyvsp[0].lex).loc); 5840 (yyval.interm.type).qualifier.storage = EvqUniform; 5841 } 5842 #line 5843 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5843 break; 5844 5845 case 166: 5846 #line 1344 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5847 { 5848 parseContext.globalCheck((yyvsp[0].lex).loc, "buffer"); 5849 (yyval.interm.type).init((yyvsp[0].lex).loc); 5850 (yyval.interm.type).qualifier.storage = EvqBuffer; 5851 } 5852 #line 5853 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5853 break; 5854 5855 case 167: 5856 #line 1349 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5857 { 5858 #ifdef NV_EXTENSIONS 5859 parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV"); 5860 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectNVMask | EShLangClosestHitNVMask 5861 | EShLangAnyHitNVMask), "hitAttributeNV"); 5862 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV"); 5863 (yyval.interm.type).init((yyvsp[0].lex).loc); 5864 (yyval.interm.type).qualifier.storage = EvqHitAttrNV; 5865 #endif 5866 } 5867 #line 5868 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5868 break; 5869 5870 case 168: 5871 #line 1359 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5872 { 5873 #ifdef NV_EXTENSIONS 5874 parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV"); 5875 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangClosestHitNVMask | 5876 EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadNV"); 5877 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV"); 5878 (yyval.interm.type).init((yyvsp[0].lex).loc); 5879 (yyval.interm.type).qualifier.storage = EvqPayloadNV; 5880 #endif 5881 } 5882 #line 5883 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5883 break; 5884 5885 case 169: 5886 #line 1369 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5887 { 5888 #ifdef NV_EXTENSIONS 5889 parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV"); 5890 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitNVMask | 5891 EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadInNV"); 5892 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV"); 5893 (yyval.interm.type).init((yyvsp[0].lex).loc); 5894 (yyval.interm.type).qualifier.storage = EvqPayloadInNV; 5895 #endif 5896 } 5897 #line 5898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5898 break; 5899 5900 case 170: 5901 #line 1379 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5902 { 5903 #ifdef NV_EXTENSIONS 5904 parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV"); 5905 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenNVMask | 5906 EShLangClosestHitNVMask | EShLangMissNVMask | EShLangCallableNVMask), "callableDataNV"); 5907 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV"); 5908 (yyval.interm.type).init((yyvsp[0].lex).loc); 5909 (yyval.interm.type).qualifier.storage = EvqCallableDataNV; 5910 #endif 5911 } 5912 #line 5913 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5913 break; 5914 5915 case 171: 5916 #line 1389 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5917 { 5918 #ifdef NV_EXTENSIONS 5919 parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV"); 5920 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableNVMask), "callableDataInNV"); 5921 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV"); 5922 (yyval.interm.type).init((yyvsp[0].lex).loc); 5923 (yyval.interm.type).qualifier.storage = EvqCallableDataInNV; 5924 #endif 5925 } 5926 #line 5927 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5927 break; 5928 5929 case 172: 5930 #line 1398 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5931 { 5932 parseContext.globalCheck((yyvsp[0].lex).loc, "shared"); 5933 parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); 5934 parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared"); 5935 #ifdef NV_EXTENSIONS 5936 parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared"); 5937 #else 5938 parseContext.requireStage((yyvsp[0].lex).loc, EShLangCompute, "shared"); 5939 #endif 5940 (yyval.interm.type).init((yyvsp[0].lex).loc); 5941 (yyval.interm.type).qualifier.storage = EvqShared; 5942 } 5943 #line 5944 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5944 break; 5945 5946 case 173: 5947 #line 1410 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5948 { 5949 (yyval.interm.type).init((yyvsp[0].lex).loc); 5950 (yyval.interm.type).qualifier.coherent = true; 5951 } 5952 #line 5953 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5953 break; 5954 5955 case 174: 5956 #line 1414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5957 { 5958 (yyval.interm.type).init((yyvsp[0].lex).loc); 5959 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent"); 5960 (yyval.interm.type).qualifier.devicecoherent = true; 5961 } 5962 #line 5963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5963 break; 5964 5965 case 175: 5966 #line 1419 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5967 { 5968 (yyval.interm.type).init((yyvsp[0].lex).loc); 5969 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent"); 5970 (yyval.interm.type).qualifier.queuefamilycoherent = true; 5971 } 5972 #line 5973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5973 break; 5974 5975 case 176: 5976 #line 1424 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5977 { 5978 (yyval.interm.type).init((yyvsp[0].lex).loc); 5979 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent"); 5980 (yyval.interm.type).qualifier.workgroupcoherent = true; 5981 } 5982 #line 5983 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5983 break; 5984 5985 case 177: 5986 #line 1429 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5987 { 5988 (yyval.interm.type).init((yyvsp[0].lex).loc); 5989 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent"); 5990 (yyval.interm.type).qualifier.subgroupcoherent = true; 5991 } 5992 #line 5993 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 5993 break; 5994 5995 case 178: 5996 #line 1434 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 5997 { 5998 (yyval.interm.type).init((yyvsp[0].lex).loc); 5999 parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate"); 6000 (yyval.interm.type).qualifier.nonprivate = true; 6001 } 6002 #line 6003 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6003 break; 6004 6005 case 179: 6006 #line 1439 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6007 { 6008 (yyval.interm.type).init((yyvsp[0].lex).loc); 6009 (yyval.interm.type).qualifier.volatil = true; 6010 } 6011 #line 6012 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6012 break; 6013 6014 case 180: 6015 #line 1443 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6016 { 6017 (yyval.interm.type).init((yyvsp[0].lex).loc); 6018 (yyval.interm.type).qualifier.restrict = true; 6019 } 6020 #line 6021 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6021 break; 6022 6023 case 181: 6024 #line 1447 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6025 { 6026 (yyval.interm.type).init((yyvsp[0].lex).loc); 6027 (yyval.interm.type).qualifier.readonly = true; 6028 } 6029 #line 6030 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6030 break; 6031 6032 case 182: 6033 #line 1451 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6034 { 6035 (yyval.interm.type).init((yyvsp[0].lex).loc); 6036 (yyval.interm.type).qualifier.writeonly = true; 6037 } 6038 #line 6039 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6039 break; 6040 6041 case 183: 6042 #line 1455 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6043 { 6044 parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine"); 6045 parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine"); 6046 parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine"); 6047 (yyval.interm.type).init((yyvsp[0].lex).loc); 6048 } 6049 #line 6050 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6050 break; 6051 6052 case 184: 6053 #line 1461 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6054 { 6055 parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine"); 6056 parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine"); 6057 parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine"); 6058 (yyval.interm.type).init((yyvsp[-3].lex).loc); 6059 } 6060 #line 6061 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6061 break; 6062 6063 case 185: 6064 #line 1470 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6065 { 6066 (yyval.interm.type).init((yyvsp[0].lex).loc); 6067 (yyval.interm.type).qualifier.nonUniform = true; 6068 } 6069 #line 6070 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6070 break; 6071 6072 case 186: 6073 #line 1477 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6074 { 6075 // TODO 6076 } 6077 #line 6078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6078 break; 6079 6080 case 187: 6081 #line 1480 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6082 { 6083 // TODO: 4.0 semantics: subroutines 6084 // 1) make sure each identifier is a type declared earlier with SUBROUTINE 6085 // 2) save all of the identifiers for future comparison with the declared function 6086 } 6087 #line 6088 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6088 break; 6089 6090 case 188: 6091 #line 1488 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6092 { 6093 (yyval.interm.type) = (yyvsp[0].interm.type); 6094 (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); 6095 } 6096 #line 6097 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6097 break; 6098 6099 case 189: 6100 #line 1492 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6101 { 6102 parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes); 6103 (yyval.interm.type) = (yyvsp[-1].interm.type); 6104 (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); 6105 (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes; 6106 } 6107 #line 6108 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6108 break; 6109 6110 case 190: 6111 #line 1501 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6112 { 6113 (yyval.interm).loc = (yyvsp[-1].lex).loc; 6114 (yyval.interm).arraySizes = new TArraySizes; 6115 (yyval.interm).arraySizes->addInnerSize(); 6116 } 6117 #line 6118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6118 break; 6119 6120 case 191: 6121 #line 1506 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6122 { 6123 (yyval.interm).loc = (yyvsp[-2].lex).loc; 6124 (yyval.interm).arraySizes = new TArraySizes; 6125 6126 TArraySize size; 6127 parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); 6128 (yyval.interm).arraySizes->addInnerSize(size); 6129 } 6130 #line 6131 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6131 break; 6132 6133 case 192: 6134 #line 1514 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6135 { 6136 (yyval.interm) = (yyvsp[-2].interm); 6137 (yyval.interm).arraySizes->addInnerSize(); 6138 } 6139 #line 6140 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6140 break; 6141 6142 case 193: 6143 #line 1518 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6144 { 6145 (yyval.interm) = (yyvsp[-3].interm); 6146 6147 TArraySize size; 6148 parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); 6149 (yyval.interm).arraySizes->addInnerSize(size); 6150 } 6151 #line 6152 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6152 break; 6153 6154 case 194: 6155 #line 1528 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6156 { 6157 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6158 (yyval.interm.type).basicType = EbtVoid; 6159 } 6160 #line 6161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6161 break; 6162 6163 case 195: 6164 #line 1532 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6165 { 6166 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6167 (yyval.interm.type).basicType = EbtFloat; 6168 } 6169 #line 6170 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6170 break; 6171 6172 case 196: 6173 #line 1536 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6174 { 6175 parseContext.doubleCheck((yyvsp[0].lex).loc, "double"); 6176 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6177 (yyval.interm.type).basicType = EbtDouble; 6178 } 6179 #line 6180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6180 break; 6181 6182 case 197: 6183 #line 1541 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6184 { 6185 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel()); 6186 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6187 (yyval.interm.type).basicType = EbtFloat16; 6188 } 6189 #line 6190 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6190 break; 6191 6192 case 198: 6193 #line 1546 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6194 { 6195 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel()); 6196 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6197 (yyval.interm.type).basicType = EbtFloat; 6198 } 6199 #line 6200 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6200 break; 6201 6202 case 199: 6203 #line 1551 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6204 { 6205 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel()); 6206 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6207 (yyval.interm.type).basicType = EbtDouble; 6208 } 6209 #line 6210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6210 break; 6211 6212 case 200: 6213 #line 1556 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6214 { 6215 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6216 (yyval.interm.type).basicType = EbtInt; 6217 } 6218 #line 6219 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6219 break; 6220 6221 case 201: 6222 #line 1560 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6223 { 6224 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer"); 6225 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6226 (yyval.interm.type).basicType = EbtUint; 6227 } 6228 #line 6229 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6229 break; 6230 6231 case 202: 6232 #line 1565 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6233 { 6234 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); 6235 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6236 (yyval.interm.type).basicType = EbtInt8; 6237 } 6238 #line 6239 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6239 break; 6240 6241 case 203: 6242 #line 1570 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6243 { 6244 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); 6245 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6246 (yyval.interm.type).basicType = EbtUint8; 6247 } 6248 #line 6249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6249 break; 6250 6251 case 204: 6252 #line 1575 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6253 { 6254 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); 6255 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6256 (yyval.interm.type).basicType = EbtInt16; 6257 } 6258 #line 6259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6259 break; 6260 6261 case 205: 6262 #line 1580 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6263 { 6264 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); 6265 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6266 (yyval.interm.type).basicType = EbtUint16; 6267 } 6268 #line 6269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6269 break; 6270 6271 case 206: 6272 #line 1585 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6273 { 6274 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); 6275 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6276 (yyval.interm.type).basicType = EbtInt; 6277 } 6278 #line 6279 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6279 break; 6280 6281 case 207: 6282 #line 1590 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6283 { 6284 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); 6285 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6286 (yyval.interm.type).basicType = EbtUint; 6287 } 6288 #line 6289 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6289 break; 6290 6291 case 208: 6292 #line 1595 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6293 { 6294 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); 6295 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6296 (yyval.interm.type).basicType = EbtInt64; 6297 } 6298 #line 6299 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6299 break; 6300 6301 case 209: 6302 #line 1600 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6303 { 6304 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); 6305 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6306 (yyval.interm.type).basicType = EbtUint64; 6307 } 6308 #line 6309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6309 break; 6310 6311 case 210: 6312 #line 1605 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6313 { 6314 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6315 (yyval.interm.type).basicType = EbtBool; 6316 } 6317 #line 6318 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6318 break; 6319 6320 case 211: 6321 #line 1609 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6322 { 6323 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6324 (yyval.interm.type).basicType = EbtFloat; 6325 (yyval.interm.type).setVector(2); 6326 } 6327 #line 6328 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6328 break; 6329 6330 case 212: 6331 #line 1614 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6332 { 6333 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6334 (yyval.interm.type).basicType = EbtFloat; 6335 (yyval.interm.type).setVector(3); 6336 } 6337 #line 6338 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6338 break; 6339 6340 case 213: 6341 #line 1619 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6342 { 6343 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6344 (yyval.interm.type).basicType = EbtFloat; 6345 (yyval.interm.type).setVector(4); 6346 } 6347 #line 6348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6348 break; 6349 6350 case 214: 6351 #line 1624 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6352 { 6353 parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); 6354 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6355 (yyval.interm.type).basicType = EbtDouble; 6356 (yyval.interm.type).setVector(2); 6357 } 6358 #line 6359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6359 break; 6360 6361 case 215: 6362 #line 1630 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6363 { 6364 parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); 6365 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6366 (yyval.interm.type).basicType = EbtDouble; 6367 (yyval.interm.type).setVector(3); 6368 } 6369 #line 6370 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6370 break; 6371 6372 case 216: 6373 #line 1636 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6374 { 6375 parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); 6376 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6377 (yyval.interm.type).basicType = EbtDouble; 6378 (yyval.interm.type).setVector(4); 6379 } 6380 #line 6381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6381 break; 6382 6383 case 217: 6384 #line 1642 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6385 { 6386 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); 6387 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6388 (yyval.interm.type).basicType = EbtFloat16; 6389 (yyval.interm.type).setVector(2); 6390 } 6391 #line 6392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6392 break; 6393 6394 case 218: 6395 #line 1648 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6396 { 6397 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); 6398 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6399 (yyval.interm.type).basicType = EbtFloat16; 6400 (yyval.interm.type).setVector(3); 6401 } 6402 #line 6403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6403 break; 6404 6405 case 219: 6406 #line 1654 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6407 { 6408 parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); 6409 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6410 (yyval.interm.type).basicType = EbtFloat16; 6411 (yyval.interm.type).setVector(4); 6412 } 6413 #line 6414 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6414 break; 6415 6416 case 220: 6417 #line 1660 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6418 { 6419 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); 6420 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6421 (yyval.interm.type).basicType = EbtFloat; 6422 (yyval.interm.type).setVector(2); 6423 } 6424 #line 6425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6425 break; 6426 6427 case 221: 6428 #line 1666 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6429 { 6430 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); 6431 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6432 (yyval.interm.type).basicType = EbtFloat; 6433 (yyval.interm.type).setVector(3); 6434 } 6435 #line 6436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6436 break; 6437 6438 case 222: 6439 #line 1672 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6440 { 6441 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); 6442 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6443 (yyval.interm.type).basicType = EbtFloat; 6444 (yyval.interm.type).setVector(4); 6445 } 6446 #line 6447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6447 break; 6448 6449 case 223: 6450 #line 1678 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6451 { 6452 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); 6453 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6454 (yyval.interm.type).basicType = EbtDouble; 6455 (yyval.interm.type).setVector(2); 6456 } 6457 #line 6458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6458 break; 6459 6460 case 224: 6461 #line 1684 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6462 { 6463 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); 6464 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6465 (yyval.interm.type).basicType = EbtDouble; 6466 (yyval.interm.type).setVector(3); 6467 } 6468 #line 6469 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6469 break; 6470 6471 case 225: 6472 #line 1690 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6473 { 6474 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); 6475 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6476 (yyval.interm.type).basicType = EbtDouble; 6477 (yyval.interm.type).setVector(4); 6478 } 6479 #line 6480 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6480 break; 6481 6482 case 226: 6483 #line 1696 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6484 { 6485 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6486 (yyval.interm.type).basicType = EbtBool; 6487 (yyval.interm.type).setVector(2); 6488 } 6489 #line 6490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6490 break; 6491 6492 case 227: 6493 #line 1701 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6494 { 6495 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6496 (yyval.interm.type).basicType = EbtBool; 6497 (yyval.interm.type).setVector(3); 6498 } 6499 #line 6500 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6500 break; 6501 6502 case 228: 6503 #line 1706 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6504 { 6505 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6506 (yyval.interm.type).basicType = EbtBool; 6507 (yyval.interm.type).setVector(4); 6508 } 6509 #line 6510 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6510 break; 6511 6512 case 229: 6513 #line 1711 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6514 { 6515 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6516 (yyval.interm.type).basicType = EbtInt; 6517 (yyval.interm.type).setVector(2); 6518 } 6519 #line 6520 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6520 break; 6521 6522 case 230: 6523 #line 1716 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6524 { 6525 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6526 (yyval.interm.type).basicType = EbtInt; 6527 (yyval.interm.type).setVector(3); 6528 } 6529 #line 6530 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6530 break; 6531 6532 case 231: 6533 #line 1721 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6534 { 6535 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6536 (yyval.interm.type).basicType = EbtInt; 6537 (yyval.interm.type).setVector(4); 6538 } 6539 #line 6540 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6540 break; 6541 6542 case 232: 6543 #line 1726 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6544 { 6545 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); 6546 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6547 (yyval.interm.type).basicType = EbtInt8; 6548 (yyval.interm.type).setVector(2); 6549 } 6550 #line 6551 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6551 break; 6552 6553 case 233: 6554 #line 1732 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6555 { 6556 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); 6557 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6558 (yyval.interm.type).basicType = EbtInt8; 6559 (yyval.interm.type).setVector(3); 6560 } 6561 #line 6562 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6562 break; 6563 6564 case 234: 6565 #line 1738 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6566 { 6567 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); 6568 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6569 (yyval.interm.type).basicType = EbtInt8; 6570 (yyval.interm.type).setVector(4); 6571 } 6572 #line 6573 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6573 break; 6574 6575 case 235: 6576 #line 1744 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6577 { 6578 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); 6579 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6580 (yyval.interm.type).basicType = EbtInt16; 6581 (yyval.interm.type).setVector(2); 6582 } 6583 #line 6584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6584 break; 6585 6586 case 236: 6587 #line 1750 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6588 { 6589 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); 6590 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6591 (yyval.interm.type).basicType = EbtInt16; 6592 (yyval.interm.type).setVector(3); 6593 } 6594 #line 6595 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6595 break; 6596 6597 case 237: 6598 #line 1756 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6599 { 6600 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); 6601 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6602 (yyval.interm.type).basicType = EbtInt16; 6603 (yyval.interm.type).setVector(4); 6604 } 6605 #line 6606 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6606 break; 6607 6608 case 238: 6609 #line 1762 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6610 { 6611 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); 6612 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6613 (yyval.interm.type).basicType = EbtInt; 6614 (yyval.interm.type).setVector(2); 6615 } 6616 #line 6617 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6617 break; 6618 6619 case 239: 6620 #line 1768 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6621 { 6622 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); 6623 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6624 (yyval.interm.type).basicType = EbtInt; 6625 (yyval.interm.type).setVector(3); 6626 } 6627 #line 6628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6628 break; 6629 6630 case 240: 6631 #line 1774 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6632 { 6633 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); 6634 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6635 (yyval.interm.type).basicType = EbtInt; 6636 (yyval.interm.type).setVector(4); 6637 } 6638 #line 6639 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6639 break; 6640 6641 case 241: 6642 #line 1780 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6643 { 6644 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); 6645 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6646 (yyval.interm.type).basicType = EbtInt64; 6647 (yyval.interm.type).setVector(2); 6648 } 6649 #line 6650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6650 break; 6651 6652 case 242: 6653 #line 1786 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6654 { 6655 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); 6656 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6657 (yyval.interm.type).basicType = EbtInt64; 6658 (yyval.interm.type).setVector(3); 6659 } 6660 #line 6661 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6661 break; 6662 6663 case 243: 6664 #line 1792 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6665 { 6666 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); 6667 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6668 (yyval.interm.type).basicType = EbtInt64; 6669 (yyval.interm.type).setVector(4); 6670 } 6671 #line 6672 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6672 break; 6673 6674 case 244: 6675 #line 1798 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6676 { 6677 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); 6678 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6679 (yyval.interm.type).basicType = EbtUint; 6680 (yyval.interm.type).setVector(2); 6681 } 6682 #line 6683 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6683 break; 6684 6685 case 245: 6686 #line 1804 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6687 { 6688 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); 6689 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6690 (yyval.interm.type).basicType = EbtUint; 6691 (yyval.interm.type).setVector(3); 6692 } 6693 #line 6694 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6694 break; 6695 6696 case 246: 6697 #line 1810 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6698 { 6699 parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); 6700 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6701 (yyval.interm.type).basicType = EbtUint; 6702 (yyval.interm.type).setVector(4); 6703 } 6704 #line 6705 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6705 break; 6706 6707 case 247: 6708 #line 1816 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6709 { 6710 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); 6711 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6712 (yyval.interm.type).basicType = EbtUint8; 6713 (yyval.interm.type).setVector(2); 6714 } 6715 #line 6716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6716 break; 6717 6718 case 248: 6719 #line 1822 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6720 { 6721 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); 6722 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6723 (yyval.interm.type).basicType = EbtUint8; 6724 (yyval.interm.type).setVector(3); 6725 } 6726 #line 6727 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6727 break; 6728 6729 case 249: 6730 #line 1828 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6731 { 6732 parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); 6733 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6734 (yyval.interm.type).basicType = EbtUint8; 6735 (yyval.interm.type).setVector(4); 6736 } 6737 #line 6738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6738 break; 6739 6740 case 250: 6741 #line 1834 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6742 { 6743 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); 6744 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6745 (yyval.interm.type).basicType = EbtUint16; 6746 (yyval.interm.type).setVector(2); 6747 } 6748 #line 6749 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6749 break; 6750 6751 case 251: 6752 #line 1840 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6753 { 6754 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); 6755 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6756 (yyval.interm.type).basicType = EbtUint16; 6757 (yyval.interm.type).setVector(3); 6758 } 6759 #line 6760 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6760 break; 6761 6762 case 252: 6763 #line 1846 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6764 { 6765 parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); 6766 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6767 (yyval.interm.type).basicType = EbtUint16; 6768 (yyval.interm.type).setVector(4); 6769 } 6770 #line 6771 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6771 break; 6772 6773 case 253: 6774 #line 1852 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6775 { 6776 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); 6777 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6778 (yyval.interm.type).basicType = EbtUint; 6779 (yyval.interm.type).setVector(2); 6780 } 6781 #line 6782 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6782 break; 6783 6784 case 254: 6785 #line 1858 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6786 { 6787 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); 6788 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6789 (yyval.interm.type).basicType = EbtUint; 6790 (yyval.interm.type).setVector(3); 6791 } 6792 #line 6793 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6793 break; 6794 6795 case 255: 6796 #line 1864 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6797 { 6798 parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); 6799 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6800 (yyval.interm.type).basicType = EbtUint; 6801 (yyval.interm.type).setVector(4); 6802 } 6803 #line 6804 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6804 break; 6805 6806 case 256: 6807 #line 1870 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6808 { 6809 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); 6810 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6811 (yyval.interm.type).basicType = EbtUint64; 6812 (yyval.interm.type).setVector(2); 6813 } 6814 #line 6815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6815 break; 6816 6817 case 257: 6818 #line 1876 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6819 { 6820 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); 6821 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6822 (yyval.interm.type).basicType = EbtUint64; 6823 (yyval.interm.type).setVector(3); 6824 } 6825 #line 6826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6826 break; 6827 6828 case 258: 6829 #line 1882 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6830 { 6831 parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); 6832 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6833 (yyval.interm.type).basicType = EbtUint64; 6834 (yyval.interm.type).setVector(4); 6835 } 6836 #line 6837 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6837 break; 6838 6839 case 259: 6840 #line 1888 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6841 { 6842 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6843 (yyval.interm.type).basicType = EbtFloat; 6844 (yyval.interm.type).setMatrix(2, 2); 6845 } 6846 #line 6847 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6847 break; 6848 6849 case 260: 6850 #line 1893 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6851 { 6852 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6853 (yyval.interm.type).basicType = EbtFloat; 6854 (yyval.interm.type).setMatrix(3, 3); 6855 } 6856 #line 6857 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6857 break; 6858 6859 case 261: 6860 #line 1898 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6861 { 6862 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6863 (yyval.interm.type).basicType = EbtFloat; 6864 (yyval.interm.type).setMatrix(4, 4); 6865 } 6866 #line 6867 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6867 break; 6868 6869 case 262: 6870 #line 1903 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6871 { 6872 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6873 (yyval.interm.type).basicType = EbtFloat; 6874 (yyval.interm.type).setMatrix(2, 2); 6875 } 6876 #line 6877 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6877 break; 6878 6879 case 263: 6880 #line 1908 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6881 { 6882 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6883 (yyval.interm.type).basicType = EbtFloat; 6884 (yyval.interm.type).setMatrix(2, 3); 6885 } 6886 #line 6887 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6887 break; 6888 6889 case 264: 6890 #line 1913 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6891 { 6892 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6893 (yyval.interm.type).basicType = EbtFloat; 6894 (yyval.interm.type).setMatrix(2, 4); 6895 } 6896 #line 6897 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6897 break; 6898 6899 case 265: 6900 #line 1918 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6901 { 6902 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6903 (yyval.interm.type).basicType = EbtFloat; 6904 (yyval.interm.type).setMatrix(3, 2); 6905 } 6906 #line 6907 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6907 break; 6908 6909 case 266: 6910 #line 1923 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6911 { 6912 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6913 (yyval.interm.type).basicType = EbtFloat; 6914 (yyval.interm.type).setMatrix(3, 3); 6915 } 6916 #line 6917 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6917 break; 6918 6919 case 267: 6920 #line 1928 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6921 { 6922 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6923 (yyval.interm.type).basicType = EbtFloat; 6924 (yyval.interm.type).setMatrix(3, 4); 6925 } 6926 #line 6927 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6927 break; 6928 6929 case 268: 6930 #line 1933 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6931 { 6932 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6933 (yyval.interm.type).basicType = EbtFloat; 6934 (yyval.interm.type).setMatrix(4, 2); 6935 } 6936 #line 6937 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6937 break; 6938 6939 case 269: 6940 #line 1938 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6941 { 6942 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6943 (yyval.interm.type).basicType = EbtFloat; 6944 (yyval.interm.type).setMatrix(4, 3); 6945 } 6946 #line 6947 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6947 break; 6948 6949 case 270: 6950 #line 1943 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6951 { 6952 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6953 (yyval.interm.type).basicType = EbtFloat; 6954 (yyval.interm.type).setMatrix(4, 4); 6955 } 6956 #line 6957 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6957 break; 6958 6959 case 271: 6960 #line 1948 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6961 { 6962 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); 6963 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6964 (yyval.interm.type).basicType = EbtDouble; 6965 (yyval.interm.type).setMatrix(2, 2); 6966 } 6967 #line 6968 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6968 break; 6969 6970 case 272: 6971 #line 1954 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6972 { 6973 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); 6974 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6975 (yyval.interm.type).basicType = EbtDouble; 6976 (yyval.interm.type).setMatrix(3, 3); 6977 } 6978 #line 6979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6979 break; 6980 6981 case 273: 6982 #line 1960 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6983 { 6984 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); 6985 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6986 (yyval.interm.type).basicType = EbtDouble; 6987 (yyval.interm.type).setMatrix(4, 4); 6988 } 6989 #line 6990 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 6990 break; 6991 6992 case 274: 6993 #line 1966 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 6994 { 6995 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); 6996 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 6997 (yyval.interm.type).basicType = EbtDouble; 6998 (yyval.interm.type).setMatrix(2, 2); 6999 } 7000 #line 7001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7001 break; 7002 7003 case 275: 7004 #line 1972 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7005 { 7006 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); 7007 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7008 (yyval.interm.type).basicType = EbtDouble; 7009 (yyval.interm.type).setMatrix(2, 3); 7010 } 7011 #line 7012 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7012 break; 7013 7014 case 276: 7015 #line 1978 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7016 { 7017 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); 7018 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7019 (yyval.interm.type).basicType = EbtDouble; 7020 (yyval.interm.type).setMatrix(2, 4); 7021 } 7022 #line 7023 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7023 break; 7024 7025 case 277: 7026 #line 1984 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7027 { 7028 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); 7029 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7030 (yyval.interm.type).basicType = EbtDouble; 7031 (yyval.interm.type).setMatrix(3, 2); 7032 } 7033 #line 7034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7034 break; 7035 7036 case 278: 7037 #line 1990 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7038 { 7039 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); 7040 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7041 (yyval.interm.type).basicType = EbtDouble; 7042 (yyval.interm.type).setMatrix(3, 3); 7043 } 7044 #line 7045 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7045 break; 7046 7047 case 279: 7048 #line 1996 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7049 { 7050 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); 7051 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7052 (yyval.interm.type).basicType = EbtDouble; 7053 (yyval.interm.type).setMatrix(3, 4); 7054 } 7055 #line 7056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7056 break; 7057 7058 case 280: 7059 #line 2002 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7060 { 7061 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); 7062 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7063 (yyval.interm.type).basicType = EbtDouble; 7064 (yyval.interm.type).setMatrix(4, 2); 7065 } 7066 #line 7067 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7067 break; 7068 7069 case 281: 7070 #line 2008 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7071 { 7072 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); 7073 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7074 (yyval.interm.type).basicType = EbtDouble; 7075 (yyval.interm.type).setMatrix(4, 3); 7076 } 7077 #line 7078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7078 break; 7079 7080 case 282: 7081 #line 2014 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7082 { 7083 parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); 7084 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7085 (yyval.interm.type).basicType = EbtDouble; 7086 (yyval.interm.type).setMatrix(4, 4); 7087 } 7088 #line 7089 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7089 break; 7090 7091 case 283: 7092 #line 2020 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7093 { 7094 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); 7095 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7096 (yyval.interm.type).basicType = EbtFloat16; 7097 (yyval.interm.type).setMatrix(2, 2); 7098 } 7099 #line 7100 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7100 break; 7101 7102 case 284: 7103 #line 2026 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7104 { 7105 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); 7106 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7107 (yyval.interm.type).basicType = EbtFloat16; 7108 (yyval.interm.type).setMatrix(3, 3); 7109 } 7110 #line 7111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7111 break; 7112 7113 case 285: 7114 #line 2032 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7115 { 7116 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); 7117 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7118 (yyval.interm.type).basicType = EbtFloat16; 7119 (yyval.interm.type).setMatrix(4, 4); 7120 } 7121 #line 7122 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7122 break; 7123 7124 case 286: 7125 #line 2038 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7126 { 7127 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); 7128 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7129 (yyval.interm.type).basicType = EbtFloat16; 7130 (yyval.interm.type).setMatrix(2, 2); 7131 } 7132 #line 7133 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7133 break; 7134 7135 case 287: 7136 #line 2044 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7137 { 7138 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); 7139 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7140 (yyval.interm.type).basicType = EbtFloat16; 7141 (yyval.interm.type).setMatrix(2, 3); 7142 } 7143 #line 7144 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7144 break; 7145 7146 case 288: 7147 #line 2050 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7148 { 7149 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); 7150 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7151 (yyval.interm.type).basicType = EbtFloat16; 7152 (yyval.interm.type).setMatrix(2, 4); 7153 } 7154 #line 7155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7155 break; 7156 7157 case 289: 7158 #line 2056 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7159 { 7160 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); 7161 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7162 (yyval.interm.type).basicType = EbtFloat16; 7163 (yyval.interm.type).setMatrix(3, 2); 7164 } 7165 #line 7166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7166 break; 7167 7168 case 290: 7169 #line 2062 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7170 { 7171 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); 7172 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7173 (yyval.interm.type).basicType = EbtFloat16; 7174 (yyval.interm.type).setMatrix(3, 3); 7175 } 7176 #line 7177 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7177 break; 7178 7179 case 291: 7180 #line 2068 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7181 { 7182 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); 7183 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7184 (yyval.interm.type).basicType = EbtFloat16; 7185 (yyval.interm.type).setMatrix(3, 4); 7186 } 7187 #line 7188 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7188 break; 7189 7190 case 292: 7191 #line 2074 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7192 { 7193 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); 7194 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7195 (yyval.interm.type).basicType = EbtFloat16; 7196 (yyval.interm.type).setMatrix(4, 2); 7197 } 7198 #line 7199 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7199 break; 7200 7201 case 293: 7202 #line 2080 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7203 { 7204 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); 7205 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7206 (yyval.interm.type).basicType = EbtFloat16; 7207 (yyval.interm.type).setMatrix(4, 3); 7208 } 7209 #line 7210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7210 break; 7211 7212 case 294: 7213 #line 2086 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7214 { 7215 parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); 7216 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7217 (yyval.interm.type).basicType = EbtFloat16; 7218 (yyval.interm.type).setMatrix(4, 4); 7219 } 7220 #line 7221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7221 break; 7222 7223 case 295: 7224 #line 2092 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7225 { 7226 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7227 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7228 (yyval.interm.type).basicType = EbtFloat; 7229 (yyval.interm.type).setMatrix(2, 2); 7230 } 7231 #line 7232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7232 break; 7233 7234 case 296: 7235 #line 2098 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7236 { 7237 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7238 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7239 (yyval.interm.type).basicType = EbtFloat; 7240 (yyval.interm.type).setMatrix(3, 3); 7241 } 7242 #line 7243 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7243 break; 7244 7245 case 297: 7246 #line 2104 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7247 { 7248 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7249 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7250 (yyval.interm.type).basicType = EbtFloat; 7251 (yyval.interm.type).setMatrix(4, 4); 7252 } 7253 #line 7254 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7254 break; 7255 7256 case 298: 7257 #line 2110 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7258 { 7259 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7260 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7261 (yyval.interm.type).basicType = EbtFloat; 7262 (yyval.interm.type).setMatrix(2, 2); 7263 } 7264 #line 7265 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7265 break; 7266 7267 case 299: 7268 #line 2116 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7269 { 7270 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7271 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7272 (yyval.interm.type).basicType = EbtFloat; 7273 (yyval.interm.type).setMatrix(2, 3); 7274 } 7275 #line 7276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7276 break; 7277 7278 case 300: 7279 #line 2122 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7280 { 7281 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7282 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7283 (yyval.interm.type).basicType = EbtFloat; 7284 (yyval.interm.type).setMatrix(2, 4); 7285 } 7286 #line 7287 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7287 break; 7288 7289 case 301: 7290 #line 2128 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7291 { 7292 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7293 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7294 (yyval.interm.type).basicType = EbtFloat; 7295 (yyval.interm.type).setMatrix(3, 2); 7296 } 7297 #line 7298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7298 break; 7299 7300 case 302: 7301 #line 2134 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7302 { 7303 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7304 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7305 (yyval.interm.type).basicType = EbtFloat; 7306 (yyval.interm.type).setMatrix(3, 3); 7307 } 7308 #line 7309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7309 break; 7310 7311 case 303: 7312 #line 2140 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7313 { 7314 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7315 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7316 (yyval.interm.type).basicType = EbtFloat; 7317 (yyval.interm.type).setMatrix(3, 4); 7318 } 7319 #line 7320 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7320 break; 7321 7322 case 304: 7323 #line 2146 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7324 { 7325 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7326 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7327 (yyval.interm.type).basicType = EbtFloat; 7328 (yyval.interm.type).setMatrix(4, 2); 7329 } 7330 #line 7331 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7331 break; 7332 7333 case 305: 7334 #line 2152 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7335 { 7336 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7337 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7338 (yyval.interm.type).basicType = EbtFloat; 7339 (yyval.interm.type).setMatrix(4, 3); 7340 } 7341 #line 7342 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7342 break; 7343 7344 case 306: 7345 #line 2158 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7346 { 7347 parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7348 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7349 (yyval.interm.type).basicType = EbtFloat; 7350 (yyval.interm.type).setMatrix(4, 4); 7351 } 7352 #line 7353 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7353 break; 7354 7355 case 307: 7356 #line 2164 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7357 { 7358 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7359 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7360 (yyval.interm.type).basicType = EbtDouble; 7361 (yyval.interm.type).setMatrix(2, 2); 7362 } 7363 #line 7364 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7364 break; 7365 7366 case 308: 7367 #line 2170 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7368 { 7369 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7370 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7371 (yyval.interm.type).basicType = EbtDouble; 7372 (yyval.interm.type).setMatrix(3, 3); 7373 } 7374 #line 7375 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7375 break; 7376 7377 case 309: 7378 #line 2176 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7379 { 7380 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7381 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7382 (yyval.interm.type).basicType = EbtDouble; 7383 (yyval.interm.type).setMatrix(4, 4); 7384 } 7385 #line 7386 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7386 break; 7387 7388 case 310: 7389 #line 2182 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7390 { 7391 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7392 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7393 (yyval.interm.type).basicType = EbtDouble; 7394 (yyval.interm.type).setMatrix(2, 2); 7395 } 7396 #line 7397 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7397 break; 7398 7399 case 311: 7400 #line 2188 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7401 { 7402 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7403 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7404 (yyval.interm.type).basicType = EbtDouble; 7405 (yyval.interm.type).setMatrix(2, 3); 7406 } 7407 #line 7408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7408 break; 7409 7410 case 312: 7411 #line 2194 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7412 { 7413 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7414 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7415 (yyval.interm.type).basicType = EbtDouble; 7416 (yyval.interm.type).setMatrix(2, 4); 7417 } 7418 #line 7419 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7419 break; 7420 7421 case 313: 7422 #line 2200 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7423 { 7424 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7425 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7426 (yyval.interm.type).basicType = EbtDouble; 7427 (yyval.interm.type).setMatrix(3, 2); 7428 } 7429 #line 7430 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7430 break; 7431 7432 case 314: 7433 #line 2206 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7434 { 7435 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7436 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7437 (yyval.interm.type).basicType = EbtDouble; 7438 (yyval.interm.type).setMatrix(3, 3); 7439 } 7440 #line 7441 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7441 break; 7442 7443 case 315: 7444 #line 2212 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7445 { 7446 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7447 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7448 (yyval.interm.type).basicType = EbtDouble; 7449 (yyval.interm.type).setMatrix(3, 4); 7450 } 7451 #line 7452 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7452 break; 7453 7454 case 316: 7455 #line 2218 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7456 { 7457 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7458 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7459 (yyval.interm.type).basicType = EbtDouble; 7460 (yyval.interm.type).setMatrix(4, 2); 7461 } 7462 #line 7463 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7463 break; 7464 7465 case 317: 7466 #line 2224 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7467 { 7468 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7469 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7470 (yyval.interm.type).basicType = EbtDouble; 7471 (yyval.interm.type).setMatrix(4, 3); 7472 } 7473 #line 7474 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7474 break; 7475 7476 case 318: 7477 #line 2230 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7478 { 7479 parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); 7480 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7481 (yyval.interm.type).basicType = EbtDouble; 7482 (yyval.interm.type).setMatrix(4, 4); 7483 } 7484 #line 7485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7485 break; 7486 7487 case 319: 7488 #line 2236 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7489 { 7490 #ifdef NV_EXTENSIONS 7491 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7492 (yyval.interm.type).basicType = EbtAccStructNV; 7493 #endif 7494 } 7495 #line 7496 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7496 break; 7497 7498 case 320: 7499 #line 2242 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7500 { 7501 parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types"); 7502 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7503 (yyval.interm.type).basicType = EbtAtomicUint; 7504 } 7505 #line 7506 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7506 break; 7507 7508 case 321: 7509 #line 2247 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7510 { 7511 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7512 (yyval.interm.type).basicType = EbtSampler; 7513 (yyval.interm.type).sampler.set(EbtFloat, Esd1D); 7514 } 7515 #line 7516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7516 break; 7517 7518 case 322: 7519 #line 2252 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7520 { 7521 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7522 (yyval.interm.type).basicType = EbtSampler; 7523 (yyval.interm.type).sampler.set(EbtFloat, Esd2D); 7524 } 7525 #line 7526 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7526 break; 7527 7528 case 323: 7529 #line 2257 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7530 { 7531 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7532 (yyval.interm.type).basicType = EbtSampler; 7533 (yyval.interm.type).sampler.set(EbtFloat, Esd3D); 7534 } 7535 #line 7536 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7536 break; 7537 7538 case 324: 7539 #line 2262 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7540 { 7541 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7542 (yyval.interm.type).basicType = EbtSampler; 7543 (yyval.interm.type).sampler.set(EbtFloat, EsdCube); 7544 } 7545 #line 7546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7546 break; 7547 7548 case 325: 7549 #line 2267 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7550 { 7551 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7552 (yyval.interm.type).basicType = EbtSampler; 7553 (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true); 7554 } 7555 #line 7556 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7556 break; 7557 7558 case 326: 7559 #line 2272 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7560 { 7561 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7562 (yyval.interm.type).basicType = EbtSampler; 7563 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true); 7564 } 7565 #line 7566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7566 break; 7567 7568 case 327: 7569 #line 2277 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7570 { 7571 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7572 (yyval.interm.type).basicType = EbtSampler; 7573 (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true); 7574 } 7575 #line 7576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7576 break; 7577 7578 case 328: 7579 #line 2282 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7580 { 7581 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7582 (yyval.interm.type).basicType = EbtSampler; 7583 (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true); 7584 } 7585 #line 7586 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7586 break; 7587 7588 case 329: 7589 #line 2287 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7590 { 7591 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7592 (yyval.interm.type).basicType = EbtSampler; 7593 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); 7594 } 7595 #line 7596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7596 break; 7597 7598 case 330: 7599 #line 2292 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7600 { 7601 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7602 (yyval.interm.type).basicType = EbtSampler; 7603 (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true); 7604 } 7605 #line 7606 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7606 break; 7607 7608 case 331: 7609 #line 2297 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7610 { 7611 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7612 (yyval.interm.type).basicType = EbtSampler; 7613 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true); 7614 } 7615 #line 7616 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7616 break; 7617 7618 case 332: 7619 #line 2302 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7620 { 7621 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7622 (yyval.interm.type).basicType = EbtSampler; 7623 (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true); 7624 } 7625 #line 7626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7626 break; 7627 7628 case 333: 7629 #line 2307 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7630 { 7631 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7632 (yyval.interm.type).basicType = EbtSampler; 7633 (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true); 7634 } 7635 #line 7636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7636 break; 7637 7638 case 334: 7639 #line 2312 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7640 { 7641 #ifdef AMD_EXTENSIONS 7642 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); 7643 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7644 (yyval.interm.type).basicType = EbtSampler; 7645 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D); 7646 #endif 7647 } 7648 #line 7649 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7649 break; 7650 7651 case 335: 7652 #line 2320 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7653 { 7654 #ifdef AMD_EXTENSIONS 7655 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); 7656 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7657 (yyval.interm.type).basicType = EbtSampler; 7658 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D); 7659 #endif 7660 } 7661 #line 7662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7662 break; 7663 7664 case 336: 7665 #line 2328 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7666 { 7667 #ifdef AMD_EXTENSIONS 7668 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); 7669 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7670 (yyval.interm.type).basicType = EbtSampler; 7671 (yyval.interm.type).sampler.set(EbtFloat16, Esd3D); 7672 #endif 7673 } 7674 #line 7675 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7675 break; 7676 7677 case 337: 7678 #line 2336 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7679 { 7680 #ifdef AMD_EXTENSIONS 7681 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); 7682 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7683 (yyval.interm.type).basicType = EbtSampler; 7684 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube); 7685 #endif 7686 } 7687 #line 7688 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7688 break; 7689 7690 case 338: 7691 #line 2344 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7692 { 7693 #ifdef AMD_EXTENSIONS 7694 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); 7695 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7696 (yyval.interm.type).basicType = EbtSampler; 7697 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true); 7698 #endif 7699 } 7700 #line 7701 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7701 break; 7702 7703 case 339: 7704 #line 2352 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7705 { 7706 #ifdef AMD_EXTENSIONS 7707 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); 7708 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7709 (yyval.interm.type).basicType = EbtSampler; 7710 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true); 7711 #endif 7712 } 7713 #line 7714 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7714 break; 7715 7716 case 340: 7717 #line 2360 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7718 { 7719 #ifdef AMD_EXTENSIONS 7720 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); 7721 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7722 (yyval.interm.type).basicType = EbtSampler; 7723 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true); 7724 #endif 7725 } 7726 #line 7727 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7727 break; 7728 7729 case 341: 7730 #line 2368 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7731 { 7732 #ifdef AMD_EXTENSIONS 7733 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); 7734 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7735 (yyval.interm.type).basicType = EbtSampler; 7736 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true); 7737 #endif 7738 } 7739 #line 7740 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7740 break; 7741 7742 case 342: 7743 #line 2376 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7744 { 7745 #ifdef AMD_EXTENSIONS 7746 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); 7747 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7748 (yyval.interm.type).basicType = EbtSampler; 7749 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true); 7750 #endif 7751 } 7752 #line 7753 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7753 break; 7754 7755 case 343: 7756 #line 2384 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7757 { 7758 #ifdef AMD_EXTENSIONS 7759 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); 7760 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7761 (yyval.interm.type).basicType = EbtSampler; 7762 (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true); 7763 #endif 7764 } 7765 #line 7766 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7766 break; 7767 7768 case 344: 7769 #line 2392 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7770 { 7771 #ifdef AMD_EXTENSIONS 7772 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); 7773 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7774 (yyval.interm.type).basicType = EbtSampler; 7775 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true); 7776 #endif 7777 } 7778 #line 7779 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7779 break; 7780 7781 case 345: 7782 #line 2400 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7783 { 7784 #ifdef AMD_EXTENSIONS 7785 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); 7786 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7787 (yyval.interm.type).basicType = EbtSampler; 7788 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true); 7789 #endif 7790 } 7791 #line 7792 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7792 break; 7793 7794 case 346: 7795 #line 2408 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7796 { 7797 #ifdef AMD_EXTENSIONS 7798 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); 7799 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7800 (yyval.interm.type).basicType = EbtSampler; 7801 (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true); 7802 #endif 7803 } 7804 #line 7805 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7805 break; 7806 7807 case 347: 7808 #line 2416 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7809 { 7810 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7811 (yyval.interm.type).basicType = EbtSampler; 7812 (yyval.interm.type).sampler.set(EbtInt, Esd1D); 7813 } 7814 #line 7815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7815 break; 7816 7817 case 348: 7818 #line 2421 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7819 { 7820 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7821 (yyval.interm.type).basicType = EbtSampler; 7822 (yyval.interm.type).sampler.set(EbtInt, Esd2D); 7823 } 7824 #line 7825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7825 break; 7826 7827 case 349: 7828 #line 2426 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7829 { 7830 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7831 (yyval.interm.type).basicType = EbtSampler; 7832 (yyval.interm.type).sampler.set(EbtInt, Esd3D); 7833 } 7834 #line 7835 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7835 break; 7836 7837 case 350: 7838 #line 2431 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7839 { 7840 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7841 (yyval.interm.type).basicType = EbtSampler; 7842 (yyval.interm.type).sampler.set(EbtInt, EsdCube); 7843 } 7844 #line 7845 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7845 break; 7846 7847 case 351: 7848 #line 2436 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7849 { 7850 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7851 (yyval.interm.type).basicType = EbtSampler; 7852 (yyval.interm.type).sampler.set(EbtInt, Esd1D, true); 7853 } 7854 #line 7855 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7855 break; 7856 7857 case 352: 7858 #line 2441 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7859 { 7860 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7861 (yyval.interm.type).basicType = EbtSampler; 7862 (yyval.interm.type).sampler.set(EbtInt, Esd2D, true); 7863 } 7864 #line 7865 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7865 break; 7866 7867 case 353: 7868 #line 2446 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7869 { 7870 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7871 (yyval.interm.type).basicType = EbtSampler; 7872 (yyval.interm.type).sampler.set(EbtInt, EsdCube, true); 7873 } 7874 #line 7875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7875 break; 7876 7877 case 354: 7878 #line 2451 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7879 { 7880 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7881 (yyval.interm.type).basicType = EbtSampler; 7882 (yyval.interm.type).sampler.set(EbtUint, Esd1D); 7883 } 7884 #line 7885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7885 break; 7886 7887 case 355: 7888 #line 2456 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7889 { 7890 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7891 (yyval.interm.type).basicType = EbtSampler; 7892 (yyval.interm.type).sampler.set(EbtUint, Esd2D); 7893 } 7894 #line 7895 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7895 break; 7896 7897 case 356: 7898 #line 2461 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7899 { 7900 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7901 (yyval.interm.type).basicType = EbtSampler; 7902 (yyval.interm.type).sampler.set(EbtUint, Esd3D); 7903 } 7904 #line 7905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7905 break; 7906 7907 case 357: 7908 #line 2466 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7909 { 7910 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7911 (yyval.interm.type).basicType = EbtSampler; 7912 (yyval.interm.type).sampler.set(EbtUint, EsdCube); 7913 } 7914 #line 7915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7915 break; 7916 7917 case 358: 7918 #line 2471 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7919 { 7920 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7921 (yyval.interm.type).basicType = EbtSampler; 7922 (yyval.interm.type).sampler.set(EbtUint, Esd1D, true); 7923 } 7924 #line 7925 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7925 break; 7926 7927 case 359: 7928 #line 2476 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7929 { 7930 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7931 (yyval.interm.type).basicType = EbtSampler; 7932 (yyval.interm.type).sampler.set(EbtUint, Esd2D, true); 7933 } 7934 #line 7935 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7935 break; 7936 7937 case 360: 7938 #line 2481 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7939 { 7940 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7941 (yyval.interm.type).basicType = EbtSampler; 7942 (yyval.interm.type).sampler.set(EbtUint, EsdCube, true); 7943 } 7944 #line 7945 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7945 break; 7946 7947 case 361: 7948 #line 2486 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7949 { 7950 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7951 (yyval.interm.type).basicType = EbtSampler; 7952 (yyval.interm.type).sampler.set(EbtFloat, EsdRect); 7953 } 7954 #line 7955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7955 break; 7956 7957 case 362: 7958 #line 2491 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7959 { 7960 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7961 (yyval.interm.type).basicType = EbtSampler; 7962 (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true); 7963 } 7964 #line 7965 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7965 break; 7966 7967 case 363: 7968 #line 2496 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7969 { 7970 #ifdef AMD_EXTENSIONS 7971 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); 7972 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7973 (yyval.interm.type).basicType = EbtSampler; 7974 (yyval.interm.type).sampler.set(EbtFloat16, EsdRect); 7975 #endif 7976 } 7977 #line 7978 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7978 break; 7979 7980 case 364: 7981 #line 2504 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7982 { 7983 #ifdef AMD_EXTENSIONS 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, EsdRect, false, true); 7988 #endif 7989 } 7990 #line 7991 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 7991 break; 7992 7993 case 365: 7994 #line 2512 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 7995 { 7996 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 7997 (yyval.interm.type).basicType = EbtSampler; 7998 (yyval.interm.type).sampler.set(EbtInt, EsdRect); 7999 } 8000 #line 8001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8001 break; 8002 8003 case 366: 8004 #line 2517 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8005 { 8006 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8007 (yyval.interm.type).basicType = EbtSampler; 8008 (yyval.interm.type).sampler.set(EbtUint, EsdRect); 8009 } 8010 #line 8011 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8011 break; 8012 8013 case 367: 8014 #line 2522 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8015 { 8016 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8017 (yyval.interm.type).basicType = EbtSampler; 8018 (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer); 8019 } 8020 #line 8021 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8021 break; 8022 8023 case 368: 8024 #line 2527 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8025 { 8026 #ifdef AMD_EXTENSIONS 8027 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); 8028 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8029 (yyval.interm.type).basicType = EbtSampler; 8030 (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer); 8031 #endif 8032 } 8033 #line 8034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8034 break; 8035 8036 case 369: 8037 #line 2535 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8038 { 8039 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8040 (yyval.interm.type).basicType = EbtSampler; 8041 (yyval.interm.type).sampler.set(EbtInt, EsdBuffer); 8042 } 8043 #line 8044 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8044 break; 8045 8046 case 370: 8047 #line 2540 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8048 { 8049 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8050 (yyval.interm.type).basicType = EbtSampler; 8051 (yyval.interm.type).sampler.set(EbtUint, EsdBuffer); 8052 } 8053 #line 8054 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8054 break; 8055 8056 case 371: 8057 #line 2545 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8058 { 8059 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8060 (yyval.interm.type).basicType = EbtSampler; 8061 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true); 8062 } 8063 #line 8064 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8064 break; 8065 8066 case 372: 8067 #line 2550 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8068 { 8069 #ifdef AMD_EXTENSIONS 8070 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); 8071 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8072 (yyval.interm.type).basicType = EbtSampler; 8073 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true); 8074 #endif 8075 } 8076 #line 8077 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8077 break; 8078 8079 case 373: 8080 #line 2558 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8081 { 8082 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8083 (yyval.interm.type).basicType = EbtSampler; 8084 (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true); 8085 } 8086 #line 8087 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8087 break; 8088 8089 case 374: 8090 #line 2563 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8091 { 8092 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8093 (yyval.interm.type).basicType = EbtSampler; 8094 (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true); 8095 } 8096 #line 8097 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8097 break; 8098 8099 case 375: 8100 #line 2568 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8101 { 8102 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8103 (yyval.interm.type).basicType = EbtSampler; 8104 (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true); 8105 } 8106 #line 8107 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8107 break; 8108 8109 case 376: 8110 #line 2573 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8111 { 8112 #ifdef AMD_EXTENSIONS 8113 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); 8114 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8115 (yyval.interm.type).basicType = EbtSampler; 8116 (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true); 8117 #endif 8118 } 8119 #line 8120 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8120 break; 8121 8122 case 377: 8123 #line 2581 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8124 { 8125 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8126 (yyval.interm.type).basicType = EbtSampler; 8127 (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true); 8128 } 8129 #line 8130 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8130 break; 8131 8132 case 378: 8133 #line 2586 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8134 { 8135 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8136 (yyval.interm.type).basicType = EbtSampler; 8137 (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true); 8138 } 8139 #line 8140 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8140 break; 8141 8142 case 379: 8143 #line 2591 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8144 { 8145 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8146 (yyval.interm.type).basicType = EbtSampler; 8147 (yyval.interm.type).sampler.setPureSampler(false); 8148 } 8149 #line 8150 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8150 break; 8151 8152 case 380: 8153 #line 2596 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8154 { 8155 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8156 (yyval.interm.type).basicType = EbtSampler; 8157 (yyval.interm.type).sampler.setPureSampler(true); 8158 } 8159 #line 8160 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8160 break; 8161 8162 case 381: 8163 #line 2601 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8164 { 8165 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8166 (yyval.interm.type).basicType = EbtSampler; 8167 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D); 8168 } 8169 #line 8170 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8170 break; 8171 8172 case 382: 8173 #line 2606 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8174 { 8175 #ifdef AMD_EXTENSIONS 8176 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); 8177 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8178 (yyval.interm.type).basicType = EbtSampler; 8179 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D); 8180 #endif 8181 } 8182 #line 8183 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8183 break; 8184 8185 case 383: 8186 #line 2614 "MachineIndependent/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.setTexture(EbtFloat, Esd2D); 8191 } 8192 #line 8193 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8193 break; 8194 8195 case 384: 8196 #line 2619 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8197 { 8198 #ifdef AMD_EXTENSIONS 8199 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); 8200 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8201 (yyval.interm.type).basicType = EbtSampler; 8202 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D); 8203 #endif 8204 } 8205 #line 8206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8206 break; 8207 8208 case 385: 8209 #line 2627 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8210 { 8211 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8212 (yyval.interm.type).basicType = EbtSampler; 8213 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); 8214 } 8215 #line 8216 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8216 break; 8217 8218 case 386: 8219 #line 2632 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8220 { 8221 #ifdef AMD_EXTENSIONS 8222 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); 8223 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8224 (yyval.interm.type).basicType = EbtSampler; 8225 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D); 8226 #endif 8227 } 8228 #line 8229 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8229 break; 8230 8231 case 387: 8232 #line 2640 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8233 { 8234 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8235 (yyval.interm.type).basicType = EbtSampler; 8236 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); 8237 } 8238 #line 8239 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8239 break; 8240 8241 case 388: 8242 #line 2645 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8243 { 8244 #ifdef AMD_EXTENSIONS 8245 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); 8246 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8247 (yyval.interm.type).basicType = EbtSampler; 8248 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube); 8249 #endif 8250 } 8251 #line 8252 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8252 break; 8253 8254 case 389: 8255 #line 2653 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8256 { 8257 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8258 (yyval.interm.type).basicType = EbtSampler; 8259 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true); 8260 } 8261 #line 8262 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8262 break; 8263 8264 case 390: 8265 #line 2658 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8266 { 8267 #ifdef AMD_EXTENSIONS 8268 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); 8269 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8270 (yyval.interm.type).basicType = EbtSampler; 8271 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true); 8272 #endif 8273 } 8274 #line 8275 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8275 break; 8276 8277 case 391: 8278 #line 2666 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8279 { 8280 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8281 (yyval.interm.type).basicType = EbtSampler; 8282 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true); 8283 } 8284 #line 8285 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8285 break; 8286 8287 case 392: 8288 #line 2671 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8289 { 8290 #ifdef AMD_EXTENSIONS 8291 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); 8292 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8293 (yyval.interm.type).basicType = EbtSampler; 8294 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true); 8295 #endif 8296 } 8297 #line 8298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8298 break; 8299 8300 case 393: 8301 #line 2679 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8302 { 8303 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8304 (yyval.interm.type).basicType = EbtSampler; 8305 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true); 8306 } 8307 #line 8308 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8308 break; 8309 8310 case 394: 8311 #line 2684 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8312 { 8313 #ifdef AMD_EXTENSIONS 8314 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); 8315 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8316 (yyval.interm.type).basicType = EbtSampler; 8317 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true); 8318 #endif 8319 } 8320 #line 8321 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8321 break; 8322 8323 case 395: 8324 #line 2692 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8325 { 8326 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8327 (yyval.interm.type).basicType = EbtSampler; 8328 (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D); 8329 } 8330 #line 8331 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8331 break; 8332 8333 case 396: 8334 #line 2697 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8335 { 8336 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8337 (yyval.interm.type).basicType = EbtSampler; 8338 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); 8339 } 8340 #line 8341 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8341 break; 8342 8343 case 397: 8344 #line 2702 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8345 { 8346 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8347 (yyval.interm.type).basicType = EbtSampler; 8348 (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); 8349 } 8350 #line 8351 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8351 break; 8352 8353 case 398: 8354 #line 2707 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8355 { 8356 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8357 (yyval.interm.type).basicType = EbtSampler; 8358 (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); 8359 } 8360 #line 8361 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8361 break; 8362 8363 case 399: 8364 #line 2712 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8365 { 8366 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8367 (yyval.interm.type).basicType = EbtSampler; 8368 (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true); 8369 } 8370 #line 8371 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8371 break; 8372 8373 case 400: 8374 #line 2717 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8375 { 8376 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8377 (yyval.interm.type).basicType = EbtSampler; 8378 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true); 8379 } 8380 #line 8381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8381 break; 8382 8383 case 401: 8384 #line 2722 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8385 { 8386 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8387 (yyval.interm.type).basicType = EbtSampler; 8388 (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true); 8389 } 8390 #line 8391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8391 break; 8392 8393 case 402: 8394 #line 2727 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8395 { 8396 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8397 (yyval.interm.type).basicType = EbtSampler; 8398 (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D); 8399 } 8400 #line 8401 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8401 break; 8402 8403 case 403: 8404 #line 2732 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8405 { 8406 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8407 (yyval.interm.type).basicType = EbtSampler; 8408 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); 8409 } 8410 #line 8411 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8411 break; 8412 8413 case 404: 8414 #line 2737 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8415 { 8416 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8417 (yyval.interm.type).basicType = EbtSampler; 8418 (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); 8419 } 8420 #line 8421 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8421 break; 8422 8423 case 405: 8424 #line 2742 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8425 { 8426 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8427 (yyval.interm.type).basicType = EbtSampler; 8428 (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); 8429 } 8430 #line 8431 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8431 break; 8432 8433 case 406: 8434 #line 2747 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8435 { 8436 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8437 (yyval.interm.type).basicType = EbtSampler; 8438 (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true); 8439 } 8440 #line 8441 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8441 break; 8442 8443 case 407: 8444 #line 2752 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8445 { 8446 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8447 (yyval.interm.type).basicType = EbtSampler; 8448 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true); 8449 } 8450 #line 8451 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8451 break; 8452 8453 case 408: 8454 #line 2757 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8455 { 8456 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8457 (yyval.interm.type).basicType = EbtSampler; 8458 (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true); 8459 } 8460 #line 8461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8461 break; 8462 8463 case 409: 8464 #line 2762 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8465 { 8466 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8467 (yyval.interm.type).basicType = EbtSampler; 8468 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect); 8469 } 8470 #line 8471 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8471 break; 8472 8473 case 410: 8474 #line 2767 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8475 { 8476 #ifdef AMD_EXTENSIONS 8477 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); 8478 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8479 (yyval.interm.type).basicType = EbtSampler; 8480 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect); 8481 #endif 8482 } 8483 #line 8484 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8484 break; 8485 8486 case 411: 8487 #line 2775 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8488 { 8489 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8490 (yyval.interm.type).basicType = EbtSampler; 8491 (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect); 8492 } 8493 #line 8494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8494 break; 8495 8496 case 412: 8497 #line 2780 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8498 { 8499 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8500 (yyval.interm.type).basicType = EbtSampler; 8501 (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect); 8502 } 8503 #line 8504 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8504 break; 8505 8506 case 413: 8507 #line 2785 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8508 { 8509 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8510 (yyval.interm.type).basicType = EbtSampler; 8511 (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer); 8512 } 8513 #line 8514 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8514 break; 8515 8516 case 414: 8517 #line 2790 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8518 { 8519 #ifdef AMD_EXTENSIONS 8520 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); 8521 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8522 (yyval.interm.type).basicType = EbtSampler; 8523 (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer); 8524 #endif 8525 } 8526 #line 8527 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8527 break; 8528 8529 case 415: 8530 #line 2798 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8531 { 8532 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8533 (yyval.interm.type).basicType = EbtSampler; 8534 (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer); 8535 } 8536 #line 8537 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8537 break; 8538 8539 case 416: 8540 #line 2803 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8541 { 8542 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8543 (yyval.interm.type).basicType = EbtSampler; 8544 (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer); 8545 } 8546 #line 8547 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8547 break; 8548 8549 case 417: 8550 #line 2808 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8551 { 8552 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8553 (yyval.interm.type).basicType = EbtSampler; 8554 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true); 8555 } 8556 #line 8557 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8557 break; 8558 8559 case 418: 8560 #line 2813 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8561 { 8562 #ifdef AMD_EXTENSIONS 8563 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); 8564 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8565 (yyval.interm.type).basicType = EbtSampler; 8566 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true); 8567 #endif 8568 } 8569 #line 8570 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8570 break; 8571 8572 case 419: 8573 #line 2821 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8574 { 8575 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8576 (yyval.interm.type).basicType = EbtSampler; 8577 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true); 8578 } 8579 #line 8580 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8580 break; 8581 8582 case 420: 8583 #line 2826 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8584 { 8585 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8586 (yyval.interm.type).basicType = EbtSampler; 8587 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true); 8588 } 8589 #line 8590 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8590 break; 8591 8592 case 421: 8593 #line 2831 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8594 { 8595 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8596 (yyval.interm.type).basicType = EbtSampler; 8597 (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true); 8598 } 8599 #line 8600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8600 break; 8601 8602 case 422: 8603 #line 2836 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8604 { 8605 #ifdef AMD_EXTENSIONS 8606 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); 8607 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8608 (yyval.interm.type).basicType = EbtSampler; 8609 (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true); 8610 #endif 8611 } 8612 #line 8613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8613 break; 8614 8615 case 423: 8616 #line 2844 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8617 { 8618 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8619 (yyval.interm.type).basicType = EbtSampler; 8620 (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true); 8621 } 8622 #line 8623 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8623 break; 8624 8625 case 424: 8626 #line 2849 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8627 { 8628 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8629 (yyval.interm.type).basicType = EbtSampler; 8630 (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true); 8631 } 8632 #line 8633 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8633 break; 8634 8635 case 425: 8636 #line 2854 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8637 { 8638 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8639 (yyval.interm.type).basicType = EbtSampler; 8640 (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D); 8641 } 8642 #line 8643 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8643 break; 8644 8645 case 426: 8646 #line 2859 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8647 { 8648 #ifdef AMD_EXTENSIONS 8649 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); 8650 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8651 (yyval.interm.type).basicType = EbtSampler; 8652 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D); 8653 #endif 8654 } 8655 #line 8656 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8656 break; 8657 8658 case 427: 8659 #line 2867 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8660 { 8661 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8662 (yyval.interm.type).basicType = EbtSampler; 8663 (yyval.interm.type).sampler.setImage(EbtInt, Esd1D); 8664 } 8665 #line 8666 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8666 break; 8667 8668 case 428: 8669 #line 2872 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8670 { 8671 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8672 (yyval.interm.type).basicType = EbtSampler; 8673 (yyval.interm.type).sampler.setImage(EbtUint, Esd1D); 8674 } 8675 #line 8676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8676 break; 8677 8678 case 429: 8679 #line 2877 "MachineIndependent/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.setImage(EbtFloat, Esd2D); 8684 } 8685 #line 8686 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8686 break; 8687 8688 case 430: 8689 #line 2882 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8690 { 8691 #ifdef AMD_EXTENSIONS 8692 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); 8693 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8694 (yyval.interm.type).basicType = EbtSampler; 8695 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D); 8696 #endif 8697 } 8698 #line 8699 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8699 break; 8700 8701 case 431: 8702 #line 2890 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8703 { 8704 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8705 (yyval.interm.type).basicType = EbtSampler; 8706 (yyval.interm.type).sampler.setImage(EbtInt, Esd2D); 8707 } 8708 #line 8709 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8709 break; 8710 8711 case 432: 8712 #line 2895 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8713 { 8714 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8715 (yyval.interm.type).basicType = EbtSampler; 8716 (yyval.interm.type).sampler.setImage(EbtUint, Esd2D); 8717 } 8718 #line 8719 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8719 break; 8720 8721 case 433: 8722 #line 2900 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8723 { 8724 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8725 (yyval.interm.type).basicType = EbtSampler; 8726 (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D); 8727 } 8728 #line 8729 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8729 break; 8730 8731 case 434: 8732 #line 2905 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8733 { 8734 #ifdef AMD_EXTENSIONS 8735 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); 8736 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8737 (yyval.interm.type).basicType = EbtSampler; 8738 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D); 8739 #endif 8740 } 8741 #line 8742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8742 break; 8743 8744 case 435: 8745 #line 2913 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8746 { 8747 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8748 (yyval.interm.type).basicType = EbtSampler; 8749 (yyval.interm.type).sampler.setImage(EbtInt, Esd3D); 8750 } 8751 #line 8752 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8752 break; 8753 8754 case 436: 8755 #line 2918 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8756 { 8757 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8758 (yyval.interm.type).basicType = EbtSampler; 8759 (yyval.interm.type).sampler.setImage(EbtUint, Esd3D); 8760 } 8761 #line 8762 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8762 break; 8763 8764 case 437: 8765 #line 2923 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8766 { 8767 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8768 (yyval.interm.type).basicType = EbtSampler; 8769 (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect); 8770 } 8771 #line 8772 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8772 break; 8773 8774 case 438: 8775 #line 2928 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8776 { 8777 #ifdef AMD_EXTENSIONS 8778 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); 8779 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8780 (yyval.interm.type).basicType = EbtSampler; 8781 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect); 8782 #endif 8783 } 8784 #line 8785 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8785 break; 8786 8787 case 439: 8788 #line 2936 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8789 { 8790 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8791 (yyval.interm.type).basicType = EbtSampler; 8792 (yyval.interm.type).sampler.setImage(EbtInt, EsdRect); 8793 } 8794 #line 8795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8795 break; 8796 8797 case 440: 8798 #line 2941 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8799 { 8800 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8801 (yyval.interm.type).basicType = EbtSampler; 8802 (yyval.interm.type).sampler.setImage(EbtUint, EsdRect); 8803 } 8804 #line 8805 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8805 break; 8806 8807 case 441: 8808 #line 2946 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8809 { 8810 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8811 (yyval.interm.type).basicType = EbtSampler; 8812 (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube); 8813 } 8814 #line 8815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8815 break; 8816 8817 case 442: 8818 #line 2951 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8819 { 8820 #ifdef AMD_EXTENSIONS 8821 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); 8822 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8823 (yyval.interm.type).basicType = EbtSampler; 8824 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube); 8825 #endif 8826 } 8827 #line 8828 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8828 break; 8829 8830 case 443: 8831 #line 2959 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8832 { 8833 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8834 (yyval.interm.type).basicType = EbtSampler; 8835 (yyval.interm.type).sampler.setImage(EbtInt, EsdCube); 8836 } 8837 #line 8838 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8838 break; 8839 8840 case 444: 8841 #line 2964 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8842 { 8843 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8844 (yyval.interm.type).basicType = EbtSampler; 8845 (yyval.interm.type).sampler.setImage(EbtUint, EsdCube); 8846 } 8847 #line 8848 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8848 break; 8849 8850 case 445: 8851 #line 2969 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8852 { 8853 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8854 (yyval.interm.type).basicType = EbtSampler; 8855 (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer); 8856 } 8857 #line 8858 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8858 break; 8859 8860 case 446: 8861 #line 2974 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8862 { 8863 #ifdef AMD_EXTENSIONS 8864 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); 8865 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8866 (yyval.interm.type).basicType = EbtSampler; 8867 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer); 8868 #endif 8869 } 8870 #line 8871 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8871 break; 8872 8873 case 447: 8874 #line 2982 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8875 { 8876 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8877 (yyval.interm.type).basicType = EbtSampler; 8878 (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer); 8879 } 8880 #line 8881 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8881 break; 8882 8883 case 448: 8884 #line 2987 "MachineIndependent/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(EbtUint, EsdBuffer); 8889 } 8890 #line 8891 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8891 break; 8892 8893 case 449: 8894 #line 2992 "MachineIndependent/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(EbtFloat, Esd1D, true); 8899 } 8900 #line 8901 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8901 break; 8902 8903 case 450: 8904 #line 2997 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8905 { 8906 #ifdef AMD_EXTENSIONS 8907 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); 8908 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8909 (yyval.interm.type).basicType = EbtSampler; 8910 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true); 8911 #endif 8912 } 8913 #line 8914 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8914 break; 8915 8916 case 451: 8917 #line 3005 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8918 { 8919 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8920 (yyval.interm.type).basicType = EbtSampler; 8921 (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true); 8922 } 8923 #line 8924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8924 break; 8925 8926 case 452: 8927 #line 3010 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8928 { 8929 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8930 (yyval.interm.type).basicType = EbtSampler; 8931 (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true); 8932 } 8933 #line 8934 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8934 break; 8935 8936 case 453: 8937 #line 3015 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8938 { 8939 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8940 (yyval.interm.type).basicType = EbtSampler; 8941 (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true); 8942 } 8943 #line 8944 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8944 break; 8945 8946 case 454: 8947 #line 3020 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8948 { 8949 #ifdef AMD_EXTENSIONS 8950 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); 8951 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8952 (yyval.interm.type).basicType = EbtSampler; 8953 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true); 8954 #endif 8955 } 8956 #line 8957 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8957 break; 8958 8959 case 455: 8960 #line 3028 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8961 { 8962 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8963 (yyval.interm.type).basicType = EbtSampler; 8964 (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true); 8965 } 8966 #line 8967 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8967 break; 8968 8969 case 456: 8970 #line 3033 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8971 { 8972 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8973 (yyval.interm.type).basicType = EbtSampler; 8974 (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true); 8975 } 8976 #line 8977 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8977 break; 8978 8979 case 457: 8980 #line 3038 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8981 { 8982 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8983 (yyval.interm.type).basicType = EbtSampler; 8984 (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true); 8985 } 8986 #line 8987 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 8987 break; 8988 8989 case 458: 8990 #line 3043 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 8991 { 8992 #ifdef AMD_EXTENSIONS 8993 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); 8994 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 8995 (yyval.interm.type).basicType = EbtSampler; 8996 (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true); 8997 #endif 8998 } 8999 #line 9000 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9000 break; 9001 9002 case 459: 9003 #line 3051 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9004 { 9005 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9006 (yyval.interm.type).basicType = EbtSampler; 9007 (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true); 9008 } 9009 #line 9010 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9010 break; 9011 9012 case 460: 9013 #line 3056 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9014 { 9015 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9016 (yyval.interm.type).basicType = EbtSampler; 9017 (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true); 9018 } 9019 #line 9020 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9020 break; 9021 9022 case 461: 9023 #line 3061 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9024 { 9025 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9026 (yyval.interm.type).basicType = EbtSampler; 9027 (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true); 9028 } 9029 #line 9030 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9030 break; 9031 9032 case 462: 9033 #line 3066 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9034 { 9035 #ifdef AMD_EXTENSIONS 9036 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); 9037 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9038 (yyval.interm.type).basicType = EbtSampler; 9039 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true); 9040 #endif 9041 } 9042 #line 9043 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9043 break; 9044 9045 case 463: 9046 #line 3074 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9047 { 9048 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9049 (yyval.interm.type).basicType = EbtSampler; 9050 (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true); 9051 } 9052 #line 9053 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9053 break; 9054 9055 case 464: 9056 #line 3079 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9057 { 9058 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9059 (yyval.interm.type).basicType = EbtSampler; 9060 (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true); 9061 } 9062 #line 9063 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9063 break; 9064 9065 case 465: 9066 #line 3084 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9067 { 9068 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9069 (yyval.interm.type).basicType = EbtSampler; 9070 (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true); 9071 } 9072 #line 9073 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9073 break; 9074 9075 case 466: 9076 #line 3089 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9077 { 9078 #ifdef AMD_EXTENSIONS 9079 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); 9080 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9081 (yyval.interm.type).basicType = EbtSampler; 9082 (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true); 9083 #endif 9084 } 9085 #line 9086 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9086 break; 9087 9088 case 467: 9089 #line 3097 "MachineIndependent/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, Esd2D, true, false, true); 9094 } 9095 #line 9096 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9096 break; 9097 9098 case 468: 9099 #line 3102 "MachineIndependent/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, Esd2D, true, false, true); 9104 } 9105 #line 9106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9106 break; 9107 9108 case 469: 9109 #line 3107 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9110 { // GL_OES_EGL_image_external 9111 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9112 (yyval.interm.type).basicType = EbtSampler; 9113 (yyval.interm.type).sampler.set(EbtFloat, Esd2D); 9114 (yyval.interm.type).sampler.external = true; 9115 } 9116 #line 9117 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9117 break; 9118 9119 case 470: 9120 #line 3113 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9121 { 9122 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); 9123 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9124 (yyval.interm.type).basicType = EbtSampler; 9125 (yyval.interm.type).sampler.setSubpass(EbtFloat); 9126 } 9127 #line 9128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9128 break; 9129 9130 case 471: 9131 #line 3119 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9132 { 9133 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); 9134 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9135 (yyval.interm.type).basicType = EbtSampler; 9136 (yyval.interm.type).sampler.setSubpass(EbtFloat, true); 9137 } 9138 #line 9139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9139 break; 9140 9141 case 472: 9142 #line 3125 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9143 { 9144 #ifdef AMD_EXTENSIONS 9145 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel()); 9146 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); 9147 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9148 (yyval.interm.type).basicType = EbtSampler; 9149 (yyval.interm.type).sampler.setSubpass(EbtFloat16); 9150 #endif 9151 } 9152 #line 9153 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9153 break; 9154 9155 case 473: 9156 #line 3134 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9157 { 9158 #ifdef AMD_EXTENSIONS 9159 parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel()); 9160 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); 9161 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9162 (yyval.interm.type).basicType = EbtSampler; 9163 (yyval.interm.type).sampler.setSubpass(EbtFloat16, true); 9164 #endif 9165 } 9166 #line 9167 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9167 break; 9168 9169 case 474: 9170 #line 3143 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9171 { 9172 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); 9173 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9174 (yyval.interm.type).basicType = EbtSampler; 9175 (yyval.interm.type).sampler.setSubpass(EbtInt); 9176 } 9177 #line 9178 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9178 break; 9179 9180 case 475: 9181 #line 3149 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9182 { 9183 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); 9184 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9185 (yyval.interm.type).basicType = EbtSampler; 9186 (yyval.interm.type).sampler.setSubpass(EbtInt, true); 9187 } 9188 #line 9189 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9189 break; 9190 9191 case 476: 9192 #line 3155 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9193 { 9194 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); 9195 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9196 (yyval.interm.type).basicType = EbtSampler; 9197 (yyval.interm.type).sampler.setSubpass(EbtUint); 9198 } 9199 #line 9200 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9200 break; 9201 9202 case 477: 9203 #line 3161 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9204 { 9205 parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); 9206 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9207 (yyval.interm.type).basicType = EbtSampler; 9208 (yyval.interm.type).sampler.setSubpass(EbtUint, true); 9209 } 9210 #line 9211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9211 break; 9212 9213 case 478: 9214 #line 3167 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9215 { 9216 (yyval.interm.type) = (yyvsp[0].interm.type); 9217 (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; 9218 parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type)); 9219 } 9220 #line 9221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9221 break; 9222 9223 case 479: 9224 #line 3172 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9225 { 9226 // 9227 // This is for user defined type names. The lexical phase looked up the 9228 // type. 9229 // 9230 if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) { 9231 const TType& structure = variable->getType(); 9232 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9233 (yyval.interm.type).basicType = EbtStruct; 9234 (yyval.interm.type).userDef = &structure; 9235 } else 9236 parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), ""); 9237 } 9238 #line 9239 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9239 break; 9240 9241 case 480: 9242 #line 3188 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9243 { 9244 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); 9245 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9246 parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh); 9247 } 9248 #line 9249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9249 break; 9250 9251 case 481: 9252 #line 3193 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9253 { 9254 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); 9255 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9256 parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium); 9257 } 9258 #line 9259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9259 break; 9260 9261 case 482: 9262 #line 3198 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9263 { 9264 parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); 9265 (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); 9266 parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow); 9267 } 9268 #line 9269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9269 break; 9270 9271 case 483: 9272 #line 3206 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9273 { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); } 9274 #line 9275 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9275 break; 9276 9277 case 484: 9278 #line 3206 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9279 { 9280 TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string); 9281 parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure); 9282 TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true); 9283 if (! parseContext.symbolTable.insert(*userTypeDef)) 9284 parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct"); 9285 (yyval.interm.type).init((yyvsp[-5].lex).loc); 9286 (yyval.interm.type).basicType = EbtStruct; 9287 (yyval.interm.type).userDef = structure; 9288 --parseContext.structNestingLevel; 9289 } 9290 #line 9291 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9291 break; 9292 9293 case 485: 9294 #line 3217 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9295 { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); } 9296 #line 9297 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9297 break; 9298 9299 case 486: 9300 #line 3217 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9301 { 9302 TType* structure = new TType((yyvsp[-1].interm.typeList), TString("")); 9303 (yyval.interm.type).init((yyvsp[-4].lex).loc); 9304 (yyval.interm.type).basicType = EbtStruct; 9305 (yyval.interm.type).userDef = structure; 9306 --parseContext.structNestingLevel; 9307 } 9308 #line 9309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9309 break; 9310 9311 case 487: 9312 #line 3227 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9313 { 9314 (yyval.interm.typeList) = (yyvsp[0].interm.typeList); 9315 } 9316 #line 9317 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9317 break; 9318 9319 case 488: 9320 #line 3230 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9321 { 9322 (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); 9323 for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) { 9324 for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) { 9325 if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName()) 9326 parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str()); 9327 } 9328 (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]); 9329 } 9330 } 9331 #line 9332 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9332 break; 9333 9334 case 489: 9335 #line 3243 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9336 { 9337 if ((yyvsp[-2].interm.type).arraySizes) { 9338 parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); 9339 parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); 9340 if (parseContext.profile == EEsProfile) 9341 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); 9342 } 9343 9344 (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); 9345 9346 parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType); 9347 parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier); 9348 9349 for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) { 9350 TType type((yyvsp[-2].interm.type)); 9351 type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName()); 9352 type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes()); 9353 type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes); 9354 parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes()); 9355 (*(yyval.interm.typeList))[i].type->shallowCopy(type); 9356 } 9357 } 9358 #line 9359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9359 break; 9360 9361 case 490: 9362 #line 3265 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9363 { 9364 if ((yyvsp[-2].interm.type).arraySizes) { 9365 parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); 9366 parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); 9367 if (parseContext.profile == EEsProfile) 9368 parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); 9369 } 9370 9371 (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); 9372 9373 parseContext.memberQualifierCheck((yyvsp[-3].interm.type)); 9374 parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType); 9375 parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true); 9376 parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier); 9377 9378 for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) { 9379 TType type((yyvsp[-2].interm.type)); 9380 type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName()); 9381 type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes()); 9382 type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes); 9383 parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes()); 9384 (*(yyval.interm.typeList))[i].type->shallowCopy(type); 9385 } 9386 } 9387 #line 9388 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9388 break; 9389 9390 case 491: 9391 #line 3292 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9392 { 9393 (yyval.interm.typeList) = new TTypeList; 9394 (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); 9395 } 9396 #line 9397 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9397 break; 9398 9399 case 492: 9400 #line 3296 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9401 { 9402 (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); 9403 } 9404 #line 9405 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9405 break; 9406 9407 case 493: 9408 #line 3302 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9409 { 9410 (yyval.interm.typeLine).type = new TType(EbtVoid); 9411 (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc; 9412 (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string); 9413 } 9414 #line 9415 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9415 break; 9416 9417 case 494: 9418 #line 3307 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9419 { 9420 parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes); 9421 9422 (yyval.interm.typeLine).type = new TType(EbtVoid); 9423 (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc; 9424 (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string); 9425 (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes); 9426 } 9427 #line 9428 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9428 break; 9429 9430 case 495: 9431 #line 3318 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9432 { 9433 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); 9434 } 9435 #line 9436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9436 break; 9437 9438 case 496: 9439 #line 3321 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9440 { 9441 const char* initFeature = "{ } style initializers"; 9442 parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature); 9443 parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); 9444 (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); 9445 } 9446 #line 9447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9447 break; 9448 9449 case 497: 9450 #line 3327 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9451 { 9452 const char* initFeature = "{ } style initializers"; 9453 parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature); 9454 parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); 9455 (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); 9456 } 9457 #line 9458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9458 break; 9459 9460 case 498: 9461 #line 3336 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9462 { 9463 (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc()); 9464 } 9465 #line 9466 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9466 break; 9467 9468 case 499: 9469 #line 3339 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9470 { 9471 (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); 9472 } 9473 #line 9474 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9474 break; 9475 9476 case 500: 9477 #line 3345 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9478 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } 9479 #line 9480 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9480 break; 9481 9482 case 501: 9483 #line 3349 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9484 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } 9485 #line 9486 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9486 break; 9487 9488 case 502: 9489 #line 3350 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9490 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } 9491 #line 9492 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9492 break; 9493 9494 case 503: 9495 #line 3356 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9496 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } 9497 #line 9498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9498 break; 9499 9500 case 504: 9501 #line 3357 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9502 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } 9503 #line 9504 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9504 break; 9505 9506 case 505: 9507 #line 3358 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9508 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } 9509 #line 9510 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9510 break; 9511 9512 case 506: 9513 #line 3359 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9514 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } 9515 #line 9516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9516 break; 9517 9518 case 507: 9519 #line 3360 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9520 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } 9521 #line 9522 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9522 break; 9523 9524 case 508: 9525 #line 3361 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9526 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } 9527 #line 9528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9528 break; 9529 9530 case 509: 9531 #line 3362 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9532 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } 9533 #line 9534 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9534 break; 9535 9536 case 510: 9537 #line 3366 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9538 { (yyval.interm.intermNode) = 0; } 9539 #line 9540 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9540 break; 9541 9542 case 511: 9543 #line 3367 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9544 { 9545 parseContext.symbolTable.push(); 9546 ++parseContext.statementNestingLevel; 9547 } 9548 #line 9549 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9549 break; 9550 9551 case 512: 9552 #line 3371 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9553 { 9554 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); 9555 --parseContext.statementNestingLevel; 9556 } 9557 #line 9558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9558 break; 9559 9560 case 513: 9561 #line 3375 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9562 { 9563 if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate()) 9564 (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); 9565 (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode); 9566 } 9567 #line 9568 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9568 break; 9569 9570 case 514: 9571 #line 3383 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9572 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } 9573 #line 9574 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9574 break; 9575 9576 case 515: 9577 #line 3384 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9578 { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } 9579 #line 9580 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9580 break; 9581 9582 case 516: 9583 #line 3388 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9584 { 9585 ++parseContext.controlFlowNestingLevel; 9586 } 9587 #line 9588 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9588 break; 9589 9590 case 517: 9591 #line 3391 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9592 { 9593 --parseContext.controlFlowNestingLevel; 9594 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); 9595 } 9596 #line 9597 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9597 break; 9598 9599 case 518: 9600 #line 3395 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9601 { 9602 parseContext.symbolTable.push(); 9603 ++parseContext.statementNestingLevel; 9604 ++parseContext.controlFlowNestingLevel; 9605 } 9606 #line 9607 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9607 break; 9608 9609 case 519: 9610 #line 3400 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9611 { 9612 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); 9613 --parseContext.statementNestingLevel; 9614 --parseContext.controlFlowNestingLevel; 9615 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); 9616 } 9617 #line 9618 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9618 break; 9619 9620 case 520: 9621 #line 3409 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9622 { 9623 (yyval.interm.intermNode) = 0; 9624 } 9625 #line 9626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9626 break; 9627 9628 case 521: 9629 #line 3412 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9630 { 9631 if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate()) 9632 (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); 9633 (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode); 9634 } 9635 #line 9636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9636 break; 9637 9638 case 522: 9639 #line 3420 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9640 { 9641 (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode)); 9642 if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || 9643 (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { 9644 parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode)); 9645 (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case 9646 } 9647 } 9648 #line 9649 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9649 break; 9650 9651 case 523: 9652 #line 3428 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9653 { 9654 if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || 9655 (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { 9656 parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode)); 9657 (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case 9658 } else 9659 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); 9660 } 9661 #line 9662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9662 break; 9663 9664 case 524: 9665 #line 3439 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9666 { (yyval.interm.intermNode) = 0; } 9667 #line 9668 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9668 break; 9669 9670 case 525: 9671 #line 3440 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9672 { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); } 9673 #line 9674 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9674 break; 9675 9676 case 526: 9677 #line 3444 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9678 { 9679 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); 9680 } 9681 #line 9682 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9682 break; 9683 9684 case 527: 9685 #line 3447 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9686 { 9687 parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); 9688 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); 9689 } 9690 #line 9691 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9691 break; 9692 9693 case 528: 9694 #line 3453 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9695 { 9696 parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode)); 9697 (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc); 9698 } 9699 #line 9700 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9700 break; 9701 9702 case 529: 9703 #line 3460 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9704 { 9705 (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); 9706 (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode); 9707 } 9708 #line 9709 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9709 break; 9710 9711 case 530: 9712 #line 3464 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9713 { 9714 (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); 9715 (yyval.interm.nodePair).node2 = 0; 9716 } 9717 #line 9718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9718 break; 9719 9720 case 531: 9721 #line 3472 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9722 { 9723 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); 9724 parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)); 9725 } 9726 #line 9727 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9727 break; 9728 9729 case 532: 9730 #line 3476 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9731 { 9732 parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type)); 9733 9734 TType type((yyvsp[-3].interm.type)); 9735 TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); 9736 if (initNode) 9737 (yyval.interm.intermTypedNode) = initNode->getAsTyped(); 9738 else 9739 (yyval.interm.intermTypedNode) = 0; 9740 } 9741 #line 9742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9742 break; 9743 9744 case 533: 9745 #line 3489 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9746 { 9747 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); 9748 } 9749 #line 9750 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9750 break; 9751 9752 case 534: 9753 #line 3492 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9754 { 9755 parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); 9756 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); 9757 } 9758 #line 9759 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9759 break; 9760 9761 case 535: 9762 #line 3498 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9763 { 9764 // start new switch sequence on the switch stack 9765 ++parseContext.controlFlowNestingLevel; 9766 ++parseContext.statementNestingLevel; 9767 parseContext.switchSequenceStack.push_back(new TIntermSequence); 9768 parseContext.switchLevel.push_back(parseContext.statementNestingLevel); 9769 parseContext.symbolTable.push(); 9770 } 9771 #line 9772 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9772 break; 9773 9774 case 536: 9775 #line 3506 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9776 { 9777 (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0); 9778 delete parseContext.switchSequenceStack.back(); 9779 parseContext.switchSequenceStack.pop_back(); 9780 parseContext.switchLevel.pop_back(); 9781 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); 9782 --parseContext.statementNestingLevel; 9783 --parseContext.controlFlowNestingLevel; 9784 } 9785 #line 9786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9786 break; 9787 9788 case 537: 9789 #line 3518 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9790 { 9791 (yyval.interm.intermNode) = 0; 9792 } 9793 #line 9794 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9794 break; 9795 9796 case 538: 9797 #line 3521 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9798 { 9799 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); 9800 } 9801 #line 9802 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9802 break; 9803 9804 case 539: 9805 #line 3527 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9806 { 9807 (yyval.interm.intermNode) = 0; 9808 if (parseContext.switchLevel.size() == 0) 9809 parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", ""); 9810 else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) 9811 parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", ""); 9812 else { 9813 parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case"); 9814 parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case"); 9815 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc); 9816 } 9817 } 9818 #line 9819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9819 break; 9820 9821 case 540: 9822 #line 3539 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9823 { 9824 (yyval.interm.intermNode) = 0; 9825 if (parseContext.switchLevel.size() == 0) 9826 parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", ""); 9827 else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) 9828 parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", ""); 9829 else 9830 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc); 9831 } 9832 #line 9833 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9833 break; 9834 9835 case 541: 9836 #line 3551 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9837 { 9838 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); 9839 } 9840 #line 9841 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9841 break; 9842 9843 case 542: 9844 #line 3554 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9845 { 9846 parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); 9847 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); 9848 } 9849 #line 9850 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9850 break; 9851 9852 case 543: 9853 #line 3560 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9854 { 9855 if (! parseContext.limits.whileLoops) 9856 parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", ""); 9857 parseContext.symbolTable.push(); 9858 ++parseContext.loopNestingLevel; 9859 ++parseContext.statementNestingLevel; 9860 ++parseContext.controlFlowNestingLevel; 9861 } 9862 #line 9863 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9863 break; 9864 9865 case 544: 9866 #line 3568 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9867 { 9868 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); 9869 (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc); 9870 --parseContext.loopNestingLevel; 9871 --parseContext.statementNestingLevel; 9872 --parseContext.controlFlowNestingLevel; 9873 } 9874 #line 9875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9875 break; 9876 9877 case 545: 9878 #line 3575 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9879 { 9880 ++parseContext.loopNestingLevel; 9881 ++parseContext.statementNestingLevel; 9882 ++parseContext.controlFlowNestingLevel; 9883 } 9884 #line 9885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9885 break; 9886 9887 case 546: 9888 #line 3580 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9889 { 9890 if (! parseContext.limits.whileLoops) 9891 parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", ""); 9892 9893 parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode)); 9894 9895 (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc); 9896 --parseContext.loopNestingLevel; 9897 --parseContext.statementNestingLevel; 9898 --parseContext.controlFlowNestingLevel; 9899 } 9900 #line 9901 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9901 break; 9902 9903 case 547: 9904 #line 3591 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9905 { 9906 parseContext.symbolTable.push(); 9907 ++parseContext.loopNestingLevel; 9908 ++parseContext.statementNestingLevel; 9909 ++parseContext.controlFlowNestingLevel; 9910 } 9911 #line 9912 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9912 break; 9913 9914 case 548: 9915 #line 3597 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9916 { 9917 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); 9918 (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc); 9919 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); 9920 if (! parseContext.limits.nonInductiveForLoops) 9921 parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop); 9922 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc); 9923 (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); 9924 --parseContext.loopNestingLevel; 9925 --parseContext.statementNestingLevel; 9926 --parseContext.controlFlowNestingLevel; 9927 } 9928 #line 9929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9929 break; 9930 9931 case 549: 9932 #line 3612 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9933 { 9934 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); 9935 } 9936 #line 9937 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9937 break; 9938 9939 case 550: 9940 #line 3615 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9941 { 9942 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); 9943 } 9944 #line 9945 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9945 break; 9946 9947 case 551: 9948 #line 3621 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9949 { 9950 (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); 9951 } 9952 #line 9953 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9953 break; 9954 9955 case 552: 9956 #line 3624 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9957 { 9958 (yyval.interm.intermTypedNode) = 0; 9959 } 9960 #line 9961 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9961 break; 9962 9963 case 553: 9964 #line 3630 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9965 { 9966 (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode); 9967 (yyval.interm.nodePair).node2 = 0; 9968 } 9969 #line 9970 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9970 break; 9971 9972 case 554: 9973 #line 3634 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9974 { 9975 (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode); 9976 (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode); 9977 } 9978 #line 9979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9979 break; 9980 9981 case 555: 9982 #line 3641 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9983 { 9984 if (parseContext.loopNestingLevel <= 0) 9985 parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", ""); 9986 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc); 9987 } 9988 #line 9989 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9989 break; 9990 9991 case 556: 9992 #line 3646 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 9993 { 9994 if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0) 9995 parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", ""); 9996 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc); 9997 } 9998 #line 9999 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 9999 break; 10000 10001 case 557: 10002 #line 3651 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 10003 { 10004 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc); 10005 if (parseContext.currentFunctionType->getBasicType() != EbtVoid) 10006 parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", ""); 10007 if (parseContext.inMain) 10008 parseContext.postEntryPointReturn = true; 10009 } 10010 #line 10011 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 10011 break; 10012 10013 case 558: 10014 #line 3658 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 10015 { 10016 (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); 10017 } 10018 #line 10019 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 10019 break; 10020 10021 case 559: 10022 #line 3661 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 10023 { 10024 parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard"); 10025 (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc); 10026 } 10027 #line 10028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 10028 break; 10029 10030 case 560: 10031 #line 3670 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 10032 { 10033 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); 10034 parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); 10035 } 10036 #line 10037 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 10037 break; 10038 10039 case 561: 10040 #line 3674 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 10041 { 10042 if ((yyvsp[0].interm.intermNode) != nullptr) { 10043 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); 10044 parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); 10045 } 10046 } 10047 #line 10048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 10048 break; 10049 10050 case 562: 10051 #line 3683 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 10052 { 10053 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); 10054 } 10055 #line 10056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 10056 break; 10057 10058 case 563: 10059 #line 3686 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 10060 { 10061 (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); 10062 } 10063 #line 10064 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 10064 break; 10065 10066 case 564: 10067 #line 3689 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 10068 { 10069 parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon"); 10070 parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon"); 10071 (yyval.interm.intermNode) = nullptr; 10072 } 10073 #line 10074 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 10074 break; 10075 10076 case 565: 10077 #line 3697 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 10078 { 10079 (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */); 10080 (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function); 10081 } 10082 #line 10083 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 10083 break; 10084 10085 case 566: 10086 #line 3701 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 10087 { 10088 // May be best done as post process phase on intermediate code 10089 if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) 10090 parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str()); 10091 parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); 10092 (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode)); 10093 parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc); 10094 (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str()); 10095 10096 // store the pragma information for debug and optimize and other vendor specific 10097 // information. This information can be queried from the parse tree 10098 (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize); 10099 (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug); 10100 (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable); 10101 } 10102 #line 10103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 10103 break; 10104 10105 case 567: 10106 #line 3719 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 10107 { 10108 (yyval.interm.attributes) = (yyvsp[-2].interm.attributes); 10109 parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute"); 10110 } 10111 #line 10112 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 10112 break; 10113 10114 case 568: 10115 #line 3725 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 10116 { 10117 (yyval.interm.attributes) = (yyvsp[0].interm.attributes); 10118 } 10119 #line 10120 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 10120 break; 10121 10122 case 569: 10123 #line 3728 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 10124 { 10125 (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes)); 10126 } 10127 #line 10128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 10128 break; 10129 10130 case 570: 10131 #line 3733 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 10132 { 10133 (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string); 10134 } 10135 #line 10136 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 10136 break; 10137 10138 case 571: 10139 #line 3736 "MachineIndependent/glslang.y" /* yacc.c:1646 */ 10140 { 10141 (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode)); 10142 } 10143 #line 10144 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 10144 break; 10145 10146 10147 #line 10148 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ 10148 default: break; 10149 } 10150 /* User semantic actions sometimes alter yychar, and that requires 10151 that yytoken be updated with the new translation. We take the 10152 approach of translating immediately before every use of yytoken. 10153 One alternative is translating here after every semantic action, 10154 but that translation would be missed if the semantic action invokes 10155 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or 10156 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an 10157 incorrect destructor might then be invoked immediately. In the 10158 case of YYERROR or YYBACKUP, subsequent parser actions might lead 10159 to an incorrect destructor call or verbose syntax error message 10160 before the lookahead is translated. */ 10161 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); 10162 10163 YYPOPSTACK (yylen); 10164 yylen = 0; 10165 YY_STACK_PRINT (yyss, yyssp); 10166 10167 *++yyvsp = yyval; 10168 10169 /* Now 'shift' the result of the reduction. Determine what state 10170 that goes to, based on the state we popped back to and the rule 10171 number reduced by. */ 10172 10173 yyn = yyr1[yyn]; 10174 10175 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; 10176 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) 10177 yystate = yytable[yystate]; 10178 else 10179 yystate = yydefgoto[yyn - YYNTOKENS]; 10180 10181 goto yynewstate; 10182 10183 10184 /*--------------------------------------. 10185 | yyerrlab -- here on detecting error. | 10186 `--------------------------------------*/ 10187 yyerrlab: 10188 /* Make sure we have latest lookahead translation. See comments at 10189 user semantic actions for why this is necessary. */ 10190 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); 10191 10192 /* If not already recovering from an error, report this error. */ 10193 if (!yyerrstatus) 10194 { 10195 ++yynerrs; 10196 #if ! YYERROR_VERBOSE 10197 yyerror (pParseContext, YY_("syntax error")); 10198 #else 10199 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 10200 yyssp, yytoken) 10201 { 10202 char const *yymsgp = YY_("syntax error"); 10203 int yysyntax_error_status; 10204 yysyntax_error_status = YYSYNTAX_ERROR; 10205 if (yysyntax_error_status == 0) 10206 yymsgp = yymsg; 10207 else if (yysyntax_error_status == 1) 10208 { 10209 if (yymsg != yymsgbuf) 10210 YYSTACK_FREE (yymsg); 10211 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); 10212 if (!yymsg) 10213 { 10214 yymsg = yymsgbuf; 10215 yymsg_alloc = sizeof yymsgbuf; 10216 yysyntax_error_status = 2; 10217 } 10218 else 10219 { 10220 yysyntax_error_status = YYSYNTAX_ERROR; 10221 yymsgp = yymsg; 10222 } 10223 } 10224 yyerror (pParseContext, yymsgp); 10225 if (yysyntax_error_status == 2) 10226 goto yyexhaustedlab; 10227 } 10228 # undef YYSYNTAX_ERROR 10229 #endif 10230 } 10231 10232 10233 10234 if (yyerrstatus == 3) 10235 { 10236 /* If just tried and failed to reuse lookahead token after an 10237 error, discard it. */ 10238 10239 if (yychar <= YYEOF) 10240 { 10241 /* Return failure if at end of input. */ 10242 if (yychar == YYEOF) 10243 YYABORT; 10244 } 10245 else 10246 { 10247 yydestruct ("Error: discarding", 10248 yytoken, &yylval, pParseContext); 10249 yychar = YYEMPTY; 10250 } 10251 } 10252 10253 /* Else will try to reuse lookahead token after shifting the error 10254 token. */ 10255 goto yyerrlab1; 10256 10257 10258 /*---------------------------------------------------. 10259 | yyerrorlab -- error raised explicitly by YYERROR. | 10260 `---------------------------------------------------*/ 10261 yyerrorlab: 10262 10263 /* Pacify compilers like GCC when the user code never invokes 10264 YYERROR and the label yyerrorlab therefore never appears in user 10265 code. */ 10266 if (/*CONSTCOND*/ 0) 10267 goto yyerrorlab; 10268 10269 /* Do not reclaim the symbols of the rule whose action triggered 10270 this YYERROR. */ 10271 YYPOPSTACK (yylen); 10272 yylen = 0; 10273 YY_STACK_PRINT (yyss, yyssp); 10274 yystate = *yyssp; 10275 goto yyerrlab1; 10276 10277 10278 /*-------------------------------------------------------------. 10279 | yyerrlab1 -- common code for both syntax error and YYERROR. | 10280 `-------------------------------------------------------------*/ 10281 yyerrlab1: 10282 yyerrstatus = 3; /* Each real token shifted decrements this. */ 10283 10284 for (;;) 10285 { 10286 yyn = yypact[yystate]; 10287 if (!yypact_value_is_default (yyn)) 10288 { 10289 yyn += YYTERROR; 10290 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 10291 { 10292 yyn = yytable[yyn]; 10293 if (0 < yyn) 10294 break; 10295 } 10296 } 10297 10298 /* Pop the current state because it cannot handle the error token. */ 10299 if (yyssp == yyss) 10300 YYABORT; 10301 10302 10303 yydestruct ("Error: popping", 10304 yystos[yystate], yyvsp, pParseContext); 10305 YYPOPSTACK (1); 10306 yystate = *yyssp; 10307 YY_STACK_PRINT (yyss, yyssp); 10308 } 10309 10310 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 10311 *++yyvsp = yylval; 10312 YY_IGNORE_MAYBE_UNINITIALIZED_END 10313 10314 10315 /* Shift the error token. */ 10316 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); 10317 10318 yystate = yyn; 10319 goto yynewstate; 10320 10321 10322 /*-------------------------------------. 10323 | yyacceptlab -- YYACCEPT comes here. | 10324 `-------------------------------------*/ 10325 yyacceptlab: 10326 yyresult = 0; 10327 goto yyreturn; 10328 10329 /*-----------------------------------. 10330 | yyabortlab -- YYABORT comes here. | 10331 `-----------------------------------*/ 10332 yyabortlab: 10333 yyresult = 1; 10334 goto yyreturn; 10335 10336 #if !defined yyoverflow || YYERROR_VERBOSE 10337 /*-------------------------------------------------. 10338 | yyexhaustedlab -- memory exhaustion comes here. | 10339 `-------------------------------------------------*/ 10340 yyexhaustedlab: 10341 yyerror (pParseContext, YY_("memory exhausted")); 10342 yyresult = 2; 10343 /* Fall through. */ 10344 #endif 10345 10346 yyreturn: 10347 if (yychar != YYEMPTY) 10348 { 10349 /* Make sure we have latest lookahead translation. See comments at 10350 user semantic actions for why this is necessary. */ 10351 yytoken = YYTRANSLATE (yychar); 10352 yydestruct ("Cleanup: discarding lookahead", 10353 yytoken, &yylval, pParseContext); 10354 } 10355 /* Do not reclaim the symbols of the rule whose action triggered 10356 this YYABORT or YYACCEPT. */ 10357 YYPOPSTACK (yylen); 10358 YY_STACK_PRINT (yyss, yyssp); 10359 while (yyssp != yyss) 10360 { 10361 yydestruct ("Cleanup: popping", 10362 yystos[*yyssp], yyvsp, pParseContext); 10363 YYPOPSTACK (1); 10364 } 10365 #ifndef yyoverflow 10366 if (yyss != yyssa) 10367 YYSTACK_FREE (yyss); 10368 #endif 10369 #if YYERROR_VERBOSE 10370 if (yymsg != yymsgbuf) 10371 YYSTACK_FREE (yymsg); 10372 #endif 10373 return yyresult; 10374 } 10375 #line 3740 "MachineIndependent/glslang.y" /* yacc.c:1906 */ 10376 10377