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