e7ae0e7a4515cc14fd2167d08a48a46b79abd4db
[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, 240, 241, 242, 243,
810 246, 248, 252, 261, 269, 280, 284, 291, 298, 305,
811 312, 319, 326, 327, 333, 337, 344, 350, 359, 363,
812 367, 368, 377, 378, 382, 383, 387, 393, 405, 409,
813 415, 422, 433, 434, 440, 446, 456, 457, 458, 459,
814 463, 464, 470, 476, 485, 486, 492, 501, 502, 508,
815 517, 518, 524, 530, 536, 545, 546, 552, 561, 562,
816 571, 572, 581, 582, 591, 592, 601, 602, 611, 612,
817 621, 622, 631, 632, 641, 642, 643, 644, 645, 646,
818 647, 648, 649, 650, 651, 655, 659, 675, 679, 683,
819 687, 701, 705, 706, 710, 715, 723, 734, 744, 759,
820 766, 771, 782, 794, 795, 796, 797, 801, 805, 806,
821 815, 824, 833, 842, 851, 864, 875, 884, 893, 902,
822 911, 920, 929, 943, 950, 961, 962, 966, 973, 974,
823 981, 1015, 1016, 1017, 1021, 1025, 1026, 1030, 1038, 1039,
824 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1050, 1051, 1059,
825 1060, 1066, 1075, 1081, 1087, 1096, 1097, 1098, 1099, 1100,
826 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110,
827 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120,
828 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130,
829 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140,
830 1141, 1142, 1143, 1144, 1145, 1146, 1150, 1161, 1172, 1186,
831 1192, 1201, 1206, 1214, 1229, 1234, 1242, 1248, 1257, 1261,
832 1267, 1268, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1282,
833 1288, 1297, 1298, 1302, 1308, 1317, 1327, 1339, 1345, 1354,
834 1363, 1368, 1376, 1380, 1394, 1398, 1399, 1403, 1410, 1417,
835 1427, 1428, 1432, 1434, 1440, 1445, 1454, 1460, 1466, 1472,
836 1478, 1487, 1488, 1489, 1493
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 110:
2891 case 120:
2892 case 130:
2893 /* FINISHME: Check against implementation support versions. */
2894 state->language_version = (yyvsp[(2) - (3)].n);
2895 break;
2896 default:
2897 _mesa_glsl_error(& (yylsp[(2) - (3)]), state, "Shading language version"
2898 "%u is not supported\n", (yyvsp[(2) - (3)].n));
2899 break;
2900 }
2901 ;}
2902 break;
2903
2904 case 12:
2905
2906 /* Line 1464 of yacc.c */
2907 #line 253 "glsl_parser.ypp"
2908 {
2909 if (!_mesa_glsl_process_extension((yyvsp[(2) - (5)].identifier), & (yylsp[(2) - (5)]), (yyvsp[(4) - (5)].identifier), & (yylsp[(4) - (5)]), state)) {
2910 YYERROR;
2911 }
2912 ;}
2913 break;
2914
2915 case 13:
2916
2917 /* Line 1464 of yacc.c */
2918 #line 262 "glsl_parser.ypp"
2919 {
2920 /* FINISHME: The NULL test is only required because 'precision'
2921 * FINISHME: statements are not yet supported.
2922 */
2923 if ((yyvsp[(1) - (1)].node) != NULL)
2924 state->translation_unit.push_tail(& (yyvsp[(1) - (1)].node)->link);
2925 ;}
2926 break;
2927
2928 case 14:
2929
2930 /* Line 1464 of yacc.c */
2931 #line 270 "glsl_parser.ypp"
2932 {
2933 /* FINISHME: The NULL test is only required because 'precision'
2934 * FINISHME: statements are not yet supported.
2935 */
2936 if ((yyvsp[(2) - (2)].node) != NULL)
2937 state->translation_unit.push_tail(& (yyvsp[(2) - (2)].node)->link);
2938 ;}
2939 break;
2940
2941 case 16:
2942
2943 /* Line 1464 of yacc.c */
2944 #line 285 "glsl_parser.ypp"
2945 {
2946 void *ctx = state;
2947 (yyval.expression) = new(ctx) ast_expression(ast_identifier, NULL, NULL, NULL);
2948 (yyval.expression)->set_location(yylloc);
2949 (yyval.expression)->primary_expression.identifier = (yyvsp[(1) - (1)].identifier);
2950 ;}
2951 break;
2952
2953 case 17:
2954
2955 /* Line 1464 of yacc.c */
2956 #line 292 "glsl_parser.ypp"
2957 {
2958 void *ctx = state;
2959 (yyval.expression) = new(ctx) ast_expression(ast_int_constant, NULL, NULL, NULL);
2960 (yyval.expression)->set_location(yylloc);
2961 (yyval.expression)->primary_expression.int_constant = (yyvsp[(1) - (1)].n);
2962 ;}
2963 break;
2964
2965 case 18:
2966
2967 /* Line 1464 of yacc.c */
2968 #line 299 "glsl_parser.ypp"
2969 {
2970 void *ctx = state;
2971 (yyval.expression) = new(ctx) ast_expression(ast_uint_constant, NULL, NULL, NULL);
2972 (yyval.expression)->set_location(yylloc);
2973 (yyval.expression)->primary_expression.uint_constant = (yyvsp[(1) - (1)].n);
2974 ;}
2975 break;
2976
2977 case 19:
2978
2979 /* Line 1464 of yacc.c */
2980 #line 306 "glsl_parser.ypp"
2981 {
2982 void *ctx = state;
2983 (yyval.expression) = new(ctx) ast_expression(ast_float_constant, NULL, NULL, NULL);
2984 (yyval.expression)->set_location(yylloc);
2985 (yyval.expression)->primary_expression.float_constant = (yyvsp[(1) - (1)].real);
2986 ;}
2987 break;
2988
2989 case 20:
2990
2991 /* Line 1464 of yacc.c */
2992 #line 313 "glsl_parser.ypp"
2993 {
2994 void *ctx = state;
2995 (yyval.expression) = new(ctx) ast_expression(ast_bool_constant, NULL, NULL, NULL);
2996 (yyval.expression)->set_location(yylloc);
2997 (yyval.expression)->primary_expression.bool_constant = (yyvsp[(1) - (1)].n);
2998 ;}
2999 break;
3000
3001 case 21:
3002
3003 /* Line 1464 of yacc.c */
3004 #line 320 "glsl_parser.ypp"
3005 {
3006 (yyval.expression) = (yyvsp[(2) - (3)].expression);
3007 ;}
3008 break;
3009
3010 case 23:
3011
3012 /* Line 1464 of yacc.c */
3013 #line 328 "glsl_parser.ypp"
3014 {
3015 void *ctx = state;
3016 (yyval.expression) = new(ctx) ast_expression(ast_array_index, (yyvsp[(1) - (4)].expression), (yyvsp[(3) - (4)].expression), NULL);
3017 (yyval.expression)->set_location(yylloc);
3018 ;}
3019 break;
3020
3021 case 24:
3022
3023 /* Line 1464 of yacc.c */
3024 #line 334 "glsl_parser.ypp"
3025 {
3026 (yyval.expression) = (yyvsp[(1) - (1)].expression);
3027 ;}
3028 break;
3029
3030 case 25:
3031
3032 /* Line 1464 of yacc.c */
3033 #line 338 "glsl_parser.ypp"
3034 {
3035 void *ctx = state;
3036 (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), NULL, NULL);
3037 (yyval.expression)->set_location(yylloc);
3038 (yyval.expression)->primary_expression.identifier = (yyvsp[(3) - (3)].identifier);
3039 ;}
3040 break;
3041
3042 case 26:
3043
3044 /* Line 1464 of yacc.c */
3045 #line 345 "glsl_parser.ypp"
3046 {
3047 void *ctx = state;
3048 (yyval.expression) = new(ctx) ast_expression(ast_post_inc, (yyvsp[(1) - (2)].expression), NULL, NULL);
3049 (yyval.expression)->set_location(yylloc);
3050 ;}
3051 break;
3052
3053 case 27:
3054
3055 /* Line 1464 of yacc.c */
3056 #line 351 "glsl_parser.ypp"
3057 {
3058 void *ctx = state;
3059 (yyval.expression) = new(ctx) ast_expression(ast_post_dec, (yyvsp[(1) - (2)].expression), NULL, NULL);
3060 (yyval.expression)->set_location(yylloc);
3061 ;}
3062 break;
3063
3064 case 31:
3065
3066 /* Line 1464 of yacc.c */
3067 #line 369 "glsl_parser.ypp"
3068 {
3069 void *ctx = state;
3070 (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL);
3071 (yyval.expression)->set_location(yylloc);
3072 ;}
3073 break;
3074
3075 case 36:
3076
3077 /* Line 1464 of yacc.c */
3078 #line 388 "glsl_parser.ypp"
3079 {
3080 (yyval.expression) = (yyvsp[(1) - (2)].expression);
3081 (yyval.expression)->set_location(yylloc);
3082 (yyval.expression)->expressions.push_tail(& (yyvsp[(2) - (2)].expression)->link);
3083 ;}
3084 break;
3085
3086 case 37:
3087
3088 /* Line 1464 of yacc.c */
3089 #line 394 "glsl_parser.ypp"
3090 {
3091 (yyval.expression) = (yyvsp[(1) - (3)].expression);
3092 (yyval.expression)->set_location(yylloc);
3093 (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].expression)->link);
3094 ;}
3095 break;
3096
3097 case 39:
3098
3099 /* Line 1464 of yacc.c */
3100 #line 410 "glsl_parser.ypp"
3101 {
3102 void *ctx = state;
3103 (yyval.expression) = new(ctx) ast_function_expression((yyvsp[(1) - (1)].type_specifier));
3104 (yyval.expression)->set_location(yylloc);
3105 ;}
3106 break;
3107
3108 case 40:
3109
3110 /* Line 1464 of yacc.c */
3111 #line 416 "glsl_parser.ypp"
3112 {
3113 void *ctx = state;
3114 ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier));
3115 (yyval.expression) = new(ctx) ast_function_expression(callee);
3116 (yyval.expression)->set_location(yylloc);
3117 ;}
3118 break;
3119
3120 case 41:
3121
3122 /* Line 1464 of yacc.c */
3123 #line 423 "glsl_parser.ypp"
3124 {
3125 void *ctx = state;
3126 ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier));
3127 (yyval.expression) = new(ctx) ast_function_expression(callee);
3128 (yyval.expression)->set_location(yylloc);
3129 ;}
3130 break;
3131
3132 case 43:
3133
3134 /* Line 1464 of yacc.c */
3135 #line 435 "glsl_parser.ypp"
3136 {
3137 void *ctx = state;
3138 (yyval.expression) = new(ctx) ast_expression(ast_pre_inc, (yyvsp[(2) - (2)].expression), NULL, NULL);
3139 (yyval.expression)->set_location(yylloc);
3140 ;}
3141 break;
3142
3143 case 44:
3144
3145 /* Line 1464 of yacc.c */
3146 #line 441 "glsl_parser.ypp"
3147 {
3148 void *ctx = state;
3149 (yyval.expression) = new(ctx) ast_expression(ast_pre_dec, (yyvsp[(2) - (2)].expression), NULL, NULL);
3150 (yyval.expression)->set_location(yylloc);
3151 ;}
3152 break;
3153
3154 case 45:
3155
3156 /* Line 1464 of yacc.c */
3157 #line 447 "glsl_parser.ypp"
3158 {
3159 void *ctx = state;
3160 (yyval.expression) = new(ctx) ast_expression((yyvsp[(1) - (2)].n), (yyvsp[(2) - (2)].expression), NULL, NULL);
3161 (yyval.expression)->set_location(yylloc);
3162 ;}
3163 break;
3164
3165 case 46:
3166
3167 /* Line 1464 of yacc.c */
3168 #line 456 "glsl_parser.ypp"
3169 { (yyval.n) = ast_plus; ;}
3170 break;
3171
3172 case 47:
3173
3174 /* Line 1464 of yacc.c */
3175 #line 457 "glsl_parser.ypp"
3176 { (yyval.n) = ast_neg; ;}
3177 break;
3178
3179 case 48:
3180
3181 /* Line 1464 of yacc.c */
3182 #line 458 "glsl_parser.ypp"
3183 { (yyval.n) = ast_logic_not; ;}
3184 break;
3185
3186 case 49:
3187
3188 /* Line 1464 of yacc.c */
3189 #line 459 "glsl_parser.ypp"
3190 { (yyval.n) = ast_bit_not; ;}
3191 break;
3192
3193 case 51:
3194
3195 /* Line 1464 of yacc.c */
3196 #line 465 "glsl_parser.ypp"
3197 {
3198 void *ctx = state;
3199 (yyval.expression) = new(ctx) ast_expression_bin(ast_mul, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3200 (yyval.expression)->set_location(yylloc);
3201 ;}
3202 break;
3203
3204 case 52:
3205
3206 /* Line 1464 of yacc.c */
3207 #line 471 "glsl_parser.ypp"
3208 {
3209 void *ctx = state;
3210 (yyval.expression) = new(ctx) ast_expression_bin(ast_div, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3211 (yyval.expression)->set_location(yylloc);
3212 ;}
3213 break;
3214
3215 case 53:
3216
3217 /* Line 1464 of yacc.c */
3218 #line 477 "glsl_parser.ypp"
3219 {
3220 void *ctx = state;
3221 (yyval.expression) = new(ctx) ast_expression_bin(ast_mod, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3222 (yyval.expression)->set_location(yylloc);
3223 ;}
3224 break;
3225
3226 case 55:
3227
3228 /* Line 1464 of yacc.c */
3229 #line 487 "glsl_parser.ypp"
3230 {
3231 void *ctx = state;
3232 (yyval.expression) = new(ctx) ast_expression_bin(ast_add, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3233 (yyval.expression)->set_location(yylloc);
3234 ;}
3235 break;
3236
3237 case 56:
3238
3239 /* Line 1464 of yacc.c */
3240 #line 493 "glsl_parser.ypp"
3241 {
3242 void *ctx = state;
3243 (yyval.expression) = new(ctx) ast_expression_bin(ast_sub, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3244 (yyval.expression)->set_location(yylloc);
3245 ;}
3246 break;
3247
3248 case 58:
3249
3250 /* Line 1464 of yacc.c */
3251 #line 503 "glsl_parser.ypp"
3252 {
3253 void *ctx = state;
3254 (yyval.expression) = new(ctx) ast_expression_bin(ast_lshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3255 (yyval.expression)->set_location(yylloc);
3256 ;}
3257 break;
3258
3259 case 59:
3260
3261 /* Line 1464 of yacc.c */
3262 #line 509 "glsl_parser.ypp"
3263 {
3264 void *ctx = state;
3265 (yyval.expression) = new(ctx) ast_expression_bin(ast_rshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3266 (yyval.expression)->set_location(yylloc);
3267 ;}
3268 break;
3269
3270 case 61:
3271
3272 /* Line 1464 of yacc.c */
3273 #line 519 "glsl_parser.ypp"
3274 {
3275 void *ctx = state;
3276 (yyval.expression) = new(ctx) ast_expression_bin(ast_less, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3277 (yyval.expression)->set_location(yylloc);
3278 ;}
3279 break;
3280
3281 case 62:
3282
3283 /* Line 1464 of yacc.c */
3284 #line 525 "glsl_parser.ypp"
3285 {
3286 void *ctx = state;
3287 (yyval.expression) = new(ctx) ast_expression_bin(ast_greater, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3288 (yyval.expression)->set_location(yylloc);
3289 ;}
3290 break;
3291
3292 case 63:
3293
3294 /* Line 1464 of yacc.c */
3295 #line 531 "glsl_parser.ypp"
3296 {
3297 void *ctx = state;
3298 (yyval.expression) = new(ctx) ast_expression_bin(ast_lequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3299 (yyval.expression)->set_location(yylloc);
3300 ;}
3301 break;
3302
3303 case 64:
3304
3305 /* Line 1464 of yacc.c */
3306 #line 537 "glsl_parser.ypp"
3307 {
3308 void *ctx = state;
3309 (yyval.expression) = new(ctx) ast_expression_bin(ast_gequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3310 (yyval.expression)->set_location(yylloc);
3311 ;}
3312 break;
3313
3314 case 66:
3315
3316 /* Line 1464 of yacc.c */
3317 #line 547 "glsl_parser.ypp"
3318 {
3319 void *ctx = state;
3320 (yyval.expression) = new(ctx) ast_expression_bin(ast_equal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3321 (yyval.expression)->set_location(yylloc);
3322 ;}
3323 break;
3324
3325 case 67:
3326
3327 /* Line 1464 of yacc.c */
3328 #line 553 "glsl_parser.ypp"
3329 {
3330 void *ctx = state;
3331 (yyval.expression) = new(ctx) ast_expression_bin(ast_nequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3332 (yyval.expression)->set_location(yylloc);
3333 ;}
3334 break;
3335
3336 case 69:
3337
3338 /* Line 1464 of yacc.c */
3339 #line 563 "glsl_parser.ypp"
3340 {
3341 void *ctx = state;
3342 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3343 (yyval.expression)->set_location(yylloc);
3344 ;}
3345 break;
3346
3347 case 71:
3348
3349 /* Line 1464 of yacc.c */
3350 #line 573 "glsl_parser.ypp"
3351 {
3352 void *ctx = state;
3353 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3354 (yyval.expression)->set_location(yylloc);
3355 ;}
3356 break;
3357
3358 case 73:
3359
3360 /* Line 1464 of yacc.c */
3361 #line 583 "glsl_parser.ypp"
3362 {
3363 void *ctx = state;
3364 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3365 (yyval.expression)->set_location(yylloc);
3366 ;}
3367 break;
3368
3369 case 75:
3370
3371 /* Line 1464 of yacc.c */
3372 #line 593 "glsl_parser.ypp"
3373 {
3374 void *ctx = state;
3375 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_and, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3376 (yyval.expression)->set_location(yylloc);
3377 ;}
3378 break;
3379
3380 case 77:
3381
3382 /* Line 1464 of yacc.c */
3383 #line 603 "glsl_parser.ypp"
3384 {
3385 void *ctx = state;
3386 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3387 (yyval.expression)->set_location(yylloc);
3388 ;}
3389 break;
3390
3391 case 79:
3392
3393 /* Line 1464 of yacc.c */
3394 #line 613 "glsl_parser.ypp"
3395 {
3396 void *ctx = state;
3397 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3398 (yyval.expression)->set_location(yylloc);
3399 ;}
3400 break;
3401
3402 case 81:
3403
3404 /* Line 1464 of yacc.c */
3405 #line 623 "glsl_parser.ypp"
3406 {
3407 void *ctx = state;
3408 (yyval.expression) = new(ctx) ast_expression(ast_conditional, (yyvsp[(1) - (5)].expression), (yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].expression));
3409 (yyval.expression)->set_location(yylloc);
3410 ;}
3411 break;
3412
3413 case 83:
3414
3415 /* Line 1464 of yacc.c */
3416 #line 633 "glsl_parser.ypp"
3417 {
3418 void *ctx = state;
3419 (yyval.expression) = new(ctx) ast_expression((yyvsp[(2) - (3)].n), (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL);
3420 (yyval.expression)->set_location(yylloc);
3421 ;}
3422 break;
3423
3424 case 84:
3425
3426 /* Line 1464 of yacc.c */
3427 #line 641 "glsl_parser.ypp"
3428 { (yyval.n) = ast_assign; ;}
3429 break;
3430
3431 case 85:
3432
3433 /* Line 1464 of yacc.c */
3434 #line 642 "glsl_parser.ypp"
3435 { (yyval.n) = ast_mul_assign; ;}
3436 break;
3437
3438 case 86:
3439
3440 /* Line 1464 of yacc.c */
3441 #line 643 "glsl_parser.ypp"
3442 { (yyval.n) = ast_div_assign; ;}
3443 break;
3444
3445 case 87:
3446
3447 /* Line 1464 of yacc.c */
3448 #line 644 "glsl_parser.ypp"
3449 { (yyval.n) = ast_mod_assign; ;}
3450 break;
3451
3452 case 88:
3453
3454 /* Line 1464 of yacc.c */
3455 #line 645 "glsl_parser.ypp"
3456 { (yyval.n) = ast_add_assign; ;}
3457 break;
3458
3459 case 89:
3460
3461 /* Line 1464 of yacc.c */
3462 #line 646 "glsl_parser.ypp"
3463 { (yyval.n) = ast_sub_assign; ;}
3464 break;
3465
3466 case 90:
3467
3468 /* Line 1464 of yacc.c */
3469 #line 647 "glsl_parser.ypp"
3470 { (yyval.n) = ast_ls_assign; ;}
3471 break;
3472
3473 case 91:
3474
3475 /* Line 1464 of yacc.c */
3476 #line 648 "glsl_parser.ypp"
3477 { (yyval.n) = ast_rs_assign; ;}
3478 break;
3479
3480 case 92:
3481
3482 /* Line 1464 of yacc.c */
3483 #line 649 "glsl_parser.ypp"
3484 { (yyval.n) = ast_and_assign; ;}
3485 break;
3486
3487 case 93:
3488
3489 /* Line 1464 of yacc.c */
3490 #line 650 "glsl_parser.ypp"
3491 { (yyval.n) = ast_xor_assign; ;}
3492 break;
3493
3494 case 94:
3495
3496 /* Line 1464 of yacc.c */
3497 #line 651 "glsl_parser.ypp"
3498 { (yyval.n) = ast_or_assign; ;}
3499 break;
3500
3501 case 95:
3502
3503 /* Line 1464 of yacc.c */
3504 #line 656 "glsl_parser.ypp"
3505 {
3506 (yyval.expression) = (yyvsp[(1) - (1)].expression);
3507 ;}
3508 break;
3509
3510 case 96:
3511
3512 /* Line 1464 of yacc.c */
3513 #line 660 "glsl_parser.ypp"
3514 {
3515 void *ctx = state;
3516 if ((yyvsp[(1) - (3)].expression)->oper != ast_sequence) {
3517 (yyval.expression) = new(ctx) ast_expression(ast_sequence, NULL, NULL, NULL);
3518 (yyval.expression)->set_location(yylloc);
3519 (yyval.expression)->expressions.push_tail(& (yyvsp[(1) - (3)].expression)->link);
3520 } else {
3521 (yyval.expression) = (yyvsp[(1) - (3)].expression);
3522 }
3523
3524 (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].expression)->link);
3525 ;}
3526 break;
3527
3528 case 98:
3529
3530 /* Line 1464 of yacc.c */
3531 #line 680 "glsl_parser.ypp"
3532 {
3533 (yyval.node) = (yyvsp[(1) - (2)].function);
3534 ;}
3535 break;
3536
3537 case 99:
3538
3539 /* Line 1464 of yacc.c */
3540 #line 684 "glsl_parser.ypp"
3541 {
3542 (yyval.node) = (yyvsp[(1) - (2)].declarator_list);
3543 ;}
3544 break;
3545
3546 case 100:
3547
3548 /* Line 1464 of yacc.c */
3549 #line 688 "glsl_parser.ypp"
3550 {
3551 if (((yyvsp[(3) - (4)].type_specifier)->type_specifier != ast_float)
3552 && ((yyvsp[(3) - (4)].type_specifier)->type_specifier != ast_int)) {
3553 _mesa_glsl_error(& (yylsp[(3) - (4)]), state, "global precision qualifier can "
3554 "only be applied to `int' or `float'\n");
3555 YYERROR;
3556 }
3557
3558 (yyval.node) = NULL; /* FINISHME */
3559 ;}
3560 break;
3561
3562 case 104:
3563
3564 /* Line 1464 of yacc.c */
3565 #line 711 "glsl_parser.ypp"
3566 {
3567 (yyval.function) = (yyvsp[(1) - (2)].function);
3568 (yyval.function)->parameters.push_tail(& (yyvsp[(2) - (2)].parameter_declarator)->link);
3569 ;}
3570 break;
3571
3572 case 105:
3573
3574 /* Line 1464 of yacc.c */
3575 #line 716 "glsl_parser.ypp"
3576 {
3577 (yyval.function) = (yyvsp[(1) - (3)].function);
3578 (yyval.function)->parameters.push_tail(& (yyvsp[(3) - (3)].parameter_declarator)->link);
3579 ;}
3580 break;
3581
3582 case 106:
3583
3584 /* Line 1464 of yacc.c */
3585 #line 724 "glsl_parser.ypp"
3586 {
3587 void *ctx = state;
3588 (yyval.function) = new(ctx) ast_function();
3589 (yyval.function)->set_location(yylloc);
3590 (yyval.function)->return_type = (yyvsp[(1) - (3)].fully_specified_type);
3591 (yyval.function)->identifier = (yyvsp[(2) - (3)].identifier);
3592 ;}
3593 break;
3594
3595 case 107:
3596
3597 /* Line 1464 of yacc.c */
3598 #line 735 "glsl_parser.ypp"
3599 {
3600 void *ctx = state;
3601 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
3602 (yyval.parameter_declarator)->set_location(yylloc);
3603 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
3604 (yyval.parameter_declarator)->type->set_location(yylloc);
3605 (yyval.parameter_declarator)->type->specifier = (yyvsp[(1) - (2)].type_specifier);
3606 (yyval.parameter_declarator)->identifier = (yyvsp[(2) - (2)].identifier);
3607 ;}
3608 break;
3609
3610 case 108:
3611
3612 /* Line 1464 of yacc.c */
3613 #line 745 "glsl_parser.ypp"
3614 {
3615 void *ctx = state;
3616 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
3617 (yyval.parameter_declarator)->set_location(yylloc);
3618 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
3619 (yyval.parameter_declarator)->type->set_location(yylloc);
3620 (yyval.parameter_declarator)->type->specifier = (yyvsp[(1) - (5)].type_specifier);
3621 (yyval.parameter_declarator)->identifier = (yyvsp[(2) - (5)].identifier);
3622 (yyval.parameter_declarator)->is_array = true;
3623 (yyval.parameter_declarator)->array_size = (yyvsp[(4) - (5)].expression);
3624 ;}
3625 break;
3626
3627 case 109:
3628
3629 /* Line 1464 of yacc.c */
3630 #line 760 "glsl_parser.ypp"
3631 {
3632 (yyvsp[(1) - (3)].type_qualifier).i |= (yyvsp[(2) - (3)].type_qualifier).i;
3633
3634 (yyval.parameter_declarator) = (yyvsp[(3) - (3)].parameter_declarator);
3635 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (3)].type_qualifier).q;
3636 ;}
3637 break;
3638
3639 case 110:
3640
3641 /* Line 1464 of yacc.c */
3642 #line 767 "glsl_parser.ypp"
3643 {
3644 (yyval.parameter_declarator) = (yyvsp[(2) - (2)].parameter_declarator);
3645 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].type_qualifier).q;
3646 ;}
3647 break;
3648
3649 case 111:
3650
3651 /* Line 1464 of yacc.c */
3652 #line 772 "glsl_parser.ypp"
3653 {
3654 void *ctx = state;
3655 (yyvsp[(1) - (3)].type_qualifier).i |= (yyvsp[(2) - (3)].type_qualifier).i;
3656
3657 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
3658 (yyval.parameter_declarator)->set_location(yylloc);
3659 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
3660 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (3)].type_qualifier).q;
3661 (yyval.parameter_declarator)->type->specifier = (yyvsp[(3) - (3)].type_specifier);
3662 ;}
3663 break;
3664
3665 case 112:
3666
3667 /* Line 1464 of yacc.c */
3668 #line 783 "glsl_parser.ypp"
3669 {
3670 void *ctx = state;
3671 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
3672 (yyval.parameter_declarator)->set_location(yylloc);
3673 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
3674 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].type_qualifier).q;
3675 (yyval.parameter_declarator)->type->specifier = (yyvsp[(2) - (2)].type_specifier);
3676 ;}
3677 break;
3678
3679 case 113:
3680
3681 /* Line 1464 of yacc.c */
3682 #line 794 "glsl_parser.ypp"
3683 { (yyval.type_qualifier).i = 0; ;}
3684 break;
3685
3686 case 114:
3687
3688 /* Line 1464 of yacc.c */
3689 #line 795 "glsl_parser.ypp"
3690 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; ;}
3691 break;
3692
3693 case 115:
3694
3695 /* Line 1464 of yacc.c */
3696 #line 796 "glsl_parser.ypp"
3697 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.out = 1; ;}
3698 break;
3699
3700 case 116:
3701
3702 /* Line 1464 of yacc.c */
3703 #line 797 "glsl_parser.ypp"
3704 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; (yyval.type_qualifier).q.out = 1; ;}
3705 break;
3706
3707 case 119:
3708
3709 /* Line 1464 of yacc.c */
3710 #line 807 "glsl_parser.ypp"
3711 {
3712 void *ctx = state;
3713 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (3)].identifier), false, NULL, NULL);
3714 decl->set_location(yylloc);
3715
3716 (yyval.declarator_list) = (yyvsp[(1) - (3)].declarator_list);
3717 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3718 ;}
3719 break;
3720
3721 case 120:
3722
3723 /* Line 1464 of yacc.c */
3724 #line 816 "glsl_parser.ypp"
3725 {
3726 void *ctx = state;
3727 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), true, NULL, NULL);
3728 decl->set_location(yylloc);
3729
3730 (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list);
3731 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3732 ;}
3733 break;
3734
3735 case 121:
3736
3737 /* Line 1464 of yacc.c */
3738 #line 825 "glsl_parser.ypp"
3739 {
3740 void *ctx = state;
3741 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (6)].identifier), true, (yyvsp[(5) - (6)].expression), NULL);
3742 decl->set_location(yylloc);
3743
3744 (yyval.declarator_list) = (yyvsp[(1) - (6)].declarator_list);
3745 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3746 ;}
3747 break;
3748
3749 case 122:
3750
3751 /* Line 1464 of yacc.c */
3752 #line 834 "glsl_parser.ypp"
3753 {
3754 void *ctx = state;
3755 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (7)].identifier), true, NULL, (yyvsp[(7) - (7)].expression));
3756 decl->set_location(yylloc);
3757
3758 (yyval.declarator_list) = (yyvsp[(1) - (7)].declarator_list);
3759 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3760 ;}
3761 break;
3762
3763 case 123:
3764
3765 /* Line 1464 of yacc.c */
3766 #line 843 "glsl_parser.ypp"
3767 {
3768 void *ctx = state;
3769 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (8)].identifier), true, (yyvsp[(5) - (8)].expression), (yyvsp[(8) - (8)].expression));
3770 decl->set_location(yylloc);
3771
3772 (yyval.declarator_list) = (yyvsp[(1) - (8)].declarator_list);
3773 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3774 ;}
3775 break;
3776
3777 case 124:
3778
3779 /* Line 1464 of yacc.c */
3780 #line 852 "glsl_parser.ypp"
3781 {
3782 void *ctx = state;
3783 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), false, NULL, (yyvsp[(5) - (5)].expression));
3784 decl->set_location(yylloc);
3785
3786 (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list);
3787 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3788 ;}
3789 break;
3790
3791 case 125:
3792
3793 /* Line 1464 of yacc.c */
3794 #line 865 "glsl_parser.ypp"
3795 {
3796 void *ctx = state;
3797 if ((yyvsp[(1) - (1)].fully_specified_type)->specifier->type_specifier != ast_struct) {
3798 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "empty declaration list\n");
3799 YYERROR;
3800 } else {
3801 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (1)].fully_specified_type));
3802 (yyval.declarator_list)->set_location(yylloc);
3803 }
3804 ;}
3805 break;
3806
3807 case 126:
3808
3809 /* Line 1464 of yacc.c */
3810 #line 876 "glsl_parser.ypp"
3811 {
3812 void *ctx = state;
3813 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL);
3814
3815 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (2)].fully_specified_type));
3816 (yyval.declarator_list)->set_location(yylloc);
3817 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3818 ;}
3819 break;
3820
3821 case 127:
3822
3823 /* Line 1464 of yacc.c */
3824 #line 885 "glsl_parser.ypp"
3825 {
3826 void *ctx = state;
3827 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), true, NULL, NULL);
3828
3829 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (4)].fully_specified_type));
3830 (yyval.declarator_list)->set_location(yylloc);
3831 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3832 ;}
3833 break;
3834
3835 case 128:
3836
3837 /* Line 1464 of yacc.c */
3838 #line 894 "glsl_parser.ypp"
3839 {
3840 void *ctx = state;
3841 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (5)].identifier), true, (yyvsp[(4) - (5)].expression), NULL);
3842
3843 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (5)].fully_specified_type));
3844 (yyval.declarator_list)->set_location(yylloc);
3845 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3846 ;}
3847 break;
3848
3849 case 129:
3850
3851 /* Line 1464 of yacc.c */
3852 #line 903 "glsl_parser.ypp"
3853 {
3854 void *ctx = state;
3855 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (6)].identifier), true, NULL, (yyvsp[(6) - (6)].expression));
3856
3857 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (6)].fully_specified_type));
3858 (yyval.declarator_list)->set_location(yylloc);
3859 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3860 ;}
3861 break;
3862
3863 case 130:
3864
3865 /* Line 1464 of yacc.c */
3866 #line 912 "glsl_parser.ypp"
3867 {
3868 void *ctx = state;
3869 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (7)].identifier), true, (yyvsp[(4) - (7)].expression), (yyvsp[(7) - (7)].expression));
3870
3871 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (7)].fully_specified_type));
3872 (yyval.declarator_list)->set_location(yylloc);
3873 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3874 ;}
3875 break;
3876
3877 case 131:
3878
3879 /* Line 1464 of yacc.c */
3880 #line 921 "glsl_parser.ypp"
3881 {
3882 void *ctx = state;
3883 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression));
3884
3885 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (4)].fully_specified_type));
3886 (yyval.declarator_list)->set_location(yylloc);
3887 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3888 ;}
3889 break;
3890
3891 case 132:
3892
3893 /* Line 1464 of yacc.c */
3894 #line 930 "glsl_parser.ypp"
3895 {
3896 void *ctx = state;
3897 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL);
3898
3899 (yyval.declarator_list) = new(ctx) ast_declarator_list(NULL);
3900 (yyval.declarator_list)->set_location(yylloc);
3901 (yyval.declarator_list)->invariant = true;
3902
3903 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3904 ;}
3905 break;
3906
3907 case 133:
3908
3909 /* Line 1464 of yacc.c */
3910 #line 944 "glsl_parser.ypp"
3911 {
3912 void *ctx = state;
3913 (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
3914 (yyval.fully_specified_type)->set_location(yylloc);
3915 (yyval.fully_specified_type)->specifier = (yyvsp[(1) - (1)].type_specifier);
3916 ;}
3917 break;
3918
3919 case 134:
3920
3921 /* Line 1464 of yacc.c */
3922 #line 951 "glsl_parser.ypp"
3923 {
3924 void *ctx = state;
3925 (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
3926 (yyval.fully_specified_type)->set_location(yylloc);
3927 (yyval.fully_specified_type)->qualifier = (yyvsp[(1) - (2)].type_qualifier).q;
3928 (yyval.fully_specified_type)->specifier = (yyvsp[(2) - (2)].type_specifier);
3929 ;}
3930 break;
3931
3932 case 135:
3933
3934 /* Line 1464 of yacc.c */
3935 #line 961 "glsl_parser.ypp"
3936 { (yyval.type_qualifier).i = 0; ;}
3937 break;
3938
3939 case 137:
3940
3941 /* Line 1464 of yacc.c */
3942 #line 967 "glsl_parser.ypp"
3943 {
3944 (yyval.type_qualifier) = (yyvsp[(3) - (4)].type_qualifier);
3945 ;}
3946 break;
3947
3948 case 139:
3949
3950 /* Line 1464 of yacc.c */
3951 #line 975 "glsl_parser.ypp"
3952 {
3953 (yyval.type_qualifier).i = (yyvsp[(1) - (3)].type_qualifier).i | (yyvsp[(3) - (3)].type_qualifier).i;
3954 ;}
3955 break;
3956
3957 case 140:
3958
3959 /* Line 1464 of yacc.c */
3960 #line 982 "glsl_parser.ypp"
3961 {
3962 (yyval.type_qualifier).i = 0;
3963
3964 if (state->ARB_fragment_coord_conventions_enable) {
3965 bool got_one = false;
3966
3967 if (strcmp((yyvsp[(1) - (1)].identifier), "origin_upper_left") == 0) {
3968 got_one = true;
3969 (yyval.type_qualifier).q.origin_upper_left = 1;
3970 } else if (strcmp((yyvsp[(1) - (1)].identifier), "pixel_center_integer") == 0) {
3971 got_one = true;
3972 (yyval.type_qualifier).q.pixel_center_integer = 1;
3973 }
3974
3975 if (state->ARB_fragment_coord_conventions_warn && got_one) {
3976 _mesa_glsl_warning(& (yylsp[(1) - (1)]), state,
3977 "GL_ARB_fragment_coord_conventions layout "
3978 "identifier `%s' used\n", (yyvsp[(1) - (1)].identifier));
3979 }
3980 }
3981
3982 /* If the identifier didn't match any known layout identifiers,
3983 * emit an error.
3984 */
3985 if ((yyval.type_qualifier).i == 0) {
3986 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "unrecognized layout identifier "
3987 "`%s'\n", (yyvsp[(1) - (1)].identifier));
3988 YYERROR;
3989 }
3990 ;}
3991 break;
3992
3993 case 141:
3994
3995 /* Line 1464 of yacc.c */
3996 #line 1015 "glsl_parser.ypp"
3997 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.smooth = 1; ;}
3998 break;
3999
4000 case 142:
4001
4002 /* Line 1464 of yacc.c */
4003 #line 1016 "glsl_parser.ypp"
4004 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.flat = 1; ;}
4005 break;
4006
4007 case 143:
4008
4009 /* Line 1464 of yacc.c */
4010 #line 1017 "glsl_parser.ypp"
4011 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.noperspective = 1; ;}
4012 break;
4013
4014 case 144:
4015
4016 /* Line 1464 of yacc.c */
4017 #line 1021 "glsl_parser.ypp"
4018 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.constant = 1; ;}
4019 break;
4020
4021 case 146:
4022
4023 /* Line 1464 of yacc.c */
4024 #line 1027 "glsl_parser.ypp"
4025 {
4026 (yyval.type_qualifier).i = (yyvsp[(1) - (2)].type_qualifier).i | (yyvsp[(2) - (2)].type_qualifier).i;
4027 ;}
4028 break;
4029
4030 case 147:
4031
4032 /* Line 1464 of yacc.c */
4033 #line 1031 "glsl_parser.ypp"
4034 {
4035 (yyval.type_qualifier) = (yyvsp[(2) - (2)].type_qualifier);
4036 (yyval.type_qualifier).q.invariant = 1;
4037 ;}
4038 break;
4039
4040 case 148:
4041
4042 /* Line 1464 of yacc.c */
4043 #line 1038 "glsl_parser.ypp"
4044 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.constant = 1; ;}
4045 break;
4046
4047 case 149:
4048
4049 /* Line 1464 of yacc.c */
4050 #line 1039 "glsl_parser.ypp"
4051 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.attribute = 1; ;}
4052 break;
4053
4054 case 150:
4055
4056 /* Line 1464 of yacc.c */
4057 #line 1040 "glsl_parser.ypp"
4058 { (yyval.type_qualifier).i = (yyvsp[(1) - (2)].type_qualifier).i; (yyval.type_qualifier).q.varying = 1; ;}
4059 break;
4060
4061 case 151:
4062
4063 /* Line 1464 of yacc.c */
4064 #line 1041 "glsl_parser.ypp"
4065 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyval.type_qualifier).q.varying = 1; ;}
4066 break;
4067
4068 case 152:
4069
4070 /* Line 1464 of yacc.c */
4071 #line 1042 "glsl_parser.ypp"
4072 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; ;}
4073 break;
4074
4075 case 153:
4076
4077 /* Line 1464 of yacc.c */
4078 #line 1043 "glsl_parser.ypp"
4079 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.out = 1; ;}
4080 break;
4081
4082 case 154:
4083
4084 /* Line 1464 of yacc.c */
4085 #line 1044 "glsl_parser.ypp"
4086 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyval.type_qualifier).q.in = 1; ;}
4087 break;
4088
4089 case 155:
4090
4091 /* Line 1464 of yacc.c */
4092 #line 1045 "glsl_parser.ypp"
4093 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyval.type_qualifier).q.out = 1; ;}
4094 break;
4095
4096 case 156:
4097
4098 /* Line 1464 of yacc.c */
4099 #line 1046 "glsl_parser.ypp"
4100 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.uniform = 1; ;}
4101 break;
4102
4103 case 158:
4104
4105 /* Line 1464 of yacc.c */
4106 #line 1052 "glsl_parser.ypp"
4107 {
4108 (yyval.type_specifier) = (yyvsp[(2) - (2)].type_specifier);
4109 (yyval.type_specifier)->precision = (yyvsp[(1) - (2)].n);
4110 ;}
4111 break;
4112
4113 case 160:
4114
4115 /* Line 1464 of yacc.c */
4116 #line 1061 "glsl_parser.ypp"
4117 {
4118 (yyval.type_specifier) = (yyvsp[(1) - (3)].type_specifier);
4119 (yyval.type_specifier)->is_array = true;
4120 (yyval.type_specifier)->array_size = NULL;
4121 ;}
4122 break;
4123
4124 case 161:
4125
4126 /* Line 1464 of yacc.c */
4127 #line 1067 "glsl_parser.ypp"
4128 {
4129 (yyval.type_specifier) = (yyvsp[(1) - (4)].type_specifier);
4130 (yyval.type_specifier)->is_array = true;
4131 (yyval.type_specifier)->array_size = (yyvsp[(3) - (4)].expression);
4132 ;}
4133 break;
4134
4135 case 162:
4136
4137 /* Line 1464 of yacc.c */
4138 #line 1076 "glsl_parser.ypp"
4139 {
4140 void *ctx = state;
4141 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].n));
4142 (yyval.type_specifier)->set_location(yylloc);
4143 ;}
4144 break;
4145
4146 case 163:
4147
4148 /* Line 1464 of yacc.c */
4149 #line 1082 "glsl_parser.ypp"
4150 {
4151 void *ctx = state;
4152 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].struct_specifier));
4153 (yyval.type_specifier)->set_location(yylloc);
4154 ;}
4155 break;
4156
4157 case 164:
4158
4159 /* Line 1464 of yacc.c */
4160 #line 1088 "glsl_parser.ypp"
4161 {
4162 void *ctx = state;
4163 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].identifier));
4164 (yyval.type_specifier)->set_location(yylloc);
4165 ;}
4166 break;
4167
4168 case 165:
4169
4170 /* Line 1464 of yacc.c */
4171 #line 1096 "glsl_parser.ypp"
4172 { (yyval.n) = ast_void; ;}
4173 break;
4174
4175 case 166:
4176
4177 /* Line 1464 of yacc.c */
4178 #line 1097 "glsl_parser.ypp"
4179 { (yyval.n) = ast_float; ;}
4180 break;
4181
4182 case 167:
4183
4184 /* Line 1464 of yacc.c */
4185 #line 1098 "glsl_parser.ypp"
4186 { (yyval.n) = ast_int; ;}
4187 break;
4188
4189 case 168:
4190
4191 /* Line 1464 of yacc.c */
4192 #line 1099 "glsl_parser.ypp"
4193 { (yyval.n) = ast_uint; ;}
4194 break;
4195
4196 case 169:
4197
4198 /* Line 1464 of yacc.c */
4199 #line 1100 "glsl_parser.ypp"
4200 { (yyval.n) = ast_bool; ;}
4201 break;
4202
4203 case 170:
4204
4205 /* Line 1464 of yacc.c */
4206 #line 1101 "glsl_parser.ypp"
4207 { (yyval.n) = ast_vec2; ;}
4208 break;
4209
4210 case 171:
4211
4212 /* Line 1464 of yacc.c */
4213 #line 1102 "glsl_parser.ypp"
4214 { (yyval.n) = ast_vec3; ;}
4215 break;
4216
4217 case 172:
4218
4219 /* Line 1464 of yacc.c */
4220 #line 1103 "glsl_parser.ypp"
4221 { (yyval.n) = ast_vec4; ;}
4222 break;
4223
4224 case 173:
4225
4226 /* Line 1464 of yacc.c */
4227 #line 1104 "glsl_parser.ypp"
4228 { (yyval.n) = ast_bvec2; ;}
4229 break;
4230
4231 case 174:
4232
4233 /* Line 1464 of yacc.c */
4234 #line 1105 "glsl_parser.ypp"
4235 { (yyval.n) = ast_bvec3; ;}
4236 break;
4237
4238 case 175:
4239
4240 /* Line 1464 of yacc.c */
4241 #line 1106 "glsl_parser.ypp"
4242 { (yyval.n) = ast_bvec4; ;}
4243 break;
4244
4245 case 176:
4246
4247 /* Line 1464 of yacc.c */
4248 #line 1107 "glsl_parser.ypp"
4249 { (yyval.n) = ast_ivec2; ;}
4250 break;
4251
4252 case 177:
4253
4254 /* Line 1464 of yacc.c */
4255 #line 1108 "glsl_parser.ypp"
4256 { (yyval.n) = ast_ivec3; ;}
4257 break;
4258
4259 case 178:
4260
4261 /* Line 1464 of yacc.c */
4262 #line 1109 "glsl_parser.ypp"
4263 { (yyval.n) = ast_ivec4; ;}
4264 break;
4265
4266 case 179:
4267
4268 /* Line 1464 of yacc.c */
4269 #line 1110 "glsl_parser.ypp"
4270 { (yyval.n) = ast_uvec2; ;}
4271 break;
4272
4273 case 180:
4274
4275 /* Line 1464 of yacc.c */
4276 #line 1111 "glsl_parser.ypp"
4277 { (yyval.n) = ast_uvec3; ;}
4278 break;
4279
4280 case 181:
4281
4282 /* Line 1464 of yacc.c */
4283 #line 1112 "glsl_parser.ypp"
4284 { (yyval.n) = ast_uvec4; ;}
4285 break;
4286
4287 case 182:
4288
4289 /* Line 1464 of yacc.c */
4290 #line 1113 "glsl_parser.ypp"
4291 { (yyval.n) = ast_mat2; ;}
4292 break;
4293
4294 case 183:
4295
4296 /* Line 1464 of yacc.c */
4297 #line 1114 "glsl_parser.ypp"
4298 { (yyval.n) = ast_mat2x3; ;}
4299 break;
4300
4301 case 184:
4302
4303 /* Line 1464 of yacc.c */
4304 #line 1115 "glsl_parser.ypp"
4305 { (yyval.n) = ast_mat2x4; ;}
4306 break;
4307
4308 case 185:
4309
4310 /* Line 1464 of yacc.c */
4311 #line 1116 "glsl_parser.ypp"
4312 { (yyval.n) = ast_mat3x2; ;}
4313 break;
4314
4315 case 186:
4316
4317 /* Line 1464 of yacc.c */
4318 #line 1117 "glsl_parser.ypp"
4319 { (yyval.n) = ast_mat3; ;}
4320 break;
4321
4322 case 187:
4323
4324 /* Line 1464 of yacc.c */
4325 #line 1118 "glsl_parser.ypp"
4326 { (yyval.n) = ast_mat3x4; ;}
4327 break;
4328
4329 case 188:
4330
4331 /* Line 1464 of yacc.c */
4332 #line 1119 "glsl_parser.ypp"
4333 { (yyval.n) = ast_mat4x2; ;}
4334 break;
4335
4336 case 189:
4337
4338 /* Line 1464 of yacc.c */
4339 #line 1120 "glsl_parser.ypp"
4340 { (yyval.n) = ast_mat4x3; ;}
4341 break;
4342
4343 case 190:
4344
4345 /* Line 1464 of yacc.c */
4346 #line 1121 "glsl_parser.ypp"
4347 { (yyval.n) = ast_mat4; ;}
4348 break;
4349
4350 case 191:
4351
4352 /* Line 1464 of yacc.c */
4353 #line 1122 "glsl_parser.ypp"
4354 { (yyval.n) = ast_sampler1d; ;}
4355 break;
4356
4357 case 192:
4358
4359 /* Line 1464 of yacc.c */
4360 #line 1123 "glsl_parser.ypp"
4361 { (yyval.n) = ast_sampler2d; ;}
4362 break;
4363
4364 case 193:
4365
4366 /* Line 1464 of yacc.c */
4367 #line 1124 "glsl_parser.ypp"
4368 { (yyval.n) = ast_sampler2drect; ;}
4369 break;
4370
4371 case 194:
4372
4373 /* Line 1464 of yacc.c */
4374 #line 1125 "glsl_parser.ypp"
4375 { (yyval.n) = ast_sampler3d; ;}
4376 break;
4377
4378 case 195:
4379
4380 /* Line 1464 of yacc.c */
4381 #line 1126 "glsl_parser.ypp"
4382 { (yyval.n) = ast_samplercube; ;}
4383 break;
4384
4385 case 196:
4386
4387 /* Line 1464 of yacc.c */
4388 #line 1127 "glsl_parser.ypp"
4389 { (yyval.n) = ast_sampler1dshadow; ;}
4390 break;
4391
4392 case 197:
4393
4394 /* Line 1464 of yacc.c */
4395 #line 1128 "glsl_parser.ypp"
4396 { (yyval.n) = ast_sampler2dshadow; ;}
4397 break;
4398
4399 case 198:
4400
4401 /* Line 1464 of yacc.c */
4402 #line 1129 "glsl_parser.ypp"
4403 { (yyval.n) = ast_sampler2drectshadow; ;}
4404 break;
4405
4406 case 199:
4407
4408 /* Line 1464 of yacc.c */
4409 #line 1130 "glsl_parser.ypp"
4410 { (yyval.n) = ast_samplercubeshadow; ;}
4411 break;
4412
4413 case 200:
4414
4415 /* Line 1464 of yacc.c */
4416 #line 1131 "glsl_parser.ypp"
4417 { (yyval.n) = ast_sampler1darray; ;}
4418 break;
4419
4420 case 201:
4421
4422 /* Line 1464 of yacc.c */
4423 #line 1132 "glsl_parser.ypp"
4424 { (yyval.n) = ast_sampler2darray; ;}
4425 break;
4426
4427 case 202:
4428
4429 /* Line 1464 of yacc.c */
4430 #line 1133 "glsl_parser.ypp"
4431 { (yyval.n) = ast_sampler1darrayshadow; ;}
4432 break;
4433
4434 case 203:
4435
4436 /* Line 1464 of yacc.c */
4437 #line 1134 "glsl_parser.ypp"
4438 { (yyval.n) = ast_sampler2darrayshadow; ;}
4439 break;
4440
4441 case 204:
4442
4443 /* Line 1464 of yacc.c */
4444 #line 1135 "glsl_parser.ypp"
4445 { (yyval.n) = ast_isampler1d; ;}
4446 break;
4447
4448 case 205:
4449
4450 /* Line 1464 of yacc.c */
4451 #line 1136 "glsl_parser.ypp"
4452 { (yyval.n) = ast_isampler2d; ;}
4453 break;
4454
4455 case 206:
4456
4457 /* Line 1464 of yacc.c */
4458 #line 1137 "glsl_parser.ypp"
4459 { (yyval.n) = ast_isampler3d; ;}
4460 break;
4461
4462 case 207:
4463
4464 /* Line 1464 of yacc.c */
4465 #line 1138 "glsl_parser.ypp"
4466 { (yyval.n) = ast_isamplercube; ;}
4467 break;
4468
4469 case 208:
4470
4471 /* Line 1464 of yacc.c */
4472 #line 1139 "glsl_parser.ypp"
4473 { (yyval.n) = ast_isampler1darray; ;}
4474 break;
4475
4476 case 209:
4477
4478 /* Line 1464 of yacc.c */
4479 #line 1140 "glsl_parser.ypp"
4480 { (yyval.n) = ast_isampler2darray; ;}
4481 break;
4482
4483 case 210:
4484
4485 /* Line 1464 of yacc.c */
4486 #line 1141 "glsl_parser.ypp"
4487 { (yyval.n) = ast_usampler1d; ;}
4488 break;
4489
4490 case 211:
4491
4492 /* Line 1464 of yacc.c */
4493 #line 1142 "glsl_parser.ypp"
4494 { (yyval.n) = ast_usampler2d; ;}
4495 break;
4496
4497 case 212:
4498
4499 /* Line 1464 of yacc.c */
4500 #line 1143 "glsl_parser.ypp"
4501 { (yyval.n) = ast_usampler3d; ;}
4502 break;
4503
4504 case 213:
4505
4506 /* Line 1464 of yacc.c */
4507 #line 1144 "glsl_parser.ypp"
4508 { (yyval.n) = ast_usamplercube; ;}
4509 break;
4510
4511 case 214:
4512
4513 /* Line 1464 of yacc.c */
4514 #line 1145 "glsl_parser.ypp"
4515 { (yyval.n) = ast_usampler1darray; ;}
4516 break;
4517
4518 case 215:
4519
4520 /* Line 1464 of yacc.c */
4521 #line 1146 "glsl_parser.ypp"
4522 { (yyval.n) = ast_usampler2darray; ;}
4523 break;
4524
4525 case 216:
4526
4527 /* Line 1464 of yacc.c */
4528 #line 1150 "glsl_parser.ypp"
4529 {
4530 if (state->language_version < 130)
4531 _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
4532 "precision qualifier forbidden "
4533 "in GLSL %d.%d (1.30 or later "
4534 "required)\n",
4535 state->language_version / 100,
4536 state->language_version % 100);
4537
4538 (yyval.n) = ast_precision_high;
4539 ;}
4540 break;
4541
4542 case 217:
4543
4544 /* Line 1464 of yacc.c */
4545 #line 1161 "glsl_parser.ypp"
4546 {
4547 if (state->language_version < 130)
4548 _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
4549 "precision qualifier forbidden "
4550 "in GLSL %d.%d (1.30 or later "
4551 "required)\n",
4552 state->language_version / 100,
4553 state->language_version % 100);
4554
4555 (yyval.n) = ast_precision_medium;
4556 ;}
4557 break;
4558
4559 case 218:
4560
4561 /* Line 1464 of yacc.c */
4562 #line 1172 "glsl_parser.ypp"
4563 {
4564 if (state->language_version < 130)
4565 _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
4566 "precision qualifier forbidden "
4567 "in GLSL %d.%d (1.30 or later "
4568 "required)\n",
4569 state->language_version / 100,
4570 state->language_version % 100);
4571
4572 (yyval.n) = ast_precision_low;
4573 ;}
4574 break;
4575
4576 case 219:
4577
4578 /* Line 1464 of yacc.c */
4579 #line 1187 "glsl_parser.ypp"
4580 {
4581 void *ctx = state;
4582 (yyval.struct_specifier) = new(ctx) ast_struct_specifier((yyvsp[(2) - (5)].identifier), (yyvsp[(4) - (5)].node));
4583 (yyval.struct_specifier)->set_location(yylloc);
4584 ;}
4585 break;
4586
4587 case 220:
4588
4589 /* Line 1464 of yacc.c */
4590 #line 1193 "glsl_parser.ypp"
4591 {
4592 void *ctx = state;
4593 (yyval.struct_specifier) = new(ctx) ast_struct_specifier(NULL, (yyvsp[(3) - (4)].node));
4594 (yyval.struct_specifier)->set_location(yylloc);
4595 ;}
4596 break;
4597
4598 case 221:
4599
4600 /* Line 1464 of yacc.c */
4601 #line 1202 "glsl_parser.ypp"
4602 {
4603 (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].declarator_list);
4604 (yyvsp[(1) - (1)].declarator_list)->link.self_link();
4605 ;}
4606 break;
4607
4608 case 222:
4609
4610 /* Line 1464 of yacc.c */
4611 #line 1207 "glsl_parser.ypp"
4612 {
4613 (yyval.node) = (ast_node *) (yyvsp[(1) - (2)].node);
4614 (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].declarator_list)->link);
4615 ;}
4616 break;
4617
4618 case 223:
4619
4620 /* Line 1464 of yacc.c */
4621 #line 1215 "glsl_parser.ypp"
4622 {
4623 void *ctx = state;
4624 ast_fully_specified_type *type = new(ctx) ast_fully_specified_type();
4625 type->set_location(yylloc);
4626
4627 type->specifier = (yyvsp[(1) - (3)].type_specifier);
4628 (yyval.declarator_list) = new(ctx) ast_declarator_list(type);
4629 (yyval.declarator_list)->set_location(yylloc);
4630
4631 (yyval.declarator_list)->declarations.push_degenerate_list_at_head(& (yyvsp[(2) - (3)].declaration)->link);
4632 ;}
4633 break;
4634
4635 case 224:
4636
4637 /* Line 1464 of yacc.c */
4638 #line 1230 "glsl_parser.ypp"
4639 {
4640 (yyval.declaration) = (yyvsp[(1) - (1)].declaration);
4641 (yyvsp[(1) - (1)].declaration)->link.self_link();
4642 ;}
4643 break;
4644
4645 case 225:
4646
4647 /* Line 1464 of yacc.c */
4648 #line 1235 "glsl_parser.ypp"
4649 {
4650 (yyval.declaration) = (yyvsp[(1) - (3)].declaration);
4651 (yyval.declaration)->link.insert_before(& (yyvsp[(3) - (3)].declaration)->link);
4652 ;}
4653 break;
4654
4655 case 226:
4656
4657 /* Line 1464 of yacc.c */
4658 #line 1243 "glsl_parser.ypp"
4659 {
4660 void *ctx = state;
4661 (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (1)].identifier), false, NULL, NULL);
4662 (yyval.declaration)->set_location(yylloc);
4663 ;}
4664 break;
4665
4666 case 227:
4667
4668 /* Line 1464 of yacc.c */
4669 #line 1249 "glsl_parser.ypp"
4670 {
4671 void *ctx = state;
4672 (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (4)].identifier), true, (yyvsp[(3) - (4)].expression), NULL);
4673 (yyval.declaration)->set_location(yylloc);
4674 ;}
4675 break;
4676
4677 case 230:
4678
4679 /* Line 1464 of yacc.c */
4680 #line 1267 "glsl_parser.ypp"
4681 { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
4682 break;
4683
4684 case 235:
4685
4686 /* Line 1464 of yacc.c */
4687 #line 1275 "glsl_parser.ypp"
4688 { (yyval.node) = NULL; ;}
4689 break;
4690
4691 case 236:
4692
4693 /* Line 1464 of yacc.c */
4694 #line 1276 "glsl_parser.ypp"
4695 { (yyval.node) = NULL; ;}
4696 break;
4697
4698 case 239:
4699
4700 /* Line 1464 of yacc.c */
4701 #line 1283 "glsl_parser.ypp"
4702 {
4703 void *ctx = state;
4704 (yyval.compound_statement) = new(ctx) ast_compound_statement(true, NULL);
4705 (yyval.compound_statement)->set_location(yylloc);
4706 ;}
4707 break;
4708
4709 case 240:
4710
4711 /* Line 1464 of yacc.c */
4712 #line 1289 "glsl_parser.ypp"
4713 {
4714 void *ctx = state;
4715 (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (yyvsp[(2) - (3)].node));
4716 (yyval.compound_statement)->set_location(yylloc);
4717 ;}
4718 break;
4719
4720 case 241:
4721
4722 /* Line 1464 of yacc.c */
4723 #line 1297 "glsl_parser.ypp"
4724 { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
4725 break;
4726
4727 case 243:
4728
4729 /* Line 1464 of yacc.c */
4730 #line 1303 "glsl_parser.ypp"
4731 {
4732 void *ctx = state;
4733 (yyval.compound_statement) = new(ctx) ast_compound_statement(false, NULL);
4734 (yyval.compound_statement)->set_location(yylloc);
4735 ;}
4736 break;
4737
4738 case 244:
4739
4740 /* Line 1464 of yacc.c */
4741 #line 1309 "glsl_parser.ypp"
4742 {
4743 void *ctx = state;
4744 (yyval.compound_statement) = new(ctx) ast_compound_statement(false, (yyvsp[(2) - (3)].node));
4745 (yyval.compound_statement)->set_location(yylloc);
4746 ;}
4747 break;
4748
4749 case 245:
4750
4751 /* Line 1464 of yacc.c */
4752 #line 1318 "glsl_parser.ypp"
4753 {
4754 if ((yyvsp[(1) - (1)].node) == NULL) {
4755 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "<nil> statement\n");
4756 assert((yyvsp[(1) - (1)].node) != NULL);
4757 }
4758
4759 (yyval.node) = (yyvsp[(1) - (1)].node);
4760 (yyval.node)->link.self_link();
4761 ;}
4762 break;
4763
4764 case 246:
4765
4766 /* Line 1464 of yacc.c */
4767 #line 1328 "glsl_parser.ypp"
4768 {
4769 if ((yyvsp[(2) - (2)].node) == NULL) {
4770 _mesa_glsl_error(& (yylsp[(2) - (2)]), state, "<nil> statement\n");
4771 assert((yyvsp[(2) - (2)].node) != NULL);
4772 }
4773 (yyval.node) = (yyvsp[(1) - (2)].node);
4774 (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].node)->link);
4775 ;}
4776 break;
4777
4778 case 247:
4779
4780 /* Line 1464 of yacc.c */
4781 #line 1340 "glsl_parser.ypp"
4782 {
4783 void *ctx = state;
4784 (yyval.node) = new(ctx) ast_expression_statement(NULL);
4785 (yyval.node)->set_location(yylloc);
4786 ;}
4787 break;
4788
4789 case 248:
4790
4791 /* Line 1464 of yacc.c */
4792 #line 1346 "glsl_parser.ypp"
4793 {
4794 void *ctx = state;
4795 (yyval.node) = new(ctx) ast_expression_statement((yyvsp[(1) - (2)].expression));
4796 (yyval.node)->set_location(yylloc);
4797 ;}
4798 break;
4799
4800 case 249:
4801
4802 /* Line 1464 of yacc.c */
4803 #line 1355 "glsl_parser.ypp"
4804 {
4805 (yyval.node) = new(state) ast_selection_statement((yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].selection_rest_statement).then_statement,
4806 (yyvsp[(5) - (5)].selection_rest_statement).else_statement);
4807 (yyval.node)->set_location(yylloc);
4808 ;}
4809 break;
4810
4811 case 250:
4812
4813 /* Line 1464 of yacc.c */
4814 #line 1364 "glsl_parser.ypp"
4815 {
4816 (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (3)].node);
4817 (yyval.selection_rest_statement).else_statement = (yyvsp[(3) - (3)].node);
4818 ;}
4819 break;
4820
4821 case 251:
4822
4823 /* Line 1464 of yacc.c */
4824 #line 1369 "glsl_parser.ypp"
4825 {
4826 (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (1)].node);
4827 (yyval.selection_rest_statement).else_statement = NULL;
4828 ;}
4829 break;
4830
4831 case 252:
4832
4833 /* Line 1464 of yacc.c */
4834 #line 1377 "glsl_parser.ypp"
4835 {
4836 (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].expression);
4837 ;}
4838 break;
4839
4840 case 253:
4841
4842 /* Line 1464 of yacc.c */
4843 #line 1381 "glsl_parser.ypp"
4844 {
4845 void *ctx = state;
4846 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression));
4847 ast_declarator_list *declarator = new(ctx) ast_declarator_list((yyvsp[(1) - (4)].fully_specified_type));
4848 decl->set_location(yylloc);
4849 declarator->set_location(yylloc);
4850
4851 declarator->declarations.push_tail(&decl->link);
4852 (yyval.node) = declarator;
4853 ;}
4854 break;
4855
4856 case 257:
4857
4858 /* Line 1464 of yacc.c */
4859 #line 1404 "glsl_parser.ypp"
4860 {
4861 void *ctx = state;
4862 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_while,
4863 NULL, (yyvsp[(3) - (5)].node), NULL, (yyvsp[(5) - (5)].node));
4864 (yyval.node)->set_location(yylloc);
4865 ;}
4866 break;
4867
4868 case 258:
4869
4870 /* Line 1464 of yacc.c */
4871 #line 1411 "glsl_parser.ypp"
4872 {
4873 void *ctx = state;
4874 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_do_while,
4875 NULL, (yyvsp[(5) - (7)].expression), NULL, (yyvsp[(2) - (7)].node));
4876 (yyval.node)->set_location(yylloc);
4877 ;}
4878 break;
4879
4880 case 259:
4881
4882 /* Line 1464 of yacc.c */
4883 #line 1418 "glsl_parser.ypp"
4884 {
4885 void *ctx = state;
4886 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_for,
4887 (yyvsp[(3) - (6)].node), (yyvsp[(4) - (6)].for_rest_statement).cond, (yyvsp[(4) - (6)].for_rest_statement).rest, (yyvsp[(6) - (6)].node));
4888 (yyval.node)->set_location(yylloc);
4889 ;}
4890 break;
4891
4892 case 263:
4893
4894 /* Line 1464 of yacc.c */
4895 #line 1434 "glsl_parser.ypp"
4896 {
4897 (yyval.node) = NULL;
4898 ;}
4899 break;
4900
4901 case 264:
4902
4903 /* Line 1464 of yacc.c */
4904 #line 1441 "glsl_parser.ypp"
4905 {
4906 (yyval.for_rest_statement).cond = (yyvsp[(1) - (2)].node);
4907 (yyval.for_rest_statement).rest = NULL;
4908 ;}
4909 break;
4910
4911 case 265:
4912
4913 /* Line 1464 of yacc.c */
4914 #line 1446 "glsl_parser.ypp"
4915 {
4916 (yyval.for_rest_statement).cond = (yyvsp[(1) - (3)].node);
4917 (yyval.for_rest_statement).rest = (yyvsp[(3) - (3)].expression);
4918 ;}
4919 break;
4920
4921 case 266:
4922
4923 /* Line 1464 of yacc.c */
4924 #line 1455 "glsl_parser.ypp"
4925 {
4926 void *ctx = state;
4927 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_continue, NULL);
4928 (yyval.node)->set_location(yylloc);
4929 ;}
4930 break;
4931
4932 case 267:
4933
4934 /* Line 1464 of yacc.c */
4935 #line 1461 "glsl_parser.ypp"
4936 {
4937 void *ctx = state;
4938 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_break, NULL);
4939 (yyval.node)->set_location(yylloc);
4940 ;}
4941 break;
4942
4943 case 268:
4944
4945 /* Line 1464 of yacc.c */
4946 #line 1467 "glsl_parser.ypp"
4947 {
4948 void *ctx = state;
4949 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, NULL);
4950 (yyval.node)->set_location(yylloc);
4951 ;}
4952 break;
4953
4954 case 269:
4955
4956 /* Line 1464 of yacc.c */
4957 #line 1473 "glsl_parser.ypp"
4958 {
4959 void *ctx = state;
4960 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, (yyvsp[(2) - (3)].expression));
4961 (yyval.node)->set_location(yylloc);
4962 ;}
4963 break;
4964
4965 case 270:
4966
4967 /* Line 1464 of yacc.c */
4968 #line 1479 "glsl_parser.ypp"
4969 {
4970 void *ctx = state;
4971 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_discard, NULL);
4972 (yyval.node)->set_location(yylloc);
4973 ;}
4974 break;
4975
4976 case 271:
4977
4978 /* Line 1464 of yacc.c */
4979 #line 1487 "glsl_parser.ypp"
4980 { (yyval.node) = (yyvsp[(1) - (1)].function_definition); ;}
4981 break;
4982
4983 case 272:
4984
4985 /* Line 1464 of yacc.c */
4986 #line 1488 "glsl_parser.ypp"
4987 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
4988 break;
4989
4990 case 273:
4991
4992 /* Line 1464 of yacc.c */
4993 #line 1489 "glsl_parser.ypp"
4994 { (yyval.node) = NULL; ;}
4995 break;
4996
4997 case 274:
4998
4999 /* Line 1464 of yacc.c */
5000 #line 1494 "glsl_parser.ypp"
5001 {
5002 void *ctx = state;
5003 (yyval.function_definition) = new(ctx) ast_function_definition();
5004 (yyval.function_definition)->set_location(yylloc);
5005 (yyval.function_definition)->prototype = (yyvsp[(1) - (2)].function);
5006 (yyval.function_definition)->body = (yyvsp[(2) - (2)].compound_statement);
5007 ;}
5008 break;
5009
5010
5011
5012 /* Line 1464 of yacc.c */
5013 #line 5014 "glsl_parser.cpp"
5014 default: break;
5015 }
5016 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
5017
5018 YYPOPSTACK (yylen);
5019 yylen = 0;
5020 YY_STACK_PRINT (yyss, yyssp);
5021
5022 *++yyvsp = yyval;
5023 *++yylsp = yyloc;
5024
5025 /* Now `shift' the result of the reduction. Determine what state
5026 that goes to, based on the state we popped back to and the rule
5027 number reduced by. */
5028
5029 yyn = yyr1[yyn];
5030
5031 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
5032 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5033 yystate = yytable[yystate];
5034 else
5035 yystate = yydefgoto[yyn - YYNTOKENS];
5036
5037 goto yynewstate;
5038
5039
5040 /*------------------------------------.
5041 | yyerrlab -- here on detecting error |
5042 `------------------------------------*/
5043 yyerrlab:
5044 /* If not already recovering from an error, report this error. */
5045 if (!yyerrstatus)
5046 {
5047 ++yynerrs;
5048 #if ! YYERROR_VERBOSE
5049 yyerror (&yylloc, state, YY_("syntax error"));
5050 #else
5051 {
5052 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
5053 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
5054 {
5055 YYSIZE_T yyalloc = 2 * yysize;
5056 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
5057 yyalloc = YYSTACK_ALLOC_MAXIMUM;
5058 if (yymsg != yymsgbuf)
5059 YYSTACK_FREE (yymsg);
5060 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
5061 if (yymsg)
5062 yymsg_alloc = yyalloc;
5063 else
5064 {
5065 yymsg = yymsgbuf;
5066 yymsg_alloc = sizeof yymsgbuf;
5067 }
5068 }
5069
5070 if (0 < yysize && yysize <= yymsg_alloc)
5071 {
5072 (void) yysyntax_error (yymsg, yystate, yychar);
5073 yyerror (&yylloc, state, yymsg);
5074 }
5075 else
5076 {
5077 yyerror (&yylloc, state, YY_("syntax error"));
5078 if (yysize != 0)
5079 goto yyexhaustedlab;
5080 }
5081 }
5082 #endif
5083 }
5084
5085 yyerror_range[1] = yylloc;
5086
5087 if (yyerrstatus == 3)
5088 {
5089 /* If just tried and failed to reuse lookahead token after an
5090 error, discard it. */
5091
5092 if (yychar <= YYEOF)
5093 {
5094 /* Return failure if at end of input. */
5095 if (yychar == YYEOF)
5096 YYABORT;
5097 }
5098 else
5099 {
5100 yydestruct ("Error: discarding",
5101 yytoken, &yylval, &yylloc, state);
5102 yychar = YYEMPTY;
5103 }
5104 }
5105
5106 /* Else will try to reuse lookahead token after shifting the error
5107 token. */
5108 goto yyerrlab1;
5109
5110
5111 /*---------------------------------------------------.
5112 | yyerrorlab -- error raised explicitly by YYERROR. |
5113 `---------------------------------------------------*/
5114 yyerrorlab:
5115
5116 /* Pacify compilers like GCC when the user code never invokes
5117 YYERROR and the label yyerrorlab therefore never appears in user
5118 code. */
5119 if (/*CONSTCOND*/ 0)
5120 goto yyerrorlab;
5121
5122 yyerror_range[1] = yylsp[1-yylen];
5123 /* Do not reclaim the symbols of the rule which action triggered
5124 this YYERROR. */
5125 YYPOPSTACK (yylen);
5126 yylen = 0;
5127 YY_STACK_PRINT (yyss, yyssp);
5128 yystate = *yyssp;
5129 goto yyerrlab1;
5130
5131
5132 /*-------------------------------------------------------------.
5133 | yyerrlab1 -- common code for both syntax error and YYERROR. |
5134 `-------------------------------------------------------------*/
5135 yyerrlab1:
5136 yyerrstatus = 3; /* Each real token shifted decrements this. */
5137
5138 for (;;)
5139 {
5140 yyn = yypact[yystate];
5141 if (yyn != YYPACT_NINF)
5142 {
5143 yyn += YYTERROR;
5144 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
5145 {
5146 yyn = yytable[yyn];
5147 if (0 < yyn)
5148 break;
5149 }
5150 }
5151
5152 /* Pop the current state because it cannot handle the error token. */
5153 if (yyssp == yyss)
5154 YYABORT;
5155
5156 yyerror_range[1] = *yylsp;
5157 yydestruct ("Error: popping",
5158 yystos[yystate], yyvsp, yylsp, state);
5159 YYPOPSTACK (1);
5160 yystate = *yyssp;
5161 YY_STACK_PRINT (yyss, yyssp);
5162 }
5163
5164 *++yyvsp = yylval;
5165
5166 yyerror_range[2] = yylloc;
5167 /* Using YYLLOC is tempting, but would change the location of
5168 the lookahead. YYLOC is available though. */
5169 YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
5170 *++yylsp = yyloc;
5171
5172 /* Shift the error token. */
5173 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
5174
5175 yystate = yyn;
5176 goto yynewstate;
5177
5178
5179 /*-------------------------------------.
5180 | yyacceptlab -- YYACCEPT comes here. |
5181 `-------------------------------------*/
5182 yyacceptlab:
5183 yyresult = 0;
5184 goto yyreturn;
5185
5186 /*-----------------------------------.
5187 | yyabortlab -- YYABORT comes here. |
5188 `-----------------------------------*/
5189 yyabortlab:
5190 yyresult = 1;
5191 goto yyreturn;
5192
5193 #if !defined(yyoverflow) || YYERROR_VERBOSE
5194 /*-------------------------------------------------.
5195 | yyexhaustedlab -- memory exhaustion comes here. |
5196 `-------------------------------------------------*/
5197 yyexhaustedlab:
5198 yyerror (&yylloc, state, YY_("memory exhausted"));
5199 yyresult = 2;
5200 /* Fall through. */
5201 #endif
5202
5203 yyreturn:
5204 if (yychar != YYEMPTY)
5205 yydestruct ("Cleanup: discarding lookahead",
5206 yytoken, &yylval, &yylloc, state);
5207 /* Do not reclaim the symbols of the rule which action triggered
5208 this YYABORT or YYACCEPT. */
5209 YYPOPSTACK (yylen);
5210 YY_STACK_PRINT (yyss, yyssp);
5211 while (yyssp != yyss)
5212 {
5213 yydestruct ("Cleanup: popping",
5214 yystos[*yyssp], yyvsp, yylsp, state);
5215 YYPOPSTACK (1);
5216 }
5217 #ifndef yyoverflow
5218 if (yyss != yyssa)
5219 YYSTACK_FREE (yyss);
5220 #endif
5221 #if YYERROR_VERBOSE
5222 if (yymsg != yymsgbuf)
5223 YYSTACK_FREE (yymsg);
5224 #endif
5225 /* Make sure YYID is used. */
5226 return YYID (yyresult);
5227 }
5228
5229
5230