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