OLD | NEW |
(Empty) | |
| 1 /* A Bison parser, made by GNU Bison 2.5. */ |
| 2 |
| 3 /* Bison implementation for Yacc-like parsers in C |
| 4 |
| 5 Copyright (C) 1984, 1989-1990, 2000-2011 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 "2.5" |
| 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 /* Using locations. */ |
| 62 #define YYLSP_NEEDED 1 |
| 63 |
| 64 /* Substitute the variable and function names. */ |
| 65 #define yyparse _mesa_glsl_parse |
| 66 #define yylex _mesa_glsl_lex |
| 67 #define yyerror _mesa_glsl_error |
| 68 #define yylval _mesa_glsl_lval |
| 69 #define yychar _mesa_glsl_char |
| 70 #define yydebug _mesa_glsl_debug |
| 71 #define yynerrs _mesa_glsl_nerrs |
| 72 #define yylloc _mesa_glsl_lloc |
| 73 |
| 74 /* Copy the first part of user declarations. */ |
| 75 |
| 76 /* Line 268 of yacc.c */ |
| 77 #line 1 "src/src/glsl/glsl_parser.yy" |
| 78 |
| 79 /* |
| 80 * Copyright © 2008, 2009 Intel Corporation |
| 81 * |
| 82 * Permission is hereby granted, free of charge, to any person obtaining a |
| 83 * copy of this software and associated documentation files (the "Software"), |
| 84 * to deal in the Software without restriction, including without limitation |
| 85 * the rights to use, copy, modify, merge, publish, distribute, sublicense, |
| 86 * and/or sell copies of the Software, and to permit persons to whom the |
| 87 * Software is furnished to do so, subject to the following conditions: |
| 88 * |
| 89 * The above copyright notice and this permission notice (including the next |
| 90 * paragraph) shall be included in all copies or substantial portions of the |
| 91 * Software. |
| 92 * |
| 93 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| 94 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| 95 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
| 96 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| 97 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
| 98 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
| 99 * DEALINGS IN THE SOFTWARE. |
| 100 */ |
| 101 #include <stdio.h> |
| 102 #include <stdlib.h> |
| 103 #include <string.h> |
| 104 #include <assert.h> |
| 105 |
| 106 #include "ast.h" |
| 107 #include "glsl_parser_extras.h" |
| 108 #include "glsl_types.h" |
| 109 #include "main/context.h" |
| 110 |
| 111 #define YYLEX_PARAM state->scanner |
| 112 |
| 113 #undef yyerror |
| 114 |
| 115 static void yyerror(YYLTYPE *loc, _mesa_glsl_parse_state *st, const char *msg) |
| 116 { |
| 117 _mesa_glsl_error(loc, st, "%s", msg); |
| 118 } |
| 119 |
| 120 |
| 121 /* Line 268 of yacc.c */ |
| 122 #line 123 "src/chromium_gensrc/mesa/glsl_parser.cc" |
| 123 |
| 124 /* Enabling traces. */ |
| 125 #ifndef YYDEBUG |
| 126 # define YYDEBUG 0 |
| 127 #endif |
| 128 |
| 129 /* Enabling verbose error messages. */ |
| 130 #ifdef YYERROR_VERBOSE |
| 131 # undef YYERROR_VERBOSE |
| 132 # define YYERROR_VERBOSE 1 |
| 133 #else |
| 134 # define YYERROR_VERBOSE 1 |
| 135 #endif |
| 136 |
| 137 /* Enabling the token table. */ |
| 138 #ifndef YYTOKEN_TABLE |
| 139 # define YYTOKEN_TABLE 0 |
| 140 #endif |
| 141 |
| 142 |
| 143 /* Tokens. */ |
| 144 #ifndef YYTOKENTYPE |
| 145 # define YYTOKENTYPE |
| 146 /* Put the tokens into the symbol table, so that GDB and other debuggers |
| 147 know about them. */ |
| 148 enum yytokentype { |
| 149 ATTRIBUTE = 258, |
| 150 CONST_TOK = 259, |
| 151 BOOL_TOK = 260, |
| 152 FLOAT_TOK = 261, |
| 153 INT_TOK = 262, |
| 154 UINT_TOK = 263, |
| 155 BREAK = 264, |
| 156 CONTINUE = 265, |
| 157 DO = 266, |
| 158 ELSE = 267, |
| 159 FOR = 268, |
| 160 IF = 269, |
| 161 DISCARD = 270, |
| 162 RETURN = 271, |
| 163 SWITCH = 272, |
| 164 CASE = 273, |
| 165 DEFAULT = 274, |
| 166 BVEC2 = 275, |
| 167 BVEC3 = 276, |
| 168 BVEC4 = 277, |
| 169 IVEC2 = 278, |
| 170 IVEC3 = 279, |
| 171 IVEC4 = 280, |
| 172 UVEC2 = 281, |
| 173 UVEC3 = 282, |
| 174 UVEC4 = 283, |
| 175 VEC2 = 284, |
| 176 VEC3 = 285, |
| 177 VEC4 = 286, |
| 178 CENTROID = 287, |
| 179 IN_TOK = 288, |
| 180 OUT_TOK = 289, |
| 181 INOUT_TOK = 290, |
| 182 UNIFORM = 291, |
| 183 VARYING = 292, |
| 184 NOPERSPECTIVE = 293, |
| 185 FLAT = 294, |
| 186 SMOOTH = 295, |
| 187 MAT2X2 = 296, |
| 188 MAT2X3 = 297, |
| 189 MAT2X4 = 298, |
| 190 MAT3X2 = 299, |
| 191 MAT3X3 = 300, |
| 192 MAT3X4 = 301, |
| 193 MAT4X2 = 302, |
| 194 MAT4X3 = 303, |
| 195 MAT4X4 = 304, |
| 196 SAMPLER1D = 305, |
| 197 SAMPLER2D = 306, |
| 198 SAMPLER3D = 307, |
| 199 SAMPLERCUBE = 308, |
| 200 SAMPLER1DSHADOW = 309, |
| 201 SAMPLER2DSHADOW = 310, |
| 202 SAMPLERCUBESHADOW = 311, |
| 203 SAMPLER1DARRAY = 312, |
| 204 SAMPLER2DARRAY = 313, |
| 205 SAMPLER1DARRAYSHADOW = 314, |
| 206 SAMPLER2DARRAYSHADOW = 315, |
| 207 ISAMPLER1D = 316, |
| 208 ISAMPLER2D = 317, |
| 209 ISAMPLER3D = 318, |
| 210 ISAMPLERCUBE = 319, |
| 211 ISAMPLER1DARRAY = 320, |
| 212 ISAMPLER2DARRAY = 321, |
| 213 USAMPLER1D = 322, |
| 214 USAMPLER2D = 323, |
| 215 USAMPLER3D = 324, |
| 216 USAMPLERCUBE = 325, |
| 217 USAMPLER1DARRAY = 326, |
| 218 USAMPLER2DARRAY = 327, |
| 219 SAMPLER2DRECT = 328, |
| 220 ISAMPLER2DRECT = 329, |
| 221 USAMPLER2DRECT = 330, |
| 222 SAMPLER2DRECTSHADOW = 331, |
| 223 SAMPLERBUFFER = 332, |
| 224 ISAMPLERBUFFER = 333, |
| 225 USAMPLERBUFFER = 334, |
| 226 SAMPLEREXTERNALOES = 335, |
| 227 STRUCT = 336, |
| 228 VOID_TOK = 337, |
| 229 WHILE = 338, |
| 230 IDENTIFIER = 339, |
| 231 TYPE_IDENTIFIER = 340, |
| 232 NEW_IDENTIFIER = 341, |
| 233 FLOATCONSTANT = 342, |
| 234 INTCONSTANT = 343, |
| 235 UINTCONSTANT = 344, |
| 236 BOOLCONSTANT = 345, |
| 237 FIELD_SELECTION = 346, |
| 238 LEFT_OP = 347, |
| 239 RIGHT_OP = 348, |
| 240 INC_OP = 349, |
| 241 DEC_OP = 350, |
| 242 LE_OP = 351, |
| 243 GE_OP = 352, |
| 244 EQ_OP = 353, |
| 245 NE_OP = 354, |
| 246 AND_OP = 355, |
| 247 OR_OP = 356, |
| 248 XOR_OP = 357, |
| 249 MUL_ASSIGN = 358, |
| 250 DIV_ASSIGN = 359, |
| 251 ADD_ASSIGN = 360, |
| 252 MOD_ASSIGN = 361, |
| 253 LEFT_ASSIGN = 362, |
| 254 RIGHT_ASSIGN = 363, |
| 255 AND_ASSIGN = 364, |
| 256 XOR_ASSIGN = 365, |
| 257 OR_ASSIGN = 366, |
| 258 SUB_ASSIGN = 367, |
| 259 INVARIANT = 368, |
| 260 LOWP = 369, |
| 261 MEDIUMP = 370, |
| 262 HIGHP = 371, |
| 263 SUPERP = 372, |
| 264 PRECISION = 373, |
| 265 VERSION_TOK = 374, |
| 266 EXTENSION = 375, |
| 267 LINE = 376, |
| 268 COLON = 377, |
| 269 EOL = 378, |
| 270 INTERFACE = 379, |
| 271 OUTPUT = 380, |
| 272 PRAGMA_DEBUG_ON = 381, |
| 273 PRAGMA_DEBUG_OFF = 382, |
| 274 PRAGMA_OPTIMIZE_ON = 383, |
| 275 PRAGMA_OPTIMIZE_OFF = 384, |
| 276 PRAGMA_INVARIANT_ALL = 385, |
| 277 LAYOUT_TOK = 386, |
| 278 ASM = 387, |
| 279 CLASS = 388, |
| 280 UNION = 389, |
| 281 ENUM = 390, |
| 282 TYPEDEF = 391, |
| 283 TEMPLATE = 392, |
| 284 THIS = 393, |
| 285 PACKED_TOK = 394, |
| 286 GOTO = 395, |
| 287 INLINE_TOK = 396, |
| 288 NOINLINE = 397, |
| 289 VOLATILE = 398, |
| 290 PUBLIC_TOK = 399, |
| 291 STATIC = 400, |
| 292 EXTERN = 401, |
| 293 EXTERNAL = 402, |
| 294 LONG_TOK = 403, |
| 295 SHORT_TOK = 404, |
| 296 DOUBLE_TOK = 405, |
| 297 HALF = 406, |
| 298 FIXED_TOK = 407, |
| 299 UNSIGNED = 408, |
| 300 INPUT_TOK = 409, |
| 301 OUPTUT = 410, |
| 302 HVEC2 = 411, |
| 303 HVEC3 = 412, |
| 304 HVEC4 = 413, |
| 305 DVEC2 = 414, |
| 306 DVEC3 = 415, |
| 307 DVEC4 = 416, |
| 308 FVEC2 = 417, |
| 309 FVEC3 = 418, |
| 310 FVEC4 = 419, |
| 311 SAMPLER3DRECT = 420, |
| 312 SIZEOF = 421, |
| 313 CAST = 422, |
| 314 NAMESPACE = 423, |
| 315 USING = 424, |
| 316 ERROR_TOK = 425, |
| 317 COMMON = 426, |
| 318 PARTITION = 427, |
| 319 ACTIVE = 428, |
| 320 FILTER = 429, |
| 321 IMAGE1D = 430, |
| 322 IMAGE2D = 431, |
| 323 IMAGE3D = 432, |
| 324 IMAGECUBE = 433, |
| 325 IMAGE1DARRAY = 434, |
| 326 IMAGE2DARRAY = 435, |
| 327 IIMAGE1D = 436, |
| 328 IIMAGE2D = 437, |
| 329 IIMAGE3D = 438, |
| 330 IIMAGECUBE = 439, |
| 331 IIMAGE1DARRAY = 440, |
| 332 IIMAGE2DARRAY = 441, |
| 333 UIMAGE1D = 442, |
| 334 UIMAGE2D = 443, |
| 335 UIMAGE3D = 444, |
| 336 UIMAGECUBE = 445, |
| 337 UIMAGE1DARRAY = 446, |
| 338 UIMAGE2DARRAY = 447, |
| 339 IMAGE1DSHADOW = 448, |
| 340 IMAGE2DSHADOW = 449, |
| 341 IMAGEBUFFER = 450, |
| 342 IIMAGEBUFFER = 451, |
| 343 UIMAGEBUFFER = 452, |
| 344 IMAGE1DARRAYSHADOW = 453, |
| 345 IMAGE2DARRAYSHADOW = 454, |
| 346 ROW_MAJOR = 455 |
| 347 }; |
| 348 #endif |
| 349 /* Tokens. */ |
| 350 #define ATTRIBUTE 258 |
| 351 #define CONST_TOK 259 |
| 352 #define BOOL_TOK 260 |
| 353 #define FLOAT_TOK 261 |
| 354 #define INT_TOK 262 |
| 355 #define UINT_TOK 263 |
| 356 #define BREAK 264 |
| 357 #define CONTINUE 265 |
| 358 #define DO 266 |
| 359 #define ELSE 267 |
| 360 #define FOR 268 |
| 361 #define IF 269 |
| 362 #define DISCARD 270 |
| 363 #define RETURN 271 |
| 364 #define SWITCH 272 |
| 365 #define CASE 273 |
| 366 #define DEFAULT 274 |
| 367 #define BVEC2 275 |
| 368 #define BVEC3 276 |
| 369 #define BVEC4 277 |
| 370 #define IVEC2 278 |
| 371 #define IVEC3 279 |
| 372 #define IVEC4 280 |
| 373 #define UVEC2 281 |
| 374 #define UVEC3 282 |
| 375 #define UVEC4 283 |
| 376 #define VEC2 284 |
| 377 #define VEC3 285 |
| 378 #define VEC4 286 |
| 379 #define CENTROID 287 |
| 380 #define IN_TOK 288 |
| 381 #define OUT_TOK 289 |
| 382 #define INOUT_TOK 290 |
| 383 #define UNIFORM 291 |
| 384 #define VARYING 292 |
| 385 #define NOPERSPECTIVE 293 |
| 386 #define FLAT 294 |
| 387 #define SMOOTH 295 |
| 388 #define MAT2X2 296 |
| 389 #define MAT2X3 297 |
| 390 #define MAT2X4 298 |
| 391 #define MAT3X2 299 |
| 392 #define MAT3X3 300 |
| 393 #define MAT3X4 301 |
| 394 #define MAT4X2 302 |
| 395 #define MAT4X3 303 |
| 396 #define MAT4X4 304 |
| 397 #define SAMPLER1D 305 |
| 398 #define SAMPLER2D 306 |
| 399 #define SAMPLER3D 307 |
| 400 #define SAMPLERCUBE 308 |
| 401 #define SAMPLER1DSHADOW 309 |
| 402 #define SAMPLER2DSHADOW 310 |
| 403 #define SAMPLERCUBESHADOW 311 |
| 404 #define SAMPLER1DARRAY 312 |
| 405 #define SAMPLER2DARRAY 313 |
| 406 #define SAMPLER1DARRAYSHADOW 314 |
| 407 #define SAMPLER2DARRAYSHADOW 315 |
| 408 #define ISAMPLER1D 316 |
| 409 #define ISAMPLER2D 317 |
| 410 #define ISAMPLER3D 318 |
| 411 #define ISAMPLERCUBE 319 |
| 412 #define ISAMPLER1DARRAY 320 |
| 413 #define ISAMPLER2DARRAY 321 |
| 414 #define USAMPLER1D 322 |
| 415 #define USAMPLER2D 323 |
| 416 #define USAMPLER3D 324 |
| 417 #define USAMPLERCUBE 325 |
| 418 #define USAMPLER1DARRAY 326 |
| 419 #define USAMPLER2DARRAY 327 |
| 420 #define SAMPLER2DRECT 328 |
| 421 #define ISAMPLER2DRECT 329 |
| 422 #define USAMPLER2DRECT 330 |
| 423 #define SAMPLER2DRECTSHADOW 331 |
| 424 #define SAMPLERBUFFER 332 |
| 425 #define ISAMPLERBUFFER 333 |
| 426 #define USAMPLERBUFFER 334 |
| 427 #define SAMPLEREXTERNALOES 335 |
| 428 #define STRUCT 336 |
| 429 #define VOID_TOK 337 |
| 430 #define WHILE 338 |
| 431 #define IDENTIFIER 339 |
| 432 #define TYPE_IDENTIFIER 340 |
| 433 #define NEW_IDENTIFIER 341 |
| 434 #define FLOATCONSTANT 342 |
| 435 #define INTCONSTANT 343 |
| 436 #define UINTCONSTANT 344 |
| 437 #define BOOLCONSTANT 345 |
| 438 #define FIELD_SELECTION 346 |
| 439 #define LEFT_OP 347 |
| 440 #define RIGHT_OP 348 |
| 441 #define INC_OP 349 |
| 442 #define DEC_OP 350 |
| 443 #define LE_OP 351 |
| 444 #define GE_OP 352 |
| 445 #define EQ_OP 353 |
| 446 #define NE_OP 354 |
| 447 #define AND_OP 355 |
| 448 #define OR_OP 356 |
| 449 #define XOR_OP 357 |
| 450 #define MUL_ASSIGN 358 |
| 451 #define DIV_ASSIGN 359 |
| 452 #define ADD_ASSIGN 360 |
| 453 #define MOD_ASSIGN 361 |
| 454 #define LEFT_ASSIGN 362 |
| 455 #define RIGHT_ASSIGN 363 |
| 456 #define AND_ASSIGN 364 |
| 457 #define XOR_ASSIGN 365 |
| 458 #define OR_ASSIGN 366 |
| 459 #define SUB_ASSIGN 367 |
| 460 #define INVARIANT 368 |
| 461 #define LOWP 369 |
| 462 #define MEDIUMP 370 |
| 463 #define HIGHP 371 |
| 464 #define SUPERP 372 |
| 465 #define PRECISION 373 |
| 466 #define VERSION_TOK 374 |
| 467 #define EXTENSION 375 |
| 468 #define LINE 376 |
| 469 #define COLON 377 |
| 470 #define EOL 378 |
| 471 #define INTERFACE 379 |
| 472 #define OUTPUT 380 |
| 473 #define PRAGMA_DEBUG_ON 381 |
| 474 #define PRAGMA_DEBUG_OFF 382 |
| 475 #define PRAGMA_OPTIMIZE_ON 383 |
| 476 #define PRAGMA_OPTIMIZE_OFF 384 |
| 477 #define PRAGMA_INVARIANT_ALL 385 |
| 478 #define LAYOUT_TOK 386 |
| 479 #define ASM 387 |
| 480 #define CLASS 388 |
| 481 #define UNION 389 |
| 482 #define ENUM 390 |
| 483 #define TYPEDEF 391 |
| 484 #define TEMPLATE 392 |
| 485 #define THIS 393 |
| 486 #define PACKED_TOK 394 |
| 487 #define GOTO 395 |
| 488 #define INLINE_TOK 396 |
| 489 #define NOINLINE 397 |
| 490 #define VOLATILE 398 |
| 491 #define PUBLIC_TOK 399 |
| 492 #define STATIC 400 |
| 493 #define EXTERN 401 |
| 494 #define EXTERNAL 402 |
| 495 #define LONG_TOK 403 |
| 496 #define SHORT_TOK 404 |
| 497 #define DOUBLE_TOK 405 |
| 498 #define HALF 406 |
| 499 #define FIXED_TOK 407 |
| 500 #define UNSIGNED 408 |
| 501 #define INPUT_TOK 409 |
| 502 #define OUPTUT 410 |
| 503 #define HVEC2 411 |
| 504 #define HVEC3 412 |
| 505 #define HVEC4 413 |
| 506 #define DVEC2 414 |
| 507 #define DVEC3 415 |
| 508 #define DVEC4 416 |
| 509 #define FVEC2 417 |
| 510 #define FVEC3 418 |
| 511 #define FVEC4 419 |
| 512 #define SAMPLER3DRECT 420 |
| 513 #define SIZEOF 421 |
| 514 #define CAST 422 |
| 515 #define NAMESPACE 423 |
| 516 #define USING 424 |
| 517 #define ERROR_TOK 425 |
| 518 #define COMMON 426 |
| 519 #define PARTITION 427 |
| 520 #define ACTIVE 428 |
| 521 #define FILTER 429 |
| 522 #define IMAGE1D 430 |
| 523 #define IMAGE2D 431 |
| 524 #define IMAGE3D 432 |
| 525 #define IMAGECUBE 433 |
| 526 #define IMAGE1DARRAY 434 |
| 527 #define IMAGE2DARRAY 435 |
| 528 #define IIMAGE1D 436 |
| 529 #define IIMAGE2D 437 |
| 530 #define IIMAGE3D 438 |
| 531 #define IIMAGECUBE 439 |
| 532 #define IIMAGE1DARRAY 440 |
| 533 #define IIMAGE2DARRAY 441 |
| 534 #define UIMAGE1D 442 |
| 535 #define UIMAGE2D 443 |
| 536 #define UIMAGE3D 444 |
| 537 #define UIMAGECUBE 445 |
| 538 #define UIMAGE1DARRAY 446 |
| 539 #define UIMAGE2DARRAY 447 |
| 540 #define IMAGE1DSHADOW 448 |
| 541 #define IMAGE2DSHADOW 449 |
| 542 #define IMAGEBUFFER 450 |
| 543 #define IIMAGEBUFFER 451 |
| 544 #define UIMAGEBUFFER 452 |
| 545 #define IMAGE1DARRAYSHADOW 453 |
| 546 #define IMAGE2DARRAYSHADOW 454 |
| 547 #define ROW_MAJOR 455 |
| 548 |
| 549 |
| 550 |
| 551 |
| 552 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED |
| 553 typedef union YYSTYPE |
| 554 { |
| 555 |
| 556 /* Line 293 of yacc.c */ |
| 557 #line 59 "src/src/glsl/glsl_parser.yy" |
| 558 |
| 559 int n; |
| 560 float real; |
| 561 const char *identifier; |
| 562 |
| 563 struct ast_type_qualifier type_qualifier; |
| 564 |
| 565 ast_node *node; |
| 566 ast_type_specifier *type_specifier; |
| 567 ast_fully_specified_type *fully_specified_type; |
| 568 ast_function *function; |
| 569 ast_parameter_declarator *parameter_declarator; |
| 570 ast_function_definition *function_definition; |
| 571 ast_compound_statement *compound_statement; |
| 572 ast_expression *expression; |
| 573 ast_declarator_list *declarator_list; |
| 574 ast_struct_specifier *struct_specifier; |
| 575 ast_declaration *declaration; |
| 576 ast_switch_body *switch_body; |
| 577 ast_case_label *case_label; |
| 578 ast_case_label_list *case_label_list; |
| 579 ast_case_statement *case_statement; |
| 580 ast_case_statement_list *case_statement_list; |
| 581 |
| 582 struct { |
| 583 ast_node *cond; |
| 584 ast_expression *rest; |
| 585 } for_rest_statement; |
| 586 |
| 587 struct { |
| 588 ast_node *then_statement; |
| 589 ast_node *else_statement; |
| 590 } selection_rest_statement; |
| 591 |
| 592 |
| 593 |
| 594 /* Line 293 of yacc.c */ |
| 595 #line 596 "src/chromium_gensrc/mesa/glsl_parser.cc" |
| 596 } YYSTYPE; |
| 597 # define YYSTYPE_IS_TRIVIAL 1 |
| 598 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ |
| 599 # define YYSTYPE_IS_DECLARED 1 |
| 600 #endif |
| 601 |
| 602 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED |
| 603 typedef struct YYLTYPE |
| 604 { |
| 605 int first_line; |
| 606 int first_column; |
| 607 int last_line; |
| 608 int last_column; |
| 609 } YYLTYPE; |
| 610 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */ |
| 611 # define YYLTYPE_IS_DECLARED 1 |
| 612 # define YYLTYPE_IS_TRIVIAL 1 |
| 613 #endif |
| 614 |
| 615 |
| 616 /* Copy the second part of user declarations. */ |
| 617 |
| 618 |
| 619 /* Line 343 of yacc.c */ |
| 620 #line 621 "src/chromium_gensrc/mesa/glsl_parser.cc" |
| 621 |
| 622 #ifdef short |
| 623 # undef short |
| 624 #endif |
| 625 |
| 626 #ifdef YYTYPE_UINT8 |
| 627 typedef YYTYPE_UINT8 yytype_uint8; |
| 628 #else |
| 629 typedef unsigned char yytype_uint8; |
| 630 #endif |
| 631 |
| 632 #ifdef YYTYPE_INT8 |
| 633 typedef YYTYPE_INT8 yytype_int8; |
| 634 #elif (defined __STDC__ || defined __C99__FUNC__ \ |
| 635 || defined __cplusplus || defined _MSC_VER) |
| 636 typedef signed char yytype_int8; |
| 637 #else |
| 638 typedef short int yytype_int8; |
| 639 #endif |
| 640 |
| 641 #ifdef YYTYPE_UINT16 |
| 642 typedef YYTYPE_UINT16 yytype_uint16; |
| 643 #else |
| 644 typedef unsigned short int yytype_uint16; |
| 645 #endif |
| 646 |
| 647 #ifdef YYTYPE_INT16 |
| 648 typedef YYTYPE_INT16 yytype_int16; |
| 649 #else |
| 650 typedef short int yytype_int16; |
| 651 #endif |
| 652 |
| 653 #ifndef YYSIZE_T |
| 654 # ifdef __SIZE_TYPE__ |
| 655 # define YYSIZE_T __SIZE_TYPE__ |
| 656 # elif defined size_t |
| 657 # define YYSIZE_T size_t |
| 658 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ |
| 659 || defined __cplusplus || defined _MSC_VER) |
| 660 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ |
| 661 # define YYSIZE_T size_t |
| 662 # else |
| 663 # define YYSIZE_T unsigned int |
| 664 # endif |
| 665 #endif |
| 666 |
| 667 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) |
| 668 |
| 669 #ifndef YY_ |
| 670 # if defined YYENABLE_NLS && YYENABLE_NLS |
| 671 # if ENABLE_NLS |
| 672 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ |
| 673 # define YY_(msgid) dgettext ("bison-runtime", msgid) |
| 674 # endif |
| 675 # endif |
| 676 # ifndef YY_ |
| 677 # define YY_(msgid) msgid |
| 678 # endif |
| 679 #endif |
| 680 |
| 681 /* Suppress unused-variable warnings by "using" E. */ |
| 682 #if ! defined lint || defined __GNUC__ |
| 683 # define YYUSE(e) ((void) (e)) |
| 684 #else |
| 685 # define YYUSE(e) /* empty */ |
| 686 #endif |
| 687 |
| 688 /* Identity function, used to suppress warnings about constant conditions. */ |
| 689 #ifndef lint |
| 690 # define YYID(n) (n) |
| 691 #else |
| 692 #if (defined __STDC__ || defined __C99__FUNC__ \ |
| 693 || defined __cplusplus || defined _MSC_VER) |
| 694 static int |
| 695 YYID (int yyi) |
| 696 #else |
| 697 static int |
| 698 YYID (yyi) |
| 699 int yyi; |
| 700 #endif |
| 701 { |
| 702 return yyi; |
| 703 } |
| 704 #endif |
| 705 |
| 706 #if ! defined yyoverflow || YYERROR_VERBOSE |
| 707 |
| 708 /* The parser invokes alloca or malloc; define the necessary symbols. */ |
| 709 |
| 710 # ifdef YYSTACK_USE_ALLOCA |
| 711 # if YYSTACK_USE_ALLOCA |
| 712 # ifdef __GNUC__ |
| 713 # define YYSTACK_ALLOC __builtin_alloca |
| 714 # elif defined __BUILTIN_VA_ARG_INCR |
| 715 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */ |
| 716 # elif defined _AIX |
| 717 # define YYSTACK_ALLOC __alloca |
| 718 # elif defined _MSC_VER |
| 719 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */ |
| 720 # define alloca _alloca |
| 721 # else |
| 722 # define YYSTACK_ALLOC alloca |
| 723 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || de
fined __C99__FUNC__ \ |
| 724 || defined __cplusplus || defined _MSC_VER) |
| 725 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ |
| 726 # ifndef EXIT_SUCCESS |
| 727 # define EXIT_SUCCESS 0 |
| 728 # endif |
| 729 # endif |
| 730 # endif |
| 731 # endif |
| 732 # endif |
| 733 |
| 734 # ifdef YYSTACK_ALLOC |
| 735 /* Pacify GCC's `empty if-body' warning. */ |
| 736 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) |
| 737 # ifndef YYSTACK_ALLOC_MAXIMUM |
| 738 /* The OS might guarantee only one guard page at the bottom of the stack, |
| 739 and a page size can be as small as 4096 bytes. So we cannot safely |
| 740 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number |
| 741 to allow for a few compiler-allocated temporary stack slots. */ |
| 742 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ |
| 743 # endif |
| 744 # else |
| 745 # define YYSTACK_ALLOC YYMALLOC |
| 746 # define YYSTACK_FREE YYFREE |
| 747 # ifndef YYSTACK_ALLOC_MAXIMUM |
| 748 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM |
| 749 # endif |
| 750 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ |
| 751 && ! ((defined YYMALLOC || defined malloc) \ |
| 752 && (defined YYFREE || defined free))) |
| 753 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ |
| 754 # ifndef EXIT_SUCCESS |
| 755 # define EXIT_SUCCESS 0 |
| 756 # endif |
| 757 # endif |
| 758 # ifndef YYMALLOC |
| 759 # define YYMALLOC malloc |
| 760 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || define
d __C99__FUNC__ \ |
| 761 || defined __cplusplus || defined _MSC_VER) |
| 762 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ |
| 763 # endif |
| 764 # endif |
| 765 # ifndef YYFREE |
| 766 # define YYFREE free |
| 767 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined
__C99__FUNC__ \ |
| 768 || defined __cplusplus || defined _MSC_VER) |
| 769 void free (void *); /* INFRINGES ON USER NAME SPACE */ |
| 770 # endif |
| 771 # endif |
| 772 # endif |
| 773 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ |
| 774 |
| 775 |
| 776 #if (! defined yyoverflow \ |
| 777 && (! defined __cplusplus \ |
| 778 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ |
| 779 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) |
| 780 |
| 781 /* A type that is properly aligned for any stack member. */ |
| 782 union yyalloc |
| 783 { |
| 784 yytype_int16 yyss_alloc; |
| 785 YYSTYPE yyvs_alloc; |
| 786 YYLTYPE yyls_alloc; |
| 787 }; |
| 788 |
| 789 /* The size of the maximum gap between one aligned stack and the next. */ |
| 790 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) |
| 791 |
| 792 /* The size of an array large to enough to hold all stacks, each with |
| 793 N elements. */ |
| 794 # define YYSTACK_BYTES(N) \ |
| 795 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ |
| 796 + 2 * YYSTACK_GAP_MAXIMUM) |
| 797 |
| 798 # define YYCOPY_NEEDED 1 |
| 799 |
| 800 /* Relocate STACK from its old location to the new one. The |
| 801 local variables YYSIZE and YYSTACKSIZE give the old and new number of |
| 802 elements in the stack, and YYPTR gives the new location of the |
| 803 stack. Advance YYPTR to a properly aligned location for the next |
| 804 stack. */ |
| 805 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ |
| 806 do \ |
| 807 { \ |
| 808 YYSIZE_T yynewbytes; \ |
| 809 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ |
| 810 Stack = &yyptr->Stack_alloc; \ |
| 811 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ |
| 812 yyptr += yynewbytes / sizeof (*yyptr); \ |
| 813 } \ |
| 814 while (YYID (0)) |
| 815 |
| 816 #endif |
| 817 |
| 818 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED |
| 819 /* Copy COUNT objects from FROM to TO. The source and destination do |
| 820 not overlap. */ |
| 821 # ifndef YYCOPY |
| 822 # if defined __GNUC__ && 1 < __GNUC__ |
| 823 # define YYCOPY(To, From, Count) \ |
| 824 __builtin_memcpy (To, From, (Count) * sizeof (*(From))) |
| 825 # else |
| 826 # define YYCOPY(To, From, Count) \ |
| 827 do \ |
| 828 { \ |
| 829 YYSIZE_T yyi; \ |
| 830 for (yyi = 0; yyi < (Count); yyi++) \ |
| 831 (To)[yyi] = (From)[yyi]; \ |
| 832 } \ |
| 833 while (YYID (0)) |
| 834 # endif |
| 835 # endif |
| 836 #endif /* !YYCOPY_NEEDED */ |
| 837 |
| 838 /* YYFINAL -- State number of the termination state. */ |
| 839 #define YYFINAL 5 |
| 840 /* YYLAST -- Last index in YYTABLE. */ |
| 841 #define YYLAST 3101 |
| 842 |
| 843 /* YYNTOKENS -- Number of terminals. */ |
| 844 #define YYNTOKENS 225 |
| 845 /* YYNNTS -- Number of nonterminals. */ |
| 846 #define YYNNTS 103 |
| 847 /* YYNRULES -- Number of rules. */ |
| 848 #define YYNRULES 318 |
| 849 /* YYNRULES -- Number of states. */ |
| 850 #define YYNSTATES 483 |
| 851 |
| 852 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ |
| 853 #define YYUNDEFTOK 2 |
| 854 #define YYMAXUTOK 455 |
| 855 |
| 856 #define YYTRANSLATE(YYX) \ |
| 857 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) |
| 858 |
| 859 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ |
| 860 static const yytype_uint8 yytranslate[] = |
| 861 { |
| 862 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
| 863 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
| 864 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
| 865 2, 2, 2, 209, 2, 2, 2, 213, 216, 2, |
| 866 201, 202, 211, 207, 206, 208, 205, 212, 2, 2, |
| 867 2, 2, 2, 2, 2, 2, 2, 2, 220, 222, |
| 868 214, 221, 215, 219, 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, 203, 2, 204, 217, 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, 223, 218, 224, 210, 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, 1, 2, 3, 4, |
| 888 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, |
| 889 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, |
| 890 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, |
| 891 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, |
| 892 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, |
| 893 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, |
| 894 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, |
| 895 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, |
| 896 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, |
| 897 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, |
| 898 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, |
| 899 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, |
| 900 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, |
| 901 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, |
| 902 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, |
| 903 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, |
| 904 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, |
| 905 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, |
| 906 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, |
| 907 195, 196, 197, 198, 199, 200 |
| 908 }; |
| 909 |
| 910 #if YYDEBUG |
| 911 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in |
| 912 YYRHS. */ |
| 913 static const yytype_uint16 yyprhs[] = |
| 914 { |
| 915 0, 0, 3, 4, 9, 10, 14, 17, 20, 23, |
| 916 26, 29, 30, 33, 35, 37, 39, 45, 47, 50, |
| 917 52, 54, 56, 58, 60, 62, 64, 68, 70, 75, |
| 918 77, 81, 84, 87, 89, 91, 93, 97, 100, 103, |
| 919 106, 108, 111, 115, 118, 120, 122, 124, 127, 130, |
| 920 133, 135, 138, 142, 145, 147, 150, 153, 156, 158, |
| 921 160, 162, 164, 166, 170, 174, 178, 180, 184, 188, |
| 922 190, 194, 198, 200, 204, 208, 212, 216, 218, 222, |
| 923 226, 228, 232, 234, 238, 240, 244, 246, 250, 252, |
| 924 256, 258, 262, 264, 270, 272, 276, 278, 280, 282, |
| 925 284, 286, 288, 290, 292, 294, 296, 298, 300, 304, |
| 926 306, 309, 312, 317, 319, 322, 324, 326, 329, 333, |
| 927 337, 340, 346, 350, 353, 357, 360, 361, 363, 365, |
| 928 367, 369, 371, 375, 381, 388, 396, 405, 411, 413, |
| 929 416, 421, 427, 434, 442, 447, 450, 452, 455, 460, |
| 930 462, 466, 468, 472, 474, 476, 478, 480, 482, 484, |
| 931 486, 488, 490, 493, 495, 498, 501, 505, 507, 509, |
| 932 511, 513, 516, 518, 520, 523, 526, 528, 530, 533, |
| 933 535, 539, 544, 546, 548, 550, 552, 554, 556, 558, |
| 934 560, 562, 564, 566, 568, 570, 572, 574, 576, 578, |
| 935 580, 582, 584, 586, 588, 590, 592, 594, 596, 598, |
| 936 600, 602, 604, 606, 608, 610, 612, 614, 616, 618, |
| 937 620, 622, 624, 626, 628, 630, 632, 634, 636, 638, |
| 938 640, 642, 644, 646, 648, 650, 652, 654, 656, 658, |
| 939 660, 662, 664, 666, 668, 670, 676, 681, 683, 686, |
| 940 690, 692, 696, 698, 703, 705, 707, 709, 711, 713, |
| 941 715, 717, 719, 721, 723, 726, 727, 732, 734, 736, |
| 942 739, 743, 745, 748, 750, 753, 759, 763, 765, 767, |
| 943 772, 778, 781, 785, 789, 792, 794, 797, 800, 803, |
| 944 805, 808, 814, 822, 829, 831, 833, 835, 836, 839, |
| 945 843, 846, 849, 852, 856, 859, 861, 863, 865, 867, |
| 946 870, 877, 885, 887, 890, 891, 893, 899, 904 |
| 947 }; |
| 948 |
| 949 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ |
| 950 static const yytype_int16 yyrhs[] = |
| 951 { |
| 952 226, 0, -1, -1, 228, 230, 227, 233, -1, -1, |
| 953 119, 88, 123, -1, 126, 123, -1, 127, 123, -1, |
| 954 128, 123, -1, 129, 123, -1, 130, 123, -1, -1, |
| 955 230, 232, -1, 84, -1, 85, -1, 86, -1, 120, |
| 956 231, 122, 231, 123, -1, 321, -1, 233, 321, -1, |
| 957 84, -1, 86, -1, 234, -1, 88, -1, 89, -1, |
| 958 87, -1, 90, -1, 201, 265, 202, -1, 235, -1, |
| 959 236, 203, 237, 204, -1, 238, -1, 236, 205, 231, |
| 960 -1, 236, 94, -1, 236, 95, -1, 265, -1, 239, |
| 961 -1, 240, -1, 236, 205, 245, -1, 242, 202, -1, |
| 962 241, 202, -1, 243, 82, -1, 243, -1, 243, 263, |
| 963 -1, 242, 206, 263, -1, 244, 201, -1, 287, -1, |
| 964 234, -1, 91, -1, 247, 202, -1, 246, 202, -1, |
| 965 248, 82, -1, 248, -1, 248, 263, -1, 247, 206, |
| 966 263, -1, 234, 201, -1, 236, -1, 94, 249, -1, |
| 967 95, 249, -1, 250, 249, -1, 207, -1, 208, -1, |
| 968 209, -1, 210, -1, 249, -1, 251, 211, 249, -1, |
| 969 251, 212, 249, -1, 251, 213, 249, -1, 251, -1, |
| 970 252, 207, 251, -1, 252, 208, 251, -1, 252, -1, |
| 971 253, 92, 252, -1, 253, 93, 252, -1, 253, -1, |
| 972 254, 214, 253, -1, 254, 215, 253, -1, 254, 96, |
| 973 253, -1, 254, 97, 253, -1, 254, -1, 255, 98, |
| 974 254, -1, 255, 99, 254, -1, 255, -1, 256, 216, |
| 975 255, -1, 256, -1, 257, 217, 256, -1, 257, -1, |
| 976 258, 218, 257, -1, 258, -1, 259, 100, 258, -1, |
| 977 259, -1, 260, 102, 259, -1, 260, -1, 261, 101, |
| 978 260, -1, 261, -1, 261, 219, 265, 220, 263, -1, |
| 979 262, -1, 249, 264, 263, -1, 221, -1, 103, -1, |
| 980 104, -1, 106, -1, 105, -1, 112, -1, 107, -1, |
| 981 108, -1, 109, -1, 110, -1, 111, -1, 263, -1, |
| 982 265, 206, 263, -1, 262, -1, 268, 222, -1, 276, |
| 983 222, -1, 118, 291, 288, 222, -1, 323, -1, 269, |
| 984 202, -1, 271, -1, 270, -1, 271, 273, -1, 270, |
| 985 206, 273, -1, 278, 234, 201, -1, 287, 231, -1, |
| 986 287, 231, 203, 266, 204, -1, 284, 274, 272, -1, |
| 987 274, 272, -1, 284, 274, 275, -1, 274, 275, -1, |
| 988 -1, 33, -1, 34, -1, 35, -1, 287, -1, 277, |
| 989 -1, 276, 206, 231, -1, 276, 206, 231, 203, 204, |
| 990 -1, 276, 206, 231, 203, 266, 204, -1, 276, 206, |
| 991 231, 203, 204, 221, 297, -1, 276, 206, 231, 203, |
| 992 266, 204, 221, 297, -1, 276, 206, 231, 221, 297, |
| 993 -1, 278, -1, 278, 231, -1, 278, 231, 203, 204, |
| 994 -1, 278, 231, 203, 266, 204, -1, 278, 231, 203, |
| 995 204, 221, 297, -1, 278, 231, 203, 266, 204, 221, |
| 996 297, -1, 278, 231, 221, 297, -1, 113, 234, -1, |
| 997 287, -1, 285, 287, -1, 131, 201, 280, 202, -1, |
| 998 281, -1, 280, 206, 281, -1, 231, -1, 231, 221, |
| 999 88, -1, 282, -1, 200, -1, 139, -1, 40, -1, |
| 1000 39, -1, 38, -1, 4, -1, 286, -1, 279, -1, |
| 1001 279, 286, -1, 283, -1, 283, 286, -1, 113, 286, |
| 1002 -1, 113, 283, 286, -1, 113, -1, 4, -1, 3, |
| 1003 -1, 37, -1, 32, 37, -1, 33, -1, 34, -1, |
| 1004 32, 33, -1, 32, 34, -1, 36, -1, 288, -1, |
| 1005 291, 288, -1, 289, -1, 289, 203, 204, -1, 289, |
| 1006 203, 266, 204, -1, 290, -1, 292, -1, 85, -1, |
| 1007 82, -1, 6, -1, 7, -1, 8, -1, 5, -1, |
| 1008 29, -1, 30, -1, 31, -1, 20, -1, 21, -1, |
| 1009 22, -1, 23, -1, 24, -1, 25, -1, 26, -1, |
| 1010 27, -1, 28, -1, 41, -1, 42, -1, 43, -1, |
| 1011 44, -1, 45, -1, 46, -1, 47, -1, 48, -1, |
| 1012 49, -1, 50, -1, 51, -1, 73, -1, 52, -1, |
| 1013 53, -1, 80, -1, 54, -1, 55, -1, 76, -1, |
| 1014 56, -1, 57, -1, 58, -1, 59, -1, 60, -1, |
| 1015 77, -1, 61, -1, 62, -1, 74, -1, 63, -1, |
| 1016 64, -1, 65, -1, 66, -1, 78, -1, 67, -1, |
| 1017 68, -1, 75, -1, 69, -1, 70, -1, 71, -1, |
| 1018 72, -1, 79, -1, 116, -1, 115, -1, 114, -1, |
| 1019 81, 231, 223, 293, 224, -1, 81, 223, 293, 224, |
| 1020 -1, 294, -1, 293, 294, -1, 287, 295, 222, -1, |
| 1021 296, -1, 295, 206, 296, -1, 231, -1, 231, 203, |
| 1022 266, 204, -1, 263, -1, 267, -1, 301, -1, 300, |
| 1023 -1, 298, -1, 306, -1, 307, -1, 310, -1, 316, |
| 1024 -1, 320, -1, 223, 224, -1, -1, 223, 302, 305, |
| 1025 224, -1, 304, -1, 300, -1, 223, 224, -1, 223, |
| 1026 305, 224, -1, 299, -1, 305, 299, -1, 222, -1, |
| 1027 265, 222, -1, 14, 201, 265, 202, 308, -1, 299, |
| 1028 12, 299, -1, 299, -1, 265, -1, 278, 231, 221, |
| 1029 297, -1, 17, 201, 265, 202, 311, -1, 223, 224, |
| 1030 -1, 223, 315, 224, -1, 18, 265, 220, -1, 19, |
| 1031 220, -1, 312, -1, 313, 312, -1, 313, 299, -1, |
| 1032 314, 299, -1, 314, -1, 315, 314, -1, 83, 201, |
| 1033 309, 202, 303, -1, 11, 299, 83, 201, 265, 202, |
| 1034 222, -1, 13, 201, 317, 319, 202, 303, -1, 306, |
| 1035 -1, 298, -1, 309, -1, -1, 318, 222, -1, 318, |
| 1036 222, 265, -1, 10, 222, -1, 9, 222, -1, 16, |
| 1037 222, -1, 16, 265, 222, -1, 15, 222, -1, 322, |
| 1038 -1, 267, -1, 229, -1, 327, -1, 268, 304, -1, |
| 1039 36, 86, 223, 324, 224, 222, -1, 279, 36, 86, |
| 1040 223, 324, 224, 222, -1, 326, -1, 326, 324, -1, |
| 1041 -1, 36, -1, 279, 325, 287, 295, 222, -1, 325, |
| 1042 287, 295, 222, -1, 279, 36, 222, -1 |
| 1043 }; |
| 1044 |
| 1045 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ |
| 1046 static const yytype_uint16 yyrline[] = |
| 1047 { |
| 1048 0, 243, 243, 242, 254, 256, 309, 310, 311, 312, |
| 1049 313, 325, 327, 331, 332, 333, 337, 346, 354, 365, |
| 1050 366, 370, 377, 384, 391, 398, 405, 412, 413, 419, |
| 1051 423, 430, 436, 445, 449, 453, 454, 463, 464, 468, |
| 1052 469, 473, 479, 491, 495, 501, 508, 518, 519, 523, |
| 1053 524, 528, 534, 546, 557, 558, 564, 570, 580, 581, |
| 1054 582, 583, 587, 588, 594, 600, 609, 610, 616, 625, |
| 1055 626, 632, 641, 642, 648, 654, 660, 669, 670, 676, |
| 1056 685, 686, 695, 696, 705, 706, 715, 716, 725, 726, |
| 1057 735, 736, 745, 746, 755, 756, 765, 766, 767, 768, |
| 1058 769, 770, 771, 772, 773, 774, 775, 779, 783, 799, |
| 1059 803, 808, 812, 818, 825, 829, 830, 834, 839, 847, |
| 1060 861, 871, 886, 893, 898, 909, 922, 925, 930, 935, |
| 1061 944, 948, 949, 959, 969, 979, 989, 999, 1013, 1020, |
| 1062 1029, 1038, 1047, 1056, 1065, 1074, 1088, 1095, 1106, 1113, |
| 1063 1114, 1124, 1192, 1238, 1260, 1265, 1273, 1278, 1283, 1291, |
| 1064 1299, 1300, 1301, 1306, 1307, 1312, 1317, 1323, 1331, 1336, |
| 1065 1341, 1346, 1352, 1357, 1362, 1367, 1372, 1380, 1384, 1392, |
| 1066 1393, 1399, 1408, 1414, 1420, 1429, 1430, 1431, 1432, 1433, |
| 1067 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, |
| 1068 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, |
| 1069 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, |
| 1070 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, |
| 1071 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, |
| 1072 1484, 1485, 1489, 1499, 1509, 1522, 1529, 1538, 1543, 1551, |
| 1073 1566, 1571, 1579, 1585, 1594, 1598, 1604, 1605, 1609, 1610, |
| 1074 1611, 1612, 1613, 1614, 1618, 1625, 1624, 1638, 1639, 1643, |
| 1075 1649, 1658, 1668, 1680, 1686, 1695, 1704, 1709, 1717, 1721, |
| 1076 1739, 1747, 1752, 1760, 1765, 1773, 1781, 1789, 1797, 1805, |
| 1077 1813, 1821, 1828, 1835, 1845, 1846, 1850, 1852, 1858, 1863, |
| 1078 1872, 1878, 1884, 1890, 1896, 1905, 1906, 1907, 1908, 1912, |
| 1079 1926, 1942, 1965, 1970, 1978, 1980, 1984, 1999, 2016 |
| 1080 }; |
| 1081 #endif |
| 1082 |
| 1083 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE |
| 1084 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. |
| 1085 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ |
| 1086 static const char *const yytname[] = |
| 1087 { |
| 1088 "$end", "error", "$undefined", "ATTRIBUTE", "CONST_TOK", "BOOL_TOK", |
| 1089 "FLOAT_TOK", "INT_TOK", "UINT_TOK", "BREAK", "CONTINUE", "DO", "ELSE", |
| 1090 "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "BVEC2", |
| 1091 "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", "UVEC2", "UVEC3", "UVEC4", |
| 1092 "VEC2", "VEC3", "VEC4", "CENTROID", "IN_TOK", "OUT_TOK", "INOUT_TOK", |
| 1093 "UNIFORM", "VARYING", "NOPERSPECTIVE", "FLAT", "SMOOTH", "MAT2X2", |
| 1094 "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3", |
| 1095 "MAT4X4", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE", |
| 1096 "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", |
| 1097 "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW", |
| 1098 "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D", |
| 1099 "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D", |
| 1100 "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY", |
| 1101 "USAMPLER2DARRAY", "SAMPLER2DRECT", "ISAMPLER2DRECT", "USAMPLER2DRECT", |
| 1102 "SAMPLER2DRECTSHADOW", "SAMPLERBUFFER", "ISAMPLERBUFFER", |
| 1103 "USAMPLERBUFFER", "SAMPLEREXTERNALOES", "STRUCT", "VOID_TOK", "WHILE", |
| 1104 "IDENTIFIER", "TYPE_IDENTIFIER", "NEW_IDENTIFIER", "FLOATCONSTANT", |
| 1105 "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT", "FIELD_SELECTION", |
| 1106 "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", |
| 1107 "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", |
| 1108 "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", |
| 1109 "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "INVARIANT", "LOWP", "MEDIUMP", |
| 1110 "HIGHP", "SUPERP", "PRECISION", "VERSION_TOK", "EXTENSION", "LINE", |
| 1111 "COLON", "EOL", "INTERFACE", "OUTPUT", "PRAGMA_DEBUG_ON", |
| 1112 "PRAGMA_DEBUG_OFF", "PRAGMA_OPTIMIZE_ON", "PRAGMA_OPTIMIZE_OFF", |
| 1113 "PRAGMA_INVARIANT_ALL", "LAYOUT_TOK", "ASM", "CLASS", "UNION", "ENUM", |
| 1114 "TYPEDEF", "TEMPLATE", "THIS", "PACKED_TOK", "GOTO", "INLINE_TOK", |
| 1115 "NOINLINE", "VOLATILE", "PUBLIC_TOK", "STATIC", "EXTERN", "EXTERNAL", |
| 1116 "LONG_TOK", "SHORT_TOK", "DOUBLE_TOK", "HALF", "FIXED_TOK", "UNSIGNED", |
| 1117 "INPUT_TOK", "OUPTUT", "HVEC2", "HVEC3", "HVEC4", "DVEC2", "DVEC3", |
| 1118 "DVEC4", "FVEC2", "FVEC3", "FVEC4", "SAMPLER3DRECT", "SIZEOF", "CAST", |
| 1119 "NAMESPACE", "USING", "ERROR_TOK", "COMMON", "PARTITION", "ACTIVE", |
| 1120 "FILTER", "IMAGE1D", "IMAGE2D", "IMAGE3D", "IMAGECUBE", "IMAGE1DARRAY", |
| 1121 "IMAGE2DARRAY", "IIMAGE1D", "IIMAGE2D", "IIMAGE3D", "IIMAGECUBE", |
| 1122 "IIMAGE1DARRAY", "IIMAGE2DARRAY", "UIMAGE1D", "UIMAGE2D", "UIMAGE3D", |
| 1123 "UIMAGECUBE", "UIMAGE1DARRAY", "UIMAGE2DARRAY", "IMAGE1DSHADOW", |
| 1124 "IMAGE2DSHADOW", "IMAGEBUFFER", "IIMAGEBUFFER", "UIMAGEBUFFER", |
| 1125 "IMAGE1DARRAYSHADOW", "IMAGE2DARRAYSHADOW", "ROW_MAJOR", "'('", "')'", |
| 1126 "'['", "']'", "'.'", "','", "'+'", "'-'", "'!'", "'~'", "'*'", "'/'", |
| 1127 "'%'", "'<'", "'>'", "'&'", "'^'", "'|'", "'?'", "':'", "'='", "';'", |
| 1128 "'{'", "'}'", "$accept", "translation_unit", "$@1", "version_statement", |
| 1129 "pragma_statement", "extension_statement_list", "any_identifier", |
| 1130 "extension_statement", "external_declaration_list", |
| 1131 "variable_identifier", "primary_expression", "postfix_expression", |
| 1132 "integer_expression", "function_call", "function_call_or_method", |
| 1133 "function_call_generic", "function_call_header_no_parameters", |
| 1134 "function_call_header_with_parameters", "function_call_header", |
| 1135 "function_identifier", "method_call_generic", |
| 1136 "method_call_header_no_parameters", "method_call_header_with_parameters", |
| 1137 "method_call_header", "unary_expression", "unary_operator", |
| 1138 "multiplicative_expression", "additive_expression", "shift_expression", |
| 1139 "relational_expression", "equality_expression", "and_expression", |
| 1140 "exclusive_or_expression", "inclusive_or_expression", |
| 1141 "logical_and_expression", "logical_xor_expression", |
| 1142 "logical_or_expression", "conditional_expression", |
| 1143 "assignment_expression", "assignment_operator", "expression", |
| 1144 "constant_expression", "declaration", "function_prototype", |
| 1145 "function_declarator", "function_header_with_parameters", |
| 1146 "function_header", "parameter_declarator", "parameter_declaration", |
| 1147 "parameter_qualifier", "parameter_type_specifier", |
| 1148 "init_declarator_list", "single_declaration", "fully_specified_type", |
| 1149 "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id", |
| 1150 "uniform_block_layout_qualifier", "interpolation_qualifier", |
| 1151 "parameter_type_qualifier", "type_qualifier", "storage_qualifier", |
| 1152 "type_specifier", "type_specifier_no_prec", "type_specifier_nonarray", |
| 1153 "basic_type_specifier_nonarray", "precision_qualifier", |
| 1154 "struct_specifier", "struct_declaration_list", "struct_declaration", |
| 1155 "struct_declarator_list", "struct_declarator", "initializer", |
| 1156 "declaration_statement", "statement", "simple_statement", |
| 1157 "compound_statement", "$@2", "statement_no_new_scope", |
| 1158 "compound_statement_no_new_scope", "statement_list", |
| 1159 "expression_statement", "selection_statement", |
| 1160 "selection_rest_statement", "condition", "switch_statement", |
| 1161 "switch_body", "case_label", "case_label_list", "case_statement", |
| 1162 "case_statement_list", "iteration_statement", "for_init_statement", |
| 1163 "conditionopt", "for_rest_statement", "jump_statement", |
| 1164 "external_declaration", "function_definition", "uniform_block", |
| 1165 "member_list", "uniformopt", "member_declaration", "layout_defaults", 0 |
| 1166 }; |
| 1167 #endif |
| 1168 |
| 1169 # ifdef YYPRINT |
| 1170 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to |
| 1171 token YYLEX-NUM. */ |
| 1172 static const yytype_uint16 yytoknum[] = |
| 1173 { |
| 1174 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, |
| 1175 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, |
| 1176 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, |
| 1177 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, |
| 1178 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, |
| 1179 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, |
| 1180 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, |
| 1181 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, |
| 1182 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, |
| 1183 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, |
| 1184 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, |
| 1185 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, |
| 1186 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, |
| 1187 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, |
| 1188 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, |
| 1189 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, |
| 1190 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, |
| 1191 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, |
| 1192 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, |
| 1193 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, |
| 1194 455, 40, 41, 91, 93, 46, 44, 43, 45, 33, |
| 1195 126, 42, 47, 37, 60, 62, 38, 94, 124, 63, |
| 1196 58, 61, 59, 123, 125 |
| 1197 }; |
| 1198 # endif |
| 1199 |
| 1200 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ |
| 1201 static const yytype_uint16 yyr1[] = |
| 1202 { |
| 1203 0, 225, 227, 226, 228, 228, 229, 229, 229, 229, |
| 1204 229, 230, 230, 231, 231, 231, 232, 233, 233, 234, |
| 1205 234, 235, 235, 235, 235, 235, 235, 236, 236, 236, |
| 1206 236, 236, 236, 237, 238, 239, 239, 240, 240, 241, |
| 1207 241, 242, 242, 243, 244, 244, 244, 245, 245, 246, |
| 1208 246, 247, 247, 248, 249, 249, 249, 249, 250, 250, |
| 1209 250, 250, 251, 251, 251, 251, 252, 252, 252, 253, |
| 1210 253, 253, 254, 254, 254, 254, 254, 255, 255, 255, |
| 1211 256, 256, 257, 257, 258, 258, 259, 259, 260, 260, |
| 1212 261, 261, 262, 262, 263, 263, 264, 264, 264, 264, |
| 1213 264, 264, 264, 264, 264, 264, 264, 265, 265, 266, |
| 1214 267, 267, 267, 267, 268, 269, 269, 270, 270, 271, |
| 1215 272, 272, 273, 273, 273, 273, 274, 274, 274, 274, |
| 1216 275, 276, 276, 276, 276, 276, 276, 276, 277, 277, |
| 1217 277, 277, 277, 277, 277, 277, 278, 278, 279, 280, |
| 1218 280, 281, 281, 281, 282, 282, 283, 283, 283, 284, |
| 1219 285, 285, 285, 285, 285, 285, 285, 285, 286, 286, |
| 1220 286, 286, 286, 286, 286, 286, 286, 287, 287, 288, |
| 1221 288, 288, 289, 289, 289, 290, 290, 290, 290, 290, |
| 1222 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, |
| 1223 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, |
| 1224 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, |
| 1225 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, |
| 1226 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, |
| 1227 290, 290, 291, 291, 291, 292, 292, 293, 293, 294, |
| 1228 295, 295, 296, 296, 297, 298, 299, 299, 300, 300, |
| 1229 300, 300, 300, 300, 301, 302, 301, 303, 303, 304, |
| 1230 304, 305, 305, 306, 306, 307, 308, 308, 309, 309, |
| 1231 310, 311, 311, 312, 312, 313, 313, 314, 314, 315, |
| 1232 315, 316, 316, 316, 317, 317, 318, 318, 319, 319, |
| 1233 320, 320, 320, 320, 320, 321, 321, 321, 321, 322, |
| 1234 323, 323, 324, 324, 325, 325, 326, 326, 327 |
| 1235 }; |
| 1236 |
| 1237 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ |
| 1238 static const yytype_uint8 yyr2[] = |
| 1239 { |
| 1240 0, 2, 0, 4, 0, 3, 2, 2, 2, 2, |
| 1241 2, 0, 2, 1, 1, 1, 5, 1, 2, 1, |
| 1242 1, 1, 1, 1, 1, 1, 3, 1, 4, 1, |
| 1243 3, 2, 2, 1, 1, 1, 3, 2, 2, 2, |
| 1244 1, 2, 3, 2, 1, 1, 1, 2, 2, 2, |
| 1245 1, 2, 3, 2, 1, 2, 2, 2, 1, 1, |
| 1246 1, 1, 1, 3, 3, 3, 1, 3, 3, 1, |
| 1247 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, |
| 1248 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, |
| 1249 1, 3, 1, 5, 1, 3, 1, 1, 1, 1, |
| 1250 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, |
| 1251 2, 2, 4, 1, 2, 1, 1, 2, 3, 3, |
| 1252 2, 5, 3, 2, 3, 2, 0, 1, 1, 1, |
| 1253 1, 1, 3, 5, 6, 7, 8, 5, 1, 2, |
| 1254 4, 5, 6, 7, 4, 2, 1, 2, 4, 1, |
| 1255 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, |
| 1256 1, 1, 2, 1, 2, 2, 3, 1, 1, 1, |
| 1257 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, |
| 1258 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, |
| 1259 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
| 1260 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
| 1261 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
| 1262 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
| 1263 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
| 1264 1, 1, 1, 1, 1, 5, 4, 1, 2, 3, |
| 1265 1, 3, 1, 4, 1, 1, 1, 1, 1, 1, |
| 1266 1, 1, 1, 1, 2, 0, 4, 1, 1, 2, |
| 1267 3, 1, 2, 1, 2, 5, 3, 1, 1, 4, |
| 1268 5, 2, 3, 3, 2, 1, 2, 2, 2, 1, |
| 1269 2, 5, 7, 6, 1, 1, 1, 0, 2, 3, |
| 1270 2, 2, 2, 3, 2, 1, 1, 1, 1, 2, |
| 1271 6, 7, 1, 2, 0, 1, 5, 4, 3 |
| 1272 }; |
| 1273 |
| 1274 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. |
| 1275 Performed when YYTABLE doesn't specify something else to do. Zero |
| 1276 means the default is an error. */ |
| 1277 static const yytype_uint16 yydefact[] = |
| 1278 { |
| 1279 4, 0, 0, 11, 0, 1, 2, 5, 0, 0, |
| 1280 12, 13, 14, 15, 0, 169, 168, 189, 186, 187, |
| 1281 188, 193, 194, 195, 196, 197, 198, 199, 200, 201, |
| 1282 190, 191, 192, 0, 172, 173, 176, 170, 158, 157, |
| 1283 156, 202, 203, 204, 205, 206, 207, 208, 209, 210, |
| 1284 211, 212, 214, 215, 217, 218, 220, 221, 222, 223, |
| 1285 224, 226, 227, 229, 230, 231, 232, 234, 235, 237, |
| 1286 238, 239, 240, 213, 228, 236, 219, 225, 233, 241, |
| 1287 216, 0, 185, 184, 167, 244, 243, 242, 0, 0, |
| 1288 0, 0, 0, 0, 0, 307, 3, 306, 0, 0, |
| 1289 116, 126, 0, 131, 138, 161, 163, 0, 160, 146, |
| 1290 177, 179, 182, 0, 183, 17, 305, 113, 308, 0, |
| 1291 174, 175, 171, 0, 0, 0, 176, 19, 20, 145, |
| 1292 0, 165, 0, 6, 7, 8, 9, 10, 0, 18, |
| 1293 110, 0, 309, 114, 126, 159, 127, 128, 129, 117, |
| 1294 0, 126, 0, 111, 13, 15, 139, 0, 176, 162, |
| 1295 164, 147, 0, 178, 0, 314, 0, 0, 247, 0, |
| 1296 166, 0, 155, 154, 151, 0, 149, 153, 0, 0, |
| 1297 0, 0, 0, 0, 0, 0, 0, 24, 22, 23, |
| 1298 25, 46, 0, 0, 0, 58, 59, 60, 61, 273, |
| 1299 265, 269, 21, 27, 54, 29, 34, 35, 0, 0, |
| 1300 40, 0, 62, 0, 66, 69, 72, 77, 80, 82, |
| 1301 84, 86, 88, 90, 92, 94, 107, 0, 255, 0, |
| 1302 161, 146, 258, 271, 257, 256, 0, 259, 260, 261, |
| 1303 262, 263, 118, 123, 125, 130, 0, 132, 0, 0, |
| 1304 119, 0, 318, 180, 62, 109, 0, 44, 16, 315, |
| 1305 314, 0, 0, 314, 252, 0, 250, 246, 248, 0, |
| 1306 112, 0, 148, 0, 301, 300, 0, 0, 0, 304, |
| 1307 302, 0, 0, 0, 55, 56, 0, 264, 0, 31, |
| 1308 32, 0, 0, 38, 37, 0, 185, 41, 43, 97, |
| 1309 98, 100, 99, 102, 103, 104, 105, 106, 101, 96, |
| 1310 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1312 0, 0, 0, 274, 176, 270, 272, 120, 122, 124, |
| 1313 0, 0, 140, 0, 254, 144, 314, 181, 0, 0, |
| 1314 0, 313, 0, 0, 249, 245, 152, 150, 0, 295, |
| 1315 294, 297, 0, 303, 0, 167, 278, 0, 161, 0, |
| 1316 26, 0, 0, 33, 30, 0, 36, 0, 0, 50, |
| 1317 42, 95, 63, 64, 65, 67, 68, 70, 71, 75, |
| 1318 76, 73, 74, 78, 79, 81, 83, 85, 87, 89, |
| 1319 91, 0, 108, 0, 133, 0, 137, 0, 141, 0, |
| 1320 0, 310, 0, 0, 251, 0, 296, 0, 0, 0, |
| 1321 0, 0, 0, 266, 28, 53, 48, 47, 0, 185, |
| 1322 51, 0, 0, 0, 134, 142, 0, 0, 0, 317, |
| 1323 253, 0, 298, 0, 277, 275, 0, 280, 0, 268, |
| 1324 291, 267, 52, 93, 121, 135, 0, 143, 311, 316, |
| 1325 0, 299, 293, 0, 0, 0, 281, 285, 0, 289, |
| 1326 0, 279, 136, 292, 276, 0, 284, 287, 286, 288, |
| 1327 282, 290, 283 |
| 1328 }; |
| 1329 |
| 1330 /* YYDEFGOTO[NTERM-NUM]. */ |
| 1331 static const yytype_int16 yydefgoto[] = |
| 1332 { |
| 1333 -1, 2, 9, 3, 95, 6, 264, 10, 96, 202, |
| 1334 203, 204, 372, 205, 206, 207, 208, 209, 210, 211, |
| 1335 376, 377, 378, 379, 212, 213, 214, 215, 216, 217, |
| 1336 218, 219, 220, 221, 222, 223, 224, 225, 226, 310, |
| 1337 227, 256, 228, 229, 99, 100, 101, 243, 149, 150, |
| 1338 244, 102, 103, 104, 230, 175, 176, 177, 106, 151, |
| 1339 107, 108, 257, 110, 111, 112, 113, 114, 167, 168, |
| 1340 265, 266, 345, 232, 233, 234, 235, 288, 450, 451, |
| 1341 236, 237, 238, 445, 369, 239, 447, 467, 468, 469, |
| 1342 470, 240, 361, 417, 418, 241, 115, 116, 117, 261, |
| 1343 262, 263, 118 |
| 1344 }; |
| 1345 |
| 1346 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing |
| 1347 STATE-NUM. */ |
| 1348 #define YYPACT_NINF -373 |
| 1349 static const yytype_int16 yypact[] = |
| 1350 { |
| 1351 -75, -37, 53, -373, -50, -373, -19, -373, 160, 2970, |
| 1352 -373, -373, -373, -373, -36, -373, -373, -373, -373, -373, |
| 1353 -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, |
| 1354 -373, -373, -373, 130, -373, -373, 28, -373, -373, -373, |
| 1355 -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, |
| 1356 -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, |
| 1357 -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, |
| 1358 -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, |
| 1359 -373, -58, -373, -373, 43, -373, -373, -373, 147, 0, |
| 1360 17, 20, 26, 46, -26, -373, 2970, -373, -166, -15, |
| 1361 -8, 2, -128, -373, 196, 173, 198, 1003, -373, -373, |
| 1362 -373, 5, -373, 1225, -373, -373, -373, -373, -373, 160, |
| 1363 -373, -373, -373, -20, 1003, 10, -373, -373, -373, -373, |
| 1364 198, -373, 1225, -373, -373, -373, -373, -373, -54, -373, |
| 1365 -373, 460, -373, -373, 100, -373, -373, -373, -373, -373, |
| 1366 1003, 181, 160, -373, 19, 35, -162, 38, -78, -373, |
| 1367 -373, -373, 2180, -373, 95, -3, 160, 559, -373, 1003, |
| 1368 -373, 42, -373, -373, 21, -157, -373, -373, 47, 49, |
| 1369 1347, 40, 64, 50, 1875, 75, 90, -373, -373, -373, |
| 1370 -373, -373, 2568, 2568, 2568, -373, -373, -373, -373, -373, |
| 1371 60, -373, 96, -373, -52, -373, -373, -373, 48, -114, |
| 1372 2759, 98, -42, 2568, 83, -53, 101, -76, 113, 84, |
| 1373 85, 86, 201, 204, -89, -373, -373, -122, -373, 81, |
| 1374 222, 106, -373, -373, -373, -373, 682, -373, -373, -373, |
| 1375 -373, -373, -373, -373, -373, 160, 1003, -149, 2280, 2568, |
| 1376 -373, 87, -373, -373, -373, -373, 104, -373, -373, -373, |
| 1377 273, 91, 1003, -25, 108, -113, -373, -373, -373, 781, |
| 1378 -373, 226, -373, -54, -373, -373, 252, 1776, 2568, -373, |
| 1379 -373, -111, 2568, 2083, -373, -373, -45, -373, 1347, -373, |
| 1380 -373, 2568, 196, -373, -373, 2568, 134, -373, -373, -373, |
| 1381 -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, |
| 1382 2568, -373, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, |
| 1383 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, |
| 1384 2568, 2568, 2568, -373, 251, -373, -373, 135, -373, -373, |
| 1385 2471, 2568, 129, 149, -373, -373, -3, -373, 1003, 132, |
| 1386 160, -373, 2568, 160, -373, -373, -373, -373, 150, -373, |
| 1387 -373, 2083, -34, -373, -24, 309, 151, 160, 198, 156, |
| 1388 -373, 904, 155, 151, -373, 162, -373, 159, -22, 2856, |
| 1389 -373, -373, -373, -373, -373, 83, 83, -53, -53, 101, |
| 1390 101, 101, 101, -76, -76, 113, 84, 85, 86, 201, |
| 1391 204, -107, -373, 2568, 143, 161, -373, 2568, 145, 144, |
| 1392 160, -373, -86, 163, -373, 2568, -373, 148, 167, 1347, |
| 1393 152, 153, 1568, -373, -373, -373, -373, -373, 2568, 169, |
| 1394 -373, 2568, 168, 2568, 157, -373, 2568, 154, -80, -373, |
| 1395 -373, -21, 2568, 1568, 361, -373, -5, -373, 2568, -373, |
| 1396 -373, -373, -373, -373, -373, -373, 2568, -373, -373, -373, |
| 1397 158, 151, -373, 1347, 2568, 164, -373, -373, 1126, 1347, |
| 1398 -2, -373, -373, -373, -373, -101, -373, -373, -373, -373, |
| 1399 -373, 1347, -373 |
| 1400 }; |
| 1401 |
| 1402 /* YYPGOTO[NTERM-NUM]. */ |
| 1403 static const yytype_int16 yypgoto[] = |
| 1404 { |
| 1405 -373, -373, -373, -373, -373, -373, -7, -373, -373, -79, |
| 1406 -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, |
| 1407 -373, -373, -373, -373, 4, -373, -92, -70, -130, -95, |
| 1408 52, 55, 56, 51, 57, 58, -373, -152, -158, -373, |
| 1409 -175, -230, 6, 29, -373, -373, -373, 136, 241, 236, |
| 1410 146, -373, -373, -243, -6, -373, 116, -373, -77, -373, |
| 1411 -373, -82, -9, -74, -373, -373, 302, -373, 224, -145, |
| 1412 -321, 41, -286, 114, -176, -372, -373, -373, -48, 298, |
| 1413 109, 121, -373, -373, 39, -373, -373, -69, -373, -68, |
| 1414 -373, -373, -373, -373, -373, -373, 305, -373, -373, -229, |
| 1415 165, -373, -373 |
| 1416 }; |
| 1417 |
| 1418 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If |
| 1419 positive, shift that token. If negative, reduce the rule which |
| 1420 number is the opposite. If YYTABLE_NINF, syntax error. */ |
| 1421 #define YYTABLE_NINF -313 |
| 1422 static const yytype_int16 yytable[] = |
| 1423 { |
| 1424 109, 14, 131, 105, 276, 129, 145, 130, 251, 281, |
| 1425 255, 259, 330, 464, 465, 97, 464, 465, 343, 286, |
| 1426 319, 320, 268, 159, 160, 157, 11, 12, 13, 412, |
| 1427 11, 12, 13, 259, 351, 146, 147, 148, 98, 163, |
| 1428 367, 248, 289, 290, 1, 272, 15, 16, 170, 273, |
| 1429 449, 4, 297, 5, 340, 406, 140, 141, 171, 249, |
| 1430 336, 299, 300, 301, 302, 303, 304, 305, 306, 307, |
| 1431 308, 449, 341, 7, 125, 33, 34, 35, 152, 126, |
| 1432 37, 38, 39, 40, 332, 172, 119, 109, 294, 438, |
| 1433 105, 344, 295, 353, 153, 332, 255, 156, 161, 332, |
| 1434 333, 8, 97, 362, 145, 332, 94, 364, 366, 354, |
| 1435 405, 363, 164, 431, 123, 166, 373, 409, 367, 482, |
| 1436 353, 435, 413, 133, 268, 98, 353, 127, 94, 128, |
| 1437 331, 174, 231, 146, 147, 148, 439, 380, 321, 322, |
| 1438 134, 245, 459, 135, 252, 247, 173, 455, 159, 136, |
| 1439 457, 291, 381, 292, 315, 316, 401, 370, 166, 260, |
| 1440 166, 332, 471, 120, 121, 124, 254, 122, 419, 137, |
| 1441 472, 231, 332, 432, 402, 138, 15, 16, 420, 309, |
| 1442 427, 460, 332, 344, 428, 332, 366, 143, 255, 389, |
| 1443 390, 391, 392, 317, 318, 336, 284, 285, 144, -312, |
| 1444 255, 15, 16, 165, -115, 33, 34, 35, 162, 158, |
| 1445 37, 323, 324, 375, 146, 147, 148, 311, 258, 466, |
| 1446 -19, 430, 480, 385, 386, 15, 16, 231, 393, 394, |
| 1447 33, 34, 35, 169, 126, 37, -20, 245, 337, 250, |
| 1448 441, 277, 271, 444, 11, 12, 13, 387, 388, 344, |
| 1449 293, 255, 254, 350, 33, 34, 35, 260, 334, 37, |
| 1450 166, 85, 86, 87, 270, 278, 174, 461, 231, 274, |
| 1451 452, 275, 279, 453, 231, 344, 282, 368, 344, 231, |
| 1452 154, 12, 155, 131, 287, 374, 159, 474, 130, 475, |
| 1453 344, 283, 477, 479, 312, 313, 314, -45, 344, 298, |
| 1454 325, 328, 326, 140, 327, 479, 329, -44, 347, 259, |
| 1455 346, 352, 15, 16, 356, 349, 382, 383, 384, 254, |
| 1456 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, |
| 1457 254, 254, 254, 254, 254, 358, -39, 251, 403, 410, |
| 1458 260, 33, 34, 35, 254, 126, 37, 38, 39, 40, |
| 1459 407, 415, 231, 408, 411, 368, 254, 332, 422, 424, |
| 1460 421, 426, 231, 425, 433, 434, 436, 440, 437, 443, |
| 1461 442, -49, 454, 463, 448, 446, 458, 395, 456, 398, |
| 1462 473, 396, 338, 397, 476, 242, 399, 246, 400, 357, |
| 1463 132, 359, 339, 269, 414, 462, 142, 371, 360, 478, |
| 1464 416, 139, 481, 0, 0, 0, 0, 254, 0, 0, |
| 1465 231, 0, 0, 231, 0, 0, 0, 0, 0, 0, |
| 1466 0, 0, 0, 0, 0, 348, 0, 0, 0, 0, |
| 1467 0, 0, 0, 0, 231, 0, 0, 0, 0, 0, |
| 1468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1469 0, 0, 0, 0, 231, 0, 0, 0, 0, 231, |
| 1470 231, 0, 0, 15, 16, 17, 18, 19, 20, 178, |
| 1471 179, 180, 231, 181, 182, 183, 184, 185, 0, 0, |
| 1472 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, |
| 1473 31, 32, 33, 34, 35, 0, 36, 37, 38, 39, |
| 1474 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, |
| 1475 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, |
| 1476 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, |
| 1477 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, |
| 1478 80, 81, 82, 186, 127, 83, 128, 187, 188, 189, |
| 1479 190, 191, 0, 0, 192, 193, 0, 0, 0, 0, |
| 1480 0, 0, 0, 0, 17, 18, 19, 20, 0, 0, |
| 1481 0, 0, 0, 84, 85, 86, 87, 0, 88, 21, |
| 1482 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, |
| 1483 32, 94, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1484 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, |
| 1485 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, |
| 1486 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, |
| 1487 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, |
| 1488 81, 82, 0, 0, 83, 0, 0, 0, 0, 0, |
| 1489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1490 0, 194, 0, 0, 0, 0, 0, 195, 196, 197, |
| 1491 198, 0, 0, 85, 86, 87, 0, 0, 0, 0, |
| 1492 0, 0, 199, 200, 201, 15, 16, 17, 18, 19, |
| 1493 20, 178, 179, 180, 0, 181, 182, 183, 184, 185, |
| 1494 0, 0, 21, 22, 23, 24, 25, 26, 27, 28, |
| 1495 29, 30, 31, 32, 33, 34, 35, 0, 36, 37, |
| 1496 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, |
| 1497 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, |
| 1498 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, |
| 1499 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, |
| 1500 78, 79, 80, 81, 82, 186, 127, 83, 128, 187, |
| 1501 188, 189, 190, 191, 0, 0, 192, 193, 0, 0, |
| 1502 0, 0, 0, 267, 0, 0, 17, 18, 19, 20, |
| 1503 0, 0, 0, 0, 0, 84, 85, 86, 87, 0, |
| 1504 88, 21, 22, 23, 24, 25, 26, 27, 28, 29, |
| 1505 30, 31, 32, 94, 0, 0, 0, 0, 0, 0, |
| 1506 0, 0, 41, 42, 43, 44, 45, 46, 47, 48, |
| 1507 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, |
| 1508 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, |
| 1509 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, |
| 1510 79, 80, 81, 82, 0, 0, 83, 0, 0, 0, |
| 1511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1512 0, 0, 0, 194, 0, 0, 0, 0, 0, 195, |
| 1513 196, 197, 198, 0, 0, 85, 86, 87, 0, 0, |
| 1514 0, 0, 0, 0, 199, 200, 335, 15, 16, 17, |
| 1515 18, 19, 20, 178, 179, 180, 0, 181, 182, 183, |
| 1516 184, 185, 0, 0, 21, 22, 23, 24, 25, 26, |
| 1517 27, 28, 29, 30, 31, 32, 33, 34, 35, 0, |
| 1518 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, |
| 1519 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, |
| 1520 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, |
| 1521 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, |
| 1522 76, 77, 78, 79, 80, 81, 82, 186, 127, 83, |
| 1523 128, 187, 188, 189, 190, 191, 0, 0, 192, 193, |
| 1524 0, 0, 0, 0, 0, 355, 0, 0, 17, 18, |
| 1525 19, 20, 0, 0, 0, 0, 0, 84, 85, 86, |
| 1526 87, 0, 88, 21, 22, 23, 24, 25, 26, 27, |
| 1527 28, 29, 30, 31, 32, 94, 0, 0, 0, 0, |
| 1528 0, 0, 0, 0, 41, 42, 43, 44, 45, 46, |
| 1529 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, |
| 1530 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, |
| 1531 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, |
| 1532 77, 78, 79, 80, 81, 82, 0, 0, 83, 0, |
| 1533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1534 0, 0, 0, 0, 0, 194, 0, 0, 0, 0, |
| 1535 0, 195, 196, 197, 198, 0, 0, 85, 86, 87, |
| 1536 0, 0, 0, 0, 0, 0, 199, 200, 423, 15, |
| 1537 16, 17, 18, 19, 20, 178, 179, 180, 0, 181, |
| 1538 182, 183, 184, 185, 464, 465, 21, 22, 23, 24, |
| 1539 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, |
| 1540 35, 0, 36, 37, 38, 39, 40, 41, 42, 43, |
| 1541 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, |
| 1542 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
| 1543 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, |
| 1544 74, 75, 76, 77, 78, 79, 80, 81, 82, 186, |
| 1545 127, 83, 128, 187, 188, 189, 190, 191, 0, 0, |
| 1546 192, 193, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1547 17, 18, 19, 20, 0, 0, 0, 0, 0, 84, |
| 1548 85, 86, 87, 0, 88, 21, 22, 23, 24, 25, |
| 1549 26, 27, 28, 29, 30, 31, 32, 94, 0, 0, |
| 1550 0, 0, 0, 0, 0, 0, 41, 42, 43, 44, |
| 1551 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, |
| 1552 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, |
| 1553 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, |
| 1554 75, 76, 77, 78, 79, 80, 81, 82, 0, 0, |
| 1555 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1556 0, 0, 0, 0, 0, 0, 0, 194, 0, 0, |
| 1557 0, 0, 0, 195, 196, 197, 198, 0, 0, 0, |
| 1558 0, 0, 0, 0, 0, 0, 0, 0, 199, 200, |
| 1559 15, 16, 17, 18, 19, 20, 178, 179, 180, 0, |
| 1560 181, 182, 183, 184, 185, 0, 0, 21, 22, 23, |
| 1561 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, |
| 1562 34, 35, 0, 36, 37, 38, 39, 40, 41, 42, |
| 1563 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, |
| 1564 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, |
| 1565 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, |
| 1566 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, |
| 1567 186, 127, 83, 128, 187, 188, 189, 190, 191, 0, |
| 1568 0, 192, 193, 0, 0, 0, 0, 0, 0, 0, |
| 1569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1570 84, 85, 86, 87, 0, 88, 0, 0, 0, 0, |
| 1571 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, |
| 1572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1578 0, 0, 0, 0, 0, 0, 0, 0, 194, 0, |
| 1579 0, 0, 0, 0, 195, 196, 197, 198, 0, 0, |
| 1580 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, |
| 1581 200, 15, 16, 17, 18, 19, 20, 178, 179, 180, |
| 1582 0, 181, 182, 183, 184, 185, 0, 0, 21, 22, |
| 1583 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, |
| 1584 33, 34, 35, 0, 36, 37, 38, 39, 40, 41, |
| 1585 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, |
| 1586 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, |
| 1587 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, |
| 1588 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, |
| 1589 82, 186, 127, 83, 128, 187, 188, 189, 190, 191, |
| 1590 0, 0, 192, 193, 0, 0, 0, 0, 0, 0, |
| 1591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1592 0, 84, 85, 86, 87, 0, 88, 0, 0, 0, |
| 1593 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, |
| 1594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1600 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, |
| 1601 0, 0, 0, 0, 0, 195, 196, 197, 198, 15, |
| 1602 16, 17, 18, 19, 20, 0, 0, 0, 0, 0, |
| 1603 199, 141, 0, 0, 0, 0, 21, 22, 23, 24, |
| 1604 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, |
| 1605 35, 0, 36, 37, 38, 39, 40, 41, 42, 43, |
| 1606 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, |
| 1607 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
| 1608 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, |
| 1609 74, 75, 76, 77, 78, 79, 80, 81, 82, 0, |
| 1610 127, 83, 128, 187, 188, 189, 190, 191, 0, 0, |
| 1611 192, 193, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1612 17, 18, 19, 20, 0, 0, 0, 0, 0, 84, |
| 1613 85, 86, 87, 0, 88, 21, 22, 23, 24, 25, |
| 1614 26, 27, 28, 29, 30, 31, 32, 94, 0, 0, |
| 1615 0, 0, 0, 0, 0, 0, 41, 42, 43, 44, |
| 1616 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, |
| 1617 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, |
| 1618 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, |
| 1619 75, 76, 77, 78, 79, 80, 81, 82, 0, 127, |
| 1620 83, 128, 187, 188, 189, 190, 191, 0, 0, 192, |
| 1621 193, 0, 0, 0, 0, 0, 0, 194, 0, 0, |
| 1622 0, 0, 0, 195, 196, 197, 198, 0, 0, 85, |
| 1623 86, 87, 0, 0, 0, 0, 0, 0, 199, 0, |
| 1624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1626 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1631 0, 0, 0, 0, 0, 0, 194, 0, 0, 0, |
| 1632 0, 0, 195, 196, 197, 198, 15, 16, 17, 18, |
| 1633 19, 20, 0, 0, 0, 0, 0, 280, 0, 0, |
| 1634 0, 0, 0, 21, 22, 23, 24, 25, 26, 27, |
| 1635 28, 29, 30, 31, 32, 33, 34, 35, 0, 126, |
| 1636 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, |
| 1637 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, |
| 1638 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, |
| 1639 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, |
| 1640 77, 78, 79, 80, 81, 82, 0, 127, 83, 128, |
| 1641 187, 188, 189, 190, 191, 0, 0, 192, 193, 0, |
| 1642 0, 0, 0, 0, 0, 17, 18, 19, 20, 0, |
| 1643 0, 0, 0, 0, 0, 0, 365, 85, 86, 87, |
| 1644 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, |
| 1645 31, 32, 0, 0, 94, 0, 0, 0, 0, 0, |
| 1646 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, |
| 1647 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, |
| 1648 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, |
| 1649 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, |
| 1650 80, 81, 82, 0, 127, 83, 128, 187, 188, 189, |
| 1651 190, 191, 0, 0, 192, 193, 0, 0, 0, 0, |
| 1652 0, 0, 0, 0, 194, 17, 18, 19, 20, 0, |
| 1653 195, 196, 197, 198, 85, 86, 87, 0, 0, 0, |
| 1654 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, |
| 1655 31, 32, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1656 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, |
| 1657 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, |
| 1658 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, |
| 1659 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, |
| 1660 80, 81, 82, 0, 127, 83, 128, 187, 188, 189, |
| 1661 190, 191, 0, 0, 192, 193, 0, 0, 0, 0, |
| 1662 0, 194, 0, 0, 253, 0, 0, 195, 196, 197, |
| 1663 198, 0, 0, 0, 85, 86, 87, 0, 0, 0, |
| 1664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1671 0, 0, 0, 0, 0, 0, 17, 18, 19, 20, |
| 1672 0, 194, 0, 0, 342, 0, 0, 195, 196, 197, |
| 1673 198, 21, 22, 23, 24, 25, 26, 27, 28, 29, |
| 1674 30, 31, 32, 0, 0, 0, 0, 0, 0, 0, |
| 1675 0, 0, 41, 42, 43, 44, 45, 46, 47, 48, |
| 1676 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, |
| 1677 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, |
| 1678 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, |
| 1679 79, 80, 81, 82, 0, 127, 83, 128, 187, 188, |
| 1680 189, 190, 191, 0, 0, 192, 193, 0, 0, 0, |
| 1681 0, 0, 0, 17, 18, 19, 20, 0, 0, 0, |
| 1682 0, 0, 0, 0, 0, 85, 86, 87, 21, 22, |
| 1683 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, |
| 1684 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, |
| 1685 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, |
| 1686 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, |
| 1687 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, |
| 1688 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, |
| 1689 82, 0, 127, 83, 128, 187, 188, 189, 190, 191, |
| 1690 0, 0, 192, 193, 0, 0, 0, 0, 0, 0, |
| 1691 0, 0, 194, 0, 0, 404, 0, 0, 195, 196, |
| 1692 197, 198, 85, 86, 87, 0, 0, 0, 0, 0, |
| 1693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1694 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1700 0, 0, 0, 0, 17, 18, 19, 20, 0, 194, |
| 1701 0, 0, 0, 0, 0, 195, 196, 197, 198, 21, |
| 1702 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, |
| 1703 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1704 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, |
| 1705 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, |
| 1706 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, |
| 1707 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, |
| 1708 81, 296, 0, 127, 83, 128, 187, 188, 189, 190, |
| 1709 191, 0, 0, 192, 193, 0, 0, 0, 0, 0, |
| 1710 0, 17, 18, 19, 20, 0, 0, 0, 0, 0, |
| 1711 0, 0, 0, 85, 86, 87, 21, 22, 23, 24, |
| 1712 25, 26, 27, 28, 29, 30, 31, 32, 0, 0, |
| 1713 0, 0, 0, 0, 0, 0, 0, 41, 42, 43, |
| 1714 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, |
| 1715 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
| 1716 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, |
| 1717 74, 75, 76, 77, 78, 79, 80, 81, 429, 0, |
| 1718 127, 83, 128, 187, 188, 189, 190, 191, 0, 0, |
| 1719 192, 193, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1720 194, 0, 0, 0, 0, 0, 195, 196, 197, 198, |
| 1721 85, 86, 87, 15, 16, 17, 18, 19, 20, 0, |
| 1722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1723 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, |
| 1724 31, 32, 33, 34, 35, 0, 36, 37, 38, 39, |
| 1725 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, |
| 1726 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, |
| 1727 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, |
| 1728 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, |
| 1729 80, 81, 82, 0, 0, 83, 0, 194, 0, 0, |
| 1730 0, 0, 0, 195, 196, 197, 198, 0, 0, 0, |
| 1731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1732 0, 0, 0, 84, 85, 86, 87, 0, 88, 0, |
| 1733 0, 0, 0, 0, 0, 0, 89, 90, 91, 92, |
| 1734 93, 94 |
| 1735 }; |
| 1736 |
| 1737 #define yypact_value_is_default(yystate) \ |
| 1738 ((yystate) == (-373)) |
| 1739 |
| 1740 #define yytable_value_is_error(yytable_value) \ |
| 1741 YYID (0) |
| 1742 |
| 1743 static const yytype_int16 yycheck[] = |
| 1744 { |
| 1745 9, 8, 84, 9, 180, 84, 4, 84, 86, 184, |
| 1746 162, 36, 101, 18, 19, 9, 18, 19, 248, 194, |
| 1747 96, 97, 167, 105, 106, 104, 84, 85, 86, 350, |
| 1748 84, 85, 86, 36, 263, 33, 34, 35, 9, 113, |
| 1749 283, 203, 94, 95, 119, 202, 3, 4, 130, 206, |
| 1750 422, 88, 210, 0, 203, 341, 222, 223, 132, 221, |
| 1751 236, 103, 104, 105, 106, 107, 108, 109, 110, 111, |
| 1752 112, 443, 221, 123, 81, 32, 33, 34, 206, 36, |
| 1753 37, 38, 39, 40, 206, 139, 122, 96, 202, 410, |
| 1754 96, 249, 206, 206, 222, 206, 248, 104, 107, 206, |
| 1755 222, 120, 96, 278, 4, 206, 131, 282, 283, 222, |
| 1756 340, 222, 119, 220, 86, 124, 291, 346, 361, 220, |
| 1757 206, 407, 352, 123, 269, 96, 206, 84, 131, 86, |
| 1758 219, 138, 141, 33, 34, 35, 222, 295, 214, 215, |
| 1759 123, 150, 222, 123, 222, 152, 200, 433, 230, 123, |
| 1760 436, 203, 310, 205, 207, 208, 331, 202, 167, 165, |
| 1761 169, 206, 448, 33, 34, 223, 162, 37, 202, 123, |
| 1762 456, 180, 206, 403, 332, 201, 3, 4, 202, 221, |
| 1763 202, 202, 206, 341, 206, 206, 361, 202, 340, 319, |
| 1764 320, 321, 322, 92, 93, 371, 192, 193, 206, 224, |
| 1765 352, 3, 4, 223, 202, 32, 33, 34, 203, 36, |
| 1766 37, 98, 99, 292, 33, 34, 35, 213, 123, 224, |
| 1767 201, 379, 224, 315, 316, 3, 4, 236, 323, 324, |
| 1768 32, 33, 34, 223, 36, 37, 201, 246, 245, 201, |
| 1769 415, 201, 221, 419, 84, 85, 86, 317, 318, 407, |
| 1770 202, 403, 248, 262, 32, 33, 34, 263, 36, 37, |
| 1771 269, 114, 115, 116, 222, 201, 273, 442, 277, 222, |
| 1772 428, 222, 222, 431, 283, 433, 201, 283, 436, 288, |
| 1773 84, 85, 86, 365, 224, 292, 368, 463, 365, 464, |
| 1774 448, 201, 468, 469, 211, 212, 213, 201, 456, 201, |
| 1775 216, 100, 217, 222, 218, 481, 102, 201, 204, 36, |
| 1776 223, 203, 3, 4, 88, 224, 312, 313, 314, 315, |
| 1777 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, |
| 1778 326, 327, 328, 329, 330, 83, 202, 86, 203, 348, |
| 1779 346, 32, 33, 34, 340, 36, 37, 38, 39, 40, |
| 1780 221, 201, 361, 204, 222, 361, 352, 206, 202, 204, |
| 1781 367, 202, 371, 201, 221, 204, 221, 204, 224, 202, |
| 1782 222, 202, 204, 12, 221, 223, 222, 325, 221, 328, |
| 1783 222, 326, 246, 327, 220, 144, 329, 151, 330, 273, |
| 1784 88, 277, 246, 169, 353, 443, 98, 288, 277, 468, |
| 1785 361, 96, 470, -1, -1, -1, -1, 403, -1, -1, |
| 1786 419, -1, -1, 422, -1, -1, -1, -1, -1, -1, |
| 1787 -1, -1, -1, -1, -1, 260, -1, -1, -1, -1, |
| 1788 -1, -1, -1, -1, 443, -1, -1, -1, -1, -1, |
| 1789 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1790 -1, -1, -1, -1, 463, -1, -1, -1, -1, 468, |
| 1791 469, -1, -1, 3, 4, 5, 6, 7, 8, 9, |
| 1792 10, 11, 481, 13, 14, 15, 16, 17, -1, -1, |
| 1793 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, |
| 1794 30, 31, 32, 33, 34, -1, 36, 37, 38, 39, |
| 1795 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, |
| 1796 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, |
| 1797 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, |
| 1798 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, |
| 1799 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, |
| 1800 90, 91, -1, -1, 94, 95, -1, -1, -1, -1, |
| 1801 -1, -1, -1, -1, 5, 6, 7, 8, -1, -1, |
| 1802 -1, -1, -1, 113, 114, 115, 116, -1, 118, 20, |
| 1803 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, |
| 1804 31, 131, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1805 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, |
| 1806 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, |
| 1807 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, |
| 1808 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, |
| 1809 81, 82, -1, -1, 85, -1, -1, -1, -1, -1, |
| 1810 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1811 -1, 201, -1, -1, -1, -1, -1, 207, 208, 209, |
| 1812 210, -1, -1, 114, 115, 116, -1, -1, -1, -1, |
| 1813 -1, -1, 222, 223, 224, 3, 4, 5, 6, 7, |
| 1814 8, 9, 10, 11, -1, 13, 14, 15, 16, 17, |
| 1815 -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, |
| 1816 28, 29, 30, 31, 32, 33, 34, -1, 36, 37, |
| 1817 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, |
| 1818 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, |
| 1819 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, |
| 1820 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, |
| 1821 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, |
| 1822 88, 89, 90, 91, -1, -1, 94, 95, -1, -1, |
| 1823 -1, -1, -1, 224, -1, -1, 5, 6, 7, 8, |
| 1824 -1, -1, -1, -1, -1, 113, 114, 115, 116, -1, |
| 1825 118, 20, 21, 22, 23, 24, 25, 26, 27, 28, |
| 1826 29, 30, 31, 131, -1, -1, -1, -1, -1, -1, |
| 1827 -1, -1, 41, 42, 43, 44, 45, 46, 47, 48, |
| 1828 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, |
| 1829 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, |
| 1830 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, |
| 1831 79, 80, 81, 82, -1, -1, 85, -1, -1, -1, |
| 1832 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1833 -1, -1, -1, 201, -1, -1, -1, -1, -1, 207, |
| 1834 208, 209, 210, -1, -1, 114, 115, 116, -1, -1, |
| 1835 -1, -1, -1, -1, 222, 223, 224, 3, 4, 5, |
| 1836 6, 7, 8, 9, 10, 11, -1, 13, 14, 15, |
| 1837 16, 17, -1, -1, 20, 21, 22, 23, 24, 25, |
| 1838 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, |
| 1839 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, |
| 1840 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, |
| 1841 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, |
| 1842 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, |
| 1843 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, |
| 1844 86, 87, 88, 89, 90, 91, -1, -1, 94, 95, |
| 1845 -1, -1, -1, -1, -1, 224, -1, -1, 5, 6, |
| 1846 7, 8, -1, -1, -1, -1, -1, 113, 114, 115, |
| 1847 116, -1, 118, 20, 21, 22, 23, 24, 25, 26, |
| 1848 27, 28, 29, 30, 31, 131, -1, -1, -1, -1, |
| 1849 -1, -1, -1, -1, 41, 42, 43, 44, 45, 46, |
| 1850 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, |
| 1851 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, |
| 1852 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, |
| 1853 77, 78, 79, 80, 81, 82, -1, -1, 85, -1, |
| 1854 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1855 -1, -1, -1, -1, -1, 201, -1, -1, -1, -1, |
| 1856 -1, 207, 208, 209, 210, -1, -1, 114, 115, 116, |
| 1857 -1, -1, -1, -1, -1, -1, 222, 223, 224, 3, |
| 1858 4, 5, 6, 7, 8, 9, 10, 11, -1, 13, |
| 1859 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, |
| 1860 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, |
| 1861 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, |
| 1862 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, |
| 1863 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
| 1864 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, |
| 1865 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, |
| 1866 84, 85, 86, 87, 88, 89, 90, 91, -1, -1, |
| 1867 94, 95, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1868 5, 6, 7, 8, -1, -1, -1, -1, -1, 113, |
| 1869 114, 115, 116, -1, 118, 20, 21, 22, 23, 24, |
| 1870 25, 26, 27, 28, 29, 30, 31, 131, -1, -1, |
| 1871 -1, -1, -1, -1, -1, -1, 41, 42, 43, 44, |
| 1872 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, |
| 1873 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, |
| 1874 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, |
| 1875 75, 76, 77, 78, 79, 80, 81, 82, -1, -1, |
| 1876 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1877 -1, -1, -1, -1, -1, -1, -1, 201, -1, -1, |
| 1878 -1, -1, -1, 207, 208, 209, 210, -1, -1, -1, |
| 1879 -1, -1, -1, -1, -1, -1, -1, -1, 222, 223, |
| 1880 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, |
| 1881 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, |
| 1882 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, |
| 1883 33, 34, -1, 36, 37, 38, 39, 40, 41, 42, |
| 1884 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, |
| 1885 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, |
| 1886 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, |
| 1887 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, |
| 1888 83, 84, 85, 86, 87, 88, 89, 90, 91, -1, |
| 1889 -1, 94, 95, -1, -1, -1, -1, -1, -1, -1, |
| 1890 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1891 113, 114, 115, 116, -1, 118, -1, -1, -1, -1, |
| 1892 -1, -1, -1, -1, -1, -1, -1, -1, 131, -1, |
| 1893 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1894 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1895 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1896 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1897 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1898 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1899 -1, -1, -1, -1, -1, -1, -1, -1, 201, -1, |
| 1900 -1, -1, -1, -1, 207, 208, 209, 210, -1, -1, |
| 1901 -1, -1, -1, -1, -1, -1, -1, -1, -1, 222, |
| 1902 223, 3, 4, 5, 6, 7, 8, 9, 10, 11, |
| 1903 -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, |
| 1904 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, |
| 1905 32, 33, 34, -1, 36, 37, 38, 39, 40, 41, |
| 1906 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, |
| 1907 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, |
| 1908 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, |
| 1909 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, |
| 1910 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, |
| 1911 -1, -1, 94, 95, -1, -1, -1, -1, -1, -1, |
| 1912 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1913 -1, 113, 114, 115, 116, -1, 118, -1, -1, -1, |
| 1914 -1, -1, -1, -1, -1, -1, -1, -1, -1, 131, |
| 1915 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1916 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1917 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1918 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1919 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1920 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1921 -1, -1, -1, -1, -1, -1, -1, -1, -1, 201, |
| 1922 -1, -1, -1, -1, -1, 207, 208, 209, 210, 3, |
| 1923 4, 5, 6, 7, 8, -1, -1, -1, -1, -1, |
| 1924 222, 223, -1, -1, -1, -1, 20, 21, 22, 23, |
| 1925 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, |
| 1926 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, |
| 1927 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, |
| 1928 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
| 1929 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, |
| 1930 74, 75, 76, 77, 78, 79, 80, 81, 82, -1, |
| 1931 84, 85, 86, 87, 88, 89, 90, 91, -1, -1, |
| 1932 94, 95, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1933 5, 6, 7, 8, -1, -1, -1, -1, -1, 113, |
| 1934 114, 115, 116, -1, 118, 20, 21, 22, 23, 24, |
| 1935 25, 26, 27, 28, 29, 30, 31, 131, -1, -1, |
| 1936 -1, -1, -1, -1, -1, -1, 41, 42, 43, 44, |
| 1937 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, |
| 1938 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, |
| 1939 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, |
| 1940 75, 76, 77, 78, 79, 80, 81, 82, -1, 84, |
| 1941 85, 86, 87, 88, 89, 90, 91, -1, -1, 94, |
| 1942 95, -1, -1, -1, -1, -1, -1, 201, -1, -1, |
| 1943 -1, -1, -1, 207, 208, 209, 210, -1, -1, 114, |
| 1944 115, 116, -1, -1, -1, -1, -1, -1, 222, -1, |
| 1945 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1946 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1947 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1948 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1949 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1950 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1951 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1952 -1, -1, -1, -1, -1, -1, 201, -1, -1, -1, |
| 1953 -1, -1, 207, 208, 209, 210, 3, 4, 5, 6, |
| 1954 7, 8, -1, -1, -1, -1, -1, 222, -1, -1, |
| 1955 -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, |
| 1956 27, 28, 29, 30, 31, 32, 33, 34, -1, 36, |
| 1957 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, |
| 1958 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, |
| 1959 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, |
| 1960 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, |
| 1961 77, 78, 79, 80, 81, 82, -1, 84, 85, 86, |
| 1962 87, 88, 89, 90, 91, -1, -1, 94, 95, -1, |
| 1963 -1, -1, -1, -1, -1, 5, 6, 7, 8, -1, |
| 1964 -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, |
| 1965 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, |
| 1966 30, 31, -1, -1, 131, -1, -1, -1, -1, -1, |
| 1967 -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, |
| 1968 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, |
| 1969 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, |
| 1970 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, |
| 1971 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, |
| 1972 90, 91, -1, -1, 94, 95, -1, -1, -1, -1, |
| 1973 -1, -1, -1, -1, 201, 5, 6, 7, 8, -1, |
| 1974 207, 208, 209, 210, 114, 115, 116, -1, -1, -1, |
| 1975 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, |
| 1976 30, 31, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1977 -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, |
| 1978 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, |
| 1979 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, |
| 1980 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, |
| 1981 80, 81, 82, -1, 84, 85, 86, 87, 88, 89, |
| 1982 90, 91, -1, -1, 94, 95, -1, -1, -1, -1, |
| 1983 -1, 201, -1, -1, 204, -1, -1, 207, 208, 209, |
| 1984 210, -1, -1, -1, 114, 115, 116, -1, -1, -1, |
| 1985 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1986 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1987 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1988 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1989 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1990 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1991 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 1992 -1, -1, -1, -1, -1, -1, 5, 6, 7, 8, |
| 1993 -1, 201, -1, -1, 204, -1, -1, 207, 208, 209, |
| 1994 210, 20, 21, 22, 23, 24, 25, 26, 27, 28, |
| 1995 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, |
| 1996 -1, -1, 41, 42, 43, 44, 45, 46, 47, 48, |
| 1997 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, |
| 1998 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, |
| 1999 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, |
| 2000 79, 80, 81, 82, -1, 84, 85, 86, 87, 88, |
| 2001 89, 90, 91, -1, -1, 94, 95, -1, -1, -1, |
| 2002 -1, -1, -1, 5, 6, 7, 8, -1, -1, -1, |
| 2003 -1, -1, -1, -1, -1, 114, 115, 116, 20, 21, |
| 2004 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, |
| 2005 -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, |
| 2006 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, |
| 2007 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, |
| 2008 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, |
| 2009 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, |
| 2010 82, -1, 84, 85, 86, 87, 88, 89, 90, 91, |
| 2011 -1, -1, 94, 95, -1, -1, -1, -1, -1, -1, |
| 2012 -1, -1, 201, -1, -1, 204, -1, -1, 207, 208, |
| 2013 209, 210, 114, 115, 116, -1, -1, -1, -1, -1, |
| 2014 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 2015 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 2016 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 2017 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 2018 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 2019 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 2020 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 2021 -1, -1, -1, -1, 5, 6, 7, 8, -1, 201, |
| 2022 -1, -1, -1, -1, -1, 207, 208, 209, 210, 20, |
| 2023 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, |
| 2024 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 2025 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, |
| 2026 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, |
| 2027 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, |
| 2028 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, |
| 2029 81, 82, -1, 84, 85, 86, 87, 88, 89, 90, |
| 2030 91, -1, -1, 94, 95, -1, -1, -1, -1, -1, |
| 2031 -1, 5, 6, 7, 8, -1, -1, -1, -1, -1, |
| 2032 -1, -1, -1, 114, 115, 116, 20, 21, 22, 23, |
| 2033 24, 25, 26, 27, 28, 29, 30, 31, -1, -1, |
| 2034 -1, -1, -1, -1, -1, -1, -1, 41, 42, 43, |
| 2035 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, |
| 2036 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
| 2037 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, |
| 2038 74, 75, 76, 77, 78, 79, 80, 81, 82, -1, |
| 2039 84, 85, 86, 87, 88, 89, 90, 91, -1, -1, |
| 2040 94, 95, -1, -1, -1, -1, -1, -1, -1, -1, |
| 2041 201, -1, -1, -1, -1, -1, 207, 208, 209, 210, |
| 2042 114, 115, 116, 3, 4, 5, 6, 7, 8, -1, |
| 2043 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 2044 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, |
| 2045 30, 31, 32, 33, 34, -1, 36, 37, 38, 39, |
| 2046 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, |
| 2047 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, |
| 2048 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, |
| 2049 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, |
| 2050 80, 81, 82, -1, -1, 85, -1, 201, -1, -1, |
| 2051 -1, -1, -1, 207, 208, 209, 210, -1, -1, -1, |
| 2052 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 2053 -1, -1, -1, 113, 114, 115, 116, -1, 118, -1, |
| 2054 -1, -1, -1, -1, -1, -1, 126, 127, 128, 129, |
| 2055 130, 131 |
| 2056 }; |
| 2057 |
| 2058 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing |
| 2059 symbol of state STATE-NUM. */ |
| 2060 static const yytype_uint16 yystos[] = |
| 2061 { |
| 2062 0, 119, 226, 228, 88, 0, 230, 123, 120, 227, |
| 2063 232, 84, 85, 86, 231, 3, 4, 5, 6, 7, |
| 2064 8, 20, 21, 22, 23, 24, 25, 26, 27, 28, |
| 2065 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, |
| 2066 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, |
| 2067 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, |
| 2068 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, |
| 2069 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, |
| 2070 80, 81, 82, 85, 113, 114, 115, 116, 118, 126, |
| 2071 127, 128, 129, 130, 131, 229, 233, 267, 268, 269, |
| 2072 270, 271, 276, 277, 278, 279, 283, 285, 286, 287, |
| 2073 288, 289, 290, 291, 292, 321, 322, 323, 327, 122, |
| 2074 33, 34, 37, 86, 223, 231, 36, 84, 86, 234, |
| 2075 283, 286, 291, 123, 123, 123, 123, 123, 201, 321, |
| 2076 222, 223, 304, 202, 206, 4, 33, 34, 35, 273, |
| 2077 274, 284, 206, 222, 84, 86, 231, 234, 36, 286, |
| 2078 286, 287, 203, 288, 231, 223, 287, 293, 294, 223, |
| 2079 286, 288, 139, 200, 231, 280, 281, 282, 9, 10, |
| 2080 11, 13, 14, 15, 16, 17, 83, 87, 88, 89, |
| 2081 90, 91, 94, 95, 201, 207, 208, 209, 210, 222, |
| 2082 223, 224, 234, 235, 236, 238, 239, 240, 241, 242, |
| 2083 243, 244, 249, 250, 251, 252, 253, 254, 255, 256, |
| 2084 257, 258, 259, 260, 261, 262, 263, 265, 267, 268, |
| 2085 279, 287, 298, 299, 300, 301, 305, 306, 307, 310, |
| 2086 316, 320, 273, 272, 275, 287, 274, 231, 203, 221, |
| 2087 201, 86, 222, 204, 249, 262, 266, 287, 123, 36, |
| 2088 279, 324, 325, 326, 231, 295, 296, 224, 294, 293, |
| 2089 222, 221, 202, 206, 222, 222, 299, 201, 201, 222, |
| 2090 222, 265, 201, 201, 249, 249, 265, 224, 302, 94, |
| 2091 95, 203, 205, 202, 202, 206, 82, 263, 201, 103, |
| 2092 104, 105, 106, 107, 108, 109, 110, 111, 112, 221, |
| 2093 264, 249, 211, 212, 213, 207, 208, 92, 93, 96, |
| 2094 97, 214, 215, 98, 99, 216, 217, 218, 100, 102, |
| 2095 101, 219, 206, 222, 36, 224, 299, 231, 272, 275, |
| 2096 203, 221, 204, 266, 263, 297, 223, 204, 325, 224, |
| 2097 287, 324, 203, 206, 222, 224, 88, 281, 83, 298, |
| 2098 306, 317, 265, 222, 265, 113, 265, 278, 279, 309, |
| 2099 202, 305, 237, 265, 231, 234, 245, 246, 247, 248, |
| 2100 263, 263, 249, 249, 249, 251, 251, 252, 252, 253, |
| 2101 253, 253, 253, 254, 254, 255, 256, 257, 258, 259, |
| 2102 260, 265, 263, 203, 204, 266, 297, 221, 204, 324, |
| 2103 287, 222, 295, 266, 296, 201, 309, 318, 319, 202, |
| 2104 202, 231, 202, 224, 204, 201, 202, 202, 206, 82, |
| 2105 263, 220, 266, 221, 204, 297, 221, 224, 295, 222, |
| 2106 204, 265, 222, 202, 299, 308, 223, 311, 221, 300, |
| 2107 303, 304, 263, 263, 204, 297, 221, 297, 222, 222, |
| 2108 202, 265, 303, 12, 18, 19, 224, 312, 313, 314, |
| 2109 315, 297, 297, 222, 299, 265, 220, 299, 312, 299, |
| 2110 224, 314, 220 |
| 2111 }; |
| 2112 |
| 2113 #define yyerrok (yyerrstatus = 0) |
| 2114 #define yyclearin (yychar = YYEMPTY) |
| 2115 #define YYEMPTY (-2) |
| 2116 #define YYEOF 0 |
| 2117 |
| 2118 #define YYACCEPT goto yyacceptlab |
| 2119 #define YYABORT goto yyabortlab |
| 2120 #define YYERROR goto yyerrorlab |
| 2121 |
| 2122 |
| 2123 /* Like YYERROR except do call yyerror. This remains here temporarily |
| 2124 to ease the transition to the new meaning of YYERROR, for GCC. |
| 2125 Once GCC version 2 has supplanted version 1, this can go. However, |
| 2126 YYFAIL appears to be in use. Nevertheless, it is formally deprecated |
| 2127 in Bison 2.4.2's NEWS entry, where a plan to phase it out is |
| 2128 discussed. */ |
| 2129 |
| 2130 #define YYFAIL goto yyerrlab |
| 2131 #if defined YYFAIL |
| 2132 /* This is here to suppress warnings from the GCC cpp's |
| 2133 -Wunused-macros. Normally we don't worry about that warning, but |
| 2134 some users do, and we want to make it easy for users to remove |
| 2135 YYFAIL uses, which will produce warnings from Bison 2.5. */ |
| 2136 #endif |
| 2137 |
| 2138 #define YYRECOVERING() (!!yyerrstatus) |
| 2139 |
| 2140 #define YYBACKUP(Token, Value) \ |
| 2141 do \ |
| 2142 if (yychar == YYEMPTY && yylen == 1) \ |
| 2143 { \ |
| 2144 yychar = (Token); \ |
| 2145 yylval = (Value); \ |
| 2146 YYPOPSTACK (1); \ |
| 2147 goto yybackup; \ |
| 2148 } \ |
| 2149 else \ |
| 2150 { \ |
| 2151 yyerror (&yylloc, state, YY_("syntax error: cannot back up")); \ |
| 2152 YYERROR; \ |
| 2153 } \ |
| 2154 while (YYID (0)) |
| 2155 |
| 2156 |
| 2157 #define YYTERROR 1 |
| 2158 #define YYERRCODE 256 |
| 2159 |
| 2160 |
| 2161 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. |
| 2162 If N is 0, then set CURRENT to the empty location which ends |
| 2163 the previous symbol: RHS[0] (always defined). */ |
| 2164 |
| 2165 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) |
| 2166 #ifndef YYLLOC_DEFAULT |
| 2167 # define YYLLOC_DEFAULT(Current, Rhs, N) \ |
| 2168 do \ |
| 2169 if (YYID (N)) \ |
| 2170 { \ |
| 2171 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ |
| 2172 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ |
| 2173 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ |
| 2174 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ |
| 2175 } \ |
| 2176 else \ |
| 2177 { \ |
| 2178 (Current).first_line = (Current).last_line = \ |
| 2179 YYRHSLOC (Rhs, 0).last_line; \ |
| 2180 (Current).first_column = (Current).last_column = \ |
| 2181 YYRHSLOC (Rhs, 0).last_column; \ |
| 2182 } \ |
| 2183 while (YYID (0)) |
| 2184 #endif |
| 2185 |
| 2186 |
| 2187 /* YY_LOCATION_PRINT -- Print the location on the stream. |
| 2188 This macro was not mandated originally: define only if we know |
| 2189 we won't break user code: when these are the locations we know. */ |
| 2190 |
| 2191 #ifndef YY_LOCATION_PRINT |
| 2192 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL |
| 2193 # define YY_LOCATION_PRINT(File, Loc) \ |
| 2194 fprintf (File, "%d.%d-%d.%d", \ |
| 2195 (Loc).first_line, (Loc).first_column, \ |
| 2196 (Loc).last_line, (Loc).last_column) |
| 2197 # else |
| 2198 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) |
| 2199 # endif |
| 2200 #endif |
| 2201 |
| 2202 |
| 2203 /* YYLEX -- calling `yylex' with the right arguments. */ |
| 2204 |
| 2205 #ifdef YYLEX_PARAM |
| 2206 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) |
| 2207 #else |
| 2208 # define YYLEX yylex (&yylval, &yylloc, scanner) |
| 2209 #endif |
| 2210 |
| 2211 /* Enable debugging if requested. */ |
| 2212 #if YYDEBUG |
| 2213 |
| 2214 # ifndef YYFPRINTF |
| 2215 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */ |
| 2216 # define YYFPRINTF fprintf |
| 2217 # endif |
| 2218 |
| 2219 # define YYDPRINTF(Args) \ |
| 2220 do { \ |
| 2221 if (yydebug) \ |
| 2222 YYFPRINTF Args; \ |
| 2223 } while (YYID (0)) |
| 2224 |
| 2225 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ |
| 2226 do { \ |
| 2227 if (yydebug) \ |
| 2228 { \ |
| 2229 YYFPRINTF (stderr, "%s ", Title); \ |
| 2230 yy_symbol_print (stderr, \ |
| 2231 Type, Value, Location, state); \ |
| 2232 YYFPRINTF (stderr, "\n"); \ |
| 2233 } \ |
| 2234 } while (YYID (0)) |
| 2235 |
| 2236 |
| 2237 /*--------------------------------. |
| 2238 | Print this symbol on YYOUTPUT. | |
| 2239 `--------------------------------*/ |
| 2240 |
| 2241 /*ARGSUSED*/ |
| 2242 #if (defined __STDC__ || defined __C99__FUNC__ \ |
| 2243 || defined __cplusplus || defined _MSC_VER) |
| 2244 static void |
| 2245 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvalue
p, YYLTYPE const * const yylocationp, struct _mesa_glsl_parse_state *state) |
| 2246 #else |
| 2247 static void |
| 2248 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, state) |
| 2249 FILE *yyoutput; |
| 2250 int yytype; |
| 2251 YYSTYPE const * const yyvaluep; |
| 2252 YYLTYPE const * const yylocationp; |
| 2253 struct _mesa_glsl_parse_state *state; |
| 2254 #endif |
| 2255 { |
| 2256 if (!yyvaluep) |
| 2257 return; |
| 2258 YYUSE (yylocationp); |
| 2259 YYUSE (state); |
| 2260 # ifdef YYPRINT |
| 2261 if (yytype < YYNTOKENS) |
| 2262 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); |
| 2263 # else |
| 2264 YYUSE (yyoutput); |
| 2265 # endif |
| 2266 switch (yytype) |
| 2267 { |
| 2268 default: |
| 2269 break; |
| 2270 } |
| 2271 } |
| 2272 |
| 2273 |
| 2274 /*--------------------------------. |
| 2275 | Print this symbol on YYOUTPUT. | |
| 2276 `--------------------------------*/ |
| 2277 |
| 2278 #if (defined __STDC__ || defined __C99__FUNC__ \ |
| 2279 || defined __cplusplus || defined _MSC_VER) |
| 2280 static void |
| 2281 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYL
TYPE const * const yylocationp, struct _mesa_glsl_parse_state *state) |
| 2282 #else |
| 2283 static void |
| 2284 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, state) |
| 2285 FILE *yyoutput; |
| 2286 int yytype; |
| 2287 YYSTYPE const * const yyvaluep; |
| 2288 YYLTYPE const * const yylocationp; |
| 2289 struct _mesa_glsl_parse_state *state; |
| 2290 #endif |
| 2291 { |
| 2292 if (yytype < YYNTOKENS) |
| 2293 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); |
| 2294 else |
| 2295 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); |
| 2296 |
| 2297 YY_LOCATION_PRINT (yyoutput, *yylocationp); |
| 2298 YYFPRINTF (yyoutput, ": "); |
| 2299 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, state); |
| 2300 YYFPRINTF (yyoutput, ")"); |
| 2301 } |
| 2302 |
| 2303 /*------------------------------------------------------------------. |
| 2304 | yy_stack_print -- Print the state stack from its BOTTOM up to its | |
| 2305 | TOP (included). | |
| 2306 `------------------------------------------------------------------*/ |
| 2307 |
| 2308 #if (defined __STDC__ || defined __C99__FUNC__ \ |
| 2309 || defined __cplusplus || defined _MSC_VER) |
| 2310 static void |
| 2311 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) |
| 2312 #else |
| 2313 static void |
| 2314 yy_stack_print (yybottom, yytop) |
| 2315 yytype_int16 *yybottom; |
| 2316 yytype_int16 *yytop; |
| 2317 #endif |
| 2318 { |
| 2319 YYFPRINTF (stderr, "Stack now"); |
| 2320 for (; yybottom <= yytop; yybottom++) |
| 2321 { |
| 2322 int yybot = *yybottom; |
| 2323 YYFPRINTF (stderr, " %d", yybot); |
| 2324 } |
| 2325 YYFPRINTF (stderr, "\n"); |
| 2326 } |
| 2327 |
| 2328 # define YY_STACK_PRINT(Bottom, Top) \ |
| 2329 do { \ |
| 2330 if (yydebug) \ |
| 2331 yy_stack_print ((Bottom), (Top)); \ |
| 2332 } while (YYID (0)) |
| 2333 |
| 2334 |
| 2335 /*------------------------------------------------. |
| 2336 | Report that the YYRULE is going to be reduced. | |
| 2337 `------------------------------------------------*/ |
| 2338 |
| 2339 #if (defined __STDC__ || defined __C99__FUNC__ \ |
| 2340 || defined __cplusplus || defined _MSC_VER) |
| 2341 static void |
| 2342 yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, struct _mesa_glsl_p
arse_state *state) |
| 2343 #else |
| 2344 static void |
| 2345 yy_reduce_print (yyvsp, yylsp, yyrule, state) |
| 2346 YYSTYPE *yyvsp; |
| 2347 YYLTYPE *yylsp; |
| 2348 int yyrule; |
| 2349 struct _mesa_glsl_parse_state *state; |
| 2350 #endif |
| 2351 { |
| 2352 int yynrhs = yyr2[yyrule]; |
| 2353 int yyi; |
| 2354 unsigned long int yylno = yyrline[yyrule]; |
| 2355 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", |
| 2356 yyrule - 1, yylno); |
| 2357 /* The symbols being reduced. */ |
| 2358 for (yyi = 0; yyi < yynrhs; yyi++) |
| 2359 { |
| 2360 YYFPRINTF (stderr, " $%d = ", yyi + 1); |
| 2361 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], |
| 2362 &(yyvsp[(yyi + 1) - (yynrhs)]) |
| 2363 , &(yylsp[(yyi + 1) - (yynrhs)]) , state); |
| 2364 YYFPRINTF (stderr, "\n"); |
| 2365 } |
| 2366 } |
| 2367 |
| 2368 # define YY_REDUCE_PRINT(Rule) \ |
| 2369 do { \ |
| 2370 if (yydebug) \ |
| 2371 yy_reduce_print (yyvsp, yylsp, Rule, state); \ |
| 2372 } while (YYID (0)) |
| 2373 |
| 2374 /* Nonzero means print parse trace. It is left uninitialized so that |
| 2375 multiple parsers can coexist. */ |
| 2376 int yydebug; |
| 2377 #else /* !YYDEBUG */ |
| 2378 # define YYDPRINTF(Args) |
| 2379 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) |
| 2380 # define YY_STACK_PRINT(Bottom, Top) |
| 2381 # define YY_REDUCE_PRINT(Rule) |
| 2382 #endif /* !YYDEBUG */ |
| 2383 |
| 2384 |
| 2385 /* YYINITDEPTH -- initial size of the parser's stacks. */ |
| 2386 #ifndef YYINITDEPTH |
| 2387 # define YYINITDEPTH 200 |
| 2388 #endif |
| 2389 |
| 2390 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only |
| 2391 if the built-in stack extension method is used). |
| 2392 |
| 2393 Do not make this value too large; the results are undefined if |
| 2394 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) |
| 2395 evaluated with infinite-precision integer arithmetic. */ |
| 2396 |
| 2397 #ifndef YYMAXDEPTH |
| 2398 # define YYMAXDEPTH 10000 |
| 2399 #endif |
| 2400 |
| 2401 |
| 2402 #if YYERROR_VERBOSE |
| 2403 |
| 2404 # ifndef yystrlen |
| 2405 # if defined __GLIBC__ && defined _STRING_H |
| 2406 # define yystrlen strlen |
| 2407 # else |
| 2408 /* Return the length of YYSTR. */ |
| 2409 #if (defined __STDC__ || defined __C99__FUNC__ \ |
| 2410 || defined __cplusplus || defined _MSC_VER) |
| 2411 static YYSIZE_T |
| 2412 yystrlen (const char *yystr) |
| 2413 #else |
| 2414 static YYSIZE_T |
| 2415 yystrlen (yystr) |
| 2416 const char *yystr; |
| 2417 #endif |
| 2418 { |
| 2419 YYSIZE_T yylen; |
| 2420 for (yylen = 0; yystr[yylen]; yylen++) |
| 2421 continue; |
| 2422 return yylen; |
| 2423 } |
| 2424 # endif |
| 2425 # endif |
| 2426 |
| 2427 # ifndef yystpcpy |
| 2428 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE |
| 2429 # define yystpcpy stpcpy |
| 2430 # else |
| 2431 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in |
| 2432 YYDEST. */ |
| 2433 #if (defined __STDC__ || defined __C99__FUNC__ \ |
| 2434 || defined __cplusplus || defined _MSC_VER) |
| 2435 static char * |
| 2436 yystpcpy (char *yydest, const char *yysrc) |
| 2437 #else |
| 2438 static char * |
| 2439 yystpcpy (yydest, yysrc) |
| 2440 char *yydest; |
| 2441 const char *yysrc; |
| 2442 #endif |
| 2443 { |
| 2444 char *yyd = yydest; |
| 2445 const char *yys = yysrc; |
| 2446 |
| 2447 while ((*yyd++ = *yys++) != '\0') |
| 2448 continue; |
| 2449 |
| 2450 return yyd - 1; |
| 2451 } |
| 2452 # endif |
| 2453 # endif |
| 2454 |
| 2455 # ifndef yytnamerr |
| 2456 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary |
| 2457 quotes and backslashes, so that it's suitable for yyerror. The |
| 2458 heuristic is that double-quoting is unnecessary unless the string |
| 2459 contains an apostrophe, a comma, or backslash (other than |
| 2460 backslash-backslash). YYSTR is taken from yytname. If YYRES is |
| 2461 null, do not copy; instead, return the length of what the result |
| 2462 would have been. */ |
| 2463 static YYSIZE_T |
| 2464 yytnamerr (char *yyres, const char *yystr) |
| 2465 { |
| 2466 if (*yystr == '"') |
| 2467 { |
| 2468 YYSIZE_T yyn = 0; |
| 2469 char const *yyp = yystr; |
| 2470 |
| 2471 for (;;) |
| 2472 switch (*++yyp) |
| 2473 { |
| 2474 case '\'': |
| 2475 case ',': |
| 2476 goto do_not_strip_quotes; |
| 2477 |
| 2478 case '\\': |
| 2479 if (*++yyp != '\\') |
| 2480 goto do_not_strip_quotes; |
| 2481 /* Fall through. */ |
| 2482 default: |
| 2483 if (yyres) |
| 2484 yyres[yyn] = *yyp; |
| 2485 yyn++; |
| 2486 break; |
| 2487 |
| 2488 case '"': |
| 2489 if (yyres) |
| 2490 yyres[yyn] = '\0'; |
| 2491 return yyn; |
| 2492 } |
| 2493 do_not_strip_quotes: ; |
| 2494 } |
| 2495 |
| 2496 if (! yyres) |
| 2497 return yystrlen (yystr); |
| 2498 |
| 2499 return yystpcpy (yyres, yystr) - yyres; |
| 2500 } |
| 2501 # endif |
| 2502 |
| 2503 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message |
| 2504 about the unexpected token YYTOKEN for the state stack whose top is |
| 2505 YYSSP. |
| 2506 |
| 2507 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is |
| 2508 not large enough to hold the message. In that case, also set |
| 2509 *YYMSG_ALLOC to the required number of bytes. Return 2 if the |
| 2510 required number of bytes is too large to store. */ |
| 2511 static int |
| 2512 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, |
| 2513 yytype_int16 *yyssp, int yytoken) |
| 2514 { |
| 2515 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); |
| 2516 YYSIZE_T yysize = yysize0; |
| 2517 YYSIZE_T yysize1; |
| 2518 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; |
| 2519 /* Internationalized format string. */ |
| 2520 const char *yyformat = 0; |
| 2521 /* Arguments of yyformat. */ |
| 2522 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; |
| 2523 /* Number of reported tokens (one for the "unexpected", one per |
| 2524 "expected"). */ |
| 2525 int yycount = 0; |
| 2526 |
| 2527 /* There are many possibilities here to consider: |
| 2528 - Assume YYFAIL is not used. It's too flawed to consider. See |
| 2529 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html> |
| 2530 for details. YYERROR is fine as it does not invoke this |
| 2531 function. |
| 2532 - If this state is a consistent state with a default action, then |
| 2533 the only way this function was invoked is if the default action |
| 2534 is an error action. In that case, don't check for expected |
| 2535 tokens because there are none. |
| 2536 - The only way there can be no lookahead present (in yychar) is if |
| 2537 this state is a consistent state with a default action. Thus, |
| 2538 detecting the absence of a lookahead is sufficient to determine |
| 2539 that there is no unexpected or expected token to report. In that |
| 2540 case, just report a simple "syntax error". |
| 2541 - Don't assume there isn't a lookahead just because this state is a |
| 2542 consistent state with a default action. There might have been a |
| 2543 previous inconsistent state, consistent state with a non-default |
| 2544 action, or user semantic action that manipulated yychar. |
| 2545 - Of course, the expected token list depends on states to have |
| 2546 correct lookahead information, and it depends on the parser not |
| 2547 to perform extra reductions after fetching a lookahead from the |
| 2548 scanner and before detecting a syntax error. Thus, state merging |
| 2549 (from LALR or IELR) and default reductions corrupt the expected |
| 2550 token list. However, the list is correct for canonical LR with |
| 2551 one exception: it will still contain any token that will not be |
| 2552 accepted due to an error action in a later state. |
| 2553 */ |
| 2554 if (yytoken != YYEMPTY) |
| 2555 { |
| 2556 int yyn = yypact[*yyssp]; |
| 2557 yyarg[yycount++] = yytname[yytoken]; |
| 2558 if (!yypact_value_is_default (yyn)) |
| 2559 { |
| 2560 /* Start YYX at -YYN if negative to avoid negative indexes in |
| 2561 YYCHECK. In other words, skip the first -YYN actions for |
| 2562 this state because they are default actions. */ |
| 2563 int yyxbegin = yyn < 0 ? -yyn : 0; |
| 2564 /* Stay within bounds of both yycheck and yytname. */ |
| 2565 int yychecklim = YYLAST - yyn + 1; |
| 2566 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; |
| 2567 int yyx; |
| 2568 |
| 2569 for (yyx = yyxbegin; yyx < yyxend; ++yyx) |
| 2570 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR |
| 2571 && !yytable_value_is_error (yytable[yyx + yyn])) |
| 2572 { |
| 2573 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) |
| 2574 { |
| 2575 yycount = 1; |
| 2576 yysize = yysize0; |
| 2577 break; |
| 2578 } |
| 2579 yyarg[yycount++] = yytname[yyx]; |
| 2580 yysize1 = yysize + yytnamerr (0, yytname[yyx]); |
| 2581 if (! (yysize <= yysize1 |
| 2582 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) |
| 2583 return 2; |
| 2584 yysize = yysize1; |
| 2585 } |
| 2586 } |
| 2587 } |
| 2588 |
| 2589 switch (yycount) |
| 2590 { |
| 2591 # define YYCASE_(N, S) \ |
| 2592 case N: \ |
| 2593 yyformat = S; \ |
| 2594 break |
| 2595 YYCASE_(0, YY_("syntax error")); |
| 2596 YYCASE_(1, YY_("syntax error, unexpected %s")); |
| 2597 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); |
| 2598 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); |
| 2599 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); |
| 2600 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %
s")); |
| 2601 # undef YYCASE_ |
| 2602 } |
| 2603 |
| 2604 yysize1 = yysize + yystrlen (yyformat); |
| 2605 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) |
| 2606 return 2; |
| 2607 yysize = yysize1; |
| 2608 |
| 2609 if (*yymsg_alloc < yysize) |
| 2610 { |
| 2611 *yymsg_alloc = 2 * yysize; |
| 2612 if (! (yysize <= *yymsg_alloc |
| 2613 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) |
| 2614 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; |
| 2615 return 1; |
| 2616 } |
| 2617 |
| 2618 /* Avoid sprintf, as that infringes on the user's name space. |
| 2619 Don't have undefined behavior even if the translation |
| 2620 produced a string with the wrong number of "%s"s. */ |
| 2621 { |
| 2622 char *yyp = *yymsg; |
| 2623 int yyi = 0; |
| 2624 while ((*yyp = *yyformat) != '\0') |
| 2625 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) |
| 2626 { |
| 2627 yyp += yytnamerr (yyp, yyarg[yyi++]); |
| 2628 yyformat += 2; |
| 2629 } |
| 2630 else |
| 2631 { |
| 2632 yyp++; |
| 2633 yyformat++; |
| 2634 } |
| 2635 } |
| 2636 return 0; |
| 2637 } |
| 2638 #endif /* YYERROR_VERBOSE */ |
| 2639 |
| 2640 /*-----------------------------------------------. |
| 2641 | Release the memory associated to this symbol. | |
| 2642 `-----------------------------------------------*/ |
| 2643 |
| 2644 /*ARGSUSED*/ |
| 2645 #if (defined __STDC__ || defined __C99__FUNC__ \ |
| 2646 || defined __cplusplus || defined _MSC_VER) |
| 2647 static void |
| 2648 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio
np, struct _mesa_glsl_parse_state *state) |
| 2649 #else |
| 2650 static void |
| 2651 yydestruct (yymsg, yytype, yyvaluep, yylocationp, state) |
| 2652 const char *yymsg; |
| 2653 int yytype; |
| 2654 YYSTYPE *yyvaluep; |
| 2655 YYLTYPE *yylocationp; |
| 2656 struct _mesa_glsl_parse_state *state; |
| 2657 #endif |
| 2658 { |
| 2659 YYUSE (yyvaluep); |
| 2660 YYUSE (yylocationp); |
| 2661 YYUSE (state); |
| 2662 |
| 2663 if (!yymsg) |
| 2664 yymsg = "Deleting"; |
| 2665 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); |
| 2666 |
| 2667 switch (yytype) |
| 2668 { |
| 2669 |
| 2670 default: |
| 2671 break; |
| 2672 } |
| 2673 } |
| 2674 |
| 2675 |
| 2676 /* Prevent warnings from -Wmissing-prototypes. */ |
| 2677 #ifdef YYPARSE_PARAM |
| 2678 #if defined __STDC__ || defined __cplusplus |
| 2679 int yyparse (void *YYPARSE_PARAM); |
| 2680 #else |
| 2681 int yyparse (); |
| 2682 #endif |
| 2683 #else /* ! YYPARSE_PARAM */ |
| 2684 #if defined __STDC__ || defined __cplusplus |
| 2685 int yyparse (struct _mesa_glsl_parse_state *state); |
| 2686 #else |
| 2687 int yyparse (); |
| 2688 #endif |
| 2689 #endif /* ! YYPARSE_PARAM */ |
| 2690 |
| 2691 |
| 2692 /*----------. |
| 2693 | yyparse. | |
| 2694 `----------*/ |
| 2695 |
| 2696 #ifdef YYPARSE_PARAM |
| 2697 #if (defined __STDC__ || defined __C99__FUNC__ \ |
| 2698 || defined __cplusplus || defined _MSC_VER) |
| 2699 int |
| 2700 yyparse (void *YYPARSE_PARAM) |
| 2701 #else |
| 2702 int |
| 2703 yyparse (YYPARSE_PARAM) |
| 2704 void *YYPARSE_PARAM; |
| 2705 #endif |
| 2706 #else /* ! YYPARSE_PARAM */ |
| 2707 #if (defined __STDC__ || defined __C99__FUNC__ \ |
| 2708 || defined __cplusplus || defined _MSC_VER) |
| 2709 int |
| 2710 yyparse (struct _mesa_glsl_parse_state *state) |
| 2711 #else |
| 2712 int |
| 2713 yyparse (state) |
| 2714 struct _mesa_glsl_parse_state *state; |
| 2715 #endif |
| 2716 #endif |
| 2717 { |
| 2718 /* The lookahead symbol. */ |
| 2719 int yychar; |
| 2720 |
| 2721 /* The semantic value of the lookahead symbol. */ |
| 2722 YYSTYPE yylval; |
| 2723 |
| 2724 /* Location data for the lookahead symbol. */ |
| 2725 YYLTYPE yylloc; |
| 2726 |
| 2727 /* Number of syntax errors so far. */ |
| 2728 int yynerrs; |
| 2729 |
| 2730 int yystate; |
| 2731 /* Number of tokens to shift before error messages enabled. */ |
| 2732 int yyerrstatus; |
| 2733 |
| 2734 /* The stacks and their tools: |
| 2735 `yyss': related to states. |
| 2736 `yyvs': related to semantic values. |
| 2737 `yyls': related to locations. |
| 2738 |
| 2739 Refer to the stacks thru separate pointers, to allow yyoverflow |
| 2740 to reallocate them elsewhere. */ |
| 2741 |
| 2742 /* The state stack. */ |
| 2743 yytype_int16 yyssa[YYINITDEPTH]; |
| 2744 yytype_int16 *yyss; |
| 2745 yytype_int16 *yyssp; |
| 2746 |
| 2747 /* The semantic value stack. */ |
| 2748 YYSTYPE yyvsa[YYINITDEPTH]; |
| 2749 YYSTYPE *yyvs; |
| 2750 YYSTYPE *yyvsp; |
| 2751 |
| 2752 /* The location stack. */ |
| 2753 YYLTYPE yylsa[YYINITDEPTH]; |
| 2754 YYLTYPE *yyls; |
| 2755 YYLTYPE *yylsp; |
| 2756 |
| 2757 /* The locations where the error started and ended. */ |
| 2758 YYLTYPE yyerror_range[3]; |
| 2759 |
| 2760 YYSIZE_T yystacksize; |
| 2761 |
| 2762 int yyn; |
| 2763 int yyresult; |
| 2764 /* Lookahead token as an internal (translated) token number. */ |
| 2765 int yytoken; |
| 2766 /* The variables used to return semantic value and location from the |
| 2767 action routines. */ |
| 2768 YYSTYPE yyval; |
| 2769 YYLTYPE yyloc; |
| 2770 |
| 2771 #if YYERROR_VERBOSE |
| 2772 /* Buffer for error messages, and its allocated size. */ |
| 2773 char yymsgbuf[128]; |
| 2774 char *yymsg = yymsgbuf; |
| 2775 YYSIZE_T yymsg_alloc = sizeof yymsgbuf; |
| 2776 #endif |
| 2777 |
| 2778 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) |
| 2779 |
| 2780 /* The number of symbols on the RHS of the reduced rule. |
| 2781 Keep to zero when no symbol should be popped. */ |
| 2782 int yylen = 0; |
| 2783 |
| 2784 yytoken = 0; |
| 2785 yyss = yyssa; |
| 2786 yyvs = yyvsa; |
| 2787 yyls = yylsa; |
| 2788 yystacksize = YYINITDEPTH; |
| 2789 |
| 2790 YYDPRINTF ((stderr, "Starting parse\n")); |
| 2791 |
| 2792 yystate = 0; |
| 2793 yyerrstatus = 0; |
| 2794 yynerrs = 0; |
| 2795 yychar = YYEMPTY; /* Cause a token to be read. */ |
| 2796 |
| 2797 /* Initialize stack pointers. |
| 2798 Waste one element of value and location stack |
| 2799 so that they stay on the same level as the state stack. |
| 2800 The wasted elements are never initialized. */ |
| 2801 yyssp = yyss; |
| 2802 yyvsp = yyvs; |
| 2803 yylsp = yyls; |
| 2804 |
| 2805 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL |
| 2806 /* Initialize the default location before parsing starts. */ |
| 2807 yylloc.first_line = yylloc.last_line = 1; |
| 2808 yylloc.first_column = yylloc.last_column = 1; |
| 2809 #endif |
| 2810 |
| 2811 /* User initialization code. */ |
| 2812 |
| 2813 /* Line 1590 of yacc.c */ |
| 2814 #line 48 "src/src/glsl/glsl_parser.yy" |
| 2815 { |
| 2816 yylloc.first_line = 1; |
| 2817 yylloc.first_column = 1; |
| 2818 yylloc.last_line = 1; |
| 2819 yylloc.last_column = 1; |
| 2820 yylloc.source = 0; |
| 2821 } |
| 2822 |
| 2823 /* Line 1590 of yacc.c */ |
| 2824 #line 2825 "src/chromium_gensrc/mesa/glsl_parser.cc" |
| 2825 yylsp[0] = yylloc; |
| 2826 |
| 2827 goto yysetstate; |
| 2828 |
| 2829 /*------------------------------------------------------------. |
| 2830 | yynewstate -- Push a new state, which is found in yystate. | |
| 2831 `------------------------------------------------------------*/ |
| 2832 yynewstate: |
| 2833 /* In all cases, when you get here, the value and location stacks |
| 2834 have just been pushed. So pushing a state here evens the stacks. */ |
| 2835 yyssp++; |
| 2836 |
| 2837 yysetstate: |
| 2838 *yyssp = yystate; |
| 2839 |
| 2840 if (yyss + yystacksize - 1 <= yyssp) |
| 2841 { |
| 2842 /* Get the current used size of the three stacks, in elements. */ |
| 2843 YYSIZE_T yysize = yyssp - yyss + 1; |
| 2844 |
| 2845 #ifdef yyoverflow |
| 2846 { |
| 2847 /* Give user a chance to reallocate the stack. Use copies of |
| 2848 these so that the &'s don't force the real ones into |
| 2849 memory. */ |
| 2850 YYSTYPE *yyvs1 = yyvs; |
| 2851 yytype_int16 *yyss1 = yyss; |
| 2852 YYLTYPE *yyls1 = yyls; |
| 2853 |
| 2854 /* Each stack pointer address is followed by the size of the |
| 2855 data in use in that stack, in bytes. This used to be a |
| 2856 conditional around just the two extra args, but that might |
| 2857 be undefined if yyoverflow is a macro. */ |
| 2858 yyoverflow (YY_("memory exhausted"), |
| 2859 &yyss1, yysize * sizeof (*yyssp), |
| 2860 &yyvs1, yysize * sizeof (*yyvsp), |
| 2861 &yyls1, yysize * sizeof (*yylsp), |
| 2862 &yystacksize); |
| 2863 |
| 2864 yyls = yyls1; |
| 2865 yyss = yyss1; |
| 2866 yyvs = yyvs1; |
| 2867 } |
| 2868 #else /* no yyoverflow */ |
| 2869 # ifndef YYSTACK_RELOCATE |
| 2870 goto yyexhaustedlab; |
| 2871 # else |
| 2872 /* Extend the stack our own way. */ |
| 2873 if (YYMAXDEPTH <= yystacksize) |
| 2874 goto yyexhaustedlab; |
| 2875 yystacksize *= 2; |
| 2876 if (YYMAXDEPTH < yystacksize) |
| 2877 yystacksize = YYMAXDEPTH; |
| 2878 |
| 2879 { |
| 2880 yytype_int16 *yyss1 = yyss; |
| 2881 union yyalloc *yyptr = |
| 2882 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); |
| 2883 if (! yyptr) |
| 2884 goto yyexhaustedlab; |
| 2885 YYSTACK_RELOCATE (yyss_alloc, yyss); |
| 2886 YYSTACK_RELOCATE (yyvs_alloc, yyvs); |
| 2887 YYSTACK_RELOCATE (yyls_alloc, yyls); |
| 2888 # undef YYSTACK_RELOCATE |
| 2889 if (yyss1 != yyssa) |
| 2890 YYSTACK_FREE (yyss1); |
| 2891 } |
| 2892 # endif |
| 2893 #endif /* no yyoverflow */ |
| 2894 |
| 2895 yyssp = yyss + yysize - 1; |
| 2896 yyvsp = yyvs + yysize - 1; |
| 2897 yylsp = yyls + yysize - 1; |
| 2898 |
| 2899 YYDPRINTF ((stderr, "Stack size increased to %lu\n", |
| 2900 (unsigned long int) yystacksize)); |
| 2901 |
| 2902 if (yyss + yystacksize - 1 <= yyssp) |
| 2903 YYABORT; |
| 2904 } |
| 2905 |
| 2906 YYDPRINTF ((stderr, "Entering state %d\n", yystate)); |
| 2907 |
| 2908 if (yystate == YYFINAL) |
| 2909 YYACCEPT; |
| 2910 |
| 2911 goto yybackup; |
| 2912 |
| 2913 /*-----------. |
| 2914 | yybackup. | |
| 2915 `-----------*/ |
| 2916 yybackup: |
| 2917 |
| 2918 /* Do appropriate processing given the current state. Read a |
| 2919 lookahead token if we need one and don't already have one. */ |
| 2920 |
| 2921 /* First try to decide what to do without reference to lookahead token. */ |
| 2922 yyn = yypact[yystate]; |
| 2923 if (yypact_value_is_default (yyn)) |
| 2924 goto yydefault; |
| 2925 |
| 2926 /* Not known => get a lookahead token if don't already have one. */ |
| 2927 |
| 2928 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ |
| 2929 if (yychar == YYEMPTY) |
| 2930 { |
| 2931 YYDPRINTF ((stderr, "Reading a token: ")); |
| 2932 yychar = YYLEX; |
| 2933 } |
| 2934 |
| 2935 if (yychar <= YYEOF) |
| 2936 { |
| 2937 yychar = yytoken = YYEOF; |
| 2938 YYDPRINTF ((stderr, "Now at end of input.\n")); |
| 2939 } |
| 2940 else |
| 2941 { |
| 2942 yytoken = YYTRANSLATE (yychar); |
| 2943 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); |
| 2944 } |
| 2945 |
| 2946 /* If the proper action on seeing token YYTOKEN is to reduce or to |
| 2947 detect an error, take that action. */ |
| 2948 yyn += yytoken; |
| 2949 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) |
| 2950 goto yydefault; |
| 2951 yyn = yytable[yyn]; |
| 2952 if (yyn <= 0) |
| 2953 { |
| 2954 if (yytable_value_is_error (yyn)) |
| 2955 goto yyerrlab; |
| 2956 yyn = -yyn; |
| 2957 goto yyreduce; |
| 2958 } |
| 2959 |
| 2960 /* Count tokens shifted since error; after three, turn off error |
| 2961 status. */ |
| 2962 if (yyerrstatus) |
| 2963 yyerrstatus--; |
| 2964 |
| 2965 /* Shift the lookahead token. */ |
| 2966 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); |
| 2967 |
| 2968 /* Discard the shifted token. */ |
| 2969 yychar = YYEMPTY; |
| 2970 |
| 2971 yystate = yyn; |
| 2972 *++yyvsp = yylval; |
| 2973 *++yylsp = yylloc; |
| 2974 goto yynewstate; |
| 2975 |
| 2976 |
| 2977 /*-----------------------------------------------------------. |
| 2978 | yydefault -- do the default action for the current state. | |
| 2979 `-----------------------------------------------------------*/ |
| 2980 yydefault: |
| 2981 yyn = yydefact[yystate]; |
| 2982 if (yyn == 0) |
| 2983 goto yyerrlab; |
| 2984 goto yyreduce; |
| 2985 |
| 2986 |
| 2987 /*-----------------------------. |
| 2988 | yyreduce -- Do a reduction. | |
| 2989 `-----------------------------*/ |
| 2990 yyreduce: |
| 2991 /* yyn is the number of a rule to reduce with. */ |
| 2992 yylen = yyr2[yyn]; |
| 2993 |
| 2994 /* If YYLEN is nonzero, implement the default value of the action: |
| 2995 `$$ = $1'. |
| 2996 |
| 2997 Otherwise, the following line sets YYVAL to garbage. |
| 2998 This behavior is undocumented and Bison |
| 2999 users should not rely upon it. Assigning to YYVAL |
| 3000 unconditionally makes the parser a bit smaller, and it avoids a |
| 3001 GCC warning that YYVAL may be used uninitialized. */ |
| 3002 yyval = yyvsp[1-yylen]; |
| 3003 |
| 3004 /* Default location. */ |
| 3005 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); |
| 3006 YY_REDUCE_PRINT (yyn); |
| 3007 switch (yyn) |
| 3008 { |
| 3009 case 2: |
| 3010 |
| 3011 /* Line 1806 of yacc.c */ |
| 3012 #line 243 "src/src/glsl/glsl_parser.yy" |
| 3013 { |
| 3014 _mesa_glsl_initialize_types(state); |
| 3015 } |
| 3016 break; |
| 3017 |
| 3018 case 3: |
| 3019 |
| 3020 /* Line 1806 of yacc.c */ |
| 3021 #line 247 "src/src/glsl/glsl_parser.yy" |
| 3022 { |
| 3023 delete state->symbols; |
| 3024 state->symbols = new(ralloc_parent(state)) glsl_symbol_table; |
| 3025 _mesa_glsl_initialize_types(state); |
| 3026 } |
| 3027 break; |
| 3028 |
| 3029 case 5: |
| 3030 |
| 3031 /* Line 1806 of yacc.c */ |
| 3032 #line 257 "src/src/glsl/glsl_parser.yy" |
| 3033 { |
| 3034 bool supported = false; |
| 3035 |
| 3036 switch ((yyvsp[(2) - (3)].n)) { |
| 3037 case 100: |
| 3038 state->es_shader = true; |
| 3039 supported = state->ctx->API == API_OPENGLES2 || |
| 3040 state->ctx->Extensions.ARB_ES2_compatibility; |
| 3041 break; |
| 3042 case 110: |
| 3043 case 120: |
| 3044 /* FINISHME: Once the OpenGL 3.0 'forward compatible' context or |
| 3045 * the OpenGL 3.2 Core context is supported, this logic will need |
| 3046 * change. Older versions of GLSL are no longer supported |
| 3047 * outside the compatibility contexts of 3.x. |
| 3048 */ |
| 3049 case 130: |
| 3050 case 140: |
| 3051 case 150: |
| 3052 case 330: |
| 3053 case 400: |
| 3054 case 410: |
| 3055 case 420: |
| 3056 supported = _mesa_is_desktop_gl(state->ctx) && |
| 3057 ((unsigned) (yyvsp[(2) - (3)].n)) <= state->ctx->Const
.GLSLVersion; |
| 3058 break; |
| 3059 default: |
| 3060 supported = false; |
| 3061 break; |
| 3062 } |
| 3063 |
| 3064 state->language_version = (yyvsp[(2) - (3)].n); |
| 3065 state->version_string = |
| 3066 ralloc_asprintf(state, "GLSL%s %d.%02d", |
| 3067 state->es_shader ? " ES" : "", |
| 3068 state->language_version / 100, |
| 3069 state->language_version % 100); |
| 3070 |
| 3071 if (!supported) { |
| 3072 _mesa_glsl_error(& (yylsp[(2) - (3)]), state, "%s is not supported
. " |
| 3073 "Supported versions are: %s\n", |
| 3074 state->version_string, |
| 3075 state->supported_version_string); |
| 3076 } |
| 3077 |
| 3078 if (state->language_version >= 140) { |
| 3079 state->ARB_uniform_buffer_object_enable = true; |
| 3080 } |
| 3081 } |
| 3082 break; |
| 3083 |
| 3084 case 10: |
| 3085 |
| 3086 /* Line 1806 of yacc.c */ |
| 3087 #line 314 "src/src/glsl/glsl_parser.yy" |
| 3088 { |
| 3089 if (state->language_version == 110) { |
| 3090 _mesa_glsl_warning(& (yylsp[(1) - (2)]), state, |
| 3091 "pragma `invariant(all)' not supported in %s", |
| 3092 state->version_string); |
| 3093 } else { |
| 3094 state->all_invariant = true; |
| 3095 } |
| 3096 } |
| 3097 break; |
| 3098 |
| 3099 case 16: |
| 3100 |
| 3101 /* Line 1806 of yacc.c */ |
| 3102 #line 338 "src/src/glsl/glsl_parser.yy" |
| 3103 { |
| 3104 if (!_mesa_glsl_process_extension((yyvsp[(2) - (5)].identifier), & (y
ylsp[(2) - (5)]), (yyvsp[(4) - (5)].identifier), & (yylsp[(4) - (5)]), state)) { |
| 3105 YYERROR; |
| 3106 } |
| 3107 } |
| 3108 break; |
| 3109 |
| 3110 case 17: |
| 3111 |
| 3112 /* Line 1806 of yacc.c */ |
| 3113 #line 347 "src/src/glsl/glsl_parser.yy" |
| 3114 { |
| 3115 /* FINISHME: The NULL test is required because pragmas are set to |
| 3116 * FINISHME: NULL. (See production rule for external_declaration.) |
| 3117 */ |
| 3118 if ((yyvsp[(1) - (1)].node) != NULL) |
| 3119 state->translation_unit.push_tail(& (yyvsp[(1) - (1)].node)->link)
; |
| 3120 } |
| 3121 break; |
| 3122 |
| 3123 case 18: |
| 3124 |
| 3125 /* Line 1806 of yacc.c */ |
| 3126 #line 355 "src/src/glsl/glsl_parser.yy" |
| 3127 { |
| 3128 /* FINISHME: The NULL test is required because pragmas are set to |
| 3129 * FINISHME: NULL. (See production rule for external_declaration.) |
| 3130 */ |
| 3131 if ((yyvsp[(2) - (2)].node) != NULL) |
| 3132 state->translation_unit.push_tail(& (yyvsp[(2) - (2)].node)->link)
; |
| 3133 } |
| 3134 break; |
| 3135 |
| 3136 case 21: |
| 3137 |
| 3138 /* Line 1806 of yacc.c */ |
| 3139 #line 371 "src/src/glsl/glsl_parser.yy" |
| 3140 { |
| 3141 void *ctx = state; |
| 3142 (yyval.expression) = new(ctx) ast_expression(ast_identifier, NULL, NU
LL, NULL); |
| 3143 (yyval.expression)->set_location(yylloc); |
| 3144 (yyval.expression)->primary_expression.identifier = (yyvsp[(1) - (1)]
.identifier); |
| 3145 } |
| 3146 break; |
| 3147 |
| 3148 case 22: |
| 3149 |
| 3150 /* Line 1806 of yacc.c */ |
| 3151 #line 378 "src/src/glsl/glsl_parser.yy" |
| 3152 { |
| 3153 void *ctx = state; |
| 3154 (yyval.expression) = new(ctx) ast_expression(ast_int_constant, NULL,
NULL, NULL); |
| 3155 (yyval.expression)->set_location(yylloc); |
| 3156 (yyval.expression)->primary_expression.int_constant = (yyvsp[(1) - (1
)].n); |
| 3157 } |
| 3158 break; |
| 3159 |
| 3160 case 23: |
| 3161 |
| 3162 /* Line 1806 of yacc.c */ |
| 3163 #line 385 "src/src/glsl/glsl_parser.yy" |
| 3164 { |
| 3165 void *ctx = state; |
| 3166 (yyval.expression) = new(ctx) ast_expression(ast_uint_constant, NULL,
NULL, NULL); |
| 3167 (yyval.expression)->set_location(yylloc); |
| 3168 (yyval.expression)->primary_expression.uint_constant = (yyvsp[(1) - (
1)].n); |
| 3169 } |
| 3170 break; |
| 3171 |
| 3172 case 24: |
| 3173 |
| 3174 /* Line 1806 of yacc.c */ |
| 3175 #line 392 "src/src/glsl/glsl_parser.yy" |
| 3176 { |
| 3177 void *ctx = state; |
| 3178 (yyval.expression) = new(ctx) ast_expression(ast_float_constant, NULL
, NULL, NULL); |
| 3179 (yyval.expression)->set_location(yylloc); |
| 3180 (yyval.expression)->primary_expression.float_constant = (yyvsp[(1) -
(1)].real); |
| 3181 } |
| 3182 break; |
| 3183 |
| 3184 case 25: |
| 3185 |
| 3186 /* Line 1806 of yacc.c */ |
| 3187 #line 399 "src/src/glsl/glsl_parser.yy" |
| 3188 { |
| 3189 void *ctx = state; |
| 3190 (yyval.expression) = new(ctx) ast_expression(ast_bool_constant, NULL,
NULL, NULL); |
| 3191 (yyval.expression)->set_location(yylloc); |
| 3192 (yyval.expression)->primary_expression.bool_constant = (yyvsp[(1) - (
1)].n); |
| 3193 } |
| 3194 break; |
| 3195 |
| 3196 case 26: |
| 3197 |
| 3198 /* Line 1806 of yacc.c */ |
| 3199 #line 406 "src/src/glsl/glsl_parser.yy" |
| 3200 { |
| 3201 (yyval.expression) = (yyvsp[(2) - (3)].expression); |
| 3202 } |
| 3203 break; |
| 3204 |
| 3205 case 28: |
| 3206 |
| 3207 /* Line 1806 of yacc.c */ |
| 3208 #line 414 "src/src/glsl/glsl_parser.yy" |
| 3209 { |
| 3210 void *ctx = state; |
| 3211 (yyval.expression) = new(ctx) ast_expression(ast_array_index, (yyvsp[
(1) - (4)].expression), (yyvsp[(3) - (4)].expression), NULL); |
| 3212 (yyval.expression)->set_location(yylloc); |
| 3213 } |
| 3214 break; |
| 3215 |
| 3216 case 29: |
| 3217 |
| 3218 /* Line 1806 of yacc.c */ |
| 3219 #line 420 "src/src/glsl/glsl_parser.yy" |
| 3220 { |
| 3221 (yyval.expression) = (yyvsp[(1) - (1)].expression); |
| 3222 } |
| 3223 break; |
| 3224 |
| 3225 case 30: |
| 3226 |
| 3227 /* Line 1806 of yacc.c */ |
| 3228 #line 424 "src/src/glsl/glsl_parser.yy" |
| 3229 { |
| 3230 void *ctx = state; |
| 3231 (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yy
vsp[(1) - (3)].expression), NULL, NULL); |
| 3232 (yyval.expression)->set_location(yylloc); |
| 3233 (yyval.expression)->primary_expression.identifier = (yyvsp[(3) - (3)]
.identifier); |
| 3234 } |
| 3235 break; |
| 3236 |
| 3237 case 31: |
| 3238 |
| 3239 /* Line 1806 of yacc.c */ |
| 3240 #line 431 "src/src/glsl/glsl_parser.yy" |
| 3241 { |
| 3242 void *ctx = state; |
| 3243 (yyval.expression) = new(ctx) ast_expression(ast_post_inc, (yyvsp[(1)
- (2)].expression), NULL, NULL); |
| 3244 (yyval.expression)->set_location(yylloc); |
| 3245 } |
| 3246 break; |
| 3247 |
| 3248 case 32: |
| 3249 |
| 3250 /* Line 1806 of yacc.c */ |
| 3251 #line 437 "src/src/glsl/glsl_parser.yy" |
| 3252 { |
| 3253 void *ctx = state; |
| 3254 (yyval.expression) = new(ctx) ast_expression(ast_post_dec, (yyvsp[(1)
- (2)].expression), NULL, NULL); |
| 3255 (yyval.expression)->set_location(yylloc); |
| 3256 } |
| 3257 break; |
| 3258 |
| 3259 case 36: |
| 3260 |
| 3261 /* Line 1806 of yacc.c */ |
| 3262 #line 455 "src/src/glsl/glsl_parser.yy" |
| 3263 { |
| 3264 void *ctx = state; |
| 3265 (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yy
vsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL); |
| 3266 (yyval.expression)->set_location(yylloc); |
| 3267 } |
| 3268 break; |
| 3269 |
| 3270 case 41: |
| 3271 |
| 3272 /* Line 1806 of yacc.c */ |
| 3273 #line 474 "src/src/glsl/glsl_parser.yy" |
| 3274 { |
| 3275 (yyval.expression) = (yyvsp[(1) - (2)].expression); |
| 3276 (yyval.expression)->set_location(yylloc); |
| 3277 (yyval.expression)->expressions.push_tail(& (yyvsp[(2) - (2)].express
ion)->link); |
| 3278 } |
| 3279 break; |
| 3280 |
| 3281 case 42: |
| 3282 |
| 3283 /* Line 1806 of yacc.c */ |
| 3284 #line 480 "src/src/glsl/glsl_parser.yy" |
| 3285 { |
| 3286 (yyval.expression) = (yyvsp[(1) - (3)].expression); |
| 3287 (yyval.expression)->set_location(yylloc); |
| 3288 (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].express
ion)->link); |
| 3289 } |
| 3290 break; |
| 3291 |
| 3292 case 44: |
| 3293 |
| 3294 /* Line 1806 of yacc.c */ |
| 3295 #line 496 "src/src/glsl/glsl_parser.yy" |
| 3296 { |
| 3297 void *ctx = state; |
| 3298 (yyval.expression) = new(ctx) ast_function_expression((yyvsp[(1) - (1
)].type_specifier)); |
| 3299 (yyval.expression)->set_location(yylloc); |
| 3300 } |
| 3301 break; |
| 3302 |
| 3303 case 45: |
| 3304 |
| 3305 /* Line 1806 of yacc.c */ |
| 3306 #line 502 "src/src/glsl/glsl_parser.yy" |
| 3307 { |
| 3308 void *ctx = state; |
| 3309 ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].id
entifier)); |
| 3310 (yyval.expression) = new(ctx) ast_function_expression(callee); |
| 3311 (yyval.expression)->set_location(yylloc); |
| 3312 } |
| 3313 break; |
| 3314 |
| 3315 case 46: |
| 3316 |
| 3317 /* Line 1806 of yacc.c */ |
| 3318 #line 509 "src/src/glsl/glsl_parser.yy" |
| 3319 { |
| 3320 void *ctx = state; |
| 3321 ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].id
entifier)); |
| 3322 (yyval.expression) = new(ctx) ast_function_expression(callee); |
| 3323 (yyval.expression)->set_location(yylloc); |
| 3324 } |
| 3325 break; |
| 3326 |
| 3327 case 51: |
| 3328 |
| 3329 /* Line 1806 of yacc.c */ |
| 3330 #line 529 "src/src/glsl/glsl_parser.yy" |
| 3331 { |
| 3332 (yyval.expression) = (yyvsp[(1) - (2)].expression); |
| 3333 (yyval.expression)->set_location(yylloc); |
| 3334 (yyval.expression)->expressions.push_tail(& (yyvsp[(2) - (2)].express
ion)->link); |
| 3335 } |
| 3336 break; |
| 3337 |
| 3338 case 52: |
| 3339 |
| 3340 /* Line 1806 of yacc.c */ |
| 3341 #line 535 "src/src/glsl/glsl_parser.yy" |
| 3342 { |
| 3343 (yyval.expression) = (yyvsp[(1) - (3)].expression); |
| 3344 (yyval.expression)->set_location(yylloc); |
| 3345 (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].express
ion)->link); |
| 3346 } |
| 3347 break; |
| 3348 |
| 3349 case 53: |
| 3350 |
| 3351 /* Line 1806 of yacc.c */ |
| 3352 #line 547 "src/src/glsl/glsl_parser.yy" |
| 3353 { |
| 3354 void *ctx = state; |
| 3355 ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (2)].id
entifier)); |
| 3356 (yyval.expression) = new(ctx) ast_function_expression(callee); |
| 3357 (yyval.expression)->set_location(yylloc); |
| 3358 } |
| 3359 break; |
| 3360 |
| 3361 case 55: |
| 3362 |
| 3363 /* Line 1806 of yacc.c */ |
| 3364 #line 559 "src/src/glsl/glsl_parser.yy" |
| 3365 { |
| 3366 void *ctx = state; |
| 3367 (yyval.expression) = new(ctx) ast_expression(ast_pre_inc, (yyvsp[(2)
- (2)].expression), NULL, NULL); |
| 3368 (yyval.expression)->set_location(yylloc); |
| 3369 } |
| 3370 break; |
| 3371 |
| 3372 case 56: |
| 3373 |
| 3374 /* Line 1806 of yacc.c */ |
| 3375 #line 565 "src/src/glsl/glsl_parser.yy" |
| 3376 { |
| 3377 void *ctx = state; |
| 3378 (yyval.expression) = new(ctx) ast_expression(ast_pre_dec, (yyvsp[(2)
- (2)].expression), NULL, NULL); |
| 3379 (yyval.expression)->set_location(yylloc); |
| 3380 } |
| 3381 break; |
| 3382 |
| 3383 case 57: |
| 3384 |
| 3385 /* Line 1806 of yacc.c */ |
| 3386 #line 571 "src/src/glsl/glsl_parser.yy" |
| 3387 { |
| 3388 void *ctx = state; |
| 3389 (yyval.expression) = new(ctx) ast_expression((yyvsp[(1) - (2)].n), (y
yvsp[(2) - (2)].expression), NULL, NULL); |
| 3390 (yyval.expression)->set_location(yylloc); |
| 3391 } |
| 3392 break; |
| 3393 |
| 3394 case 58: |
| 3395 |
| 3396 /* Line 1806 of yacc.c */ |
| 3397 #line 580 "src/src/glsl/glsl_parser.yy" |
| 3398 { (yyval.n) = ast_plus; } |
| 3399 break; |
| 3400 |
| 3401 case 59: |
| 3402 |
| 3403 /* Line 1806 of yacc.c */ |
| 3404 #line 581 "src/src/glsl/glsl_parser.yy" |
| 3405 { (yyval.n) = ast_neg; } |
| 3406 break; |
| 3407 |
| 3408 case 60: |
| 3409 |
| 3410 /* Line 1806 of yacc.c */ |
| 3411 #line 582 "src/src/glsl/glsl_parser.yy" |
| 3412 { (yyval.n) = ast_logic_not; } |
| 3413 break; |
| 3414 |
| 3415 case 61: |
| 3416 |
| 3417 /* Line 1806 of yacc.c */ |
| 3418 #line 583 "src/src/glsl/glsl_parser.yy" |
| 3419 { (yyval.n) = ast_bit_not; } |
| 3420 break; |
| 3421 |
| 3422 case 63: |
| 3423 |
| 3424 /* Line 1806 of yacc.c */ |
| 3425 #line 589 "src/src/glsl/glsl_parser.yy" |
| 3426 { |
| 3427 void *ctx = state; |
| 3428 (yyval.expression) = new(ctx) ast_expression_bin(ast_mul, (yyvsp[(1)
- (3)].expression), (yyvsp[(3) - (3)].expression)); |
| 3429 (yyval.expression)->set_location(yylloc); |
| 3430 } |
| 3431 break; |
| 3432 |
| 3433 case 64: |
| 3434 |
| 3435 /* Line 1806 of yacc.c */ |
| 3436 #line 595 "src/src/glsl/glsl_parser.yy" |
| 3437 { |
| 3438 void *ctx = state; |
| 3439 (yyval.expression) = new(ctx) ast_expression_bin(ast_div, (yyvsp[(1)
- (3)].expression), (yyvsp[(3) - (3)].expression)); |
| 3440 (yyval.expression)->set_location(yylloc); |
| 3441 } |
| 3442 break; |
| 3443 |
| 3444 case 65: |
| 3445 |
| 3446 /* Line 1806 of yacc.c */ |
| 3447 #line 601 "src/src/glsl/glsl_parser.yy" |
| 3448 { |
| 3449 void *ctx = state; |
| 3450 (yyval.expression) = new(ctx) ast_expression_bin(ast_mod, (yyvsp[(1)
- (3)].expression), (yyvsp[(3) - (3)].expression)); |
| 3451 (yyval.expression)->set_location(yylloc); |
| 3452 } |
| 3453 break; |
| 3454 |
| 3455 case 67: |
| 3456 |
| 3457 /* Line 1806 of yacc.c */ |
| 3458 #line 611 "src/src/glsl/glsl_parser.yy" |
| 3459 { |
| 3460 void *ctx = state; |
| 3461 (yyval.expression) = new(ctx) ast_expression_bin(ast_add, (yyvsp[(1)
- (3)].expression), (yyvsp[(3) - (3)].expression)); |
| 3462 (yyval.expression)->set_location(yylloc); |
| 3463 } |
| 3464 break; |
| 3465 |
| 3466 case 68: |
| 3467 |
| 3468 /* Line 1806 of yacc.c */ |
| 3469 #line 617 "src/src/glsl/glsl_parser.yy" |
| 3470 { |
| 3471 void *ctx = state; |
| 3472 (yyval.expression) = new(ctx) ast_expression_bin(ast_sub, (yyvsp[(1)
- (3)].expression), (yyvsp[(3) - (3)].expression)); |
| 3473 (yyval.expression)->set_location(yylloc); |
| 3474 } |
| 3475 break; |
| 3476 |
| 3477 case 70: |
| 3478 |
| 3479 /* Line 1806 of yacc.c */ |
| 3480 #line 627 "src/src/glsl/glsl_parser.yy" |
| 3481 { |
| 3482 void *ctx = state; |
| 3483 (yyval.expression) = new(ctx) ast_expression_bin(ast_lshift, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
| 3484 (yyval.expression)->set_location(yylloc); |
| 3485 } |
| 3486 break; |
| 3487 |
| 3488 case 71: |
| 3489 |
| 3490 /* Line 1806 of yacc.c */ |
| 3491 #line 633 "src/src/glsl/glsl_parser.yy" |
| 3492 { |
| 3493 void *ctx = state; |
| 3494 (yyval.expression) = new(ctx) ast_expression_bin(ast_rshift, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
| 3495 (yyval.expression)->set_location(yylloc); |
| 3496 } |
| 3497 break; |
| 3498 |
| 3499 case 73: |
| 3500 |
| 3501 /* Line 1806 of yacc.c */ |
| 3502 #line 643 "src/src/glsl/glsl_parser.yy" |
| 3503 { |
| 3504 void *ctx = state; |
| 3505 (yyval.expression) = new(ctx) ast_expression_bin(ast_less, (yyvsp[(1)
- (3)].expression), (yyvsp[(3) - (3)].expression)); |
| 3506 (yyval.expression)->set_location(yylloc); |
| 3507 } |
| 3508 break; |
| 3509 |
| 3510 case 74: |
| 3511 |
| 3512 /* Line 1806 of yacc.c */ |
| 3513 #line 649 "src/src/glsl/glsl_parser.yy" |
| 3514 { |
| 3515 void *ctx = state; |
| 3516 (yyval.expression) = new(ctx) ast_expression_bin(ast_greater, (yyvsp[
(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
| 3517 (yyval.expression)->set_location(yylloc); |
| 3518 } |
| 3519 break; |
| 3520 |
| 3521 case 75: |
| 3522 |
| 3523 /* Line 1806 of yacc.c */ |
| 3524 #line 655 "src/src/glsl/glsl_parser.yy" |
| 3525 { |
| 3526 void *ctx = state; |
| 3527 (yyval.expression) = new(ctx) ast_expression_bin(ast_lequal, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
| 3528 (yyval.expression)->set_location(yylloc); |
| 3529 } |
| 3530 break; |
| 3531 |
| 3532 case 76: |
| 3533 |
| 3534 /* Line 1806 of yacc.c */ |
| 3535 #line 661 "src/src/glsl/glsl_parser.yy" |
| 3536 { |
| 3537 void *ctx = state; |
| 3538 (yyval.expression) = new(ctx) ast_expression_bin(ast_gequal, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
| 3539 (yyval.expression)->set_location(yylloc); |
| 3540 } |
| 3541 break; |
| 3542 |
| 3543 case 78: |
| 3544 |
| 3545 /* Line 1806 of yacc.c */ |
| 3546 #line 671 "src/src/glsl/glsl_parser.yy" |
| 3547 { |
| 3548 void *ctx = state; |
| 3549 (yyval.expression) = new(ctx) ast_expression_bin(ast_equal, (yyvsp[(1
) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
| 3550 (yyval.expression)->set_location(yylloc); |
| 3551 } |
| 3552 break; |
| 3553 |
| 3554 case 79: |
| 3555 |
| 3556 /* Line 1806 of yacc.c */ |
| 3557 #line 677 "src/src/glsl/glsl_parser.yy" |
| 3558 { |
| 3559 void *ctx = state; |
| 3560 (yyval.expression) = new(ctx) ast_expression_bin(ast_nequal, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
| 3561 (yyval.expression)->set_location(yylloc); |
| 3562 } |
| 3563 break; |
| 3564 |
| 3565 case 81: |
| 3566 |
| 3567 /* Line 1806 of yacc.c */ |
| 3568 #line 687 "src/src/glsl/glsl_parser.yy" |
| 3569 { |
| 3570 void *ctx = state; |
| 3571 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_and, (yyvsp[
(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
| 3572 (yyval.expression)->set_location(yylloc); |
| 3573 } |
| 3574 break; |
| 3575 |
| 3576 case 83: |
| 3577 |
| 3578 /* Line 1806 of yacc.c */ |
| 3579 #line 697 "src/src/glsl/glsl_parser.yy" |
| 3580 { |
| 3581 void *ctx = state; |
| 3582 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_xor, (yyvsp[
(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
| 3583 (yyval.expression)->set_location(yylloc); |
| 3584 } |
| 3585 break; |
| 3586 |
| 3587 case 85: |
| 3588 |
| 3589 /* Line 1806 of yacc.c */ |
| 3590 #line 707 "src/src/glsl/glsl_parser.yy" |
| 3591 { |
| 3592 void *ctx = state; |
| 3593 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
| 3594 (yyval.expression)->set_location(yylloc); |
| 3595 } |
| 3596 break; |
| 3597 |
| 3598 case 87: |
| 3599 |
| 3600 /* Line 1806 of yacc.c */ |
| 3601 #line 717 "src/src/glsl/glsl_parser.yy" |
| 3602 { |
| 3603 void *ctx = state; |
| 3604 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_and, (yyvs
p[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
| 3605 (yyval.expression)->set_location(yylloc); |
| 3606 } |
| 3607 break; |
| 3608 |
| 3609 case 89: |
| 3610 |
| 3611 /* Line 1806 of yacc.c */ |
| 3612 #line 727 "src/src/glsl/glsl_parser.yy" |
| 3613 { |
| 3614 void *ctx = state; |
| 3615 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_xor, (yyvs
p[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
| 3616 (yyval.expression)->set_location(yylloc); |
| 3617 } |
| 3618 break; |
| 3619 |
| 3620 case 91: |
| 3621 |
| 3622 /* Line 1806 of yacc.c */ |
| 3623 #line 737 "src/src/glsl/glsl_parser.yy" |
| 3624 { |
| 3625 void *ctx = state; |
| 3626 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_or, (yyvsp
[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
| 3627 (yyval.expression)->set_location(yylloc); |
| 3628 } |
| 3629 break; |
| 3630 |
| 3631 case 93: |
| 3632 |
| 3633 /* Line 1806 of yacc.c */ |
| 3634 #line 747 "src/src/glsl/glsl_parser.yy" |
| 3635 { |
| 3636 void *ctx = state; |
| 3637 (yyval.expression) = new(ctx) ast_expression(ast_conditional, (yyvsp[
(1) - (5)].expression), (yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].express
ion)); |
| 3638 (yyval.expression)->set_location(yylloc); |
| 3639 } |
| 3640 break; |
| 3641 |
| 3642 case 95: |
| 3643 |
| 3644 /* Line 1806 of yacc.c */ |
| 3645 #line 757 "src/src/glsl/glsl_parser.yy" |
| 3646 { |
| 3647 void *ctx = state; |
| 3648 (yyval.expression) = new(ctx) ast_expression((yyvsp[(2) - (3)].n), (y
yvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL); |
| 3649 (yyval.expression)->set_location(yylloc); |
| 3650 } |
| 3651 break; |
| 3652 |
| 3653 case 96: |
| 3654 |
| 3655 /* Line 1806 of yacc.c */ |
| 3656 #line 765 "src/src/glsl/glsl_parser.yy" |
| 3657 { (yyval.n) = ast_assign; } |
| 3658 break; |
| 3659 |
| 3660 case 97: |
| 3661 |
| 3662 /* Line 1806 of yacc.c */ |
| 3663 #line 766 "src/src/glsl/glsl_parser.yy" |
| 3664 { (yyval.n) = ast_mul_assign; } |
| 3665 break; |
| 3666 |
| 3667 case 98: |
| 3668 |
| 3669 /* Line 1806 of yacc.c */ |
| 3670 #line 767 "src/src/glsl/glsl_parser.yy" |
| 3671 { (yyval.n) = ast_div_assign; } |
| 3672 break; |
| 3673 |
| 3674 case 99: |
| 3675 |
| 3676 /* Line 1806 of yacc.c */ |
| 3677 #line 768 "src/src/glsl/glsl_parser.yy" |
| 3678 { (yyval.n) = ast_mod_assign; } |
| 3679 break; |
| 3680 |
| 3681 case 100: |
| 3682 |
| 3683 /* Line 1806 of yacc.c */ |
| 3684 #line 769 "src/src/glsl/glsl_parser.yy" |
| 3685 { (yyval.n) = ast_add_assign; } |
| 3686 break; |
| 3687 |
| 3688 case 101: |
| 3689 |
| 3690 /* Line 1806 of yacc.c */ |
| 3691 #line 770 "src/src/glsl/glsl_parser.yy" |
| 3692 { (yyval.n) = ast_sub_assign; } |
| 3693 break; |
| 3694 |
| 3695 case 102: |
| 3696 |
| 3697 /* Line 1806 of yacc.c */ |
| 3698 #line 771 "src/src/glsl/glsl_parser.yy" |
| 3699 { (yyval.n) = ast_ls_assign; } |
| 3700 break; |
| 3701 |
| 3702 case 103: |
| 3703 |
| 3704 /* Line 1806 of yacc.c */ |
| 3705 #line 772 "src/src/glsl/glsl_parser.yy" |
| 3706 { (yyval.n) = ast_rs_assign; } |
| 3707 break; |
| 3708 |
| 3709 case 104: |
| 3710 |
| 3711 /* Line 1806 of yacc.c */ |
| 3712 #line 773 "src/src/glsl/glsl_parser.yy" |
| 3713 { (yyval.n) = ast_and_assign; } |
| 3714 break; |
| 3715 |
| 3716 case 105: |
| 3717 |
| 3718 /* Line 1806 of yacc.c */ |
| 3719 #line 774 "src/src/glsl/glsl_parser.yy" |
| 3720 { (yyval.n) = ast_xor_assign; } |
| 3721 break; |
| 3722 |
| 3723 case 106: |
| 3724 |
| 3725 /* Line 1806 of yacc.c */ |
| 3726 #line 775 "src/src/glsl/glsl_parser.yy" |
| 3727 { (yyval.n) = ast_or_assign; } |
| 3728 break; |
| 3729 |
| 3730 case 107: |
| 3731 |
| 3732 /* Line 1806 of yacc.c */ |
| 3733 #line 780 "src/src/glsl/glsl_parser.yy" |
| 3734 { |
| 3735 (yyval.expression) = (yyvsp[(1) - (1)].expression); |
| 3736 } |
| 3737 break; |
| 3738 |
| 3739 case 108: |
| 3740 |
| 3741 /* Line 1806 of yacc.c */ |
| 3742 #line 784 "src/src/glsl/glsl_parser.yy" |
| 3743 { |
| 3744 void *ctx = state; |
| 3745 if ((yyvsp[(1) - (3)].expression)->oper != ast_sequence) { |
| 3746 (yyval.expression) = new(ctx) ast_expression(ast_sequence, NULL, N
ULL, NULL); |
| 3747 (yyval.expression)->set_location(yylloc); |
| 3748 (yyval.expression)->expressions.push_tail(& (yyvsp[(1) - (3)].expr
ession)->link); |
| 3749 } else { |
| 3750 (yyval.expression) = (yyvsp[(1) - (3)].expression); |
| 3751 } |
| 3752 |
| 3753 (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].express
ion)->link); |
| 3754 } |
| 3755 break; |
| 3756 |
| 3757 case 110: |
| 3758 |
| 3759 /* Line 1806 of yacc.c */ |
| 3760 #line 804 "src/src/glsl/glsl_parser.yy" |
| 3761 { |
| 3762 state->symbols->pop_scope(); |
| 3763 (yyval.node) = (yyvsp[(1) - (2)].function); |
| 3764 } |
| 3765 break; |
| 3766 |
| 3767 case 111: |
| 3768 |
| 3769 /* Line 1806 of yacc.c */ |
| 3770 #line 809 "src/src/glsl/glsl_parser.yy" |
| 3771 { |
| 3772 (yyval.node) = (yyvsp[(1) - (2)].declarator_list); |
| 3773 } |
| 3774 break; |
| 3775 |
| 3776 case 112: |
| 3777 |
| 3778 /* Line 1806 of yacc.c */ |
| 3779 #line 813 "src/src/glsl/glsl_parser.yy" |
| 3780 { |
| 3781 (yyvsp[(3) - (4)].type_specifier)->precision = (yyvsp[(2) - (4)].n); |
| 3782 (yyvsp[(3) - (4)].type_specifier)->is_precision_statement = true; |
| 3783 (yyval.node) = (yyvsp[(3) - (4)].type_specifier); |
| 3784 } |
| 3785 break; |
| 3786 |
| 3787 case 113: |
| 3788 |
| 3789 /* Line 1806 of yacc.c */ |
| 3790 #line 819 "src/src/glsl/glsl_parser.yy" |
| 3791 { |
| 3792 (yyval.node) = (yyvsp[(1) - (1)].node); |
| 3793 } |
| 3794 break; |
| 3795 |
| 3796 case 117: |
| 3797 |
| 3798 /* Line 1806 of yacc.c */ |
| 3799 #line 835 "src/src/glsl/glsl_parser.yy" |
| 3800 { |
| 3801 (yyval.function) = (yyvsp[(1) - (2)].function); |
| 3802 (yyval.function)->parameters.push_tail(& (yyvsp[(2) - (2)].parameter_
declarator)->link); |
| 3803 } |
| 3804 break; |
| 3805 |
| 3806 case 118: |
| 3807 |
| 3808 /* Line 1806 of yacc.c */ |
| 3809 #line 840 "src/src/glsl/glsl_parser.yy" |
| 3810 { |
| 3811 (yyval.function) = (yyvsp[(1) - (3)].function); |
| 3812 (yyval.function)->parameters.push_tail(& (yyvsp[(3) - (3)].parameter_
declarator)->link); |
| 3813 } |
| 3814 break; |
| 3815 |
| 3816 case 119: |
| 3817 |
| 3818 /* Line 1806 of yacc.c */ |
| 3819 #line 848 "src/src/glsl/glsl_parser.yy" |
| 3820 { |
| 3821 void *ctx = state; |
| 3822 (yyval.function) = new(ctx) ast_function(); |
| 3823 (yyval.function)->set_location(yylloc); |
| 3824 (yyval.function)->return_type = (yyvsp[(1) - (3)].fully_specified_typ
e); |
| 3825 (yyval.function)->identifier = (yyvsp[(2) - (3)].identifier); |
| 3826 |
| 3827 state->symbols->add_function(new(state) ir_function((yyvsp[(2) - (3)]
.identifier))); |
| 3828 state->symbols->push_scope(); |
| 3829 } |
| 3830 break; |
| 3831 |
| 3832 case 120: |
| 3833 |
| 3834 /* Line 1806 of yacc.c */ |
| 3835 #line 862 "src/src/glsl/glsl_parser.yy" |
| 3836 { |
| 3837 void *ctx = state; |
| 3838 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); |
| 3839 (yyval.parameter_declarator)->set_location(yylloc); |
| 3840 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_typ
e(); |
| 3841 (yyval.parameter_declarator)->type->set_location(yylloc); |
| 3842 (yyval.parameter_declarator)->type->specifier = (yyvsp[(1) - (2)].typ
e_specifier); |
| 3843 (yyval.parameter_declarator)->identifier = (yyvsp[(2) - (2)].identifi
er); |
| 3844 } |
| 3845 break; |
| 3846 |
| 3847 case 121: |
| 3848 |
| 3849 /* Line 1806 of yacc.c */ |
| 3850 #line 872 "src/src/glsl/glsl_parser.yy" |
| 3851 { |
| 3852 void *ctx = state; |
| 3853 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); |
| 3854 (yyval.parameter_declarator)->set_location(yylloc); |
| 3855 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_typ
e(); |
| 3856 (yyval.parameter_declarator)->type->set_location(yylloc); |
| 3857 (yyval.parameter_declarator)->type->specifier = (yyvsp[(1) - (5)].typ
e_specifier); |
| 3858 (yyval.parameter_declarator)->identifier = (yyvsp[(2) - (5)].identifi
er); |
| 3859 (yyval.parameter_declarator)->is_array = true; |
| 3860 (yyval.parameter_declarator)->array_size = (yyvsp[(4) - (5)].expressi
on); |
| 3861 } |
| 3862 break; |
| 3863 |
| 3864 case 122: |
| 3865 |
| 3866 /* Line 1806 of yacc.c */ |
| 3867 #line 887 "src/src/glsl/glsl_parser.yy" |
| 3868 { |
| 3869 (yyvsp[(1) - (3)].type_qualifier).flags.i |= (yyvsp[(2) - (3)].type_q
ualifier).flags.i; |
| 3870 |
| 3871 (yyval.parameter_declarator) = (yyvsp[(3) - (3)].parameter_declarator
); |
| 3872 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (3)].typ
e_qualifier); |
| 3873 } |
| 3874 break; |
| 3875 |
| 3876 case 123: |
| 3877 |
| 3878 /* Line 1806 of yacc.c */ |
| 3879 #line 894 "src/src/glsl/glsl_parser.yy" |
| 3880 { |
| 3881 (yyval.parameter_declarator) = (yyvsp[(2) - (2)].parameter_declarator
); |
| 3882 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].typ
e_qualifier); |
| 3883 } |
| 3884 break; |
| 3885 |
| 3886 case 124: |
| 3887 |
| 3888 /* Line 1806 of yacc.c */ |
| 3889 #line 899 "src/src/glsl/glsl_parser.yy" |
| 3890 { |
| 3891 void *ctx = state; |
| 3892 (yyvsp[(1) - (3)].type_qualifier).flags.i |= (yyvsp[(2) - (3)].type_q
ualifier).flags.i; |
| 3893 |
| 3894 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); |
| 3895 (yyval.parameter_declarator)->set_location(yylloc); |
| 3896 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_typ
e(); |
| 3897 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (3)].typ
e_qualifier); |
| 3898 (yyval.parameter_declarator)->type->specifier = (yyvsp[(3) - (3)].typ
e_specifier); |
| 3899 } |
| 3900 break; |
| 3901 |
| 3902 case 125: |
| 3903 |
| 3904 /* Line 1806 of yacc.c */ |
| 3905 #line 910 "src/src/glsl/glsl_parser.yy" |
| 3906 { |
| 3907 void *ctx = state; |
| 3908 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); |
| 3909 (yyval.parameter_declarator)->set_location(yylloc); |
| 3910 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_typ
e(); |
| 3911 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].typ
e_qualifier); |
| 3912 (yyval.parameter_declarator)->type->specifier = (yyvsp[(2) - (2)].typ
e_specifier); |
| 3913 } |
| 3914 break; |
| 3915 |
| 3916 case 126: |
| 3917 |
| 3918 /* Line 1806 of yacc.c */ |
| 3919 #line 922 "src/src/glsl/glsl_parser.yy" |
| 3920 { |
| 3921 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 3922 } |
| 3923 break; |
| 3924 |
| 3925 case 127: |
| 3926 |
| 3927 /* Line 1806 of yacc.c */ |
| 3928 #line 926 "src/src/glsl/glsl_parser.yy" |
| 3929 { |
| 3930 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 3931 (yyval.type_qualifier).flags.q.in = 1; |
| 3932 } |
| 3933 break; |
| 3934 |
| 3935 case 128: |
| 3936 |
| 3937 /* Line 1806 of yacc.c */ |
| 3938 #line 931 "src/src/glsl/glsl_parser.yy" |
| 3939 { |
| 3940 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 3941 (yyval.type_qualifier).flags.q.out = 1; |
| 3942 } |
| 3943 break; |
| 3944 |
| 3945 case 129: |
| 3946 |
| 3947 /* Line 1806 of yacc.c */ |
| 3948 #line 936 "src/src/glsl/glsl_parser.yy" |
| 3949 { |
| 3950 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 3951 (yyval.type_qualifier).flags.q.in = 1; |
| 3952 (yyval.type_qualifier).flags.q.out = 1; |
| 3953 } |
| 3954 break; |
| 3955 |
| 3956 case 132: |
| 3957 |
| 3958 /* Line 1806 of yacc.c */ |
| 3959 #line 950 "src/src/glsl/glsl_parser.yy" |
| 3960 { |
| 3961 void *ctx = state; |
| 3962 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (3)].id
entifier), false, NULL, NULL); |
| 3963 decl->set_location(yylloc); |
| 3964 |
| 3965 (yyval.declarator_list) = (yyvsp[(1) - (3)].declarator_list); |
| 3966 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
| 3967 state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3)
- (3)].identifier), ir_var_auto)); |
| 3968 } |
| 3969 break; |
| 3970 |
| 3971 case 133: |
| 3972 |
| 3973 /* Line 1806 of yacc.c */ |
| 3974 #line 960 "src/src/glsl/glsl_parser.yy" |
| 3975 { |
| 3976 void *ctx = state; |
| 3977 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].id
entifier), true, NULL, NULL); |
| 3978 decl->set_location(yylloc); |
| 3979 |
| 3980 (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list); |
| 3981 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
| 3982 state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3)
- (5)].identifier), ir_var_auto)); |
| 3983 } |
| 3984 break; |
| 3985 |
| 3986 case 134: |
| 3987 |
| 3988 /* Line 1806 of yacc.c */ |
| 3989 #line 970 "src/src/glsl/glsl_parser.yy" |
| 3990 { |
| 3991 void *ctx = state; |
| 3992 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (6)].id
entifier), true, (yyvsp[(5) - (6)].expression), NULL); |
| 3993 decl->set_location(yylloc); |
| 3994 |
| 3995 (yyval.declarator_list) = (yyvsp[(1) - (6)].declarator_list); |
| 3996 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
| 3997 state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3)
- (6)].identifier), ir_var_auto)); |
| 3998 } |
| 3999 break; |
| 4000 |
| 4001 case 135: |
| 4002 |
| 4003 /* Line 1806 of yacc.c */ |
| 4004 #line 980 "src/src/glsl/glsl_parser.yy" |
| 4005 { |
| 4006 void *ctx = state; |
| 4007 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (7)].id
entifier), true, NULL, (yyvsp[(7) - (7)].expression)); |
| 4008 decl->set_location(yylloc); |
| 4009 |
| 4010 (yyval.declarator_list) = (yyvsp[(1) - (7)].declarator_list); |
| 4011 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
| 4012 state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3)
- (7)].identifier), ir_var_auto)); |
| 4013 } |
| 4014 break; |
| 4015 |
| 4016 case 136: |
| 4017 |
| 4018 /* Line 1806 of yacc.c */ |
| 4019 #line 990 "src/src/glsl/glsl_parser.yy" |
| 4020 { |
| 4021 void *ctx = state; |
| 4022 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (8)].id
entifier), true, (yyvsp[(5) - (8)].expression), (yyvsp[(8) - (8)].expression)); |
| 4023 decl->set_location(yylloc); |
| 4024 |
| 4025 (yyval.declarator_list) = (yyvsp[(1) - (8)].declarator_list); |
| 4026 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
| 4027 state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3)
- (8)].identifier), ir_var_auto)); |
| 4028 } |
| 4029 break; |
| 4030 |
| 4031 case 137: |
| 4032 |
| 4033 /* Line 1806 of yacc.c */ |
| 4034 #line 1000 "src/src/glsl/glsl_parser.yy" |
| 4035 { |
| 4036 void *ctx = state; |
| 4037 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].id
entifier), false, NULL, (yyvsp[(5) - (5)].expression)); |
| 4038 decl->set_location(yylloc); |
| 4039 |
| 4040 (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list); |
| 4041 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
| 4042 state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3)
- (5)].identifier), ir_var_auto)); |
| 4043 } |
| 4044 break; |
| 4045 |
| 4046 case 138: |
| 4047 |
| 4048 /* Line 1806 of yacc.c */ |
| 4049 #line 1014 "src/src/glsl/glsl_parser.yy" |
| 4050 { |
| 4051 void *ctx = state; |
| 4052 /* Empty declaration list is valid. */ |
| 4053 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (
1)].fully_specified_type)); |
| 4054 (yyval.declarator_list)->set_location(yylloc); |
| 4055 } |
| 4056 break; |
| 4057 |
| 4058 case 139: |
| 4059 |
| 4060 /* Line 1806 of yacc.c */ |
| 4061 #line 1021 "src/src/glsl/glsl_parser.yy" |
| 4062 { |
| 4063 void *ctx = state; |
| 4064 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].id
entifier), false, NULL, NULL); |
| 4065 |
| 4066 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (
2)].fully_specified_type)); |
| 4067 (yyval.declarator_list)->set_location(yylloc); |
| 4068 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
| 4069 } |
| 4070 break; |
| 4071 |
| 4072 case 140: |
| 4073 |
| 4074 /* Line 1806 of yacc.c */ |
| 4075 #line 1030 "src/src/glsl/glsl_parser.yy" |
| 4076 { |
| 4077 void *ctx = state; |
| 4078 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].id
entifier), true, NULL, NULL); |
| 4079 |
| 4080 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (
4)].fully_specified_type)); |
| 4081 (yyval.declarator_list)->set_location(yylloc); |
| 4082 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
| 4083 } |
| 4084 break; |
| 4085 |
| 4086 case 141: |
| 4087 |
| 4088 /* Line 1806 of yacc.c */ |
| 4089 #line 1039 "src/src/glsl/glsl_parser.yy" |
| 4090 { |
| 4091 void *ctx = state; |
| 4092 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (5)].id
entifier), true, (yyvsp[(4) - (5)].expression), NULL); |
| 4093 |
| 4094 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (
5)].fully_specified_type)); |
| 4095 (yyval.declarator_list)->set_location(yylloc); |
| 4096 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
| 4097 } |
| 4098 break; |
| 4099 |
| 4100 case 142: |
| 4101 |
| 4102 /* Line 1806 of yacc.c */ |
| 4103 #line 1048 "src/src/glsl/glsl_parser.yy" |
| 4104 { |
| 4105 void *ctx = state; |
| 4106 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (6)].id
entifier), true, NULL, (yyvsp[(6) - (6)].expression)); |
| 4107 |
| 4108 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (
6)].fully_specified_type)); |
| 4109 (yyval.declarator_list)->set_location(yylloc); |
| 4110 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
| 4111 } |
| 4112 break; |
| 4113 |
| 4114 case 143: |
| 4115 |
| 4116 /* Line 1806 of yacc.c */ |
| 4117 #line 1057 "src/src/glsl/glsl_parser.yy" |
| 4118 { |
| 4119 void *ctx = state; |
| 4120 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (7)].id
entifier), true, (yyvsp[(4) - (7)].expression), (yyvsp[(7) - (7)].expression)); |
| 4121 |
| 4122 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (
7)].fully_specified_type)); |
| 4123 (yyval.declarator_list)->set_location(yylloc); |
| 4124 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
| 4125 } |
| 4126 break; |
| 4127 |
| 4128 case 144: |
| 4129 |
| 4130 /* Line 1806 of yacc.c */ |
| 4131 #line 1066 "src/src/glsl/glsl_parser.yy" |
| 4132 { |
| 4133 void *ctx = state; |
| 4134 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].id
entifier), false, NULL, (yyvsp[(4) - (4)].expression)); |
| 4135 |
| 4136 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (
4)].fully_specified_type)); |
| 4137 (yyval.declarator_list)->set_location(yylloc); |
| 4138 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
| 4139 } |
| 4140 break; |
| 4141 |
| 4142 case 145: |
| 4143 |
| 4144 /* Line 1806 of yacc.c */ |
| 4145 #line 1075 "src/src/glsl/glsl_parser.yy" |
| 4146 { |
| 4147 void *ctx = state; |
| 4148 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].id
entifier), false, NULL, NULL); |
| 4149 |
| 4150 (yyval.declarator_list) = new(ctx) ast_declarator_list(NULL); |
| 4151 (yyval.declarator_list)->set_location(yylloc); |
| 4152 (yyval.declarator_list)->invariant = true; |
| 4153 |
| 4154 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
| 4155 } |
| 4156 break; |
| 4157 |
| 4158 case 146: |
| 4159 |
| 4160 /* Line 1806 of yacc.c */ |
| 4161 #line 1089 "src/src/glsl/glsl_parser.yy" |
| 4162 { |
| 4163 void *ctx = state; |
| 4164 (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type(); |
| 4165 (yyval.fully_specified_type)->set_location(yylloc); |
| 4166 (yyval.fully_specified_type)->specifier = (yyvsp[(1) - (1)].type_spec
ifier); |
| 4167 } |
| 4168 break; |
| 4169 |
| 4170 case 147: |
| 4171 |
| 4172 /* Line 1806 of yacc.c */ |
| 4173 #line 1096 "src/src/glsl/glsl_parser.yy" |
| 4174 { |
| 4175 void *ctx = state; |
| 4176 (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type(); |
| 4177 (yyval.fully_specified_type)->set_location(yylloc); |
| 4178 (yyval.fully_specified_type)->qualifier = (yyvsp[(1) - (2)].type_qual
ifier); |
| 4179 (yyval.fully_specified_type)->specifier = (yyvsp[(2) - (2)].type_spec
ifier); |
| 4180 } |
| 4181 break; |
| 4182 |
| 4183 case 148: |
| 4184 |
| 4185 /* Line 1806 of yacc.c */ |
| 4186 #line 1107 "src/src/glsl/glsl_parser.yy" |
| 4187 { |
| 4188 (yyval.type_qualifier) = (yyvsp[(3) - (4)].type_qualifier); |
| 4189 } |
| 4190 break; |
| 4191 |
| 4192 case 150: |
| 4193 |
| 4194 /* Line 1806 of yacc.c */ |
| 4195 #line 1115 "src/src/glsl/glsl_parser.yy" |
| 4196 { |
| 4197 (yyval.type_qualifier) = (yyvsp[(1) - (3)].type_qualifier); |
| 4198 if (!(yyval.type_qualifier).merge_qualifier(& (yylsp[(3) - (3)]), sta
te, (yyvsp[(3) - (3)].type_qualifier))) { |
| 4199 YYERROR; |
| 4200 } |
| 4201 } |
| 4202 break; |
| 4203 |
| 4204 case 151: |
| 4205 |
| 4206 /* Line 1806 of yacc.c */ |
| 4207 #line 1125 "src/src/glsl/glsl_parser.yy" |
| 4208 { |
| 4209 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 4210 |
| 4211 /* Layout qualifiers for ARB_fragment_coord_conventions. */ |
| 4212 if (!(yyval.type_qualifier).flags.i && state->ARB_fragment_coord_conv
entions_enable) { |
| 4213 if (strcmp((yyvsp[(1) - (1)].identifier), "origin_upper_left") ==
0) { |
| 4214 (yyval.type_qualifier).flags.q.origin_upper_left = 1; |
| 4215 } else if (strcmp((yyvsp[(1) - (1)].identifier), "pixel_center_int
eger") == 0) { |
| 4216 (yyval.type_qualifier).flags.q.pixel_center_integer = 1; |
| 4217 } |
| 4218 |
| 4219 if ((yyval.type_qualifier).flags.i && state->ARB_fragment_coord_co
nventions_warn) { |
| 4220 _mesa_glsl_warning(& (yylsp[(1) - (1)]), state, |
| 4221 "GL_ARB_fragment_coord_conventions layout " |
| 4222 "identifier `%s' used\n", (yyvsp[(1) - (1)].
identifier)); |
| 4223 } |
| 4224 } |
| 4225 |
| 4226 /* Layout qualifiers for AMD/ARB_conservative_depth. */ |
| 4227 if (!(yyval.type_qualifier).flags.i && |
| 4228 (state->AMD_conservative_depth_enable || |
| 4229 state->ARB_conservative_depth_enable)) { |
| 4230 if (strcmp((yyvsp[(1) - (1)].identifier), "depth_any") == 0) { |
| 4231 (yyval.type_qualifier).flags.q.depth_any = 1; |
| 4232 } else if (strcmp((yyvsp[(1) - (1)].identifier), "depth_greater")
== 0) { |
| 4233 (yyval.type_qualifier).flags.q.depth_greater = 1; |
| 4234 } else if (strcmp((yyvsp[(1) - (1)].identifier), "depth_less") ==
0) { |
| 4235 (yyval.type_qualifier).flags.q.depth_less = 1; |
| 4236 } else if (strcmp((yyvsp[(1) - (1)].identifier), "depth_unchanged"
) == 0) { |
| 4237 (yyval.type_qualifier).flags.q.depth_unchanged = 1; |
| 4238 } |
| 4239 |
| 4240 if ((yyval.type_qualifier).flags.i && state->AMD_conservative_dept
h_warn) { |
| 4241 _mesa_glsl_warning(& (yylsp[(1) - (1)]), state, |
| 4242 "GL_AMD_conservative_depth " |
| 4243 "layout qualifier `%s' is used\n", (yyvsp[(1
) - (1)].identifier)); |
| 4244 } |
| 4245 if ((yyval.type_qualifier).flags.i && state->ARB_conservative_dept
h_warn) { |
| 4246 _mesa_glsl_warning(& (yylsp[(1) - (1)]), state, |
| 4247 "GL_ARB_conservative_depth " |
| 4248 "layout qualifier `%s' is used\n", (yyvsp[(1
) - (1)].identifier)); |
| 4249 } |
| 4250 } |
| 4251 |
| 4252 /* See also uniform_block_layout_qualifier. */ |
| 4253 if (!(yyval.type_qualifier).flags.i && state->ARB_uniform_buffer_obje
ct_enable) { |
| 4254 if (strcmp((yyvsp[(1) - (1)].identifier), "std140") == 0) { |
| 4255 (yyval.type_qualifier).flags.q.std140 = 1; |
| 4256 } else if (strcmp((yyvsp[(1) - (1)].identifier), "shared") == 0) { |
| 4257 (yyval.type_qualifier).flags.q.shared = 1; |
| 4258 } else if (strcmp((yyvsp[(1) - (1)].identifier), "column_major") =
= 0) { |
| 4259 (yyval.type_qualifier).flags.q.column_major = 1; |
| 4260 } |
| 4261 |
| 4262 if ((yyval.type_qualifier).flags.i && state->ARB_uniform_buffer_ob
ject_warn) { |
| 4263 _mesa_glsl_warning(& (yylsp[(1) - (1)]), state, |
| 4264 "#version 140 / GL_ARB_uniform_buffer_object
" |
| 4265 "layout qualifier `%s' is used\n", (yyvsp[(1
) - (1)].identifier)); |
| 4266 } |
| 4267 } |
| 4268 |
| 4269 if (!(yyval.type_qualifier).flags.i) { |
| 4270 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "unrecognized layout
identifier " |
| 4271 "`%s'\n", (yyvsp[(1) - (1)].identifier)); |
| 4272 YYERROR; |
| 4273 } |
| 4274 } |
| 4275 break; |
| 4276 |
| 4277 case 152: |
| 4278 |
| 4279 /* Line 1806 of yacc.c */ |
| 4280 #line 1193 "src/src/glsl/glsl_parser.yy" |
| 4281 { |
| 4282 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 4283 |
| 4284 if (state->ARB_explicit_attrib_location_enable) { |
| 4285 /* FINISHME: Handle 'index' once GL_ARB_blend_func_exteneded and |
| 4286 * FINISHME: GLSL 1.30 (or later) are supported. |
| 4287 */ |
| 4288 if (strcmp("location", (yyvsp[(1) - (3)].identifier)) == 0) { |
| 4289 (yyval.type_qualifier).flags.q.explicit_location = 1; |
| 4290 |
| 4291 if ((yyvsp[(3) - (3)].n) >= 0) { |
| 4292 (yyval.type_qualifier).location = (yyvsp[(3) - (3)].n); |
| 4293 } else { |
| 4294 _mesa_glsl_error(& (yylsp[(3) - (3)]), state, |
| 4295 "invalid location %d specified\n", (yyvsp[(
3) - (3)].n)); |
| 4296 YYERROR; |
| 4297 } |
| 4298 } |
| 4299 |
| 4300 if (strcmp("index", (yyvsp[(1) - (3)].identifier)) == 0) { |
| 4301 (yyval.type_qualifier).flags.q.explicit_index = 1; |
| 4302 |
| 4303 if ((yyvsp[(3) - (3)].n) >= 0) { |
| 4304 (yyval.type_qualifier).index = (yyvsp[(3) - (3)].n); |
| 4305 } else { |
| 4306 _mesa_glsl_error(& (yylsp[(3) - (3)]), state, |
| 4307 "invalid index %d specified\n", (yyvsp[(3)
- (3)].n)); |
| 4308 YYERROR; |
| 4309 } |
| 4310 } |
| 4311 } |
| 4312 |
| 4313 /* If the identifier didn't match any known layout identifiers, |
| 4314 * emit an error. |
| 4315 */ |
| 4316 if (!(yyval.type_qualifier).flags.i) { |
| 4317 _mesa_glsl_error(& (yylsp[(1) - (3)]), state, "unrecognized layout
identifier " |
| 4318 "`%s'\n", (yyvsp[(1) - (3)].identifier)); |
| 4319 YYERROR; |
| 4320 } else if (state->ARB_explicit_attrib_location_warn) { |
| 4321 _mesa_glsl_warning(& (yylsp[(1) - (3)]), state, |
| 4322 "GL_ARB_explicit_attrib_location layout " |
| 4323 "identifier `%s' used\n", (yyvsp[(1) - (3)].ide
ntifier)); |
| 4324 } |
| 4325 } |
| 4326 break; |
| 4327 |
| 4328 case 153: |
| 4329 |
| 4330 /* Line 1806 of yacc.c */ |
| 4331 #line 1239 "src/src/glsl/glsl_parser.yy" |
| 4332 { |
| 4333 (yyval.type_qualifier) = (yyvsp[(1) - (1)].type_qualifier); |
| 4334 /* Layout qualifiers for ARB_uniform_buffer_object. */ |
| 4335 if (!state->ARB_uniform_buffer_object_enable) { |
| 4336 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, |
| 4337 "#version 140 / GL_ARB_uniform_buffer_object " |
| 4338 "layout qualifier `%s' is used\n", (yyvsp[(1) - (
1)].type_qualifier)); |
| 4339 } else if (state->ARB_uniform_buffer_object_warn) { |
| 4340 _mesa_glsl_warning(& (yylsp[(1) - (1)]), state, |
| 4341 "#version 140 / GL_ARB_uniform_buffer_object " |
| 4342 "layout qualifier `%s' is used\n", (yyvsp[(1) -
(1)].type_qualifier)); |
| 4343 } |
| 4344 } |
| 4345 break; |
| 4346 |
| 4347 case 154: |
| 4348 |
| 4349 /* Line 1806 of yacc.c */ |
| 4350 #line 1261 "src/src/glsl/glsl_parser.yy" |
| 4351 { |
| 4352 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 4353 (yyval.type_qualifier).flags.q.row_major = 1; |
| 4354 } |
| 4355 break; |
| 4356 |
| 4357 case 155: |
| 4358 |
| 4359 /* Line 1806 of yacc.c */ |
| 4360 #line 1266 "src/src/glsl/glsl_parser.yy" |
| 4361 { |
| 4362 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 4363 (yyval.type_qualifier).flags.q.packed = 1; |
| 4364 } |
| 4365 break; |
| 4366 |
| 4367 case 156: |
| 4368 |
| 4369 /* Line 1806 of yacc.c */ |
| 4370 #line 1274 "src/src/glsl/glsl_parser.yy" |
| 4371 { |
| 4372 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 4373 (yyval.type_qualifier).flags.q.smooth = 1; |
| 4374 } |
| 4375 break; |
| 4376 |
| 4377 case 157: |
| 4378 |
| 4379 /* Line 1806 of yacc.c */ |
| 4380 #line 1279 "src/src/glsl/glsl_parser.yy" |
| 4381 { |
| 4382 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 4383 (yyval.type_qualifier).flags.q.flat = 1; |
| 4384 } |
| 4385 break; |
| 4386 |
| 4387 case 158: |
| 4388 |
| 4389 /* Line 1806 of yacc.c */ |
| 4390 #line 1284 "src/src/glsl/glsl_parser.yy" |
| 4391 { |
| 4392 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 4393 (yyval.type_qualifier).flags.q.noperspective = 1; |
| 4394 } |
| 4395 break; |
| 4396 |
| 4397 case 159: |
| 4398 |
| 4399 /* Line 1806 of yacc.c */ |
| 4400 #line 1292 "src/src/glsl/glsl_parser.yy" |
| 4401 { |
| 4402 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 4403 (yyval.type_qualifier).flags.q.constant = 1; |
| 4404 } |
| 4405 break; |
| 4406 |
| 4407 case 162: |
| 4408 |
| 4409 /* Line 1806 of yacc.c */ |
| 4410 #line 1302 "src/src/glsl/glsl_parser.yy" |
| 4411 { |
| 4412 (yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier); |
| 4413 (yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).f
lags.i; |
| 4414 } |
| 4415 break; |
| 4416 |
| 4417 case 164: |
| 4418 |
| 4419 /* Line 1806 of yacc.c */ |
| 4420 #line 1308 "src/src/glsl/glsl_parser.yy" |
| 4421 { |
| 4422 (yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier); |
| 4423 (yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).f
lags.i; |
| 4424 } |
| 4425 break; |
| 4426 |
| 4427 case 165: |
| 4428 |
| 4429 /* Line 1806 of yacc.c */ |
| 4430 #line 1313 "src/src/glsl/glsl_parser.yy" |
| 4431 { |
| 4432 (yyval.type_qualifier) = (yyvsp[(2) - (2)].type_qualifier); |
| 4433 (yyval.type_qualifier).flags.q.invariant = 1; |
| 4434 } |
| 4435 break; |
| 4436 |
| 4437 case 166: |
| 4438 |
| 4439 /* Line 1806 of yacc.c */ |
| 4440 #line 1318 "src/src/glsl/glsl_parser.yy" |
| 4441 { |
| 4442 (yyval.type_qualifier) = (yyvsp[(2) - (3)].type_qualifier); |
| 4443 (yyval.type_qualifier).flags.i |= (yyvsp[(3) - (3)].type_qualifier).f
lags.i; |
| 4444 (yyval.type_qualifier).flags.q.invariant = 1; |
| 4445 } |
| 4446 break; |
| 4447 |
| 4448 case 167: |
| 4449 |
| 4450 /* Line 1806 of yacc.c */ |
| 4451 #line 1324 "src/src/glsl/glsl_parser.yy" |
| 4452 { |
| 4453 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 4454 (yyval.type_qualifier).flags.q.invariant = 1; |
| 4455 } |
| 4456 break; |
| 4457 |
| 4458 case 168: |
| 4459 |
| 4460 /* Line 1806 of yacc.c */ |
| 4461 #line 1332 "src/src/glsl/glsl_parser.yy" |
| 4462 { |
| 4463 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 4464 (yyval.type_qualifier).flags.q.constant = 1; |
| 4465 } |
| 4466 break; |
| 4467 |
| 4468 case 169: |
| 4469 |
| 4470 /* Line 1806 of yacc.c */ |
| 4471 #line 1337 "src/src/glsl/glsl_parser.yy" |
| 4472 { |
| 4473 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 4474 (yyval.type_qualifier).flags.q.attribute = 1; |
| 4475 } |
| 4476 break; |
| 4477 |
| 4478 case 170: |
| 4479 |
| 4480 /* Line 1806 of yacc.c */ |
| 4481 #line 1342 "src/src/glsl/glsl_parser.yy" |
| 4482 { |
| 4483 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 4484 (yyval.type_qualifier).flags.q.varying = 1; |
| 4485 } |
| 4486 break; |
| 4487 |
| 4488 case 171: |
| 4489 |
| 4490 /* Line 1806 of yacc.c */ |
| 4491 #line 1347 "src/src/glsl/glsl_parser.yy" |
| 4492 { |
| 4493 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 4494 (yyval.type_qualifier).flags.q.centroid = 1; |
| 4495 (yyval.type_qualifier).flags.q.varying = 1; |
| 4496 } |
| 4497 break; |
| 4498 |
| 4499 case 172: |
| 4500 |
| 4501 /* Line 1806 of yacc.c */ |
| 4502 #line 1353 "src/src/glsl/glsl_parser.yy" |
| 4503 { |
| 4504 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 4505 (yyval.type_qualifier).flags.q.in = 1; |
| 4506 } |
| 4507 break; |
| 4508 |
| 4509 case 173: |
| 4510 |
| 4511 /* Line 1806 of yacc.c */ |
| 4512 #line 1358 "src/src/glsl/glsl_parser.yy" |
| 4513 { |
| 4514 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 4515 (yyval.type_qualifier).flags.q.out = 1; |
| 4516 } |
| 4517 break; |
| 4518 |
| 4519 case 174: |
| 4520 |
| 4521 /* Line 1806 of yacc.c */ |
| 4522 #line 1363 "src/src/glsl/glsl_parser.yy" |
| 4523 { |
| 4524 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 4525 (yyval.type_qualifier).flags.q.centroid = 1; (yyval.type_qualifier).f
lags.q.in = 1; |
| 4526 } |
| 4527 break; |
| 4528 |
| 4529 case 175: |
| 4530 |
| 4531 /* Line 1806 of yacc.c */ |
| 4532 #line 1368 "src/src/glsl/glsl_parser.yy" |
| 4533 { |
| 4534 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 4535 (yyval.type_qualifier).flags.q.centroid = 1; (yyval.type_qualifier).f
lags.q.out = 1; |
| 4536 } |
| 4537 break; |
| 4538 |
| 4539 case 176: |
| 4540 |
| 4541 /* Line 1806 of yacc.c */ |
| 4542 #line 1373 "src/src/glsl/glsl_parser.yy" |
| 4543 { |
| 4544 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); |
| 4545 (yyval.type_qualifier).flags.q.uniform = 1; |
| 4546 } |
| 4547 break; |
| 4548 |
| 4549 case 177: |
| 4550 |
| 4551 /* Line 1806 of yacc.c */ |
| 4552 #line 1381 "src/src/glsl/glsl_parser.yy" |
| 4553 { |
| 4554 (yyval.type_specifier) = (yyvsp[(1) - (1)].type_specifier); |
| 4555 } |
| 4556 break; |
| 4557 |
| 4558 case 178: |
| 4559 |
| 4560 /* Line 1806 of yacc.c */ |
| 4561 #line 1385 "src/src/glsl/glsl_parser.yy" |
| 4562 { |
| 4563 (yyval.type_specifier) = (yyvsp[(2) - (2)].type_specifier); |
| 4564 (yyval.type_specifier)->precision = (yyvsp[(1) - (2)].n); |
| 4565 } |
| 4566 break; |
| 4567 |
| 4568 case 180: |
| 4569 |
| 4570 /* Line 1806 of yacc.c */ |
| 4571 #line 1394 "src/src/glsl/glsl_parser.yy" |
| 4572 { |
| 4573 (yyval.type_specifier) = (yyvsp[(1) - (3)].type_specifier); |
| 4574 (yyval.type_specifier)->is_array = true; |
| 4575 (yyval.type_specifier)->array_size = NULL; |
| 4576 } |
| 4577 break; |
| 4578 |
| 4579 case 181: |
| 4580 |
| 4581 /* Line 1806 of yacc.c */ |
| 4582 #line 1400 "src/src/glsl/glsl_parser.yy" |
| 4583 { |
| 4584 (yyval.type_specifier) = (yyvsp[(1) - (4)].type_specifier); |
| 4585 (yyval.type_specifier)->is_array = true; |
| 4586 (yyval.type_specifier)->array_size = (yyvsp[(3) - (4)].expression); |
| 4587 } |
| 4588 break; |
| 4589 |
| 4590 case 182: |
| 4591 |
| 4592 /* Line 1806 of yacc.c */ |
| 4593 #line 1409 "src/src/glsl/glsl_parser.yy" |
| 4594 { |
| 4595 void *ctx = state; |
| 4596 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)
].identifier)); |
| 4597 (yyval.type_specifier)->set_location(yylloc); |
| 4598 } |
| 4599 break; |
| 4600 |
| 4601 case 183: |
| 4602 |
| 4603 /* Line 1806 of yacc.c */ |
| 4604 #line 1415 "src/src/glsl/glsl_parser.yy" |
| 4605 { |
| 4606 void *ctx = state; |
| 4607 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)
].struct_specifier)); |
| 4608 (yyval.type_specifier)->set_location(yylloc); |
| 4609 } |
| 4610 break; |
| 4611 |
| 4612 case 184: |
| 4613 |
| 4614 /* Line 1806 of yacc.c */ |
| 4615 #line 1421 "src/src/glsl/glsl_parser.yy" |
| 4616 { |
| 4617 void *ctx = state; |
| 4618 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)
].identifier)); |
| 4619 (yyval.type_specifier)->set_location(yylloc); |
| 4620 } |
| 4621 break; |
| 4622 |
| 4623 case 185: |
| 4624 |
| 4625 /* Line 1806 of yacc.c */ |
| 4626 #line 1429 "src/src/glsl/glsl_parser.yy" |
| 4627 { (yyval.identifier) = "void"; } |
| 4628 break; |
| 4629 |
| 4630 case 186: |
| 4631 |
| 4632 /* Line 1806 of yacc.c */ |
| 4633 #line 1430 "src/src/glsl/glsl_parser.yy" |
| 4634 { (yyval.identifier) = "float"; } |
| 4635 break; |
| 4636 |
| 4637 case 187: |
| 4638 |
| 4639 /* Line 1806 of yacc.c */ |
| 4640 #line 1431 "src/src/glsl/glsl_parser.yy" |
| 4641 { (yyval.identifier) = "int"; } |
| 4642 break; |
| 4643 |
| 4644 case 188: |
| 4645 |
| 4646 /* Line 1806 of yacc.c */ |
| 4647 #line 1432 "src/src/glsl/glsl_parser.yy" |
| 4648 { (yyval.identifier) = "uint"; } |
| 4649 break; |
| 4650 |
| 4651 case 189: |
| 4652 |
| 4653 /* Line 1806 of yacc.c */ |
| 4654 #line 1433 "src/src/glsl/glsl_parser.yy" |
| 4655 { (yyval.identifier) = "bool"; } |
| 4656 break; |
| 4657 |
| 4658 case 190: |
| 4659 |
| 4660 /* Line 1806 of yacc.c */ |
| 4661 #line 1434 "src/src/glsl/glsl_parser.yy" |
| 4662 { (yyval.identifier) = "vec2"; } |
| 4663 break; |
| 4664 |
| 4665 case 191: |
| 4666 |
| 4667 /* Line 1806 of yacc.c */ |
| 4668 #line 1435 "src/src/glsl/glsl_parser.yy" |
| 4669 { (yyval.identifier) = "vec3"; } |
| 4670 break; |
| 4671 |
| 4672 case 192: |
| 4673 |
| 4674 /* Line 1806 of yacc.c */ |
| 4675 #line 1436 "src/src/glsl/glsl_parser.yy" |
| 4676 { (yyval.identifier) = "vec4"; } |
| 4677 break; |
| 4678 |
| 4679 case 193: |
| 4680 |
| 4681 /* Line 1806 of yacc.c */ |
| 4682 #line 1437 "src/src/glsl/glsl_parser.yy" |
| 4683 { (yyval.identifier) = "bvec2"; } |
| 4684 break; |
| 4685 |
| 4686 case 194: |
| 4687 |
| 4688 /* Line 1806 of yacc.c */ |
| 4689 #line 1438 "src/src/glsl/glsl_parser.yy" |
| 4690 { (yyval.identifier) = "bvec3"; } |
| 4691 break; |
| 4692 |
| 4693 case 195: |
| 4694 |
| 4695 /* Line 1806 of yacc.c */ |
| 4696 #line 1439 "src/src/glsl/glsl_parser.yy" |
| 4697 { (yyval.identifier) = "bvec4"; } |
| 4698 break; |
| 4699 |
| 4700 case 196: |
| 4701 |
| 4702 /* Line 1806 of yacc.c */ |
| 4703 #line 1440 "src/src/glsl/glsl_parser.yy" |
| 4704 { (yyval.identifier) = "ivec2"; } |
| 4705 break; |
| 4706 |
| 4707 case 197: |
| 4708 |
| 4709 /* Line 1806 of yacc.c */ |
| 4710 #line 1441 "src/src/glsl/glsl_parser.yy" |
| 4711 { (yyval.identifier) = "ivec3"; } |
| 4712 break; |
| 4713 |
| 4714 case 198: |
| 4715 |
| 4716 /* Line 1806 of yacc.c */ |
| 4717 #line 1442 "src/src/glsl/glsl_parser.yy" |
| 4718 { (yyval.identifier) = "ivec4"; } |
| 4719 break; |
| 4720 |
| 4721 case 199: |
| 4722 |
| 4723 /* Line 1806 of yacc.c */ |
| 4724 #line 1443 "src/src/glsl/glsl_parser.yy" |
| 4725 { (yyval.identifier) = "uvec2"; } |
| 4726 break; |
| 4727 |
| 4728 case 200: |
| 4729 |
| 4730 /* Line 1806 of yacc.c */ |
| 4731 #line 1444 "src/src/glsl/glsl_parser.yy" |
| 4732 { (yyval.identifier) = "uvec3"; } |
| 4733 break; |
| 4734 |
| 4735 case 201: |
| 4736 |
| 4737 /* Line 1806 of yacc.c */ |
| 4738 #line 1445 "src/src/glsl/glsl_parser.yy" |
| 4739 { (yyval.identifier) = "uvec4"; } |
| 4740 break; |
| 4741 |
| 4742 case 202: |
| 4743 |
| 4744 /* Line 1806 of yacc.c */ |
| 4745 #line 1446 "src/src/glsl/glsl_parser.yy" |
| 4746 { (yyval.identifier) = "mat2"; } |
| 4747 break; |
| 4748 |
| 4749 case 203: |
| 4750 |
| 4751 /* Line 1806 of yacc.c */ |
| 4752 #line 1447 "src/src/glsl/glsl_parser.yy" |
| 4753 { (yyval.identifier) = "mat2x3"; } |
| 4754 break; |
| 4755 |
| 4756 case 204: |
| 4757 |
| 4758 /* Line 1806 of yacc.c */ |
| 4759 #line 1448 "src/src/glsl/glsl_parser.yy" |
| 4760 { (yyval.identifier) = "mat2x4"; } |
| 4761 break; |
| 4762 |
| 4763 case 205: |
| 4764 |
| 4765 /* Line 1806 of yacc.c */ |
| 4766 #line 1449 "src/src/glsl/glsl_parser.yy" |
| 4767 { (yyval.identifier) = "mat3x2"; } |
| 4768 break; |
| 4769 |
| 4770 case 206: |
| 4771 |
| 4772 /* Line 1806 of yacc.c */ |
| 4773 #line 1450 "src/src/glsl/glsl_parser.yy" |
| 4774 { (yyval.identifier) = "mat3"; } |
| 4775 break; |
| 4776 |
| 4777 case 207: |
| 4778 |
| 4779 /* Line 1806 of yacc.c */ |
| 4780 #line 1451 "src/src/glsl/glsl_parser.yy" |
| 4781 { (yyval.identifier) = "mat3x4"; } |
| 4782 break; |
| 4783 |
| 4784 case 208: |
| 4785 |
| 4786 /* Line 1806 of yacc.c */ |
| 4787 #line 1452 "src/src/glsl/glsl_parser.yy" |
| 4788 { (yyval.identifier) = "mat4x2"; } |
| 4789 break; |
| 4790 |
| 4791 case 209: |
| 4792 |
| 4793 /* Line 1806 of yacc.c */ |
| 4794 #line 1453 "src/src/glsl/glsl_parser.yy" |
| 4795 { (yyval.identifier) = "mat4x3"; } |
| 4796 break; |
| 4797 |
| 4798 case 210: |
| 4799 |
| 4800 /* Line 1806 of yacc.c */ |
| 4801 #line 1454 "src/src/glsl/glsl_parser.yy" |
| 4802 { (yyval.identifier) = "mat4"; } |
| 4803 break; |
| 4804 |
| 4805 case 211: |
| 4806 |
| 4807 /* Line 1806 of yacc.c */ |
| 4808 #line 1455 "src/src/glsl/glsl_parser.yy" |
| 4809 { (yyval.identifier) = "sampler1D"; } |
| 4810 break; |
| 4811 |
| 4812 case 212: |
| 4813 |
| 4814 /* Line 1806 of yacc.c */ |
| 4815 #line 1456 "src/src/glsl/glsl_parser.yy" |
| 4816 { (yyval.identifier) = "sampler2D"; } |
| 4817 break; |
| 4818 |
| 4819 case 213: |
| 4820 |
| 4821 /* Line 1806 of yacc.c */ |
| 4822 #line 1457 "src/src/glsl/glsl_parser.yy" |
| 4823 { (yyval.identifier) = "sampler2DRect"; } |
| 4824 break; |
| 4825 |
| 4826 case 214: |
| 4827 |
| 4828 /* Line 1806 of yacc.c */ |
| 4829 #line 1458 "src/src/glsl/glsl_parser.yy" |
| 4830 { (yyval.identifier) = "sampler3D"; } |
| 4831 break; |
| 4832 |
| 4833 case 215: |
| 4834 |
| 4835 /* Line 1806 of yacc.c */ |
| 4836 #line 1459 "src/src/glsl/glsl_parser.yy" |
| 4837 { (yyval.identifier) = "samplerCube"; } |
| 4838 break; |
| 4839 |
| 4840 case 216: |
| 4841 |
| 4842 /* Line 1806 of yacc.c */ |
| 4843 #line 1460 "src/src/glsl/glsl_parser.yy" |
| 4844 { (yyval.identifier) = "samplerExternalOES"; } |
| 4845 break; |
| 4846 |
| 4847 case 217: |
| 4848 |
| 4849 /* Line 1806 of yacc.c */ |
| 4850 #line 1461 "src/src/glsl/glsl_parser.yy" |
| 4851 { (yyval.identifier) = "sampler1DShadow"; } |
| 4852 break; |
| 4853 |
| 4854 case 218: |
| 4855 |
| 4856 /* Line 1806 of yacc.c */ |
| 4857 #line 1462 "src/src/glsl/glsl_parser.yy" |
| 4858 { (yyval.identifier) = "sampler2DShadow"; } |
| 4859 break; |
| 4860 |
| 4861 case 219: |
| 4862 |
| 4863 /* Line 1806 of yacc.c */ |
| 4864 #line 1463 "src/src/glsl/glsl_parser.yy" |
| 4865 { (yyval.identifier) = "sampler2DRectShadow"; } |
| 4866 break; |
| 4867 |
| 4868 case 220: |
| 4869 |
| 4870 /* Line 1806 of yacc.c */ |
| 4871 #line 1464 "src/src/glsl/glsl_parser.yy" |
| 4872 { (yyval.identifier) = "samplerCubeShadow"; } |
| 4873 break; |
| 4874 |
| 4875 case 221: |
| 4876 |
| 4877 /* Line 1806 of yacc.c */ |
| 4878 #line 1465 "src/src/glsl/glsl_parser.yy" |
| 4879 { (yyval.identifier) = "sampler1DArray"; } |
| 4880 break; |
| 4881 |
| 4882 case 222: |
| 4883 |
| 4884 /* Line 1806 of yacc.c */ |
| 4885 #line 1466 "src/src/glsl/glsl_parser.yy" |
| 4886 { (yyval.identifier) = "sampler2DArray"; } |
| 4887 break; |
| 4888 |
| 4889 case 223: |
| 4890 |
| 4891 /* Line 1806 of yacc.c */ |
| 4892 #line 1467 "src/src/glsl/glsl_parser.yy" |
| 4893 { (yyval.identifier) = "sampler1DArrayShadow"; } |
| 4894 break; |
| 4895 |
| 4896 case 224: |
| 4897 |
| 4898 /* Line 1806 of yacc.c */ |
| 4899 #line 1468 "src/src/glsl/glsl_parser.yy" |
| 4900 { (yyval.identifier) = "sampler2DArrayShadow"; } |
| 4901 break; |
| 4902 |
| 4903 case 225: |
| 4904 |
| 4905 /* Line 1806 of yacc.c */ |
| 4906 #line 1469 "src/src/glsl/glsl_parser.yy" |
| 4907 { (yyval.identifier) = "samplerBuffer"; } |
| 4908 break; |
| 4909 |
| 4910 case 226: |
| 4911 |
| 4912 /* Line 1806 of yacc.c */ |
| 4913 #line 1470 "src/src/glsl/glsl_parser.yy" |
| 4914 { (yyval.identifier) = "isampler1D"; } |
| 4915 break; |
| 4916 |
| 4917 case 227: |
| 4918 |
| 4919 /* Line 1806 of yacc.c */ |
| 4920 #line 1471 "src/src/glsl/glsl_parser.yy" |
| 4921 { (yyval.identifier) = "isampler2D"; } |
| 4922 break; |
| 4923 |
| 4924 case 228: |
| 4925 |
| 4926 /* Line 1806 of yacc.c */ |
| 4927 #line 1472 "src/src/glsl/glsl_parser.yy" |
| 4928 { (yyval.identifier) = "isampler2DRect"; } |
| 4929 break; |
| 4930 |
| 4931 case 229: |
| 4932 |
| 4933 /* Line 1806 of yacc.c */ |
| 4934 #line 1473 "src/src/glsl/glsl_parser.yy" |
| 4935 { (yyval.identifier) = "isampler3D"; } |
| 4936 break; |
| 4937 |
| 4938 case 230: |
| 4939 |
| 4940 /* Line 1806 of yacc.c */ |
| 4941 #line 1474 "src/src/glsl/glsl_parser.yy" |
| 4942 { (yyval.identifier) = "isamplerCube"; } |
| 4943 break; |
| 4944 |
| 4945 case 231: |
| 4946 |
| 4947 /* Line 1806 of yacc.c */ |
| 4948 #line 1475 "src/src/glsl/glsl_parser.yy" |
| 4949 { (yyval.identifier) = "isampler1DArray"; } |
| 4950 break; |
| 4951 |
| 4952 case 232: |
| 4953 |
| 4954 /* Line 1806 of yacc.c */ |
| 4955 #line 1476 "src/src/glsl/glsl_parser.yy" |
| 4956 { (yyval.identifier) = "isampler2DArray"; } |
| 4957 break; |
| 4958 |
| 4959 case 233: |
| 4960 |
| 4961 /* Line 1806 of yacc.c */ |
| 4962 #line 1477 "src/src/glsl/glsl_parser.yy" |
| 4963 { (yyval.identifier) = "isamplerBuffer"; } |
| 4964 break; |
| 4965 |
| 4966 case 234: |
| 4967 |
| 4968 /* Line 1806 of yacc.c */ |
| 4969 #line 1478 "src/src/glsl/glsl_parser.yy" |
| 4970 { (yyval.identifier) = "usampler1D"; } |
| 4971 break; |
| 4972 |
| 4973 case 235: |
| 4974 |
| 4975 /* Line 1806 of yacc.c */ |
| 4976 #line 1479 "src/src/glsl/glsl_parser.yy" |
| 4977 { (yyval.identifier) = "usampler2D"; } |
| 4978 break; |
| 4979 |
| 4980 case 236: |
| 4981 |
| 4982 /* Line 1806 of yacc.c */ |
| 4983 #line 1480 "src/src/glsl/glsl_parser.yy" |
| 4984 { (yyval.identifier) = "usampler2DRect"; } |
| 4985 break; |
| 4986 |
| 4987 case 237: |
| 4988 |
| 4989 /* Line 1806 of yacc.c */ |
| 4990 #line 1481 "src/src/glsl/glsl_parser.yy" |
| 4991 { (yyval.identifier) = "usampler3D"; } |
| 4992 break; |
| 4993 |
| 4994 case 238: |
| 4995 |
| 4996 /* Line 1806 of yacc.c */ |
| 4997 #line 1482 "src/src/glsl/glsl_parser.yy" |
| 4998 { (yyval.identifier) = "usamplerCube"; } |
| 4999 break; |
| 5000 |
| 5001 case 239: |
| 5002 |
| 5003 /* Line 1806 of yacc.c */ |
| 5004 #line 1483 "src/src/glsl/glsl_parser.yy" |
| 5005 { (yyval.identifier) = "usampler1DArray"; } |
| 5006 break; |
| 5007 |
| 5008 case 240: |
| 5009 |
| 5010 /* Line 1806 of yacc.c */ |
| 5011 #line 1484 "src/src/glsl/glsl_parser.yy" |
| 5012 { (yyval.identifier) = "usampler2DArray"; } |
| 5013 break; |
| 5014 |
| 5015 case 241: |
| 5016 |
| 5017 /* Line 1806 of yacc.c */ |
| 5018 #line 1485 "src/src/glsl/glsl_parser.yy" |
| 5019 { (yyval.identifier) = "usamplerBuffer"; } |
| 5020 break; |
| 5021 |
| 5022 case 242: |
| 5023 |
| 5024 /* Line 1806 of yacc.c */ |
| 5025 #line 1489 "src/src/glsl/glsl_parser.yy" |
| 5026 { |
| 5027 if (!state->es_shader && state->language_version < 130) |
| 5028 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, |
| 5029 "precision qualifier forbidden " |
| 5030 "in %s (1.30 or later " |
| 5031 "required)\n", |
| 5032 state->version_string); |
| 5033 |
| 5034 (yyval.n) = ast_precision_high; |
| 5035 } |
| 5036 break; |
| 5037 |
| 5038 case 243: |
| 5039 |
| 5040 /* Line 1806 of yacc.c */ |
| 5041 #line 1499 "src/src/glsl/glsl_parser.yy" |
| 5042 { |
| 5043 if (!state->es_shader && state->language_version < 130) |
| 5044 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, |
| 5045 "precision qualifier forbidden " |
| 5046 "in %s (1.30 or later " |
| 5047 "required)\n", |
| 5048 state->version_string); |
| 5049 |
| 5050 (yyval.n) = ast_precision_medium; |
| 5051 } |
| 5052 break; |
| 5053 |
| 5054 case 244: |
| 5055 |
| 5056 /* Line 1806 of yacc.c */ |
| 5057 #line 1509 "src/src/glsl/glsl_parser.yy" |
| 5058 { |
| 5059 if (!state->es_shader && state->language_version < 130) |
| 5060 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, |
| 5061 "precision qualifier forbidden " |
| 5062 "in %s (1.30 or later " |
| 5063 "required)\n", |
| 5064 state->version_string); |
| 5065 |
| 5066 (yyval.n) = ast_precision_low; |
| 5067 } |
| 5068 break; |
| 5069 |
| 5070 case 245: |
| 5071 |
| 5072 /* Line 1806 of yacc.c */ |
| 5073 #line 1523 "src/src/glsl/glsl_parser.yy" |
| 5074 { |
| 5075 void *ctx = state; |
| 5076 (yyval.struct_specifier) = new(ctx) ast_struct_specifier((yyvsp[(2) -
(5)].identifier), (yyvsp[(4) - (5)].declarator_list)); |
| 5077 (yyval.struct_specifier)->set_location(yylloc); |
| 5078 state->symbols->add_type((yyvsp[(2) - (5)].identifier), glsl_type::vo
id_type); |
| 5079 } |
| 5080 break; |
| 5081 |
| 5082 case 246: |
| 5083 |
| 5084 /* Line 1806 of yacc.c */ |
| 5085 #line 1530 "src/src/glsl/glsl_parser.yy" |
| 5086 { |
| 5087 void *ctx = state; |
| 5088 (yyval.struct_specifier) = new(ctx) ast_struct_specifier(NULL, (yyvsp
[(3) - (4)].declarator_list)); |
| 5089 (yyval.struct_specifier)->set_location(yylloc); |
| 5090 } |
| 5091 break; |
| 5092 |
| 5093 case 247: |
| 5094 |
| 5095 /* Line 1806 of yacc.c */ |
| 5096 #line 1539 "src/src/glsl/glsl_parser.yy" |
| 5097 { |
| 5098 (yyval.declarator_list) = (yyvsp[(1) - (1)].declarator_list); |
| 5099 (yyvsp[(1) - (1)].declarator_list)->link.self_link(); |
| 5100 } |
| 5101 break; |
| 5102 |
| 5103 case 248: |
| 5104 |
| 5105 /* Line 1806 of yacc.c */ |
| 5106 #line 1544 "src/src/glsl/glsl_parser.yy" |
| 5107 { |
| 5108 (yyval.declarator_list) = (yyvsp[(1) - (2)].declarator_list); |
| 5109 (yyval.declarator_list)->link.insert_before(& (yyvsp[(2) - (2)].decla
rator_list)->link); |
| 5110 } |
| 5111 break; |
| 5112 |
| 5113 case 249: |
| 5114 |
| 5115 /* Line 1806 of yacc.c */ |
| 5116 #line 1552 "src/src/glsl/glsl_parser.yy" |
| 5117 { |
| 5118 void *ctx = state; |
| 5119 ast_fully_specified_type *type = new(ctx) ast_fully_specified_type(); |
| 5120 type->set_location(yylloc); |
| 5121 |
| 5122 type->specifier = (yyvsp[(1) - (3)].type_specifier); |
| 5123 (yyval.declarator_list) = new(ctx) ast_declarator_list(type); |
| 5124 (yyval.declarator_list)->set_location(yylloc); |
| 5125 |
| 5126 (yyval.declarator_list)->declarations.push_degenerate_list_at_head(&
(yyvsp[(2) - (3)].declaration)->link); |
| 5127 } |
| 5128 break; |
| 5129 |
| 5130 case 250: |
| 5131 |
| 5132 /* Line 1806 of yacc.c */ |
| 5133 #line 1567 "src/src/glsl/glsl_parser.yy" |
| 5134 { |
| 5135 (yyval.declaration) = (yyvsp[(1) - (1)].declaration); |
| 5136 (yyvsp[(1) - (1)].declaration)->link.self_link(); |
| 5137 } |
| 5138 break; |
| 5139 |
| 5140 case 251: |
| 5141 |
| 5142 /* Line 1806 of yacc.c */ |
| 5143 #line 1572 "src/src/glsl/glsl_parser.yy" |
| 5144 { |
| 5145 (yyval.declaration) = (yyvsp[(1) - (3)].declaration); |
| 5146 (yyval.declaration)->link.insert_before(& (yyvsp[(3) - (3)].declarati
on)->link); |
| 5147 } |
| 5148 break; |
| 5149 |
| 5150 case 252: |
| 5151 |
| 5152 /* Line 1806 of yacc.c */ |
| 5153 #line 1580 "src/src/glsl/glsl_parser.yy" |
| 5154 { |
| 5155 void *ctx = state; |
| 5156 (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (1)].iden
tifier), false, NULL, NULL); |
| 5157 (yyval.declaration)->set_location(yylloc); |
| 5158 } |
| 5159 break; |
| 5160 |
| 5161 case 253: |
| 5162 |
| 5163 /* Line 1806 of yacc.c */ |
| 5164 #line 1586 "src/src/glsl/glsl_parser.yy" |
| 5165 { |
| 5166 void *ctx = state; |
| 5167 (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (4)].iden
tifier), true, (yyvsp[(3) - (4)].expression), NULL); |
| 5168 (yyval.declaration)->set_location(yylloc); |
| 5169 } |
| 5170 break; |
| 5171 |
| 5172 case 256: |
| 5173 |
| 5174 /* Line 1806 of yacc.c */ |
| 5175 #line 1604 "src/src/glsl/glsl_parser.yy" |
| 5176 { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); } |
| 5177 break; |
| 5178 |
| 5179 case 264: |
| 5180 |
| 5181 /* Line 1806 of yacc.c */ |
| 5182 #line 1619 "src/src/glsl/glsl_parser.yy" |
| 5183 { |
| 5184 void *ctx = state; |
| 5185 (yyval.compound_statement) = new(ctx) ast_compound_statement(true, NU
LL); |
| 5186 (yyval.compound_statement)->set_location(yylloc); |
| 5187 } |
| 5188 break; |
| 5189 |
| 5190 case 265: |
| 5191 |
| 5192 /* Line 1806 of yacc.c */ |
| 5193 #line 1625 "src/src/glsl/glsl_parser.yy" |
| 5194 { |
| 5195 state->symbols->push_scope(); |
| 5196 } |
| 5197 break; |
| 5198 |
| 5199 case 266: |
| 5200 |
| 5201 /* Line 1806 of yacc.c */ |
| 5202 #line 1629 "src/src/glsl/glsl_parser.yy" |
| 5203 { |
| 5204 void *ctx = state; |
| 5205 (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (y
yvsp[(3) - (4)].node)); |
| 5206 (yyval.compound_statement)->set_location(yylloc); |
| 5207 state->symbols->pop_scope(); |
| 5208 } |
| 5209 break; |
| 5210 |
| 5211 case 267: |
| 5212 |
| 5213 /* Line 1806 of yacc.c */ |
| 5214 #line 1638 "src/src/glsl/glsl_parser.yy" |
| 5215 { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); } |
| 5216 break; |
| 5217 |
| 5218 case 269: |
| 5219 |
| 5220 /* Line 1806 of yacc.c */ |
| 5221 #line 1644 "src/src/glsl/glsl_parser.yy" |
| 5222 { |
| 5223 void *ctx = state; |
| 5224 (yyval.compound_statement) = new(ctx) ast_compound_statement(false, N
ULL); |
| 5225 (yyval.compound_statement)->set_location(yylloc); |
| 5226 } |
| 5227 break; |
| 5228 |
| 5229 case 270: |
| 5230 |
| 5231 /* Line 1806 of yacc.c */ |
| 5232 #line 1650 "src/src/glsl/glsl_parser.yy" |
| 5233 { |
| 5234 void *ctx = state; |
| 5235 (yyval.compound_statement) = new(ctx) ast_compound_statement(false, (
yyvsp[(2) - (3)].node)); |
| 5236 (yyval.compound_statement)->set_location(yylloc); |
| 5237 } |
| 5238 break; |
| 5239 |
| 5240 case 271: |
| 5241 |
| 5242 /* Line 1806 of yacc.c */ |
| 5243 #line 1659 "src/src/glsl/glsl_parser.yy" |
| 5244 { |
| 5245 if ((yyvsp[(1) - (1)].node) == NULL) { |
| 5246 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "<nil> statement\n")
; |
| 5247 assert((yyvsp[(1) - (1)].node) != NULL); |
| 5248 } |
| 5249 |
| 5250 (yyval.node) = (yyvsp[(1) - (1)].node); |
| 5251 (yyval.node)->link.self_link(); |
| 5252 } |
| 5253 break; |
| 5254 |
| 5255 case 272: |
| 5256 |
| 5257 /* Line 1806 of yacc.c */ |
| 5258 #line 1669 "src/src/glsl/glsl_parser.yy" |
| 5259 { |
| 5260 if ((yyvsp[(2) - (2)].node) == NULL) { |
| 5261 _mesa_glsl_error(& (yylsp[(2) - (2)]), state, "<nil> statement\n")
; |
| 5262 assert((yyvsp[(2) - (2)].node) != NULL); |
| 5263 } |
| 5264 (yyval.node) = (yyvsp[(1) - (2)].node); |
| 5265 (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].node)->link); |
| 5266 } |
| 5267 break; |
| 5268 |
| 5269 case 273: |
| 5270 |
| 5271 /* Line 1806 of yacc.c */ |
| 5272 #line 1681 "src/src/glsl/glsl_parser.yy" |
| 5273 { |
| 5274 void *ctx = state; |
| 5275 (yyval.node) = new(ctx) ast_expression_statement(NULL); |
| 5276 (yyval.node)->set_location(yylloc); |
| 5277 } |
| 5278 break; |
| 5279 |
| 5280 case 274: |
| 5281 |
| 5282 /* Line 1806 of yacc.c */ |
| 5283 #line 1687 "src/src/glsl/glsl_parser.yy" |
| 5284 { |
| 5285 void *ctx = state; |
| 5286 (yyval.node) = new(ctx) ast_expression_statement((yyvsp[(1) - (2)].ex
pression)); |
| 5287 (yyval.node)->set_location(yylloc); |
| 5288 } |
| 5289 break; |
| 5290 |
| 5291 case 275: |
| 5292 |
| 5293 /* Line 1806 of yacc.c */ |
| 5294 #line 1696 "src/src/glsl/glsl_parser.yy" |
| 5295 { |
| 5296 (yyval.node) = new(state) ast_selection_statement((yyvsp[(3) - (5)].e
xpression), (yyvsp[(5) - (5)].selection_rest_statement).then_statement, |
| 5297 (yyvsp[(5) - (5)].selection_r
est_statement).else_statement); |
| 5298 (yyval.node)->set_location(yylloc); |
| 5299 } |
| 5300 break; |
| 5301 |
| 5302 case 276: |
| 5303 |
| 5304 /* Line 1806 of yacc.c */ |
| 5305 #line 1705 "src/src/glsl/glsl_parser.yy" |
| 5306 { |
| 5307 (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (3)].n
ode); |
| 5308 (yyval.selection_rest_statement).else_statement = (yyvsp[(3) - (3)].n
ode); |
| 5309 } |
| 5310 break; |
| 5311 |
| 5312 case 277: |
| 5313 |
| 5314 /* Line 1806 of yacc.c */ |
| 5315 #line 1710 "src/src/glsl/glsl_parser.yy" |
| 5316 { |
| 5317 (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (1)].n
ode); |
| 5318 (yyval.selection_rest_statement).else_statement = NULL; |
| 5319 } |
| 5320 break; |
| 5321 |
| 5322 case 278: |
| 5323 |
| 5324 /* Line 1806 of yacc.c */ |
| 5325 #line 1718 "src/src/glsl/glsl_parser.yy" |
| 5326 { |
| 5327 (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].expression); |
| 5328 } |
| 5329 break; |
| 5330 |
| 5331 case 279: |
| 5332 |
| 5333 /* Line 1806 of yacc.c */ |
| 5334 #line 1722 "src/src/glsl/glsl_parser.yy" |
| 5335 { |
| 5336 void *ctx = state; |
| 5337 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].id
entifier), false, NULL, (yyvsp[(4) - (4)].expression)); |
| 5338 ast_declarator_list *declarator = new(ctx) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type)); |
| 5339 decl->set_location(yylloc); |
| 5340 declarator->set_location(yylloc); |
| 5341 |
| 5342 declarator->declarations.push_tail(&decl->link); |
| 5343 (yyval.node) = declarator; |
| 5344 } |
| 5345 break; |
| 5346 |
| 5347 case 280: |
| 5348 |
| 5349 /* Line 1806 of yacc.c */ |
| 5350 #line 1740 "src/src/glsl/glsl_parser.yy" |
| 5351 { |
| 5352 (yyval.node) = new(state) ast_switch_statement((yyvsp[(3) - (5)].expr
ession), (yyvsp[(5) - (5)].switch_body)); |
| 5353 (yyval.node)->set_location(yylloc); |
| 5354 } |
| 5355 break; |
| 5356 |
| 5357 case 281: |
| 5358 |
| 5359 /* Line 1806 of yacc.c */ |
| 5360 #line 1748 "src/src/glsl/glsl_parser.yy" |
| 5361 { |
| 5362 (yyval.switch_body) = new(state) ast_switch_body(NULL); |
| 5363 (yyval.switch_body)->set_location(yylloc); |
| 5364 } |
| 5365 break; |
| 5366 |
| 5367 case 282: |
| 5368 |
| 5369 /* Line 1806 of yacc.c */ |
| 5370 #line 1753 "src/src/glsl/glsl_parser.yy" |
| 5371 { |
| 5372 (yyval.switch_body) = new(state) ast_switch_body((yyvsp[(2) - (3)].ca
se_statement_list)); |
| 5373 (yyval.switch_body)->set_location(yylloc); |
| 5374 } |
| 5375 break; |
| 5376 |
| 5377 case 283: |
| 5378 |
| 5379 /* Line 1806 of yacc.c */ |
| 5380 #line 1761 "src/src/glsl/glsl_parser.yy" |
| 5381 { |
| 5382 (yyval.case_label) = new(state) ast_case_label((yyvsp[(2) - (3)].expr
ession)); |
| 5383 (yyval.case_label)->set_location(yylloc); |
| 5384 } |
| 5385 break; |
| 5386 |
| 5387 case 284: |
| 5388 |
| 5389 /* Line 1806 of yacc.c */ |
| 5390 #line 1766 "src/src/glsl/glsl_parser.yy" |
| 5391 { |
| 5392 (yyval.case_label) = new(state) ast_case_label(NULL); |
| 5393 (yyval.case_label)->set_location(yylloc); |
| 5394 } |
| 5395 break; |
| 5396 |
| 5397 case 285: |
| 5398 |
| 5399 /* Line 1806 of yacc.c */ |
| 5400 #line 1774 "src/src/glsl/glsl_parser.yy" |
| 5401 { |
| 5402 ast_case_label_list *labels = new(state) ast_case_label_list(); |
| 5403 |
| 5404 labels->labels.push_tail(& (yyvsp[(1) - (1)].case_label)->link); |
| 5405 (yyval.case_label_list) = labels; |
| 5406 (yyval.case_label_list)->set_location(yylloc); |
| 5407 } |
| 5408 break; |
| 5409 |
| 5410 case 286: |
| 5411 |
| 5412 /* Line 1806 of yacc.c */ |
| 5413 #line 1782 "src/src/glsl/glsl_parser.yy" |
| 5414 { |
| 5415 (yyval.case_label_list) = (yyvsp[(1) - (2)].case_label_list); |
| 5416 (yyval.case_label_list)->labels.push_tail(& (yyvsp[(2) - (2)].case_la
bel)->link); |
| 5417 } |
| 5418 break; |
| 5419 |
| 5420 case 287: |
| 5421 |
| 5422 /* Line 1806 of yacc.c */ |
| 5423 #line 1790 "src/src/glsl/glsl_parser.yy" |
| 5424 { |
| 5425 ast_case_statement *stmts = new(state) ast_case_statement((yyvsp[(1)
- (2)].case_label_list)); |
| 5426 stmts->set_location(yylloc); |
| 5427 |
| 5428 stmts->stmts.push_tail(& (yyvsp[(2) - (2)].node)->link); |
| 5429 (yyval.case_statement) = stmts; |
| 5430 } |
| 5431 break; |
| 5432 |
| 5433 case 288: |
| 5434 |
| 5435 /* Line 1806 of yacc.c */ |
| 5436 #line 1798 "src/src/glsl/glsl_parser.yy" |
| 5437 { |
| 5438 (yyval.case_statement) = (yyvsp[(1) - (2)].case_statement); |
| 5439 (yyval.case_statement)->stmts.push_tail(& (yyvsp[(2) - (2)].node)->li
nk); |
| 5440 } |
| 5441 break; |
| 5442 |
| 5443 case 289: |
| 5444 |
| 5445 /* Line 1806 of yacc.c */ |
| 5446 #line 1806 "src/src/glsl/glsl_parser.yy" |
| 5447 { |
| 5448 ast_case_statement_list *cases= new(state) ast_case_statement_list(); |
| 5449 cases->set_location(yylloc); |
| 5450 |
| 5451 cases->cases.push_tail(& (yyvsp[(1) - (1)].case_statement)->link); |
| 5452 (yyval.case_statement_list) = cases; |
| 5453 } |
| 5454 break; |
| 5455 |
| 5456 case 290: |
| 5457 |
| 5458 /* Line 1806 of yacc.c */ |
| 5459 #line 1814 "src/src/glsl/glsl_parser.yy" |
| 5460 { |
| 5461 (yyval.case_statement_list) = (yyvsp[(1) - (2)].case_statement_list); |
| 5462 (yyval.case_statement_list)->cases.push_tail(& (yyvsp[(2) - (2)].case
_statement)->link); |
| 5463 } |
| 5464 break; |
| 5465 |
| 5466 case 291: |
| 5467 |
| 5468 /* Line 1806 of yacc.c */ |
| 5469 #line 1822 "src/src/glsl/glsl_parser.yy" |
| 5470 { |
| 5471 void *ctx = state; |
| 5472 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_stateme
nt::ast_while, |
| 5473 NULL, (yyvsp[(3) - (5)].node
), NULL, (yyvsp[(5) - (5)].node)); |
| 5474 (yyval.node)->set_location(yylloc); |
| 5475 } |
| 5476 break; |
| 5477 |
| 5478 case 292: |
| 5479 |
| 5480 /* Line 1806 of yacc.c */ |
| 5481 #line 1829 "src/src/glsl/glsl_parser.yy" |
| 5482 { |
| 5483 void *ctx = state; |
| 5484 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_stateme
nt::ast_do_while, |
| 5485 NULL, (yyvsp[(5) - (7)].expr
ession), NULL, (yyvsp[(2) - (7)].node)); |
| 5486 (yyval.node)->set_location(yylloc); |
| 5487 } |
| 5488 break; |
| 5489 |
| 5490 case 293: |
| 5491 |
| 5492 /* Line 1806 of yacc.c */ |
| 5493 #line 1836 "src/src/glsl/glsl_parser.yy" |
| 5494 { |
| 5495 void *ctx = state; |
| 5496 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_stateme
nt::ast_for, |
| 5497 (yyvsp[(3) - (6)].node), (yy
vsp[(4) - (6)].for_rest_statement).cond, (yyvsp[(4) - (6)].for_rest_statement).r
est, (yyvsp[(6) - (6)].node)); |
| 5498 (yyval.node)->set_location(yylloc); |
| 5499 } |
| 5500 break; |
| 5501 |
| 5502 case 297: |
| 5503 |
| 5504 /* Line 1806 of yacc.c */ |
| 5505 #line 1852 "src/src/glsl/glsl_parser.yy" |
| 5506 { |
| 5507 (yyval.node) = NULL; |
| 5508 } |
| 5509 break; |
| 5510 |
| 5511 case 298: |
| 5512 |
| 5513 /* Line 1806 of yacc.c */ |
| 5514 #line 1859 "src/src/glsl/glsl_parser.yy" |
| 5515 { |
| 5516 (yyval.for_rest_statement).cond = (yyvsp[(1) - (2)].node); |
| 5517 (yyval.for_rest_statement).rest = NULL; |
| 5518 } |
| 5519 break; |
| 5520 |
| 5521 case 299: |
| 5522 |
| 5523 /* Line 1806 of yacc.c */ |
| 5524 #line 1864 "src/src/glsl/glsl_parser.yy" |
| 5525 { |
| 5526 (yyval.for_rest_statement).cond = (yyvsp[(1) - (3)].node); |
| 5527 (yyval.for_rest_statement).rest = (yyvsp[(3) - (3)].expression); |
| 5528 } |
| 5529 break; |
| 5530 |
| 5531 case 300: |
| 5532 |
| 5533 /* Line 1806 of yacc.c */ |
| 5534 #line 1873 "src/src/glsl/glsl_parser.yy" |
| 5535 { |
| 5536 void *ctx = state; |
| 5537 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_co
ntinue, NULL); |
| 5538 (yyval.node)->set_location(yylloc); |
| 5539 } |
| 5540 break; |
| 5541 |
| 5542 case 301: |
| 5543 |
| 5544 /* Line 1806 of yacc.c */ |
| 5545 #line 1879 "src/src/glsl/glsl_parser.yy" |
| 5546 { |
| 5547 void *ctx = state; |
| 5548 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_br
eak, NULL); |
| 5549 (yyval.node)->set_location(yylloc); |
| 5550 } |
| 5551 break; |
| 5552 |
| 5553 case 302: |
| 5554 |
| 5555 /* Line 1806 of yacc.c */ |
| 5556 #line 1885 "src/src/glsl/glsl_parser.yy" |
| 5557 { |
| 5558 void *ctx = state; |
| 5559 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_re
turn, NULL); |
| 5560 (yyval.node)->set_location(yylloc); |
| 5561 } |
| 5562 break; |
| 5563 |
| 5564 case 303: |
| 5565 |
| 5566 /* Line 1806 of yacc.c */ |
| 5567 #line 1891 "src/src/glsl/glsl_parser.yy" |
| 5568 { |
| 5569 void *ctx = state; |
| 5570 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_re
turn, (yyvsp[(2) - (3)].expression)); |
| 5571 (yyval.node)->set_location(yylloc); |
| 5572 } |
| 5573 break; |
| 5574 |
| 5575 case 304: |
| 5576 |
| 5577 /* Line 1806 of yacc.c */ |
| 5578 #line 1897 "src/src/glsl/glsl_parser.yy" |
| 5579 { |
| 5580 void *ctx = state; |
| 5581 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_di
scard, NULL); |
| 5582 (yyval.node)->set_location(yylloc); |
| 5583 } |
| 5584 break; |
| 5585 |
| 5586 case 305: |
| 5587 |
| 5588 /* Line 1806 of yacc.c */ |
| 5589 #line 1905 "src/src/glsl/glsl_parser.yy" |
| 5590 { (yyval.node) = (yyvsp[(1) - (1)].function_definition); } |
| 5591 break; |
| 5592 |
| 5593 case 306: |
| 5594 |
| 5595 /* Line 1806 of yacc.c */ |
| 5596 #line 1906 "src/src/glsl/glsl_parser.yy" |
| 5597 { (yyval.node) = (yyvsp[(1) - (1)].node); } |
| 5598 break; |
| 5599 |
| 5600 case 307: |
| 5601 |
| 5602 /* Line 1806 of yacc.c */ |
| 5603 #line 1907 "src/src/glsl/glsl_parser.yy" |
| 5604 { (yyval.node) = NULL; } |
| 5605 break; |
| 5606 |
| 5607 case 308: |
| 5608 |
| 5609 /* Line 1806 of yacc.c */ |
| 5610 #line 1908 "src/src/glsl/glsl_parser.yy" |
| 5611 { (yyval.node) = NULL; } |
| 5612 break; |
| 5613 |
| 5614 case 309: |
| 5615 |
| 5616 /* Line 1806 of yacc.c */ |
| 5617 #line 1913 "src/src/glsl/glsl_parser.yy" |
| 5618 { |
| 5619 void *ctx = state; |
| 5620 (yyval.function_definition) = new(ctx) ast_function_definition(); |
| 5621 (yyval.function_definition)->set_location(yylloc); |
| 5622 (yyval.function_definition)->prototype = (yyvsp[(1) - (2)].function); |
| 5623 (yyval.function_definition)->body = (yyvsp[(2) - (2)].compound_statem
ent); |
| 5624 |
| 5625 state->symbols->pop_scope(); |
| 5626 } |
| 5627 break; |
| 5628 |
| 5629 case 310: |
| 5630 |
| 5631 /* Line 1806 of yacc.c */ |
| 5632 #line 1927 "src/src/glsl/glsl_parser.yy" |
| 5633 { |
| 5634 void *ctx = state; |
| 5635 (yyval.node) = new(ctx) ast_uniform_block(*state->default_uniform_qua
lifier, |
| 5636 (yyvsp[(2) - (6)].identifier), (yyvsp
[(4) - (6)].declarator_list)); |
| 5637 |
| 5638 if (!state->ARB_uniform_buffer_object_enable) { |
| 5639 _mesa_glsl_error(& (yylsp[(1) - (6)]), state, |
| 5640 "#version 140 / GL_ARB_uniform_buffer_object " |
| 5641 "required for defining uniform blocks\n"); |
| 5642 } else if (state->ARB_uniform_buffer_object_warn) { |
| 5643 _mesa_glsl_warning(& (yylsp[(1) - (6)]), state, |
| 5644 "#version 140 / GL_ARB_uniform_buffer_object " |
| 5645 "required for defining uniform blocks\n"); |
| 5646 } |
| 5647 } |
| 5648 break; |
| 5649 |
| 5650 case 311: |
| 5651 |
| 5652 /* Line 1806 of yacc.c */ |
| 5653 #line 1943 "src/src/glsl/glsl_parser.yy" |
| 5654 { |
| 5655 void *ctx = state; |
| 5656 |
| 5657 ast_type_qualifier qual = *state->default_uniform_qualifier; |
| 5658 if (!qual.merge_qualifier(& (yylsp[(1) - (7)]), state, (yyvsp[(1) - (
7)].type_qualifier))) { |
| 5659 YYERROR; |
| 5660 } |
| 5661 (yyval.node) = new(ctx) ast_uniform_block(qual, (yyvsp[(3) - (7)].ide
ntifier), (yyvsp[(5) - (7)].declarator_list)); |
| 5662 |
| 5663 if (!state->ARB_uniform_buffer_object_enable) { |
| 5664 _mesa_glsl_error(& (yylsp[(1) - (7)]), state, |
| 5665 "#version 140 / GL_ARB_uniform_buffer_object " |
| 5666 "required for defining uniform blocks\n"); |
| 5667 } else if (state->ARB_uniform_buffer_object_warn) { |
| 5668 _mesa_glsl_warning(& (yylsp[(1) - (7)]), state, |
| 5669 "#version 140 / GL_ARB_uniform_buffer_object " |
| 5670 "required for defining uniform blocks\n"); |
| 5671 } |
| 5672 } |
| 5673 break; |
| 5674 |
| 5675 case 312: |
| 5676 |
| 5677 /* Line 1806 of yacc.c */ |
| 5678 #line 1966 "src/src/glsl/glsl_parser.yy" |
| 5679 { |
| 5680 (yyval.declarator_list) = (yyvsp[(1) - (1)].declarator_list); |
| 5681 (yyvsp[(1) - (1)].declarator_list)->link.self_link(); |
| 5682 } |
| 5683 break; |
| 5684 |
| 5685 case 313: |
| 5686 |
| 5687 /* Line 1806 of yacc.c */ |
| 5688 #line 1971 "src/src/glsl/glsl_parser.yy" |
| 5689 { |
| 5690 (yyval.declarator_list) = (yyvsp[(1) - (2)].declarator_list); |
| 5691 (yyvsp[(2) - (2)].declarator_list)->link.insert_before(& (yyval.decla
rator_list)->link); |
| 5692 } |
| 5693 break; |
| 5694 |
| 5695 case 316: |
| 5696 |
| 5697 /* Line 1806 of yacc.c */ |
| 5698 #line 1985 "src/src/glsl/glsl_parser.yy" |
| 5699 { |
| 5700 void *ctx = state; |
| 5701 ast_fully_specified_type *type = new(ctx) ast_fully_specified_type(); |
| 5702 type->set_location(yylloc); |
| 5703 |
| 5704 type->qualifier = (yyvsp[(1) - (5)].type_qualifier); |
| 5705 type->qualifier.flags.q.uniform = true; |
| 5706 type->specifier = (yyvsp[(3) - (5)].type_specifier); |
| 5707 (yyval.declarator_list) = new(ctx) ast_declarator_list(type); |
| 5708 (yyval.declarator_list)->set_location(yylloc); |
| 5709 (yyval.declarator_list)->ubo_qualifiers_valid = true; |
| 5710 |
| 5711 (yyval.declarator_list)->declarations.push_degenerate_list_at_head(&
(yyvsp[(4) - (5)].declaration)->link); |
| 5712 } |
| 5713 break; |
| 5714 |
| 5715 case 317: |
| 5716 |
| 5717 /* Line 1806 of yacc.c */ |
| 5718 #line 2000 "src/src/glsl/glsl_parser.yy" |
| 5719 { |
| 5720 void *ctx = state; |
| 5721 ast_fully_specified_type *type = new(ctx) ast_fully_specified_type(); |
| 5722 type->set_location(yylloc); |
| 5723 |
| 5724 type->qualifier.flags.q.uniform = true; |
| 5725 type->specifier = (yyvsp[(2) - (4)].type_specifier); |
| 5726 (yyval.declarator_list) = new(ctx) ast_declarator_list(type); |
| 5727 (yyval.declarator_list)->set_location(yylloc); |
| 5728 (yyval.declarator_list)->ubo_qualifiers_valid = true; |
| 5729 |
| 5730 (yyval.declarator_list)->declarations.push_degenerate_list_at_head(&
(yyvsp[(3) - (4)].declaration)->link); |
| 5731 } |
| 5732 break; |
| 5733 |
| 5734 case 318: |
| 5735 |
| 5736 /* Line 1806 of yacc.c */ |
| 5737 #line 2017 "src/src/glsl/glsl_parser.yy" |
| 5738 { |
| 5739 if (!state->default_uniform_qualifier->merge_qualifier(& (yylsp[(1) -
(3)]), state, |
| 5740 (yyvsp[(1) - (
3)].type_qualifier))) { |
| 5741 YYERROR; |
| 5742 } |
| 5743 } |
| 5744 break; |
| 5745 |
| 5746 |
| 5747 |
| 5748 /* Line 1806 of yacc.c */ |
| 5749 #line 5750 "src/chromium_gensrc/mesa/glsl_parser.cc" |
| 5750 default: break; |
| 5751 } |
| 5752 /* User semantic actions sometimes alter yychar, and that requires |
| 5753 that yytoken be updated with the new translation. We take the |
| 5754 approach of translating immediately before every use of yytoken. |
| 5755 One alternative is translating here after every semantic action, |
| 5756 but that translation would be missed if the semantic action invokes |
| 5757 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or |
| 5758 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an |
| 5759 incorrect destructor might then be invoked immediately. In the |
| 5760 case of YYERROR or YYBACKUP, subsequent parser actions might lead |
| 5761 to an incorrect destructor call or verbose syntax error message |
| 5762 before the lookahead is translated. */ |
| 5763 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); |
| 5764 |
| 5765 YYPOPSTACK (yylen); |
| 5766 yylen = 0; |
| 5767 YY_STACK_PRINT (yyss, yyssp); |
| 5768 |
| 5769 *++yyvsp = yyval; |
| 5770 *++yylsp = yyloc; |
| 5771 |
| 5772 /* Now `shift' the result of the reduction. Determine what state |
| 5773 that goes to, based on the state we popped back to and the rule |
| 5774 number reduced by. */ |
| 5775 |
| 5776 yyn = yyr1[yyn]; |
| 5777 |
| 5778 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; |
| 5779 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) |
| 5780 yystate = yytable[yystate]; |
| 5781 else |
| 5782 yystate = yydefgoto[yyn - YYNTOKENS]; |
| 5783 |
| 5784 goto yynewstate; |
| 5785 |
| 5786 |
| 5787 /*------------------------------------. |
| 5788 | yyerrlab -- here on detecting error | |
| 5789 `------------------------------------*/ |
| 5790 yyerrlab: |
| 5791 /* Make sure we have latest lookahead translation. See comments at |
| 5792 user semantic actions for why this is necessary. */ |
| 5793 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); |
| 5794 |
| 5795 /* If not already recovering from an error, report this error. */ |
| 5796 if (!yyerrstatus) |
| 5797 { |
| 5798 ++yynerrs; |
| 5799 #if ! YYERROR_VERBOSE |
| 5800 yyerror (&yylloc, state, YY_("syntax error")); |
| 5801 #else |
| 5802 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ |
| 5803 yyssp, yytoken) |
| 5804 { |
| 5805 char const *yymsgp = YY_("syntax error"); |
| 5806 int yysyntax_error_status; |
| 5807 yysyntax_error_status = YYSYNTAX_ERROR; |
| 5808 if (yysyntax_error_status == 0) |
| 5809 yymsgp = yymsg; |
| 5810 else if (yysyntax_error_status == 1) |
| 5811 { |
| 5812 if (yymsg != yymsgbuf) |
| 5813 YYSTACK_FREE (yymsg); |
| 5814 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); |
| 5815 if (!yymsg) |
| 5816 { |
| 5817 yymsg = yymsgbuf; |
| 5818 yymsg_alloc = sizeof yymsgbuf; |
| 5819 yysyntax_error_status = 2; |
| 5820 } |
| 5821 else |
| 5822 { |
| 5823 yysyntax_error_status = YYSYNTAX_ERROR; |
| 5824 yymsgp = yymsg; |
| 5825 } |
| 5826 } |
| 5827 yyerror (&yylloc, state, yymsgp); |
| 5828 if (yysyntax_error_status == 2) |
| 5829 goto yyexhaustedlab; |
| 5830 } |
| 5831 # undef YYSYNTAX_ERROR |
| 5832 #endif |
| 5833 } |
| 5834 |
| 5835 yyerror_range[1] = yylloc; |
| 5836 |
| 5837 if (yyerrstatus == 3) |
| 5838 { |
| 5839 /* If just tried and failed to reuse lookahead token after an |
| 5840 error, discard it. */ |
| 5841 |
| 5842 if (yychar <= YYEOF) |
| 5843 { |
| 5844 /* Return failure if at end of input. */ |
| 5845 if (yychar == YYEOF) |
| 5846 YYABORT; |
| 5847 } |
| 5848 else |
| 5849 { |
| 5850 yydestruct ("Error: discarding", |
| 5851 yytoken, &yylval, &yylloc, state); |
| 5852 yychar = YYEMPTY; |
| 5853 } |
| 5854 } |
| 5855 |
| 5856 /* Else will try to reuse lookahead token after shifting the error |
| 5857 token. */ |
| 5858 goto yyerrlab1; |
| 5859 |
| 5860 |
| 5861 /*---------------------------------------------------. |
| 5862 | yyerrorlab -- error raised explicitly by YYERROR. | |
| 5863 `---------------------------------------------------*/ |
| 5864 yyerrorlab: |
| 5865 |
| 5866 /* Pacify compilers like GCC when the user code never invokes |
| 5867 YYERROR and the label yyerrorlab therefore never appears in user |
| 5868 code. */ |
| 5869 if (/*CONSTCOND*/ 0) |
| 5870 goto yyerrorlab; |
| 5871 |
| 5872 yyerror_range[1] = yylsp[1-yylen]; |
| 5873 /* Do not reclaim the symbols of the rule which action triggered |
| 5874 this YYERROR. */ |
| 5875 YYPOPSTACK (yylen); |
| 5876 yylen = 0; |
| 5877 YY_STACK_PRINT (yyss, yyssp); |
| 5878 yystate = *yyssp; |
| 5879 goto yyerrlab1; |
| 5880 |
| 5881 |
| 5882 /*-------------------------------------------------------------. |
| 5883 | yyerrlab1 -- common code for both syntax error and YYERROR. | |
| 5884 `-------------------------------------------------------------*/ |
| 5885 yyerrlab1: |
| 5886 yyerrstatus = 3; /* Each real token shifted decrements this. */ |
| 5887 |
| 5888 for (;;) |
| 5889 { |
| 5890 yyn = yypact[yystate]; |
| 5891 if (!yypact_value_is_default (yyn)) |
| 5892 { |
| 5893 yyn += YYTERROR; |
| 5894 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) |
| 5895 { |
| 5896 yyn = yytable[yyn]; |
| 5897 if (0 < yyn) |
| 5898 break; |
| 5899 } |
| 5900 } |
| 5901 |
| 5902 /* Pop the current state because it cannot handle the error token. */ |
| 5903 if (yyssp == yyss) |
| 5904 YYABORT; |
| 5905 |
| 5906 yyerror_range[1] = *yylsp; |
| 5907 yydestruct ("Error: popping", |
| 5908 yystos[yystate], yyvsp, yylsp, state); |
| 5909 YYPOPSTACK (1); |
| 5910 yystate = *yyssp; |
| 5911 YY_STACK_PRINT (yyss, yyssp); |
| 5912 } |
| 5913 |
| 5914 *++yyvsp = yylval; |
| 5915 |
| 5916 yyerror_range[2] = yylloc; |
| 5917 /* Using YYLLOC is tempting, but would change the location of |
| 5918 the lookahead. YYLOC is available though. */ |
| 5919 YYLLOC_DEFAULT (yyloc, yyerror_range, 2); |
| 5920 *++yylsp = yyloc; |
| 5921 |
| 5922 /* Shift the error token. */ |
| 5923 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); |
| 5924 |
| 5925 yystate = yyn; |
| 5926 goto yynewstate; |
| 5927 |
| 5928 |
| 5929 /*-------------------------------------. |
| 5930 | yyacceptlab -- YYACCEPT comes here. | |
| 5931 `-------------------------------------*/ |
| 5932 yyacceptlab: |
| 5933 yyresult = 0; |
| 5934 goto yyreturn; |
| 5935 |
| 5936 /*-----------------------------------. |
| 5937 | yyabortlab -- YYABORT comes here. | |
| 5938 `-----------------------------------*/ |
| 5939 yyabortlab: |
| 5940 yyresult = 1; |
| 5941 goto yyreturn; |
| 5942 |
| 5943 #if !defined(yyoverflow) || YYERROR_VERBOSE |
| 5944 /*-------------------------------------------------. |
| 5945 | yyexhaustedlab -- memory exhaustion comes here. | |
| 5946 `-------------------------------------------------*/ |
| 5947 yyexhaustedlab: |
| 5948 yyerror (&yylloc, state, YY_("memory exhausted")); |
| 5949 yyresult = 2; |
| 5950 /* Fall through. */ |
| 5951 #endif |
| 5952 |
| 5953 yyreturn: |
| 5954 if (yychar != YYEMPTY) |
| 5955 { |
| 5956 /* Make sure we have latest lookahead translation. See comments at |
| 5957 user semantic actions for why this is necessary. */ |
| 5958 yytoken = YYTRANSLATE (yychar); |
| 5959 yydestruct ("Cleanup: discarding lookahead", |
| 5960 yytoken, &yylval, &yylloc, state); |
| 5961 } |
| 5962 /* Do not reclaim the symbols of the rule which action triggered |
| 5963 this YYABORT or YYACCEPT. */ |
| 5964 YYPOPSTACK (yylen); |
| 5965 YY_STACK_PRINT (yyss, yyssp); |
| 5966 while (yyssp != yyss) |
| 5967 { |
| 5968 yydestruct ("Cleanup: popping", |
| 5969 yystos[*yyssp], yyvsp, yylsp, state); |
| 5970 YYPOPSTACK (1); |
| 5971 } |
| 5972 #ifndef yyoverflow |
| 5973 if (yyss != yyssa) |
| 5974 YYSTACK_FREE (yyss); |
| 5975 #endif |
| 5976 #if YYERROR_VERBOSE |
| 5977 if (yymsg != yymsgbuf) |
| 5978 YYSTACK_FREE (yymsg); |
| 5979 #endif |
| 5980 /* Make sure YYID is used. */ |
| 5981 return YYID (yyresult); |
| 5982 } |
| 5983 |
| 5984 |
| 5985 |
OLD | NEW |