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