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 115static 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 553typedef 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 603typedef 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 627typedef YYTYPE_UINT8 yytype_uint8; 628#else 629typedef unsigned char yytype_uint8; 630#endif 631 632#ifdef YYTYPE_INT8 633typedef YYTYPE_INT8 yytype_int8; 634#elif (defined __STDC__ || defined __C99__FUNC__ \ 635 || defined __cplusplus || defined _MSC_VER) 636typedef signed char yytype_int8; 637#else 638typedef short int yytype_int8; 639#endif 640 641#ifdef YYTYPE_UINT16 642typedef YYTYPE_UINT16 yytype_uint16; 643#else 644typedef unsigned short int yytype_uint16; 645#endif 646 647#ifdef YYTYPE_INT16 648typedef YYTYPE_INT16 yytype_int16; 649#else 650typedef 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) 694static int 695YYID (int yyi) 696#else 697static int 698YYID (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__ || defined __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__ || defined __C99__FUNC__ \ 761 || defined __cplusplus || defined _MSC_VER) 762void *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) 769void 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. */ 782union 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. */ 860static 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. */ 913static 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. */ 950static 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. */ 1046static 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. */ 1086static 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. */ 1172static 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. */ 1201static 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. */ 1238static 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. */ 1277static 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]. */ 1331static 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 1349static 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]. */ 1403static 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 1422static 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 1743static 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. */ 2060static 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) \ 2141do \ 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 } \ 2154while (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) \ 2220do { \ 2221 if (yydebug) \ 2222 YYFPRINTF Args; \ 2223} while (YYID (0)) 2224 2225# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 2226do { \ 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) 2244static void 2245yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, struct _mesa_glsl_parse_state *state) 2246#else 2247static void 2248yy_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) 2280static void 2281yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, struct _mesa_glsl_parse_state *state) 2282#else 2283static void 2284yy_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) 2310static void 2311yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 2312#else 2313static void 2314yy_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) \ 2329do { \ 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) 2341static void 2342yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, struct _mesa_glsl_parse_state *state) 2343#else 2344static void 2345yy_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) \ 2369do { \ 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. */ 2376int 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) 2411static YYSIZE_T 2412yystrlen (const char *yystr) 2413#else 2414static YYSIZE_T 2415yystrlen (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) 2435static char * 2436yystpcpy (char *yydest, const char *yysrc) 2437#else 2438static char * 2439yystpcpy (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. */ 2463static YYSIZE_T 2464yytnamerr (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. */ 2511static int 2512yysyntax_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) 2647static void 2648yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, struct _mesa_glsl_parse_state *state) 2649#else 2650static void 2651yydestruct (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 2679int yyparse (void *YYPARSE_PARAM); 2680#else 2681int yyparse (); 2682#endif 2683#else /* ! YYPARSE_PARAM */ 2684#if defined __STDC__ || defined __cplusplus 2685int yyparse (struct _mesa_glsl_parse_state *state); 2686#else 2687int 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) 2699int 2700yyparse (void *YYPARSE_PARAM) 2701#else 2702int 2703yyparse (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) 2709int 2710yyparse (struct _mesa_glsl_parse_state *state) 2711#else 2712int 2713yyparse (state) 2714 struct _mesa_glsl_parse_state *state; 2715#endif 2716#endif 2717{ 2718/* The lookahead symbol. */ 2719int yychar; 2720 2721/* The semantic value of the lookahead symbol. */ 2722YYSTYPE yylval; 2723 2724/* Location data for the lookahead symbol. */ 2725YYLTYPE 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`-----------*/ 2916yybackup: 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`-----------------------------------------------------------*/ 2980yydefault: 2981 yyn = yydefact[yystate]; 2982 if (yyn == 0) 2983 goto yyerrlab; 2984 goto yyreduce; 2985 2986 2987/*-----------------------------. 2988| yyreduce -- Do a reduction. | 2989`-----------------------------*/ 2990yyreduce: 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), & (yylsp[(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, NULL, 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, (yyvsp[(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, (yyvsp[(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)].expression)->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)].expression)->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)].identifier)); 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)].identifier)); 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)].expression)->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)].expression)->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)].identifier)); 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), (yyvsp[(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, (yyvsp[(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, (yyvsp[(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)].expression)); 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), (yyvsp[(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, NULL, NULL); 3747 (yyval.expression)->set_location(yylloc); 3748 (yyval.expression)->expressions.push_tail(& (yyvsp[(1) - (3)].expression)->link); 3749 } else { 3750 (yyval.expression) = (yyvsp[(1) - (3)].expression); 3751 } 3752 3753 (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].expression)->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_type); 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_type(); 3841 (yyval.parameter_declarator)->type->set_location(yylloc); 3842 (yyval.parameter_declarator)->type->specifier = (yyvsp[(1) - (2)].type_specifier); 3843 (yyval.parameter_declarator)->identifier = (yyvsp[(2) - (2)].identifier); 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_type(); 3856 (yyval.parameter_declarator)->type->set_location(yylloc); 3857 (yyval.parameter_declarator)->type->specifier = (yyvsp[(1) - (5)].type_specifier); 3858 (yyval.parameter_declarator)->identifier = (yyvsp[(2) - (5)].identifier); 3859 (yyval.parameter_declarator)->is_array = true; 3860 (yyval.parameter_declarator)->array_size = (yyvsp[(4) - (5)].expression); 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_qualifier).flags.i; 3870 3871 (yyval.parameter_declarator) = (yyvsp[(3) - (3)].parameter_declarator); 3872 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (3)].type_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)].type_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_qualifier).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_type(); 3897 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (3)].type_qualifier); 3898 (yyval.parameter_declarator)->type->specifier = (yyvsp[(3) - (3)].type_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_type(); 3911 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].type_qualifier); 3912 (yyval.parameter_declarator)->type->specifier = (yyvsp[(2) - (2)].type_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)].identifier), 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)].identifier), 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)].identifier), 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)].identifier), 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)].identifier), 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)].identifier), 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)].identifier), 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)].identifier), 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)].identifier), 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)].identifier), 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)].identifier), 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)].identifier), 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)].identifier), 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_specifier); 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_qualifier); 4179 (yyval.fully_specified_type)->specifier = (yyvsp[(2) - (2)].type_specifier); 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)]), state, (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_conventions_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_integer") == 0) { 4216 (yyval.type_qualifier).flags.q.pixel_center_integer = 1; 4217 } 4218 4219 if ((yyval.type_qualifier).flags.i && state->ARB_fragment_coord_conventions_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_depth_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_depth_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_object_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_object_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)].identifier)); 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).flags.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).flags.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).flags.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).flags.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).flags.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::void_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)].declarator_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)].declaration)->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)].identifier), 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)].identifier), 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, NULL); 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, (yyvsp[(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, NULL); 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)].expression)); 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)].expression), (yyvsp[(5) - (5)].selection_rest_statement).then_statement, 5297 (yyvsp[(5) - (5)].selection_rest_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)].node); 5308 (yyval.selection_rest_statement).else_statement = (yyvsp[(3) - (3)].node); 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)].node); 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)].identifier), 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)].expression), (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)].case_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)].expression)); 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_label)->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)->link); 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_statement::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_statement::ast_do_while, 5485 NULL, (yyvsp[(5) - (7)].expression), 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_statement::ast_for, 5497 (yyvsp[(3) - (6)].node), (yyvsp[(4) - (6)].for_rest_statement).cond, (yyvsp[(4) - (6)].for_rest_statement).rest, (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_continue, 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_break, 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_return, 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_return, (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_discard, 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_statement); 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_qualifier, 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)].identifier), (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.declarator_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`------------------------------------*/ 5790yyerrlab: 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`---------------------------------------------------*/ 5864yyerrorlab: 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`-------------------------------------------------------------*/ 5885yyerrlab1: 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`-------------------------------------*/ 5932yyacceptlab: 5933 yyresult = 0; 5934 goto yyreturn; 5935 5936/*-----------------------------------. 5937| yyabortlab -- YYABORT comes here. | 5938`-----------------------------------*/ 5939yyabortlab: 5940 yyresult = 1; 5941 goto yyreturn; 5942 5943#if !defined(yyoverflow) || YYERROR_VERBOSE 5944/*-------------------------------------------------. 5945| yyexhaustedlab -- memory exhaustion comes here. | 5946`-------------------------------------------------*/ 5947yyexhaustedlab: 5948 yyerror (&yylloc, state, YY_("memory exhausted")); 5949 yyresult = 2; 5950 /* Fall through. */ 5951#endif 5952 5953yyreturn: 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 5986