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