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