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