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