use log2 from stdc
[AROS.git] / workbench / libs / mesa / src / glsl / glsl_parser.cpp
blobc084a36c454d53d78d3bb79827470e2c8f983680
1 /* A Bison parser, made by GNU Bison 2.4.3. */
3 /* Skeleton implementation for Bison's Yacc-like parsers in C
5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
6 2009, 2010 Free Software Foundation, Inc.
8 This program is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>. */
21 /* As a special exception, you may create a larger work that contains
22 part or all of the Bison parser skeleton and distribute that work
23 under terms of your choice, so long as that work isn't itself a
24 parser generator using the skeleton or a modified version thereof
25 as a parser skeleton. Alternatively, if you modify or redistribute
26 the parser skeleton itself, you may (at your option) remove this
27 special exception, which will cause the skeleton and the resulting
28 Bison output files to be licensed under the GNU General Public
29 License without this special exception.
31 This special exception was added by the Free Software Foundation in
32 version 2.2 of Bison. */
34 /* C LALR(1) parser skeleton written by Richard Stallman, by
35 simplifying the original so-called "semantic" parser. */
37 /* All symbols defined below should begin with yy or YY, to avoid
38 infringing on user name space. This should be done even for local
39 variables, as they might otherwise be expanded by user macros.
40 There are some unavoidable exceptions within include files to
41 define necessary library symbols; they are noted "INFRINGES ON
42 USER NAME SPACE" below. */
44 /* Identify Bison output. */
45 #define YYBISON 1
47 /* Bison version. */
48 #define YYBISON_VERSION "2.4.3"
50 /* Skeleton name. */
51 #define YYSKELETON_NAME "yacc.c"
53 /* Pure parsers. */
54 #define YYPURE 1
56 /* Push parsers. */
57 #define YYPUSH 0
59 /* Pull parsers. */
60 #define YYPULL 1
62 /* Using locations. */
63 #define YYLSP_NEEDED 1
65 /* Substitute the variable and function names. */
66 #define yyparse _mesa_glsl_parse
67 #define yylex _mesa_glsl_lex
68 #define yyerror _mesa_glsl_error
69 #define yylval _mesa_glsl_lval
70 #define yychar _mesa_glsl_char
71 #define yydebug _mesa_glsl_debug
72 #define yynerrs _mesa_glsl_nerrs
73 #define yylloc _mesa_glsl_lloc
75 /* Copy the first part of user declarations. */
77 /* Line 189 of yacc.c */
78 #line 1 "glsl_parser.yy"
81 * Copyright © 2008, 2009 Intel Corporation
83 * Permission is hereby granted, free of charge, to any person obtaining a
84 * copy of this software and associated documentation files (the "Software"),
85 * to deal in the Software without restriction, including without limitation
86 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
87 * and/or sell copies of the Software, and to permit persons to whom the
88 * Software is furnished to do so, subject to the following conditions:
90 * The above copyright notice and this permission notice (including the next
91 * paragraph) shall be included in all copies or substantial portions of the
92 * Software.
94 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
95 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
96 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
97 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
98 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
99 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
100 * DEALINGS IN THE SOFTWARE.
102 #include <stdio.h>
103 #include <stdlib.h>
104 #include <string.h>
105 #include <assert.h>
107 #include "ast.h"
108 #include "glsl_parser_extras.h"
109 #include "glsl_types.h"
111 #define YYLEX_PARAM state->scanner
115 /* Line 189 of yacc.c */
116 #line 117 "glsl_parser.cpp"
118 /* Enabling traces. */
119 #ifndef YYDEBUG
120 # define YYDEBUG 0
121 #endif
123 /* Enabling verbose error messages. */
124 #ifdef YYERROR_VERBOSE
125 # undef YYERROR_VERBOSE
126 # define YYERROR_VERBOSE 1
127 #else
128 # define YYERROR_VERBOSE 1
129 #endif
131 /* Enabling the token table. */
132 #ifndef YYTOKEN_TABLE
133 # define YYTOKEN_TABLE 0
134 #endif
137 /* Tokens. */
138 #ifndef YYTOKENTYPE
139 # define YYTOKENTYPE
140 /* Put the tokens into the symbol table, so that GDB and other debuggers
141 know about them. */
142 enum yytokentype {
143 ATTRIBUTE = 258,
144 CONST_TOK = 259,
145 BOOL_TOK = 260,
146 FLOAT_TOK = 261,
147 INT_TOK = 262,
148 UINT_TOK = 263,
149 BREAK = 264,
150 CONTINUE = 265,
151 DO = 266,
152 ELSE = 267,
153 FOR = 268,
154 IF = 269,
155 DISCARD = 270,
156 RETURN = 271,
157 SWITCH = 272,
158 CASE = 273,
159 DEFAULT = 274,
160 BVEC2 = 275,
161 BVEC3 = 276,
162 BVEC4 = 277,
163 IVEC2 = 278,
164 IVEC3 = 279,
165 IVEC4 = 280,
166 UVEC2 = 281,
167 UVEC3 = 282,
168 UVEC4 = 283,
169 VEC2 = 284,
170 VEC3 = 285,
171 VEC4 = 286,
172 CENTROID = 287,
173 IN_TOK = 288,
174 OUT_TOK = 289,
175 INOUT_TOK = 290,
176 UNIFORM = 291,
177 VARYING = 292,
178 NOPERSPECTIVE = 293,
179 FLAT = 294,
180 SMOOTH = 295,
181 MAT2X2 = 296,
182 MAT2X3 = 297,
183 MAT2X4 = 298,
184 MAT3X2 = 299,
185 MAT3X3 = 300,
186 MAT3X4 = 301,
187 MAT4X2 = 302,
188 MAT4X3 = 303,
189 MAT4X4 = 304,
190 SAMPLER1D = 305,
191 SAMPLER2D = 306,
192 SAMPLER3D = 307,
193 SAMPLERCUBE = 308,
194 SAMPLER1DSHADOW = 309,
195 SAMPLER2DSHADOW = 310,
196 SAMPLERCUBESHADOW = 311,
197 SAMPLER1DARRAY = 312,
198 SAMPLER2DARRAY = 313,
199 SAMPLER1DARRAYSHADOW = 314,
200 SAMPLER2DARRAYSHADOW = 315,
201 ISAMPLER1D = 316,
202 ISAMPLER2D = 317,
203 ISAMPLER3D = 318,
204 ISAMPLERCUBE = 319,
205 ISAMPLER1DARRAY = 320,
206 ISAMPLER2DARRAY = 321,
207 USAMPLER1D = 322,
208 USAMPLER2D = 323,
209 USAMPLER3D = 324,
210 USAMPLERCUBE = 325,
211 USAMPLER1DARRAY = 326,
212 USAMPLER2DARRAY = 327,
213 STRUCT = 328,
214 VOID_TOK = 329,
215 WHILE = 330,
216 IDENTIFIER = 331,
217 TYPE_IDENTIFIER = 332,
218 NEW_IDENTIFIER = 333,
219 FLOATCONSTANT = 334,
220 INTCONSTANT = 335,
221 UINTCONSTANT = 336,
222 BOOLCONSTANT = 337,
223 FIELD_SELECTION = 338,
224 LEFT_OP = 339,
225 RIGHT_OP = 340,
226 INC_OP = 341,
227 DEC_OP = 342,
228 LE_OP = 343,
229 GE_OP = 344,
230 EQ_OP = 345,
231 NE_OP = 346,
232 AND_OP = 347,
233 OR_OP = 348,
234 XOR_OP = 349,
235 MUL_ASSIGN = 350,
236 DIV_ASSIGN = 351,
237 ADD_ASSIGN = 352,
238 MOD_ASSIGN = 353,
239 LEFT_ASSIGN = 354,
240 RIGHT_ASSIGN = 355,
241 AND_ASSIGN = 356,
242 XOR_ASSIGN = 357,
243 OR_ASSIGN = 358,
244 SUB_ASSIGN = 359,
245 INVARIANT = 360,
246 LOWP = 361,
247 MEDIUMP = 362,
248 HIGHP = 363,
249 SUPERP = 364,
250 PRECISION = 365,
251 VERSION = 366,
252 EXTENSION = 367,
253 LINE = 368,
254 COLON = 369,
255 EOL = 370,
256 INTERFACE = 371,
257 OUTPUT = 372,
258 PRAGMA_DEBUG_ON = 373,
259 PRAGMA_DEBUG_OFF = 374,
260 PRAGMA_OPTIMIZE_ON = 375,
261 PRAGMA_OPTIMIZE_OFF = 376,
262 PRAGMA_INVARIANT_ALL = 377,
263 LAYOUT_TOK = 378,
264 ASM = 379,
265 CLASS = 380,
266 UNION = 381,
267 ENUM = 382,
268 TYPEDEF = 383,
269 TEMPLATE = 384,
270 THIS = 385,
271 PACKED_TOK = 386,
272 GOTO = 387,
273 INLINE_TOK = 388,
274 NOINLINE = 389,
275 VOLATILE = 390,
276 PUBLIC_TOK = 391,
277 STATIC = 392,
278 EXTERN = 393,
279 EXTERNAL = 394,
280 LONG_TOK = 395,
281 SHORT_TOK = 396,
282 DOUBLE_TOK = 397,
283 HALF = 398,
284 FIXED_TOK = 399,
285 UNSIGNED = 400,
286 INPUT_TOK = 401,
287 OUPTUT = 402,
288 HVEC2 = 403,
289 HVEC3 = 404,
290 HVEC4 = 405,
291 DVEC2 = 406,
292 DVEC3 = 407,
293 DVEC4 = 408,
294 FVEC2 = 409,
295 FVEC3 = 410,
296 FVEC4 = 411,
297 SAMPLER2DRECT = 412,
298 SAMPLER3DRECT = 413,
299 SAMPLER2DRECTSHADOW = 414,
300 SIZEOF = 415,
301 CAST = 416,
302 NAMESPACE = 417,
303 USING = 418,
304 ERROR_TOK = 419,
305 COMMON = 420,
306 PARTITION = 421,
307 ACTIVE = 422,
308 SAMPLERBUFFER = 423,
309 FILTER = 424,
310 IMAGE1D = 425,
311 IMAGE2D = 426,
312 IMAGE3D = 427,
313 IMAGECUBE = 428,
314 IMAGE1DARRAY = 429,
315 IMAGE2DARRAY = 430,
316 IIMAGE1D = 431,
317 IIMAGE2D = 432,
318 IIMAGE3D = 433,
319 IIMAGECUBE = 434,
320 IIMAGE1DARRAY = 435,
321 IIMAGE2DARRAY = 436,
322 UIMAGE1D = 437,
323 UIMAGE2D = 438,
324 UIMAGE3D = 439,
325 UIMAGECUBE = 440,
326 UIMAGE1DARRAY = 441,
327 UIMAGE2DARRAY = 442,
328 IMAGE1DSHADOW = 443,
329 IMAGE2DSHADOW = 444,
330 IMAGEBUFFER = 445,
331 IIMAGEBUFFER = 446,
332 UIMAGEBUFFER = 447,
333 IMAGE1DARRAYSHADOW = 448,
334 IMAGE2DARRAYSHADOW = 449,
335 ROW_MAJOR = 450
337 #endif
341 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
342 typedef union YYSTYPE
345 /* Line 214 of yacc.c */
346 #line 52 "glsl_parser.yy"
348 int n;
349 float real;
350 char *identifier;
352 struct ast_type_qualifier type_qualifier;
354 ast_node *node;
355 ast_type_specifier *type_specifier;
356 ast_fully_specified_type *fully_specified_type;
357 ast_function *function;
358 ast_parameter_declarator *parameter_declarator;
359 ast_function_definition *function_definition;
360 ast_compound_statement *compound_statement;
361 ast_expression *expression;
362 ast_declarator_list *declarator_list;
363 ast_struct_specifier *struct_specifier;
364 ast_declaration *declaration;
366 struct {
367 ast_node *cond;
368 ast_expression *rest;
369 } for_rest_statement;
371 struct {
372 ast_node *then_statement;
373 ast_node *else_statement;
374 } selection_rest_statement;
378 /* Line 214 of yacc.c */
379 #line 380 "glsl_parser.cpp"
380 } YYSTYPE;
381 # define YYSTYPE_IS_TRIVIAL 1
382 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
383 # define YYSTYPE_IS_DECLARED 1
384 #endif
386 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
387 typedef struct YYLTYPE
389 int first_line;
390 int first_column;
391 int last_line;
392 int last_column;
393 } YYLTYPE;
394 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
395 # define YYLTYPE_IS_DECLARED 1
396 # define YYLTYPE_IS_TRIVIAL 1
397 #endif
400 /* Copy the second part of user declarations. */
403 /* Line 264 of yacc.c */
404 #line 405 "glsl_parser.cpp"
406 #ifdef short
407 # undef short
408 #endif
410 #ifdef YYTYPE_UINT8
411 typedef YYTYPE_UINT8 yytype_uint8;
412 #else
413 typedef unsigned char yytype_uint8;
414 #endif
416 #ifdef YYTYPE_INT8
417 typedef YYTYPE_INT8 yytype_int8;
418 #elif (defined __STDC__ || defined __C99__FUNC__ \
419 || defined __cplusplus || defined _MSC_VER)
420 typedef signed char yytype_int8;
421 #else
422 typedef short int yytype_int8;
423 #endif
425 #ifdef YYTYPE_UINT16
426 typedef YYTYPE_UINT16 yytype_uint16;
427 #else
428 typedef unsigned short int yytype_uint16;
429 #endif
431 #ifdef YYTYPE_INT16
432 typedef YYTYPE_INT16 yytype_int16;
433 #else
434 typedef short int yytype_int16;
435 #endif
437 #ifndef YYSIZE_T
438 # ifdef __SIZE_TYPE__
439 # define YYSIZE_T __SIZE_TYPE__
440 # elif defined size_t
441 # define YYSIZE_T size_t
442 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
443 || defined __cplusplus || defined _MSC_VER)
444 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
445 # define YYSIZE_T size_t
446 # else
447 # define YYSIZE_T unsigned int
448 # endif
449 #endif
451 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
453 #ifndef YY_
454 # if defined YYENABLE_NLS && YYENABLE_NLS
455 # if ENABLE_NLS
456 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
457 # define YY_(msgid) dgettext ("bison-runtime", msgid)
458 # endif
459 # endif
460 # ifndef YY_
461 # define YY_(msgid) msgid
462 # endif
463 #endif
465 /* Suppress unused-variable warnings by "using" E. */
466 #if ! defined lint || defined __GNUC__
467 # define YYUSE(e) ((void) (e))
468 #else
469 # define YYUSE(e) /* empty */
470 #endif
472 /* Identity function, used to suppress warnings about constant conditions. */
473 #ifndef lint
474 # define YYID(n) (n)
475 #else
476 #if (defined __STDC__ || defined __C99__FUNC__ \
477 || defined __cplusplus || defined _MSC_VER)
478 static int
479 YYID (int yyi)
480 #else
481 static int
482 YYID (yyi)
483 int yyi;
484 #endif
486 return yyi;
488 #endif
490 #if ! defined yyoverflow || YYERROR_VERBOSE
492 /* The parser invokes alloca or malloc; define the necessary symbols. */
494 # ifdef YYSTACK_USE_ALLOCA
495 # if YYSTACK_USE_ALLOCA
496 # ifdef __GNUC__
497 # define YYSTACK_ALLOC __builtin_alloca
498 # elif defined __BUILTIN_VA_ARG_INCR
499 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
500 # elif defined _AIX
501 # define YYSTACK_ALLOC __alloca
502 # elif defined _MSC_VER
503 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
504 # define alloca _alloca
505 # else
506 # define YYSTACK_ALLOC alloca
507 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
508 || defined __cplusplus || defined _MSC_VER)
509 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
510 # ifndef _STDLIB_H
511 # define _STDLIB_H 1
512 # endif
513 # endif
514 # endif
515 # endif
516 # endif
518 # ifdef YYSTACK_ALLOC
519 /* Pacify GCC's `empty if-body' warning. */
520 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
521 # ifndef YYSTACK_ALLOC_MAXIMUM
522 /* The OS might guarantee only one guard page at the bottom of the stack,
523 and a page size can be as small as 4096 bytes. So we cannot safely
524 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
525 to allow for a few compiler-allocated temporary stack slots. */
526 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
527 # endif
528 # else
529 # define YYSTACK_ALLOC YYMALLOC
530 # define YYSTACK_FREE YYFREE
531 # ifndef YYSTACK_ALLOC_MAXIMUM
532 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
533 # endif
534 # if (defined __cplusplus && ! defined _STDLIB_H \
535 && ! ((defined YYMALLOC || defined malloc) \
536 && (defined YYFREE || defined free)))
537 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
538 # ifndef _STDLIB_H
539 # define _STDLIB_H 1
540 # endif
541 # endif
542 # ifndef YYMALLOC
543 # define YYMALLOC malloc
544 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
545 || defined __cplusplus || defined _MSC_VER)
546 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
547 # endif
548 # endif
549 # ifndef YYFREE
550 # define YYFREE free
551 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
552 || defined __cplusplus || defined _MSC_VER)
553 void free (void *); /* INFRINGES ON USER NAME SPACE */
554 # endif
555 # endif
556 # endif
557 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
560 #if (! defined yyoverflow \
561 && (! defined __cplusplus \
562 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
563 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
565 /* A type that is properly aligned for any stack member. */
566 union yyalloc
568 yytype_int16 yyss_alloc;
569 YYSTYPE yyvs_alloc;
570 YYLTYPE yyls_alloc;
573 /* The size of the maximum gap between one aligned stack and the next. */
574 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
576 /* The size of an array large to enough to hold all stacks, each with
577 N elements. */
578 # define YYSTACK_BYTES(N) \
579 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
580 + 2 * YYSTACK_GAP_MAXIMUM)
582 /* Copy COUNT objects from FROM to TO. The source and destination do
583 not overlap. */
584 # ifndef YYCOPY
585 # if defined __GNUC__ && 1 < __GNUC__
586 # define YYCOPY(To, From, Count) \
587 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
588 # else
589 # define YYCOPY(To, From, Count) \
590 do \
592 YYSIZE_T yyi; \
593 for (yyi = 0; yyi < (Count); yyi++) \
594 (To)[yyi] = (From)[yyi]; \
596 while (YYID (0))
597 # endif
598 # endif
600 /* Relocate STACK from its old location to the new one. The
601 local variables YYSIZE and YYSTACKSIZE give the old and new number of
602 elements in the stack, and YYPTR gives the new location of the
603 stack. Advance YYPTR to a properly aligned location for the next
604 stack. */
605 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
606 do \
608 YYSIZE_T yynewbytes; \
609 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
610 Stack = &yyptr->Stack_alloc; \
611 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
612 yyptr += yynewbytes / sizeof (*yyptr); \
614 while (YYID (0))
616 #endif
618 /* YYFINAL -- State number of the termination state. */
619 #define YYFINAL 5
620 /* YYLAST -- Last index in YYTABLE. */
621 #define YYLAST 3692
623 /* YYNTOKENS -- Number of terminals. */
624 #define YYNTOKENS 220
625 /* YYNNTS -- Number of nonterminals. */
626 #define YYNNTS 93
627 /* YYNRULES -- Number of rules. */
628 #define YYNRULES 291
629 /* YYNRULES -- Number of states. */
630 #define YYNSTATES 434
632 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
633 #define YYUNDEFTOK 2
634 #define YYMAXUTOK 450
636 #define YYTRANSLATE(YYX) \
637 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
639 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
640 static const yytype_uint8 yytranslate[] =
642 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
643 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
644 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
645 2, 2, 2, 204, 2, 2, 2, 208, 211, 2,
646 196, 197, 206, 202, 201, 203, 200, 207, 2, 2,
647 2, 2, 2, 2, 2, 2, 2, 2, 215, 217,
648 209, 216, 210, 214, 2, 2, 2, 2, 2, 2,
649 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
650 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
651 2, 198, 2, 199, 212, 2, 2, 2, 2, 2,
652 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
653 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
654 2, 2, 2, 218, 213, 219, 205, 2, 2, 2,
655 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
656 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
657 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
658 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
659 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
660 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
661 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
662 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
663 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
664 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
665 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
666 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
667 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
668 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
669 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
670 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
671 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
672 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
673 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
674 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
675 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
676 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
677 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
678 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
679 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
680 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
681 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
682 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
683 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
684 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
685 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
686 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
690 #if YYDEBUG
691 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
692 YYRHS. */
693 static const yytype_uint16 yyprhs[] =
695 0, 0, 3, 4, 9, 10, 14, 17, 20, 23,
696 26, 29, 30, 33, 35, 37, 39, 45, 47, 50,
697 52, 54, 56, 58, 60, 62, 64, 68, 70, 75,
698 77, 81, 84, 87, 89, 91, 93, 97, 100, 103,
699 106, 108, 111, 115, 118, 120, 122, 124, 127, 130,
700 133, 135, 138, 142, 145, 147, 150, 153, 156, 158,
701 160, 162, 164, 166, 170, 174, 178, 180, 184, 188,
702 190, 194, 198, 200, 204, 208, 212, 216, 218, 222,
703 226, 228, 232, 234, 238, 240, 244, 246, 250, 252,
704 256, 258, 262, 264, 270, 272, 276, 278, 280, 282,
705 284, 286, 288, 290, 292, 294, 296, 298, 300, 304,
706 306, 309, 312, 317, 320, 322, 324, 327, 331, 335,
707 338, 344, 348, 351, 355, 358, 359, 361, 363, 365,
708 367, 369, 373, 379, 386, 394, 403, 409, 411, 414,
709 419, 425, 432, 440, 445, 448, 450, 453, 458, 460,
710 464, 466, 470, 472, 474, 476, 478, 480, 482, 485,
711 487, 490, 493, 497, 499, 501, 503, 505, 508, 510,
712 512, 515, 518, 520, 522, 525, 527, 531, 536, 538,
713 540, 542, 544, 546, 548, 550, 552, 554, 556, 558,
714 560, 562, 564, 566, 568, 570, 572, 574, 576, 578,
715 580, 582, 584, 586, 588, 590, 592, 594, 596, 598,
716 600, 602, 604, 606, 608, 610, 612, 614, 616, 618,
717 620, 622, 624, 626, 628, 630, 632, 634, 636, 638,
718 640, 642, 644, 646, 648, 650, 656, 661, 663, 666,
719 670, 672, 676, 678, 683, 685, 687, 689, 691, 693,
720 695, 697, 699, 701, 703, 705, 708, 709, 714, 716,
721 718, 721, 725, 727, 730, 732, 735, 741, 745, 747,
722 749, 754, 760, 764, 767, 773, 781, 788, 790, 792,
723 794, 795, 798, 802, 805, 808, 811, 815, 818, 820,
724 822, 824
727 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
728 static const yytype_int16 yyrhs[] =
730 221, 0, -1, -1, 223, 225, 222, 228, -1, -1,
731 111, 80, 115, -1, 118, 115, -1, 119, 115, -1,
732 120, 115, -1, 121, 115, -1, 122, 115, -1, -1,
733 225, 227, -1, 76, -1, 77, -1, 78, -1, 112,
734 226, 114, 226, 115, -1, 311, -1, 228, 311, -1,
735 76, -1, 78, -1, 229, -1, 80, -1, 81, -1,
736 79, -1, 82, -1, 196, 260, 197, -1, 230, -1,
737 231, 198, 232, 199, -1, 233, -1, 231, 200, 226,
738 -1, 231, 86, -1, 231, 87, -1, 260, -1, 234,
739 -1, 235, -1, 231, 200, 240, -1, 237, 197, -1,
740 236, 197, -1, 238, 74, -1, 238, -1, 238, 258,
741 -1, 237, 201, 258, -1, 239, 196, -1, 281, -1,
742 229, -1, 83, -1, 242, 197, -1, 241, 197, -1,
743 243, 74, -1, 243, -1, 243, 258, -1, 242, 201,
744 258, -1, 229, 196, -1, 231, -1, 86, 244, -1,
745 87, 244, -1, 245, 244, -1, 202, -1, 203, -1,
746 204, -1, 205, -1, 244, -1, 246, 206, 244, -1,
747 246, 207, 244, -1, 246, 208, 244, -1, 246, -1,
748 247, 202, 246, -1, 247, 203, 246, -1, 247, -1,
749 248, 84, 247, -1, 248, 85, 247, -1, 248, -1,
750 249, 209, 248, -1, 249, 210, 248, -1, 249, 88,
751 248, -1, 249, 89, 248, -1, 249, -1, 250, 90,
752 249, -1, 250, 91, 249, -1, 250, -1, 251, 211,
753 250, -1, 251, -1, 252, 212, 251, -1, 252, -1,
754 253, 213, 252, -1, 253, -1, 254, 92, 253, -1,
755 254, -1, 255, 94, 254, -1, 255, -1, 256, 93,
756 255, -1, 256, -1, 256, 214, 260, 215, 258, -1,
757 257, -1, 244, 259, 258, -1, 216, -1, 95, -1,
758 96, -1, 98, -1, 97, -1, 104, -1, 99, -1,
759 100, -1, 101, -1, 102, -1, 103, -1, 258, -1,
760 260, 201, 258, -1, 257, -1, 263, 217, -1, 271,
761 217, -1, 110, 285, 282, 217, -1, 264, 197, -1,
762 266, -1, 265, -1, 266, 268, -1, 265, 201, 268,
763 -1, 273, 229, 196, -1, 281, 226, -1, 281, 226,
764 198, 261, 199, -1, 278, 269, 267, -1, 269, 267,
765 -1, 278, 269, 270, -1, 269, 270, -1, -1, 33,
766 -1, 34, -1, 35, -1, 281, -1, 272, -1, 271,
767 201, 226, -1, 271, 201, 226, 198, 199, -1, 271,
768 201, 226, 198, 261, 199, -1, 271, 201, 226, 198,
769 199, 216, 291, -1, 271, 201, 226, 198, 261, 199,
770 216, 291, -1, 271, 201, 226, 216, 291, -1, 273,
771 -1, 273, 226, -1, 273, 226, 198, 199, -1, 273,
772 226, 198, 261, 199, -1, 273, 226, 198, 199, 216,
773 291, -1, 273, 226, 198, 261, 199, 216, 291, -1,
774 273, 226, 216, 291, -1, 105, 229, -1, 281, -1,
775 279, 281, -1, 123, 196, 275, 197, -1, 276, -1,
776 275, 201, 276, -1, 226, -1, 226, 216, 80, -1,
777 40, -1, 39, -1, 38, -1, 4, -1, 280, -1,
778 274, -1, 274, 280, -1, 277, -1, 277, 280, -1,
779 105, 280, -1, 105, 277, 280, -1, 105, -1, 4,
780 -1, 3, -1, 37, -1, 32, 37, -1, 33, -1,
781 34, -1, 32, 33, -1, 32, 34, -1, 36, -1,
782 282, -1, 285, 282, -1, 283, -1, 283, 198, 199,
783 -1, 283, 198, 261, 199, -1, 284, -1, 286, -1,
784 77, -1, 74, -1, 6, -1, 7, -1, 8, -1,
785 5, -1, 29, -1, 30, -1, 31, -1, 20, -1,
786 21, -1, 22, -1, 23, -1, 24, -1, 25, -1,
787 26, -1, 27, -1, 28, -1, 41, -1, 42, -1,
788 43, -1, 44, -1, 45, -1, 46, -1, 47, -1,
789 48, -1, 49, -1, 50, -1, 51, -1, 157, -1,
790 52, -1, 53, -1, 54, -1, 55, -1, 159, -1,
791 56, -1, 57, -1, 58, -1, 59, -1, 60, -1,
792 61, -1, 62, -1, 63, -1, 64, -1, 65, -1,
793 66, -1, 67, -1, 68, -1, 69, -1, 70, -1,
794 71, -1, 72, -1, 108, -1, 107, -1, 106, -1,
795 73, 226, 218, 287, 219, -1, 73, 218, 287, 219,
796 -1, 288, -1, 287, 288, -1, 281, 289, 217, -1,
797 290, -1, 289, 201, 290, -1, 226, -1, 226, 198,
798 261, 199, -1, 258, -1, 262, -1, 295, -1, 294,
799 -1, 292, -1, 300, -1, 301, -1, 304, -1, 305,
800 -1, 306, -1, 310, -1, 218, 219, -1, -1, 218,
801 296, 299, 219, -1, 298, -1, 294, -1, 218, 219,
802 -1, 218, 299, 219, -1, 293, -1, 299, 293, -1,
803 217, -1, 260, 217, -1, 14, 196, 260, 197, 302,
804 -1, 293, 12, 293, -1, 293, -1, 260, -1, 273,
805 226, 216, 291, -1, 17, 196, 260, 197, 295, -1,
806 18, 260, 215, -1, 19, 215, -1, 75, 196, 303,
807 197, 297, -1, 11, 293, 75, 196, 260, 197, 217,
808 -1, 13, 196, 307, 309, 197, 297, -1, 300, -1,
809 292, -1, 303, -1, -1, 308, 217, -1, 308, 217,
810 260, -1, 10, 217, -1, 9, 217, -1, 16, 217,
811 -1, 16, 260, 217, -1, 15, 217, -1, 312, -1,
812 262, -1, 224, -1, 263, 298, -1
815 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
816 static const yytype_uint16 yyrline[] =
818 0, 218, 218, 217, 229, 231, 271, 272, 273, 274,
819 275, 287, 289, 293, 294, 295, 299, 308, 316, 327,
820 328, 332, 339, 346, 353, 360, 367, 374, 375, 381,
821 385, 392, 398, 407, 411, 415, 416, 425, 426, 430,
822 431, 435, 441, 453, 457, 463, 470, 480, 481, 485,
823 486, 490, 496, 508, 519, 520, 526, 532, 542, 543,
824 544, 545, 549, 550, 556, 562, 571, 572, 578, 587,
825 588, 594, 603, 604, 610, 616, 622, 631, 632, 638,
826 647, 648, 657, 658, 667, 668, 677, 678, 687, 688,
827 697, 698, 707, 708, 717, 718, 727, 728, 729, 730,
828 731, 732, 733, 734, 735, 736, 737, 741, 745, 761,
829 765, 770, 774, 783, 787, 788, 792, 797, 805, 819,
830 829, 844, 851, 856, 867, 880, 883, 888, 893, 902,
831 906, 907, 917, 927, 937, 947, 957, 971, 982, 991,
832 1000, 1009, 1018, 1027, 1036, 1050, 1057, 1068, 1075, 1076,
833 1095, 1147, 1188, 1193, 1198, 1206, 1214, 1215, 1216, 1221,
834 1222, 1227, 1232, 1238, 1246, 1251, 1256, 1261, 1267, 1272,
835 1277, 1282, 1287, 1295, 1299, 1307, 1308, 1314, 1323, 1329,
836 1335, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352,
837 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362,
838 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372,
839 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382,
840 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392,
841 1393, 1394, 1398, 1408, 1418, 1431, 1438, 1447, 1452, 1460,
842 1475, 1480, 1488, 1495, 1504, 1508, 1514, 1515, 1519, 1520,
843 1521, 1522, 1523, 1524, 1525, 1529, 1536, 1535, 1549, 1550,
844 1554, 1560, 1569, 1579, 1591, 1597, 1606, 1615, 1620, 1628,
845 1632, 1646, 1650, 1651, 1655, 1662, 1669, 1679, 1680, 1684,
846 1686, 1692, 1697, 1706, 1712, 1718, 1724, 1730, 1739, 1740,
847 1741, 1745
849 #endif
851 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
852 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
853 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
854 static const char *const yytname[] =
856 "$end", "error", "$undefined", "ATTRIBUTE", "CONST_TOK", "BOOL_TOK",
857 "FLOAT_TOK", "INT_TOK", "UINT_TOK", "BREAK", "CONTINUE", "DO", "ELSE",
858 "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "BVEC2",
859 "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", "UVEC2", "UVEC3", "UVEC4",
860 "VEC2", "VEC3", "VEC4", "CENTROID", "IN_TOK", "OUT_TOK", "INOUT_TOK",
861 "UNIFORM", "VARYING", "NOPERSPECTIVE", "FLAT", "SMOOTH", "MAT2X2",
862 "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3",
863 "MAT4X4", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
864 "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW",
865 "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW",
866 "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D",
867 "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D",
868 "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY",
869 "USAMPLER2DARRAY", "STRUCT", "VOID_TOK", "WHILE", "IDENTIFIER",
870 "TYPE_IDENTIFIER", "NEW_IDENTIFIER", "FLOATCONSTANT", "INTCONSTANT",
871 "UINTCONSTANT", "BOOLCONSTANT", "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP",
872 "INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP",
873 "OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN",
874 "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN",
875 "OR_ASSIGN", "SUB_ASSIGN", "INVARIANT", "LOWP", "MEDIUMP", "HIGHP",
876 "SUPERP", "PRECISION", "VERSION", "EXTENSION", "LINE", "COLON", "EOL",
877 "INTERFACE", "OUTPUT", "PRAGMA_DEBUG_ON", "PRAGMA_DEBUG_OFF",
878 "PRAGMA_OPTIMIZE_ON", "PRAGMA_OPTIMIZE_OFF", "PRAGMA_INVARIANT_ALL",
879 "LAYOUT_TOK", "ASM", "CLASS", "UNION", "ENUM", "TYPEDEF", "TEMPLATE",
880 "THIS", "PACKED_TOK", "GOTO", "INLINE_TOK", "NOINLINE", "VOLATILE",
881 "PUBLIC_TOK", "STATIC", "EXTERN", "EXTERNAL", "LONG_TOK", "SHORT_TOK",
882 "DOUBLE_TOK", "HALF", "FIXED_TOK", "UNSIGNED", "INPUT_TOK", "OUPTUT",
883 "HVEC2", "HVEC3", "HVEC4", "DVEC2", "DVEC3", "DVEC4", "FVEC2", "FVEC3",
884 "FVEC4", "SAMPLER2DRECT", "SAMPLER3DRECT", "SAMPLER2DRECTSHADOW",
885 "SIZEOF", "CAST", "NAMESPACE", "USING", "ERROR_TOK", "COMMON",
886 "PARTITION", "ACTIVE", "SAMPLERBUFFER", "FILTER", "IMAGE1D", "IMAGE2D",
887 "IMAGE3D", "IMAGECUBE", "IMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE1D",
888 "IIMAGE2D", "IIMAGE3D", "IIMAGECUBE", "IIMAGE1DARRAY", "IIMAGE2DARRAY",
889 "UIMAGE1D", "UIMAGE2D", "UIMAGE3D", "UIMAGECUBE", "UIMAGE1DARRAY",
890 "UIMAGE2DARRAY", "IMAGE1DSHADOW", "IMAGE2DSHADOW", "IMAGEBUFFER",
891 "IIMAGEBUFFER", "UIMAGEBUFFER", "IMAGE1DARRAYSHADOW",
892 "IMAGE2DARRAYSHADOW", "ROW_MAJOR", "'('", "')'", "'['", "']'", "'.'",
893 "','", "'+'", "'-'", "'!'", "'~'", "'*'", "'/'", "'%'", "'<'", "'>'",
894 "'&'", "'^'", "'|'", "'?'", "':'", "'='", "';'", "'{'", "'}'", "$accept",
895 "translation_unit", "$@1", "version_statement", "pragma_statement",
896 "extension_statement_list", "any_identifier", "extension_statement",
897 "external_declaration_list", "variable_identifier", "primary_expression",
898 "postfix_expression", "integer_expression", "function_call",
899 "function_call_or_method", "function_call_generic",
900 "function_call_header_no_parameters",
901 "function_call_header_with_parameters", "function_call_header",
902 "function_identifier", "method_call_generic",
903 "method_call_header_no_parameters", "method_call_header_with_parameters",
904 "method_call_header", "unary_expression", "unary_operator",
905 "multiplicative_expression", "additive_expression", "shift_expression",
906 "relational_expression", "equality_expression", "and_expression",
907 "exclusive_or_expression", "inclusive_or_expression",
908 "logical_and_expression", "logical_xor_expression",
909 "logical_or_expression", "conditional_expression",
910 "assignment_expression", "assignment_operator", "expression",
911 "constant_expression", "declaration", "function_prototype",
912 "function_declarator", "function_header_with_parameters",
913 "function_header", "parameter_declarator", "parameter_declaration",
914 "parameter_qualifier", "parameter_type_specifier",
915 "init_declarator_list", "single_declaration", "fully_specified_type",
916 "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
917 "interpolation_qualifier", "parameter_type_qualifier", "type_qualifier",
918 "storage_qualifier", "type_specifier", "type_specifier_no_prec",
919 "type_specifier_nonarray", "basic_type_specifier_nonarray",
920 "precision_qualifier", "struct_specifier", "struct_declaration_list",
921 "struct_declaration", "struct_declarator_list", "struct_declarator",
922 "initializer", "declaration_statement", "statement", "simple_statement",
923 "compound_statement", "$@2", "statement_no_new_scope",
924 "compound_statement_no_new_scope", "statement_list",
925 "expression_statement", "selection_statement",
926 "selection_rest_statement", "condition", "switch_statement",
927 "case_label", "iteration_statement", "for_init_statement",
928 "conditionopt", "for_rest_statement", "jump_statement",
929 "external_declaration", "function_definition", 0
931 #endif
933 # ifdef YYPRINT
934 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
935 token YYLEX-NUM. */
936 static const yytype_uint16 yytoknum[] =
938 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
939 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
940 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
941 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
942 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
943 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
944 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
945 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
946 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
947 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
948 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
949 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
950 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
951 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
952 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
953 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
954 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
955 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
956 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
957 445, 446, 447, 448, 449, 450, 40, 41, 91, 93,
958 46, 44, 43, 45, 33, 126, 42, 47, 37, 60,
959 62, 38, 94, 124, 63, 58, 61, 59, 123, 125
961 # endif
963 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
964 static const yytype_uint16 yyr1[] =
966 0, 220, 222, 221, 223, 223, 224, 224, 224, 224,
967 224, 225, 225, 226, 226, 226, 227, 228, 228, 229,
968 229, 230, 230, 230, 230, 230, 230, 231, 231, 231,
969 231, 231, 231, 232, 233, 234, 234, 235, 235, 236,
970 236, 237, 237, 238, 239, 239, 239, 240, 240, 241,
971 241, 242, 242, 243, 244, 244, 244, 244, 245, 245,
972 245, 245, 246, 246, 246, 246, 247, 247, 247, 248,
973 248, 248, 249, 249, 249, 249, 249, 250, 250, 250,
974 251, 251, 252, 252, 253, 253, 254, 254, 255, 255,
975 256, 256, 257, 257, 258, 258, 259, 259, 259, 259,
976 259, 259, 259, 259, 259, 259, 259, 260, 260, 261,
977 262, 262, 262, 263, 264, 264, 265, 265, 266, 267,
978 267, 268, 268, 268, 268, 269, 269, 269, 269, 270,
979 271, 271, 271, 271, 271, 271, 271, 272, 272, 272,
980 272, 272, 272, 272, 272, 273, 273, 274, 275, 275,
981 276, 276, 277, 277, 277, 278, 279, 279, 279, 279,
982 279, 279, 279, 279, 280, 280, 280, 280, 280, 280,
983 280, 280, 280, 281, 281, 282, 282, 282, 283, 283,
984 283, 284, 284, 284, 284, 284, 284, 284, 284, 284,
985 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
986 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
987 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
988 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
989 284, 284, 285, 285, 285, 286, 286, 287, 287, 288,
990 289, 289, 290, 290, 291, 292, 293, 293, 294, 294,
991 294, 294, 294, 294, 294, 295, 296, 295, 297, 297,
992 298, 298, 299, 299, 300, 300, 301, 302, 302, 303,
993 303, 304, 305, 305, 306, 306, 306, 307, 307, 308,
994 308, 309, 309, 310, 310, 310, 310, 310, 311, 311,
995 311, 312
998 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
999 static const yytype_uint8 yyr2[] =
1001 0, 2, 0, 4, 0, 3, 2, 2, 2, 2,
1002 2, 0, 2, 1, 1, 1, 5, 1, 2, 1,
1003 1, 1, 1, 1, 1, 1, 3, 1, 4, 1,
1004 3, 2, 2, 1, 1, 1, 3, 2, 2, 2,
1005 1, 2, 3, 2, 1, 1, 1, 2, 2, 2,
1006 1, 2, 3, 2, 1, 2, 2, 2, 1, 1,
1007 1, 1, 1, 3, 3, 3, 1, 3, 3, 1,
1008 3, 3, 1, 3, 3, 3, 3, 1, 3, 3,
1009 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
1010 1, 3, 1, 5, 1, 3, 1, 1, 1, 1,
1011 1, 1, 1, 1, 1, 1, 1, 1, 3, 1,
1012 2, 2, 4, 2, 1, 1, 2, 3, 3, 2,
1013 5, 3, 2, 3, 2, 0, 1, 1, 1, 1,
1014 1, 3, 5, 6, 7, 8, 5, 1, 2, 4,
1015 5, 6, 7, 4, 2, 1, 2, 4, 1, 3,
1016 1, 3, 1, 1, 1, 1, 1, 1, 2, 1,
1017 2, 2, 3, 1, 1, 1, 1, 2, 1, 1,
1018 2, 2, 1, 1, 2, 1, 3, 4, 1, 1,
1019 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1020 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1021 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1022 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1023 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1024 1, 1, 1, 1, 1, 5, 4, 1, 2, 3,
1025 1, 3, 1, 4, 1, 1, 1, 1, 1, 1,
1026 1, 1, 1, 1, 1, 2, 0, 4, 1, 1,
1027 2, 3, 1, 2, 1, 2, 5, 3, 1, 1,
1028 4, 5, 3, 2, 5, 7, 6, 1, 1, 1,
1029 0, 2, 3, 2, 2, 2, 3, 2, 1, 1,
1030 1, 2
1033 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1034 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
1035 means the default is an error. */
1036 static const yytype_uint16 yydefact[] =
1038 4, 0, 0, 11, 0, 1, 2, 5, 0, 0,
1039 12, 13, 14, 15, 0, 165, 164, 185, 182, 183,
1040 184, 189, 190, 191, 192, 193, 194, 195, 196, 197,
1041 186, 187, 188, 0, 168, 169, 172, 166, 154, 153,
1042 152, 198, 199, 200, 201, 202, 203, 204, 205, 206,
1043 207, 208, 210, 211, 212, 213, 215, 216, 217, 218,
1044 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
1045 229, 230, 231, 0, 181, 180, 163, 234, 233, 232,
1046 0, 0, 0, 0, 0, 0, 0, 209, 214, 290,
1047 3, 289, 0, 0, 115, 125, 0, 130, 137, 157,
1048 159, 0, 156, 145, 173, 175, 178, 0, 179, 17,
1049 288, 0, 170, 171, 167, 0, 0, 19, 20, 144,
1050 0, 161, 0, 6, 7, 8, 9, 10, 0, 18,
1051 110, 0, 291, 113, 125, 155, 126, 127, 128, 116,
1052 0, 125, 0, 111, 13, 15, 138, 0, 158, 160,
1053 146, 0, 174, 0, 0, 0, 237, 0, 162, 0,
1054 150, 0, 148, 0, 0, 0, 0, 0, 0, 0,
1055 0, 0, 0, 0, 24, 22, 23, 25, 46, 0,
1056 0, 0, 58, 59, 60, 61, 264, 256, 260, 21,
1057 27, 54, 29, 34, 35, 0, 0, 40, 0, 62,
1058 0, 66, 69, 72, 77, 80, 82, 84, 86, 88,
1059 90, 92, 94, 107, 0, 245, 0, 145, 248, 262,
1060 247, 246, 0, 249, 250, 251, 252, 253, 254, 117,
1061 122, 124, 129, 0, 131, 0, 0, 118, 176, 62,
1062 109, 0, 44, 16, 242, 0, 240, 236, 238, 0,
1063 112, 0, 147, 0, 284, 283, 0, 0, 0, 287,
1064 285, 0, 0, 0, 273, 0, 55, 56, 0, 255,
1065 0, 31, 32, 0, 0, 38, 37, 0, 181, 41,
1066 43, 97, 98, 100, 99, 102, 103, 104, 105, 106,
1067 101, 96, 0, 57, 0, 0, 0, 0, 0, 0,
1068 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1069 0, 0, 0, 0, 0, 265, 261, 263, 119, 121,
1070 123, 0, 0, 139, 0, 244, 143, 177, 0, 0,
1071 239, 235, 151, 149, 0, 278, 277, 280, 0, 286,
1072 0, 272, 163, 269, 0, 0, 26, 0, 0, 33,
1073 30, 0, 36, 0, 0, 50, 42, 95, 63, 64,
1074 65, 67, 68, 70, 71, 75, 76, 73, 74, 78,
1075 79, 81, 83, 85, 87, 89, 91, 0, 108, 0,
1076 132, 0, 136, 0, 140, 0, 241, 0, 279, 0,
1077 0, 0, 0, 0, 0, 257, 28, 53, 48, 47,
1078 0, 181, 51, 0, 0, 0, 133, 141, 0, 243,
1079 0, 281, 0, 268, 266, 271, 0, 259, 274, 258,
1080 52, 93, 120, 134, 0, 142, 0, 282, 276, 0,
1081 270, 135, 275, 267
1084 /* YYDEFGOTO[NTERM-NUM]. */
1085 static const yytype_int16 yydefgoto[] =
1087 -1, 2, 9, 3, 89, 6, 160, 10, 90, 189,
1088 190, 191, 348, 192, 193, 194, 195, 196, 197, 198,
1089 352, 353, 354, 355, 199, 200, 201, 202, 203, 204,
1090 205, 206, 207, 208, 209, 210, 211, 212, 213, 292,
1091 214, 241, 215, 216, 93, 94, 95, 230, 139, 140,
1092 231, 96, 97, 98, 99, 161, 162, 100, 141, 101,
1093 102, 242, 104, 105, 106, 107, 108, 155, 156, 245,
1094 246, 326, 218, 219, 220, 221, 270, 418, 419, 222,
1095 223, 224, 414, 345, 225, 226, 227, 337, 389, 390,
1096 228, 109, 110
1099 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1100 STATE-NUM. */
1101 #define YYPACT_NINF -366
1102 static const yytype_int16 yypact[] =
1104 -57, -43, 62, -366, -50, -366, -30, -366, 67, 3341,
1105 -366, -366, -366, -366, -6, -366, -366, -366, -366, -366,
1106 -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
1107 -366, -366, -366, 8, -366, -366, -366, -366, -366, -366,
1108 -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
1109 -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
1110 -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
1111 -366, -366, -366, -65, -366, -366, 226, -366, -366, -366,
1112 51, -31, -28, 6, 13, 15, -44, -366, -366, -366,
1113 3341, -366, -183, -47, -29, 18, -169, -366, 140, 24,
1114 24, 3460, -366, -366, -366, -24, -366, 3533, -366, -366,
1115 -366, 67, -366, -366, -366, 3460, -48, -366, -366, -366,
1116 24, -366, 3533, -366, -366, -366, -366, -366, 67, -366,
1117 -366, 408, -366, -366, 55, -366, -366, -366, -366, -366,
1118 3460, 200, 67, -366, -20, -18, -178, 23, -366, -366,
1119 -366, 2225, -366, 72, 67, 1598, -366, 3460, -366, 4,
1120 10, -84, -366, 11, 14, 1059, 40, 42, 29, 1836,
1121 43, 2783, 34, 54, -366, -366, -366, -366, -366, 2783,
1122 2783, 2783, -366, -366, -366, -366, -366, 32, -366, 56,
1123 -366, -71, -366, -366, -366, 57, -81, 2969, 61, -27,
1124 2783, 35, -88, -41, -70, 33, 60, 41, 59, 181,
1125 180, -89, -366, -366, -168, -366, 58, 80, -366, -366,
1126 -366, -366, 625, -366, -366, -366, -366, -366, -366, -366,
1127 -366, -366, 67, 3460, -177, 2411, 2783, -366, -366, -366,
1128 -366, 78, -366, -366, 81, -137, -366, -366, -366, 1717,
1129 -366, 201, -366, 67, -366, -366, 205, 1478, 2783, -366,
1130 -366, -134, 2783, -115, -366, 2039, -366, -366, -60, -366,
1131 1059, -366, -366, 2783, 140, -366, -366, 2783, 85, -366,
1132 -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
1133 -366, -366, 2783, -366, 2783, 2783, 2783, 2783, 2783, 2783,
1134 2783, 2783, 2783, 2783, 2783, 2783, 2783, 2783, 2783, 2783,
1135 2783, 2783, 2783, 2783, 2783, -366, -366, -366, 86, -366,
1136 -366, 2597, 2783, 69, 87, -366, -366, -366, 2783, 67,
1137 -366, -366, -366, -366, 91, -366, -366, 2039, -59, -366,
1138 -46, -366, 129, 88, 67, 93, -366, 842, 89, 88,
1139 -366, 95, -366, 96, -37, 3155, -366, -366, -366, -366,
1140 -366, 35, 35, -88, -88, -41, -41, -41, -41, -70,
1141 -70, 33, 60, 41, 59, 181, 180, -96, -366, 2783,
1142 76, 97, -366, 2783, 79, 98, -366, 2783, -366, 77,
1143 101, 1059, 83, 90, 1275, -366, -366, -366, -366, -366,
1144 2783, 102, -366, 2783, 108, 2783, 94, -366, 2783, -366,
1145 -26, 2783, 1275, 297, -366, -366, 2783, -366, -366, -366,
1146 -366, -366, -366, -366, 2783, -366, 100, 88, -366, 1059,
1147 -366, -366, -366, -366
1150 /* YYPGOTO[NTERM-NUM]. */
1151 static const yytype_int16 yypgoto[] =
1153 -366, -366, -366, -366, -366, -366, -7, -366, -366, -62,
1154 -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
1155 -366, -366, -366, -366, -101, -366, -113, -109, -121, -61,
1156 5, 3, 9, 16, 2, 7, -366, -142, -100, -366,
1157 -164, -225, 21, 22, -366, -366, -366, 82, 186, 173,
1158 92, -366, -366, -242, -366, -366, 68, -73, -366, -366,
1159 -74, -9, -67, -366, -366, 243, -366, 170, -147, -366,
1160 0, -298, 73, -159, -365, -58, -366, -80, 239, 63,
1161 84, -366, -366, -2, -366, -366, -366, -366, -366, -366,
1162 -366, 246, -366
1165 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1166 positive, shift that token. If negative, reduce the rule which
1167 number is the opposite. If zero, do what YYDEFACT says.
1168 If YYTABLE_NINF, syntax error. */
1169 #define YYTABLE_NINF -115
1170 static const yytype_int16 yytable[] =
1172 103, 14, 121, 120, 312, 261, 256, 263, 248, 240,
1173 324, 11, 12, 13, 119, 271, 272, 268, 301, 302,
1174 235, 321, 135, 344, 382, 148, 149, 15, 16, 417,
1175 91, 92, 142, 314, 130, 131, 147, 4, 236, 322,
1176 152, 112, 113, 299, 300, 114, 158, 417, 143, 315,
1177 239, 136, 137, 138, 1, 159, 33, 34, 35, 135,
1178 36, 37, 5, 317, 329, 7, 116, 314, 281, 282,
1179 283, 284, 285, 286, 287, 288, 289, 290, 266, 267,
1180 330, 103, 8, 339, 123, 407, 314, 124, 136, 137,
1181 138, 146, 150, 240, 338, 344, 381, 279, 340, 293,
1182 341, 343, 248, 385, 153, 314, 154, 423, 111, 349,
1183 425, 91, 92, 252, 297, 298, 276, 253, 430, 403,
1184 277, 125, 217, 305, 306, 313, 431, 273, 126, 274,
1185 127, 232, 15, 16, 239, 234, 325, 346, 391, 303,
1186 304, 314, 314, 11, 12, 13, 154, 244, 154, 377,
1187 133, 392, 128, 115, 404, 314, 217, 77, 78, 79,
1188 399, 33, 34, 35, 400, 36, 37, 38, 39, 40,
1189 157, 426, 134, 343, 151, 314, -19, 356, -20, 240,
1190 365, 366, 367, 368, 361, 362, 240, 243, 317, 291,
1191 363, 364, 357, 358, 359, 360, 239, 239, 239, 239,
1192 239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
1193 239, 239, 351, 217, 378, -114, 144, 12, 145, 237,
1194 239, 250, 325, 410, 232, 318, 251, 239, 254, 15,
1195 16, 255, 413, 136, 137, 138, 257, 240, 258, 262,
1196 154, 294, 295, 296, 369, 370, 259, 427, 217, 264,
1197 265, 269, -45, 308, 275, 402, 217, 280, 33, 34,
1198 35, 217, 36, 37, 38, 39, 40, 350, 121, 120,
1199 433, 307, 309, 310, 311, 130, -44, 327, 239, 328,
1200 334, 332, -39, 325, 379, 383, 384, 387, 396, 314,
1201 394, 397, 405, 398, 411, 408, 406, 409, 412, -49,
1202 420, 187, 117, 421, 118, 325, 416, 422, 325, 429,
1203 424, 372, 371, 375, 233, 319, 325, 432, 373, 376,
1204 229, 333, 244, 122, 325, 320, 374, 249, 217, 386,
1205 335, 132, 428, 347, 415, 388, 129, 393, 217, 0,
1206 0, 336, 0, 0, 0, 0, 0, 0, 0, 0,
1207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1208 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1209 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1210 0, 0, 217, 0, 0, 217, 0, 0, 0, 0,
1211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1212 0, 0, 0, 217, 0, 0, 0, 0, 0, 0,
1213 0, 15, 16, 17, 18, 19, 20, 163, 164, 165,
1214 217, 166, 167, 168, 169, 170, 171, 172, 21, 22,
1215 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1216 33, 34, 35, 0, 36, 37, 38, 39, 40, 41,
1217 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1218 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1219 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1220 72, 73, 74, 173, 117, 75, 118, 174, 175, 176,
1221 177, 178, 0, 0, 179, 180, 0, 0, 0, 0,
1222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1223 0, 0, 0, 76, 77, 78, 79, 0, 80, 0,
1224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1225 0, 86, 0, 0, 0, 0, 0, 0, 0, 0,
1226 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1228 0, 0, 0, 0, 0, 87, 0, 88, 0, 0,
1229 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1230 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1232 0, 0, 0, 0, 181, 0, 0, 0, 0, 0,
1233 182, 183, 184, 185, 0, 0, 0, 0, 0, 0,
1234 0, 0, 0, 0, 0, 186, 187, 188, 15, 16,
1235 17, 18, 19, 20, 163, 164, 165, 0, 166, 167,
1236 168, 169, 170, 171, 172, 21, 22, 23, 24, 25,
1237 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1238 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1239 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1240 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1241 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1242 173, 117, 75, 118, 174, 175, 176, 177, 178, 0,
1243 0, 179, 180, 0, 0, 0, 0, 0, 0, 0,
1244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1245 76, 77, 78, 79, 0, 80, 0, 0, 0, 0,
1246 0, 0, 0, 0, 0, 0, 0, 0, 86, 0,
1247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1249 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1250 0, 0, 87, 0, 88, 0, 0, 0, 0, 0,
1251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1254 0, 181, 0, 0, 0, 0, 0, 182, 183, 184,
1255 185, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1256 0, 0, 186, 187, 316, 15, 16, 17, 18, 19,
1257 20, 163, 164, 165, 0, 166, 167, 168, 169, 170,
1258 171, 172, 21, 22, 23, 24, 25, 26, 27, 28,
1259 29, 30, 31, 32, 33, 34, 35, 0, 36, 37,
1260 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1261 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1262 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1263 68, 69, 70, 71, 72, 73, 74, 173, 117, 75,
1264 118, 174, 175, 176, 177, 178, 0, 0, 179, 180,
1265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1266 0, 0, 0, 0, 0, 0, 0, 76, 77, 78,
1267 79, 0, 80, 0, 0, 0, 0, 0, 0, 0,
1268 0, 0, 0, 0, 0, 86, 0, 0, 0, 0,
1269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1270 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1271 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,
1272 0, 88, 0, 0, 0, 0, 0, 0, 0, 0,
1273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1275 0, 0, 0, 0, 0, 0, 0, 0, 181, 0,
1276 0, 0, 0, 0, 182, 183, 184, 185, 0, 0,
1277 0, 0, 0, 0, 0, 0, 0, 0, 0, 186,
1278 187, 395, 15, 16, 17, 18, 19, 20, 163, 164,
1279 165, 0, 166, 167, 168, 169, 170, 171, 172, 21,
1280 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1281 32, 33, 34, 35, 0, 36, 37, 38, 39, 40,
1282 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1283 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1284 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1285 71, 72, 73, 74, 173, 117, 75, 118, 174, 175,
1286 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
1287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1288 0, 0, 0, 0, 76, 77, 78, 79, 0, 80,
1289 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1290 0, 0, 86, 0, 0, 0, 0, 0, 0, 0,
1291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1293 0, 0, 0, 0, 0, 0, 87, 0, 88, 0,
1294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1295 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1296 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1297 0, 0, 0, 0, 0, 181, 0, 0, 0, 0,
1298 0, 182, 183, 184, 185, 0, 0, 0, 0, 0,
1299 0, 0, 0, 0, 0, 0, 186, 187, 15, 16,
1300 17, 18, 19, 20, 163, 164, 165, 0, 166, 167,
1301 168, 169, 170, 171, 172, 21, 22, 23, 24, 25,
1302 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1303 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1304 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1305 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1306 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1307 173, 117, 75, 118, 174, 175, 176, 177, 178, 0,
1308 0, 179, 180, 0, 0, 0, 0, 0, 0, 0,
1309 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1310 76, 77, 78, 79, 0, 80, 0, 0, 0, 0,
1311 0, 0, 0, 0, 0, 0, 0, 0, 86, 0,
1312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1313 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1315 0, 0, 87, 0, 88, 0, 0, 0, 0, 0,
1316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1317 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1318 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1319 0, 181, 0, 0, 0, 0, 0, 182, 183, 184,
1320 185, 15, 16, 17, 18, 19, 20, 0, 0, 0,
1321 0, 0, 186, 131, 0, 0, 0, 0, 21, 22,
1322 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1323 33, 34, 35, 0, 36, 37, 38, 39, 40, 41,
1324 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1325 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1326 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1327 72, 73, 74, 0, 117, 75, 118, 174, 175, 176,
1328 177, 178, 0, 0, 179, 180, 0, 0, 0, 0,
1329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1330 0, 0, 0, 76, 77, 78, 79, 0, 80, 0,
1331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1332 0, 86, 0, 17, 18, 19, 20, 0, 0, 0,
1333 0, 0, 0, 0, 0, 0, 0, 0, 21, 22,
1334 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1335 0, 0, 0, 0, 0, 87, 0, 88, 0, 41,
1336 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1337 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1338 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1339 72, 73, 74, 0, 181, 75, 0, 0, 0, 0,
1340 182, 183, 184, 185, 0, 0, 0, 0, 0, 0,
1341 0, 0, 0, 0, 0, 186, 0, 0, 0, 0,
1342 0, 0, 0, 0, 77, 78, 79, 0, 0, 0,
1343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1344 0, 0, 17, 18, 19, 20, 0, 0, 0, 0,
1345 0, 0, 0, 0, 0, 0, 0, 21, 22, 23,
1346 24, 25, 26, 27, 28, 29, 30, 31, 32, 0,
1347 0, 0, 0, 0, 0, 87, 0, 88, 41, 42,
1348 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1349 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1350 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1351 73, 74, 0, 0, 75, 0, 0, 0, 0, 0,
1352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1353 0, 0, 0, 0, 0, 0, 0, 247, 0, 0,
1354 0, 0, 0, 77, 78, 79, 0, 0, 0, 0,
1355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1356 0, 17, 18, 19, 20, 0, 0, 0, 0, 0,
1357 0, 0, 0, 0, 0, 0, 21, 22, 23, 24,
1358 25, 26, 27, 28, 29, 30, 31, 32, 0, 0,
1359 0, 0, 0, 0, 87, 0, 88, 41, 42, 43,
1360 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1361 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1362 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1363 74, 0, 117, 75, 118, 174, 175, 176, 177, 178,
1364 0, 0, 179, 180, 0, 0, 0, 0, 0, 0,
1365 0, 0, 0, 0, 0, 0, 331, 0, 0, 0,
1366 0, 0, 77, 78, 79, 0, 0, 0, 0, 0,
1367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1369 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1370 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1371 0, 0, 0, 87, 0, 88, 0, 0, 0, 0,
1372 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1373 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1374 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1375 0, 0, 181, 0, 0, 0, 0, 0, 182, 183,
1376 184, 185, 15, 16, 17, 18, 19, 20, 0, 0,
1377 0, 0, 0, 260, 0, 0, 0, 0, 0, 21,
1378 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1379 32, 33, 34, 35, 0, 36, 37, 38, 39, 40,
1380 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1381 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1382 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1383 71, 72, 73, 74, 0, 117, 75, 118, 174, 175,
1384 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
1385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1386 0, 0, 0, 0, 342, 77, 78, 79, 0, 0,
1387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1388 0, 0, 86, 0, 0, 0, 0, 0, 0, 0,
1389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1390 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1391 0, 0, 0, 0, 0, 0, 87, 0, 88, 0,
1392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1395 17, 18, 19, 20, 0, 181, 0, 0, 0, 0,
1396 0, 182, 183, 184, 185, 21, 22, 23, 24, 25,
1397 26, 27, 28, 29, 30, 31, 32, 0, 0, 0,
1398 0, 0, 0, 0, 0, 0, 41, 42, 43, 44,
1399 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1400 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1401 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1402 0, 117, 75, 118, 174, 175, 176, 177, 178, 0,
1403 0, 179, 180, 0, 0, 0, 0, 0, 0, 0,
1404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1405 0, 77, 78, 79, 0, 0, 0, 0, 0, 0,
1406 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1410 0, 0, 87, 0, 88, 0, 0, 0, 0, 0,
1411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1413 0, 0, 0, 0, 0, 0, 17, 18, 19, 20,
1414 0, 181, 0, 0, 238, 0, 0, 182, 183, 184,
1415 185, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1416 30, 31, 32, 0, 0, 0, 0, 0, 0, 0,
1417 0, 0, 41, 42, 43, 44, 45, 46, 47, 48,
1418 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1419 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1420 69, 70, 71, 72, 73, 74, 0, 117, 75, 118,
1421 174, 175, 176, 177, 178, 0, 0, 179, 180, 0,
1422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1423 0, 0, 0, 0, 0, 0, 0, 77, 78, 79,
1424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1427 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1428 0, 0, 0, 0, 0, 0, 0, 0, 87, 0,
1429 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1432 0, 0, 17, 18, 19, 20, 0, 181, 0, 0,
1433 323, 0, 0, 182, 183, 184, 185, 21, 22, 23,
1434 24, 25, 26, 27, 28, 29, 30, 31, 32, 0,
1435 0, 0, 0, 0, 0, 0, 0, 0, 41, 42,
1436 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1437 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1438 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1439 73, 74, 0, 117, 75, 118, 174, 175, 176, 177,
1440 178, 0, 0, 179, 180, 0, 0, 0, 0, 0,
1441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1442 0, 0, 0, 77, 78, 79, 0, 0, 0, 0,
1443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1447 0, 0, 0, 0, 87, 0, 88, 0, 0, 0,
1448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1450 0, 0, 0, 0, 0, 0, 0, 0, 17, 18,
1451 19, 20, 0, 181, 0, 0, 380, 0, 0, 182,
1452 183, 184, 185, 21, 22, 23, 24, 25, 26, 27,
1453 28, 29, 30, 31, 32, 0, 0, 0, 0, 0,
1454 0, 0, 0, 0, 41, 42, 43, 44, 45, 46,
1455 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1456 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1457 67, 68, 69, 70, 71, 72, 73, 74, 0, 117,
1458 75, 118, 174, 175, 176, 177, 178, 0, 0, 179,
1459 180, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1460 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,
1461 78, 79, 0, 0, 0, 0, 0, 0, 0, 0,
1462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1466 87, 0, 88, 0, 0, 0, 0, 0, 0, 0,
1467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1469 0, 0, 0, 0, 17, 18, 19, 20, 0, 181,
1470 0, 0, 0, 0, 0, 182, 183, 184, 185, 21,
1471 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1472 32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1473 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1474 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1475 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1476 71, 72, 73, 278, 0, 117, 75, 118, 174, 175,
1477 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
1478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1479 0, 0, 0, 0, 0, 77, 78, 79, 0, 0,
1480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1484 0, 0, 0, 0, 0, 0, 87, 0, 88, 0,
1485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1488 17, 18, 19, 20, 0, 181, 0, 0, 0, 0,
1489 0, 182, 183, 184, 185, 21, 22, 23, 24, 25,
1490 26, 27, 28, 29, 30, 31, 32, 0, 0, 0,
1491 0, 0, 0, 0, 0, 0, 41, 42, 43, 44,
1492 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1493 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1494 65, 66, 67, 68, 69, 70, 71, 72, 73, 401,
1495 0, 117, 75, 118, 174, 175, 176, 177, 178, 0,
1496 0, 179, 180, 0, 0, 0, 0, 0, 0, 0,
1497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1498 0, 77, 78, 79, 0, 0, 0, 0, 0, 0,
1499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1503 0, 0, 87, 0, 88, 0, 0, 0, 0, 0,
1504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1506 0, 0, 0, 0, 15, 16, 17, 18, 19, 20,
1507 0, 181, 0, 0, 0, 0, 0, 182, 183, 184,
1508 185, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1509 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
1510 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1511 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1512 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1513 69, 70, 71, 72, 73, 74, 0, 0, 75, 0,
1514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1516 0, 0, 0, 0, 0, 0, 76, 77, 78, 79,
1517 0, 80, 0, 0, 0, 0, 0, 0, 0, 81,
1518 82, 83, 84, 85, 86, 17, 18, 19, 20, 0,
1519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1520 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1521 31, 32, 0, 0, 0, 0, 0, 0, 87, 0,
1522 88, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1523 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1524 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1525 70, 71, 72, 73, 74, 0, 0, 75, 17, 18,
1526 19, 20, 0, 0, 0, 0, 0, 0, 0, 0,
1527 0, 0, 0, 21, 22, 23, 24, 25, 26, 27,
1528 28, 29, 30, 31, 32, 0, 77, 78, 79, 0,
1529 0, 0, 0, 0, 41, 42, 43, 44, 45, 46,
1530 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1531 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1532 67, 68, 69, 70, 71, 72, 73, 74, 0, 0,
1533 75, 0, 0, 0, 0, 0, 0, 87, 0, 88,
1534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1541 87, 0, 88
1544 static const yytype_int16 yycheck[] =
1546 9, 8, 76, 76, 93, 169, 165, 171, 155, 151,
1547 235, 76, 77, 78, 76, 86, 87, 181, 88, 89,
1548 198, 198, 4, 265, 322, 99, 100, 3, 4, 394,
1549 9, 9, 201, 201, 217, 218, 98, 80, 216, 216,
1550 107, 33, 34, 84, 85, 37, 120, 412, 217, 217,
1551 151, 33, 34, 35, 111, 122, 32, 33, 34, 4,
1552 36, 37, 0, 222, 201, 115, 73, 201, 95, 96,
1553 97, 98, 99, 100, 101, 102, 103, 104, 179, 180,
1554 217, 90, 112, 217, 115, 383, 201, 115, 33, 34,
1555 35, 98, 101, 235, 258, 337, 321, 197, 262, 200,
1556 215, 265, 249, 328, 111, 201, 115, 405, 114, 273,
1557 408, 90, 90, 197, 202, 203, 197, 201, 416, 215,
1558 201, 115, 131, 90, 91, 214, 424, 198, 115, 200,
1559 115, 140, 3, 4, 235, 142, 236, 197, 197, 209,
1560 210, 201, 201, 76, 77, 78, 155, 154, 157, 313,
1561 197, 197, 196, 218, 379, 201, 165, 106, 107, 108,
1562 197, 32, 33, 34, 201, 36, 37, 38, 39, 40,
1563 218, 197, 201, 337, 198, 201, 196, 277, 196, 321,
1564 301, 302, 303, 304, 297, 298, 328, 115, 347, 216,
1565 299, 300, 292, 294, 295, 296, 297, 298, 299, 300,
1566 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
1567 311, 312, 274, 222, 314, 197, 76, 77, 78, 196,
1568 321, 217, 322, 387, 233, 232, 216, 328, 217, 3,
1569 4, 217, 391, 33, 34, 35, 196, 379, 196, 196,
1570 249, 206, 207, 208, 305, 306, 217, 411, 257, 215,
1571 196, 219, 196, 212, 197, 355, 265, 196, 32, 33,
1572 34, 270, 36, 37, 38, 39, 40, 274, 342, 342,
1573 429, 211, 213, 92, 94, 217, 196, 199, 379, 198,
1574 75, 80, 197, 383, 198, 216, 199, 196, 199, 201,
1575 197, 196, 216, 197, 217, 216, 199, 199, 197, 197,
1576 400, 218, 76, 403, 78, 405, 216, 199, 408, 12,
1577 216, 308, 307, 311, 141, 233, 416, 217, 309, 312,
1578 134, 253, 329, 80, 424, 233, 310, 157, 337, 329,
1579 257, 92, 412, 270, 392, 337, 90, 344, 347, -1,
1580 -1, 257, -1, -1, -1, -1, -1, -1, -1, -1,
1581 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1582 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1583 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1584 -1, -1, 391, -1, -1, 394, -1, -1, -1, -1,
1585 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1586 -1, -1, -1, 412, -1, -1, -1, -1, -1, -1,
1587 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1588 429, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1589 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1590 32, 33, 34, -1, 36, 37, 38, 39, 40, 41,
1591 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1592 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1593 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1594 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1595 82, 83, -1, -1, 86, 87, -1, -1, -1, -1,
1596 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1597 -1, -1, -1, 105, 106, 107, 108, -1, 110, -1,
1598 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1599 -1, 123, -1, -1, -1, -1, -1, -1, -1, -1,
1600 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1601 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1602 -1, -1, -1, -1, -1, 157, -1, 159, -1, -1,
1603 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1604 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1605 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1606 -1, -1, -1, -1, 196, -1, -1, -1, -1, -1,
1607 202, 203, 204, 205, -1, -1, -1, -1, -1, -1,
1608 -1, -1, -1, -1, -1, 217, 218, 219, 3, 4,
1609 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
1610 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1611 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1612 -1, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1613 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1614 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1615 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1616 75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
1617 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1,
1618 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1619 105, 106, 107, 108, -1, 110, -1, -1, -1, -1,
1620 -1, -1, -1, -1, -1, -1, -1, -1, 123, -1,
1621 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1622 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1623 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1624 -1, -1, 157, -1, 159, -1, -1, -1, -1, -1,
1625 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1626 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1627 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1628 -1, 196, -1, -1, -1, -1, -1, 202, 203, 204,
1629 205, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1630 -1, -1, 217, 218, 219, 3, 4, 5, 6, 7,
1631 8, 9, 10, 11, -1, 13, 14, 15, 16, 17,
1632 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1633 28, 29, 30, 31, 32, 33, 34, -1, 36, 37,
1634 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1635 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1636 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1637 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1638 78, 79, 80, 81, 82, 83, -1, -1, 86, 87,
1639 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1640 -1, -1, -1, -1, -1, -1, -1, 105, 106, 107,
1641 108, -1, 110, -1, -1, -1, -1, -1, -1, -1,
1642 -1, -1, -1, -1, -1, 123, -1, -1, -1, -1,
1643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1644 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1645 -1, -1, -1, -1, -1, -1, -1, -1, -1, 157,
1646 -1, 159, -1, -1, -1, -1, -1, -1, -1, -1,
1647 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1648 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1649 -1, -1, -1, -1, -1, -1, -1, -1, 196, -1,
1650 -1, -1, -1, -1, 202, 203, 204, 205, -1, -1,
1651 -1, -1, -1, -1, -1, -1, -1, -1, -1, 217,
1652 218, 219, 3, 4, 5, 6, 7, 8, 9, 10,
1653 11, -1, 13, 14, 15, 16, 17, 18, 19, 20,
1654 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1655 31, 32, 33, 34, -1, 36, 37, 38, 39, 40,
1656 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1657 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1658 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1659 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1660 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
1661 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1662 -1, -1, -1, -1, 105, 106, 107, 108, -1, 110,
1663 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1664 -1, -1, 123, -1, -1, -1, -1, -1, -1, -1,
1665 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1666 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1667 -1, -1, -1, -1, -1, -1, 157, -1, 159, -1,
1668 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1669 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1670 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1671 -1, -1, -1, -1, -1, 196, -1, -1, -1, -1,
1672 -1, 202, 203, 204, 205, -1, -1, -1, -1, -1,
1673 -1, -1, -1, -1, -1, -1, 217, 218, 3, 4,
1674 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
1675 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1676 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1677 -1, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1678 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1679 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1680 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1681 75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
1682 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1,
1683 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1684 105, 106, 107, 108, -1, 110, -1, -1, -1, -1,
1685 -1, -1, -1, -1, -1, -1, -1, -1, 123, -1,
1686 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1687 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1688 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1689 -1, -1, 157, -1, 159, -1, -1, -1, -1, -1,
1690 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1691 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1692 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1693 -1, 196, -1, -1, -1, -1, -1, 202, 203, 204,
1694 205, 3, 4, 5, 6, 7, 8, -1, -1, -1,
1695 -1, -1, 217, 218, -1, -1, -1, -1, 20, 21,
1696 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1697 32, 33, 34, -1, 36, 37, 38, 39, 40, 41,
1698 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1699 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1700 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1701 72, 73, 74, -1, 76, 77, 78, 79, 80, 81,
1702 82, 83, -1, -1, 86, 87, -1, -1, -1, -1,
1703 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1704 -1, -1, -1, 105, 106, 107, 108, -1, 110, -1,
1705 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1706 -1, 123, -1, 5, 6, 7, 8, -1, -1, -1,
1707 -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
1708 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1709 -1, -1, -1, -1, -1, 157, -1, 159, -1, 41,
1710 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1711 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1712 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1713 72, 73, 74, -1, 196, 77, -1, -1, -1, -1,
1714 202, 203, 204, 205, -1, -1, -1, -1, -1, -1,
1715 -1, -1, -1, -1, -1, 217, -1, -1, -1, -1,
1716 -1, -1, -1, -1, 106, 107, 108, -1, -1, -1,
1717 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1718 -1, -1, 5, 6, 7, 8, -1, -1, -1, -1,
1719 -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
1720 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
1721 -1, -1, -1, -1, -1, 157, -1, 159, 41, 42,
1722 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1723 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1724 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1725 73, 74, -1, -1, 77, -1, -1, -1, -1, -1,
1726 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1727 -1, -1, -1, -1, -1, -1, -1, 219, -1, -1,
1728 -1, -1, -1, 106, 107, 108, -1, -1, -1, -1,
1729 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1730 -1, 5, 6, 7, 8, -1, -1, -1, -1, -1,
1731 -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
1732 24, 25, 26, 27, 28, 29, 30, 31, -1, -1,
1733 -1, -1, -1, -1, 157, -1, 159, 41, 42, 43,
1734 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1735 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1736 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1737 74, -1, 76, 77, 78, 79, 80, 81, 82, 83,
1738 -1, -1, 86, 87, -1, -1, -1, -1, -1, -1,
1739 -1, -1, -1, -1, -1, -1, 219, -1, -1, -1,
1740 -1, -1, 106, 107, 108, -1, -1, -1, -1, -1,
1741 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1742 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1743 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1744 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1745 -1, -1, -1, 157, -1, 159, -1, -1, -1, -1,
1746 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1748 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1749 -1, -1, 196, -1, -1, -1, -1, -1, 202, 203,
1750 204, 205, 3, 4, 5, 6, 7, 8, -1, -1,
1751 -1, -1, -1, 217, -1, -1, -1, -1, -1, 20,
1752 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1753 31, 32, 33, 34, -1, 36, 37, 38, 39, 40,
1754 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1755 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1756 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1757 71, 72, 73, 74, -1, 76, 77, 78, 79, 80,
1758 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
1759 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1760 -1, -1, -1, -1, 105, 106, 107, 108, -1, -1,
1761 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1762 -1, -1, 123, -1, -1, -1, -1, -1, -1, -1,
1763 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1764 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1765 -1, -1, -1, -1, -1, -1, 157, -1, 159, -1,
1766 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1767 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1768 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1769 5, 6, 7, 8, -1, 196, -1, -1, -1, -1,
1770 -1, 202, 203, 204, 205, 20, 21, 22, 23, 24,
1771 25, 26, 27, 28, 29, 30, 31, -1, -1, -1,
1772 -1, -1, -1, -1, -1, -1, 41, 42, 43, 44,
1773 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1774 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1775 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1776 -1, 76, 77, 78, 79, 80, 81, 82, 83, -1,
1777 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1,
1778 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1779 -1, 106, 107, 108, -1, -1, -1, -1, -1, -1,
1780 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1781 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1782 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1783 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1784 -1, -1, 157, -1, 159, -1, -1, -1, -1, -1,
1785 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1786 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1787 -1, -1, -1, -1, -1, -1, 5, 6, 7, 8,
1788 -1, 196, -1, -1, 199, -1, -1, 202, 203, 204,
1789 205, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1790 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
1791 -1, -1, 41, 42, 43, 44, 45, 46, 47, 48,
1792 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1793 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1794 69, 70, 71, 72, 73, 74, -1, 76, 77, 78,
1795 79, 80, 81, 82, 83, -1, -1, 86, 87, -1,
1796 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1797 -1, -1, -1, -1, -1, -1, -1, 106, 107, 108,
1798 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1799 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1800 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1801 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1802 -1, -1, -1, -1, -1, -1, -1, -1, 157, -1,
1803 159, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1804 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1805 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1806 -1, -1, 5, 6, 7, 8, -1, 196, -1, -1,
1807 199, -1, -1, 202, 203, 204, 205, 20, 21, 22,
1808 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
1809 -1, -1, -1, -1, -1, -1, -1, -1, 41, 42,
1810 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1811 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1812 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1813 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
1814 83, -1, -1, 86, 87, -1, -1, -1, -1, -1,
1815 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1816 -1, -1, -1, 106, 107, 108, -1, -1, -1, -1,
1817 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1818 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1819 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1820 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1821 -1, -1, -1, -1, 157, -1, 159, -1, -1, -1,
1822 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1823 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1824 -1, -1, -1, -1, -1, -1, -1, -1, 5, 6,
1825 7, 8, -1, 196, -1, -1, 199, -1, -1, 202,
1826 203, 204, 205, 20, 21, 22, 23, 24, 25, 26,
1827 27, 28, 29, 30, 31, -1, -1, -1, -1, -1,
1828 -1, -1, -1, -1, 41, 42, 43, 44, 45, 46,
1829 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1830 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1831 67, 68, 69, 70, 71, 72, 73, 74, -1, 76,
1832 77, 78, 79, 80, 81, 82, 83, -1, -1, 86,
1833 87, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1834 -1, -1, -1, -1, -1, -1, -1, -1, -1, 106,
1835 107, 108, -1, -1, -1, -1, -1, -1, -1, -1,
1836 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1837 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1838 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1839 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1840 157, -1, 159, -1, -1, -1, -1, -1, -1, -1,
1841 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1842 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1843 -1, -1, -1, -1, 5, 6, 7, 8, -1, 196,
1844 -1, -1, -1, -1, -1, 202, 203, 204, 205, 20,
1845 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1846 31, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1847 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1848 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1849 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1850 71, 72, 73, 74, -1, 76, 77, 78, 79, 80,
1851 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
1852 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1853 -1, -1, -1, -1, -1, 106, 107, 108, -1, -1,
1854 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1855 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1856 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1857 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1858 -1, -1, -1, -1, -1, -1, 157, -1, 159, -1,
1859 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1860 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1861 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1862 5, 6, 7, 8, -1, 196, -1, -1, -1, -1,
1863 -1, 202, 203, 204, 205, 20, 21, 22, 23, 24,
1864 25, 26, 27, 28, 29, 30, 31, -1, -1, -1,
1865 -1, -1, -1, -1, -1, -1, 41, 42, 43, 44,
1866 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1867 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1868 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1869 -1, 76, 77, 78, 79, 80, 81, 82, 83, -1,
1870 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1,
1871 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1872 -1, 106, 107, 108, -1, -1, -1, -1, -1, -1,
1873 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1874 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1875 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1876 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1877 -1, -1, 157, -1, 159, -1, -1, -1, -1, -1,
1878 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1879 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1880 -1, -1, -1, -1, 3, 4, 5, 6, 7, 8,
1881 -1, 196, -1, -1, -1, -1, -1, 202, 203, 204,
1882 205, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1883 29, 30, 31, 32, 33, 34, -1, 36, 37, 38,
1884 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1885 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1886 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1887 69, 70, 71, 72, 73, 74, -1, -1, 77, -1,
1888 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1889 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1890 -1, -1, -1, -1, -1, -1, 105, 106, 107, 108,
1891 -1, 110, -1, -1, -1, -1, -1, -1, -1, 118,
1892 119, 120, 121, 122, 123, 5, 6, 7, 8, -1,
1893 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1894 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1895 30, 31, -1, -1, -1, -1, -1, -1, 157, -1,
1896 159, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1897 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1898 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1899 70, 71, 72, 73, 74, -1, -1, 77, 5, 6,
1900 7, 8, -1, -1, -1, -1, -1, -1, -1, -1,
1901 -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
1902 27, 28, 29, 30, 31, -1, 106, 107, 108, -1,
1903 -1, -1, -1, -1, 41, 42, 43, 44, 45, 46,
1904 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1905 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1906 67, 68, 69, 70, 71, 72, 73, 74, -1, -1,
1907 77, -1, -1, -1, -1, -1, -1, 157, -1, 159,
1908 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1909 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1910 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1911 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1912 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1913 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1914 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1915 157, -1, 159
1918 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1919 symbol of state STATE-NUM. */
1920 static const yytype_uint16 yystos[] =
1922 0, 111, 221, 223, 80, 0, 225, 115, 112, 222,
1923 227, 76, 77, 78, 226, 3, 4, 5, 6, 7,
1924 8, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1925 29, 30, 31, 32, 33, 34, 36, 37, 38, 39,
1926 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1927 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1928 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1929 70, 71, 72, 73, 74, 77, 105, 106, 107, 108,
1930 110, 118, 119, 120, 121, 122, 123, 157, 159, 224,
1931 228, 262, 263, 264, 265, 266, 271, 272, 273, 274,
1932 277, 279, 280, 281, 282, 283, 284, 285, 286, 311,
1933 312, 114, 33, 34, 37, 218, 226, 76, 78, 229,
1934 277, 280, 285, 115, 115, 115, 115, 115, 196, 311,
1935 217, 218, 298, 197, 201, 4, 33, 34, 35, 268,
1936 269, 278, 201, 217, 76, 78, 226, 229, 280, 280,
1937 281, 198, 282, 226, 281, 287, 288, 218, 280, 282,
1938 226, 275, 276, 9, 10, 11, 13, 14, 15, 16,
1939 17, 18, 19, 75, 79, 80, 81, 82, 83, 86,
1940 87, 196, 202, 203, 204, 205, 217, 218, 219, 229,
1941 230, 231, 233, 234, 235, 236, 237, 238, 239, 244,
1942 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1943 255, 256, 257, 258, 260, 262, 263, 281, 292, 293,
1944 294, 295, 299, 300, 301, 304, 305, 306, 310, 268,
1945 267, 270, 281, 269, 226, 198, 216, 196, 199, 244,
1946 257, 261, 281, 115, 226, 289, 290, 219, 288, 287,
1947 217, 216, 197, 201, 217, 217, 293, 196, 196, 217,
1948 217, 260, 196, 260, 215, 196, 244, 244, 260, 219,
1949 296, 86, 87, 198, 200, 197, 197, 201, 74, 258,
1950 196, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1951 104, 216, 259, 244, 206, 207, 208, 202, 203, 84,
1952 85, 88, 89, 209, 210, 90, 91, 211, 212, 213,
1953 92, 94, 93, 214, 201, 217, 219, 293, 226, 267,
1954 270, 198, 216, 199, 261, 258, 291, 199, 198, 201,
1955 217, 219, 80, 276, 75, 292, 300, 307, 260, 217,
1956 260, 215, 105, 260, 273, 303, 197, 299, 232, 260,
1957 226, 229, 240, 241, 242, 243, 258, 258, 244, 244,
1958 244, 246, 246, 247, 247, 248, 248, 248, 248, 249,
1959 249, 250, 251, 252, 253, 254, 255, 260, 258, 198,
1960 199, 261, 291, 216, 199, 261, 290, 196, 303, 308,
1961 309, 197, 197, 226, 197, 219, 199, 196, 197, 197,
1962 201, 74, 258, 215, 261, 216, 199, 291, 216, 199,
1963 260, 217, 197, 293, 302, 295, 216, 294, 297, 298,
1964 258, 258, 199, 291, 216, 291, 197, 260, 297, 12,
1965 291, 291, 217, 293
1968 #define yyerrok (yyerrstatus = 0)
1969 #define yyclearin (yychar = YYEMPTY)
1970 #define YYEMPTY (-2)
1971 #define YYEOF 0
1973 #define YYACCEPT goto yyacceptlab
1974 #define YYABORT goto yyabortlab
1975 #define YYERROR goto yyerrorlab
1978 /* Like YYERROR except do call yyerror. This remains here temporarily
1979 to ease the transition to the new meaning of YYERROR, for GCC.
1980 Once GCC version 2 has supplanted version 1, this can go. However,
1981 YYFAIL appears to be in use. Nevertheless, it is formally deprecated
1982 in Bison 2.4.2's NEWS entry, where a plan to phase it out is
1983 discussed. */
1985 #define YYFAIL goto yyerrlab
1986 #if defined YYFAIL
1987 /* This is here to suppress warnings from the GCC cpp's
1988 -Wunused-macros. Normally we don't worry about that warning, but
1989 some users do, and we want to make it easy for users to remove
1990 YYFAIL uses, which will produce warnings from Bison 2.5. */
1991 #endif
1993 #define YYRECOVERING() (!!yyerrstatus)
1995 #define YYBACKUP(Token, Value) \
1996 do \
1997 if (yychar == YYEMPTY && yylen == 1) \
1999 yychar = (Token); \
2000 yylval = (Value); \
2001 yytoken = YYTRANSLATE (yychar); \
2002 YYPOPSTACK (1); \
2003 goto yybackup; \
2005 else \
2007 yyerror (&yylloc, state, YY_("syntax error: cannot back up")); \
2008 YYERROR; \
2010 while (YYID (0))
2013 #define YYTERROR 1
2014 #define YYERRCODE 256
2017 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2018 If N is 0, then set CURRENT to the empty location which ends
2019 the previous symbol: RHS[0] (always defined). */
2021 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2022 #ifndef YYLLOC_DEFAULT
2023 # define YYLLOC_DEFAULT(Current, Rhs, N) \
2024 do \
2025 if (YYID (N)) \
2027 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
2028 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
2029 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
2030 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
2032 else \
2034 (Current).first_line = (Current).last_line = \
2035 YYRHSLOC (Rhs, 0).last_line; \
2036 (Current).first_column = (Current).last_column = \
2037 YYRHSLOC (Rhs, 0).last_column; \
2039 while (YYID (0))
2040 #endif
2043 /* YY_LOCATION_PRINT -- Print the location on the stream.
2044 This macro was not mandated originally: define only if we know
2045 we won't break user code: when these are the locations we know. */
2047 #ifndef YY_LOCATION_PRINT
2048 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2049 # define YY_LOCATION_PRINT(File, Loc) \
2050 fprintf (File, "%d.%d-%d.%d", \
2051 (Loc).first_line, (Loc).first_column, \
2052 (Loc).last_line, (Loc).last_column)
2053 # else
2054 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2055 # endif
2056 #endif
2059 /* YYLEX -- calling `yylex' with the right arguments. */
2061 #ifdef YYLEX_PARAM
2062 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
2063 #else
2064 # define YYLEX yylex (&yylval, &yylloc, scanner)
2065 #endif
2067 /* Enable debugging if requested. */
2068 #if YYDEBUG
2070 # ifndef YYFPRINTF
2071 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2072 # define YYFPRINTF fprintf
2073 # endif
2075 # define YYDPRINTF(Args) \
2076 do { \
2077 if (yydebug) \
2078 YYFPRINTF Args; \
2079 } while (YYID (0))
2081 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2082 do { \
2083 if (yydebug) \
2085 YYFPRINTF (stderr, "%s ", Title); \
2086 yy_symbol_print (stderr, \
2087 Type, Value, Location, state); \
2088 YYFPRINTF (stderr, "\n"); \
2090 } while (YYID (0))
2093 /*--------------------------------.
2094 | Print this symbol on YYOUTPUT. |
2095 `--------------------------------*/
2097 /*ARGSUSED*/
2098 #if (defined __STDC__ || defined __C99__FUNC__ \
2099 || defined __cplusplus || defined _MSC_VER)
2100 static void
2101 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, struct _mesa_glsl_parse_state *state)
2102 #else
2103 static void
2104 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, state)
2105 FILE *yyoutput;
2106 int yytype;
2107 YYSTYPE const * const yyvaluep;
2108 YYLTYPE const * const yylocationp;
2109 struct _mesa_glsl_parse_state *state;
2110 #endif
2112 if (!yyvaluep)
2113 return;
2114 YYUSE (yylocationp);
2115 YYUSE (state);
2116 # ifdef YYPRINT
2117 if (yytype < YYNTOKENS)
2118 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2119 # else
2120 YYUSE (yyoutput);
2121 # endif
2122 switch (yytype)
2124 default:
2125 break;
2130 /*--------------------------------.
2131 | Print this symbol on YYOUTPUT. |
2132 `--------------------------------*/
2134 #if (defined __STDC__ || defined __C99__FUNC__ \
2135 || defined __cplusplus || defined _MSC_VER)
2136 static void
2137 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, struct _mesa_glsl_parse_state *state)
2138 #else
2139 static void
2140 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, state)
2141 FILE *yyoutput;
2142 int yytype;
2143 YYSTYPE const * const yyvaluep;
2144 YYLTYPE const * const yylocationp;
2145 struct _mesa_glsl_parse_state *state;
2146 #endif
2148 if (yytype < YYNTOKENS)
2149 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2150 else
2151 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2153 YY_LOCATION_PRINT (yyoutput, *yylocationp);
2154 YYFPRINTF (yyoutput, ": ");
2155 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, state);
2156 YYFPRINTF (yyoutput, ")");
2159 /*------------------------------------------------------------------.
2160 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2161 | TOP (included). |
2162 `------------------------------------------------------------------*/
2164 #if (defined __STDC__ || defined __C99__FUNC__ \
2165 || defined __cplusplus || defined _MSC_VER)
2166 static void
2167 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2168 #else
2169 static void
2170 yy_stack_print (yybottom, yytop)
2171 yytype_int16 *yybottom;
2172 yytype_int16 *yytop;
2173 #endif
2175 YYFPRINTF (stderr, "Stack now");
2176 for (; yybottom <= yytop; yybottom++)
2178 int yybot = *yybottom;
2179 YYFPRINTF (stderr, " %d", yybot);
2181 YYFPRINTF (stderr, "\n");
2184 # define YY_STACK_PRINT(Bottom, Top) \
2185 do { \
2186 if (yydebug) \
2187 yy_stack_print ((Bottom), (Top)); \
2188 } while (YYID (0))
2191 /*------------------------------------------------.
2192 | Report that the YYRULE is going to be reduced. |
2193 `------------------------------------------------*/
2195 #if (defined __STDC__ || defined __C99__FUNC__ \
2196 || defined __cplusplus || defined _MSC_VER)
2197 static void
2198 yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, struct _mesa_glsl_parse_state *state)
2199 #else
2200 static void
2201 yy_reduce_print (yyvsp, yylsp, yyrule, state)
2202 YYSTYPE *yyvsp;
2203 YYLTYPE *yylsp;
2204 int yyrule;
2205 struct _mesa_glsl_parse_state *state;
2206 #endif
2208 int yynrhs = yyr2[yyrule];
2209 int yyi;
2210 unsigned long int yylno = yyrline[yyrule];
2211 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2212 yyrule - 1, yylno);
2213 /* The symbols being reduced. */
2214 for (yyi = 0; yyi < yynrhs; yyi++)
2216 YYFPRINTF (stderr, " $%d = ", yyi + 1);
2217 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2218 &(yyvsp[(yyi + 1) - (yynrhs)])
2219 , &(yylsp[(yyi + 1) - (yynrhs)]) , state);
2220 YYFPRINTF (stderr, "\n");
2224 # define YY_REDUCE_PRINT(Rule) \
2225 do { \
2226 if (yydebug) \
2227 yy_reduce_print (yyvsp, yylsp, Rule, state); \
2228 } while (YYID (0))
2230 /* Nonzero means print parse trace. It is left uninitialized so that
2231 multiple parsers can coexist. */
2232 int yydebug;
2233 #else /* !YYDEBUG */
2234 # define YYDPRINTF(Args)
2235 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2236 # define YY_STACK_PRINT(Bottom, Top)
2237 # define YY_REDUCE_PRINT(Rule)
2238 #endif /* !YYDEBUG */
2241 /* YYINITDEPTH -- initial size of the parser's stacks. */
2242 #ifndef YYINITDEPTH
2243 # define YYINITDEPTH 200
2244 #endif
2246 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2247 if the built-in stack extension method is used).
2249 Do not make this value too large; the results are undefined if
2250 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2251 evaluated with infinite-precision integer arithmetic. */
2253 #ifndef YYMAXDEPTH
2254 # define YYMAXDEPTH 10000
2255 #endif
2259 #if YYERROR_VERBOSE
2261 # ifndef yystrlen
2262 # if defined __GLIBC__ && defined _STRING_H
2263 # define yystrlen strlen
2264 # else
2265 /* Return the length of YYSTR. */
2266 #if (defined __STDC__ || defined __C99__FUNC__ \
2267 || defined __cplusplus || defined _MSC_VER)
2268 static YYSIZE_T
2269 yystrlen (const char *yystr)
2270 #else
2271 static YYSIZE_T
2272 yystrlen (yystr)
2273 const char *yystr;
2274 #endif
2276 YYSIZE_T yylen;
2277 for (yylen = 0; yystr[yylen]; yylen++)
2278 continue;
2279 return yylen;
2281 # endif
2282 # endif
2284 # ifndef yystpcpy
2285 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2286 # define yystpcpy stpcpy
2287 # else
2288 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2289 YYDEST. */
2290 #if (defined __STDC__ || defined __C99__FUNC__ \
2291 || defined __cplusplus || defined _MSC_VER)
2292 static char *
2293 yystpcpy (char *yydest, const char *yysrc)
2294 #else
2295 static char *
2296 yystpcpy (yydest, yysrc)
2297 char *yydest;
2298 const char *yysrc;
2299 #endif
2301 char *yyd = yydest;
2302 const char *yys = yysrc;
2304 while ((*yyd++ = *yys++) != '\0')
2305 continue;
2307 return yyd - 1;
2309 # endif
2310 # endif
2312 # ifndef yytnamerr
2313 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2314 quotes and backslashes, so that it's suitable for yyerror. The
2315 heuristic is that double-quoting is unnecessary unless the string
2316 contains an apostrophe, a comma, or backslash (other than
2317 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2318 null, do not copy; instead, return the length of what the result
2319 would have been. */
2320 static YYSIZE_T
2321 yytnamerr (char *yyres, const char *yystr)
2323 if (*yystr == '"')
2325 YYSIZE_T yyn = 0;
2326 char const *yyp = yystr;
2328 for (;;)
2329 switch (*++yyp)
2331 case '\'':
2332 case ',':
2333 goto do_not_strip_quotes;
2335 case '\\':
2336 if (*++yyp != '\\')
2337 goto do_not_strip_quotes;
2338 /* Fall through. */
2339 default:
2340 if (yyres)
2341 yyres[yyn] = *yyp;
2342 yyn++;
2343 break;
2345 case '"':
2346 if (yyres)
2347 yyres[yyn] = '\0';
2348 return yyn;
2350 do_not_strip_quotes: ;
2353 if (! yyres)
2354 return yystrlen (yystr);
2356 return yystpcpy (yyres, yystr) - yyres;
2358 # endif
2360 /* Copy into YYRESULT an error message about the unexpected token
2361 YYCHAR while in state YYSTATE. Return the number of bytes copied,
2362 including the terminating null byte. If YYRESULT is null, do not
2363 copy anything; just return the number of bytes that would be
2364 copied. As a special case, return 0 if an ordinary "syntax error"
2365 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
2366 size calculation. */
2367 static YYSIZE_T
2368 yysyntax_error (char *yyresult, int yystate, int yychar)
2370 int yyn = yypact[yystate];
2372 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
2373 return 0;
2374 else
2376 int yytype = YYTRANSLATE (yychar);
2377 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
2378 YYSIZE_T yysize = yysize0;
2379 YYSIZE_T yysize1;
2380 int yysize_overflow = 0;
2381 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2382 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2383 int yyx;
2385 # if 0
2386 /* This is so xgettext sees the translatable formats that are
2387 constructed on the fly. */
2388 YY_("syntax error, unexpected %s");
2389 YY_("syntax error, unexpected %s, expecting %s");
2390 YY_("syntax error, unexpected %s, expecting %s or %s");
2391 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2392 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2393 # endif
2394 char *yyfmt;
2395 char const *yyf;
2396 static char const yyunexpected[] = "syntax error, unexpected %s";
2397 static char const yyexpecting[] = ", expecting %s";
2398 static char const yyor[] = " or %s";
2399 char yyformat[sizeof yyunexpected
2400 + sizeof yyexpecting - 1
2401 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
2402 * (sizeof yyor - 1))];
2403 char const *yyprefix = yyexpecting;
2405 /* Start YYX at -YYN if negative to avoid negative indexes in
2406 YYCHECK. */
2407 int yyxbegin = yyn < 0 ? -yyn : 0;
2409 /* Stay within bounds of both yycheck and yytname. */
2410 int yychecklim = YYLAST - yyn + 1;
2411 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2412 int yycount = 1;
2414 yyarg[0] = yytname[yytype];
2415 yyfmt = yystpcpy (yyformat, yyunexpected);
2417 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2418 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2420 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2422 yycount = 1;
2423 yysize = yysize0;
2424 yyformat[sizeof yyunexpected - 1] = '\0';
2425 break;
2427 yyarg[yycount++] = yytname[yyx];
2428 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2429 yysize_overflow |= (yysize1 < yysize);
2430 yysize = yysize1;
2431 yyfmt = yystpcpy (yyfmt, yyprefix);
2432 yyprefix = yyor;
2435 yyf = YY_(yyformat);
2436 yysize1 = yysize + yystrlen (yyf);
2437 yysize_overflow |= (yysize1 < yysize);
2438 yysize = yysize1;
2440 if (yysize_overflow)
2441 return YYSIZE_MAXIMUM;
2443 if (yyresult)
2445 /* Avoid sprintf, as that infringes on the user's name space.
2446 Don't have undefined behavior even if the translation
2447 produced a string with the wrong number of "%s"s. */
2448 char *yyp = yyresult;
2449 int yyi = 0;
2450 while ((*yyp = *yyf) != '\0')
2452 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
2454 yyp += yytnamerr (yyp, yyarg[yyi++]);
2455 yyf += 2;
2457 else
2459 yyp++;
2460 yyf++;
2464 return yysize;
2467 #endif /* YYERROR_VERBOSE */
2470 /*-----------------------------------------------.
2471 | Release the memory associated to this symbol. |
2472 `-----------------------------------------------*/
2474 /*ARGSUSED*/
2475 #if (defined __STDC__ || defined __C99__FUNC__ \
2476 || defined __cplusplus || defined _MSC_VER)
2477 static void
2478 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, struct _mesa_glsl_parse_state *state)
2479 #else
2480 static void
2481 yydestruct (yymsg, yytype, yyvaluep, yylocationp, state)
2482 const char *yymsg;
2483 int yytype;
2484 YYSTYPE *yyvaluep;
2485 YYLTYPE *yylocationp;
2486 struct _mesa_glsl_parse_state *state;
2487 #endif
2489 YYUSE (yyvaluep);
2490 YYUSE (yylocationp);
2491 YYUSE (state);
2493 if (!yymsg)
2494 yymsg = "Deleting";
2495 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2497 switch (yytype)
2500 default:
2501 break;
2505 /* Prevent warnings from -Wmissing-prototypes. */
2506 #ifdef YYPARSE_PARAM
2507 #if defined __STDC__ || defined __cplusplus
2508 int yyparse (void *YYPARSE_PARAM);
2509 #else
2510 int yyparse ();
2511 #endif
2512 #else /* ! YYPARSE_PARAM */
2513 #if defined __STDC__ || defined __cplusplus
2514 int yyparse (struct _mesa_glsl_parse_state *state);
2515 #else
2516 int yyparse ();
2517 #endif
2518 #endif /* ! YYPARSE_PARAM */
2524 /*-------------------------.
2525 | yyparse or yypush_parse. |
2526 `-------------------------*/
2528 #ifdef YYPARSE_PARAM
2529 #if (defined __STDC__ || defined __C99__FUNC__ \
2530 || defined __cplusplus || defined _MSC_VER)
2532 yyparse (void *YYPARSE_PARAM)
2533 #else
2535 yyparse (YYPARSE_PARAM)
2536 void *YYPARSE_PARAM;
2537 #endif
2538 #else /* ! YYPARSE_PARAM */
2539 #if (defined __STDC__ || defined __C99__FUNC__ \
2540 || defined __cplusplus || defined _MSC_VER)
2542 yyparse (struct _mesa_glsl_parse_state *state)
2543 #else
2545 yyparse (state)
2546 struct _mesa_glsl_parse_state *state;
2547 #endif
2548 #endif
2550 /* The lookahead symbol. */
2551 int yychar;
2553 /* The semantic value of the lookahead symbol. */
2554 YYSTYPE yylval;
2556 /* Location data for the lookahead symbol. */
2557 YYLTYPE yylloc;
2559 /* Number of syntax errors so far. */
2560 int yynerrs;
2562 int yystate;
2563 /* Number of tokens to shift before error messages enabled. */
2564 int yyerrstatus;
2566 /* The stacks and their tools:
2567 `yyss': related to states.
2568 `yyvs': related to semantic values.
2569 `yyls': related to locations.
2571 Refer to the stacks thru separate pointers, to allow yyoverflow
2572 to reallocate them elsewhere. */
2574 /* The state stack. */
2575 yytype_int16 yyssa[YYINITDEPTH];
2576 yytype_int16 *yyss;
2577 yytype_int16 *yyssp;
2579 /* The semantic value stack. */
2580 YYSTYPE yyvsa[YYINITDEPTH];
2581 YYSTYPE *yyvs;
2582 YYSTYPE *yyvsp;
2584 /* The location stack. */
2585 YYLTYPE yylsa[YYINITDEPTH];
2586 YYLTYPE *yyls;
2587 YYLTYPE *yylsp;
2589 /* The locations where the error started and ended. */
2590 YYLTYPE yyerror_range[3];
2592 YYSIZE_T yystacksize;
2594 int yyn;
2595 int yyresult;
2596 /* Lookahead token as an internal (translated) token number. */
2597 int yytoken;
2598 /* The variables used to return semantic value and location from the
2599 action routines. */
2600 YYSTYPE yyval;
2601 YYLTYPE yyloc;
2603 #if YYERROR_VERBOSE
2604 /* Buffer for error messages, and its allocated size. */
2605 char yymsgbuf[128];
2606 char *yymsg = yymsgbuf;
2607 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
2608 #endif
2610 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2612 /* The number of symbols on the RHS of the reduced rule.
2613 Keep to zero when no symbol should be popped. */
2614 int yylen = 0;
2616 yytoken = 0;
2617 yyss = yyssa;
2618 yyvs = yyvsa;
2619 yyls = yylsa;
2620 yystacksize = YYINITDEPTH;
2622 YYDPRINTF ((stderr, "Starting parse\n"));
2624 yystate = 0;
2625 yyerrstatus = 0;
2626 yynerrs = 0;
2627 yychar = YYEMPTY; /* Cause a token to be read. */
2629 /* Initialize stack pointers.
2630 Waste one element of value and location stack
2631 so that they stay on the same level as the state stack.
2632 The wasted elements are never initialized. */
2633 yyssp = yyss;
2634 yyvsp = yyvs;
2635 yylsp = yyls;
2637 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2638 /* Initialize the default location before parsing starts. */
2639 yylloc.first_line = yylloc.last_line = 1;
2640 yylloc.first_column = yylloc.last_column = 1;
2641 #endif
2643 /* User initialization code. */
2645 /* Line 1251 of yacc.c */
2646 #line 41 "glsl_parser.yy"
2648 yylloc.first_line = 1;
2649 yylloc.first_column = 1;
2650 yylloc.last_line = 1;
2651 yylloc.last_column = 1;
2652 yylloc.source = 0;
2655 /* Line 1251 of yacc.c */
2656 #line 2657 "glsl_parser.cpp"
2657 yylsp[0] = yylloc;
2659 goto yysetstate;
2661 /*------------------------------------------------------------.
2662 | yynewstate -- Push a new state, which is found in yystate. |
2663 `------------------------------------------------------------*/
2664 yynewstate:
2665 /* In all cases, when you get here, the value and location stacks
2666 have just been pushed. So pushing a state here evens the stacks. */
2667 yyssp++;
2669 yysetstate:
2670 *yyssp = yystate;
2672 if (yyss + yystacksize - 1 <= yyssp)
2674 /* Get the current used size of the three stacks, in elements. */
2675 YYSIZE_T yysize = yyssp - yyss + 1;
2677 #ifdef yyoverflow
2679 /* Give user a chance to reallocate the stack. Use copies of
2680 these so that the &'s don't force the real ones into
2681 memory. */
2682 YYSTYPE *yyvs1 = yyvs;
2683 yytype_int16 *yyss1 = yyss;
2684 YYLTYPE *yyls1 = yyls;
2686 /* Each stack pointer address is followed by the size of the
2687 data in use in that stack, in bytes. This used to be a
2688 conditional around just the two extra args, but that might
2689 be undefined if yyoverflow is a macro. */
2690 yyoverflow (YY_("memory exhausted"),
2691 &yyss1, yysize * sizeof (*yyssp),
2692 &yyvs1, yysize * sizeof (*yyvsp),
2693 &yyls1, yysize * sizeof (*yylsp),
2694 &yystacksize);
2696 yyls = yyls1;
2697 yyss = yyss1;
2698 yyvs = yyvs1;
2700 #else /* no yyoverflow */
2701 # ifndef YYSTACK_RELOCATE
2702 goto yyexhaustedlab;
2703 # else
2704 /* Extend the stack our own way. */
2705 if (YYMAXDEPTH <= yystacksize)
2706 goto yyexhaustedlab;
2707 yystacksize *= 2;
2708 if (YYMAXDEPTH < yystacksize)
2709 yystacksize = YYMAXDEPTH;
2712 yytype_int16 *yyss1 = yyss;
2713 union yyalloc *yyptr =
2714 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2715 if (! yyptr)
2716 goto yyexhaustedlab;
2717 YYSTACK_RELOCATE (yyss_alloc, yyss);
2718 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2719 YYSTACK_RELOCATE (yyls_alloc, yyls);
2720 # undef YYSTACK_RELOCATE
2721 if (yyss1 != yyssa)
2722 YYSTACK_FREE (yyss1);
2724 # endif
2725 #endif /* no yyoverflow */
2727 yyssp = yyss + yysize - 1;
2728 yyvsp = yyvs + yysize - 1;
2729 yylsp = yyls + yysize - 1;
2731 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2732 (unsigned long int) yystacksize));
2734 if (yyss + yystacksize - 1 <= yyssp)
2735 YYABORT;
2738 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2740 if (yystate == YYFINAL)
2741 YYACCEPT;
2743 goto yybackup;
2745 /*-----------.
2746 | yybackup. |
2747 `-----------*/
2748 yybackup:
2750 /* Do appropriate processing given the current state. Read a
2751 lookahead token if we need one and don't already have one. */
2753 /* First try to decide what to do without reference to lookahead token. */
2754 yyn = yypact[yystate];
2755 if (yyn == YYPACT_NINF)
2756 goto yydefault;
2758 /* Not known => get a lookahead token if don't already have one. */
2760 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2761 if (yychar == YYEMPTY)
2763 YYDPRINTF ((stderr, "Reading a token: "));
2764 yychar = YYLEX;
2767 if (yychar <= YYEOF)
2769 yychar = yytoken = YYEOF;
2770 YYDPRINTF ((stderr, "Now at end of input.\n"));
2772 else
2774 yytoken = YYTRANSLATE (yychar);
2775 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2778 /* If the proper action on seeing token YYTOKEN is to reduce or to
2779 detect an error, take that action. */
2780 yyn += yytoken;
2781 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2782 goto yydefault;
2783 yyn = yytable[yyn];
2784 if (yyn <= 0)
2786 if (yyn == 0 || yyn == YYTABLE_NINF)
2787 goto yyerrlab;
2788 yyn = -yyn;
2789 goto yyreduce;
2792 /* Count tokens shifted since error; after three, turn off error
2793 status. */
2794 if (yyerrstatus)
2795 yyerrstatus--;
2797 /* Shift the lookahead token. */
2798 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2800 /* Discard the shifted token. */
2801 yychar = YYEMPTY;
2803 yystate = yyn;
2804 *++yyvsp = yylval;
2805 *++yylsp = yylloc;
2806 goto yynewstate;
2809 /*-----------------------------------------------------------.
2810 | yydefault -- do the default action for the current state. |
2811 `-----------------------------------------------------------*/
2812 yydefault:
2813 yyn = yydefact[yystate];
2814 if (yyn == 0)
2815 goto yyerrlab;
2816 goto yyreduce;
2819 /*-----------------------------.
2820 | yyreduce -- Do a reduction. |
2821 `-----------------------------*/
2822 yyreduce:
2823 /* yyn is the number of a rule to reduce with. */
2824 yylen = yyr2[yyn];
2826 /* If YYLEN is nonzero, implement the default value of the action:
2827 `$$ = $1'.
2829 Otherwise, the following line sets YYVAL to garbage.
2830 This behavior is undocumented and Bison
2831 users should not rely upon it. Assigning to YYVAL
2832 unconditionally makes the parser a bit smaller, and it avoids a
2833 GCC warning that YYVAL may be used uninitialized. */
2834 yyval = yyvsp[1-yylen];
2836 /* Default location. */
2837 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
2838 YY_REDUCE_PRINT (yyn);
2839 switch (yyn)
2841 case 2:
2843 /* Line 1464 of yacc.c */
2844 #line 218 "glsl_parser.yy"
2846 _mesa_glsl_initialize_types(state);
2848 break;
2850 case 3:
2852 /* Line 1464 of yacc.c */
2853 #line 222 "glsl_parser.yy"
2855 delete state->symbols;
2856 state->symbols = new(ralloc_parent(state)) glsl_symbol_table;
2857 _mesa_glsl_initialize_types(state);
2859 break;
2861 case 5:
2863 /* Line 1464 of yacc.c */
2864 #line 232 "glsl_parser.yy"
2866 bool supported = false;
2868 switch ((yyvsp[(2) - (3)].n)) {
2869 case 100:
2870 state->es_shader = true;
2871 supported = state->Const.GLSL_100ES;
2872 break;
2873 case 110:
2874 supported = state->Const.GLSL_110;
2875 break;
2876 case 120:
2877 supported = state->Const.GLSL_120;
2878 break;
2879 case 130:
2880 supported = state->Const.GLSL_130;
2881 break;
2882 default:
2883 supported = false;
2884 break;
2887 state->language_version = (yyvsp[(2) - (3)].n);
2888 state->version_string =
2889 ralloc_asprintf(state, "GLSL%s %d.%02d",
2890 state->es_shader ? " ES" : "",
2891 state->language_version / 100,
2892 state->language_version % 100);
2894 if (!supported) {
2895 _mesa_glsl_error(& (yylsp[(2) - (3)]), state, "%s is not supported. "
2896 "Supported versions are: %s\n",
2897 state->version_string,
2898 state->supported_version_string);
2901 break;
2903 case 10:
2905 /* Line 1464 of yacc.c */
2906 #line 276 "glsl_parser.yy"
2908 if (state->language_version < 120) {
2909 _mesa_glsl_warning(& (yylsp[(1) - (2)]), state,
2910 "pragma `invariant(all)' not supported in %s",
2911 state->version_string);
2912 } else {
2913 state->all_invariant = true;
2916 break;
2918 case 16:
2920 /* Line 1464 of yacc.c */
2921 #line 300 "glsl_parser.yy"
2923 if (!_mesa_glsl_process_extension((yyvsp[(2) - (5)].identifier), & (yylsp[(2) - (5)]), (yyvsp[(4) - (5)].identifier), & (yylsp[(4) - (5)]), state)) {
2924 YYERROR;
2927 break;
2929 case 17:
2931 /* Line 1464 of yacc.c */
2932 #line 309 "glsl_parser.yy"
2934 /* FINISHME: The NULL test is required because pragmas are set to
2935 * FINISHME: NULL. (See production rule for external_declaration.)
2937 if ((yyvsp[(1) - (1)].node) != NULL)
2938 state->translation_unit.push_tail(& (yyvsp[(1) - (1)].node)->link);
2940 break;
2942 case 18:
2944 /* Line 1464 of yacc.c */
2945 #line 317 "glsl_parser.yy"
2947 /* FINISHME: The NULL test is required because pragmas are set to
2948 * FINISHME: NULL. (See production rule for external_declaration.)
2950 if ((yyvsp[(2) - (2)].node) != NULL)
2951 state->translation_unit.push_tail(& (yyvsp[(2) - (2)].node)->link);
2953 break;
2955 case 21:
2957 /* Line 1464 of yacc.c */
2958 #line 333 "glsl_parser.yy"
2960 void *ctx = state;
2961 (yyval.expression) = new(ctx) ast_expression(ast_identifier, NULL, NULL, NULL);
2962 (yyval.expression)->set_location(yylloc);
2963 (yyval.expression)->primary_expression.identifier = (yyvsp[(1) - (1)].identifier);
2965 break;
2967 case 22:
2969 /* Line 1464 of yacc.c */
2970 #line 340 "glsl_parser.yy"
2972 void *ctx = state;
2973 (yyval.expression) = new(ctx) ast_expression(ast_int_constant, NULL, NULL, NULL);
2974 (yyval.expression)->set_location(yylloc);
2975 (yyval.expression)->primary_expression.int_constant = (yyvsp[(1) - (1)].n);
2977 break;
2979 case 23:
2981 /* Line 1464 of yacc.c */
2982 #line 347 "glsl_parser.yy"
2984 void *ctx = state;
2985 (yyval.expression) = new(ctx) ast_expression(ast_uint_constant, NULL, NULL, NULL);
2986 (yyval.expression)->set_location(yylloc);
2987 (yyval.expression)->primary_expression.uint_constant = (yyvsp[(1) - (1)].n);
2989 break;
2991 case 24:
2993 /* Line 1464 of yacc.c */
2994 #line 354 "glsl_parser.yy"
2996 void *ctx = state;
2997 (yyval.expression) = new(ctx) ast_expression(ast_float_constant, NULL, NULL, NULL);
2998 (yyval.expression)->set_location(yylloc);
2999 (yyval.expression)->primary_expression.float_constant = (yyvsp[(1) - (1)].real);
3001 break;
3003 case 25:
3005 /* Line 1464 of yacc.c */
3006 #line 361 "glsl_parser.yy"
3008 void *ctx = state;
3009 (yyval.expression) = new(ctx) ast_expression(ast_bool_constant, NULL, NULL, NULL);
3010 (yyval.expression)->set_location(yylloc);
3011 (yyval.expression)->primary_expression.bool_constant = (yyvsp[(1) - (1)].n);
3013 break;
3015 case 26:
3017 /* Line 1464 of yacc.c */
3018 #line 368 "glsl_parser.yy"
3020 (yyval.expression) = (yyvsp[(2) - (3)].expression);
3022 break;
3024 case 28:
3026 /* Line 1464 of yacc.c */
3027 #line 376 "glsl_parser.yy"
3029 void *ctx = state;
3030 (yyval.expression) = new(ctx) ast_expression(ast_array_index, (yyvsp[(1) - (4)].expression), (yyvsp[(3) - (4)].expression), NULL);
3031 (yyval.expression)->set_location(yylloc);
3033 break;
3035 case 29:
3037 /* Line 1464 of yacc.c */
3038 #line 382 "glsl_parser.yy"
3040 (yyval.expression) = (yyvsp[(1) - (1)].expression);
3042 break;
3044 case 30:
3046 /* Line 1464 of yacc.c */
3047 #line 386 "glsl_parser.yy"
3049 void *ctx = state;
3050 (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), NULL, NULL);
3051 (yyval.expression)->set_location(yylloc);
3052 (yyval.expression)->primary_expression.identifier = (yyvsp[(3) - (3)].identifier);
3054 break;
3056 case 31:
3058 /* Line 1464 of yacc.c */
3059 #line 393 "glsl_parser.yy"
3061 void *ctx = state;
3062 (yyval.expression) = new(ctx) ast_expression(ast_post_inc, (yyvsp[(1) - (2)].expression), NULL, NULL);
3063 (yyval.expression)->set_location(yylloc);
3065 break;
3067 case 32:
3069 /* Line 1464 of yacc.c */
3070 #line 399 "glsl_parser.yy"
3072 void *ctx = state;
3073 (yyval.expression) = new(ctx) ast_expression(ast_post_dec, (yyvsp[(1) - (2)].expression), NULL, NULL);
3074 (yyval.expression)->set_location(yylloc);
3076 break;
3078 case 36:
3080 /* Line 1464 of yacc.c */
3081 #line 417 "glsl_parser.yy"
3083 void *ctx = state;
3084 (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL);
3085 (yyval.expression)->set_location(yylloc);
3087 break;
3089 case 41:
3091 /* Line 1464 of yacc.c */
3092 #line 436 "glsl_parser.yy"
3094 (yyval.expression) = (yyvsp[(1) - (2)].expression);
3095 (yyval.expression)->set_location(yylloc);
3096 (yyval.expression)->expressions.push_tail(& (yyvsp[(2) - (2)].expression)->link);
3098 break;
3100 case 42:
3102 /* Line 1464 of yacc.c */
3103 #line 442 "glsl_parser.yy"
3105 (yyval.expression) = (yyvsp[(1) - (3)].expression);
3106 (yyval.expression)->set_location(yylloc);
3107 (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].expression)->link);
3109 break;
3111 case 44:
3113 /* Line 1464 of yacc.c */
3114 #line 458 "glsl_parser.yy"
3116 void *ctx = state;
3117 (yyval.expression) = new(ctx) ast_function_expression((yyvsp[(1) - (1)].type_specifier));
3118 (yyval.expression)->set_location(yylloc);
3120 break;
3122 case 45:
3124 /* Line 1464 of yacc.c */
3125 #line 464 "glsl_parser.yy"
3127 void *ctx = state;
3128 ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier));
3129 (yyval.expression) = new(ctx) ast_function_expression(callee);
3130 (yyval.expression)->set_location(yylloc);
3132 break;
3134 case 46:
3136 /* Line 1464 of yacc.c */
3137 #line 471 "glsl_parser.yy"
3139 void *ctx = state;
3140 ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier));
3141 (yyval.expression) = new(ctx) ast_function_expression(callee);
3142 (yyval.expression)->set_location(yylloc);
3144 break;
3146 case 51:
3148 /* Line 1464 of yacc.c */
3149 #line 491 "glsl_parser.yy"
3151 (yyval.expression) = (yyvsp[(1) - (2)].expression);
3152 (yyval.expression)->set_location(yylloc);
3153 (yyval.expression)->expressions.push_tail(& (yyvsp[(2) - (2)].expression)->link);
3155 break;
3157 case 52:
3159 /* Line 1464 of yacc.c */
3160 #line 497 "glsl_parser.yy"
3162 (yyval.expression) = (yyvsp[(1) - (3)].expression);
3163 (yyval.expression)->set_location(yylloc);
3164 (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].expression)->link);
3166 break;
3168 case 53:
3170 /* Line 1464 of yacc.c */
3171 #line 509 "glsl_parser.yy"
3173 void *ctx = state;
3174 ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (2)].identifier));
3175 (yyval.expression) = new(ctx) ast_function_expression(callee);
3176 (yyval.expression)->set_location(yylloc);
3178 break;
3180 case 55:
3182 /* Line 1464 of yacc.c */
3183 #line 521 "glsl_parser.yy"
3185 void *ctx = state;
3186 (yyval.expression) = new(ctx) ast_expression(ast_pre_inc, (yyvsp[(2) - (2)].expression), NULL, NULL);
3187 (yyval.expression)->set_location(yylloc);
3189 break;
3191 case 56:
3193 /* Line 1464 of yacc.c */
3194 #line 527 "glsl_parser.yy"
3196 void *ctx = state;
3197 (yyval.expression) = new(ctx) ast_expression(ast_pre_dec, (yyvsp[(2) - (2)].expression), NULL, NULL);
3198 (yyval.expression)->set_location(yylloc);
3200 break;
3202 case 57:
3204 /* Line 1464 of yacc.c */
3205 #line 533 "glsl_parser.yy"
3207 void *ctx = state;
3208 (yyval.expression) = new(ctx) ast_expression((yyvsp[(1) - (2)].n), (yyvsp[(2) - (2)].expression), NULL, NULL);
3209 (yyval.expression)->set_location(yylloc);
3211 break;
3213 case 58:
3215 /* Line 1464 of yacc.c */
3216 #line 542 "glsl_parser.yy"
3217 { (yyval.n) = ast_plus; ;}
3218 break;
3220 case 59:
3222 /* Line 1464 of yacc.c */
3223 #line 543 "glsl_parser.yy"
3224 { (yyval.n) = ast_neg; ;}
3225 break;
3227 case 60:
3229 /* Line 1464 of yacc.c */
3230 #line 544 "glsl_parser.yy"
3231 { (yyval.n) = ast_logic_not; ;}
3232 break;
3234 case 61:
3236 /* Line 1464 of yacc.c */
3237 #line 545 "glsl_parser.yy"
3238 { (yyval.n) = ast_bit_not; ;}
3239 break;
3241 case 63:
3243 /* Line 1464 of yacc.c */
3244 #line 551 "glsl_parser.yy"
3246 void *ctx = state;
3247 (yyval.expression) = new(ctx) ast_expression_bin(ast_mul, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3248 (yyval.expression)->set_location(yylloc);
3250 break;
3252 case 64:
3254 /* Line 1464 of yacc.c */
3255 #line 557 "glsl_parser.yy"
3257 void *ctx = state;
3258 (yyval.expression) = new(ctx) ast_expression_bin(ast_div, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3259 (yyval.expression)->set_location(yylloc);
3261 break;
3263 case 65:
3265 /* Line 1464 of yacc.c */
3266 #line 563 "glsl_parser.yy"
3268 void *ctx = state;
3269 (yyval.expression) = new(ctx) ast_expression_bin(ast_mod, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3270 (yyval.expression)->set_location(yylloc);
3272 break;
3274 case 67:
3276 /* Line 1464 of yacc.c */
3277 #line 573 "glsl_parser.yy"
3279 void *ctx = state;
3280 (yyval.expression) = new(ctx) ast_expression_bin(ast_add, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3281 (yyval.expression)->set_location(yylloc);
3283 break;
3285 case 68:
3287 /* Line 1464 of yacc.c */
3288 #line 579 "glsl_parser.yy"
3290 void *ctx = state;
3291 (yyval.expression) = new(ctx) ast_expression_bin(ast_sub, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3292 (yyval.expression)->set_location(yylloc);
3294 break;
3296 case 70:
3298 /* Line 1464 of yacc.c */
3299 #line 589 "glsl_parser.yy"
3301 void *ctx = state;
3302 (yyval.expression) = new(ctx) ast_expression_bin(ast_lshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3303 (yyval.expression)->set_location(yylloc);
3305 break;
3307 case 71:
3309 /* Line 1464 of yacc.c */
3310 #line 595 "glsl_parser.yy"
3312 void *ctx = state;
3313 (yyval.expression) = new(ctx) ast_expression_bin(ast_rshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3314 (yyval.expression)->set_location(yylloc);
3316 break;
3318 case 73:
3320 /* Line 1464 of yacc.c */
3321 #line 605 "glsl_parser.yy"
3323 void *ctx = state;
3324 (yyval.expression) = new(ctx) ast_expression_bin(ast_less, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3325 (yyval.expression)->set_location(yylloc);
3327 break;
3329 case 74:
3331 /* Line 1464 of yacc.c */
3332 #line 611 "glsl_parser.yy"
3334 void *ctx = state;
3335 (yyval.expression) = new(ctx) ast_expression_bin(ast_greater, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3336 (yyval.expression)->set_location(yylloc);
3338 break;
3340 case 75:
3342 /* Line 1464 of yacc.c */
3343 #line 617 "glsl_parser.yy"
3345 void *ctx = state;
3346 (yyval.expression) = new(ctx) ast_expression_bin(ast_lequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3347 (yyval.expression)->set_location(yylloc);
3349 break;
3351 case 76:
3353 /* Line 1464 of yacc.c */
3354 #line 623 "glsl_parser.yy"
3356 void *ctx = state;
3357 (yyval.expression) = new(ctx) ast_expression_bin(ast_gequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3358 (yyval.expression)->set_location(yylloc);
3360 break;
3362 case 78:
3364 /* Line 1464 of yacc.c */
3365 #line 633 "glsl_parser.yy"
3367 void *ctx = state;
3368 (yyval.expression) = new(ctx) ast_expression_bin(ast_equal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3369 (yyval.expression)->set_location(yylloc);
3371 break;
3373 case 79:
3375 /* Line 1464 of yacc.c */
3376 #line 639 "glsl_parser.yy"
3378 void *ctx = state;
3379 (yyval.expression) = new(ctx) ast_expression_bin(ast_nequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3380 (yyval.expression)->set_location(yylloc);
3382 break;
3384 case 81:
3386 /* Line 1464 of yacc.c */
3387 #line 649 "glsl_parser.yy"
3389 void *ctx = state;
3390 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_and, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3391 (yyval.expression)->set_location(yylloc);
3393 break;
3395 case 83:
3397 /* Line 1464 of yacc.c */
3398 #line 659 "glsl_parser.yy"
3400 void *ctx = state;
3401 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3402 (yyval.expression)->set_location(yylloc);
3404 break;
3406 case 85:
3408 /* Line 1464 of yacc.c */
3409 #line 669 "glsl_parser.yy"
3411 void *ctx = state;
3412 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3413 (yyval.expression)->set_location(yylloc);
3415 break;
3417 case 87:
3419 /* Line 1464 of yacc.c */
3420 #line 679 "glsl_parser.yy"
3422 void *ctx = state;
3423 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_and, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3424 (yyval.expression)->set_location(yylloc);
3426 break;
3428 case 89:
3430 /* Line 1464 of yacc.c */
3431 #line 689 "glsl_parser.yy"
3433 void *ctx = state;
3434 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3435 (yyval.expression)->set_location(yylloc);
3437 break;
3439 case 91:
3441 /* Line 1464 of yacc.c */
3442 #line 699 "glsl_parser.yy"
3444 void *ctx = state;
3445 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3446 (yyval.expression)->set_location(yylloc);
3448 break;
3450 case 93:
3452 /* Line 1464 of yacc.c */
3453 #line 709 "glsl_parser.yy"
3455 void *ctx = state;
3456 (yyval.expression) = new(ctx) ast_expression(ast_conditional, (yyvsp[(1) - (5)].expression), (yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].expression));
3457 (yyval.expression)->set_location(yylloc);
3459 break;
3461 case 95:
3463 /* Line 1464 of yacc.c */
3464 #line 719 "glsl_parser.yy"
3466 void *ctx = state;
3467 (yyval.expression) = new(ctx) ast_expression((yyvsp[(2) - (3)].n), (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL);
3468 (yyval.expression)->set_location(yylloc);
3470 break;
3472 case 96:
3474 /* Line 1464 of yacc.c */
3475 #line 727 "glsl_parser.yy"
3476 { (yyval.n) = ast_assign; ;}
3477 break;
3479 case 97:
3481 /* Line 1464 of yacc.c */
3482 #line 728 "glsl_parser.yy"
3483 { (yyval.n) = ast_mul_assign; ;}
3484 break;
3486 case 98:
3488 /* Line 1464 of yacc.c */
3489 #line 729 "glsl_parser.yy"
3490 { (yyval.n) = ast_div_assign; ;}
3491 break;
3493 case 99:
3495 /* Line 1464 of yacc.c */
3496 #line 730 "glsl_parser.yy"
3497 { (yyval.n) = ast_mod_assign; ;}
3498 break;
3500 case 100:
3502 /* Line 1464 of yacc.c */
3503 #line 731 "glsl_parser.yy"
3504 { (yyval.n) = ast_add_assign; ;}
3505 break;
3507 case 101:
3509 /* Line 1464 of yacc.c */
3510 #line 732 "glsl_parser.yy"
3511 { (yyval.n) = ast_sub_assign; ;}
3512 break;
3514 case 102:
3516 /* Line 1464 of yacc.c */
3517 #line 733 "glsl_parser.yy"
3518 { (yyval.n) = ast_ls_assign; ;}
3519 break;
3521 case 103:
3523 /* Line 1464 of yacc.c */
3524 #line 734 "glsl_parser.yy"
3525 { (yyval.n) = ast_rs_assign; ;}
3526 break;
3528 case 104:
3530 /* Line 1464 of yacc.c */
3531 #line 735 "glsl_parser.yy"
3532 { (yyval.n) = ast_and_assign; ;}
3533 break;
3535 case 105:
3537 /* Line 1464 of yacc.c */
3538 #line 736 "glsl_parser.yy"
3539 { (yyval.n) = ast_xor_assign; ;}
3540 break;
3542 case 106:
3544 /* Line 1464 of yacc.c */
3545 #line 737 "glsl_parser.yy"
3546 { (yyval.n) = ast_or_assign; ;}
3547 break;
3549 case 107:
3551 /* Line 1464 of yacc.c */
3552 #line 742 "glsl_parser.yy"
3554 (yyval.expression) = (yyvsp[(1) - (1)].expression);
3556 break;
3558 case 108:
3560 /* Line 1464 of yacc.c */
3561 #line 746 "glsl_parser.yy"
3563 void *ctx = state;
3564 if ((yyvsp[(1) - (3)].expression)->oper != ast_sequence) {
3565 (yyval.expression) = new(ctx) ast_expression(ast_sequence, NULL, NULL, NULL);
3566 (yyval.expression)->set_location(yylloc);
3567 (yyval.expression)->expressions.push_tail(& (yyvsp[(1) - (3)].expression)->link);
3568 } else {
3569 (yyval.expression) = (yyvsp[(1) - (3)].expression);
3572 (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].expression)->link);
3574 break;
3576 case 110:
3578 /* Line 1464 of yacc.c */
3579 #line 766 "glsl_parser.yy"
3581 state->symbols->pop_scope();
3582 (yyval.node) = (yyvsp[(1) - (2)].function);
3584 break;
3586 case 111:
3588 /* Line 1464 of yacc.c */
3589 #line 771 "glsl_parser.yy"
3591 (yyval.node) = (yyvsp[(1) - (2)].declarator_list);
3593 break;
3595 case 112:
3597 /* Line 1464 of yacc.c */
3598 #line 775 "glsl_parser.yy"
3600 (yyvsp[(3) - (4)].type_specifier)->precision = (yyvsp[(2) - (4)].n);
3601 (yyvsp[(3) - (4)].type_specifier)->is_precision_statement = true;
3602 (yyval.node) = (yyvsp[(3) - (4)].type_specifier);
3604 break;
3606 case 116:
3608 /* Line 1464 of yacc.c */
3609 #line 793 "glsl_parser.yy"
3611 (yyval.function) = (yyvsp[(1) - (2)].function);
3612 (yyval.function)->parameters.push_tail(& (yyvsp[(2) - (2)].parameter_declarator)->link);
3614 break;
3616 case 117:
3618 /* Line 1464 of yacc.c */
3619 #line 798 "glsl_parser.yy"
3621 (yyval.function) = (yyvsp[(1) - (3)].function);
3622 (yyval.function)->parameters.push_tail(& (yyvsp[(3) - (3)].parameter_declarator)->link);
3624 break;
3626 case 118:
3628 /* Line 1464 of yacc.c */
3629 #line 806 "glsl_parser.yy"
3631 void *ctx = state;
3632 (yyval.function) = new(ctx) ast_function();
3633 (yyval.function)->set_location(yylloc);
3634 (yyval.function)->return_type = (yyvsp[(1) - (3)].fully_specified_type);
3635 (yyval.function)->identifier = (yyvsp[(2) - (3)].identifier);
3637 state->symbols->add_function(new(state) ir_function((yyvsp[(2) - (3)].identifier)));
3638 state->symbols->push_scope();
3640 break;
3642 case 119:
3644 /* Line 1464 of yacc.c */
3645 #line 820 "glsl_parser.yy"
3647 void *ctx = state;
3648 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
3649 (yyval.parameter_declarator)->set_location(yylloc);
3650 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
3651 (yyval.parameter_declarator)->type->set_location(yylloc);
3652 (yyval.parameter_declarator)->type->specifier = (yyvsp[(1) - (2)].type_specifier);
3653 (yyval.parameter_declarator)->identifier = (yyvsp[(2) - (2)].identifier);
3655 break;
3657 case 120:
3659 /* Line 1464 of yacc.c */
3660 #line 830 "glsl_parser.yy"
3662 void *ctx = state;
3663 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
3664 (yyval.parameter_declarator)->set_location(yylloc);
3665 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
3666 (yyval.parameter_declarator)->type->set_location(yylloc);
3667 (yyval.parameter_declarator)->type->specifier = (yyvsp[(1) - (5)].type_specifier);
3668 (yyval.parameter_declarator)->identifier = (yyvsp[(2) - (5)].identifier);
3669 (yyval.parameter_declarator)->is_array = true;
3670 (yyval.parameter_declarator)->array_size = (yyvsp[(4) - (5)].expression);
3672 break;
3674 case 121:
3676 /* Line 1464 of yacc.c */
3677 #line 845 "glsl_parser.yy"
3679 (yyvsp[(1) - (3)].type_qualifier).flags.i |= (yyvsp[(2) - (3)].type_qualifier).flags.i;
3681 (yyval.parameter_declarator) = (yyvsp[(3) - (3)].parameter_declarator);
3682 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (3)].type_qualifier);
3684 break;
3686 case 122:
3688 /* Line 1464 of yacc.c */
3689 #line 852 "glsl_parser.yy"
3691 (yyval.parameter_declarator) = (yyvsp[(2) - (2)].parameter_declarator);
3692 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].type_qualifier);
3694 break;
3696 case 123:
3698 /* Line 1464 of yacc.c */
3699 #line 857 "glsl_parser.yy"
3701 void *ctx = state;
3702 (yyvsp[(1) - (3)].type_qualifier).flags.i |= (yyvsp[(2) - (3)].type_qualifier).flags.i;
3704 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
3705 (yyval.parameter_declarator)->set_location(yylloc);
3706 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
3707 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (3)].type_qualifier);
3708 (yyval.parameter_declarator)->type->specifier = (yyvsp[(3) - (3)].type_specifier);
3710 break;
3712 case 124:
3714 /* Line 1464 of yacc.c */
3715 #line 868 "glsl_parser.yy"
3717 void *ctx = state;
3718 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
3719 (yyval.parameter_declarator)->set_location(yylloc);
3720 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
3721 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].type_qualifier);
3722 (yyval.parameter_declarator)->type->specifier = (yyvsp[(2) - (2)].type_specifier);
3724 break;
3726 case 125:
3728 /* Line 1464 of yacc.c */
3729 #line 880 "glsl_parser.yy"
3731 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
3733 break;
3735 case 126:
3737 /* Line 1464 of yacc.c */
3738 #line 884 "glsl_parser.yy"
3740 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
3741 (yyval.type_qualifier).flags.q.in = 1;
3743 break;
3745 case 127:
3747 /* Line 1464 of yacc.c */
3748 #line 889 "glsl_parser.yy"
3750 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
3751 (yyval.type_qualifier).flags.q.out = 1;
3753 break;
3755 case 128:
3757 /* Line 1464 of yacc.c */
3758 #line 894 "glsl_parser.yy"
3760 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
3761 (yyval.type_qualifier).flags.q.in = 1;
3762 (yyval.type_qualifier).flags.q.out = 1;
3764 break;
3766 case 131:
3768 /* Line 1464 of yacc.c */
3769 #line 908 "glsl_parser.yy"
3771 void *ctx = state;
3772 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (3)].identifier), false, NULL, NULL);
3773 decl->set_location(yylloc);
3775 (yyval.declarator_list) = (yyvsp[(1) - (3)].declarator_list);
3776 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3777 state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (3)].identifier), ir_var_auto));
3779 break;
3781 case 132:
3783 /* Line 1464 of yacc.c */
3784 #line 918 "glsl_parser.yy"
3786 void *ctx = state;
3787 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), true, NULL, NULL);
3788 decl->set_location(yylloc);
3790 (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list);
3791 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3792 state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (5)].identifier), ir_var_auto));
3794 break;
3796 case 133:
3798 /* Line 1464 of yacc.c */
3799 #line 928 "glsl_parser.yy"
3801 void *ctx = state;
3802 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (6)].identifier), true, (yyvsp[(5) - (6)].expression), NULL);
3803 decl->set_location(yylloc);
3805 (yyval.declarator_list) = (yyvsp[(1) - (6)].declarator_list);
3806 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3807 state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (6)].identifier), ir_var_auto));
3809 break;
3811 case 134:
3813 /* Line 1464 of yacc.c */
3814 #line 938 "glsl_parser.yy"
3816 void *ctx = state;
3817 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (7)].identifier), true, NULL, (yyvsp[(7) - (7)].expression));
3818 decl->set_location(yylloc);
3820 (yyval.declarator_list) = (yyvsp[(1) - (7)].declarator_list);
3821 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3822 state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (7)].identifier), ir_var_auto));
3824 break;
3826 case 135:
3828 /* Line 1464 of yacc.c */
3829 #line 948 "glsl_parser.yy"
3831 void *ctx = state;
3832 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (8)].identifier), true, (yyvsp[(5) - (8)].expression), (yyvsp[(8) - (8)].expression));
3833 decl->set_location(yylloc);
3835 (yyval.declarator_list) = (yyvsp[(1) - (8)].declarator_list);
3836 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3837 state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (8)].identifier), ir_var_auto));
3839 break;
3841 case 136:
3843 /* Line 1464 of yacc.c */
3844 #line 958 "glsl_parser.yy"
3846 void *ctx = state;
3847 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), false, NULL, (yyvsp[(5) - (5)].expression));
3848 decl->set_location(yylloc);
3850 (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list);
3851 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3852 state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (5)].identifier), ir_var_auto));
3854 break;
3856 case 137:
3858 /* Line 1464 of yacc.c */
3859 #line 972 "glsl_parser.yy"
3861 void *ctx = state;
3862 if ((yyvsp[(1) - (1)].fully_specified_type)->specifier->type_specifier != ast_struct) {
3863 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "empty declaration list\n");
3864 YYERROR;
3865 } else {
3866 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (1)].fully_specified_type));
3867 (yyval.declarator_list)->set_location(yylloc);
3870 break;
3872 case 138:
3874 /* Line 1464 of yacc.c */
3875 #line 983 "glsl_parser.yy"
3877 void *ctx = state;
3878 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL);
3880 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (2)].fully_specified_type));
3881 (yyval.declarator_list)->set_location(yylloc);
3882 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3884 break;
3886 case 139:
3888 /* Line 1464 of yacc.c */
3889 #line 992 "glsl_parser.yy"
3891 void *ctx = state;
3892 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), true, NULL, NULL);
3894 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (4)].fully_specified_type));
3895 (yyval.declarator_list)->set_location(yylloc);
3896 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3898 break;
3900 case 140:
3902 /* Line 1464 of yacc.c */
3903 #line 1001 "glsl_parser.yy"
3905 void *ctx = state;
3906 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (5)].identifier), true, (yyvsp[(4) - (5)].expression), NULL);
3908 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (5)].fully_specified_type));
3909 (yyval.declarator_list)->set_location(yylloc);
3910 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3912 break;
3914 case 141:
3916 /* Line 1464 of yacc.c */
3917 #line 1010 "glsl_parser.yy"
3919 void *ctx = state;
3920 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (6)].identifier), true, NULL, (yyvsp[(6) - (6)].expression));
3922 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (6)].fully_specified_type));
3923 (yyval.declarator_list)->set_location(yylloc);
3924 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3926 break;
3928 case 142:
3930 /* Line 1464 of yacc.c */
3931 #line 1019 "glsl_parser.yy"
3933 void *ctx = state;
3934 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (7)].identifier), true, (yyvsp[(4) - (7)].expression), (yyvsp[(7) - (7)].expression));
3936 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (7)].fully_specified_type));
3937 (yyval.declarator_list)->set_location(yylloc);
3938 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3940 break;
3942 case 143:
3944 /* Line 1464 of yacc.c */
3945 #line 1028 "glsl_parser.yy"
3947 void *ctx = state;
3948 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression));
3950 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (4)].fully_specified_type));
3951 (yyval.declarator_list)->set_location(yylloc);
3952 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3954 break;
3956 case 144:
3958 /* Line 1464 of yacc.c */
3959 #line 1037 "glsl_parser.yy"
3961 void *ctx = state;
3962 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL);
3964 (yyval.declarator_list) = new(ctx) ast_declarator_list(NULL);
3965 (yyval.declarator_list)->set_location(yylloc);
3966 (yyval.declarator_list)->invariant = true;
3968 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3970 break;
3972 case 145:
3974 /* Line 1464 of yacc.c */
3975 #line 1051 "glsl_parser.yy"
3977 void *ctx = state;
3978 (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
3979 (yyval.fully_specified_type)->set_location(yylloc);
3980 (yyval.fully_specified_type)->specifier = (yyvsp[(1) - (1)].type_specifier);
3982 break;
3984 case 146:
3986 /* Line 1464 of yacc.c */
3987 #line 1058 "glsl_parser.yy"
3989 void *ctx = state;
3990 (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
3991 (yyval.fully_specified_type)->set_location(yylloc);
3992 (yyval.fully_specified_type)->qualifier = (yyvsp[(1) - (2)].type_qualifier);
3993 (yyval.fully_specified_type)->specifier = (yyvsp[(2) - (2)].type_specifier);
3995 break;
3997 case 147:
3999 /* Line 1464 of yacc.c */
4000 #line 1069 "glsl_parser.yy"
4002 (yyval.type_qualifier) = (yyvsp[(3) - (4)].type_qualifier);
4004 break;
4006 case 149:
4008 /* Line 1464 of yacc.c */
4009 #line 1077 "glsl_parser.yy"
4011 if (((yyvsp[(1) - (3)].type_qualifier).flags.i & (yyvsp[(3) - (3)].type_qualifier).flags.i) != 0) {
4012 _mesa_glsl_error(& (yylsp[(3) - (3)]), state,
4013 "duplicate layout qualifiers used\n");
4014 YYERROR;
4017 (yyval.type_qualifier).flags.i = (yyvsp[(1) - (3)].type_qualifier).flags.i | (yyvsp[(3) - (3)].type_qualifier).flags.i;
4019 if ((yyvsp[(1) - (3)].type_qualifier).flags.q.explicit_location)
4020 (yyval.type_qualifier).location = (yyvsp[(1) - (3)].type_qualifier).location;
4022 if ((yyvsp[(3) - (3)].type_qualifier).flags.q.explicit_location)
4023 (yyval.type_qualifier).location = (yyvsp[(3) - (3)].type_qualifier).location;
4025 break;
4027 case 150:
4029 /* Line 1464 of yacc.c */
4030 #line 1096 "glsl_parser.yy"
4032 bool got_one = false;
4034 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4036 /* Layout qualifiers for ARB_fragment_coord_conventions. */
4037 if (!got_one && state->ARB_fragment_coord_conventions_enable) {
4038 if (strcmp((yyvsp[(1) - (1)].identifier), "origin_upper_left") == 0) {
4039 got_one = true;
4040 (yyval.type_qualifier).flags.q.origin_upper_left = 1;
4041 } else if (strcmp((yyvsp[(1) - (1)].identifier), "pixel_center_integer") == 0) {
4042 got_one = true;
4043 (yyval.type_qualifier).flags.q.pixel_center_integer = 1;
4046 if (got_one && state->ARB_fragment_coord_conventions_warn) {
4047 _mesa_glsl_warning(& (yylsp[(1) - (1)]), state,
4048 "GL_ARB_fragment_coord_conventions layout "
4049 "identifier `%s' used\n", (yyvsp[(1) - (1)].identifier));
4053 /* Layout qualifiers for AMD_conservative_depth. */
4054 if (!got_one && state->AMD_conservative_depth_enable) {
4055 if (strcmp((yyvsp[(1) - (1)].identifier), "depth_any") == 0) {
4056 got_one = true;
4057 (yyval.type_qualifier).flags.q.depth_any = 1;
4058 } else if (strcmp((yyvsp[(1) - (1)].identifier), "depth_greater") == 0) {
4059 got_one = true;
4060 (yyval.type_qualifier).flags.q.depth_greater = 1;
4061 } else if (strcmp((yyvsp[(1) - (1)].identifier), "depth_less") == 0) {
4062 got_one = true;
4063 (yyval.type_qualifier).flags.q.depth_less = 1;
4064 } else if (strcmp((yyvsp[(1) - (1)].identifier), "depth_unchanged") == 0) {
4065 got_one = true;
4066 (yyval.type_qualifier).flags.q.depth_unchanged = 1;
4069 if (got_one && state->AMD_conservative_depth_warn) {
4070 _mesa_glsl_warning(& (yylsp[(1) - (1)]), state,
4071 "GL_AMD_conservative_depth "
4072 "layout qualifier `%s' is used\n", (yyvsp[(1) - (1)].identifier));
4076 if (!got_one) {
4077 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "unrecognized layout identifier "
4078 "`%s'\n", (yyvsp[(1) - (1)].identifier));
4079 YYERROR;
4082 break;
4084 case 151:
4086 /* Line 1464 of yacc.c */
4087 #line 1148 "glsl_parser.yy"
4089 bool got_one = false;
4091 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4093 if (state->ARB_explicit_attrib_location_enable) {
4094 /* FINISHME: Handle 'index' once GL_ARB_blend_func_exteneded and
4095 * FINISHME: GLSL 1.30 (or later) are supported.
4097 if (strcmp("location", (yyvsp[(1) - (3)].identifier)) == 0) {
4098 got_one = true;
4100 (yyval.type_qualifier).flags.q.explicit_location = 1;
4102 if ((yyvsp[(3) - (3)].n) >= 0) {
4103 (yyval.type_qualifier).location = (yyvsp[(3) - (3)].n);
4104 } else {
4105 _mesa_glsl_error(& (yylsp[(3) - (3)]), state,
4106 "invalid location %d specified\n", (yyvsp[(3) - (3)].n));
4107 YYERROR;
4112 /* If the identifier didn't match any known layout identifiers,
4113 * emit an error.
4115 if (!got_one) {
4116 _mesa_glsl_error(& (yylsp[(1) - (3)]), state, "unrecognized layout identifier "
4117 "`%s'\n", (yyvsp[(1) - (3)].identifier));
4118 YYERROR;
4119 } else if (state->ARB_explicit_attrib_location_warn) {
4120 _mesa_glsl_warning(& (yylsp[(1) - (3)]), state,
4121 "GL_ARB_explicit_attrib_location layout "
4122 "identifier `%s' used\n", (yyvsp[(1) - (3)].identifier));
4125 break;
4127 case 152:
4129 /* Line 1464 of yacc.c */
4130 #line 1189 "glsl_parser.yy"
4132 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4133 (yyval.type_qualifier).flags.q.smooth = 1;
4135 break;
4137 case 153:
4139 /* Line 1464 of yacc.c */
4140 #line 1194 "glsl_parser.yy"
4142 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4143 (yyval.type_qualifier).flags.q.flat = 1;
4145 break;
4147 case 154:
4149 /* Line 1464 of yacc.c */
4150 #line 1199 "glsl_parser.yy"
4152 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4153 (yyval.type_qualifier).flags.q.noperspective = 1;
4155 break;
4157 case 155:
4159 /* Line 1464 of yacc.c */
4160 #line 1207 "glsl_parser.yy"
4162 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4163 (yyval.type_qualifier).flags.q.constant = 1;
4165 break;
4167 case 158:
4169 /* Line 1464 of yacc.c */
4170 #line 1217 "glsl_parser.yy"
4172 (yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier);
4173 (yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).flags.i;
4175 break;
4177 case 160:
4179 /* Line 1464 of yacc.c */
4180 #line 1223 "glsl_parser.yy"
4182 (yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier);
4183 (yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).flags.i;
4185 break;
4187 case 161:
4189 /* Line 1464 of yacc.c */
4190 #line 1228 "glsl_parser.yy"
4192 (yyval.type_qualifier) = (yyvsp[(2) - (2)].type_qualifier);
4193 (yyval.type_qualifier).flags.q.invariant = 1;
4195 break;
4197 case 162:
4199 /* Line 1464 of yacc.c */
4200 #line 1233 "glsl_parser.yy"
4202 (yyval.type_qualifier) = (yyvsp[(2) - (3)].type_qualifier);
4203 (yyval.type_qualifier).flags.i |= (yyvsp[(3) - (3)].type_qualifier).flags.i;
4204 (yyval.type_qualifier).flags.q.invariant = 1;
4206 break;
4208 case 163:
4210 /* Line 1464 of yacc.c */
4211 #line 1239 "glsl_parser.yy"
4213 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4214 (yyval.type_qualifier).flags.q.invariant = 1;
4216 break;
4218 case 164:
4220 /* Line 1464 of yacc.c */
4221 #line 1247 "glsl_parser.yy"
4223 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4224 (yyval.type_qualifier).flags.q.constant = 1;
4226 break;
4228 case 165:
4230 /* Line 1464 of yacc.c */
4231 #line 1252 "glsl_parser.yy"
4233 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4234 (yyval.type_qualifier).flags.q.attribute = 1;
4236 break;
4238 case 166:
4240 /* Line 1464 of yacc.c */
4241 #line 1257 "glsl_parser.yy"
4243 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4244 (yyval.type_qualifier).flags.q.varying = 1;
4246 break;
4248 case 167:
4250 /* Line 1464 of yacc.c */
4251 #line 1262 "glsl_parser.yy"
4253 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4254 (yyval.type_qualifier).flags.q.centroid = 1;
4255 (yyval.type_qualifier).flags.q.varying = 1;
4257 break;
4259 case 168:
4261 /* Line 1464 of yacc.c */
4262 #line 1268 "glsl_parser.yy"
4264 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4265 (yyval.type_qualifier).flags.q.in = 1;
4267 break;
4269 case 169:
4271 /* Line 1464 of yacc.c */
4272 #line 1273 "glsl_parser.yy"
4274 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4275 (yyval.type_qualifier).flags.q.out = 1;
4277 break;
4279 case 170:
4281 /* Line 1464 of yacc.c */
4282 #line 1278 "glsl_parser.yy"
4284 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4285 (yyval.type_qualifier).flags.q.centroid = 1; (yyval.type_qualifier).flags.q.in = 1;
4287 break;
4289 case 171:
4291 /* Line 1464 of yacc.c */
4292 #line 1283 "glsl_parser.yy"
4294 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4295 (yyval.type_qualifier).flags.q.centroid = 1; (yyval.type_qualifier).flags.q.out = 1;
4297 break;
4299 case 172:
4301 /* Line 1464 of yacc.c */
4302 #line 1288 "glsl_parser.yy"
4304 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4305 (yyval.type_qualifier).flags.q.uniform = 1;
4307 break;
4309 case 173:
4311 /* Line 1464 of yacc.c */
4312 #line 1296 "glsl_parser.yy"
4314 (yyval.type_specifier) = (yyvsp[(1) - (1)].type_specifier);
4316 break;
4318 case 174:
4320 /* Line 1464 of yacc.c */
4321 #line 1300 "glsl_parser.yy"
4323 (yyval.type_specifier) = (yyvsp[(2) - (2)].type_specifier);
4324 (yyval.type_specifier)->precision = (yyvsp[(1) - (2)].n);
4326 break;
4328 case 176:
4330 /* Line 1464 of yacc.c */
4331 #line 1309 "glsl_parser.yy"
4333 (yyval.type_specifier) = (yyvsp[(1) - (3)].type_specifier);
4334 (yyval.type_specifier)->is_array = true;
4335 (yyval.type_specifier)->array_size = NULL;
4337 break;
4339 case 177:
4341 /* Line 1464 of yacc.c */
4342 #line 1315 "glsl_parser.yy"
4344 (yyval.type_specifier) = (yyvsp[(1) - (4)].type_specifier);
4345 (yyval.type_specifier)->is_array = true;
4346 (yyval.type_specifier)->array_size = (yyvsp[(3) - (4)].expression);
4348 break;
4350 case 178:
4352 /* Line 1464 of yacc.c */
4353 #line 1324 "glsl_parser.yy"
4355 void *ctx = state;
4356 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].n));
4357 (yyval.type_specifier)->set_location(yylloc);
4359 break;
4361 case 179:
4363 /* Line 1464 of yacc.c */
4364 #line 1330 "glsl_parser.yy"
4366 void *ctx = state;
4367 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].struct_specifier));
4368 (yyval.type_specifier)->set_location(yylloc);
4370 break;
4372 case 180:
4374 /* Line 1464 of yacc.c */
4375 #line 1336 "glsl_parser.yy"
4377 void *ctx = state;
4378 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].identifier));
4379 (yyval.type_specifier)->set_location(yylloc);
4381 break;
4383 case 181:
4385 /* Line 1464 of yacc.c */
4386 #line 1344 "glsl_parser.yy"
4387 { (yyval.n) = ast_void; ;}
4388 break;
4390 case 182:
4392 /* Line 1464 of yacc.c */
4393 #line 1345 "glsl_parser.yy"
4394 { (yyval.n) = ast_float; ;}
4395 break;
4397 case 183:
4399 /* Line 1464 of yacc.c */
4400 #line 1346 "glsl_parser.yy"
4401 { (yyval.n) = ast_int; ;}
4402 break;
4404 case 184:
4406 /* Line 1464 of yacc.c */
4407 #line 1347 "glsl_parser.yy"
4408 { (yyval.n) = ast_uint; ;}
4409 break;
4411 case 185:
4413 /* Line 1464 of yacc.c */
4414 #line 1348 "glsl_parser.yy"
4415 { (yyval.n) = ast_bool; ;}
4416 break;
4418 case 186:
4420 /* Line 1464 of yacc.c */
4421 #line 1349 "glsl_parser.yy"
4422 { (yyval.n) = ast_vec2; ;}
4423 break;
4425 case 187:
4427 /* Line 1464 of yacc.c */
4428 #line 1350 "glsl_parser.yy"
4429 { (yyval.n) = ast_vec3; ;}
4430 break;
4432 case 188:
4434 /* Line 1464 of yacc.c */
4435 #line 1351 "glsl_parser.yy"
4436 { (yyval.n) = ast_vec4; ;}
4437 break;
4439 case 189:
4441 /* Line 1464 of yacc.c */
4442 #line 1352 "glsl_parser.yy"
4443 { (yyval.n) = ast_bvec2; ;}
4444 break;
4446 case 190:
4448 /* Line 1464 of yacc.c */
4449 #line 1353 "glsl_parser.yy"
4450 { (yyval.n) = ast_bvec3; ;}
4451 break;
4453 case 191:
4455 /* Line 1464 of yacc.c */
4456 #line 1354 "glsl_parser.yy"
4457 { (yyval.n) = ast_bvec4; ;}
4458 break;
4460 case 192:
4462 /* Line 1464 of yacc.c */
4463 #line 1355 "glsl_parser.yy"
4464 { (yyval.n) = ast_ivec2; ;}
4465 break;
4467 case 193:
4469 /* Line 1464 of yacc.c */
4470 #line 1356 "glsl_parser.yy"
4471 { (yyval.n) = ast_ivec3; ;}
4472 break;
4474 case 194:
4476 /* Line 1464 of yacc.c */
4477 #line 1357 "glsl_parser.yy"
4478 { (yyval.n) = ast_ivec4; ;}
4479 break;
4481 case 195:
4483 /* Line 1464 of yacc.c */
4484 #line 1358 "glsl_parser.yy"
4485 { (yyval.n) = ast_uvec2; ;}
4486 break;
4488 case 196:
4490 /* Line 1464 of yacc.c */
4491 #line 1359 "glsl_parser.yy"
4492 { (yyval.n) = ast_uvec3; ;}
4493 break;
4495 case 197:
4497 /* Line 1464 of yacc.c */
4498 #line 1360 "glsl_parser.yy"
4499 { (yyval.n) = ast_uvec4; ;}
4500 break;
4502 case 198:
4504 /* Line 1464 of yacc.c */
4505 #line 1361 "glsl_parser.yy"
4506 { (yyval.n) = ast_mat2; ;}
4507 break;
4509 case 199:
4511 /* Line 1464 of yacc.c */
4512 #line 1362 "glsl_parser.yy"
4513 { (yyval.n) = ast_mat2x3; ;}
4514 break;
4516 case 200:
4518 /* Line 1464 of yacc.c */
4519 #line 1363 "glsl_parser.yy"
4520 { (yyval.n) = ast_mat2x4; ;}
4521 break;
4523 case 201:
4525 /* Line 1464 of yacc.c */
4526 #line 1364 "glsl_parser.yy"
4527 { (yyval.n) = ast_mat3x2; ;}
4528 break;
4530 case 202:
4532 /* Line 1464 of yacc.c */
4533 #line 1365 "glsl_parser.yy"
4534 { (yyval.n) = ast_mat3; ;}
4535 break;
4537 case 203:
4539 /* Line 1464 of yacc.c */
4540 #line 1366 "glsl_parser.yy"
4541 { (yyval.n) = ast_mat3x4; ;}
4542 break;
4544 case 204:
4546 /* Line 1464 of yacc.c */
4547 #line 1367 "glsl_parser.yy"
4548 { (yyval.n) = ast_mat4x2; ;}
4549 break;
4551 case 205:
4553 /* Line 1464 of yacc.c */
4554 #line 1368 "glsl_parser.yy"
4555 { (yyval.n) = ast_mat4x3; ;}
4556 break;
4558 case 206:
4560 /* Line 1464 of yacc.c */
4561 #line 1369 "glsl_parser.yy"
4562 { (yyval.n) = ast_mat4; ;}
4563 break;
4565 case 207:
4567 /* Line 1464 of yacc.c */
4568 #line 1370 "glsl_parser.yy"
4569 { (yyval.n) = ast_sampler1d; ;}
4570 break;
4572 case 208:
4574 /* Line 1464 of yacc.c */
4575 #line 1371 "glsl_parser.yy"
4576 { (yyval.n) = ast_sampler2d; ;}
4577 break;
4579 case 209:
4581 /* Line 1464 of yacc.c */
4582 #line 1372 "glsl_parser.yy"
4583 { (yyval.n) = ast_sampler2drect; ;}
4584 break;
4586 case 210:
4588 /* Line 1464 of yacc.c */
4589 #line 1373 "glsl_parser.yy"
4590 { (yyval.n) = ast_sampler3d; ;}
4591 break;
4593 case 211:
4595 /* Line 1464 of yacc.c */
4596 #line 1374 "glsl_parser.yy"
4597 { (yyval.n) = ast_samplercube; ;}
4598 break;
4600 case 212:
4602 /* Line 1464 of yacc.c */
4603 #line 1375 "glsl_parser.yy"
4604 { (yyval.n) = ast_sampler1dshadow; ;}
4605 break;
4607 case 213:
4609 /* Line 1464 of yacc.c */
4610 #line 1376 "glsl_parser.yy"
4611 { (yyval.n) = ast_sampler2dshadow; ;}
4612 break;
4614 case 214:
4616 /* Line 1464 of yacc.c */
4617 #line 1377 "glsl_parser.yy"
4618 { (yyval.n) = ast_sampler2drectshadow; ;}
4619 break;
4621 case 215:
4623 /* Line 1464 of yacc.c */
4624 #line 1378 "glsl_parser.yy"
4625 { (yyval.n) = ast_samplercubeshadow; ;}
4626 break;
4628 case 216:
4630 /* Line 1464 of yacc.c */
4631 #line 1379 "glsl_parser.yy"
4632 { (yyval.n) = ast_sampler1darray; ;}
4633 break;
4635 case 217:
4637 /* Line 1464 of yacc.c */
4638 #line 1380 "glsl_parser.yy"
4639 { (yyval.n) = ast_sampler2darray; ;}
4640 break;
4642 case 218:
4644 /* Line 1464 of yacc.c */
4645 #line 1381 "glsl_parser.yy"
4646 { (yyval.n) = ast_sampler1darrayshadow; ;}
4647 break;
4649 case 219:
4651 /* Line 1464 of yacc.c */
4652 #line 1382 "glsl_parser.yy"
4653 { (yyval.n) = ast_sampler2darrayshadow; ;}
4654 break;
4656 case 220:
4658 /* Line 1464 of yacc.c */
4659 #line 1383 "glsl_parser.yy"
4660 { (yyval.n) = ast_isampler1d; ;}
4661 break;
4663 case 221:
4665 /* Line 1464 of yacc.c */
4666 #line 1384 "glsl_parser.yy"
4667 { (yyval.n) = ast_isampler2d; ;}
4668 break;
4670 case 222:
4672 /* Line 1464 of yacc.c */
4673 #line 1385 "glsl_parser.yy"
4674 { (yyval.n) = ast_isampler3d; ;}
4675 break;
4677 case 223:
4679 /* Line 1464 of yacc.c */
4680 #line 1386 "glsl_parser.yy"
4681 { (yyval.n) = ast_isamplercube; ;}
4682 break;
4684 case 224:
4686 /* Line 1464 of yacc.c */
4687 #line 1387 "glsl_parser.yy"
4688 { (yyval.n) = ast_isampler1darray; ;}
4689 break;
4691 case 225:
4693 /* Line 1464 of yacc.c */
4694 #line 1388 "glsl_parser.yy"
4695 { (yyval.n) = ast_isampler2darray; ;}
4696 break;
4698 case 226:
4700 /* Line 1464 of yacc.c */
4701 #line 1389 "glsl_parser.yy"
4702 { (yyval.n) = ast_usampler1d; ;}
4703 break;
4705 case 227:
4707 /* Line 1464 of yacc.c */
4708 #line 1390 "glsl_parser.yy"
4709 { (yyval.n) = ast_usampler2d; ;}
4710 break;
4712 case 228:
4714 /* Line 1464 of yacc.c */
4715 #line 1391 "glsl_parser.yy"
4716 { (yyval.n) = ast_usampler3d; ;}
4717 break;
4719 case 229:
4721 /* Line 1464 of yacc.c */
4722 #line 1392 "glsl_parser.yy"
4723 { (yyval.n) = ast_usamplercube; ;}
4724 break;
4726 case 230:
4728 /* Line 1464 of yacc.c */
4729 #line 1393 "glsl_parser.yy"
4730 { (yyval.n) = ast_usampler1darray; ;}
4731 break;
4733 case 231:
4735 /* Line 1464 of yacc.c */
4736 #line 1394 "glsl_parser.yy"
4737 { (yyval.n) = ast_usampler2darray; ;}
4738 break;
4740 case 232:
4742 /* Line 1464 of yacc.c */
4743 #line 1398 "glsl_parser.yy"
4745 if (!state->es_shader && state->language_version < 130)
4746 _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
4747 "precision qualifier forbidden "
4748 "in %s (1.30 or later "
4749 "required)\n",
4750 state->version_string);
4752 (yyval.n) = ast_precision_high;
4754 break;
4756 case 233:
4758 /* Line 1464 of yacc.c */
4759 #line 1408 "glsl_parser.yy"
4761 if (!state->es_shader && state->language_version < 130)
4762 _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
4763 "precision qualifier forbidden "
4764 "in %s (1.30 or later "
4765 "required)\n",
4766 state->version_string);
4768 (yyval.n) = ast_precision_medium;
4770 break;
4772 case 234:
4774 /* Line 1464 of yacc.c */
4775 #line 1418 "glsl_parser.yy"
4777 if (!state->es_shader && state->language_version < 130)
4778 _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
4779 "precision qualifier forbidden "
4780 "in %s (1.30 or later "
4781 "required)\n",
4782 state->version_string);
4784 (yyval.n) = ast_precision_low;
4786 break;
4788 case 235:
4790 /* Line 1464 of yacc.c */
4791 #line 1432 "glsl_parser.yy"
4793 void *ctx = state;
4794 (yyval.struct_specifier) = new(ctx) ast_struct_specifier((yyvsp[(2) - (5)].identifier), (yyvsp[(4) - (5)].node));
4795 (yyval.struct_specifier)->set_location(yylloc);
4796 state->symbols->add_type((yyvsp[(2) - (5)].identifier), glsl_type::void_type);
4798 break;
4800 case 236:
4802 /* Line 1464 of yacc.c */
4803 #line 1439 "glsl_parser.yy"
4805 void *ctx = state;
4806 (yyval.struct_specifier) = new(ctx) ast_struct_specifier(NULL, (yyvsp[(3) - (4)].node));
4807 (yyval.struct_specifier)->set_location(yylloc);
4809 break;
4811 case 237:
4813 /* Line 1464 of yacc.c */
4814 #line 1448 "glsl_parser.yy"
4816 (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].declarator_list);
4817 (yyvsp[(1) - (1)].declarator_list)->link.self_link();
4819 break;
4821 case 238:
4823 /* Line 1464 of yacc.c */
4824 #line 1453 "glsl_parser.yy"
4826 (yyval.node) = (ast_node *) (yyvsp[(1) - (2)].node);
4827 (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].declarator_list)->link);
4829 break;
4831 case 239:
4833 /* Line 1464 of yacc.c */
4834 #line 1461 "glsl_parser.yy"
4836 void *ctx = state;
4837 ast_fully_specified_type *type = new(ctx) ast_fully_specified_type();
4838 type->set_location(yylloc);
4840 type->specifier = (yyvsp[(1) - (3)].type_specifier);
4841 (yyval.declarator_list) = new(ctx) ast_declarator_list(type);
4842 (yyval.declarator_list)->set_location(yylloc);
4844 (yyval.declarator_list)->declarations.push_degenerate_list_at_head(& (yyvsp[(2) - (3)].declaration)->link);
4846 break;
4848 case 240:
4850 /* Line 1464 of yacc.c */
4851 #line 1476 "glsl_parser.yy"
4853 (yyval.declaration) = (yyvsp[(1) - (1)].declaration);
4854 (yyvsp[(1) - (1)].declaration)->link.self_link();
4856 break;
4858 case 241:
4860 /* Line 1464 of yacc.c */
4861 #line 1481 "glsl_parser.yy"
4863 (yyval.declaration) = (yyvsp[(1) - (3)].declaration);
4864 (yyval.declaration)->link.insert_before(& (yyvsp[(3) - (3)].declaration)->link);
4866 break;
4868 case 242:
4870 /* Line 1464 of yacc.c */
4871 #line 1489 "glsl_parser.yy"
4873 void *ctx = state;
4874 (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (1)].identifier), false, NULL, NULL);
4875 (yyval.declaration)->set_location(yylloc);
4876 state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(1) - (1)].identifier), ir_var_auto));
4878 break;
4880 case 243:
4882 /* Line 1464 of yacc.c */
4883 #line 1496 "glsl_parser.yy"
4885 void *ctx = state;
4886 (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (4)].identifier), true, (yyvsp[(3) - (4)].expression), NULL);
4887 (yyval.declaration)->set_location(yylloc);
4889 break;
4891 case 246:
4893 /* Line 1464 of yacc.c */
4894 #line 1514 "glsl_parser.yy"
4895 { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
4896 break;
4898 case 251:
4900 /* Line 1464 of yacc.c */
4901 #line 1522 "glsl_parser.yy"
4902 { (yyval.node) = NULL; ;}
4903 break;
4905 case 252:
4907 /* Line 1464 of yacc.c */
4908 #line 1523 "glsl_parser.yy"
4909 { (yyval.node) = NULL; ;}
4910 break;
4912 case 255:
4914 /* Line 1464 of yacc.c */
4915 #line 1530 "glsl_parser.yy"
4917 void *ctx = state;
4918 (yyval.compound_statement) = new(ctx) ast_compound_statement(true, NULL);
4919 (yyval.compound_statement)->set_location(yylloc);
4921 break;
4923 case 256:
4925 /* Line 1464 of yacc.c */
4926 #line 1536 "glsl_parser.yy"
4928 state->symbols->push_scope();
4930 break;
4932 case 257:
4934 /* Line 1464 of yacc.c */
4935 #line 1540 "glsl_parser.yy"
4937 void *ctx = state;
4938 (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (yyvsp[(3) - (4)].node));
4939 (yyval.compound_statement)->set_location(yylloc);
4940 state->symbols->pop_scope();
4942 break;
4944 case 258:
4946 /* Line 1464 of yacc.c */
4947 #line 1549 "glsl_parser.yy"
4948 { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
4949 break;
4951 case 260:
4953 /* Line 1464 of yacc.c */
4954 #line 1555 "glsl_parser.yy"
4956 void *ctx = state;
4957 (yyval.compound_statement) = new(ctx) ast_compound_statement(false, NULL);
4958 (yyval.compound_statement)->set_location(yylloc);
4960 break;
4962 case 261:
4964 /* Line 1464 of yacc.c */
4965 #line 1561 "glsl_parser.yy"
4967 void *ctx = state;
4968 (yyval.compound_statement) = new(ctx) ast_compound_statement(false, (yyvsp[(2) - (3)].node));
4969 (yyval.compound_statement)->set_location(yylloc);
4971 break;
4973 case 262:
4975 /* Line 1464 of yacc.c */
4976 #line 1570 "glsl_parser.yy"
4978 if ((yyvsp[(1) - (1)].node) == NULL) {
4979 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "<nil> statement\n");
4980 assert((yyvsp[(1) - (1)].node) != NULL);
4983 (yyval.node) = (yyvsp[(1) - (1)].node);
4984 (yyval.node)->link.self_link();
4986 break;
4988 case 263:
4990 /* Line 1464 of yacc.c */
4991 #line 1580 "glsl_parser.yy"
4993 if ((yyvsp[(2) - (2)].node) == NULL) {
4994 _mesa_glsl_error(& (yylsp[(2) - (2)]), state, "<nil> statement\n");
4995 assert((yyvsp[(2) - (2)].node) != NULL);
4997 (yyval.node) = (yyvsp[(1) - (2)].node);
4998 (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].node)->link);
5000 break;
5002 case 264:
5004 /* Line 1464 of yacc.c */
5005 #line 1592 "glsl_parser.yy"
5007 void *ctx = state;
5008 (yyval.node) = new(ctx) ast_expression_statement(NULL);
5009 (yyval.node)->set_location(yylloc);
5011 break;
5013 case 265:
5015 /* Line 1464 of yacc.c */
5016 #line 1598 "glsl_parser.yy"
5018 void *ctx = state;
5019 (yyval.node) = new(ctx) ast_expression_statement((yyvsp[(1) - (2)].expression));
5020 (yyval.node)->set_location(yylloc);
5022 break;
5024 case 266:
5026 /* Line 1464 of yacc.c */
5027 #line 1607 "glsl_parser.yy"
5029 (yyval.node) = new(state) ast_selection_statement((yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].selection_rest_statement).then_statement,
5030 (yyvsp[(5) - (5)].selection_rest_statement).else_statement);
5031 (yyval.node)->set_location(yylloc);
5033 break;
5035 case 267:
5037 /* Line 1464 of yacc.c */
5038 #line 1616 "glsl_parser.yy"
5040 (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (3)].node);
5041 (yyval.selection_rest_statement).else_statement = (yyvsp[(3) - (3)].node);
5043 break;
5045 case 268:
5047 /* Line 1464 of yacc.c */
5048 #line 1621 "glsl_parser.yy"
5050 (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (1)].node);
5051 (yyval.selection_rest_statement).else_statement = NULL;
5053 break;
5055 case 269:
5057 /* Line 1464 of yacc.c */
5058 #line 1629 "glsl_parser.yy"
5060 (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].expression);
5062 break;
5064 case 270:
5066 /* Line 1464 of yacc.c */
5067 #line 1633 "glsl_parser.yy"
5069 void *ctx = state;
5070 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression));
5071 ast_declarator_list *declarator = new(ctx) ast_declarator_list((yyvsp[(1) - (4)].fully_specified_type));
5072 decl->set_location(yylloc);
5073 declarator->set_location(yylloc);
5075 declarator->declarations.push_tail(&decl->link);
5076 (yyval.node) = declarator;
5078 break;
5080 case 274:
5082 /* Line 1464 of yacc.c */
5083 #line 1656 "glsl_parser.yy"
5085 void *ctx = state;
5086 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_while,
5087 NULL, (yyvsp[(3) - (5)].node), NULL, (yyvsp[(5) - (5)].node));
5088 (yyval.node)->set_location(yylloc);
5090 break;
5092 case 275:
5094 /* Line 1464 of yacc.c */
5095 #line 1663 "glsl_parser.yy"
5097 void *ctx = state;
5098 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_do_while,
5099 NULL, (yyvsp[(5) - (7)].expression), NULL, (yyvsp[(2) - (7)].node));
5100 (yyval.node)->set_location(yylloc);
5102 break;
5104 case 276:
5106 /* Line 1464 of yacc.c */
5107 #line 1670 "glsl_parser.yy"
5109 void *ctx = state;
5110 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_for,
5111 (yyvsp[(3) - (6)].node), (yyvsp[(4) - (6)].for_rest_statement).cond, (yyvsp[(4) - (6)].for_rest_statement).rest, (yyvsp[(6) - (6)].node));
5112 (yyval.node)->set_location(yylloc);
5114 break;
5116 case 280:
5118 /* Line 1464 of yacc.c */
5119 #line 1686 "glsl_parser.yy"
5121 (yyval.node) = NULL;
5123 break;
5125 case 281:
5127 /* Line 1464 of yacc.c */
5128 #line 1693 "glsl_parser.yy"
5130 (yyval.for_rest_statement).cond = (yyvsp[(1) - (2)].node);
5131 (yyval.for_rest_statement).rest = NULL;
5133 break;
5135 case 282:
5137 /* Line 1464 of yacc.c */
5138 #line 1698 "glsl_parser.yy"
5140 (yyval.for_rest_statement).cond = (yyvsp[(1) - (3)].node);
5141 (yyval.for_rest_statement).rest = (yyvsp[(3) - (3)].expression);
5143 break;
5145 case 283:
5147 /* Line 1464 of yacc.c */
5148 #line 1707 "glsl_parser.yy"
5150 void *ctx = state;
5151 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_continue, NULL);
5152 (yyval.node)->set_location(yylloc);
5154 break;
5156 case 284:
5158 /* Line 1464 of yacc.c */
5159 #line 1713 "glsl_parser.yy"
5161 void *ctx = state;
5162 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_break, NULL);
5163 (yyval.node)->set_location(yylloc);
5165 break;
5167 case 285:
5169 /* Line 1464 of yacc.c */
5170 #line 1719 "glsl_parser.yy"
5172 void *ctx = state;
5173 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, NULL);
5174 (yyval.node)->set_location(yylloc);
5176 break;
5178 case 286:
5180 /* Line 1464 of yacc.c */
5181 #line 1725 "glsl_parser.yy"
5183 void *ctx = state;
5184 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, (yyvsp[(2) - (3)].expression));
5185 (yyval.node)->set_location(yylloc);
5187 break;
5189 case 287:
5191 /* Line 1464 of yacc.c */
5192 #line 1731 "glsl_parser.yy"
5194 void *ctx = state;
5195 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_discard, NULL);
5196 (yyval.node)->set_location(yylloc);
5198 break;
5200 case 288:
5202 /* Line 1464 of yacc.c */
5203 #line 1739 "glsl_parser.yy"
5204 { (yyval.node) = (yyvsp[(1) - (1)].function_definition); ;}
5205 break;
5207 case 289:
5209 /* Line 1464 of yacc.c */
5210 #line 1740 "glsl_parser.yy"
5211 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
5212 break;
5214 case 290:
5216 /* Line 1464 of yacc.c */
5217 #line 1741 "glsl_parser.yy"
5218 { (yyval.node) = NULL; ;}
5219 break;
5221 case 291:
5223 /* Line 1464 of yacc.c */
5224 #line 1746 "glsl_parser.yy"
5226 void *ctx = state;
5227 (yyval.function_definition) = new(ctx) ast_function_definition();
5228 (yyval.function_definition)->set_location(yylloc);
5229 (yyval.function_definition)->prototype = (yyvsp[(1) - (2)].function);
5230 (yyval.function_definition)->body = (yyvsp[(2) - (2)].compound_statement);
5232 state->symbols->pop_scope();
5234 break;
5238 /* Line 1464 of yacc.c */
5239 #line 5240 "glsl_parser.cpp"
5240 default: break;
5242 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
5244 YYPOPSTACK (yylen);
5245 yylen = 0;
5246 YY_STACK_PRINT (yyss, yyssp);
5248 *++yyvsp = yyval;
5249 *++yylsp = yyloc;
5251 /* Now `shift' the result of the reduction. Determine what state
5252 that goes to, based on the state we popped back to and the rule
5253 number reduced by. */
5255 yyn = yyr1[yyn];
5257 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
5258 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5259 yystate = yytable[yystate];
5260 else
5261 yystate = yydefgoto[yyn - YYNTOKENS];
5263 goto yynewstate;
5266 /*------------------------------------.
5267 | yyerrlab -- here on detecting error |
5268 `------------------------------------*/
5269 yyerrlab:
5270 /* If not already recovering from an error, report this error. */
5271 if (!yyerrstatus)
5273 ++yynerrs;
5274 #if ! YYERROR_VERBOSE
5275 yyerror (&yylloc, state, YY_("syntax error"));
5276 #else
5278 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
5279 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
5281 YYSIZE_T yyalloc = 2 * yysize;
5282 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
5283 yyalloc = YYSTACK_ALLOC_MAXIMUM;
5284 if (yymsg != yymsgbuf)
5285 YYSTACK_FREE (yymsg);
5286 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
5287 if (yymsg)
5288 yymsg_alloc = yyalloc;
5289 else
5291 yymsg = yymsgbuf;
5292 yymsg_alloc = sizeof yymsgbuf;
5296 if (0 < yysize && yysize <= yymsg_alloc)
5298 (void) yysyntax_error (yymsg, yystate, yychar);
5299 yyerror (&yylloc, state, yymsg);
5301 else
5303 yyerror (&yylloc, state, YY_("syntax error"));
5304 if (yysize != 0)
5305 goto yyexhaustedlab;
5308 #endif
5311 yyerror_range[1] = yylloc;
5313 if (yyerrstatus == 3)
5315 /* If just tried and failed to reuse lookahead token after an
5316 error, discard it. */
5318 if (yychar <= YYEOF)
5320 /* Return failure if at end of input. */
5321 if (yychar == YYEOF)
5322 YYABORT;
5324 else
5326 yydestruct ("Error: discarding",
5327 yytoken, &yylval, &yylloc, state);
5328 yychar = YYEMPTY;
5332 /* Else will try to reuse lookahead token after shifting the error
5333 token. */
5334 goto yyerrlab1;
5337 /*---------------------------------------------------.
5338 | yyerrorlab -- error raised explicitly by YYERROR. |
5339 `---------------------------------------------------*/
5340 yyerrorlab:
5342 /* Pacify compilers like GCC when the user code never invokes
5343 YYERROR and the label yyerrorlab therefore never appears in user
5344 code. */
5345 if (/*CONSTCOND*/ 0)
5346 goto yyerrorlab;
5348 yyerror_range[1] = yylsp[1-yylen];
5349 /* Do not reclaim the symbols of the rule which action triggered
5350 this YYERROR. */
5351 YYPOPSTACK (yylen);
5352 yylen = 0;
5353 YY_STACK_PRINT (yyss, yyssp);
5354 yystate = *yyssp;
5355 goto yyerrlab1;
5358 /*-------------------------------------------------------------.
5359 | yyerrlab1 -- common code for both syntax error and YYERROR. |
5360 `-------------------------------------------------------------*/
5361 yyerrlab1:
5362 yyerrstatus = 3; /* Each real token shifted decrements this. */
5364 for (;;)
5366 yyn = yypact[yystate];
5367 if (yyn != YYPACT_NINF)
5369 yyn += YYTERROR;
5370 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
5372 yyn = yytable[yyn];
5373 if (0 < yyn)
5374 break;
5378 /* Pop the current state because it cannot handle the error token. */
5379 if (yyssp == yyss)
5380 YYABORT;
5382 yyerror_range[1] = *yylsp;
5383 yydestruct ("Error: popping",
5384 yystos[yystate], yyvsp, yylsp, state);
5385 YYPOPSTACK (1);
5386 yystate = *yyssp;
5387 YY_STACK_PRINT (yyss, yyssp);
5390 *++yyvsp = yylval;
5392 yyerror_range[2] = yylloc;
5393 /* Using YYLLOC is tempting, but would change the location of
5394 the lookahead. YYLOC is available though. */
5395 YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
5396 *++yylsp = yyloc;
5398 /* Shift the error token. */
5399 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
5401 yystate = yyn;
5402 goto yynewstate;
5405 /*-------------------------------------.
5406 | yyacceptlab -- YYACCEPT comes here. |
5407 `-------------------------------------*/
5408 yyacceptlab:
5409 yyresult = 0;
5410 goto yyreturn;
5412 /*-----------------------------------.
5413 | yyabortlab -- YYABORT comes here. |
5414 `-----------------------------------*/
5415 yyabortlab:
5416 yyresult = 1;
5417 goto yyreturn;
5419 #if !defined(yyoverflow) || YYERROR_VERBOSE
5420 /*-------------------------------------------------.
5421 | yyexhaustedlab -- memory exhaustion comes here. |
5422 `-------------------------------------------------*/
5423 yyexhaustedlab:
5424 yyerror (&yylloc, state, YY_("memory exhausted"));
5425 yyresult = 2;
5426 /* Fall through. */
5427 #endif
5429 yyreturn:
5430 if (yychar != YYEMPTY)
5431 yydestruct ("Cleanup: discarding lookahead",
5432 yytoken, &yylval, &yylloc, state);
5433 /* Do not reclaim the symbols of the rule which action triggered
5434 this YYABORT or YYACCEPT. */
5435 YYPOPSTACK (yylen);
5436 YY_STACK_PRINT (yyss, yyssp);
5437 while (yyssp != yyss)
5439 yydestruct ("Cleanup: popping",
5440 yystos[*yyssp], yyvsp, yylsp, state);
5441 YYPOPSTACK (1);
5443 #ifndef yyoverflow
5444 if (yyss != yyssa)
5445 YYSTACK_FREE (yyss);
5446 #endif
5447 #if YYERROR_VERBOSE
5448 if (yymsg != yymsgbuf)
5449 YYSTACK_FREE (yymsg);
5450 #endif
5451 /* Make sure YYID is used. */
5452 return YYID (yyresult);