a52df93fdb4177d88f96205c5c5a2f9b34d5765b
[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, 246, 247, 248, 249,
811 250, 262, 264, 268, 277, 285, 296, 300, 307, 314,
812 321, 328, 335, 342, 343, 349, 353, 360, 366, 375,
813 379, 383, 384, 393, 394, 398, 399, 403, 409, 421,
814 425, 431, 438, 449, 450, 456, 462, 472, 473, 474,
815 475, 479, 480, 486, 492, 501, 502, 508, 517, 518,
816 524, 533, 534, 540, 546, 552, 561, 562, 568, 577,
817 578, 587, 588, 597, 598, 607, 608, 617, 618, 627,
818 628, 637, 638, 647, 648, 657, 658, 659, 660, 661,
819 662, 663, 664, 665, 666, 667, 671, 675, 691, 695,
820 699, 703, 712, 716, 717, 721, 726, 734, 745, 755,
821 770, 777, 782, 793, 806, 809, 814, 819, 828, 832,
822 833, 842, 851, 860, 869, 878, 891, 902, 911, 920,
823 929, 938, 947, 956, 970, 977, 988, 995, 996, 1015,
824 1067, 1108, 1113, 1118, 1126, 1134, 1135, 1136, 1141, 1142,
825 1147, 1152, 1158, 1166, 1171, 1176, 1181, 1187, 1192, 1197,
826 1202, 1207, 1215, 1219, 1227, 1228, 1234, 1243, 1249, 1255,
827 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273,
828 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283,
829 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293,
830 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303,
831 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313,
832 1314, 1318, 1328, 1338, 1351, 1357, 1366, 1371, 1379, 1394,
833 1399, 1407, 1413, 1422, 1426, 1432, 1433, 1437, 1438, 1439,
834 1440, 1441, 1442, 1443, 1447, 1453, 1462, 1463, 1467, 1473,
835 1482, 1492, 1504, 1510, 1519, 1528, 1533, 1541, 1545, 1559,
836 1563, 1564, 1568, 1575, 1582, 1592, 1593, 1597, 1599, 1605,
837 1610, 1619, 1625, 1631, 1637, 1643, 1652, 1653, 1654, 1658
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 switch ((yyvsp[(2) - (3)].n)) {
2839 case 100:
2840 state->es_shader = true;
2841 case 110:
2842 case 120:
2843 case 130:
2844 /* FINISHME: Check against implementation support versions. */
2845 state->language_version = (yyvsp[(2) - (3)].n);
2846 state->version_string =
2847 ralloc_asprintf(state, "GLSL%s %d.%02d",
2848 state->es_shader ? " ES" : "",
2849 state->language_version / 100,
2850 state->language_version % 100);
2851 break;
2852 default:
2853 _mesa_glsl_error(& (yylsp[(2) - (3)]), state, "Shading language version"
2854 "%u is not supported\n", (yyvsp[(2) - (3)].n));
2855 break;
2856 }
2857 ;}
2858 break;
2859
2860 case 10:
2861
2862 /* Line 1464 of yacc.c */
2863 #line 251 "glsl_parser.ypp"
2864 {
2865 if (state->language_version < 120) {
2866 _mesa_glsl_warning(& (yylsp[(1) - (2)]), state,
2867 "pragma `invariant(all)' not supported in %s",
2868 state->version_string);
2869 } else {
2870 state->all_invariant = true;
2871 }
2872 ;}
2873 break;
2874
2875 case 13:
2876
2877 /* Line 1464 of yacc.c */
2878 #line 269 "glsl_parser.ypp"
2879 {
2880 if (!_mesa_glsl_process_extension((yyvsp[(2) - (5)].identifier), & (yylsp[(2) - (5)]), (yyvsp[(4) - (5)].identifier), & (yylsp[(4) - (5)]), state)) {
2881 YYERROR;
2882 }
2883 ;}
2884 break;
2885
2886 case 14:
2887
2888 /* Line 1464 of yacc.c */
2889 #line 278 "glsl_parser.ypp"
2890 {
2891 /* FINISHME: The NULL test is required because pragmas are set to
2892 * FINISHME: NULL. (See production rule for external_declaration.)
2893 */
2894 if ((yyvsp[(1) - (1)].node) != NULL)
2895 state->translation_unit.push_tail(& (yyvsp[(1) - (1)].node)->link);
2896 ;}
2897 break;
2898
2899 case 15:
2900
2901 /* Line 1464 of yacc.c */
2902 #line 286 "glsl_parser.ypp"
2903 {
2904 /* FINISHME: The NULL test is required because pragmas are set to
2905 * FINISHME: NULL. (See production rule for external_declaration.)
2906 */
2907 if ((yyvsp[(2) - (2)].node) != NULL)
2908 state->translation_unit.push_tail(& (yyvsp[(2) - (2)].node)->link);
2909 ;}
2910 break;
2911
2912 case 17:
2913
2914 /* Line 1464 of yacc.c */
2915 #line 301 "glsl_parser.ypp"
2916 {
2917 void *ctx = state;
2918 (yyval.expression) = new(ctx) ast_expression(ast_identifier, NULL, NULL, NULL);
2919 (yyval.expression)->set_location(yylloc);
2920 (yyval.expression)->primary_expression.identifier = (yyvsp[(1) - (1)].identifier);
2921 ;}
2922 break;
2923
2924 case 18:
2925
2926 /* Line 1464 of yacc.c */
2927 #line 308 "glsl_parser.ypp"
2928 {
2929 void *ctx = state;
2930 (yyval.expression) = new(ctx) ast_expression(ast_int_constant, NULL, NULL, NULL);
2931 (yyval.expression)->set_location(yylloc);
2932 (yyval.expression)->primary_expression.int_constant = (yyvsp[(1) - (1)].n);
2933 ;}
2934 break;
2935
2936 case 19:
2937
2938 /* Line 1464 of yacc.c */
2939 #line 315 "glsl_parser.ypp"
2940 {
2941 void *ctx = state;
2942 (yyval.expression) = new(ctx) ast_expression(ast_uint_constant, NULL, NULL, NULL);
2943 (yyval.expression)->set_location(yylloc);
2944 (yyval.expression)->primary_expression.uint_constant = (yyvsp[(1) - (1)].n);
2945 ;}
2946 break;
2947
2948 case 20:
2949
2950 /* Line 1464 of yacc.c */
2951 #line 322 "glsl_parser.ypp"
2952 {
2953 void *ctx = state;
2954 (yyval.expression) = new(ctx) ast_expression(ast_float_constant, NULL, NULL, NULL);
2955 (yyval.expression)->set_location(yylloc);
2956 (yyval.expression)->primary_expression.float_constant = (yyvsp[(1) - (1)].real);
2957 ;}
2958 break;
2959
2960 case 21:
2961
2962 /* Line 1464 of yacc.c */
2963 #line 329 "glsl_parser.ypp"
2964 {
2965 void *ctx = state;
2966 (yyval.expression) = new(ctx) ast_expression(ast_bool_constant, NULL, NULL, NULL);
2967 (yyval.expression)->set_location(yylloc);
2968 (yyval.expression)->primary_expression.bool_constant = (yyvsp[(1) - (1)].n);
2969 ;}
2970 break;
2971
2972 case 22:
2973
2974 /* Line 1464 of yacc.c */
2975 #line 336 "glsl_parser.ypp"
2976 {
2977 (yyval.expression) = (yyvsp[(2) - (3)].expression);
2978 ;}
2979 break;
2980
2981 case 24:
2982
2983 /* Line 1464 of yacc.c */
2984 #line 344 "glsl_parser.ypp"
2985 {
2986 void *ctx = state;
2987 (yyval.expression) = new(ctx) ast_expression(ast_array_index, (yyvsp[(1) - (4)].expression), (yyvsp[(3) - (4)].expression), NULL);
2988 (yyval.expression)->set_location(yylloc);
2989 ;}
2990 break;
2991
2992 case 25:
2993
2994 /* Line 1464 of yacc.c */
2995 #line 350 "glsl_parser.ypp"
2996 {
2997 (yyval.expression) = (yyvsp[(1) - (1)].expression);
2998 ;}
2999 break;
3000
3001 case 26:
3002
3003 /* Line 1464 of yacc.c */
3004 #line 354 "glsl_parser.ypp"
3005 {
3006 void *ctx = state;
3007 (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), NULL, NULL);
3008 (yyval.expression)->set_location(yylloc);
3009 (yyval.expression)->primary_expression.identifier = (yyvsp[(3) - (3)].identifier);
3010 ;}
3011 break;
3012
3013 case 27:
3014
3015 /* Line 1464 of yacc.c */
3016 #line 361 "glsl_parser.ypp"
3017 {
3018 void *ctx = state;
3019 (yyval.expression) = new(ctx) ast_expression(ast_post_inc, (yyvsp[(1) - (2)].expression), NULL, NULL);
3020 (yyval.expression)->set_location(yylloc);
3021 ;}
3022 break;
3023
3024 case 28:
3025
3026 /* Line 1464 of yacc.c */
3027 #line 367 "glsl_parser.ypp"
3028 {
3029 void *ctx = state;
3030 (yyval.expression) = new(ctx) ast_expression(ast_post_dec, (yyvsp[(1) - (2)].expression), NULL, NULL);
3031 (yyval.expression)->set_location(yylloc);
3032 ;}
3033 break;
3034
3035 case 32:
3036
3037 /* Line 1464 of yacc.c */
3038 #line 385 "glsl_parser.ypp"
3039 {
3040 void *ctx = state;
3041 (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL);
3042 (yyval.expression)->set_location(yylloc);
3043 ;}
3044 break;
3045
3046 case 37:
3047
3048 /* Line 1464 of yacc.c */
3049 #line 404 "glsl_parser.ypp"
3050 {
3051 (yyval.expression) = (yyvsp[(1) - (2)].expression);
3052 (yyval.expression)->set_location(yylloc);
3053 (yyval.expression)->expressions.push_tail(& (yyvsp[(2) - (2)].expression)->link);
3054 ;}
3055 break;
3056
3057 case 38:
3058
3059 /* Line 1464 of yacc.c */
3060 #line 410 "glsl_parser.ypp"
3061 {
3062 (yyval.expression) = (yyvsp[(1) - (3)].expression);
3063 (yyval.expression)->set_location(yylloc);
3064 (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].expression)->link);
3065 ;}
3066 break;
3067
3068 case 40:
3069
3070 /* Line 1464 of yacc.c */
3071 #line 426 "glsl_parser.ypp"
3072 {
3073 void *ctx = state;
3074 (yyval.expression) = new(ctx) ast_function_expression((yyvsp[(1) - (1)].type_specifier));
3075 (yyval.expression)->set_location(yylloc);
3076 ;}
3077 break;
3078
3079 case 41:
3080
3081 /* Line 1464 of yacc.c */
3082 #line 432 "glsl_parser.ypp"
3083 {
3084 void *ctx = state;
3085 ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier));
3086 (yyval.expression) = new(ctx) ast_function_expression(callee);
3087 (yyval.expression)->set_location(yylloc);
3088 ;}
3089 break;
3090
3091 case 42:
3092
3093 /* Line 1464 of yacc.c */
3094 #line 439 "glsl_parser.ypp"
3095 {
3096 void *ctx = state;
3097 ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier));
3098 (yyval.expression) = new(ctx) ast_function_expression(callee);
3099 (yyval.expression)->set_location(yylloc);
3100 ;}
3101 break;
3102
3103 case 44:
3104
3105 /* Line 1464 of yacc.c */
3106 #line 451 "glsl_parser.ypp"
3107 {
3108 void *ctx = state;
3109 (yyval.expression) = new(ctx) ast_expression(ast_pre_inc, (yyvsp[(2) - (2)].expression), NULL, NULL);
3110 (yyval.expression)->set_location(yylloc);
3111 ;}
3112 break;
3113
3114 case 45:
3115
3116 /* Line 1464 of yacc.c */
3117 #line 457 "glsl_parser.ypp"
3118 {
3119 void *ctx = state;
3120 (yyval.expression) = new(ctx) ast_expression(ast_pre_dec, (yyvsp[(2) - (2)].expression), NULL, NULL);
3121 (yyval.expression)->set_location(yylloc);
3122 ;}
3123 break;
3124
3125 case 46:
3126
3127 /* Line 1464 of yacc.c */
3128 #line 463 "glsl_parser.ypp"
3129 {
3130 void *ctx = state;
3131 (yyval.expression) = new(ctx) ast_expression((yyvsp[(1) - (2)].n), (yyvsp[(2) - (2)].expression), NULL, NULL);
3132 (yyval.expression)->set_location(yylloc);
3133 ;}
3134 break;
3135
3136 case 47:
3137
3138 /* Line 1464 of yacc.c */
3139 #line 472 "glsl_parser.ypp"
3140 { (yyval.n) = ast_plus; ;}
3141 break;
3142
3143 case 48:
3144
3145 /* Line 1464 of yacc.c */
3146 #line 473 "glsl_parser.ypp"
3147 { (yyval.n) = ast_neg; ;}
3148 break;
3149
3150 case 49:
3151
3152 /* Line 1464 of yacc.c */
3153 #line 474 "glsl_parser.ypp"
3154 { (yyval.n) = ast_logic_not; ;}
3155 break;
3156
3157 case 50:
3158
3159 /* Line 1464 of yacc.c */
3160 #line 475 "glsl_parser.ypp"
3161 { (yyval.n) = ast_bit_not; ;}
3162 break;
3163
3164 case 52:
3165
3166 /* Line 1464 of yacc.c */
3167 #line 481 "glsl_parser.ypp"
3168 {
3169 void *ctx = state;
3170 (yyval.expression) = new(ctx) ast_expression_bin(ast_mul, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3171 (yyval.expression)->set_location(yylloc);
3172 ;}
3173 break;
3174
3175 case 53:
3176
3177 /* Line 1464 of yacc.c */
3178 #line 487 "glsl_parser.ypp"
3179 {
3180 void *ctx = state;
3181 (yyval.expression) = new(ctx) ast_expression_bin(ast_div, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3182 (yyval.expression)->set_location(yylloc);
3183 ;}
3184 break;
3185
3186 case 54:
3187
3188 /* Line 1464 of yacc.c */
3189 #line 493 "glsl_parser.ypp"
3190 {
3191 void *ctx = state;
3192 (yyval.expression) = new(ctx) ast_expression_bin(ast_mod, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3193 (yyval.expression)->set_location(yylloc);
3194 ;}
3195 break;
3196
3197 case 56:
3198
3199 /* Line 1464 of yacc.c */
3200 #line 503 "glsl_parser.ypp"
3201 {
3202 void *ctx = state;
3203 (yyval.expression) = new(ctx) ast_expression_bin(ast_add, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3204 (yyval.expression)->set_location(yylloc);
3205 ;}
3206 break;
3207
3208 case 57:
3209
3210 /* Line 1464 of yacc.c */
3211 #line 509 "glsl_parser.ypp"
3212 {
3213 void *ctx = state;
3214 (yyval.expression) = new(ctx) ast_expression_bin(ast_sub, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3215 (yyval.expression)->set_location(yylloc);
3216 ;}
3217 break;
3218
3219 case 59:
3220
3221 /* Line 1464 of yacc.c */
3222 #line 519 "glsl_parser.ypp"
3223 {
3224 void *ctx = state;
3225 (yyval.expression) = new(ctx) ast_expression_bin(ast_lshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3226 (yyval.expression)->set_location(yylloc);
3227 ;}
3228 break;
3229
3230 case 60:
3231
3232 /* Line 1464 of yacc.c */
3233 #line 525 "glsl_parser.ypp"
3234 {
3235 void *ctx = state;
3236 (yyval.expression) = new(ctx) ast_expression_bin(ast_rshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3237 (yyval.expression)->set_location(yylloc);
3238 ;}
3239 break;
3240
3241 case 62:
3242
3243 /* Line 1464 of yacc.c */
3244 #line 535 "glsl_parser.ypp"
3245 {
3246 void *ctx = state;
3247 (yyval.expression) = new(ctx) ast_expression_bin(ast_less, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3248 (yyval.expression)->set_location(yylloc);
3249 ;}
3250 break;
3251
3252 case 63:
3253
3254 /* Line 1464 of yacc.c */
3255 #line 541 "glsl_parser.ypp"
3256 {
3257 void *ctx = state;
3258 (yyval.expression) = new(ctx) ast_expression_bin(ast_greater, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3259 (yyval.expression)->set_location(yylloc);
3260 ;}
3261 break;
3262
3263 case 64:
3264
3265 /* Line 1464 of yacc.c */
3266 #line 547 "glsl_parser.ypp"
3267 {
3268 void *ctx = state;
3269 (yyval.expression) = new(ctx) ast_expression_bin(ast_lequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3270 (yyval.expression)->set_location(yylloc);
3271 ;}
3272 break;
3273
3274 case 65:
3275
3276 /* Line 1464 of yacc.c */
3277 #line 553 "glsl_parser.ypp"
3278 {
3279 void *ctx = state;
3280 (yyval.expression) = new(ctx) ast_expression_bin(ast_gequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3281 (yyval.expression)->set_location(yylloc);
3282 ;}
3283 break;
3284
3285 case 67:
3286
3287 /* Line 1464 of yacc.c */
3288 #line 563 "glsl_parser.ypp"
3289 {
3290 void *ctx = state;
3291 (yyval.expression) = new(ctx) ast_expression_bin(ast_equal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3292 (yyval.expression)->set_location(yylloc);
3293 ;}
3294 break;
3295
3296 case 68:
3297
3298 /* Line 1464 of yacc.c */
3299 #line 569 "glsl_parser.ypp"
3300 {
3301 void *ctx = state;
3302 (yyval.expression) = new(ctx) ast_expression_bin(ast_nequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3303 (yyval.expression)->set_location(yylloc);
3304 ;}
3305 break;
3306
3307 case 70:
3308
3309 /* Line 1464 of yacc.c */
3310 #line 579 "glsl_parser.ypp"
3311 {
3312 void *ctx = state;
3313 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_and, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3314 (yyval.expression)->set_location(yylloc);
3315 ;}
3316 break;
3317
3318 case 72:
3319
3320 /* Line 1464 of yacc.c */
3321 #line 589 "glsl_parser.ypp"
3322 {
3323 void *ctx = state;
3324 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3325 (yyval.expression)->set_location(yylloc);
3326 ;}
3327 break;
3328
3329 case 74:
3330
3331 /* Line 1464 of yacc.c */
3332 #line 599 "glsl_parser.ypp"
3333 {
3334 void *ctx = state;
3335 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3336 (yyval.expression)->set_location(yylloc);
3337 ;}
3338 break;
3339
3340 case 76:
3341
3342 /* Line 1464 of yacc.c */
3343 #line 609 "glsl_parser.ypp"
3344 {
3345 void *ctx = state;
3346 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_and, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3347 (yyval.expression)->set_location(yylloc);
3348 ;}
3349 break;
3350
3351 case 78:
3352
3353 /* Line 1464 of yacc.c */
3354 #line 619 "glsl_parser.ypp"
3355 {
3356 void *ctx = state;
3357 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3358 (yyval.expression)->set_location(yylloc);
3359 ;}
3360 break;
3361
3362 case 80:
3363
3364 /* Line 1464 of yacc.c */
3365 #line 629 "glsl_parser.ypp"
3366 {
3367 void *ctx = state;
3368 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3369 (yyval.expression)->set_location(yylloc);
3370 ;}
3371 break;
3372
3373 case 82:
3374
3375 /* Line 1464 of yacc.c */
3376 #line 639 "glsl_parser.ypp"
3377 {
3378 void *ctx = state;
3379 (yyval.expression) = new(ctx) ast_expression(ast_conditional, (yyvsp[(1) - (5)].expression), (yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].expression));
3380 (yyval.expression)->set_location(yylloc);
3381 ;}
3382 break;
3383
3384 case 84:
3385
3386 /* Line 1464 of yacc.c */
3387 #line 649 "glsl_parser.ypp"
3388 {
3389 void *ctx = state;
3390 (yyval.expression) = new(ctx) ast_expression((yyvsp[(2) - (3)].n), (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL);
3391 (yyval.expression)->set_location(yylloc);
3392 ;}
3393 break;
3394
3395 case 85:
3396
3397 /* Line 1464 of yacc.c */
3398 #line 657 "glsl_parser.ypp"
3399 { (yyval.n) = ast_assign; ;}
3400 break;
3401
3402 case 86:
3403
3404 /* Line 1464 of yacc.c */
3405 #line 658 "glsl_parser.ypp"
3406 { (yyval.n) = ast_mul_assign; ;}
3407 break;
3408
3409 case 87:
3410
3411 /* Line 1464 of yacc.c */
3412 #line 659 "glsl_parser.ypp"
3413 { (yyval.n) = ast_div_assign; ;}
3414 break;
3415
3416 case 88:
3417
3418 /* Line 1464 of yacc.c */
3419 #line 660 "glsl_parser.ypp"
3420 { (yyval.n) = ast_mod_assign; ;}
3421 break;
3422
3423 case 89:
3424
3425 /* Line 1464 of yacc.c */
3426 #line 661 "glsl_parser.ypp"
3427 { (yyval.n) = ast_add_assign; ;}
3428 break;
3429
3430 case 90:
3431
3432 /* Line 1464 of yacc.c */
3433 #line 662 "glsl_parser.ypp"
3434 { (yyval.n) = ast_sub_assign; ;}
3435 break;
3436
3437 case 91:
3438
3439 /* Line 1464 of yacc.c */
3440 #line 663 "glsl_parser.ypp"
3441 { (yyval.n) = ast_ls_assign; ;}
3442 break;
3443
3444 case 92:
3445
3446 /* Line 1464 of yacc.c */
3447 #line 664 "glsl_parser.ypp"
3448 { (yyval.n) = ast_rs_assign; ;}
3449 break;
3450
3451 case 93:
3452
3453 /* Line 1464 of yacc.c */
3454 #line 665 "glsl_parser.ypp"
3455 { (yyval.n) = ast_and_assign; ;}
3456 break;
3457
3458 case 94:
3459
3460 /* Line 1464 of yacc.c */
3461 #line 666 "glsl_parser.ypp"
3462 { (yyval.n) = ast_xor_assign; ;}
3463 break;
3464
3465 case 95:
3466
3467 /* Line 1464 of yacc.c */
3468 #line 667 "glsl_parser.ypp"
3469 { (yyval.n) = ast_or_assign; ;}
3470 break;
3471
3472 case 96:
3473
3474 /* Line 1464 of yacc.c */
3475 #line 672 "glsl_parser.ypp"
3476 {
3477 (yyval.expression) = (yyvsp[(1) - (1)].expression);
3478 ;}
3479 break;
3480
3481 case 97:
3482
3483 /* Line 1464 of yacc.c */
3484 #line 676 "glsl_parser.ypp"
3485 {
3486 void *ctx = state;
3487 if ((yyvsp[(1) - (3)].expression)->oper != ast_sequence) {
3488 (yyval.expression) = new(ctx) ast_expression(ast_sequence, NULL, NULL, NULL);
3489 (yyval.expression)->set_location(yylloc);
3490 (yyval.expression)->expressions.push_tail(& (yyvsp[(1) - (3)].expression)->link);
3491 } else {
3492 (yyval.expression) = (yyvsp[(1) - (3)].expression);
3493 }
3494
3495 (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].expression)->link);
3496 ;}
3497 break;
3498
3499 case 99:
3500
3501 /* Line 1464 of yacc.c */
3502 #line 696 "glsl_parser.ypp"
3503 {
3504 (yyval.node) = (yyvsp[(1) - (2)].function);
3505 ;}
3506 break;
3507
3508 case 100:
3509
3510 /* Line 1464 of yacc.c */
3511 #line 700 "glsl_parser.ypp"
3512 {
3513 (yyval.node) = (yyvsp[(1) - (2)].declarator_list);
3514 ;}
3515 break;
3516
3517 case 101:
3518
3519 /* Line 1464 of yacc.c */
3520 #line 704 "glsl_parser.ypp"
3521 {
3522 (yyvsp[(3) - (4)].type_specifier)->precision = (yyvsp[(2) - (4)].n);
3523 (yyvsp[(3) - (4)].type_specifier)->is_precision_statement = true;
3524 (yyval.node) = (yyvsp[(3) - (4)].type_specifier);
3525 ;}
3526 break;
3527
3528 case 105:
3529
3530 /* Line 1464 of yacc.c */
3531 #line 722 "glsl_parser.ypp"
3532 {
3533 (yyval.function) = (yyvsp[(1) - (2)].function);
3534 (yyval.function)->parameters.push_tail(& (yyvsp[(2) - (2)].parameter_declarator)->link);
3535 ;}
3536 break;
3537
3538 case 106:
3539
3540 /* Line 1464 of yacc.c */
3541 #line 727 "glsl_parser.ypp"
3542 {
3543 (yyval.function) = (yyvsp[(1) - (3)].function);
3544 (yyval.function)->parameters.push_tail(& (yyvsp[(3) - (3)].parameter_declarator)->link);
3545 ;}
3546 break;
3547
3548 case 107:
3549
3550 /* Line 1464 of yacc.c */
3551 #line 735 "glsl_parser.ypp"
3552 {
3553 void *ctx = state;
3554 (yyval.function) = new(ctx) ast_function();
3555 (yyval.function)->set_location(yylloc);
3556 (yyval.function)->return_type = (yyvsp[(1) - (3)].fully_specified_type);
3557 (yyval.function)->identifier = (yyvsp[(2) - (3)].identifier);
3558 ;}
3559 break;
3560
3561 case 108:
3562
3563 /* Line 1464 of yacc.c */
3564 #line 746 "glsl_parser.ypp"
3565 {
3566 void *ctx = state;
3567 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
3568 (yyval.parameter_declarator)->set_location(yylloc);
3569 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
3570 (yyval.parameter_declarator)->type->set_location(yylloc);
3571 (yyval.parameter_declarator)->type->specifier = (yyvsp[(1) - (2)].type_specifier);
3572 (yyval.parameter_declarator)->identifier = (yyvsp[(2) - (2)].identifier);
3573 ;}
3574 break;
3575
3576 case 109:
3577
3578 /* Line 1464 of yacc.c */
3579 #line 756 "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) - (5)].type_specifier);
3587 (yyval.parameter_declarator)->identifier = (yyvsp[(2) - (5)].identifier);
3588 (yyval.parameter_declarator)->is_array = true;
3589 (yyval.parameter_declarator)->array_size = (yyvsp[(4) - (5)].expression);
3590 ;}
3591 break;
3592
3593 case 110:
3594
3595 /* Line 1464 of yacc.c */
3596 #line 771 "glsl_parser.ypp"
3597 {
3598 (yyvsp[(1) - (3)].type_qualifier).flags.i |= (yyvsp[(2) - (3)].type_qualifier).flags.i;
3599
3600 (yyval.parameter_declarator) = (yyvsp[(3) - (3)].parameter_declarator);
3601 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (3)].type_qualifier);
3602 ;}
3603 break;
3604
3605 case 111:
3606
3607 /* Line 1464 of yacc.c */
3608 #line 778 "glsl_parser.ypp"
3609 {
3610 (yyval.parameter_declarator) = (yyvsp[(2) - (2)].parameter_declarator);
3611 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].type_qualifier);
3612 ;}
3613 break;
3614
3615 case 112:
3616
3617 /* Line 1464 of yacc.c */
3618 #line 783 "glsl_parser.ypp"
3619 {
3620 void *ctx = state;
3621 (yyvsp[(1) - (3)].type_qualifier).flags.i |= (yyvsp[(2) - (3)].type_qualifier).flags.i;
3622
3623 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
3624 (yyval.parameter_declarator)->set_location(yylloc);
3625 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
3626 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (3)].type_qualifier);
3627 (yyval.parameter_declarator)->type->specifier = (yyvsp[(3) - (3)].type_specifier);
3628 ;}
3629 break;
3630
3631 case 113:
3632
3633 /* Line 1464 of yacc.c */
3634 #line 794 "glsl_parser.ypp"
3635 {
3636 void *ctx = state;
3637 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
3638 (yyval.parameter_declarator)->set_location(yylloc);
3639 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
3640 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].type_qualifier);
3641 (yyval.parameter_declarator)->type->specifier = (yyvsp[(2) - (2)].type_specifier);
3642 ;}
3643 break;
3644
3645 case 114:
3646
3647 /* Line 1464 of yacc.c */
3648 #line 806 "glsl_parser.ypp"
3649 {
3650 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
3651 ;}
3652 break;
3653
3654 case 115:
3655
3656 /* Line 1464 of yacc.c */
3657 #line 810 "glsl_parser.ypp"
3658 {
3659 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
3660 (yyval.type_qualifier).flags.q.in = 1;
3661 ;}
3662 break;
3663
3664 case 116:
3665
3666 /* Line 1464 of yacc.c */
3667 #line 815 "glsl_parser.ypp"
3668 {
3669 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
3670 (yyval.type_qualifier).flags.q.out = 1;
3671 ;}
3672 break;
3673
3674 case 117:
3675
3676 /* Line 1464 of yacc.c */
3677 #line 820 "glsl_parser.ypp"
3678 {
3679 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
3680 (yyval.type_qualifier).flags.q.in = 1;
3681 (yyval.type_qualifier).flags.q.out = 1;
3682 ;}
3683 break;
3684
3685 case 120:
3686
3687 /* Line 1464 of yacc.c */
3688 #line 834 "glsl_parser.ypp"
3689 {
3690 void *ctx = state;
3691 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (3)].identifier), false, NULL, NULL);
3692 decl->set_location(yylloc);
3693
3694 (yyval.declarator_list) = (yyvsp[(1) - (3)].declarator_list);
3695 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3696 ;}
3697 break;
3698
3699 case 121:
3700
3701 /* Line 1464 of yacc.c */
3702 #line 843 "glsl_parser.ypp"
3703 {
3704 void *ctx = state;
3705 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), true, NULL, NULL);
3706 decl->set_location(yylloc);
3707
3708 (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list);
3709 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3710 ;}
3711 break;
3712
3713 case 122:
3714
3715 /* Line 1464 of yacc.c */
3716 #line 852 "glsl_parser.ypp"
3717 {
3718 void *ctx = state;
3719 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (6)].identifier), true, (yyvsp[(5) - (6)].expression), NULL);
3720 decl->set_location(yylloc);
3721
3722 (yyval.declarator_list) = (yyvsp[(1) - (6)].declarator_list);
3723 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3724 ;}
3725 break;
3726
3727 case 123:
3728
3729 /* Line 1464 of yacc.c */
3730 #line 861 "glsl_parser.ypp"
3731 {
3732 void *ctx = state;
3733 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (7)].identifier), true, NULL, (yyvsp[(7) - (7)].expression));
3734 decl->set_location(yylloc);
3735
3736 (yyval.declarator_list) = (yyvsp[(1) - (7)].declarator_list);
3737 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3738 ;}
3739 break;
3740
3741 case 124:
3742
3743 /* Line 1464 of yacc.c */
3744 #line 870 "glsl_parser.ypp"
3745 {
3746 void *ctx = state;
3747 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (8)].identifier), true, (yyvsp[(5) - (8)].expression), (yyvsp[(8) - (8)].expression));
3748 decl->set_location(yylloc);
3749
3750 (yyval.declarator_list) = (yyvsp[(1) - (8)].declarator_list);
3751 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3752 ;}
3753 break;
3754
3755 case 125:
3756
3757 /* Line 1464 of yacc.c */
3758 #line 879 "glsl_parser.ypp"
3759 {
3760 void *ctx = state;
3761 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), false, NULL, (yyvsp[(5) - (5)].expression));
3762 decl->set_location(yylloc);
3763
3764 (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list);
3765 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3766 ;}
3767 break;
3768
3769 case 126:
3770
3771 /* Line 1464 of yacc.c */
3772 #line 892 "glsl_parser.ypp"
3773 {
3774 void *ctx = state;
3775 if ((yyvsp[(1) - (1)].fully_specified_type)->specifier->type_specifier != ast_struct) {
3776 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "empty declaration list\n");
3777 YYERROR;
3778 } else {
3779 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (1)].fully_specified_type));
3780 (yyval.declarator_list)->set_location(yylloc);
3781 }
3782 ;}
3783 break;
3784
3785 case 127:
3786
3787 /* Line 1464 of yacc.c */
3788 #line 903 "glsl_parser.ypp"
3789 {
3790 void *ctx = state;
3791 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL);
3792
3793 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (2)].fully_specified_type));
3794 (yyval.declarator_list)->set_location(yylloc);
3795 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3796 ;}
3797 break;
3798
3799 case 128:
3800
3801 /* Line 1464 of yacc.c */
3802 #line 912 "glsl_parser.ypp"
3803 {
3804 void *ctx = state;
3805 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), true, NULL, NULL);
3806
3807 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (4)].fully_specified_type));
3808 (yyval.declarator_list)->set_location(yylloc);
3809 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3810 ;}
3811 break;
3812
3813 case 129:
3814
3815 /* Line 1464 of yacc.c */
3816 #line 921 "glsl_parser.ypp"
3817 {
3818 void *ctx = state;
3819 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (5)].identifier), true, (yyvsp[(4) - (5)].expression), NULL);
3820
3821 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (5)].fully_specified_type));
3822 (yyval.declarator_list)->set_location(yylloc);
3823 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3824 ;}
3825 break;
3826
3827 case 130:
3828
3829 /* Line 1464 of yacc.c */
3830 #line 930 "glsl_parser.ypp"
3831 {
3832 void *ctx = state;
3833 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (6)].identifier), true, NULL, (yyvsp[(6) - (6)].expression));
3834
3835 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (6)].fully_specified_type));
3836 (yyval.declarator_list)->set_location(yylloc);
3837 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3838 ;}
3839 break;
3840
3841 case 131:
3842
3843 /* Line 1464 of yacc.c */
3844 #line 939 "glsl_parser.ypp"
3845 {
3846 void *ctx = state;
3847 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (7)].identifier), true, (yyvsp[(4) - (7)].expression), (yyvsp[(7) - (7)].expression));
3848
3849 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (7)].fully_specified_type));
3850 (yyval.declarator_list)->set_location(yylloc);
3851 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3852 ;}
3853 break;
3854
3855 case 132:
3856
3857 /* Line 1464 of yacc.c */
3858 #line 948 "glsl_parser.ypp"
3859 {
3860 void *ctx = state;
3861 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression));
3862
3863 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (4)].fully_specified_type));
3864 (yyval.declarator_list)->set_location(yylloc);
3865 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3866 ;}
3867 break;
3868
3869 case 133:
3870
3871 /* Line 1464 of yacc.c */
3872 #line 957 "glsl_parser.ypp"
3873 {
3874 void *ctx = state;
3875 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL);
3876
3877 (yyval.declarator_list) = new(ctx) ast_declarator_list(NULL);
3878 (yyval.declarator_list)->set_location(yylloc);
3879 (yyval.declarator_list)->invariant = true;
3880
3881 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3882 ;}
3883 break;
3884
3885 case 134:
3886
3887 /* Line 1464 of yacc.c */
3888 #line 971 "glsl_parser.ypp"
3889 {
3890 void *ctx = state;
3891 (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
3892 (yyval.fully_specified_type)->set_location(yylloc);
3893 (yyval.fully_specified_type)->specifier = (yyvsp[(1) - (1)].type_specifier);
3894 ;}
3895 break;
3896
3897 case 135:
3898
3899 /* Line 1464 of yacc.c */
3900 #line 978 "glsl_parser.ypp"
3901 {
3902 void *ctx = state;
3903 (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
3904 (yyval.fully_specified_type)->set_location(yylloc);
3905 (yyval.fully_specified_type)->qualifier = (yyvsp[(1) - (2)].type_qualifier);
3906 (yyval.fully_specified_type)->specifier = (yyvsp[(2) - (2)].type_specifier);
3907 ;}
3908 break;
3909
3910 case 136:
3911
3912 /* Line 1464 of yacc.c */
3913 #line 989 "glsl_parser.ypp"
3914 {
3915 (yyval.type_qualifier) = (yyvsp[(3) - (4)].type_qualifier);
3916 ;}
3917 break;
3918
3919 case 138:
3920
3921 /* Line 1464 of yacc.c */
3922 #line 997 "glsl_parser.ypp"
3923 {
3924 if (((yyvsp[(1) - (3)].type_qualifier).flags.i & (yyvsp[(3) - (3)].type_qualifier).flags.i) != 0) {
3925 _mesa_glsl_error(& (yylsp[(3) - (3)]), state,
3926 "duplicate layout qualifiers used\n");
3927 YYERROR;
3928 }
3929
3930 (yyval.type_qualifier).flags.i = (yyvsp[(1) - (3)].type_qualifier).flags.i | (yyvsp[(3) - (3)].type_qualifier).flags.i;
3931
3932 if ((yyvsp[(1) - (3)].type_qualifier).flags.q.explicit_location)
3933 (yyval.type_qualifier).location = (yyvsp[(1) - (3)].type_qualifier).location;
3934
3935 if ((yyvsp[(3) - (3)].type_qualifier).flags.q.explicit_location)
3936 (yyval.type_qualifier).location = (yyvsp[(3) - (3)].type_qualifier).location;
3937 ;}
3938 break;
3939
3940 case 139:
3941
3942 /* Line 1464 of yacc.c */
3943 #line 1016 "glsl_parser.ypp"
3944 {
3945 bool got_one = false;
3946
3947 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
3948
3949 /* Layout qualifiers for ARB_fragment_coord_conventions. */
3950 if (!got_one && state->ARB_fragment_coord_conventions_enable) {
3951 if (strcmp((yyvsp[(1) - (1)].identifier), "origin_upper_left") == 0) {
3952 got_one = true;
3953 (yyval.type_qualifier).flags.q.origin_upper_left = 1;
3954 } else if (strcmp((yyvsp[(1) - (1)].identifier), "pixel_center_integer") == 0) {
3955 got_one = true;
3956 (yyval.type_qualifier).flags.q.pixel_center_integer = 1;
3957 }
3958
3959 if (got_one && state->ARB_fragment_coord_conventions_warn) {
3960 _mesa_glsl_warning(& (yylsp[(1) - (1)]), state,
3961 "GL_ARB_fragment_coord_conventions layout "
3962 "identifier `%s' used\n", (yyvsp[(1) - (1)].identifier));
3963 }
3964 }
3965
3966 /* Layout qualifiers for AMD_conservative_depth. */
3967 if (!got_one && state->AMD_conservative_depth_enable) {
3968 if (strcmp((yyvsp[(1) - (1)].identifier), "depth_any") == 0) {
3969 got_one = true;
3970 (yyval.type_qualifier).flags.q.depth_any = 1;
3971 } else if (strcmp((yyvsp[(1) - (1)].identifier), "depth_greater") == 0) {
3972 got_one = true;
3973 (yyval.type_qualifier).flags.q.depth_greater = 1;
3974 } else if (strcmp((yyvsp[(1) - (1)].identifier), "depth_less") == 0) {
3975 got_one = true;
3976 (yyval.type_qualifier).flags.q.depth_less = 1;
3977 } else if (strcmp((yyvsp[(1) - (1)].identifier), "depth_unchanged") == 0) {
3978 got_one = true;
3979 (yyval.type_qualifier).flags.q.depth_unchanged = 1;
3980 }
3981
3982 if (got_one && state->AMD_conservative_depth_warn) {
3983 _mesa_glsl_warning(& (yylsp[(1) - (1)]), state,
3984 "GL_AMD_conservative_depth "
3985 "layout qualifier `%s' is used\n", (yyvsp[(1) - (1)].identifier));
3986 }
3987 }
3988
3989 if (!got_one) {
3990 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "unrecognized layout identifier "
3991 "`%s'\n", (yyvsp[(1) - (1)].identifier));
3992 YYERROR;
3993 }
3994 ;}
3995 break;
3996
3997 case 140:
3998
3999 /* Line 1464 of yacc.c */
4000 #line 1068 "glsl_parser.ypp"
4001 {
4002 bool got_one = false;
4003
4004 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4005
4006 if (state->ARB_explicit_attrib_location_enable) {
4007 /* FINISHME: Handle 'index' once GL_ARB_blend_func_exteneded and
4008 * FINISHME: GLSL 1.30 (or later) are supported.
4009 */
4010 if (strcmp("location", (yyvsp[(1) - (3)].identifier)) == 0) {
4011 got_one = true;
4012
4013 (yyval.type_qualifier).flags.q.explicit_location = 1;
4014
4015 if ((yyvsp[(3) - (3)].n) >= 0) {
4016 (yyval.type_qualifier).location = (yyvsp[(3) - (3)].n);
4017 } else {
4018 _mesa_glsl_error(& (yylsp[(3) - (3)]), state,
4019 "invalid location %d specified\n", (yyvsp[(3) - (3)].n));
4020 YYERROR;
4021 }
4022 }
4023 }
4024
4025 /* If the identifier didn't match any known layout identifiers,
4026 * emit an error.
4027 */
4028 if (!got_one) {
4029 _mesa_glsl_error(& (yylsp[(1) - (3)]), state, "unrecognized layout identifier "
4030 "`%s'\n", (yyvsp[(1) - (3)].identifier));
4031 YYERROR;
4032 } else if (state->ARB_explicit_attrib_location_warn) {
4033 _mesa_glsl_warning(& (yylsp[(1) - (3)]), state,
4034 "GL_ARB_explicit_attrib_location layout "
4035 "identifier `%s' used\n", (yyvsp[(1) - (3)].identifier));
4036 }
4037 ;}
4038 break;
4039
4040 case 141:
4041
4042 /* Line 1464 of yacc.c */
4043 #line 1109 "glsl_parser.ypp"
4044 {
4045 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4046 (yyval.type_qualifier).flags.q.smooth = 1;
4047 ;}
4048 break;
4049
4050 case 142:
4051
4052 /* Line 1464 of yacc.c */
4053 #line 1114 "glsl_parser.ypp"
4054 {
4055 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4056 (yyval.type_qualifier).flags.q.flat = 1;
4057 ;}
4058 break;
4059
4060 case 143:
4061
4062 /* Line 1464 of yacc.c */
4063 #line 1119 "glsl_parser.ypp"
4064 {
4065 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4066 (yyval.type_qualifier).flags.q.noperspective = 1;
4067 ;}
4068 break;
4069
4070 case 144:
4071
4072 /* Line 1464 of yacc.c */
4073 #line 1127 "glsl_parser.ypp"
4074 {
4075 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4076 (yyval.type_qualifier).flags.q.constant = 1;
4077 ;}
4078 break;
4079
4080 case 147:
4081
4082 /* Line 1464 of yacc.c */
4083 #line 1137 "glsl_parser.ypp"
4084 {
4085 (yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier);
4086 (yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).flags.i;
4087 ;}
4088 break;
4089
4090 case 149:
4091
4092 /* Line 1464 of yacc.c */
4093 #line 1143 "glsl_parser.ypp"
4094 {
4095 (yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier);
4096 (yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).flags.i;
4097 ;}
4098 break;
4099
4100 case 150:
4101
4102 /* Line 1464 of yacc.c */
4103 #line 1148 "glsl_parser.ypp"
4104 {
4105 (yyval.type_qualifier) = (yyvsp[(2) - (2)].type_qualifier);
4106 (yyval.type_qualifier).flags.q.invariant = 1;
4107 ;}
4108 break;
4109
4110 case 151:
4111
4112 /* Line 1464 of yacc.c */
4113 #line 1153 "glsl_parser.ypp"
4114 {
4115 (yyval.type_qualifier) = (yyvsp[(2) - (3)].type_qualifier);
4116 (yyval.type_qualifier).flags.i |= (yyvsp[(3) - (3)].type_qualifier).flags.i;
4117 (yyval.type_qualifier).flags.q.invariant = 1;
4118 ;}
4119 break;
4120
4121 case 152:
4122
4123 /* Line 1464 of yacc.c */
4124 #line 1159 "glsl_parser.ypp"
4125 {
4126 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4127 (yyval.type_qualifier).flags.q.invariant = 1;
4128 ;}
4129 break;
4130
4131 case 153:
4132
4133 /* Line 1464 of yacc.c */
4134 #line 1167 "glsl_parser.ypp"
4135 {
4136 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4137 (yyval.type_qualifier).flags.q.constant = 1;
4138 ;}
4139 break;
4140
4141 case 154:
4142
4143 /* Line 1464 of yacc.c */
4144 #line 1172 "glsl_parser.ypp"
4145 {
4146 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4147 (yyval.type_qualifier).flags.q.attribute = 1;
4148 ;}
4149 break;
4150
4151 case 155:
4152
4153 /* Line 1464 of yacc.c */
4154 #line 1177 "glsl_parser.ypp"
4155 {
4156 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4157 (yyval.type_qualifier).flags.q.varying = 1;
4158 ;}
4159 break;
4160
4161 case 156:
4162
4163 /* Line 1464 of yacc.c */
4164 #line 1182 "glsl_parser.ypp"
4165 {
4166 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4167 (yyval.type_qualifier).flags.q.centroid = 1;
4168 (yyval.type_qualifier).flags.q.varying = 1;
4169 ;}
4170 break;
4171
4172 case 157:
4173
4174 /* Line 1464 of yacc.c */
4175 #line 1188 "glsl_parser.ypp"
4176 {
4177 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4178 (yyval.type_qualifier).flags.q.in = 1;
4179 ;}
4180 break;
4181
4182 case 158:
4183
4184 /* Line 1464 of yacc.c */
4185 #line 1193 "glsl_parser.ypp"
4186 {
4187 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4188 (yyval.type_qualifier).flags.q.out = 1;
4189 ;}
4190 break;
4191
4192 case 159:
4193
4194 /* Line 1464 of yacc.c */
4195 #line 1198 "glsl_parser.ypp"
4196 {
4197 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4198 (yyval.type_qualifier).flags.q.centroid = 1; (yyval.type_qualifier).flags.q.in = 1;
4199 ;}
4200 break;
4201
4202 case 160:
4203
4204 /* Line 1464 of yacc.c */
4205 #line 1203 "glsl_parser.ypp"
4206 {
4207 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4208 (yyval.type_qualifier).flags.q.centroid = 1; (yyval.type_qualifier).flags.q.out = 1;
4209 ;}
4210 break;
4211
4212 case 161:
4213
4214 /* Line 1464 of yacc.c */
4215 #line 1208 "glsl_parser.ypp"
4216 {
4217 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4218 (yyval.type_qualifier).flags.q.uniform = 1;
4219 ;}
4220 break;
4221
4222 case 162:
4223
4224 /* Line 1464 of yacc.c */
4225 #line 1216 "glsl_parser.ypp"
4226 {
4227 (yyval.type_specifier) = (yyvsp[(1) - (1)].type_specifier);
4228 ;}
4229 break;
4230
4231 case 163:
4232
4233 /* Line 1464 of yacc.c */
4234 #line 1220 "glsl_parser.ypp"
4235 {
4236 (yyval.type_specifier) = (yyvsp[(2) - (2)].type_specifier);
4237 (yyval.type_specifier)->precision = (yyvsp[(1) - (2)].n);
4238 ;}
4239 break;
4240
4241 case 165:
4242
4243 /* Line 1464 of yacc.c */
4244 #line 1229 "glsl_parser.ypp"
4245 {
4246 (yyval.type_specifier) = (yyvsp[(1) - (3)].type_specifier);
4247 (yyval.type_specifier)->is_array = true;
4248 (yyval.type_specifier)->array_size = NULL;
4249 ;}
4250 break;
4251
4252 case 166:
4253
4254 /* Line 1464 of yacc.c */
4255 #line 1235 "glsl_parser.ypp"
4256 {
4257 (yyval.type_specifier) = (yyvsp[(1) - (4)].type_specifier);
4258 (yyval.type_specifier)->is_array = true;
4259 (yyval.type_specifier)->array_size = (yyvsp[(3) - (4)].expression);
4260 ;}
4261 break;
4262
4263 case 167:
4264
4265 /* Line 1464 of yacc.c */
4266 #line 1244 "glsl_parser.ypp"
4267 {
4268 void *ctx = state;
4269 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].n));
4270 (yyval.type_specifier)->set_location(yylloc);
4271 ;}
4272 break;
4273
4274 case 168:
4275
4276 /* Line 1464 of yacc.c */
4277 #line 1250 "glsl_parser.ypp"
4278 {
4279 void *ctx = state;
4280 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].struct_specifier));
4281 (yyval.type_specifier)->set_location(yylloc);
4282 ;}
4283 break;
4284
4285 case 169:
4286
4287 /* Line 1464 of yacc.c */
4288 #line 1256 "glsl_parser.ypp"
4289 {
4290 void *ctx = state;
4291 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].identifier));
4292 (yyval.type_specifier)->set_location(yylloc);
4293 ;}
4294 break;
4295
4296 case 170:
4297
4298 /* Line 1464 of yacc.c */
4299 #line 1264 "glsl_parser.ypp"
4300 { (yyval.n) = ast_void; ;}
4301 break;
4302
4303 case 171:
4304
4305 /* Line 1464 of yacc.c */
4306 #line 1265 "glsl_parser.ypp"
4307 { (yyval.n) = ast_float; ;}
4308 break;
4309
4310 case 172:
4311
4312 /* Line 1464 of yacc.c */
4313 #line 1266 "glsl_parser.ypp"
4314 { (yyval.n) = ast_int; ;}
4315 break;
4316
4317 case 173:
4318
4319 /* Line 1464 of yacc.c */
4320 #line 1267 "glsl_parser.ypp"
4321 { (yyval.n) = ast_uint; ;}
4322 break;
4323
4324 case 174:
4325
4326 /* Line 1464 of yacc.c */
4327 #line 1268 "glsl_parser.ypp"
4328 { (yyval.n) = ast_bool; ;}
4329 break;
4330
4331 case 175:
4332
4333 /* Line 1464 of yacc.c */
4334 #line 1269 "glsl_parser.ypp"
4335 { (yyval.n) = ast_vec2; ;}
4336 break;
4337
4338 case 176:
4339
4340 /* Line 1464 of yacc.c */
4341 #line 1270 "glsl_parser.ypp"
4342 { (yyval.n) = ast_vec3; ;}
4343 break;
4344
4345 case 177:
4346
4347 /* Line 1464 of yacc.c */
4348 #line 1271 "glsl_parser.ypp"
4349 { (yyval.n) = ast_vec4; ;}
4350 break;
4351
4352 case 178:
4353
4354 /* Line 1464 of yacc.c */
4355 #line 1272 "glsl_parser.ypp"
4356 { (yyval.n) = ast_bvec2; ;}
4357 break;
4358
4359 case 179:
4360
4361 /* Line 1464 of yacc.c */
4362 #line 1273 "glsl_parser.ypp"
4363 { (yyval.n) = ast_bvec3; ;}
4364 break;
4365
4366 case 180:
4367
4368 /* Line 1464 of yacc.c */
4369 #line 1274 "glsl_parser.ypp"
4370 { (yyval.n) = ast_bvec4; ;}
4371 break;
4372
4373 case 181:
4374
4375 /* Line 1464 of yacc.c */
4376 #line 1275 "glsl_parser.ypp"
4377 { (yyval.n) = ast_ivec2; ;}
4378 break;
4379
4380 case 182:
4381
4382 /* Line 1464 of yacc.c */
4383 #line 1276 "glsl_parser.ypp"
4384 { (yyval.n) = ast_ivec3; ;}
4385 break;
4386
4387 case 183:
4388
4389 /* Line 1464 of yacc.c */
4390 #line 1277 "glsl_parser.ypp"
4391 { (yyval.n) = ast_ivec4; ;}
4392 break;
4393
4394 case 184:
4395
4396 /* Line 1464 of yacc.c */
4397 #line 1278 "glsl_parser.ypp"
4398 { (yyval.n) = ast_uvec2; ;}
4399 break;
4400
4401 case 185:
4402
4403 /* Line 1464 of yacc.c */
4404 #line 1279 "glsl_parser.ypp"
4405 { (yyval.n) = ast_uvec3; ;}
4406 break;
4407
4408 case 186:
4409
4410 /* Line 1464 of yacc.c */
4411 #line 1280 "glsl_parser.ypp"
4412 { (yyval.n) = ast_uvec4; ;}
4413 break;
4414
4415 case 187:
4416
4417 /* Line 1464 of yacc.c */
4418 #line 1281 "glsl_parser.ypp"
4419 { (yyval.n) = ast_mat2; ;}
4420 break;
4421
4422 case 188:
4423
4424 /* Line 1464 of yacc.c */
4425 #line 1282 "glsl_parser.ypp"
4426 { (yyval.n) = ast_mat2x3; ;}
4427 break;
4428
4429 case 189:
4430
4431 /* Line 1464 of yacc.c */
4432 #line 1283 "glsl_parser.ypp"
4433 { (yyval.n) = ast_mat2x4; ;}
4434 break;
4435
4436 case 190:
4437
4438 /* Line 1464 of yacc.c */
4439 #line 1284 "glsl_parser.ypp"
4440 { (yyval.n) = ast_mat3x2; ;}
4441 break;
4442
4443 case 191:
4444
4445 /* Line 1464 of yacc.c */
4446 #line 1285 "glsl_parser.ypp"
4447 { (yyval.n) = ast_mat3; ;}
4448 break;
4449
4450 case 192:
4451
4452 /* Line 1464 of yacc.c */
4453 #line 1286 "glsl_parser.ypp"
4454 { (yyval.n) = ast_mat3x4; ;}
4455 break;
4456
4457 case 193:
4458
4459 /* Line 1464 of yacc.c */
4460 #line 1287 "glsl_parser.ypp"
4461 { (yyval.n) = ast_mat4x2; ;}
4462 break;
4463
4464 case 194:
4465
4466 /* Line 1464 of yacc.c */
4467 #line 1288 "glsl_parser.ypp"
4468 { (yyval.n) = ast_mat4x3; ;}
4469 break;
4470
4471 case 195:
4472
4473 /* Line 1464 of yacc.c */
4474 #line 1289 "glsl_parser.ypp"
4475 { (yyval.n) = ast_mat4; ;}
4476 break;
4477
4478 case 196:
4479
4480 /* Line 1464 of yacc.c */
4481 #line 1290 "glsl_parser.ypp"
4482 { (yyval.n) = ast_sampler1d; ;}
4483 break;
4484
4485 case 197:
4486
4487 /* Line 1464 of yacc.c */
4488 #line 1291 "glsl_parser.ypp"
4489 { (yyval.n) = ast_sampler2d; ;}
4490 break;
4491
4492 case 198:
4493
4494 /* Line 1464 of yacc.c */
4495 #line 1292 "glsl_parser.ypp"
4496 { (yyval.n) = ast_sampler2drect; ;}
4497 break;
4498
4499 case 199:
4500
4501 /* Line 1464 of yacc.c */
4502 #line 1293 "glsl_parser.ypp"
4503 { (yyval.n) = ast_sampler3d; ;}
4504 break;
4505
4506 case 200:
4507
4508 /* Line 1464 of yacc.c */
4509 #line 1294 "glsl_parser.ypp"
4510 { (yyval.n) = ast_samplercube; ;}
4511 break;
4512
4513 case 201:
4514
4515 /* Line 1464 of yacc.c */
4516 #line 1295 "glsl_parser.ypp"
4517 { (yyval.n) = ast_sampler1dshadow; ;}
4518 break;
4519
4520 case 202:
4521
4522 /* Line 1464 of yacc.c */
4523 #line 1296 "glsl_parser.ypp"
4524 { (yyval.n) = ast_sampler2dshadow; ;}
4525 break;
4526
4527 case 203:
4528
4529 /* Line 1464 of yacc.c */
4530 #line 1297 "glsl_parser.ypp"
4531 { (yyval.n) = ast_sampler2drectshadow; ;}
4532 break;
4533
4534 case 204:
4535
4536 /* Line 1464 of yacc.c */
4537 #line 1298 "glsl_parser.ypp"
4538 { (yyval.n) = ast_samplercubeshadow; ;}
4539 break;
4540
4541 case 205:
4542
4543 /* Line 1464 of yacc.c */
4544 #line 1299 "glsl_parser.ypp"
4545 { (yyval.n) = ast_sampler1darray; ;}
4546 break;
4547
4548 case 206:
4549
4550 /* Line 1464 of yacc.c */
4551 #line 1300 "glsl_parser.ypp"
4552 { (yyval.n) = ast_sampler2darray; ;}
4553 break;
4554
4555 case 207:
4556
4557 /* Line 1464 of yacc.c */
4558 #line 1301 "glsl_parser.ypp"
4559 { (yyval.n) = ast_sampler1darrayshadow; ;}
4560 break;
4561
4562 case 208:
4563
4564 /* Line 1464 of yacc.c */
4565 #line 1302 "glsl_parser.ypp"
4566 { (yyval.n) = ast_sampler2darrayshadow; ;}
4567 break;
4568
4569 case 209:
4570
4571 /* Line 1464 of yacc.c */
4572 #line 1303 "glsl_parser.ypp"
4573 { (yyval.n) = ast_isampler1d; ;}
4574 break;
4575
4576 case 210:
4577
4578 /* Line 1464 of yacc.c */
4579 #line 1304 "glsl_parser.ypp"
4580 { (yyval.n) = ast_isampler2d; ;}
4581 break;
4582
4583 case 211:
4584
4585 /* Line 1464 of yacc.c */
4586 #line 1305 "glsl_parser.ypp"
4587 { (yyval.n) = ast_isampler3d; ;}
4588 break;
4589
4590 case 212:
4591
4592 /* Line 1464 of yacc.c */
4593 #line 1306 "glsl_parser.ypp"
4594 { (yyval.n) = ast_isamplercube; ;}
4595 break;
4596
4597 case 213:
4598
4599 /* Line 1464 of yacc.c */
4600 #line 1307 "glsl_parser.ypp"
4601 { (yyval.n) = ast_isampler1darray; ;}
4602 break;
4603
4604 case 214:
4605
4606 /* Line 1464 of yacc.c */
4607 #line 1308 "glsl_parser.ypp"
4608 { (yyval.n) = ast_isampler2darray; ;}
4609 break;
4610
4611 case 215:
4612
4613 /* Line 1464 of yacc.c */
4614 #line 1309 "glsl_parser.ypp"
4615 { (yyval.n) = ast_usampler1d; ;}
4616 break;
4617
4618 case 216:
4619
4620 /* Line 1464 of yacc.c */
4621 #line 1310 "glsl_parser.ypp"
4622 { (yyval.n) = ast_usampler2d; ;}
4623 break;
4624
4625 case 217:
4626
4627 /* Line 1464 of yacc.c */
4628 #line 1311 "glsl_parser.ypp"
4629 { (yyval.n) = ast_usampler3d; ;}
4630 break;
4631
4632 case 218:
4633
4634 /* Line 1464 of yacc.c */
4635 #line 1312 "glsl_parser.ypp"
4636 { (yyval.n) = ast_usamplercube; ;}
4637 break;
4638
4639 case 219:
4640
4641 /* Line 1464 of yacc.c */
4642 #line 1313 "glsl_parser.ypp"
4643 { (yyval.n) = ast_usampler1darray; ;}
4644 break;
4645
4646 case 220:
4647
4648 /* Line 1464 of yacc.c */
4649 #line 1314 "glsl_parser.ypp"
4650 { (yyval.n) = ast_usampler2darray; ;}
4651 break;
4652
4653 case 221:
4654
4655 /* Line 1464 of yacc.c */
4656 #line 1318 "glsl_parser.ypp"
4657 {
4658 if (!state->es_shader && state->language_version < 130)
4659 _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
4660 "precision qualifier forbidden "
4661 "in %s (1.30 or later "
4662 "required)\n",
4663 state->version_string);
4664
4665 (yyval.n) = ast_precision_high;
4666 ;}
4667 break;
4668
4669 case 222:
4670
4671 /* Line 1464 of yacc.c */
4672 #line 1328 "glsl_parser.ypp"
4673 {
4674 if (!state->es_shader && state->language_version < 130)
4675 _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
4676 "precision qualifier forbidden "
4677 "in %s (1.30 or later "
4678 "required)\n",
4679 state->version_string);
4680
4681 (yyval.n) = ast_precision_medium;
4682 ;}
4683 break;
4684
4685 case 223:
4686
4687 /* Line 1464 of yacc.c */
4688 #line 1338 "glsl_parser.ypp"
4689 {
4690 if (!state->es_shader && state->language_version < 130)
4691 _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
4692 "precision qualifier forbidden "
4693 "in %s (1.30 or later "
4694 "required)\n",
4695 state->version_string);
4696
4697 (yyval.n) = ast_precision_low;
4698 ;}
4699 break;
4700
4701 case 224:
4702
4703 /* Line 1464 of yacc.c */
4704 #line 1352 "glsl_parser.ypp"
4705 {
4706 void *ctx = state;
4707 (yyval.struct_specifier) = new(ctx) ast_struct_specifier((yyvsp[(2) - (5)].identifier), (yyvsp[(4) - (5)].node));
4708 (yyval.struct_specifier)->set_location(yylloc);
4709 ;}
4710 break;
4711
4712 case 225:
4713
4714 /* Line 1464 of yacc.c */
4715 #line 1358 "glsl_parser.ypp"
4716 {
4717 void *ctx = state;
4718 (yyval.struct_specifier) = new(ctx) ast_struct_specifier(NULL, (yyvsp[(3) - (4)].node));
4719 (yyval.struct_specifier)->set_location(yylloc);
4720 ;}
4721 break;
4722
4723 case 226:
4724
4725 /* Line 1464 of yacc.c */
4726 #line 1367 "glsl_parser.ypp"
4727 {
4728 (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].declarator_list);
4729 (yyvsp[(1) - (1)].declarator_list)->link.self_link();
4730 ;}
4731 break;
4732
4733 case 227:
4734
4735 /* Line 1464 of yacc.c */
4736 #line 1372 "glsl_parser.ypp"
4737 {
4738 (yyval.node) = (ast_node *) (yyvsp[(1) - (2)].node);
4739 (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].declarator_list)->link);
4740 ;}
4741 break;
4742
4743 case 228:
4744
4745 /* Line 1464 of yacc.c */
4746 #line 1380 "glsl_parser.ypp"
4747 {
4748 void *ctx = state;
4749 ast_fully_specified_type *type = new(ctx) ast_fully_specified_type();
4750 type->set_location(yylloc);
4751
4752 type->specifier = (yyvsp[(1) - (3)].type_specifier);
4753 (yyval.declarator_list) = new(ctx) ast_declarator_list(type);
4754 (yyval.declarator_list)->set_location(yylloc);
4755
4756 (yyval.declarator_list)->declarations.push_degenerate_list_at_head(& (yyvsp[(2) - (3)].declaration)->link);
4757 ;}
4758 break;
4759
4760 case 229:
4761
4762 /* Line 1464 of yacc.c */
4763 #line 1395 "glsl_parser.ypp"
4764 {
4765 (yyval.declaration) = (yyvsp[(1) - (1)].declaration);
4766 (yyvsp[(1) - (1)].declaration)->link.self_link();
4767 ;}
4768 break;
4769
4770 case 230:
4771
4772 /* Line 1464 of yacc.c */
4773 #line 1400 "glsl_parser.ypp"
4774 {
4775 (yyval.declaration) = (yyvsp[(1) - (3)].declaration);
4776 (yyval.declaration)->link.insert_before(& (yyvsp[(3) - (3)].declaration)->link);
4777 ;}
4778 break;
4779
4780 case 231:
4781
4782 /* Line 1464 of yacc.c */
4783 #line 1408 "glsl_parser.ypp"
4784 {
4785 void *ctx = state;
4786 (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (1)].identifier), false, NULL, NULL);
4787 (yyval.declaration)->set_location(yylloc);
4788 ;}
4789 break;
4790
4791 case 232:
4792
4793 /* Line 1464 of yacc.c */
4794 #line 1414 "glsl_parser.ypp"
4795 {
4796 void *ctx = state;
4797 (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (4)].identifier), true, (yyvsp[(3) - (4)].expression), NULL);
4798 (yyval.declaration)->set_location(yylloc);
4799 ;}
4800 break;
4801
4802 case 235:
4803
4804 /* Line 1464 of yacc.c */
4805 #line 1432 "glsl_parser.ypp"
4806 { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
4807 break;
4808
4809 case 240:
4810
4811 /* Line 1464 of yacc.c */
4812 #line 1440 "glsl_parser.ypp"
4813 { (yyval.node) = NULL; ;}
4814 break;
4815
4816 case 241:
4817
4818 /* Line 1464 of yacc.c */
4819 #line 1441 "glsl_parser.ypp"
4820 { (yyval.node) = NULL; ;}
4821 break;
4822
4823 case 244:
4824
4825 /* Line 1464 of yacc.c */
4826 #line 1448 "glsl_parser.ypp"
4827 {
4828 void *ctx = state;
4829 (yyval.compound_statement) = new(ctx) ast_compound_statement(true, NULL);
4830 (yyval.compound_statement)->set_location(yylloc);
4831 ;}
4832 break;
4833
4834 case 245:
4835
4836 /* Line 1464 of yacc.c */
4837 #line 1454 "glsl_parser.ypp"
4838 {
4839 void *ctx = state;
4840 (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (yyvsp[(2) - (3)].node));
4841 (yyval.compound_statement)->set_location(yylloc);
4842 ;}
4843 break;
4844
4845 case 246:
4846
4847 /* Line 1464 of yacc.c */
4848 #line 1462 "glsl_parser.ypp"
4849 { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
4850 break;
4851
4852 case 248:
4853
4854 /* Line 1464 of yacc.c */
4855 #line 1468 "glsl_parser.ypp"
4856 {
4857 void *ctx = state;
4858 (yyval.compound_statement) = new(ctx) ast_compound_statement(false, NULL);
4859 (yyval.compound_statement)->set_location(yylloc);
4860 ;}
4861 break;
4862
4863 case 249:
4864
4865 /* Line 1464 of yacc.c */
4866 #line 1474 "glsl_parser.ypp"
4867 {
4868 void *ctx = state;
4869 (yyval.compound_statement) = new(ctx) ast_compound_statement(false, (yyvsp[(2) - (3)].node));
4870 (yyval.compound_statement)->set_location(yylloc);
4871 ;}
4872 break;
4873
4874 case 250:
4875
4876 /* Line 1464 of yacc.c */
4877 #line 1483 "glsl_parser.ypp"
4878 {
4879 if ((yyvsp[(1) - (1)].node) == NULL) {
4880 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "<nil> statement\n");
4881 assert((yyvsp[(1) - (1)].node) != NULL);
4882 }
4883
4884 (yyval.node) = (yyvsp[(1) - (1)].node);
4885 (yyval.node)->link.self_link();
4886 ;}
4887 break;
4888
4889 case 251:
4890
4891 /* Line 1464 of yacc.c */
4892 #line 1493 "glsl_parser.ypp"
4893 {
4894 if ((yyvsp[(2) - (2)].node) == NULL) {
4895 _mesa_glsl_error(& (yylsp[(2) - (2)]), state, "<nil> statement\n");
4896 assert((yyvsp[(2) - (2)].node) != NULL);
4897 }
4898 (yyval.node) = (yyvsp[(1) - (2)].node);
4899 (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].node)->link);
4900 ;}
4901 break;
4902
4903 case 252:
4904
4905 /* Line 1464 of yacc.c */
4906 #line 1505 "glsl_parser.ypp"
4907 {
4908 void *ctx = state;
4909 (yyval.node) = new(ctx) ast_expression_statement(NULL);
4910 (yyval.node)->set_location(yylloc);
4911 ;}
4912 break;
4913
4914 case 253:
4915
4916 /* Line 1464 of yacc.c */
4917 #line 1511 "glsl_parser.ypp"
4918 {
4919 void *ctx = state;
4920 (yyval.node) = new(ctx) ast_expression_statement((yyvsp[(1) - (2)].expression));
4921 (yyval.node)->set_location(yylloc);
4922 ;}
4923 break;
4924
4925 case 254:
4926
4927 /* Line 1464 of yacc.c */
4928 #line 1520 "glsl_parser.ypp"
4929 {
4930 (yyval.node) = new(state) ast_selection_statement((yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].selection_rest_statement).then_statement,
4931 (yyvsp[(5) - (5)].selection_rest_statement).else_statement);
4932 (yyval.node)->set_location(yylloc);
4933 ;}
4934 break;
4935
4936 case 255:
4937
4938 /* Line 1464 of yacc.c */
4939 #line 1529 "glsl_parser.ypp"
4940 {
4941 (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (3)].node);
4942 (yyval.selection_rest_statement).else_statement = (yyvsp[(3) - (3)].node);
4943 ;}
4944 break;
4945
4946 case 256:
4947
4948 /* Line 1464 of yacc.c */
4949 #line 1534 "glsl_parser.ypp"
4950 {
4951 (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (1)].node);
4952 (yyval.selection_rest_statement).else_statement = NULL;
4953 ;}
4954 break;
4955
4956 case 257:
4957
4958 /* Line 1464 of yacc.c */
4959 #line 1542 "glsl_parser.ypp"
4960 {
4961 (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].expression);
4962 ;}
4963 break;
4964
4965 case 258:
4966
4967 /* Line 1464 of yacc.c */
4968 #line 1546 "glsl_parser.ypp"
4969 {
4970 void *ctx = state;
4971 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression));
4972 ast_declarator_list *declarator = new(ctx) ast_declarator_list((yyvsp[(1) - (4)].fully_specified_type));
4973 decl->set_location(yylloc);
4974 declarator->set_location(yylloc);
4975
4976 declarator->declarations.push_tail(&decl->link);
4977 (yyval.node) = declarator;
4978 ;}
4979 break;
4980
4981 case 262:
4982
4983 /* Line 1464 of yacc.c */
4984 #line 1569 "glsl_parser.ypp"
4985 {
4986 void *ctx = state;
4987 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_while,
4988 NULL, (yyvsp[(3) - (5)].node), NULL, (yyvsp[(5) - (5)].node));
4989 (yyval.node)->set_location(yylloc);
4990 ;}
4991 break;
4992
4993 case 263:
4994
4995 /* Line 1464 of yacc.c */
4996 #line 1576 "glsl_parser.ypp"
4997 {
4998 void *ctx = state;
4999 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_do_while,
5000 NULL, (yyvsp[(5) - (7)].expression), NULL, (yyvsp[(2) - (7)].node));
5001 (yyval.node)->set_location(yylloc);
5002 ;}
5003 break;
5004
5005 case 264:
5006
5007 /* Line 1464 of yacc.c */
5008 #line 1583 "glsl_parser.ypp"
5009 {
5010 void *ctx = state;
5011 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_for,
5012 (yyvsp[(3) - (6)].node), (yyvsp[(4) - (6)].for_rest_statement).cond, (yyvsp[(4) - (6)].for_rest_statement).rest, (yyvsp[(6) - (6)].node));
5013 (yyval.node)->set_location(yylloc);
5014 ;}
5015 break;
5016
5017 case 268:
5018
5019 /* Line 1464 of yacc.c */
5020 #line 1599 "glsl_parser.ypp"
5021 {
5022 (yyval.node) = NULL;
5023 ;}
5024 break;
5025
5026 case 269:
5027
5028 /* Line 1464 of yacc.c */
5029 #line 1606 "glsl_parser.ypp"
5030 {
5031 (yyval.for_rest_statement).cond = (yyvsp[(1) - (2)].node);
5032 (yyval.for_rest_statement).rest = NULL;
5033 ;}
5034 break;
5035
5036 case 270:
5037
5038 /* Line 1464 of yacc.c */
5039 #line 1611 "glsl_parser.ypp"
5040 {
5041 (yyval.for_rest_statement).cond = (yyvsp[(1) - (3)].node);
5042 (yyval.for_rest_statement).rest = (yyvsp[(3) - (3)].expression);
5043 ;}
5044 break;
5045
5046 case 271:
5047
5048 /* Line 1464 of yacc.c */
5049 #line 1620 "glsl_parser.ypp"
5050 {
5051 void *ctx = state;
5052 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_continue, NULL);
5053 (yyval.node)->set_location(yylloc);
5054 ;}
5055 break;
5056
5057 case 272:
5058
5059 /* Line 1464 of yacc.c */
5060 #line 1626 "glsl_parser.ypp"
5061 {
5062 void *ctx = state;
5063 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_break, NULL);
5064 (yyval.node)->set_location(yylloc);
5065 ;}
5066 break;
5067
5068 case 273:
5069
5070 /* Line 1464 of yacc.c */
5071 #line 1632 "glsl_parser.ypp"
5072 {
5073 void *ctx = state;
5074 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, NULL);
5075 (yyval.node)->set_location(yylloc);
5076 ;}
5077 break;
5078
5079 case 274:
5080
5081 /* Line 1464 of yacc.c */
5082 #line 1638 "glsl_parser.ypp"
5083 {
5084 void *ctx = state;
5085 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, (yyvsp[(2) - (3)].expression));
5086 (yyval.node)->set_location(yylloc);
5087 ;}
5088 break;
5089
5090 case 275:
5091
5092 /* Line 1464 of yacc.c */
5093 #line 1644 "glsl_parser.ypp"
5094 {
5095 void *ctx = state;
5096 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_discard, NULL);
5097 (yyval.node)->set_location(yylloc);
5098 ;}
5099 break;
5100
5101 case 276:
5102
5103 /* Line 1464 of yacc.c */
5104 #line 1652 "glsl_parser.ypp"
5105 { (yyval.node) = (yyvsp[(1) - (1)].function_definition); ;}
5106 break;
5107
5108 case 277:
5109
5110 /* Line 1464 of yacc.c */
5111 #line 1653 "glsl_parser.ypp"
5112 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
5113 break;
5114
5115 case 278:
5116
5117 /* Line 1464 of yacc.c */
5118 #line 1654 "glsl_parser.ypp"
5119 { (yyval.node) = NULL; ;}
5120 break;
5121
5122 case 279:
5123
5124 /* Line 1464 of yacc.c */
5125 #line 1659 "glsl_parser.ypp"
5126 {
5127 void *ctx = state;
5128 (yyval.function_definition) = new(ctx) ast_function_definition();
5129 (yyval.function_definition)->set_location(yylloc);
5130 (yyval.function_definition)->prototype = (yyvsp[(1) - (2)].function);
5131 (yyval.function_definition)->body = (yyvsp[(2) - (2)].compound_statement);
5132 ;}
5133 break;
5134
5135
5136
5137 /* Line 1464 of yacc.c */
5138 #line 5139 "glsl_parser.cpp"
5139 default: break;
5140 }
5141 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
5142
5143 YYPOPSTACK (yylen);
5144 yylen = 0;
5145 YY_STACK_PRINT (yyss, yyssp);
5146
5147 *++yyvsp = yyval;
5148 *++yylsp = yyloc;
5149
5150 /* Now `shift' the result of the reduction. Determine what state
5151 that goes to, based on the state we popped back to and the rule
5152 number reduced by. */
5153
5154 yyn = yyr1[yyn];
5155
5156 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
5157 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5158 yystate = yytable[yystate];
5159 else
5160 yystate = yydefgoto[yyn - YYNTOKENS];
5161
5162 goto yynewstate;
5163
5164
5165 /*------------------------------------.
5166 | yyerrlab -- here on detecting error |
5167 `------------------------------------*/
5168 yyerrlab:
5169 /* If not already recovering from an error, report this error. */
5170 if (!yyerrstatus)
5171 {
5172 ++yynerrs;
5173 #if ! YYERROR_VERBOSE
5174 yyerror (&yylloc, state, YY_("syntax error"));
5175 #else
5176 {
5177 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
5178 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
5179 {
5180 YYSIZE_T yyalloc = 2 * yysize;
5181 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
5182 yyalloc = YYSTACK_ALLOC_MAXIMUM;
5183 if (yymsg != yymsgbuf)
5184 YYSTACK_FREE (yymsg);
5185 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
5186 if (yymsg)
5187 yymsg_alloc = yyalloc;
5188 else
5189 {
5190 yymsg = yymsgbuf;
5191 yymsg_alloc = sizeof yymsgbuf;
5192 }
5193 }
5194
5195 if (0 < yysize && yysize <= yymsg_alloc)
5196 {
5197 (void) yysyntax_error (yymsg, yystate, yychar);
5198 yyerror (&yylloc, state, yymsg);
5199 }
5200 else
5201 {
5202 yyerror (&yylloc, state, YY_("syntax error"));
5203 if (yysize != 0)
5204 goto yyexhaustedlab;
5205 }
5206 }
5207 #endif
5208 }
5209
5210 yyerror_range[1] = yylloc;
5211
5212 if (yyerrstatus == 3)
5213 {
5214 /* If just tried and failed to reuse lookahead token after an
5215 error, discard it. */
5216
5217 if (yychar <= YYEOF)
5218 {
5219 /* Return failure if at end of input. */
5220 if (yychar == YYEOF)
5221 YYABORT;
5222 }
5223 else
5224 {
5225 yydestruct ("Error: discarding",
5226 yytoken, &yylval, &yylloc, state);
5227 yychar = YYEMPTY;
5228 }
5229 }
5230
5231 /* Else will try to reuse lookahead token after shifting the error
5232 token. */
5233 goto yyerrlab1;
5234
5235
5236 /*---------------------------------------------------.
5237 | yyerrorlab -- error raised explicitly by YYERROR. |
5238 `---------------------------------------------------*/
5239 yyerrorlab:
5240
5241 /* Pacify compilers like GCC when the user code never invokes
5242 YYERROR and the label yyerrorlab therefore never appears in user
5243 code. */
5244 if (/*CONSTCOND*/ 0)
5245 goto yyerrorlab;
5246
5247 yyerror_range[1] = yylsp[1-yylen];
5248 /* Do not reclaim the symbols of the rule which action triggered
5249 this YYERROR. */
5250 YYPOPSTACK (yylen);
5251 yylen = 0;
5252 YY_STACK_PRINT (yyss, yyssp);
5253 yystate = *yyssp;
5254 goto yyerrlab1;
5255
5256
5257 /*-------------------------------------------------------------.
5258 | yyerrlab1 -- common code for both syntax error and YYERROR. |
5259 `-------------------------------------------------------------*/
5260 yyerrlab1:
5261 yyerrstatus = 3; /* Each real token shifted decrements this. */
5262
5263 for (;;)
5264 {
5265 yyn = yypact[yystate];
5266 if (yyn != YYPACT_NINF)
5267 {
5268 yyn += YYTERROR;
5269 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
5270 {
5271 yyn = yytable[yyn];
5272 if (0 < yyn)
5273 break;
5274 }
5275 }
5276
5277 /* Pop the current state because it cannot handle the error token. */
5278 if (yyssp == yyss)
5279 YYABORT;
5280
5281 yyerror_range[1] = *yylsp;
5282 yydestruct ("Error: popping",
5283 yystos[yystate], yyvsp, yylsp, state);
5284 YYPOPSTACK (1);
5285 yystate = *yyssp;
5286 YY_STACK_PRINT (yyss, yyssp);
5287 }
5288
5289 *++yyvsp = yylval;
5290
5291 yyerror_range[2] = yylloc;
5292 /* Using YYLLOC is tempting, but would change the location of
5293 the lookahead. YYLOC is available though. */
5294 YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
5295 *++yylsp = yyloc;
5296
5297 /* Shift the error token. */
5298 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
5299
5300 yystate = yyn;
5301 goto yynewstate;
5302
5303
5304 /*-------------------------------------.
5305 | yyacceptlab -- YYACCEPT comes here. |
5306 `-------------------------------------*/
5307 yyacceptlab:
5308 yyresult = 0;
5309 goto yyreturn;
5310
5311 /*-----------------------------------.
5312 | yyabortlab -- YYABORT comes here. |
5313 `-----------------------------------*/
5314 yyabortlab:
5315 yyresult = 1;
5316 goto yyreturn;
5317
5318 #if !defined(yyoverflow) || YYERROR_VERBOSE
5319 /*-------------------------------------------------.
5320 | yyexhaustedlab -- memory exhaustion comes here. |
5321 `-------------------------------------------------*/
5322 yyexhaustedlab:
5323 yyerror (&yylloc, state, YY_("memory exhausted"));
5324 yyresult = 2;
5325 /* Fall through. */
5326 #endif
5327
5328 yyreturn:
5329 if (yychar != YYEMPTY)
5330 yydestruct ("Cleanup: discarding lookahead",
5331 yytoken, &yylval, &yylloc, state);
5332 /* Do not reclaim the symbols of the rule which action triggered
5333 this YYABORT or YYACCEPT. */
5334 YYPOPSTACK (yylen);
5335 YY_STACK_PRINT (yyss, yyssp);
5336 while (yyssp != yyss)
5337 {
5338 yydestruct ("Cleanup: popping",
5339 yystos[*yyssp], yyvsp, yylsp, state);
5340 YYPOPSTACK (1);
5341 }
5342 #ifndef yyoverflow
5343 if (yyss != yyssa)
5344 YYSTACK_FREE (yyss);
5345 #endif
5346 #if YYERROR_VERBOSE
5347 if (yymsg != yymsgbuf)
5348 YYSTACK_FREE (yymsg);
5349 #endif
5350 /* Make sure YYID is used. */
5351 return YYID (yyresult);
5352 }
5353
5354
5355