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