1 /* A Bison parser, made by GNU Bison 3.0.2.  */
2 
3 /* Bison implementation for Yacc-like parsers in C
4 
5    Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6 
7    This program is free software: you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation, either version 3 of the License, or
10    (at your option) any later version.
11 
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16 
17    You should have received a copy of the GNU General Public License
18    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19 
20 /* As a special exception, you may create a larger work that contains
21    part or all of the Bison parser skeleton and distribute that work
22    under terms of your choice, so long as that work isn't itself a
23    parser generator using the skeleton or a modified version thereof
24    as a parser skeleton.  Alternatively, if you modify or redistribute
25    the parser skeleton itself, you may (at your option) remove this
26    special exception, which will cause the skeleton and the resulting
27    Bison output files to be licensed under the GNU General Public
28    License without this special exception.
29 
30    This special exception was added by the Free Software Foundation in
31    version 2.2 of Bison.  */
32 
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34    simplifying the original so-called "semantic" parser.  */
35 
36 /* All symbols defined below should begin with yy or YY, to avoid
37    infringing on user name space.  This should be done even for local
38    variables, as they might otherwise be expanded by user macros.
39    There are some unavoidable exceptions within include files to
40    define necessary library symbols; they are noted "INFRINGES ON
41    USER NAME SPACE" below.  */
42 
43 /* Identify Bison output.  */
44 #define YYBISON 1
45 
46 /* Bison version.  */
47 #define YYBISON_VERSION "3.0.2"
48 
49 /* Skeleton name.  */
50 #define YYSKELETON_NAME "yacc.c"
51 
52 /* Pure parsers.  */
53 #define YYPURE 1
54 
55 /* Push parsers.  */
56 #define YYPUSH 0
57 
58 /* Pull parsers.  */
59 #define YYPULL 1
60 
61 
62 /* Substitute the variable and function names.  */
63 #define yyparse         _mesa_glsl_parse
64 #define yylex           _mesa_glsl_lex
65 #define yyerror         _mesa_glsl_error
66 #define yydebug         _mesa_glsl_debug
67 #define yynerrs         _mesa_glsl_nerrs
68 
69 
70 /* Copy the first part of user declarations.  */
71 #line 1 "src/glsl/glsl_parser.yy" /* yacc.c:339  */
72 
73 /*
74  * Copyright © 2008, 2009 Intel Corporation
75  *
76  * Permission is hereby granted, free of charge, to any person obtaining a
77  * copy of this software and associated documentation files (the "Software"),
78  * to deal in the Software without restriction, including without limitation
79  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
80  * and/or sell copies of the Software, and to permit persons to whom the
81  * Software is furnished to do so, subject to the following conditions:
82  *
83  * The above copyright notice and this permission notice (including the next
84  * paragraph) shall be included in all copies or substantial portions of the
85  * Software.
86  *
87  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
88  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
89  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
90  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
91  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
92  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
93  * DEALINGS IN THE SOFTWARE.
94  */
95 #include <stdio.h>
96 #include <stdlib.h>
97 #include <string.h>
98 #ifndef _MSC_VER
99 #include <strings.h>
100 #endif
101 #include <assert.h>
102 
103 #include "ast.h"
104 #include "glsl_parser_extras.h"
105 #include "glsl_types.h"
106 #include "main/context.h"
107 
108 #if defined(_MSC_VER)
109 #	pragma warning(disable: 4065) // warning C4065: switch statement contains 'default' but no 'case' labels
110 #	pragma warning(disable: 4244) // warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
111 #endif // defined(_MSC_VER)
112 
113 #undef yyerror
114 
yyerror(YYLTYPE * loc,_mesa_glsl_parse_state * st,const char * msg)115 static void yyerror(YYLTYPE *loc, _mesa_glsl_parse_state *st, const char *msg)
116 {
117    _mesa_glsl_error(loc, st, "%s", msg);
118 }
119 
120 static int
_mesa_glsl_lex(YYSTYPE * val,YYLTYPE * loc,_mesa_glsl_parse_state * state)121 _mesa_glsl_lex(YYSTYPE *val, YYLTYPE *loc, _mesa_glsl_parse_state *state)
122 {
123    return _mesa_glsl_lexer_lex(val, loc, state->scanner);
124 }
125 
match_layout_qualifier(const char * s1,const char * s2,_mesa_glsl_parse_state * state)126 static bool match_layout_qualifier(const char *s1, const char *s2,
127                                    _mesa_glsl_parse_state *state)
128 {
129    /* From the GLSL 1.50 spec, section 4.3.8 (Layout Qualifiers):
130     *
131     *     "The tokens in any layout-qualifier-id-list ... are not case
132     *     sensitive, unless explicitly noted otherwise."
133     *
134     * The text "unless explicitly noted otherwise" appears to be
135     * vacuous--no desktop GLSL spec (up through GLSL 4.40) notes
136     * otherwise.
137     *
138     * However, the GLSL ES 3.00 spec says, in section 4.3.8 (Layout
139     * Qualifiers):
140     *
141     *     "As for other identifiers, they are case sensitive."
142     *
143     * So we need to do a case-sensitive or a case-insensitive match,
144     * depending on whether we are compiling for GLSL ES.
145     */
146    if (state->es_shader)
147       return strcmp(s1, s2);
148    else
149       return strcasecmp(s1, s2);
150 }
151 
152 #line 153 "src/glsl/glsl_parser.cpp" /* yacc.c:339  */
153 
154 # ifndef YY_NULLPTR
155 #  if defined __cplusplus && 201103L <= __cplusplus
156 #   define YY_NULLPTR nullptr
157 #  else
158 #   define YY_NULLPTR 0
159 #  endif
160 # endif
161 
162 /* Enabling verbose error messages.  */
163 #ifdef YYERROR_VERBOSE
164 # undef YYERROR_VERBOSE
165 # define YYERROR_VERBOSE 1
166 #else
167 # define YYERROR_VERBOSE 1
168 #endif
169 
170 /* In a future release of Bison, this section will be replaced
171    by #include "glsl_parser.h".  */
172 #ifndef YY__MESA_GLSL_SRC_GLSL_GLSL_PARSER_H_INCLUDED
173 # define YY__MESA_GLSL_SRC_GLSL_GLSL_PARSER_H_INCLUDED
174 /* Debug traces.  */
175 #ifndef YYDEBUG
176 # define YYDEBUG 0
177 #endif
178 #if YYDEBUG
179 extern int _mesa_glsl_debug;
180 #endif
181 
182 /* Token type.  */
183 #ifndef YYTOKENTYPE
184 # define YYTOKENTYPE
185   enum yytokentype
186   {
187     ATTRIBUTE = 258,
188     CONST_TOK = 259,
189     BOOL_TOK = 260,
190     FLOAT_TOK = 261,
191     INT_TOK = 262,
192     UINT_TOK = 263,
193     BREAK = 264,
194     CONTINUE = 265,
195     DO = 266,
196     ELSE = 267,
197     FOR = 268,
198     IF = 269,
199     DISCARD = 270,
200     RETURN = 271,
201     SWITCH = 272,
202     CASE = 273,
203     DEFAULT = 274,
204     BVEC2 = 275,
205     BVEC3 = 276,
206     BVEC4 = 277,
207     IVEC2 = 278,
208     IVEC3 = 279,
209     IVEC4 = 280,
210     UVEC2 = 281,
211     UVEC3 = 282,
212     UVEC4 = 283,
213     VEC2 = 284,
214     VEC3 = 285,
215     VEC4 = 286,
216     CENTROID = 287,
217     IN_TOK = 288,
218     OUT_TOK = 289,
219     INOUT_TOK = 290,
220     UNIFORM = 291,
221     VARYING = 292,
222     SAMPLE = 293,
223     NOPERSPECTIVE = 294,
224     FLAT = 295,
225     SMOOTH = 296,
226     MAT2X2 = 297,
227     MAT2X3 = 298,
228     MAT2X4 = 299,
229     MAT3X2 = 300,
230     MAT3X3 = 301,
231     MAT3X4 = 302,
232     MAT4X2 = 303,
233     MAT4X3 = 304,
234     MAT4X4 = 305,
235     SAMPLER1D = 306,
236     SAMPLER2D = 307,
237     SAMPLER3D = 308,
238     SAMPLERCUBE = 309,
239     SAMPLER1DSHADOW = 310,
240     SAMPLER2DSHADOW = 311,
241     SAMPLERCUBESHADOW = 312,
242     SAMPLER1DARRAY = 313,
243     SAMPLER2DARRAY = 314,
244     SAMPLER1DARRAYSHADOW = 315,
245     SAMPLER2DARRAYSHADOW = 316,
246     SAMPLERCUBEARRAY = 317,
247     SAMPLERCUBEARRAYSHADOW = 318,
248     ISAMPLER1D = 319,
249     ISAMPLER2D = 320,
250     ISAMPLER3D = 321,
251     ISAMPLERCUBE = 322,
252     ISAMPLER1DARRAY = 323,
253     ISAMPLER2DARRAY = 324,
254     ISAMPLERCUBEARRAY = 325,
255     USAMPLER1D = 326,
256     USAMPLER2D = 327,
257     USAMPLER3D = 328,
258     USAMPLERCUBE = 329,
259     USAMPLER1DARRAY = 330,
260     USAMPLER2DARRAY = 331,
261     USAMPLERCUBEARRAY = 332,
262     SAMPLER2DRECT = 333,
263     ISAMPLER2DRECT = 334,
264     USAMPLER2DRECT = 335,
265     SAMPLER2DRECTSHADOW = 336,
266     SAMPLERBUFFER = 337,
267     ISAMPLERBUFFER = 338,
268     USAMPLERBUFFER = 339,
269     SAMPLER2DMS = 340,
270     ISAMPLER2DMS = 341,
271     USAMPLER2DMS = 342,
272     SAMPLER2DMSARRAY = 343,
273     ISAMPLER2DMSARRAY = 344,
274     USAMPLER2DMSARRAY = 345,
275     SAMPLEREXTERNALOES = 346,
276     IMAGE1D = 347,
277     IMAGE2D = 348,
278     IMAGE3D = 349,
279     IMAGE2DRECT = 350,
280     IMAGECUBE = 351,
281     IMAGEBUFFER = 352,
282     IMAGE1DARRAY = 353,
283     IMAGE2DARRAY = 354,
284     IMAGECUBEARRAY = 355,
285     IMAGE2DMS = 356,
286     IMAGE2DMSARRAY = 357,
287     IIMAGE1D = 358,
288     IIMAGE2D = 359,
289     IIMAGE3D = 360,
290     IIMAGE2DRECT = 361,
291     IIMAGECUBE = 362,
292     IIMAGEBUFFER = 363,
293     IIMAGE1DARRAY = 364,
294     IIMAGE2DARRAY = 365,
295     IIMAGECUBEARRAY = 366,
296     IIMAGE2DMS = 367,
297     IIMAGE2DMSARRAY = 368,
298     UIMAGE1D = 369,
299     UIMAGE2D = 370,
300     UIMAGE3D = 371,
301     UIMAGE2DRECT = 372,
302     UIMAGECUBE = 373,
303     UIMAGEBUFFER = 374,
304     UIMAGE1DARRAY = 375,
305     UIMAGE2DARRAY = 376,
306     UIMAGECUBEARRAY = 377,
307     UIMAGE2DMS = 378,
308     UIMAGE2DMSARRAY = 379,
309     IMAGE1DSHADOW = 380,
310     IMAGE2DSHADOW = 381,
311     IMAGE1DARRAYSHADOW = 382,
312     IMAGE2DARRAYSHADOW = 383,
313     COHERENT = 384,
314     VOLATILE = 385,
315     RESTRICT = 386,
316     READONLY = 387,
317     WRITEONLY = 388,
318     ATOMIC_UINT = 389,
319     STRUCT = 390,
320     VOID_TOK = 391,
321     WHILE = 392,
322     IDENTIFIER = 393,
323     TYPE_IDENTIFIER = 394,
324     NEW_IDENTIFIER = 395,
325     FLOATCONSTANT = 396,
326     INTCONSTANT = 397,
327     UINTCONSTANT = 398,
328     BOOLCONSTANT = 399,
329     FIELD_SELECTION = 400,
330     LEFT_OP = 401,
331     RIGHT_OP = 402,
332     INC_OP = 403,
333     DEC_OP = 404,
334     LE_OP = 405,
335     GE_OP = 406,
336     EQ_OP = 407,
337     NE_OP = 408,
338     AND_OP = 409,
339     OR_OP = 410,
340     XOR_OP = 411,
341     MUL_ASSIGN = 412,
342     DIV_ASSIGN = 413,
343     ADD_ASSIGN = 414,
344     MOD_ASSIGN = 415,
345     LEFT_ASSIGN = 416,
346     RIGHT_ASSIGN = 417,
347     AND_ASSIGN = 418,
348     XOR_ASSIGN = 419,
349     OR_ASSIGN = 420,
350     SUB_ASSIGN = 421,
351     INVARIANT = 422,
352     PRECISE = 423,
353     LOWP = 424,
354     MEDIUMP = 425,
355     HIGHP = 426,
356     SUPERP = 427,
357     PRECISION = 428,
358     VERSION_TOK = 429,
359     EXTENSION = 430,
360     LINE = 431,
361     COLON = 432,
362     EOL = 433,
363     INTERFACE = 434,
364     OUTPUT = 435,
365     PRAGMA_DEBUG_ON = 436,
366     PRAGMA_DEBUG_OFF = 437,
367     PRAGMA_OPTIMIZE_ON = 438,
368     PRAGMA_OPTIMIZE_OFF = 439,
369     PRAGMA_INVARIANT_ALL = 440,
370     LAYOUT_TOK = 441,
371     ASM = 442,
372     CLASS = 443,
373     UNION = 444,
374     ENUM = 445,
375     TYPEDEF = 446,
376     TEMPLATE = 447,
377     THIS = 448,
378     PACKED_TOK = 449,
379     GOTO = 450,
380     INLINE_TOK = 451,
381     NOINLINE = 452,
382     PUBLIC_TOK = 453,
383     STATIC = 454,
384     EXTERN = 455,
385     EXTERNAL = 456,
386     LONG_TOK = 457,
387     SHORT_TOK = 458,
388     DOUBLE_TOK = 459,
389     HALF = 460,
390     FIXED_TOK = 461,
391     UNSIGNED = 462,
392     INPUT_TOK = 463,
393     HVEC2 = 464,
394     HVEC3 = 465,
395     HVEC4 = 466,
396     DVEC2 = 467,
397     DVEC3 = 468,
398     DVEC4 = 469,
399     FVEC2 = 470,
400     FVEC3 = 471,
401     FVEC4 = 472,
402     SAMPLER3DRECT = 473,
403     SIZEOF = 474,
404     CAST = 475,
405     NAMESPACE = 476,
406     USING = 477,
407     RESOURCE = 478,
408     PATCH = 479,
409     SUBROUTINE = 480,
410     ERROR_TOK = 481,
411     COMMON = 482,
412     PARTITION = 483,
413     ACTIVE = 484,
414     FILTER = 485,
415     ROW_MAJOR = 486,
416     THEN = 487
417   };
418 #endif
419 
420 /* Value type.  */
421 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
422 typedef union YYSTYPE YYSTYPE;
423 union YYSTYPE
424 {
425 #line 99 "src/glsl/glsl_parser.yy" /* yacc.c:355  */
426 
427    int n;
428    float real;
429    const char *identifier;
430 
431    struct ast_type_qualifier type_qualifier;
432 
433    ast_node *node;
434    ast_type_specifier *type_specifier;
435    ast_array_specifier *array_specifier;
436    ast_fully_specified_type *fully_specified_type;
437    ast_function *function;
438    ast_parameter_declarator *parameter_declarator;
439    ast_function_definition *function_definition;
440    ast_compound_statement *compound_statement;
441    ast_expression *expression;
442    ast_declarator_list *declarator_list;
443    ast_struct_specifier *struct_specifier;
444    ast_declaration *declaration;
445    ast_switch_body *switch_body;
446    ast_case_label *case_label;
447    ast_case_label_list *case_label_list;
448    ast_case_statement *case_statement;
449    ast_case_statement_list *case_statement_list;
450    ast_interface_block *interface_block;
451 
452    struct {
453       ast_node *cond;
454       ast_expression *rest;
455    } for_rest_statement;
456 
457    struct {
458       ast_node *then_statement;
459       ast_node *else_statement;
460    } selection_rest_statement;
461 
462 #line 463 "src/glsl/glsl_parser.cpp" /* yacc.c:355  */
463 };
464 # define YYSTYPE_IS_TRIVIAL 1
465 # define YYSTYPE_IS_DECLARED 1
466 #endif
467 
468 /* Location type.  */
469 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
470 typedef struct YYLTYPE YYLTYPE;
471 struct YYLTYPE
472 {
473   int first_line;
474   int first_column;
475   int last_line;
476   int last_column;
477 };
478 # define YYLTYPE_IS_DECLARED 1
479 # define YYLTYPE_IS_TRIVIAL 1
480 #endif
481 
482 
483 
484 int _mesa_glsl_parse (struct _mesa_glsl_parse_state *state);
485 
486 #endif /* !YY__MESA_GLSL_SRC_GLSL_GLSL_PARSER_H_INCLUDED  */
487 
488 /* Copy the second part of user declarations.  */
489 
490 #line 491 "src/glsl/glsl_parser.cpp" /* yacc.c:358  */
491 
492 #ifdef short
493 # undef short
494 #endif
495 
496 #ifdef YYTYPE_UINT8
497 typedef YYTYPE_UINT8 yytype_uint8;
498 #else
499 typedef unsigned char yytype_uint8;
500 #endif
501 
502 #ifdef YYTYPE_INT8
503 typedef YYTYPE_INT8 yytype_int8;
504 #else
505 typedef signed char yytype_int8;
506 #endif
507 
508 #ifdef YYTYPE_UINT16
509 typedef YYTYPE_UINT16 yytype_uint16;
510 #else
511 typedef unsigned short int yytype_uint16;
512 #endif
513 
514 #ifdef YYTYPE_INT16
515 typedef YYTYPE_INT16 yytype_int16;
516 #else
517 typedef short int yytype_int16;
518 #endif
519 
520 #ifndef YYSIZE_T
521 # ifdef __SIZE_TYPE__
522 #  define YYSIZE_T __SIZE_TYPE__
523 # elif defined size_t
524 #  define YYSIZE_T size_t
525 # elif ! defined YYSIZE_T
526 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
527 #  define YYSIZE_T size_t
528 # else
529 #  define YYSIZE_T unsigned int
530 # endif
531 #endif
532 
533 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
534 
535 #ifndef YY_
536 # if defined YYENABLE_NLS && YYENABLE_NLS
537 #  if ENABLE_NLS
538 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
539 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
540 #  endif
541 # endif
542 # ifndef YY_
543 #  define YY_(Msgid) Msgid
544 # endif
545 #endif
546 
547 #ifndef YY_ATTRIBUTE
548 # if (defined __GNUC__                                               \
549       && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
550      || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
551 #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
552 # else
553 #  define YY_ATTRIBUTE(Spec) /* empty */
554 # endif
555 #endif
556 
557 #ifndef YY_ATTRIBUTE_PURE
558 # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
559 #endif
560 
561 #ifndef YY_ATTRIBUTE_UNUSED
562 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
563 #endif
564 
565 #if !defined _Noreturn \
566      && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
567 # if defined _MSC_VER && 1200 <= _MSC_VER
568 #  define _Noreturn __declspec (noreturn)
569 # else
570 #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
571 # endif
572 #endif
573 
574 /* Suppress unused-variable warnings by "using" E.  */
575 #if ! defined lint || defined __GNUC__
576 # define YYUSE(E) ((void) (E))
577 #else
578 # define YYUSE(E) /* empty */
579 #endif
580 
581 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
582 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
583 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
584     _Pragma ("GCC diagnostic push") \
585     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
586     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
587 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
588     _Pragma ("GCC diagnostic pop")
589 #else
590 # define YY_INITIAL_VALUE(Value) Value
591 #endif
592 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
593 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
594 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
595 #endif
596 #ifndef YY_INITIAL_VALUE
597 # define YY_INITIAL_VALUE(Value) /* Nothing. */
598 #endif
599 
600 
601 #if ! defined yyoverflow || YYERROR_VERBOSE
602 
603 /* The parser invokes alloca or malloc; define the necessary symbols.  */
604 
605 # ifdef YYSTACK_USE_ALLOCA
606 #  if YYSTACK_USE_ALLOCA
607 #   ifdef __GNUC__
608 #    define YYSTACK_ALLOC __builtin_alloca
609 #   elif defined __BUILTIN_VA_ARG_INCR
610 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
611 #   elif defined _AIX
612 #    define YYSTACK_ALLOC __alloca
613 #   elif defined _MSC_VER
614 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
615 #    define alloca _alloca
616 #   else
617 #    define YYSTACK_ALLOC alloca
618 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
619 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
620       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
621 #     ifndef EXIT_SUCCESS
622 #      define EXIT_SUCCESS 0
623 #     endif
624 #    endif
625 #   endif
626 #  endif
627 # endif
628 
629 # ifdef YYSTACK_ALLOC
630    /* Pacify GCC's 'empty if-body' warning.  */
631 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
632 #  ifndef YYSTACK_ALLOC_MAXIMUM
633     /* The OS might guarantee only one guard page at the bottom of the stack,
634        and a page size can be as small as 4096 bytes.  So we cannot safely
635        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
636        to allow for a few compiler-allocated temporary stack slots.  */
637 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
638 #  endif
639 # else
640 #  define YYSTACK_ALLOC YYMALLOC
641 #  define YYSTACK_FREE YYFREE
642 #  ifndef YYSTACK_ALLOC_MAXIMUM
643 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
644 #  endif
645 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
646        && ! ((defined YYMALLOC || defined malloc) \
647              && (defined YYFREE || defined free)))
648 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
649 #   ifndef EXIT_SUCCESS
650 #    define EXIT_SUCCESS 0
651 #   endif
652 #  endif
653 #  ifndef YYMALLOC
654 #   define YYMALLOC malloc
655 #   if ! defined malloc && ! defined EXIT_SUCCESS
656 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
657 #   endif
658 #  endif
659 #  ifndef YYFREE
660 #   define YYFREE free
661 #   if ! defined free && ! defined EXIT_SUCCESS
662 void free (void *); /* INFRINGES ON USER NAME SPACE */
663 #   endif
664 #  endif
665 # endif
666 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
667 
668 
669 #if (! defined yyoverflow \
670      && (! defined __cplusplus \
671          || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
672              && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
673 
674 /* A type that is properly aligned for any stack member.  */
675 union yyalloc
676 {
677   yytype_int16 yyss_alloc;
678   YYSTYPE yyvs_alloc;
679   YYLTYPE yyls_alloc;
680 };
681 
682 /* The size of the maximum gap between one aligned stack and the next.  */
683 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
684 
685 /* The size of an array large to enough to hold all stacks, each with
686    N elements.  */
687 # define YYSTACK_BYTES(N) \
688      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
689       + 2 * YYSTACK_GAP_MAXIMUM)
690 
691 # define YYCOPY_NEEDED 1
692 
693 /* Relocate STACK from its old location to the new one.  The
694    local variables YYSIZE and YYSTACKSIZE give the old and new number of
695    elements in the stack, and YYPTR gives the new location of the
696    stack.  Advance YYPTR to a properly aligned location for the next
697    stack.  */
698 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
699     do                                                                  \
700       {                                                                 \
701         YYSIZE_T yynewbytes;                                            \
702         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
703         Stack = &yyptr->Stack_alloc;                                    \
704         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
705         yyptr += yynewbytes / sizeof (*yyptr);                          \
706       }                                                                 \
707     while (0)
708 
709 #endif
710 
711 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
712 /* Copy COUNT objects from SRC to DST.  The source and destination do
713    not overlap.  */
714 # ifndef YYCOPY
715 #  if defined __GNUC__ && 1 < __GNUC__
716 #   define YYCOPY(Dst, Src, Count) \
717       __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
718 #  else
719 #   define YYCOPY(Dst, Src, Count)              \
720       do                                        \
721         {                                       \
722           YYSIZE_T yyi;                         \
723           for (yyi = 0; yyi < (Count); yyi++)   \
724             (Dst)[yyi] = (Src)[yyi];            \
725         }                                       \
726       while (0)
727 #  endif
728 # endif
729 #endif /* !YYCOPY_NEEDED */
730 
731 /* YYFINAL -- State number of the termination state.  */
732 #define YYFINAL  5
733 /* YYLAST -- Last index in YYTABLE.  */
734 #define YYLAST   5440
735 
736 /* YYNTOKENS -- Number of terminals.  */
737 #define YYNTOKENS  257
738 /* YYNNTS -- Number of nonterminals.  */
739 #define YYNNTS  108
740 /* YYNRULES -- Number of rules.  */
741 #define YYNRULES  386
742 /* YYNSTATES -- Number of states.  */
743 #define YYNSTATES  540
744 
745 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
746    by yylex, with out-of-bounds checking.  */
747 #define YYUNDEFTOK  2
748 #define YYMAXUTOK   487
749 
750 #define YYTRANSLATE(YYX)                                                \
751   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
752 
753 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
754    as returned by yylex, without out-of-bounds checking.  */
755 static const yytype_uint16 yytranslate[] =
756 {
757        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
758        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
759        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
760        2,     2,     2,   241,     2,     2,     2,   245,   248,     2,
761      233,   234,   243,   239,   238,   240,   237,   244,     2,     2,
762        2,     2,     2,     2,     2,     2,     2,     2,   252,   254,
763      246,   253,   247,   251,     2,     2,     2,     2,     2,     2,
764        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
765        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
766        2,   235,     2,   236,   249,     2,     2,     2,     2,     2,
767        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
768        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
769        2,     2,     2,   255,   250,   256,   242,     2,     2,     2,
770        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
771        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
772        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
773        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
774        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
775        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
776        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
777        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
778        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
779        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
780        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
781        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
782        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
783        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
784       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
785       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
786       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
787       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
788       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
789       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
790       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
791       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
792       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
793      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
794      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
795      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
796      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
797      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
798      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
799      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
800      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
801      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
802      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
803      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
804      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
805      225,   226,   227,   228,   229,   230,   231,   232
806 };
807 
808 #if YYDEBUG
809   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
810 static const yytype_uint16 yyrline[] =
811 {
812        0,   303,   303,   302,   314,   316,   323,   333,   334,   335,
813      336,   337,   350,   352,   356,   357,   358,   362,   371,   379,
814      387,   398,   399,   403,   410,   417,   424,   431,   438,   445,
815      446,   452,   456,   463,   469,   478,   482,   486,   487,   496,
816      497,   501,   502,   506,   512,   524,   528,   534,   542,   553,
817      554,   558,   559,   563,   569,   581,   593,   594,   600,   606,
818      616,   617,   618,   619,   623,   624,   630,   636,   645,   646,
819      652,   661,   662,   668,   677,   678,   684,   690,   696,   705,
820      706,   712,   721,   722,   731,   732,   741,   742,   751,   752,
821      761,   762,   771,   772,   781,   782,   791,   792,   801,   802,
822      803,   804,   805,   806,   807,   808,   809,   810,   811,   815,
823      819,   835,   839,   844,   848,   853,   860,   864,   865,   869,
824      874,   882,   896,   906,   920,   925,   939,   943,   951,   959,
825      971,   984,   990,   996,  1006,  1011,  1012,  1022,  1032,  1042,
826     1056,  1063,  1073,  1083,  1093,  1103,  1115,  1130,  1137,  1148,
827     1155,  1156,  1166,  1167,  1171,  1357,  1497,  1523,  1529,  1538,
828     1544,  1550,  1560,  1566,  1571,  1572,  1573,  1574,  1575,  1594,
829     1602,  1614,  1638,  1655,  1671,  1691,  1705,  1711,  1719,  1725,
830     1731,  1737,  1743,  1749,  1770,  1776,  1781,  1786,  1792,  1797,
831     1805,  1811,  1817,  1831,  1846,  1847,  1855,  1861,  1867,  1876,
832     1877,  1878,  1879,  1880,  1881,  1882,  1883,  1884,  1885,  1886,
833     1887,  1888,  1889,  1890,  1891,  1892,  1893,  1894,  1895,  1896,
834     1897,  1898,  1899,  1900,  1901,  1902,  1903,  1904,  1905,  1906,
835     1907,  1908,  1909,  1910,  1911,  1912,  1913,  1914,  1915,  1916,
836     1917,  1918,  1919,  1920,  1921,  1922,  1923,  1924,  1925,  1926,
837     1927,  1928,  1929,  1930,  1931,  1932,  1933,  1934,  1935,  1936,
838     1937,  1938,  1939,  1940,  1941,  1942,  1943,  1944,  1945,  1946,
839     1947,  1948,  1949,  1950,  1951,  1952,  1953,  1954,  1955,  1956,
840     1957,  1958,  1959,  1960,  1961,  1962,  1963,  1964,  1965,  1966,
841     1967,  1968,  1969,  1970,  1971,  1972,  1973,  1974,  1975,  1976,
842     1980,  1985,  1990,  1998,  2005,  2014,  2019,  2027,  2046,  2051,
843     2059,  2065,  2074,  2075,  2079,  2086,  2093,  2100,  2106,  2107,
844     2111,  2112,  2113,  2114,  2115,  2116,  2120,  2127,  2126,  2140,
845     2141,  2145,  2151,  2160,  2170,  2182,  2188,  2197,  2206,  2211,
846     2219,  2223,  2241,  2249,  2254,  2262,  2267,  2275,  2283,  2291,
847     2299,  2307,  2315,  2323,  2330,  2337,  2347,  2348,  2352,  2354,
848     2360,  2365,  2374,  2380,  2386,  2392,  2398,  2407,  2408,  2409,
849     2410,  2414,  2428,  2432,  2455,  2560,  2566,  2572,  2582,  2586,
850     2592,  2601,  2606,  2614,  2638,  2646,  2654
851 };
852 #endif
853 
854 #if YYDEBUG || YYERROR_VERBOSE || 1
855 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
856    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
857 static const char *const yytname[] =
858 {
859   "$end", "error", "$undefined", "ATTRIBUTE", "CONST_TOK", "BOOL_TOK",
860   "FLOAT_TOK", "INT_TOK", "UINT_TOK", "BREAK", "CONTINUE", "DO", "ELSE",
861   "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "BVEC2",
862   "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", "UVEC2", "UVEC3", "UVEC4",
863   "VEC2", "VEC3", "VEC4", "CENTROID", "IN_TOK", "OUT_TOK", "INOUT_TOK",
864   "UNIFORM", "VARYING", "SAMPLE", "NOPERSPECTIVE", "FLAT", "SMOOTH",
865   "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2",
866   "MAT4X3", "MAT4X4", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
867   "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW",
868   "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW",
869   "SAMPLER2DARRAYSHADOW", "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW",
870   "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE",
871   "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "ISAMPLERCUBEARRAY", "USAMPLER1D",
872   "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY",
873   "USAMPLER2DARRAY", "USAMPLERCUBEARRAY", "SAMPLER2DRECT",
874   "ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLER2DRECTSHADOW",
875   "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", "SAMPLER2DMS",
876   "ISAMPLER2DMS", "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY",
877   "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "IMAGE1D", "IMAGE2D",
878   "IMAGE3D", "IMAGE2DRECT", "IMAGECUBE", "IMAGEBUFFER", "IMAGE1DARRAY",
879   "IMAGE2DARRAY", "IMAGECUBEARRAY", "IMAGE2DMS", "IMAGE2DMSARRAY",
880   "IIMAGE1D", "IIMAGE2D", "IIMAGE3D", "IIMAGE2DRECT", "IIMAGECUBE",
881   "IIMAGEBUFFER", "IIMAGE1DARRAY", "IIMAGE2DARRAY", "IIMAGECUBEARRAY",
882   "IIMAGE2DMS", "IIMAGE2DMSARRAY", "UIMAGE1D", "UIMAGE2D", "UIMAGE3D",
883   "UIMAGE2DRECT", "UIMAGECUBE", "UIMAGEBUFFER", "UIMAGE1DARRAY",
884   "UIMAGE2DARRAY", "UIMAGECUBEARRAY", "UIMAGE2DMS", "UIMAGE2DMSARRAY",
885   "IMAGE1DSHADOW", "IMAGE2DSHADOW", "IMAGE1DARRAYSHADOW",
886   "IMAGE2DARRAYSHADOW", "COHERENT", "VOLATILE", "RESTRICT", "READONLY",
887   "WRITEONLY", "ATOMIC_UINT", "STRUCT", "VOID_TOK", "WHILE", "IDENTIFIER",
888   "TYPE_IDENTIFIER", "NEW_IDENTIFIER", "FLOATCONSTANT", "INTCONSTANT",
889   "UINTCONSTANT", "BOOLCONSTANT", "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP",
890   "INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP",
891   "OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN",
892   "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN",
893   "OR_ASSIGN", "SUB_ASSIGN", "INVARIANT", "PRECISE", "LOWP", "MEDIUMP",
894   "HIGHP", "SUPERP", "PRECISION", "VERSION_TOK", "EXTENSION", "LINE",
895   "COLON", "EOL", "INTERFACE", "OUTPUT", "PRAGMA_DEBUG_ON",
896   "PRAGMA_DEBUG_OFF", "PRAGMA_OPTIMIZE_ON", "PRAGMA_OPTIMIZE_OFF",
897   "PRAGMA_INVARIANT_ALL", "LAYOUT_TOK", "ASM", "CLASS", "UNION", "ENUM",
898   "TYPEDEF", "TEMPLATE", "THIS", "PACKED_TOK", "GOTO", "INLINE_TOK",
899   "NOINLINE", "PUBLIC_TOK", "STATIC", "EXTERN", "EXTERNAL", "LONG_TOK",
900   "SHORT_TOK", "DOUBLE_TOK", "HALF", "FIXED_TOK", "UNSIGNED", "INPUT_TOK",
901   "HVEC2", "HVEC3", "HVEC4", "DVEC2", "DVEC3", "DVEC4", "FVEC2", "FVEC3",
902   "FVEC4", "SAMPLER3DRECT", "SIZEOF", "CAST", "NAMESPACE", "USING",
903   "RESOURCE", "PATCH", "SUBROUTINE", "ERROR_TOK", "COMMON", "PARTITION",
904   "ACTIVE", "FILTER", "ROW_MAJOR", "THEN", "'('", "')'", "'['", "']'",
905   "'.'", "','", "'+'", "'-'", "'!'", "'~'", "'*'", "'/'", "'%'", "'<'",
906   "'>'", "'&'", "'^'", "'|'", "'?'", "':'", "'='", "';'", "'{'", "'}'",
907   "$accept", "translation_unit", "$@1", "version_statement",
908   "pragma_statement", "extension_statement_list", "any_identifier",
909   "extension_statement", "external_declaration_list",
910   "variable_identifier", "primary_expression", "postfix_expression",
911   "integer_expression", "function_call", "function_call_or_method",
912   "function_call_generic", "function_call_header_no_parameters",
913   "function_call_header_with_parameters", "function_call_header",
914   "function_identifier", "method_call_generic",
915   "method_call_header_no_parameters", "method_call_header_with_parameters",
916   "method_call_header", "unary_expression", "unary_operator",
917   "multiplicative_expression", "additive_expression", "shift_expression",
918   "relational_expression", "equality_expression", "and_expression",
919   "exclusive_or_expression", "inclusive_or_expression",
920   "logical_and_expression", "logical_xor_expression",
921   "logical_or_expression", "conditional_expression",
922   "assignment_expression", "assignment_operator", "expression",
923   "constant_expression", "declaration", "function_prototype",
924   "function_declarator", "function_header_with_parameters",
925   "function_header", "parameter_declarator", "parameter_declaration",
926   "parameter_qualifier", "parameter_direction_qualifier",
927   "parameter_type_specifier", "init_declarator_list", "single_declaration",
928   "fully_specified_type", "layout_qualifier", "layout_qualifier_id_list",
929   "integer_constant", "layout_qualifier_id",
930   "interface_block_layout_qualifier", "interpolation_qualifier",
931   "type_qualifier", "auxiliary_storage_qualifier", "storage_qualifier",
932   "array_specifier", "type_specifier", "type_specifier_nonarray",
933   "basic_type_specifier_nonarray", "precision_qualifier",
934   "struct_specifier", "struct_declaration_list", "struct_declaration",
935   "struct_declarator_list", "struct_declarator", "initializer",
936   "initializer_list", "declaration_statement", "statement",
937   "simple_statement", "compound_statement", "$@2",
938   "statement_no_new_scope", "compound_statement_no_new_scope",
939   "statement_list", "expression_statement", "selection_statement",
940   "selection_rest_statement", "condition", "switch_statement",
941   "switch_body", "case_label", "case_label_list", "case_statement",
942   "case_statement_list", "iteration_statement", "for_init_statement",
943   "conditionopt", "for_rest_statement", "jump_statement",
944   "external_declaration", "function_definition", "interface_block",
945   "basic_interface_block", "interface_qualifier", "instance_name_opt",
946   "member_list", "member_declaration", "layout_defaults", YY_NULLPTR
947 };
948 #endif
949 
950 # ifdef YYPRINT
951 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
952    (internal) symbol number NUM (which must be that of a token).  */
953 static const yytype_uint16 yytoknum[] =
954 {
955        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
956      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
957      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
958      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
959      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
960      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
961      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
962      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
963      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
964      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
965      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
966      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
967      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
968      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
969      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
970      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
971      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
972      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
973      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
974      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
975      455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
976      465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
977      475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
978      485,   486,   487,    40,    41,    91,    93,    46,    44,    43,
979       45,    33,   126,    42,    47,    37,    60,    62,    38,    94,
980      124,    63,    58,    61,    59,   123,   125
981 };
982 # endif
983 
984 #define YYPACT_NINF -414
985 
986 #define yypact_value_is_default(Yystate) \
987   (!!((Yystate) == (-414)))
988 
989 #define YYTABLE_NINF -378
990 
991 #define yytable_value_is_error(Yytable_value) \
992   0
993 
994   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
995      STATE-NUM.  */
996 static const yytype_int16 yypact[] =
997 {
998     -129,   -92,    53,  -414,  -103,  -414,   -57,  -414,  -414,  -414,
999     -414,   -58,   -54,  4836,  -414,  -414,   -51,  -414,  -414,  -414,
1000     -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,
1001     -414,  -414,  -414,  -414,  -414,  -414,   -17,   -12,  -414,    13,
1002     -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,
1003     -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,
1004     -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,
1005     -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,
1006     -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,
1007     -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,
1008     -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,
1009     -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,
1010     -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,
1011     -414,  -414,  -414,  -414,  -119,  -414,  -414,   266,   266,  -414,
1012     -414,  -414,    15,   -33,   -14,    -8,    -3,    10,   -37,  -414,
1013     4652,  -414,  -196,   -26,   -27,    30,  -199,  -414,    54,   314,
1014     5129,  5301,  5129,  5129,  -414,   -15,  -414,  5129,  -414,  -414,
1015     -414,  -414,  -414,    82,  -414,   -54,  5007,   -31,  -414,  -414,
1016     -414,  -414,  -414,  5129,  5129,  -414,  5129,  -414,  -414,  -414,
1017     5301,  -414,  -414,  -414,  -414,  -414,  -107,  -414,  -414,  -414,
1018      525,  -414,  -414,    36,    36,  -414,  -414,  -414,    36,  -414,
1019     5301,    36,    36,   -54,  -414,     3,    11,  -197,    12,  -123,
1020     -116,  -114,  -414,  -414,  -414,  -414,  -414,  -414,  3625,    -5,
1021     -414,   -23,    68,   -54,  1273,  -414,  5007,   -16,  -414,  -414,
1022       -2,  -143,  -414,  -414,     0,     1,  2007,    16,    20,     2,
1023     3184,    24,    28,  -414,  -414,  -414,  -414,  -414,  4027,  4027,
1024     4027,  -414,  -414,  -414,  -414,  -414,     6,  -414,    32,  -414,
1025     -105,  -414,  -414,  -414,    14,  -122,  4228,    34,   222,  4027,
1026      -18,   -73,    26,  -104,    27,    23,    25,    22,   119,   121,
1027     -126,  -414,  -414,  -160,  -414,    21,  5149,    46,  -414,  -414,
1028     -414,  -414,   779,  -414,  -414,  -414,  -414,  -414,  -414,  -414,
1029     -414,  -414,  -414,   -54,  -414,  -414,  -193,  2961,  -186,  -414,
1030     -414,  -414,  -414,  -414,  -414,  -414,    47,  -414,  3826,  5007,
1031     -414,   -15,  -155,  -414,  -414,  -414,  1510,  -414,    60,  -414,
1032     -107,  -414,  -414,   147,  2500,  4027,  -414,  -414,  -146,  4027,
1033     3424,  -414,  -414,  -121,  -414,  2007,  -414,  -414,  4027,    54,
1034     -414,  -414,  4027,    51,  -414,  -414,  -414,  -414,  -414,  -414,
1035     -414,  -414,  -414,  -414,  -414,  -414,  -414,  4027,  -414,  4027,
1036     4027,  4027,  4027,  4027,  4027,  4027,  4027,  4027,  4027,  4027,
1037     4027,  4027,  4027,  4027,  4027,  4027,  4027,  4027,  4027,  4027,
1038     -414,  -414,  -414,   -15,  2961,  -174,  2961,  -414,  -414,  2961,
1039     -414,  -414,    50,   -54,    38,  5007,    -5,   -54,  -414,  -414,
1040     -414,  -414,  -414,  -414,    55,  -414,  -414,  3424,   -88,  -414,
1041      -87,    52,   -54,    58,  -414,  1033,    59,    52,  -414,    63,
1042     -414,    74,   -76,  4429,  -414,  -414,  -414,  -414,  -414,   -18,
1043      -18,   -73,   -73,    26,    26,    26,    26,  -104,  -104,    27,
1044       23,    25,    22,   119,   121,  -156,  -414,    -5,  -414,  2961,
1045     -414,  -176,  -414,  -414,  -145,   157,  -414,  -414,  4027,  -414,
1046       56,    77,  2007,    64,    61,  2260,  -414,  -414,  -414,  -414,
1047     -414,  4027,    79,  -414,  4027,  -414,  2738,  -414,  -414,   -15,
1048       66,   -69,  4027,  2260,   303,  -414,    -6,  -414,  2961,  -414,
1049     -414,  -414,  -414,  -414,  -414,  -414,    -5,  -414,    67,    52,
1050     -414,  2007,  4027,    70,  -414,  -414,  1754,  2007,    -4,  -414,
1051     -414,  -414,  -117,  -414,  -414,  -414,  -414,  -414,  2007,  -414
1052 };
1053 
1054   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1055      Performed when YYTABLE does not specify something else to do.  Zero
1056      means the default is an error.  */
1057 static const yytype_uint16 yydefact[] =
1058 {
1059        4,     0,     0,    12,     0,     1,     2,    14,    15,    16,
1060        5,     0,     0,     0,    13,     6,     0,   179,   178,   203,
1061      200,   201,   202,   207,   208,   209,   210,   211,   212,   213,
1062      214,   215,   204,   205,   206,   176,   181,   182,   183,   184,
1063      180,   177,   161,   160,   159,   216,   217,   218,   219,   220,
1064      221,   222,   223,   224,   225,   226,   228,   229,   231,   232,
1065      234,   235,   236,   237,   238,   240,   241,   242,   243,   245,
1066      246,   247,   248,   250,   251,   252,   254,   255,   256,   257,
1067      259,   227,   244,   253,   233,   239,   249,   258,   260,   261,
1068      262,   263,   264,   265,   230,   266,   267,   268,   269,   270,
1069      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
1070      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
1071      291,   292,   293,   294,   295,   296,   297,   298,   185,   186,
1072      187,   188,   189,   299,     0,   199,   198,   162,   163,   302,
1073      301,   300,     0,     0,     0,     0,     0,     0,     0,   369,
1074        3,   368,     0,     0,   118,   126,     0,   135,   140,   167,
1075      166,     0,   164,   165,   147,   194,   196,   168,   197,    18,
1076      367,   115,   372,     0,   370,     0,     0,     0,   181,   182,
1077      184,    21,    22,   162,   163,   145,   167,   170,   146,   169,
1078        0,     7,     8,     9,    10,    11,     0,    20,    19,   112,
1079        0,   371,   116,   126,   126,   131,   132,   133,   126,   119,
1080        0,   126,   126,     0,   113,    14,    16,   141,     0,   181,
1081      182,   184,   172,   373,   171,   148,   173,   174,     0,   195,
1082      175,     0,     0,     0,     0,   305,     0,     0,   158,   157,
1083      154,     0,   150,   156,     0,     0,     0,     0,     0,     0,
1084        0,     0,     0,    26,    24,    25,    27,    48,     0,     0,
1085        0,    60,    61,    62,    63,   335,   327,   331,    23,    29,
1086       56,    31,    36,    37,     0,     0,    42,     0,    64,     0,
1087       68,    71,    74,    79,    82,    84,    86,    88,    90,    92,
1088       94,    96,   109,     0,   317,     0,   167,   147,   320,   333,
1089      319,   318,     0,   321,   322,   323,   324,   325,   120,   127,
1090      128,   124,   125,   134,   129,   130,   136,     0,   142,   121,
1091      385,   386,   384,   190,    64,   111,     0,    46,     0,     0,
1092       17,   310,     0,   308,   304,   306,     0,   114,     0,   149,
1093        0,   363,   362,     0,     0,     0,   366,   364,     0,     0,
1094        0,    57,    58,     0,   326,     0,    33,    34,     0,     0,
1095       40,    39,     0,   199,    43,    45,    99,   100,   102,   101,
1096      104,   105,   106,   107,   108,   103,    98,     0,    59,     0,
1097        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1098        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1099      336,   332,   334,   122,     0,   137,     0,   312,   144,     0,
1100      191,   192,     0,     0,     0,   381,   311,     0,   307,   303,
1101      152,   153,   155,   151,     0,   357,   356,   359,     0,   365,
1102        0,   340,     0,     0,    28,     0,     0,    35,    32,     0,
1103       38,     0,     0,    52,    44,    97,    65,    66,    67,    69,
1104       70,    72,    73,    77,    78,    75,    76,    80,    81,    83,
1105       85,    87,    89,    91,    93,     0,   110,   123,   139,     0,
1106      315,     0,   143,   193,     0,   378,   382,   309,     0,   358,
1107        0,     0,     0,     0,     0,     0,   328,    30,    55,    50,
1108       49,     0,   199,    53,     0,   138,     0,   313,   383,   379,
1109        0,     0,   360,     0,   339,   337,     0,   342,     0,   330,
1110      353,   329,    54,    95,   314,   316,   380,   374,     0,   361,
1111      355,     0,     0,     0,   343,   347,     0,   351,     0,   341,
1112      354,   338,     0,   346,   349,   348,   350,   344,   352,   345
1113 };
1114 
1115   /* YYPGOTO[NTERM-NUM].  */
1116 static const yytype_int16 yypgoto[] =
1117 {
1118     -414,  -414,  -414,  -414,  -414,  -414,    -1,   174,  -414,  -128,
1119     -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,  -414,
1120     -414,  -414,  -414,  -414,   -19,  -414,  -169,  -142,  -170,  -162,
1121      -67,   -66,   -68,   -65,   -64,   -63,  -414,  -206,  -228,  -414,
1122     -244,     7,    -9,     5,  -414,  -414,  -414,  -414,   125,   -52,
1123     -414,  -414,  -414,  -414,  -168,   -11,  -414,  -414,    17,  -414,
1124     -414,   -86,  -414,  -414,  -212,   -13,  -414,  -414,  -101,  -414,
1125       93,  -207,   -77,   -79,  -381,  -414,    45,  -245,  -413,  -414,
1126     -414,  -163,   189,   -10,    48,  -414,  -414,   -84,  -414,  -414,
1127     -167,  -414,  -172,  -414,  -414,  -414,  -414,  -414,  -414,   240,
1128     -414,  -414,  -152,  -414,  -414,   -24,  -414,  -414
1129 };
1130 
1131   /* YYDEFGOTO[NTERM-NUM].  */
1132 static const yytype_int16 yydefgoto[] =
1133 {
1134       -1,     2,    13,     3,   149,     6,   331,    14,   150,   268,
1135      269,   270,   436,   271,   272,   273,   274,   275,   276,   277,
1136      440,   441,   442,   443,   278,   279,   280,   281,   282,   283,
1137      284,   285,   286,   287,   288,   289,   290,   291,   292,   377,
1138      293,   326,   294,   295,   153,   154,   155,   311,   209,   210,
1139      211,   312,   156,   157,   158,   186,   241,   422,   242,   243,
1140      160,   161,   162,   163,   229,   327,   165,   166,   167,   168,
1141      234,   235,   332,   333,   408,   471,   298,   299,   300,   301,
1142      355,   510,   511,   302,   303,   304,   505,   433,   305,   507,
1143      525,   526,   527,   528,   306,   427,   480,   481,   307,   169,
1144      170,   171,   172,   173,   500,   414,   415,   174
1145 };
1146 
1147   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1148      positive, shift that token.  If negative, reduce the rule whose
1149      number is the opposite.  If YYTABLE_NINF, syntax error.  */
1150 static const yytype_int16 yytable[] =
1151 {
1152      164,   343,   159,    11,   151,   318,   348,   223,   233,   185,
1153      188,    16,   522,   523,   522,   523,   353,  -375,   152,     7,
1154        8,     9,   325,   468,  -376,   470,  -377,   335,   472,   397,
1155      218,     7,     8,     9,   204,     7,     8,     9,   228,   213,
1156      204,   190,   228,   356,   357,     1,   386,   387,   364,   328,
1157        4,   187,   189,     5,   212,   214,   317,   402,   199,   200,
1158      404,   328,   496,   205,   206,   207,   233,   409,   233,   205,
1159      206,   207,   509,   222,   224,    10,   226,   227,   399,   469,
1160      497,   230,   399,   417,     7,     8,     9,   238,   495,   407,
1161      509,   339,   399,   417,   400,   340,   494,   187,   189,   418,
1162      222,   428,   212,   212,   405,   430,   431,   212,   429,   498,
1163      212,   212,   361,   434,   437,   515,   362,   399,    12,   416,
1164       15,   399,   325,  -375,   239,   398,   175,   529,  -376,   335,
1165      358,   320,   359,   177,   444,   539,   176,   164,   321,   159,
1166      322,   151,   388,   389,   223,   191,   482,   483,   225,   445,
1167      399,   399,   309,  -377,   465,   152,   310,   217,   490,   314,
1168      315,   413,   491,   164,   192,   518,   382,   383,   233,   399,
1169      193,   466,   384,   385,   232,   194,   407,   237,   407,   390,
1170      391,   407,   432,   431,   139,   140,   141,   297,   195,   296,
1171      402,   467,   215,     8,   216,   240,   196,   313,   208,   139,
1172      140,   141,   420,   421,   208,   139,   140,   141,   202,   324,
1173      222,   203,   316,   449,   450,   493,   453,   454,   455,   456,
1174      228,   164,   231,   164,   236,   379,   380,   381,   457,   458,
1175      328,   439,   329,   297,   501,   296,   -21,   504,   337,   351,
1176      352,   407,   451,   452,   -22,   319,   330,   413,   360,   344,
1177      524,   338,   537,   345,   341,   342,   346,   349,   519,   432,
1178      378,   350,   354,   512,  -117,   -47,   513,   365,   407,    17,
1179       18,   392,   394,   395,   393,   199,   531,   396,   532,   -46,
1180      407,   534,   536,   410,   424,   -41,   473,   516,   478,   297,
1181      399,   296,   485,   536,   475,   487,   488,   499,    35,   178,
1182      179,    38,   180,    40,    41,    42,    43,    44,   489,   324,
1183      502,   503,   403,   -51,   508,   521,   164,    17,    18,   506,
1184      517,   530,   533,   164,   197,   459,   461,   460,   308,   336,
1185      462,   297,   463,   296,   464,   412,   474,   297,   477,   240,
1186      520,   201,   297,   479,   296,   435,    35,   219,   220,    38,
1187      221,    40,    41,    42,    43,    44,   538,   423,   438,   535,
1188      446,   447,   448,   324,   324,   324,   324,   324,   324,   324,
1189      324,   324,   324,   324,   324,   324,   324,   324,   324,   366,
1190      367,   368,   369,   370,   371,   372,   373,   374,   375,   425,
1191      198,   476,   426,     0,     0,   128,   129,   130,   131,   132,
1192        0,     0,   164,     0,   181,     0,   182,     0,     0,     0,
1193        0,     0,     0,     0,   297,     0,     0,     0,     0,     0,
1194        0,     0,   297,     0,   296,     0,     0,     0,     0,     0,
1195        0,   484,     0,   183,   184,   139,   140,   141,     0,     0,
1196        0,     0,     0,   128,   129,   130,   131,   132,     0,     0,
1197        0,     0,   148,     0,     0,     0,     0,     0,     0,     0,
1198        0,     0,     0,     0,     0,     0,     0,     0,     0,   297,
1199        0,   296,   297,     0,   296,   376,     0,     0,     0,     0,
1200        0,   183,   184,   139,   140,   141,     0,     0,     0,     0,
1201      297,     0,   296,     0,     0,     0,     0,     0,     0,     0,
1202      148,     0,     0,     0,     0,     0,     0,     0,   297,     0,
1203      296,     0,     0,   297,   297,   296,   296,     0,     0,     0,
1204        0,     0,     0,     0,     0,   297,     0,   296,    17,    18,
1205       19,    20,    21,    22,   244,   245,   246,     0,   247,   248,
1206      249,   250,   251,     0,     0,    23,    24,    25,    26,    27,
1207       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1208       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1209       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1210       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1211       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1212       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1213       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1214       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1215      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1216      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1217        0,     0,     0,     0,   128,   129,   130,   131,   132,   133,
1218      134,   135,   252,   181,   136,   182,   253,   254,   255,   256,
1219      257,     0,     0,   258,   259,     0,     0,     0,     0,     0,
1220        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1221        0,     0,   137,   138,   139,   140,   141,     0,   142,     0,
1222        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1223        0,   148,     0,     0,     0,     0,     0,     0,     0,     0,
1224        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1225        0,     0,     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,   260,     0,
1228        0,     0,     0,     0,   261,   262,   263,   264,     0,     0,
1229        0,     0,     0,     0,     0,     0,     0,     0,     0,   265,
1230      266,   267,    17,    18,    19,    20,    21,    22,   244,   245,
1231      246,     0,   247,   248,   249,   250,   251,     0,     0,    23,
1232       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1233       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1234       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1235       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1236       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1237       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1238       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1239       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1240      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1241      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1242      124,   125,   126,   127,     0,     0,     0,     0,   128,   129,
1243      130,   131,   132,   133,   134,   135,   252,   181,   136,   182,
1244      253,   254,   255,   256,   257,     0,     0,   258,   259,     0,
1245        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1246        0,     0,     0,     0,     0,     0,   137,   138,   139,   140,
1247      141,     0,   142,     0,     0,     0,     0,     0,     0,     0,
1248        0,     0,     0,     0,     0,   148,     0,     0,     0,     0,
1249        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1250        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1251        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1252        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1253        0,     0,   260,     0,     0,     0,     0,     0,   261,   262,
1254      263,   264,     0,     0,     0,     0,     0,     0,     0,     0,
1255        0,     0,     0,   265,   266,   401,    17,    18,    19,    20,
1256       21,    22,   244,   245,   246,     0,   247,   248,   249,   250,
1257      251,     0,     0,    23,    24,    25,    26,    27,    28,    29,
1258       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1259       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1260       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1261       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1262       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1263       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1264       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1265      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1266      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1267      120,   121,   122,   123,   124,   125,   126,   127,     0,     0,
1268        0,     0,   128,   129,   130,   131,   132,   133,   134,   135,
1269      252,   181,   136,   182,   253,   254,   255,   256,   257,     0,
1270        0,   258,   259,     0,     0,     0,     0,     0,     0,     0,
1271        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1272      137,   138,   139,   140,   141,     0,   142,     0,     0,     0,
1273        0,     0,     0,     0,     0,     0,     0,     0,     0,   148,
1274        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1275        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1276        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1277        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1278        0,     0,     0,     0,     0,     0,   260,     0,     0,     0,
1279        0,     0,   261,   262,   263,   264,    17,    18,    19,    20,
1280       21,    22,     0,     0,     0,     0,     0,   265,   266,   486,
1281        0,     0,     0,    23,    24,    25,    26,    27,    28,    29,
1282       30,    31,    32,    33,    34,    35,   178,   179,    38,   180,
1283       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1284       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1285       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1286       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1287       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1288       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1289      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1290      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1291      120,   121,   122,   123,   124,   125,   126,   127,     0,     0,
1292        0,     0,   128,   129,   130,   131,   132,   133,   134,   135,
1293        0,     0,   136,     0,     0,     0,     0,     0,     0,     0,
1294        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1295        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1296      183,   184,   139,   140,   141,     0,     0,     0,     0,     0,
1297        0,     0,     0,     0,     0,     0,     0,     0,     0,   148,
1298        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1299        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1300        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1301        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1302        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1303        0,     0,     0,    17,    18,    19,    20,    21,    22,     0,
1304        0,     0,     0,     0,     0,     0,     0,     0,     0,   334,
1305       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1306       33,    34,    35,   178,   179,    38,   180,    40,    41,    42,
1307       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1308       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1309       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1310       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1311       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1312       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1313      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1314      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1315      123,   124,   125,   126,   127,     0,     0,     0,     0,   128,
1316      129,   130,   131,   132,   133,   134,   135,     0,     0,   136,
1317        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1318        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1319        0,     0,     0,     0,     0,     0,     0,   183,   184,   139,
1320      140,   141,     0,     0,     0,     0,     0,     0,     0,     0,
1321        0,     0,     0,     0,     0,     0,   148,     0,     0,     0,
1322        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1323        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1324        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1325        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1326        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1327        0,     0,     0,     0,     0,     0,     0,    17,    18,    19,
1328       20,    21,    22,   244,   245,   246,   419,   247,   248,   249,
1329      250,   251,   522,   523,    23,    24,    25,    26,    27,    28,
1330       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1331       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1332       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1333       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1334       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1335       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1336       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1337       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1338      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1339      119,   120,   121,   122,   123,   124,   125,   126,   127,     0,
1340        0,     0,     0,   128,   129,   130,   131,   132,   133,   134,
1341      135,   252,   181,   136,   182,   253,   254,   255,   256,   257,
1342        0,     0,   258,   259,     0,     0,     0,     0,     0,     0,
1343        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1344        0,   137,   138,   139,   140,   141,     0,   142,     0,     0,
1345        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1346      148,     0,     0,     0,     0,     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,     0,     0,
1349        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1350        0,     0,     0,     0,     0,     0,     0,   260,     0,     0,
1351        0,     0,     0,   261,   262,   263,   264,     0,     0,     0,
1352        0,     0,     0,     0,     0,     0,     0,     0,   265,   266,
1353       17,    18,    19,    20,    21,    22,   244,   245,   246,     0,
1354      247,   248,   249,   250,   251,     0,     0,    23,    24,    25,
1355       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1356       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1357       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1358       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1359       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1360       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1361       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1362       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1363      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1364      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1365      126,   127,     0,     0,     0,     0,   128,   129,   130,   131,
1366      132,   133,   134,   135,   252,   181,   136,   182,   253,   254,
1367      255,   256,   257,     0,     0,   258,   259,     0,     0,     0,
1368        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1369        0,     0,     0,     0,   137,   138,   139,   140,   141,     0,
1370      142,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1371        0,     0,     0,   148,     0,     0,     0,     0,     0,     0,
1372        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1373        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1374        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1375        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1376      260,     0,     0,     0,     0,     0,   261,   262,   263,   264,
1377        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1378        0,   265,   266,    17,    18,    19,    20,    21,    22,   244,
1379      245,   246,     0,   247,   248,   249,   250,   251,     0,     0,
1380       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1381       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1382       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1383       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1384       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1385       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1386       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1387       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1388      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1389      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1390      123,   124,   125,   126,   127,     0,     0,     0,     0,   128,
1391      129,   130,   131,   132,   133,   134,   135,   252,   181,   136,
1392      182,   253,   254,   255,   256,   257,     0,     0,   258,   259,
1393        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1394        0,     0,     0,     0,     0,     0,     0,   137,   138,   139,
1395      140,   141,     0,   142,     0,     0,     0,     0,     0,     0,
1396        0,     0,     0,     0,     0,     0,   148,     0,     0,     0,
1397        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1398        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1399        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1400        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1401        0,     0,     0,   260,     0,     0,     0,     0,     0,   261,
1402      262,   263,   264,    17,    18,    19,    20,    21,    22,     0,
1403        0,     0,     0,     0,   265,   200,     0,     0,     0,     0,
1404       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1405       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1406       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1407       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1408       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1409       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1410       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1411       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1412      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1413      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1414      123,   124,   125,   126,   127,     0,     0,     0,     0,   128,
1415      129,   130,   131,   132,   133,   134,   135,     0,   181,   136,
1416      182,   253,   254,   255,   256,   257,     0,     0,   258,   259,
1417        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1418        0,     0,     0,     0,     0,     0,     0,   137,   138,   139,
1419      140,   141,     0,   142,     0,     0,     0,     0,     0,     0,
1420        0,     0,     0,     0,     0,     0,   148,     0,     0,     0,
1421        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1422        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1423        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1424        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1425        0,     0,     0,   260,     0,     0,     0,     0,     0,   261,
1426      262,   263,   264,    19,    20,    21,    22,     0,     0,     0,
1427        0,     0,     0,     0,   265,     0,     0,     0,    23,    24,
1428       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1429        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1430       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1431       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1432       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1433       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1434       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1435       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1436      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1437      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1438      125,   126,   127,     0,     0,     0,     0,     0,     0,     0,
1439        0,     0,   133,   134,   135,     0,   181,   136,   182,   253,
1440      254,   255,   256,   257,     0,     0,   258,   259,     0,     0,
1441        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1442        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1443        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1444        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1445        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1446        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1447        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1448        0,     0,     0,     0,     0,     0,    19,    20,    21,    22,
1449        0,   260,     0,     0,     0,     0,     0,   261,   262,   263,
1450      264,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1451       32,    33,    34,   406,   514,     0,     0,     0,     0,     0,
1452        0,     0,     0,    45,    46,    47,    48,    49,    50,    51,
1453       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1454       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1455       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1456       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1457       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1458      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1459      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1460      122,   123,   124,   125,   126,   127,     0,     0,     0,     0,
1461        0,     0,     0,     0,     0,   133,   134,   135,     0,   181,
1462      136,   182,   253,   254,   255,   256,   257,     0,     0,   258,
1463      259,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1464        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1465        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1466        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1467        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1468        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1469        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1470        0,     0,     0,     0,     0,     0,     0,     0,     0,    19,
1471       20,    21,    22,     0,   260,     0,     0,     0,     0,     0,
1472      261,   262,   263,   264,    23,    24,    25,    26,    27,    28,
1473       29,    30,    31,    32,    33,    34,   406,     0,     0,     0,
1474        0,     0,     0,     0,     0,     0,    45,    46,    47,    48,
1475       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1476       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1477       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1478       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1479       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1480       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1481      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1482      119,   120,   121,   122,   123,   124,   125,   126,   127,     0,
1483        0,     0,     0,     0,     0,     0,     0,     0,   133,   134,
1484      135,     0,   181,   136,   182,   253,   254,   255,   256,   257,
1485        0,     0,   258,   259,     0,     0,     0,     0,     0,     0,
1486        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1487        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1488        0,     0,     0,     0,     0,     0,     0,     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,     0,     0,     0,     0,     0,     0,     0,
1492        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1493        0,     0,     0,     0,     0,     0,     0,   260,     0,     0,
1494        0,     0,     0,   261,   262,   263,   264,    17,    18,    19,
1495       20,    21,    22,     0,     0,     0,     0,     0,   347,     0,
1496        0,     0,     0,     0,    23,    24,    25,    26,    27,    28,
1497       29,    30,    31,    32,    33,    34,    35,   178,   179,    38,
1498      180,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1499       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1500       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1501       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1502       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1503       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1504       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1505      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1506      119,   120,   121,   122,   123,   124,   125,   126,   127,     0,
1507        0,     0,     0,   128,   129,   130,   131,   132,   133,   134,
1508      135,     0,   181,   136,   182,   253,   254,   255,   256,   257,
1509        0,     0,   258,   259,     0,     0,     0,     0,     0,     0,
1510        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1511        0,   183,   184,   139,   140,   141,     0,     0,     0,     0,
1512        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1513      148,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1514        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1515       19,    20,    21,    22,     0,     0,     0,     0,     0,     0,
1516        0,     0,     0,     0,     0,    23,    24,    25,    26,    27,
1517       28,    29,    30,    31,    32,    33,    34,   260,     0,     0,
1518        0,     0,     0,   261,   262,   263,   264,    45,    46,    47,
1519       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1520       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1521       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1522       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1523       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1524       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1525      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1526      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1527        0,     0,     0,     0,     0,     0,     0,     0,     0,   133,
1528      134,   135,     0,   181,   136,   182,   253,   254,   255,   256,
1529      257,     0,     0,   258,   259,     0,     0,     0,     0,     0,
1530        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1531        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1532        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1533        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1534        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1535        0,    19,    20,    21,    22,     0,     0,     0,     0,     0,
1536        0,     0,     0,     0,     0,     0,    23,    24,    25,    26,
1537       27,    28,    29,    30,    31,    32,    33,    34,   260,     0,
1538        0,   323,     0,     0,   261,   262,   263,   264,    45,    46,
1539       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1540       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1541       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1542       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1543       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1544       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1545      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1546      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1547      127,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1548      133,   134,   135,     0,   181,   136,   182,   253,   254,   255,
1549      256,   257,     0,     0,   258,   259,     0,     0,     0,     0,
1550        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1551        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1552        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1553        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1554        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1555        0,     0,    19,    20,    21,    22,     0,     0,     0,     0,
1556        0,     0,     0,     0,     0,     0,     0,    23,    24,    25,
1557       26,    27,    28,    29,    30,    31,    32,    33,    34,   260,
1558        0,     0,   411,     0,     0,   261,   262,   263,   264,    45,
1559       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1560       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1561       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1562       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1563       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1564       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1565      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1566      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1567      126,   127,     0,     0,     0,     0,     0,     0,     0,     0,
1568        0,   133,   134,   135,     0,   181,   136,   182,   253,   254,
1569      255,   256,   257,     0,     0,   258,   259,     0,     0,     0,
1570        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1571        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1572        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1573        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1574        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1575        0,     0,     0,    19,    20,    21,    22,     0,     0,     0,
1576        0,     0,     0,     0,     0,     0,     0,     0,    23,    24,
1577       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1578      260,     0,     0,     0,     0,     0,   261,   262,   263,   264,
1579       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1580       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1581       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1582       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1583       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1584       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1585      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1586      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1587      125,   126,   127,     0,     0,     0,     0,     0,     0,     0,
1588        0,     0,   133,   134,   363,     0,   181,   136,   182,   253,
1589      254,   255,   256,   257,     0,     0,   258,   259,     0,     0,
1590        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1591        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1592        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1593        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1594        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1595        0,     0,     0,     0,    19,    20,    21,    22,     0,     0,
1596        0,     0,     0,     0,     0,     0,     0,     0,     0,    23,
1597       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1598       34,   260,     0,     0,     0,     0,     0,   261,   262,   263,
1599      264,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1600       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1601       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1602       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1603       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1604       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1605      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1606      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1607      124,   125,   126,   127,     0,     0,     0,     0,     0,     0,
1608        0,     0,     0,   133,   134,   492,     0,   181,   136,   182,
1609      253,   254,   255,   256,   257,     0,     0,   258,   259,     0,
1610        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1611        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1612        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1613        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1614        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1615        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1616        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1617        0,     0,     0,     0,     0,    17,    18,    19,    20,    21,
1618       22,     0,   260,     0,     0,     0,     0,     0,   261,   262,
1619      263,   264,    23,    24,    25,    26,    27,    28,    29,    30,
1620       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1621       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1622       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1623       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1624       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1625       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1626       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1627      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1628      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1629      121,   122,   123,   124,   125,   126,   127,     0,     0,     0,
1630        0,   128,   129,   130,   131,   132,   133,   134,   135,     0,
1631        0,   136,     0,     0,     0,     0,     0,     0,     0,     0,
1632        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1633        0,     0,     0,     0,     0,     0,     0,     0,     0,   137,
1634      138,   139,   140,   141,     0,   142,     0,    12,     0,     0,
1635        0,     0,     0,   143,   144,   145,   146,   147,   148,    17,
1636       18,    19,    20,    21,    22,     0,     0,     0,     0,     0,
1637        0,     0,     0,     0,     0,     0,    23,    24,    25,    26,
1638       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1639       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1640       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1641       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1642       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1643       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1644       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1645       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1646      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1647      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1648      127,     0,     0,     0,     0,   128,   129,   130,   131,   132,
1649      133,   134,   135,     0,     0,   136,     0,     0,     0,     0,
1650        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1651        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1652        0,     0,     0,   137,   138,   139,   140,   141,     0,   142,
1653       17,    18,    19,    20,    21,    22,     0,   143,   144,   145,
1654      146,   147,   148,     0,     0,     0,     0,    23,    24,    25,
1655       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1656      178,   179,    38,   180,    40,    41,    42,    43,    44,    45,
1657       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1658       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1659       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1660       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1661       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1662       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1663      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1664      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1665      126,   127,    17,    18,     0,     0,   128,   129,   130,   131,
1666      132,   133,   134,   135,     0,     0,   136,     0,     0,     0,
1667        0,     0,    17,    18,     0,     0,     0,     0,     0,     0,
1668        0,    35,   178,   179,    38,   180,    40,    41,    42,    43,
1669       44,     0,     0,     0,   183,   184,   139,   140,   141,     0,
1670        0,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1671       44,     0,     0,   148,     0,     0,     0,     0,     0,     0,
1672        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1673        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1674        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1675        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1676        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1677        0,     0,     0,     0,     0,     0,     0,     0,   128,   129,
1678      130,   131,   132,     0,     0,     0,     0,     0,     0,     0,
1679        0,     0,     0,     0,     0,     0,     0,     0,   128,   129,
1680      130,   131,   132,     0,     0,     0,     0,     0,     0,     0,
1681        0,     0,     0,     0,     0,     0,   183,   184,   139,   140,
1682      141,     0,     0,     0,     0,     0,    19,    20,    21,    22,
1683        0,     0,     0,     0,     0,   148,   183,   184,   139,   140,
1684      141,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1685       32,    33,    34,     0,     0,   148,     0,     0,     0,     0,
1686        0,     0,     0,    45,    46,    47,    48,    49,    50,    51,
1687       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1688       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1689       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1690       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1691       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1692      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1693      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1694      122,   123,   124,   125,   126,   127,     0,     0,     0,     0,
1695        0,     0,     0,     0,     0,   133,   134,   135,     0,     0,
1696      136
1697 };
1698 
1699 static const yytype_int16 yycheck[] =
1700 {
1701       13,   246,    13,     4,    13,   217,   250,   159,   176,   137,
1702      138,    12,    18,    19,    18,    19,   260,   140,    13,   138,
1703      139,   140,   228,   404,   140,   406,   140,   234,   409,   155,
1704      158,   138,   139,   140,     4,   138,   139,   140,   235,   238,
1705        4,   142,   235,   148,   149,   174,   150,   151,   276,   235,
1706      142,   137,   138,     0,   155,   254,   253,   302,   254,   255,
1707      253,   235,   238,    33,    34,    35,   234,   253,   236,    33,
1708       34,    35,   485,   159,   160,   178,   162,   163,   238,   253,
1709      256,   167,   238,   238,   138,   139,   140,   194,   469,   317,
1710      503,   234,   238,   238,   254,   238,   252,   183,   184,   254,
1711      186,   345,   203,   204,   316,   349,   350,   208,   254,   254,
1712      211,   212,   234,   234,   358,   496,   238,   238,   175,   331,
1713      178,   238,   328,   140,   231,   251,   177,   508,   140,   336,
1714      235,   254,   237,   134,   362,   252,   255,   150,   254,   150,
1715      254,   150,   246,   247,   296,   178,   234,   234,   161,   377,
1716      238,   238,   204,   140,   398,   150,   208,   158,   234,   211,
1717      212,   329,   238,   176,   178,   234,   239,   240,   336,   238,
1718      178,   399,   146,   147,   175,   178,   404,   190,   406,   152,
1719      153,   409,   350,   427,   169,   170,   171,   200,   178,   200,
1720      435,   403,   138,   139,   140,   196,   233,   210,   168,   169,
1721      170,   171,   142,   143,   168,   169,   170,   171,   234,   228,
1722      296,   238,   213,   382,   383,   443,   386,   387,   388,   389,
1723      235,   234,   140,   236,   255,   243,   244,   245,   390,   391,
1724      235,   359,   255,   246,   478,   246,   233,   482,   254,   258,
1725      259,   469,   384,   385,   233,   233,   178,   415,   234,   233,
1726      256,   253,   256,   233,   254,   254,   254,   233,   502,   427,
1727      279,   233,   256,   491,   234,   233,   494,   233,   496,     3,
1728        4,   248,   250,   154,   249,   254,   521,   156,   522,   233,
1729      508,   526,   527,   236,   137,   234,   236,   499,   233,   302,
1730      238,   302,   234,   538,   256,   236,   233,   140,    32,    33,
1731       34,    35,    36,    37,    38,    39,    40,    41,   234,   328,
1732      254,   234,   313,   234,   253,    12,   329,     3,     4,   255,
1733      254,   254,   252,   336,   150,   392,   394,   393,   203,   236,
1734      395,   344,   396,   344,   397,   328,   413,   350,   417,   340,
1735      503,   152,   355,   427,   355,   355,    32,    33,    34,    35,
1736       36,    37,    38,    39,    40,    41,   528,   340,   359,   526,
1737      379,   380,   381,   382,   383,   384,   385,   386,   387,   388,
1738      389,   390,   391,   392,   393,   394,   395,   396,   397,   157,
1739      158,   159,   160,   161,   162,   163,   164,   165,   166,   344,
1740      150,   415,   344,    -1,    -1,   129,   130,   131,   132,   133,
1741       -1,    -1,   415,    -1,   138,    -1,   140,    -1,    -1,    -1,
1742       -1,    -1,    -1,    -1,   427,    -1,    -1,    -1,    -1,    -1,
1743       -1,    -1,   435,    -1,   435,    -1,    -1,    -1,    -1,    -1,
1744       -1,   432,    -1,   167,   168,   169,   170,   171,    -1,    -1,
1745       -1,    -1,    -1,   129,   130,   131,   132,   133,    -1,    -1,
1746       -1,    -1,   186,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1747       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   482,
1748       -1,   482,   485,    -1,   485,   253,    -1,    -1,    -1,    -1,
1749       -1,   167,   168,   169,   170,   171,    -1,    -1,    -1,    -1,
1750      503,    -1,   503,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1751      186,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   521,    -1,
1752      521,    -1,    -1,   526,   527,   526,   527,    -1,    -1,    -1,
1753       -1,    -1,    -1,    -1,    -1,   538,    -1,   538,     3,     4,
1754        5,     6,     7,     8,     9,    10,    11,    -1,    13,    14,
1755       15,    16,    17,    -1,    -1,    20,    21,    22,    23,    24,
1756       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1757       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1758       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1759       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1760       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1761       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1762       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1763       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1764      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1765      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1766       -1,    -1,    -1,    -1,   129,   130,   131,   132,   133,   134,
1767      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1768      145,    -1,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,
1769       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1770       -1,    -1,   167,   168,   169,   170,   171,    -1,   173,    -1,
1771       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1772       -1,   186,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1773       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1774       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1775       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1776       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   233,    -1,
1777       -1,    -1,    -1,    -1,   239,   240,   241,   242,    -1,    -1,
1778       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   254,
1779      255,   256,     3,     4,     5,     6,     7,     8,     9,    10,
1780       11,    -1,    13,    14,    15,    16,    17,    -1,    -1,    20,
1781       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
1782       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1783       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1784       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1785       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1786       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1787       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1788       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1789      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1790      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1791      121,   122,   123,   124,    -1,    -1,    -1,    -1,   129,   130,
1792      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1793      141,   142,   143,   144,   145,    -1,    -1,   148,   149,    -1,
1794       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1795       -1,    -1,    -1,    -1,    -1,    -1,   167,   168,   169,   170,
1796      171,    -1,   173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1797       -1,    -1,    -1,    -1,    -1,   186,    -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,    -1,
1801       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1802       -1,    -1,   233,    -1,    -1,    -1,    -1,    -1,   239,   240,
1803      241,   242,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1804       -1,    -1,    -1,   254,   255,   256,     3,     4,     5,     6,
1805        7,     8,     9,    10,    11,    -1,    13,    14,    15,    16,
1806       17,    -1,    -1,    20,    21,    22,    23,    24,    25,    26,
1807       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1808       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1809       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1810       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1811       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1812       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1813       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1814       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1815      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1816      117,   118,   119,   120,   121,   122,   123,   124,    -1,    -1,
1817       -1,    -1,   129,   130,   131,   132,   133,   134,   135,   136,
1818      137,   138,   139,   140,   141,   142,   143,   144,   145,    -1,
1819       -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1820       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1821      167,   168,   169,   170,   171,    -1,   173,    -1,    -1,    -1,
1822       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   186,
1823       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1824       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1825       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1826       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1827       -1,    -1,    -1,    -1,    -1,    -1,   233,    -1,    -1,    -1,
1828       -1,    -1,   239,   240,   241,   242,     3,     4,     5,     6,
1829        7,     8,    -1,    -1,    -1,    -1,    -1,   254,   255,   256,
1830       -1,    -1,    -1,    20,    21,    22,    23,    24,    25,    26,
1831       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1832       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1833       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1834       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1835       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1836       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1837       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1838       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1839      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1840      117,   118,   119,   120,   121,   122,   123,   124,    -1,    -1,
1841       -1,    -1,   129,   130,   131,   132,   133,   134,   135,   136,
1842       -1,    -1,   139,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1843       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1844       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1845      167,   168,   169,   170,   171,    -1,    -1,    -1,    -1,    -1,
1846       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   186,
1847       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1848       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1849       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1850       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1851       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1852       -1,    -1,    -1,     3,     4,     5,     6,     7,     8,    -1,
1853       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   256,
1854       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
1855       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1856       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1857       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1858       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1859       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1860       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1861       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1862      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1863      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1864      120,   121,   122,   123,   124,    -1,    -1,    -1,    -1,   129,
1865      130,   131,   132,   133,   134,   135,   136,    -1,    -1,   139,
1866       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1867       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1868       -1,    -1,    -1,    -1,    -1,    -1,    -1,   167,   168,   169,
1869      170,   171,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1870       -1,    -1,    -1,    -1,    -1,    -1,   186,    -1,    -1,    -1,
1871       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1872       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1873       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1874       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1875       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1876       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,
1877        6,     7,     8,     9,    10,    11,   256,    13,    14,    15,
1878       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
1879       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1880       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1881       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1882       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1883       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1884       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1885       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1886       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1887      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1888      116,   117,   118,   119,   120,   121,   122,   123,   124,    -1,
1889       -1,    -1,    -1,   129,   130,   131,   132,   133,   134,   135,
1890      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1891       -1,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,
1892       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1893       -1,   167,   168,   169,   170,   171,    -1,   173,    -1,    -1,
1894       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1895      186,    -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,   233,    -1,    -1,
1900       -1,    -1,    -1,   239,   240,   241,   242,    -1,    -1,    -1,
1901       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   254,   255,
1902        3,     4,     5,     6,     7,     8,     9,    10,    11,    -1,
1903       13,    14,    15,    16,    17,    -1,    -1,    20,    21,    22,
1904       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1905       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1906       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1907       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1908       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1909       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1910       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1911       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1912      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1913      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1914      123,   124,    -1,    -1,    -1,    -1,   129,   130,   131,   132,
1915      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1916      143,   144,   145,    -1,    -1,   148,   149,    -1,    -1,    -1,
1917       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1918       -1,    -1,    -1,    -1,   167,   168,   169,   170,   171,    -1,
1919      173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1920       -1,    -1,    -1,   186,    -1,    -1,    -1,    -1,    -1,    -1,
1921       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1922       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1923       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1924       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1925      233,    -1,    -1,    -1,    -1,    -1,   239,   240,   241,   242,
1926       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1927       -1,   254,   255,     3,     4,     5,     6,     7,     8,     9,
1928       10,    11,    -1,    13,    14,    15,    16,    17,    -1,    -1,
1929       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
1930       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1931       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1932       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1933       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1934       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1935       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1936       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1937      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1938      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1939      120,   121,   122,   123,   124,    -1,    -1,    -1,    -1,   129,
1940      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1941      140,   141,   142,   143,   144,   145,    -1,    -1,   148,   149,
1942       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1943       -1,    -1,    -1,    -1,    -1,    -1,    -1,   167,   168,   169,
1944      170,   171,    -1,   173,    -1,    -1,    -1,    -1,    -1,    -1,
1945       -1,    -1,    -1,    -1,    -1,    -1,   186,    -1,    -1,    -1,
1946       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1947       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1948       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1949       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1950       -1,    -1,    -1,   233,    -1,    -1,    -1,    -1,    -1,   239,
1951      240,   241,   242,     3,     4,     5,     6,     7,     8,    -1,
1952       -1,    -1,    -1,    -1,   254,   255,    -1,    -1,    -1,    -1,
1953       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
1954       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1955       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1956       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1957       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1958       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1959       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1960       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1961      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1962      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1963      120,   121,   122,   123,   124,    -1,    -1,    -1,    -1,   129,
1964      130,   131,   132,   133,   134,   135,   136,    -1,   138,   139,
1965      140,   141,   142,   143,   144,   145,    -1,    -1,   148,   149,
1966       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1967       -1,    -1,    -1,    -1,    -1,    -1,    -1,   167,   168,   169,
1968      170,   171,    -1,   173,    -1,    -1,    -1,    -1,    -1,    -1,
1969       -1,    -1,    -1,    -1,    -1,    -1,   186,    -1,    -1,    -1,
1970       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1971       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1972       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1973       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1974       -1,    -1,    -1,   233,    -1,    -1,    -1,    -1,    -1,   239,
1975      240,   241,   242,     5,     6,     7,     8,    -1,    -1,    -1,
1976       -1,    -1,    -1,    -1,   254,    -1,    -1,    -1,    20,    21,
1977       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1978       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1979       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1980       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1981       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1982       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1983       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1984       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1985      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1986      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1987      122,   123,   124,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1988       -1,    -1,   134,   135,   136,    -1,   138,   139,   140,   141,
1989      142,   143,   144,   145,    -1,    -1,   148,   149,    -1,    -1,
1990       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1991       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1992       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1993       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1994       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1995       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1996       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1997       -1,    -1,    -1,    -1,    -1,    -1,     5,     6,     7,     8,
1998       -1,   233,    -1,    -1,    -1,    -1,    -1,   239,   240,   241,
1999      242,    20,    21,    22,    23,    24,    25,    26,    27,    28,
2000       29,    30,    31,   255,   256,    -1,    -1,    -1,    -1,    -1,
2001       -1,    -1,    -1,    42,    43,    44,    45,    46,    47,    48,
2002       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2003       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2004       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2005       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2006       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2007       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2008      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2009      119,   120,   121,   122,   123,   124,    -1,    -1,    -1,    -1,
2010       -1,    -1,    -1,    -1,    -1,   134,   135,   136,    -1,   138,
2011      139,   140,   141,   142,   143,   144,   145,    -1,    -1,   148,
2012      149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2013       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2014       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2015       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2016       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2017       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2018       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2019       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,
2020        6,     7,     8,    -1,   233,    -1,    -1,    -1,    -1,    -1,
2021      239,   240,   241,   242,    20,    21,    22,    23,    24,    25,
2022       26,    27,    28,    29,    30,    31,   255,    -1,    -1,    -1,
2023       -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    44,    45,
2024       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2025       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
2026       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
2027       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
2028       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
2029       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
2030      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
2031      116,   117,   118,   119,   120,   121,   122,   123,   124,    -1,
2032       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,   135,
2033      136,    -1,   138,   139,   140,   141,   142,   143,   144,   145,
2034       -1,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,
2035       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2036       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2037       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2038       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2039       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2040       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2041       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2042       -1,    -1,    -1,    -1,    -1,    -1,    -1,   233,    -1,    -1,
2043       -1,    -1,    -1,   239,   240,   241,   242,     3,     4,     5,
2044        6,     7,     8,    -1,    -1,    -1,    -1,    -1,   254,    -1,
2045       -1,    -1,    -1,    -1,    20,    21,    22,    23,    24,    25,
2046       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
2047       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2048       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2049       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
2050       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
2051       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
2052       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
2053       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
2054      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
2055      116,   117,   118,   119,   120,   121,   122,   123,   124,    -1,
2056       -1,    -1,    -1,   129,   130,   131,   132,   133,   134,   135,
2057      136,    -1,   138,   139,   140,   141,   142,   143,   144,   145,
2058       -1,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,
2059       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2060       -1,   167,   168,   169,   170,   171,    -1,    -1,    -1,    -1,
2061       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2062      186,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2063       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2064        5,     6,     7,     8,    -1,    -1,    -1,    -1,    -1,    -1,
2065       -1,    -1,    -1,    -1,    -1,    20,    21,    22,    23,    24,
2066       25,    26,    27,    28,    29,    30,    31,   233,    -1,    -1,
2067       -1,    -1,    -1,   239,   240,   241,   242,    42,    43,    44,
2068       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2069       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2070       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2071       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2072       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2073       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2074      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2075      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2076       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,
2077      135,   136,    -1,   138,   139,   140,   141,   142,   143,   144,
2078      145,    -1,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,
2079       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2080       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2081       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2082       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2083       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2084       -1,     5,     6,     7,     8,    -1,    -1,    -1,    -1,    -1,
2085       -1,    -1,    -1,    -1,    -1,    -1,    20,    21,    22,    23,
2086       24,    25,    26,    27,    28,    29,    30,    31,   233,    -1,
2087       -1,   236,    -1,    -1,   239,   240,   241,   242,    42,    43,
2088       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2089       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
2090       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
2091       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2092       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2093       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
2094      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
2095      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
2096      124,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2097      134,   135,   136,    -1,   138,   139,   140,   141,   142,   143,
2098      144,   145,    -1,    -1,   148,   149,    -1,    -1,    -1,    -1,
2099       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2100       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2101       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2102       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2103       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2104       -1,    -1,     5,     6,     7,     8,    -1,    -1,    -1,    -1,
2105       -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    21,    22,
2106       23,    24,    25,    26,    27,    28,    29,    30,    31,   233,
2107       -1,    -1,   236,    -1,    -1,   239,   240,   241,   242,    42,
2108       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2109       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2110       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2111       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2112       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2113       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2114      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2115      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2116      123,   124,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2117       -1,   134,   135,   136,    -1,   138,   139,   140,   141,   142,
2118      143,   144,   145,    -1,    -1,   148,   149,    -1,    -1,    -1,
2119       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2120       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2121       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2122       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2123       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2124       -1,    -1,    -1,     5,     6,     7,     8,    -1,    -1,    -1,
2125       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    21,
2126       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2127      233,    -1,    -1,    -1,    -1,    -1,   239,   240,   241,   242,
2128       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2129       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2130       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2131       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2132       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2133       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2134      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2135      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2136      122,   123,   124,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2137       -1,    -1,   134,   135,   136,    -1,   138,   139,   140,   141,
2138      142,   143,   144,   145,    -1,    -1,   148,   149,    -1,    -1,
2139       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2140       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2141       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2142       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2143       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2144       -1,    -1,    -1,    -1,     5,     6,     7,     8,    -1,    -1,
2145       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,
2146       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2147       31,   233,    -1,    -1,    -1,    -1,    -1,   239,   240,   241,
2148      242,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2149       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2150       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2151       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2152       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2153       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2154      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2155      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2156      121,   122,   123,   124,    -1,    -1,    -1,    -1,    -1,    -1,
2157       -1,    -1,    -1,   134,   135,   136,    -1,   138,   139,   140,
2158      141,   142,   143,   144,   145,    -1,    -1,   148,   149,    -1,
2159       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2160       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2161       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2162       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2163       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2164       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2165       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2166       -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,
2167        8,    -1,   233,    -1,    -1,    -1,    -1,    -1,   239,   240,
2168      241,   242,    20,    21,    22,    23,    24,    25,    26,    27,
2169       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2170       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2171       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2172       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
2173       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2174       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
2175       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2176       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2177      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
2178      118,   119,   120,   121,   122,   123,   124,    -1,    -1,    -1,
2179       -1,   129,   130,   131,   132,   133,   134,   135,   136,    -1,
2180       -1,   139,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2181       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2182       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   167,
2183      168,   169,   170,   171,    -1,   173,    -1,   175,    -1,    -1,
2184       -1,    -1,    -1,   181,   182,   183,   184,   185,   186,     3,
2185        4,     5,     6,     7,     8,    -1,    -1,    -1,    -1,    -1,
2186       -1,    -1,    -1,    -1,    -1,    -1,    20,    21,    22,    23,
2187       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2188       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2189       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2190       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
2191       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
2192       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2193       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2194       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
2195      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
2196      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
2197      124,    -1,    -1,    -1,    -1,   129,   130,   131,   132,   133,
2198      134,   135,   136,    -1,    -1,   139,    -1,    -1,    -1,    -1,
2199       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2200       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2201       -1,    -1,    -1,   167,   168,   169,   170,   171,    -1,   173,
2202        3,     4,     5,     6,     7,     8,    -1,   181,   182,   183,
2203      184,   185,   186,    -1,    -1,    -1,    -1,    20,    21,    22,
2204       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
2205       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2206       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2207       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2208       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2209       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2210       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2211       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2212      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2213      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2214      123,   124,     3,     4,    -1,    -1,   129,   130,   131,   132,
2215      133,   134,   135,   136,    -1,    -1,   139,    -1,    -1,    -1,
2216       -1,    -1,     3,     4,    -1,    -1,    -1,    -1,    -1,    -1,
2217       -1,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2218       41,    -1,    -1,    -1,   167,   168,   169,   170,   171,    -1,
2219       -1,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2220       41,    -1,    -1,   186,    -1,    -1,    -1,    -1,    -1,    -1,
2221       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2222       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2223       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2224       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2225       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2226       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   129,   130,
2227      131,   132,   133,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2228       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   129,   130,
2229      131,   132,   133,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2230       -1,    -1,    -1,    -1,    -1,    -1,   167,   168,   169,   170,
2231      171,    -1,    -1,    -1,    -1,    -1,     5,     6,     7,     8,
2232       -1,    -1,    -1,    -1,    -1,   186,   167,   168,   169,   170,
2233      171,    20,    21,    22,    23,    24,    25,    26,    27,    28,
2234       29,    30,    31,    -1,    -1,   186,    -1,    -1,    -1,    -1,
2235       -1,    -1,    -1,    42,    43,    44,    45,    46,    47,    48,
2236       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2237       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2238       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2239       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2240       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2241       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2242      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2243      119,   120,   121,   122,   123,   124,    -1,    -1,    -1,    -1,
2244       -1,    -1,    -1,    -1,    -1,   134,   135,   136,    -1,    -1,
2245      139
2246 };
2247 
2248   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2249      symbol of state STATE-NUM.  */
2250 static const yytype_uint16 yystos[] =
2251 {
2252        0,   174,   258,   260,   142,     0,   262,   138,   139,   140,
2253      178,   263,   175,   259,   264,   178,   263,     3,     4,     5,
2254        6,     7,     8,    20,    21,    22,    23,    24,    25,    26,
2255       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2256       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2257       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2258       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2259       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2260       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2261       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2262       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2263      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2264      117,   118,   119,   120,   121,   122,   123,   124,   129,   130,
2265      131,   132,   133,   134,   135,   136,   139,   167,   168,   169,
2266      170,   171,   173,   181,   182,   183,   184,   185,   186,   261,
2267      265,   299,   300,   301,   302,   303,   309,   310,   311,   312,
2268      317,   318,   319,   320,   322,   323,   324,   325,   326,   356,
2269      357,   358,   359,   360,   364,   177,   255,   263,    33,    34,
2270       36,   138,   140,   167,   168,   266,   312,   318,   266,   318,
2271      325,   178,   178,   178,   178,   178,   233,   264,   356,   254,
2272      255,   339,   234,   238,     4,    33,    34,    35,   168,   305,
2273      306,   307,   325,   238,   254,   138,   140,   263,   266,    33,
2274       34,    36,   318,   359,   318,   322,   318,   318,   235,   321,
2275      318,   140,   263,   311,   327,   328,   255,   322,   194,   231,
2276      263,   313,   315,   316,     9,    10,    11,    13,    14,    15,
2277       16,    17,   137,   141,   142,   143,   144,   145,   148,   149,
2278      233,   239,   240,   241,   242,   254,   255,   256,   266,   267,
2279      268,   270,   271,   272,   273,   274,   275,   276,   281,   282,
2280      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
2281      293,   294,   295,   297,   299,   300,   312,   322,   333,   334,
2282      335,   336,   340,   341,   342,   345,   351,   355,   305,   306,
2283      306,   304,   308,   322,   306,   306,   263,   253,   321,   233,
2284      254,   254,   254,   236,   281,   294,   298,   322,   235,   255,
2285      178,   263,   329,   330,   256,   328,   327,   254,   253,   234,
2286      238,   254,   254,   334,   233,   233,   254,   254,   297,   233,
2287      233,   281,   281,   297,   256,   337,   148,   149,   235,   237,
2288      234,   234,   238,   136,   295,   233,   157,   158,   159,   160,
2289      161,   162,   163,   164,   165,   166,   253,   296,   281,   243,
2290      244,   245,   239,   240,   146,   147,   150,   151,   246,   247,
2291      152,   153,   248,   249,   250,   154,   156,   155,   251,   238,
2292      254,   256,   334,   263,   253,   321,   255,   295,   331,   253,
2293      236,   236,   298,   311,   362,   363,   321,   238,   254,   256,
2294      142,   143,   314,   315,   137,   333,   341,   352,   297,   254,
2295      297,   297,   311,   344,   234,   340,   269,   297,   263,   266,
2296      277,   278,   279,   280,   295,   295,   281,   281,   281,   283,
2297      283,   284,   284,   285,   285,   285,   285,   286,   286,   287,
2298      288,   289,   290,   291,   292,   297,   295,   321,   331,   253,
2299      331,   332,   331,   236,   329,   256,   362,   330,   233,   344,
2300      353,   354,   234,   234,   263,   234,   256,   236,   233,   234,
2301      234,   238,   136,   295,   252,   331,   238,   256,   254,   140,
2302      361,   297,   254,   234,   334,   343,   255,   346,   253,   335,
2303      338,   339,   295,   295,   256,   331,   321,   254,   234,   297,
2304      338,    12,    18,    19,   256,   347,   348,   349,   350,   331,
2305      254,   334,   297,   252,   334,   347,   334,   256,   349,   252
2306 };
2307 
2308   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2309 static const yytype_uint16 yyr1[] =
2310 {
2311        0,   257,   259,   258,   260,   260,   260,   261,   261,   261,
2312      261,   261,   262,   262,   263,   263,   263,   264,   265,   265,
2313      265,   266,   266,   267,   267,   267,   267,   267,   267,   268,
2314      268,   268,   268,   268,   268,   269,   270,   271,   271,   272,
2315      272,   273,   273,   274,   274,   275,   276,   276,   276,   277,
2316      277,   278,   278,   279,   279,   280,   281,   281,   281,   281,
2317      282,   282,   282,   282,   283,   283,   283,   283,   284,   284,
2318      284,   285,   285,   285,   286,   286,   286,   286,   286,   287,
2319      287,   287,   288,   288,   289,   289,   290,   290,   291,   291,
2320      292,   292,   293,   293,   294,   294,   295,   295,   296,   296,
2321      296,   296,   296,   296,   296,   296,   296,   296,   296,   297,
2322      297,   298,   299,   299,   299,   299,   300,   301,   301,   302,
2323      302,   303,   304,   304,   305,   305,   306,   306,   306,   306,
2324      306,   307,   307,   307,   308,   309,   309,   309,   309,   309,
2325      310,   310,   310,   310,   310,   310,   310,   311,   311,   312,
2326      313,   313,   314,   314,   315,   315,   315,   316,   316,   317,
2327      317,   317,   318,   318,   318,   318,   318,   318,   318,   318,
2328      318,   318,   318,   318,   318,   318,   319,   319,   320,   320,
2329      320,   320,   320,   320,   320,   320,   320,   320,   320,   320,
2330      321,   321,   321,   321,   322,   322,   323,   323,   323,   324,
2331      324,   324,   324,   324,   324,   324,   324,   324,   324,   324,
2332      324,   324,   324,   324,   324,   324,   324,   324,   324,   324,
2333      324,   324,   324,   324,   324,   324,   324,   324,   324,   324,
2334      324,   324,   324,   324,   324,   324,   324,   324,   324,   324,
2335      324,   324,   324,   324,   324,   324,   324,   324,   324,   324,
2336      324,   324,   324,   324,   324,   324,   324,   324,   324,   324,
2337      324,   324,   324,   324,   324,   324,   324,   324,   324,   324,
2338      324,   324,   324,   324,   324,   324,   324,   324,   324,   324,
2339      324,   324,   324,   324,   324,   324,   324,   324,   324,   324,
2340      324,   324,   324,   324,   324,   324,   324,   324,   324,   324,
2341      325,   325,   325,   326,   326,   327,   327,   328,   329,   329,
2342      330,   330,   331,   331,   331,   332,   332,   333,   334,   334,
2343      335,   335,   335,   335,   335,   335,   336,   337,   336,   338,
2344      338,   339,   339,   340,   340,   341,   341,   342,   343,   343,
2345      344,   344,   345,   346,   346,   347,   347,   348,   348,   349,
2346      349,   350,   350,   351,   351,   351,   352,   352,   353,   353,
2347      354,   354,   355,   355,   355,   355,   355,   356,   356,   356,
2348      356,   357,   358,   358,   359,   360,   360,   360,   361,   361,
2349      361,   362,   362,   363,   364,   364,   364
2350 };
2351 
2352   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2353 static const yytype_uint8 yyr2[] =
2354 {
2355        0,     2,     0,     4,     0,     3,     4,     2,     2,     2,
2356        2,     2,     0,     2,     1,     1,     1,     5,     1,     2,
2357        2,     1,     1,     1,     1,     1,     1,     1,     3,     1,
2358        4,     1,     3,     2,     2,     1,     1,     1,     3,     2,
2359        2,     2,     1,     2,     3,     2,     1,     1,     1,     2,
2360        2,     2,     1,     2,     3,     2,     1,     2,     2,     2,
2361        1,     1,     1,     1,     1,     3,     3,     3,     1,     3,
2362        3,     1,     3,     3,     1,     3,     3,     3,     3,     1,
2363        3,     3,     1,     3,     1,     3,     1,     3,     1,     3,
2364        1,     3,     1,     3,     1,     5,     1,     3,     1,     1,
2365        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2366        3,     1,     2,     2,     4,     1,     2,     1,     1,     2,
2367        3,     3,     2,     3,     2,     2,     0,     2,     2,     2,
2368        2,     1,     1,     1,     1,     1,     3,     4,     6,     5,
2369        1,     2,     3,     5,     4,     2,     2,     1,     2,     4,
2370        1,     3,     1,     1,     1,     3,     1,     1,     1,     1,
2371        1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
2372        2,     2,     2,     2,     2,     2,     1,     1,     1,     1,
2373        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2374        2,     3,     3,     4,     1,     2,     1,     1,     1,     1,
2375        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2376        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2377        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2378        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2379        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2380        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2381        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2382        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2383        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2384        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2385        1,     1,     1,     5,     4,     1,     2,     3,     1,     3,
2386        1,     2,     1,     3,     4,     1,     3,     1,     1,     1,
2387        1,     1,     1,     1,     1,     1,     2,     0,     4,     1,
2388        1,     2,     3,     1,     2,     1,     2,     5,     3,     1,
2389        1,     4,     5,     2,     3,     3,     2,     1,     2,     2,
2390        2,     1,     2,     5,     7,     6,     1,     1,     1,     0,
2391        2,     3,     2,     2,     2,     3,     2,     1,     1,     1,
2392        1,     2,     1,     2,     7,     1,     1,     1,     0,     1,
2393        2,     1,     2,     3,     3,     3,     3
2394 };
2395 
2396 
2397 #define yyerrok         (yyerrstatus = 0)
2398 #define yyclearin       (yychar = YYEMPTY)
2399 #define YYEMPTY         (-2)
2400 #define YYEOF           0
2401 
2402 #define YYACCEPT        goto yyacceptlab
2403 #define YYABORT         goto yyabortlab
2404 #define YYERROR         goto yyerrorlab
2405 
2406 
2407 #define YYRECOVERING()  (!!yyerrstatus)
2408 
2409 #define YYBACKUP(Token, Value)                                  \
2410 do                                                              \
2411   if (yychar == YYEMPTY)                                        \
2412     {                                                           \
2413       yychar = (Token);                                         \
2414       yylval = (Value);                                         \
2415       YYPOPSTACK (yylen);                                       \
2416       yystate = *yyssp;                                         \
2417       goto yybackup;                                            \
2418     }                                                           \
2419   else                                                          \
2420     {                                                           \
2421       yyerror (&yylloc, state, YY_("syntax error: cannot back up")); \
2422       YYERROR;                                                  \
2423     }                                                           \
2424 while (0)
2425 
2426 /* Error token number */
2427 #define YYTERROR        1
2428 #define YYERRCODE       256
2429 
2430 
2431 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2432    If N is 0, then set CURRENT to the empty location which ends
2433    the previous symbol: RHS[0] (always defined).  */
2434 
2435 #ifndef YYLLOC_DEFAULT
2436 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2437     do                                                                  \
2438       if (N)                                                            \
2439         {                                                               \
2440           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2441           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2442           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2443           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2444         }                                                               \
2445       else                                                              \
2446         {                                                               \
2447           (Current).first_line   = (Current).last_line   =              \
2448             YYRHSLOC (Rhs, 0).last_line;                                \
2449           (Current).first_column = (Current).last_column =              \
2450             YYRHSLOC (Rhs, 0).last_column;                              \
2451         }                                                               \
2452     while (0)
2453 #endif
2454 
2455 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2456 
2457 
2458 /* Enable debugging if requested.  */
2459 #if YYDEBUG
2460 
2461 # ifndef YYFPRINTF
2462 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2463 #  define YYFPRINTF fprintf
2464 # endif
2465 
2466 # define YYDPRINTF(Args)                        \
2467 do {                                            \
2468   if (yydebug)                                  \
2469     YYFPRINTF Args;                             \
2470 } while (0)
2471 
2472 
2473 /* YY_LOCATION_PRINT -- Print the location on the stream.
2474    This macro was not mandated originally: define only if we know
2475    we won't break user code: when these are the locations we know.  */
2476 
2477 #ifndef YY_LOCATION_PRINT
2478 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2479 
2480 /* Print *YYLOCP on YYO.  Private, do not rely on its existence. */
2481 
2482 YY_ATTRIBUTE_UNUSED
2483 static unsigned
yy_location_print_(FILE * yyo,YYLTYPE const * const yylocp)2484 yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
2485 {
2486   unsigned res = 0;
2487   int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
2488   if (0 <= yylocp->first_line)
2489     {
2490       res += YYFPRINTF (yyo, "%d", yylocp->first_line);
2491       if (0 <= yylocp->first_column)
2492         res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
2493     }
2494   if (0 <= yylocp->last_line)
2495     {
2496       if (yylocp->first_line < yylocp->last_line)
2497         {
2498           res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
2499           if (0 <= end_col)
2500             res += YYFPRINTF (yyo, ".%d", end_col);
2501         }
2502       else if (0 <= end_col && yylocp->first_column < end_col)
2503         res += YYFPRINTF (yyo, "-%d", end_col);
2504     }
2505   return res;
2506  }
2507 
2508 #  define YY_LOCATION_PRINT(File, Loc)          \
2509   yy_location_print_ (File, &(Loc))
2510 
2511 # else
2512 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2513 # endif
2514 #endif
2515 
2516 
2517 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2518 do {                                                                      \
2519   if (yydebug)                                                            \
2520     {                                                                     \
2521       YYFPRINTF (stderr, "%s ", Title);                                   \
2522       yy_symbol_print (stderr,                                            \
2523                   Type, Value, Location, state); \
2524       YYFPRINTF (stderr, "\n");                                           \
2525     }                                                                     \
2526 } while (0)
2527 
2528 
2529 /*----------------------------------------.
2530 | Print this symbol's value on YYOUTPUT.  |
2531 `----------------------------------------*/
2532 
2533 static void
yy_symbol_value_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep,YYLTYPE const * const yylocationp,struct _mesa_glsl_parse_state * state)2534 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, struct _mesa_glsl_parse_state *state)
2535 {
2536   FILE *yyo = yyoutput;
2537   YYUSE (yyo);
2538   YYUSE (yylocationp);
2539   YYUSE (state);
2540   if (!yyvaluep)
2541     return;
2542 # ifdef YYPRINT
2543   if (yytype < YYNTOKENS)
2544     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2545 # endif
2546   YYUSE (yytype);
2547 }
2548 
2549 
2550 /*--------------------------------.
2551 | Print this symbol on YYOUTPUT.  |
2552 `--------------------------------*/
2553 
2554 static void
yy_symbol_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep,YYLTYPE const * const yylocationp,struct _mesa_glsl_parse_state * state)2555 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, struct _mesa_glsl_parse_state *state)
2556 {
2557   YYFPRINTF (yyoutput, "%s %s (",
2558              yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2559 
2560   YY_LOCATION_PRINT (yyoutput, *yylocationp);
2561   YYFPRINTF (yyoutput, ": ");
2562   yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, state);
2563   YYFPRINTF (yyoutput, ")");
2564 }
2565 
2566 /*------------------------------------------------------------------.
2567 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2568 | TOP (included).                                                   |
2569 `------------------------------------------------------------------*/
2570 
2571 static void
yy_stack_print(yytype_int16 * yybottom,yytype_int16 * yytop)2572 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2573 {
2574   YYFPRINTF (stderr, "Stack now");
2575   for (; yybottom <= yytop; yybottom++)
2576     {
2577       int yybot = *yybottom;
2578       YYFPRINTF (stderr, " %d", yybot);
2579     }
2580   YYFPRINTF (stderr, "\n");
2581 }
2582 
2583 # define YY_STACK_PRINT(Bottom, Top)                            \
2584 do {                                                            \
2585   if (yydebug)                                                  \
2586     yy_stack_print ((Bottom), (Top));                           \
2587 } while (0)
2588 
2589 
2590 /*------------------------------------------------.
2591 | Report that the YYRULE is going to be reduced.  |
2592 `------------------------------------------------*/
2593 
2594 static void
yy_reduce_print(yytype_int16 * yyssp,YYSTYPE * yyvsp,YYLTYPE * yylsp,int yyrule,struct _mesa_glsl_parse_state * state)2595 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, struct _mesa_glsl_parse_state *state)
2596 {
2597   unsigned long int yylno = yyrline[yyrule];
2598   int yynrhs = yyr2[yyrule];
2599   int yyi;
2600   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2601              yyrule - 1, yylno);
2602   /* The symbols being reduced.  */
2603   for (yyi = 0; yyi < yynrhs; yyi++)
2604     {
2605       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2606       yy_symbol_print (stderr,
2607                        yystos[yyssp[yyi + 1 - yynrhs]],
2608                        &(yyvsp[(yyi + 1) - (yynrhs)])
2609                        , &(yylsp[(yyi + 1) - (yynrhs)])                       , state);
2610       YYFPRINTF (stderr, "\n");
2611     }
2612 }
2613 
2614 # define YY_REDUCE_PRINT(Rule)          \
2615 do {                                    \
2616   if (yydebug)                          \
2617     yy_reduce_print (yyssp, yyvsp, yylsp, Rule, state); \
2618 } while (0)
2619 
2620 /* Nonzero means print parse trace.  It is left uninitialized so that
2621    multiple parsers can coexist.  */
2622 int yydebug;
2623 #else /* !YYDEBUG */
2624 # define YYDPRINTF(Args)
2625 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2626 # define YY_STACK_PRINT(Bottom, Top)
2627 # define YY_REDUCE_PRINT(Rule)
2628 #endif /* !YYDEBUG */
2629 
2630 
2631 /* YYINITDEPTH -- initial size of the parser's stacks.  */
2632 #ifndef YYINITDEPTH
2633 # define YYINITDEPTH 200
2634 #endif
2635 
2636 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2637    if the built-in stack extension method is used).
2638 
2639    Do not make this value too large; the results are undefined if
2640    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2641    evaluated with infinite-precision integer arithmetic.  */
2642 
2643 #ifndef YYMAXDEPTH
2644 # define YYMAXDEPTH 10000
2645 #endif
2646 
2647 
2648 #if YYERROR_VERBOSE
2649 
2650 # ifndef yystrlen
2651 #  if defined __GLIBC__ && defined _STRING_H
2652 #   define yystrlen strlen
2653 #  else
2654 /* Return the length of YYSTR.  */
2655 static YYSIZE_T
yystrlen(const char * yystr)2656 yystrlen (const char *yystr)
2657 {
2658   YYSIZE_T yylen;
2659   for (yylen = 0; yystr[yylen]; yylen++)
2660     continue;
2661   return yylen;
2662 }
2663 #  endif
2664 # endif
2665 
2666 # ifndef yystpcpy
2667 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2668 #   define yystpcpy stpcpy
2669 #  else
2670 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2671    YYDEST.  */
2672 static char *
yystpcpy(char * yydest,const char * yysrc)2673 yystpcpy (char *yydest, const char *yysrc)
2674 {
2675   char *yyd = yydest;
2676   const char *yys = yysrc;
2677 
2678   while ((*yyd++ = *yys++) != '\0')
2679     continue;
2680 
2681   return yyd - 1;
2682 }
2683 #  endif
2684 # endif
2685 
2686 # ifndef yytnamerr
2687 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2688    quotes and backslashes, so that it's suitable for yyerror.  The
2689    heuristic is that double-quoting is unnecessary unless the string
2690    contains an apostrophe, a comma, or backslash (other than
2691    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
2692    null, do not copy; instead, return the length of what the result
2693    would have been.  */
2694 static YYSIZE_T
yytnamerr(char * yyres,const char * yystr)2695 yytnamerr (char *yyres, const char *yystr)
2696 {
2697   if (*yystr == '"')
2698     {
2699       YYSIZE_T yyn = 0;
2700       char const *yyp = yystr;
2701 
2702       for (;;)
2703         switch (*++yyp)
2704           {
2705           case '\'':
2706           case ',':
2707             goto do_not_strip_quotes;
2708 
2709           case '\\':
2710             if (*++yyp != '\\')
2711               goto do_not_strip_quotes;
2712             /* Fall through.  */
2713           default:
2714             if (yyres)
2715               yyres[yyn] = *yyp;
2716             yyn++;
2717             break;
2718 
2719           case '"':
2720             if (yyres)
2721               yyres[yyn] = '\0';
2722             return yyn;
2723           }
2724     do_not_strip_quotes: ;
2725     }
2726 
2727   if (! yyres)
2728     return yystrlen (yystr);
2729 
2730   return yystpcpy (yyres, yystr) - yyres;
2731 }
2732 # endif
2733 
2734 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2735    about the unexpected token YYTOKEN for the state stack whose top is
2736    YYSSP.
2737 
2738    Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
2739    not large enough to hold the message.  In that case, also set
2740    *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
2741    required number of bytes is too large to store.  */
2742 static int
yysyntax_error(YYSIZE_T * yymsg_alloc,char ** yymsg,yytype_int16 * yyssp,int yytoken)2743 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2744                 yytype_int16 *yyssp, int yytoken)
2745 {
2746   YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2747   YYSIZE_T yysize = yysize0;
2748   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2749   /* Internationalized format string. */
2750   const char *yyformat = YY_NULLPTR;
2751   /* Arguments of yyformat. */
2752   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2753   /* Number of reported tokens (one for the "unexpected", one per
2754      "expected"). */
2755   int yycount = 0;
2756 
2757   /* There are many possibilities here to consider:
2758      - If this state is a consistent state with a default action, then
2759        the only way this function was invoked is if the default action
2760        is an error action.  In that case, don't check for expected
2761        tokens because there are none.
2762      - The only way there can be no lookahead present (in yychar) is if
2763        this state is a consistent state with a default action.  Thus,
2764        detecting the absence of a lookahead is sufficient to determine
2765        that there is no unexpected or expected token to report.  In that
2766        case, just report a simple "syntax error".
2767      - Don't assume there isn't a lookahead just because this state is a
2768        consistent state with a default action.  There might have been a
2769        previous inconsistent state, consistent state with a non-default
2770        action, or user semantic action that manipulated yychar.
2771      - Of course, the expected token list depends on states to have
2772        correct lookahead information, and it depends on the parser not
2773        to perform extra reductions after fetching a lookahead from the
2774        scanner and before detecting a syntax error.  Thus, state merging
2775        (from LALR or IELR) and default reductions corrupt the expected
2776        token list.  However, the list is correct for canonical LR with
2777        one exception: it will still contain any token that will not be
2778        accepted due to an error action in a later state.
2779   */
2780   if (yytoken != YYEMPTY)
2781     {
2782       int yyn = yypact[*yyssp];
2783       yyarg[yycount++] = yytname[yytoken];
2784       if (!yypact_value_is_default (yyn))
2785         {
2786           /* Start YYX at -YYN if negative to avoid negative indexes in
2787              YYCHECK.  In other words, skip the first -YYN actions for
2788              this state because they are default actions.  */
2789           int yyxbegin = yyn < 0 ? -yyn : 0;
2790           /* Stay within bounds of both yycheck and yytname.  */
2791           int yychecklim = YYLAST - yyn + 1;
2792           int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2793           int yyx;
2794 
2795           for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2796             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2797                 && !yytable_value_is_error (yytable[yyx + yyn]))
2798               {
2799                 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2800                   {
2801                     yycount = 1;
2802                     yysize = yysize0;
2803                     break;
2804                   }
2805                 yyarg[yycount++] = yytname[yyx];
2806                 {
2807                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2808                   if (! (yysize <= yysize1
2809                          && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2810                     return 2;
2811                   yysize = yysize1;
2812                 }
2813               }
2814         }
2815     }
2816 
2817   switch (yycount)
2818     {
2819 # define YYCASE_(N, S)                      \
2820       case N:                               \
2821         yyformat = S;                       \
2822       break
2823       YYCASE_(0, YY_("syntax error"));
2824       YYCASE_(1, YY_("syntax error, unexpected %s"));
2825       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2826       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2827       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2828       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2829 # undef YYCASE_
2830     }
2831 
2832   {
2833     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2834     if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2835       return 2;
2836     yysize = yysize1;
2837   }
2838 
2839   if (*yymsg_alloc < yysize)
2840     {
2841       *yymsg_alloc = 2 * yysize;
2842       if (! (yysize <= *yymsg_alloc
2843              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2844         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2845       return 1;
2846     }
2847 
2848   /* Avoid sprintf, as that infringes on the user's name space.
2849      Don't have undefined behavior even if the translation
2850      produced a string with the wrong number of "%s"s.  */
2851   {
2852     char *yyp = *yymsg;
2853     int yyi = 0;
2854     while ((*yyp = *yyformat) != '\0')
2855       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2856         {
2857           yyp += yytnamerr (yyp, yyarg[yyi++]);
2858           yyformat += 2;
2859         }
2860       else
2861         {
2862           yyp++;
2863           yyformat++;
2864         }
2865   }
2866   return 0;
2867 }
2868 #endif /* YYERROR_VERBOSE */
2869 
2870 /*-----------------------------------------------.
2871 | Release the memory associated to this symbol.  |
2872 `-----------------------------------------------*/
2873 
2874 static void
yydestruct(const char * yymsg,int yytype,YYSTYPE * yyvaluep,YYLTYPE * yylocationp,struct _mesa_glsl_parse_state * state)2875 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, struct _mesa_glsl_parse_state *state)
2876 {
2877   YYUSE (yyvaluep);
2878   YYUSE (yylocationp);
2879   YYUSE (state);
2880   if (!yymsg)
2881     yymsg = "Deleting";
2882   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2883 
2884   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2885   YYUSE (yytype);
2886   YY_IGNORE_MAYBE_UNINITIALIZED_END
2887 }
2888 
2889 
2890 
2891 
2892 /*----------.
2893 | yyparse.  |
2894 `----------*/
2895 
2896 int
yyparse(struct _mesa_glsl_parse_state * state)2897 yyparse (struct _mesa_glsl_parse_state *state)
2898 {
2899 /* The lookahead symbol.  */
2900 int yychar;
2901 
2902 
2903 /* The semantic value of the lookahead symbol.  */
2904 /* Default value used for initialization, for pacifying older GCCs
2905    or non-GCC compilers.  */
2906 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
2907 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
2908 
2909 /* Location data for the lookahead symbol.  */
2910 static YYLTYPE yyloc_default
2911 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2912   = { 1, 1, 1, 1 }
2913 # endif
2914 ;
2915 YYLTYPE yylloc = yyloc_default;
2916 
2917     /* Number of syntax errors so far.  */
2918     int yynerrs;
2919 
2920     int yystate;
2921     /* Number of tokens to shift before error messages enabled.  */
2922     int yyerrstatus;
2923 
2924     /* The stacks and their tools:
2925        'yyss': related to states.
2926        'yyvs': related to semantic values.
2927        'yyls': related to locations.
2928 
2929        Refer to the stacks through separate pointers, to allow yyoverflow
2930        to reallocate them elsewhere.  */
2931 
2932     /* The state stack.  */
2933     yytype_int16 yyssa[YYINITDEPTH];
2934     yytype_int16 *yyss;
2935     yytype_int16 *yyssp;
2936 
2937     /* The semantic value stack.  */
2938     YYSTYPE yyvsa[YYINITDEPTH];
2939     YYSTYPE *yyvs;
2940     YYSTYPE *yyvsp;
2941 
2942     /* The location stack.  */
2943     YYLTYPE yylsa[YYINITDEPTH];
2944     YYLTYPE *yyls;
2945     YYLTYPE *yylsp;
2946 
2947     /* The locations where the error started and ended.  */
2948     YYLTYPE yyerror_range[3];
2949 
2950     YYSIZE_T yystacksize;
2951 
2952   int yyn;
2953   int yyresult;
2954   /* Lookahead token as an internal (translated) token number.  */
2955   int yytoken = 0;
2956   /* The variables used to return semantic value and location from the
2957      action routines.  */
2958   YYSTYPE yyval;
2959   YYLTYPE yyloc;
2960 
2961 #if YYERROR_VERBOSE
2962   /* Buffer for error messages, and its allocated size.  */
2963   char yymsgbuf[128];
2964   char *yymsg = yymsgbuf;
2965   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
2966 #endif
2967 
2968 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2969 
2970   /* The number of symbols on the RHS of the reduced rule.
2971      Keep to zero when no symbol should be popped.  */
2972   int yylen = 0;
2973 
2974   yyssp = yyss = yyssa;
2975   yyvsp = yyvs = yyvsa;
2976   yylsp = yyls = yylsa;
2977   yystacksize = YYINITDEPTH;
2978 
2979   YYDPRINTF ((stderr, "Starting parse\n"));
2980 
2981   yystate = 0;
2982   yyerrstatus = 0;
2983   yynerrs = 0;
2984   yychar = YYEMPTY; /* Cause a token to be read.  */
2985 
2986 /* User initialization code.  */
2987 #line 88 "src/glsl/glsl_parser.yy" /* yacc.c:1429  */
2988 {
2989    yylloc.first_line = 1;
2990    yylloc.first_column = 1;
2991    yylloc.last_line = 1;
2992    yylloc.last_column = 1;
2993    yylloc.source = 0;
2994 }
2995 
2996 #line 2997 "src/glsl/glsl_parser.cpp" /* yacc.c:1429  */
2997   yylsp[0] = yylloc;
2998   goto yysetstate;
2999 
3000 /*------------------------------------------------------------.
3001 | yynewstate -- Push a new state, which is found in yystate.  |
3002 `------------------------------------------------------------*/
3003  yynewstate:
3004   /* In all cases, when you get here, the value and location stacks
3005      have just been pushed.  So pushing a state here evens the stacks.  */
3006   yyssp++;
3007 
3008  yysetstate:
3009   *yyssp = yystate;
3010 
3011   if (yyss + yystacksize - 1 <= yyssp)
3012     {
3013       /* Get the current used size of the three stacks, in elements.  */
3014       YYSIZE_T yysize = yyssp - yyss + 1;
3015 
3016 #ifdef yyoverflow
3017       {
3018         /* Give user a chance to reallocate the stack.  Use copies of
3019            these so that the &'s don't force the real ones into
3020            memory.  */
3021         YYSTYPE *yyvs1 = yyvs;
3022         yytype_int16 *yyss1 = yyss;
3023         YYLTYPE *yyls1 = yyls;
3024 
3025         /* Each stack pointer address is followed by the size of the
3026            data in use in that stack, in bytes.  This used to be a
3027            conditional around just the two extra args, but that might
3028            be undefined if yyoverflow is a macro.  */
3029         yyoverflow (YY_("memory exhausted"),
3030                     &yyss1, yysize * sizeof (*yyssp),
3031                     &yyvs1, yysize * sizeof (*yyvsp),
3032                     &yyls1, yysize * sizeof (*yylsp),
3033                     &yystacksize);
3034 
3035         yyls = yyls1;
3036         yyss = yyss1;
3037         yyvs = yyvs1;
3038       }
3039 #else /* no yyoverflow */
3040 # ifndef YYSTACK_RELOCATE
3041       goto yyexhaustedlab;
3042 # else
3043       /* Extend the stack our own way.  */
3044       if (YYMAXDEPTH <= yystacksize)
3045         goto yyexhaustedlab;
3046       yystacksize *= 2;
3047       if (YYMAXDEPTH < yystacksize)
3048         yystacksize = YYMAXDEPTH;
3049 
3050       {
3051         yytype_int16 *yyss1 = yyss;
3052         union yyalloc *yyptr =
3053           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3054         if (! yyptr)
3055           goto yyexhaustedlab;
3056         YYSTACK_RELOCATE (yyss_alloc, yyss);
3057         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3058         YYSTACK_RELOCATE (yyls_alloc, yyls);
3059 #  undef YYSTACK_RELOCATE
3060         if (yyss1 != yyssa)
3061           YYSTACK_FREE (yyss1);
3062       }
3063 # endif
3064 #endif /* no yyoverflow */
3065 
3066       yyssp = yyss + yysize - 1;
3067       yyvsp = yyvs + yysize - 1;
3068       yylsp = yyls + yysize - 1;
3069 
3070       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3071                   (unsigned long int) yystacksize));
3072 
3073       if (yyss + yystacksize - 1 <= yyssp)
3074         YYABORT;
3075     }
3076 
3077   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3078 
3079   if (yystate == YYFINAL)
3080     YYACCEPT;
3081 
3082   goto yybackup;
3083 
3084 /*-----------.
3085 | yybackup.  |
3086 `-----------*/
3087 yybackup:
3088 
3089   /* Do appropriate processing given the current state.  Read a
3090      lookahead token if we need one and don't already have one.  */
3091 
3092   /* First try to decide what to do without reference to lookahead token.  */
3093   yyn = yypact[yystate];
3094   if (yypact_value_is_default (yyn))
3095     goto yydefault;
3096 
3097   /* Not known => get a lookahead token if don't already have one.  */
3098 
3099   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
3100   if (yychar == YYEMPTY)
3101     {
3102       YYDPRINTF ((stderr, "Reading a token: "));
3103       yychar = yylex (&yylval, &yylloc, state);
3104     }
3105 
3106   if (yychar <= YYEOF)
3107     {
3108       yychar = yytoken = YYEOF;
3109       YYDPRINTF ((stderr, "Now at end of input.\n"));
3110     }
3111   else
3112     {
3113       yytoken = YYTRANSLATE (yychar);
3114       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3115     }
3116 
3117   /* If the proper action on seeing token YYTOKEN is to reduce or to
3118      detect an error, take that action.  */
3119   yyn += yytoken;
3120   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3121     goto yydefault;
3122   yyn = yytable[yyn];
3123   if (yyn <= 0)
3124     {
3125       if (yytable_value_is_error (yyn))
3126         goto yyerrlab;
3127       yyn = -yyn;
3128       goto yyreduce;
3129     }
3130 
3131   /* Count tokens shifted since error; after three, turn off error
3132      status.  */
3133   if (yyerrstatus)
3134     yyerrstatus--;
3135 
3136   /* Shift the lookahead token.  */
3137   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3138 
3139   /* Discard the shifted token.  */
3140   yychar = YYEMPTY;
3141 
3142   yystate = yyn;
3143   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3144   *++yyvsp = yylval;
3145   YY_IGNORE_MAYBE_UNINITIALIZED_END
3146   *++yylsp = yylloc;
3147   goto yynewstate;
3148 
3149 
3150 /*-----------------------------------------------------------.
3151 | yydefault -- do the default action for the current state.  |
3152 `-----------------------------------------------------------*/
3153 yydefault:
3154   yyn = yydefact[yystate];
3155   if (yyn == 0)
3156     goto yyerrlab;
3157   goto yyreduce;
3158 
3159 
3160 /*-----------------------------.
3161 | yyreduce -- Do a reduction.  |
3162 `-----------------------------*/
3163 yyreduce:
3164   /* yyn is the number of a rule to reduce with.  */
3165   yylen = yyr2[yyn];
3166 
3167   /* If YYLEN is nonzero, implement the default value of the action:
3168      '$$ = $1'.
3169 
3170      Otherwise, the following line sets YYVAL to garbage.
3171      This behavior is undocumented and Bison
3172      users should not rely upon it.  Assigning to YYVAL
3173      unconditionally makes the parser a bit smaller, and it avoids a
3174      GCC warning that YYVAL may be used uninitialized.  */
3175   yyval = yyvsp[1-yylen];
3176 
3177   /* Default location.  */
3178   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
3179   YY_REDUCE_PRINT (yyn);
3180   switch (yyn)
3181     {
3182         case 2:
3183 #line 303 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3184     {
3185       _mesa_glsl_initialize_types(state);
3186    }
3187 #line 3188 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3188     break;
3189 
3190   case 3:
3191 #line 307 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3192     {
3193       delete state->symbols;
3194       state->symbols = new(ralloc_parent(state)) glsl_symbol_table;
3195       _mesa_glsl_initialize_types(state);
3196    }
3197 #line 3198 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3198     break;
3199 
3200   case 5:
3201 #line 317 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3202     {
3203       state->process_version_directive(&(yylsp[-1]), (yyvsp[-1].n), NULL);
3204       if (state->error) {
3205          YYERROR;
3206       }
3207    }
3208 #line 3209 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3209     break;
3210 
3211   case 6:
3212 #line 324 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3213     {
3214       state->process_version_directive(&(yylsp[-2]), (yyvsp[-2].n), (yyvsp[-1].identifier));
3215       if (state->error) {
3216          YYERROR;
3217       }
3218    }
3219 #line 3220 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3220     break;
3221 
3222   case 11:
3223 #line 338 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3224     {
3225       if (!state->is_version(120, 100)) {
3226          _mesa_glsl_warning(& (yylsp[-1]), state,
3227                             "pragma `invariant(all)' not supported in %s "
3228                             "(GLSL ES 1.00 or GLSL 1.20 required)",
3229                             state->get_version_string());
3230       } else {
3231          state->all_invariant = true;
3232       }
3233    }
3234 #line 3235 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3235     break;
3236 
3237   case 17:
3238 #line 363 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3239     {
3240       if (!_mesa_glsl_process_extension((yyvsp[-3].identifier), & (yylsp[-3]), (yyvsp[-1].identifier), & (yylsp[-1]), state)) {
3241          YYERROR;
3242       }
3243    }
3244 #line 3245 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3245     break;
3246 
3247   case 18:
3248 #line 372 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3249     {
3250       /* FINISHME: The NULL test is required because pragmas are set to
3251        * FINISHME: NULL. (See production rule for external_declaration.)
3252        */
3253       if ((yyvsp[0].node) != NULL)
3254          state->translation_unit.push_tail(& (yyvsp[0].node)->link);
3255    }
3256 #line 3257 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3257     break;
3258 
3259   case 19:
3260 #line 380 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3261     {
3262       /* FINISHME: The NULL test is required because pragmas are set to
3263        * FINISHME: NULL. (See production rule for external_declaration.)
3264        */
3265       if ((yyvsp[0].node) != NULL)
3266          state->translation_unit.push_tail(& (yyvsp[0].node)->link);
3267    }
3268 #line 3269 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3269     break;
3270 
3271   case 20:
3272 #line 387 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3273     {
3274       if (!state->allow_extension_directive_midshader) {
3275          _mesa_glsl_error(& (yylsp[0]), state,
3276                           "#extension directive is not allowed "
3277                           "in the middle of a shader");
3278          YYERROR;
3279       }
3280    }
3281 #line 3282 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3282     break;
3283 
3284   case 23:
3285 #line 404 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3286     {
3287       void *ctx = state;
3288       (yyval.expression) = new(ctx) ast_expression(ast_identifier, NULL, NULL, NULL);
3289       (yyval.expression)->set_location((yylsp[0]));
3290       (yyval.expression)->primary_expression.identifier = (yyvsp[0].identifier);
3291    }
3292 #line 3293 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3293     break;
3294 
3295   case 24:
3296 #line 411 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3297     {
3298       void *ctx = state;
3299       (yyval.expression) = new(ctx) ast_expression(ast_int_constant, NULL, NULL, NULL);
3300       (yyval.expression)->set_location((yylsp[0]));
3301       (yyval.expression)->primary_expression.int_constant = (yyvsp[0].n);
3302    }
3303 #line 3304 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3304     break;
3305 
3306   case 25:
3307 #line 418 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3308     {
3309       void *ctx = state;
3310       (yyval.expression) = new(ctx) ast_expression(ast_uint_constant, NULL, NULL, NULL);
3311       (yyval.expression)->set_location((yylsp[0]));
3312       (yyval.expression)->primary_expression.uint_constant = (yyvsp[0].n);
3313    }
3314 #line 3315 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3315     break;
3316 
3317   case 26:
3318 #line 425 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3319     {
3320       void *ctx = state;
3321       (yyval.expression) = new(ctx) ast_expression(ast_float_constant, NULL, NULL, NULL);
3322       (yyval.expression)->set_location((yylsp[0]));
3323       (yyval.expression)->primary_expression.float_constant = (yyvsp[0].real);
3324    }
3325 #line 3326 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3326     break;
3327 
3328   case 27:
3329 #line 432 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3330     {
3331       void *ctx = state;
3332       (yyval.expression) = new(ctx) ast_expression(ast_bool_constant, NULL, NULL, NULL);
3333       (yyval.expression)->set_location((yylsp[0]));
3334       (yyval.expression)->primary_expression.bool_constant = (yyvsp[0].n);
3335    }
3336 #line 3337 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3337     break;
3338 
3339   case 28:
3340 #line 439 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3341     {
3342       (yyval.expression) = (yyvsp[-1].expression);
3343    }
3344 #line 3345 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3345     break;
3346 
3347   case 30:
3348 #line 447 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3349     {
3350       void *ctx = state;
3351       (yyval.expression) = new(ctx) ast_expression(ast_array_index, (yyvsp[-3].expression), (yyvsp[-1].expression), NULL);
3352       (yyval.expression)->set_location_range((yylsp[-3]), (yylsp[0]));
3353    }
3354 #line 3355 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3355     break;
3356 
3357   case 31:
3358 #line 453 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3359     {
3360       (yyval.expression) = (yyvsp[0].expression);
3361    }
3362 #line 3363 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3363     break;
3364 
3365   case 32:
3366 #line 457 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3367     {
3368       void *ctx = state;
3369       (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[-2].expression), NULL, NULL);
3370       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3371       (yyval.expression)->primary_expression.identifier = (yyvsp[0].identifier);
3372    }
3373 #line 3374 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3374     break;
3375 
3376   case 33:
3377 #line 464 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3378     {
3379       void *ctx = state;
3380       (yyval.expression) = new(ctx) ast_expression(ast_post_inc, (yyvsp[-1].expression), NULL, NULL);
3381       (yyval.expression)->set_location_range((yylsp[-1]), (yylsp[0]));
3382    }
3383 #line 3384 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3384     break;
3385 
3386   case 34:
3387 #line 470 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3388     {
3389       void *ctx = state;
3390       (yyval.expression) = new(ctx) ast_expression(ast_post_dec, (yyvsp[-1].expression), NULL, NULL);
3391       (yyval.expression)->set_location_range((yylsp[-1]), (yylsp[0]));
3392    }
3393 #line 3394 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3394     break;
3395 
3396   case 38:
3397 #line 488 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3398     {
3399       void *ctx = state;
3400       (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[-2].expression), (yyvsp[0].expression), NULL);
3401       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3402    }
3403 #line 3404 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3404     break;
3405 
3406   case 43:
3407 #line 507 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3408     {
3409       (yyval.expression) = (yyvsp[-1].expression);
3410       (yyval.expression)->set_location((yylsp[-1]));
3411       (yyval.expression)->expressions.push_tail(& (yyvsp[0].expression)->link);
3412    }
3413 #line 3414 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3414     break;
3415 
3416   case 44:
3417 #line 513 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3418     {
3419       (yyval.expression) = (yyvsp[-2].expression);
3420       (yyval.expression)->set_location((yylsp[-2]));
3421       (yyval.expression)->expressions.push_tail(& (yyvsp[0].expression)->link);
3422    }
3423 #line 3424 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3424     break;
3425 
3426   case 46:
3427 #line 529 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3428     {
3429       void *ctx = state;
3430       (yyval.expression) = new(ctx) ast_function_expression((yyvsp[0].type_specifier));
3431       (yyval.expression)->set_location((yylsp[0]));
3432       }
3433 #line 3434 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3434     break;
3435 
3436   case 47:
3437 #line 535 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3438     {
3439       void *ctx = state;
3440       ast_expression *callee = new(ctx) ast_expression((yyvsp[0].identifier));
3441       callee->set_location((yylsp[0]));
3442       (yyval.expression) = new(ctx) ast_function_expression(callee);
3443       (yyval.expression)->set_location((yylsp[0]));
3444       }
3445 #line 3446 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3446     break;
3447 
3448   case 48:
3449 #line 543 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3450     {
3451       void *ctx = state;
3452       ast_expression *callee = new(ctx) ast_expression((yyvsp[0].identifier));
3453       callee->set_location((yylsp[0]));
3454       (yyval.expression) = new(ctx) ast_function_expression(callee);
3455       (yyval.expression)->set_location((yylsp[0]));
3456       }
3457 #line 3458 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3458     break;
3459 
3460   case 53:
3461 #line 564 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3462     {
3463       (yyval.expression) = (yyvsp[-1].expression);
3464       (yyval.expression)->set_location((yylsp[-1]));
3465       (yyval.expression)->expressions.push_tail(& (yyvsp[0].expression)->link);
3466    }
3467 #line 3468 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3468     break;
3469 
3470   case 54:
3471 #line 570 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3472     {
3473       (yyval.expression) = (yyvsp[-2].expression);
3474       (yyval.expression)->set_location((yylsp[-2]));
3475       (yyval.expression)->expressions.push_tail(& (yyvsp[0].expression)->link);
3476    }
3477 #line 3478 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3478     break;
3479 
3480   case 55:
3481 #line 582 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3482     {
3483       void *ctx = state;
3484       ast_expression *callee = new(ctx) ast_expression((yyvsp[-1].identifier));
3485       callee->set_location((yylsp[-1]));
3486       (yyval.expression) = new(ctx) ast_function_expression(callee);
3487       (yyval.expression)->set_location((yylsp[-1]));
3488    }
3489 #line 3490 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3490     break;
3491 
3492   case 57:
3493 #line 595 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3494     {
3495       void *ctx = state;
3496       (yyval.expression) = new(ctx) ast_expression(ast_pre_inc, (yyvsp[0].expression), NULL, NULL);
3497       (yyval.expression)->set_location((yylsp[-1]));
3498    }
3499 #line 3500 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3500     break;
3501 
3502   case 58:
3503 #line 601 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3504     {
3505       void *ctx = state;
3506       (yyval.expression) = new(ctx) ast_expression(ast_pre_dec, (yyvsp[0].expression), NULL, NULL);
3507       (yyval.expression)->set_location((yylsp[-1]));
3508    }
3509 #line 3510 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3510     break;
3511 
3512   case 59:
3513 #line 607 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3514     {
3515       void *ctx = state;
3516       (yyval.expression) = new(ctx) ast_expression((yyvsp[-1].n), (yyvsp[0].expression), NULL, NULL);
3517       (yyval.expression)->set_location_range((yylsp[-1]), (yylsp[0]));
3518    }
3519 #line 3520 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3520     break;
3521 
3522   case 60:
3523 #line 616 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3524     { (yyval.n) = ast_plus; }
3525 #line 3526 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3526     break;
3527 
3528   case 61:
3529 #line 617 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3530     { (yyval.n) = ast_neg; }
3531 #line 3532 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3532     break;
3533 
3534   case 62:
3535 #line 618 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3536     { (yyval.n) = ast_logic_not; }
3537 #line 3538 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3538     break;
3539 
3540   case 63:
3541 #line 619 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3542     { (yyval.n) = ast_bit_not; }
3543 #line 3544 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3544     break;
3545 
3546   case 65:
3547 #line 625 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3548     {
3549       void *ctx = state;
3550       (yyval.expression) = new(ctx) ast_expression_bin(ast_mul, (yyvsp[-2].expression), (yyvsp[0].expression));
3551       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3552    }
3553 #line 3554 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3554     break;
3555 
3556   case 66:
3557 #line 631 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3558     {
3559       void *ctx = state;
3560       (yyval.expression) = new(ctx) ast_expression_bin(ast_div, (yyvsp[-2].expression), (yyvsp[0].expression));
3561       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3562    }
3563 #line 3564 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3564     break;
3565 
3566   case 67:
3567 #line 637 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3568     {
3569       void *ctx = state;
3570       (yyval.expression) = new(ctx) ast_expression_bin(ast_mod, (yyvsp[-2].expression), (yyvsp[0].expression));
3571       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3572    }
3573 #line 3574 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3574     break;
3575 
3576   case 69:
3577 #line 647 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3578     {
3579       void *ctx = state;
3580       (yyval.expression) = new(ctx) ast_expression_bin(ast_add, (yyvsp[-2].expression), (yyvsp[0].expression));
3581       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3582    }
3583 #line 3584 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3584     break;
3585 
3586   case 70:
3587 #line 653 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3588     {
3589       void *ctx = state;
3590       (yyval.expression) = new(ctx) ast_expression_bin(ast_sub, (yyvsp[-2].expression), (yyvsp[0].expression));
3591       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3592    }
3593 #line 3594 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3594     break;
3595 
3596   case 72:
3597 #line 663 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3598     {
3599       void *ctx = state;
3600       (yyval.expression) = new(ctx) ast_expression_bin(ast_lshift, (yyvsp[-2].expression), (yyvsp[0].expression));
3601       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3602    }
3603 #line 3604 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3604     break;
3605 
3606   case 73:
3607 #line 669 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3608     {
3609       void *ctx = state;
3610       (yyval.expression) = new(ctx) ast_expression_bin(ast_rshift, (yyvsp[-2].expression), (yyvsp[0].expression));
3611       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3612    }
3613 #line 3614 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3614     break;
3615 
3616   case 75:
3617 #line 679 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3618     {
3619       void *ctx = state;
3620       (yyval.expression) = new(ctx) ast_expression_bin(ast_less, (yyvsp[-2].expression), (yyvsp[0].expression));
3621       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3622    }
3623 #line 3624 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3624     break;
3625 
3626   case 76:
3627 #line 685 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3628     {
3629       void *ctx = state;
3630       (yyval.expression) = new(ctx) ast_expression_bin(ast_greater, (yyvsp[-2].expression), (yyvsp[0].expression));
3631       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3632    }
3633 #line 3634 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3634     break;
3635 
3636   case 77:
3637 #line 691 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3638     {
3639       void *ctx = state;
3640       (yyval.expression) = new(ctx) ast_expression_bin(ast_lequal, (yyvsp[-2].expression), (yyvsp[0].expression));
3641       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3642    }
3643 #line 3644 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3644     break;
3645 
3646   case 78:
3647 #line 697 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3648     {
3649       void *ctx = state;
3650       (yyval.expression) = new(ctx) ast_expression_bin(ast_gequal, (yyvsp[-2].expression), (yyvsp[0].expression));
3651       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3652    }
3653 #line 3654 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3654     break;
3655 
3656   case 80:
3657 #line 707 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3658     {
3659       void *ctx = state;
3660       (yyval.expression) = new(ctx) ast_expression_bin(ast_equal, (yyvsp[-2].expression), (yyvsp[0].expression));
3661       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3662    }
3663 #line 3664 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3664     break;
3665 
3666   case 81:
3667 #line 713 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3668     {
3669       void *ctx = state;
3670       (yyval.expression) = new(ctx) ast_expression_bin(ast_nequal, (yyvsp[-2].expression), (yyvsp[0].expression));
3671       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3672    }
3673 #line 3674 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3674     break;
3675 
3676   case 83:
3677 #line 723 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3678     {
3679       void *ctx = state;
3680       (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_and, (yyvsp[-2].expression), (yyvsp[0].expression));
3681       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3682    }
3683 #line 3684 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3684     break;
3685 
3686   case 85:
3687 #line 733 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3688     {
3689       void *ctx = state;
3690       (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_xor, (yyvsp[-2].expression), (yyvsp[0].expression));
3691       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3692    }
3693 #line 3694 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3694     break;
3695 
3696   case 87:
3697 #line 743 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3698     {
3699       void *ctx = state;
3700       (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[-2].expression), (yyvsp[0].expression));
3701       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3702    }
3703 #line 3704 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3704     break;
3705 
3706   case 89:
3707 #line 753 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3708     {
3709       void *ctx = state;
3710       (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_and, (yyvsp[-2].expression), (yyvsp[0].expression));
3711       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3712    }
3713 #line 3714 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3714     break;
3715 
3716   case 91:
3717 #line 763 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3718     {
3719       void *ctx = state;
3720       (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_xor, (yyvsp[-2].expression), (yyvsp[0].expression));
3721       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3722    }
3723 #line 3724 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3724     break;
3725 
3726   case 93:
3727 #line 773 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3728     {
3729       void *ctx = state;
3730       (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_or, (yyvsp[-2].expression), (yyvsp[0].expression));
3731       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3732    }
3733 #line 3734 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3734     break;
3735 
3736   case 95:
3737 #line 783 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3738     {
3739       void *ctx = state;
3740       (yyval.expression) = new(ctx) ast_expression(ast_conditional, (yyvsp[-4].expression), (yyvsp[-2].expression), (yyvsp[0].expression));
3741       (yyval.expression)->set_location_range((yylsp[-4]), (yylsp[0]));
3742    }
3743 #line 3744 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3744     break;
3745 
3746   case 97:
3747 #line 793 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3748     {
3749       void *ctx = state;
3750       (yyval.expression) = new(ctx) ast_expression((yyvsp[-1].n), (yyvsp[-2].expression), (yyvsp[0].expression), NULL);
3751       (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3752    }
3753 #line 3754 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3754     break;
3755 
3756   case 98:
3757 #line 801 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3758     { (yyval.n) = ast_assign; }
3759 #line 3760 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3760     break;
3761 
3762   case 99:
3763 #line 802 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3764     { (yyval.n) = ast_mul_assign; }
3765 #line 3766 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3766     break;
3767 
3768   case 100:
3769 #line 803 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3770     { (yyval.n) = ast_div_assign; }
3771 #line 3772 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3772     break;
3773 
3774   case 101:
3775 #line 804 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3776     { (yyval.n) = ast_mod_assign; }
3777 #line 3778 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3778     break;
3779 
3780   case 102:
3781 #line 805 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3782     { (yyval.n) = ast_add_assign; }
3783 #line 3784 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3784     break;
3785 
3786   case 103:
3787 #line 806 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3788     { (yyval.n) = ast_sub_assign; }
3789 #line 3790 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3790     break;
3791 
3792   case 104:
3793 #line 807 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3794     { (yyval.n) = ast_ls_assign; }
3795 #line 3796 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3796     break;
3797 
3798   case 105:
3799 #line 808 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3800     { (yyval.n) = ast_rs_assign; }
3801 #line 3802 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3802     break;
3803 
3804   case 106:
3805 #line 809 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3806     { (yyval.n) = ast_and_assign; }
3807 #line 3808 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3808     break;
3809 
3810   case 107:
3811 #line 810 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3812     { (yyval.n) = ast_xor_assign; }
3813 #line 3814 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3814     break;
3815 
3816   case 108:
3817 #line 811 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3818     { (yyval.n) = ast_or_assign; }
3819 #line 3820 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3820     break;
3821 
3822   case 109:
3823 #line 816 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3824     {
3825       (yyval.expression) = (yyvsp[0].expression);
3826    }
3827 #line 3828 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3828     break;
3829 
3830   case 110:
3831 #line 820 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3832     {
3833       void *ctx = state;
3834       if ((yyvsp[-2].expression)->oper != ast_sequence) {
3835          (yyval.expression) = new(ctx) ast_expression(ast_sequence, NULL, NULL, NULL);
3836          (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
3837          (yyval.expression)->expressions.push_tail(& (yyvsp[-2].expression)->link);
3838       } else {
3839          (yyval.expression) = (yyvsp[-2].expression);
3840       }
3841 
3842       (yyval.expression)->expressions.push_tail(& (yyvsp[0].expression)->link);
3843    }
3844 #line 3845 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3845     break;
3846 
3847   case 112:
3848 #line 840 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3849     {
3850       state->symbols->pop_scope();
3851       (yyval.node) = (yyvsp[-1].function);
3852    }
3853 #line 3854 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3854     break;
3855 
3856   case 113:
3857 #line 845 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3858     {
3859       (yyval.node) = (yyvsp[-1].declarator_list);
3860    }
3861 #line 3862 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3862     break;
3863 
3864   case 114:
3865 #line 849 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3866     {
3867       (yyvsp[-1].type_specifier)->default_precision = (yyvsp[-2].n);
3868       (yyval.node) = (yyvsp[-1].type_specifier);
3869    }
3870 #line 3871 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3871     break;
3872 
3873   case 115:
3874 #line 854 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3875     {
3876       (yyval.node) = (yyvsp[0].node);
3877    }
3878 #line 3879 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3879     break;
3880 
3881   case 119:
3882 #line 870 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3883     {
3884       (yyval.function) = (yyvsp[-1].function);
3885       (yyval.function)->parameters.push_tail(& (yyvsp[0].parameter_declarator)->link);
3886    }
3887 #line 3888 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3888     break;
3889 
3890   case 120:
3891 #line 875 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3892     {
3893       (yyval.function) = (yyvsp[-2].function);
3894       (yyval.function)->parameters.push_tail(& (yyvsp[0].parameter_declarator)->link);
3895    }
3896 #line 3897 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3897     break;
3898 
3899   case 121:
3900 #line 883 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3901     {
3902       void *ctx = state;
3903       (yyval.function) = new(ctx) ast_function();
3904       (yyval.function)->set_location((yylsp[-1]));
3905       (yyval.function)->return_type = (yyvsp[-2].fully_specified_type);
3906       (yyval.function)->identifier = (yyvsp[-1].identifier);
3907 
3908       state->symbols->add_function(new(state) ir_function((yyvsp[-1].identifier)));
3909       state->symbols->push_scope();
3910    }
3911 #line 3912 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3912     break;
3913 
3914   case 122:
3915 #line 897 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3916     {
3917       void *ctx = state;
3918       (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
3919       (yyval.parameter_declarator)->set_location_range((yylsp[-1]), (yylsp[0]));
3920       (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
3921       (yyval.parameter_declarator)->type->set_location((yylsp[-1]));
3922       (yyval.parameter_declarator)->type->specifier = (yyvsp[-1].type_specifier);
3923       (yyval.parameter_declarator)->identifier = (yyvsp[0].identifier);
3924    }
3925 #line 3926 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3926     break;
3927 
3928   case 123:
3929 #line 907 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3930     {
3931       void *ctx = state;
3932       (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
3933       (yyval.parameter_declarator)->set_location_range((yylsp[-2]), (yylsp[0]));
3934       (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
3935       (yyval.parameter_declarator)->type->set_location((yylsp[-2]));
3936       (yyval.parameter_declarator)->type->specifier = (yyvsp[-2].type_specifier);
3937       (yyval.parameter_declarator)->identifier = (yyvsp[-1].identifier);
3938       (yyval.parameter_declarator)->array_specifier = (yyvsp[0].array_specifier);
3939    }
3940 #line 3941 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3941     break;
3942 
3943   case 124:
3944 #line 921 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3945     {
3946       (yyval.parameter_declarator) = (yyvsp[0].parameter_declarator);
3947       (yyval.parameter_declarator)->type->qualifier = (yyvsp[-1].type_qualifier);
3948    }
3949 #line 3950 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3950     break;
3951 
3952   case 125:
3953 #line 926 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3954     {
3955       void *ctx = state;
3956       (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
3957       (yyval.parameter_declarator)->set_location((yylsp[0]));
3958       (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
3959       (yyval.parameter_declarator)->type->set_location_range((yylsp[-1]), (yylsp[0]));
3960       (yyval.parameter_declarator)->type->qualifier = (yyvsp[-1].type_qualifier);
3961       (yyval.parameter_declarator)->type->specifier = (yyvsp[0].type_specifier);
3962    }
3963 #line 3964 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3964     break;
3965 
3966   case 126:
3967 #line 939 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3968     {
3969       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
3970 	  (yyval.type_qualifier).precision = ast_precision_none;
3971    }
3972 #line 3973 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3973     break;
3974 
3975   case 127:
3976 #line 944 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3977     {
3978       if ((yyvsp[0].type_qualifier).flags.q.constant)
3979          _mesa_glsl_error(&(yylsp[-1]), state, "duplicate const qualifier");
3980 
3981       (yyval.type_qualifier) = (yyvsp[0].type_qualifier);
3982       (yyval.type_qualifier).flags.q.constant = 1;
3983    }
3984 #line 3985 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3985     break;
3986 
3987   case 128:
3988 #line 952 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
3989     {
3990       if ((yyvsp[0].type_qualifier).flags.q.precise)
3991          _mesa_glsl_error(&(yylsp[-1]), state, "duplicate precise qualifier");
3992 
3993       (yyval.type_qualifier) = (yyvsp[0].type_qualifier);
3994       (yyval.type_qualifier).flags.q.precise = 1;
3995    }
3996 #line 3997 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
3997     break;
3998 
3999   case 129:
4000 #line 960 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4001     {
4002       if (((yyvsp[-1].type_qualifier).flags.q.in || (yyvsp[-1].type_qualifier).flags.q.out) && ((yyvsp[0].type_qualifier).flags.q.in || (yyvsp[0].type_qualifier).flags.q.out))
4003          _mesa_glsl_error(&(yylsp[-1]), state, "duplicate in/out/inout qualifier");
4004 
4005       if (!state->ARB_shading_language_420pack_enable && (yyvsp[0].type_qualifier).flags.q.constant)
4006          _mesa_glsl_error(&(yylsp[-1]), state, "in/out/inout must come after const "
4007                                       "or precise");
4008 
4009       (yyval.type_qualifier) = (yyvsp[-1].type_qualifier);
4010       (yyval.type_qualifier).merge_qualifier(&(yylsp[-1]), state, (yyvsp[0].type_qualifier));
4011    }
4012 #line 4013 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4013     break;
4014 
4015   case 130:
4016 #line 972 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4017     {
4018       if ((yyvsp[0].type_qualifier).precision != ast_precision_none)
4019          _mesa_glsl_error(&(yylsp[-1]), state, "duplicate precision qualifier");
4020 
4021       if (!state->ARB_shading_language_420pack_enable && (yyvsp[0].type_qualifier).flags.i != 0)
4022          _mesa_glsl_error(&(yylsp[-1]), state, "precision qualifiers must come last");
4023 
4024       (yyval.type_qualifier) = (yyvsp[0].type_qualifier);
4025       (yyval.type_qualifier).precision = (yyvsp[-1].n);
4026    }
4027 #line 4028 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4028     break;
4029 
4030   case 131:
4031 #line 985 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4032     {
4033       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4034 	  (yyval.type_qualifier).precision = ast_precision_none;
4035       (yyval.type_qualifier).flags.q.in = 1;
4036    }
4037 #line 4038 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4038     break;
4039 
4040   case 132:
4041 #line 991 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4042     {
4043       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4044 	  (yyval.type_qualifier).precision = ast_precision_none;
4045       (yyval.type_qualifier).flags.q.out = 1;
4046    }
4047 #line 4048 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4048     break;
4049 
4050   case 133:
4051 #line 997 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4052     {
4053       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4054 	  (yyval.type_qualifier).precision = ast_precision_none;
4055       (yyval.type_qualifier).flags.q.in = 1;
4056       (yyval.type_qualifier).flags.q.out = 1;
4057    }
4058 #line 4059 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4059     break;
4060 
4061   case 136:
4062 #line 1013 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4063     {
4064       void *ctx = state;
4065       ast_declaration *decl = new(ctx) ast_declaration((yyvsp[0].identifier), NULL, NULL);
4066       decl->set_location((yylsp[0]));
4067 
4068       (yyval.declarator_list) = (yyvsp[-2].declarator_list);
4069       (yyval.declarator_list)->declarations.push_tail(&decl->link);
4070       state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[0].identifier), ir_var_auto, glsl_precision_undefined));
4071    }
4072 #line 4073 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4073     break;
4074 
4075   case 137:
4076 #line 1023 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4077     {
4078       void *ctx = state;
4079       ast_declaration *decl = new(ctx) ast_declaration((yyvsp[-1].identifier), (yyvsp[0].array_specifier), NULL);
4080       decl->set_location_range((yylsp[-1]), (yylsp[0]));
4081 
4082       (yyval.declarator_list) = (yyvsp[-3].declarator_list);
4083       (yyval.declarator_list)->declarations.push_tail(&decl->link);
4084       state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[-1].identifier), ir_var_auto, glsl_precision_undefined));
4085    }
4086 #line 4087 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4087     break;
4088 
4089   case 138:
4090 #line 1033 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4091     {
4092       void *ctx = state;
4093       ast_declaration *decl = new(ctx) ast_declaration((yyvsp[-3].identifier), (yyvsp[-2].array_specifier), (yyvsp[0].expression));
4094       decl->set_location_range((yylsp[-3]), (yylsp[-2]));
4095 
4096       (yyval.declarator_list) = (yyvsp[-5].declarator_list);
4097       (yyval.declarator_list)->declarations.push_tail(&decl->link);
4098       state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[-3].identifier), ir_var_auto, glsl_precision_undefined));
4099    }
4100 #line 4101 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4101     break;
4102 
4103   case 139:
4104 #line 1043 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4105     {
4106       void *ctx = state;
4107       ast_declaration *decl = new(ctx) ast_declaration((yyvsp[-2].identifier), NULL, (yyvsp[0].expression));
4108       decl->set_location((yylsp[-2]));
4109 
4110       (yyval.declarator_list) = (yyvsp[-4].declarator_list);
4111       (yyval.declarator_list)->declarations.push_tail(&decl->link);
4112       state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[-2].identifier), ir_var_auto, glsl_precision_undefined));
4113    }
4114 #line 4115 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4115     break;
4116 
4117   case 140:
4118 #line 1057 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4119     {
4120       void *ctx = state;
4121       /* Empty declaration list is valid. */
4122       (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[0].fully_specified_type));
4123       (yyval.declarator_list)->set_location((yylsp[0]));
4124    }
4125 #line 4126 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4126     break;
4127 
4128   case 141:
4129 #line 1064 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4130     {
4131       void *ctx = state;
4132       ast_declaration *decl = new(ctx) ast_declaration((yyvsp[0].identifier), NULL, NULL);
4133       decl->set_location((yylsp[0]));
4134 
4135       (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[-1].fully_specified_type));
4136       (yyval.declarator_list)->set_location_range((yylsp[-1]), (yylsp[0]));
4137       (yyval.declarator_list)->declarations.push_tail(&decl->link);
4138    }
4139 #line 4140 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4140     break;
4141 
4142   case 142:
4143 #line 1074 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4144     {
4145       void *ctx = state;
4146       ast_declaration *decl = new(ctx) ast_declaration((yyvsp[-1].identifier), (yyvsp[0].array_specifier), NULL);
4147       decl->set_location_range((yylsp[-1]), (yylsp[0]));
4148 
4149       (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[-2].fully_specified_type));
4150       (yyval.declarator_list)->set_location_range((yylsp[-2]), (yylsp[0]));
4151       (yyval.declarator_list)->declarations.push_tail(&decl->link);
4152    }
4153 #line 4154 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4154     break;
4155 
4156   case 143:
4157 #line 1084 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4158     {
4159       void *ctx = state;
4160       ast_declaration *decl = new(ctx) ast_declaration((yyvsp[-3].identifier), (yyvsp[-2].array_specifier), (yyvsp[0].expression));
4161       decl->set_location_range((yylsp[-3]), (yylsp[-2]));
4162 
4163       (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[-4].fully_specified_type));
4164       (yyval.declarator_list)->set_location_range((yylsp[-4]), (yylsp[-2]));
4165       (yyval.declarator_list)->declarations.push_tail(&decl->link);
4166    }
4167 #line 4168 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4168     break;
4169 
4170   case 144:
4171 #line 1094 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4172     {
4173       void *ctx = state;
4174       ast_declaration *decl = new(ctx) ast_declaration((yyvsp[-2].identifier), NULL, (yyvsp[0].expression));
4175       decl->set_location((yylsp[-2]));
4176 
4177       (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[-3].fully_specified_type));
4178       (yyval.declarator_list)->set_location_range((yylsp[-3]), (yylsp[-2]));
4179       (yyval.declarator_list)->declarations.push_tail(&decl->link);
4180    }
4181 #line 4182 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4182     break;
4183 
4184   case 145:
4185 #line 1104 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4186     {
4187       void *ctx = state;
4188       ast_declaration *decl = new(ctx) ast_declaration((yyvsp[0].identifier), NULL, NULL);
4189       decl->set_location((yylsp[0]));
4190 
4191       (yyval.declarator_list) = new(ctx) ast_declarator_list(NULL);
4192       (yyval.declarator_list)->set_location_range((yylsp[-1]), (yylsp[0]));
4193       (yyval.declarator_list)->invariant = true;
4194 
4195       (yyval.declarator_list)->declarations.push_tail(&decl->link);
4196    }
4197 #line 4198 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4198     break;
4199 
4200   case 146:
4201 #line 1116 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4202     {
4203       void *ctx = state;
4204       ast_declaration *decl = new(ctx) ast_declaration((yyvsp[0].identifier), NULL, NULL);
4205       decl->set_location((yylsp[0]));
4206 
4207       (yyval.declarator_list) = new(ctx) ast_declarator_list(NULL);
4208       (yyval.declarator_list)->set_location_range((yylsp[-1]), (yylsp[0]));
4209       (yyval.declarator_list)->precise = true;
4210 
4211       (yyval.declarator_list)->declarations.push_tail(&decl->link);
4212    }
4213 #line 4214 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4214     break;
4215 
4216   case 147:
4217 #line 1131 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4218     {
4219       void *ctx = state;
4220       (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
4221       (yyval.fully_specified_type)->set_location((yylsp[0]));
4222       (yyval.fully_specified_type)->specifier = (yyvsp[0].type_specifier);
4223    }
4224 #line 4225 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4225     break;
4226 
4227   case 148:
4228 #line 1138 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4229     {
4230       void *ctx = state;
4231       (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
4232       (yyval.fully_specified_type)->set_location_range((yylsp[-1]), (yylsp[0]));
4233       (yyval.fully_specified_type)->qualifier = (yyvsp[-1].type_qualifier);
4234       (yyval.fully_specified_type)->specifier = (yyvsp[0].type_specifier);
4235    }
4236 #line 4237 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4237     break;
4238 
4239   case 149:
4240 #line 1149 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4241     {
4242       (yyval.type_qualifier) = (yyvsp[-1].type_qualifier);
4243    }
4244 #line 4245 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4245     break;
4246 
4247   case 151:
4248 #line 1157 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4249     {
4250       (yyval.type_qualifier) = (yyvsp[-2].type_qualifier);
4251       if (!(yyval.type_qualifier).merge_qualifier(& (yylsp[0]), state, (yyvsp[0].type_qualifier))) {
4252          YYERROR;
4253       }
4254    }
4255 #line 4256 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4256     break;
4257 
4258   case 152:
4259 #line 1166 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4260     { (yyval.n) = (yyvsp[0].n); }
4261 #line 4262 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4262     break;
4263 
4264   case 153:
4265 #line 1167 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4266     { (yyval.n) = (yyvsp[0].n); }
4267 #line 4268 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4268     break;
4269 
4270   case 154:
4271 #line 1172 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4272     {
4273       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4274 	  (yyval.type_qualifier).precision = ast_precision_none;
4275 
4276       /* Layout qualifiers for ARB_fragment_coord_conventions. */
4277       if (!(yyval.type_qualifier).flags.i && (state->ARB_fragment_coord_conventions_enable ||
4278                           state->is_version(150, 0))) {
4279          if (match_layout_qualifier((yyvsp[0].identifier), "origin_upper_left", state) == 0) {
4280             (yyval.type_qualifier).flags.q.origin_upper_left = 1;
4281          } else if (match_layout_qualifier((yyvsp[0].identifier), "pixel_center_integer",
4282                                            state) == 0) {
4283             (yyval.type_qualifier).flags.q.pixel_center_integer = 1;
4284          }
4285 
4286          if ((yyval.type_qualifier).flags.i && state->ARB_fragment_coord_conventions_warn) {
4287             _mesa_glsl_warning(& (yylsp[0]), state,
4288                                "GL_ARB_fragment_coord_conventions layout "
4289                                "identifier `%s' used", (yyvsp[0].identifier));
4290          }
4291       }
4292 
4293       /* Layout qualifiers for AMD/ARB_conservative_depth. */
4294       if (!(yyval.type_qualifier).flags.i &&
4295           (state->AMD_conservative_depth_enable ||
4296            state->ARB_conservative_depth_enable)) {
4297          if (match_layout_qualifier((yyvsp[0].identifier), "depth_any", state) == 0) {
4298             (yyval.type_qualifier).flags.q.depth_any = 1;
4299          } else if (match_layout_qualifier((yyvsp[0].identifier), "depth_greater", state) == 0) {
4300             (yyval.type_qualifier).flags.q.depth_greater = 1;
4301          } else if (match_layout_qualifier((yyvsp[0].identifier), "depth_less", state) == 0) {
4302             (yyval.type_qualifier).flags.q.depth_less = 1;
4303          } else if (match_layout_qualifier((yyvsp[0].identifier), "depth_unchanged",
4304                                            state) == 0) {
4305             (yyval.type_qualifier).flags.q.depth_unchanged = 1;
4306          }
4307 
4308          if ((yyval.type_qualifier).flags.i && state->AMD_conservative_depth_warn) {
4309             _mesa_glsl_warning(& (yylsp[0]), state,
4310                                "GL_AMD_conservative_depth "
4311                                "layout qualifier `%s' is used", (yyvsp[0].identifier));
4312          }
4313          if ((yyval.type_qualifier).flags.i && state->ARB_conservative_depth_warn) {
4314             _mesa_glsl_warning(& (yylsp[0]), state,
4315                                "GL_ARB_conservative_depth "
4316                                "layout qualifier `%s' is used", (yyvsp[0].identifier));
4317          }
4318       }
4319 
4320       /* See also interface_block_layout_qualifier. */
4321       if (!(yyval.type_qualifier).flags.i && state->has_uniform_buffer_objects()) {
4322          if (match_layout_qualifier((yyvsp[0].identifier), "std140", state) == 0) {
4323             (yyval.type_qualifier).flags.q.std140 = 1;
4324          } else if (match_layout_qualifier((yyvsp[0].identifier), "shared", state) == 0) {
4325             (yyval.type_qualifier).flags.q.shared = 1;
4326          } else if (match_layout_qualifier((yyvsp[0].identifier), "column_major", state) == 0) {
4327             (yyval.type_qualifier).flags.q.column_major = 1;
4328          /* "row_major" is a reserved word in GLSL 1.30+. Its token is parsed
4329           * below in the interface_block_layout_qualifier rule.
4330           *
4331           * It is not a reserved word in GLSL ES 3.00, so it's handled here as
4332           * an identifier.
4333           *
4334           * Also, this takes care of alternate capitalizations of
4335           * "row_major" (which is necessary because layout qualifiers
4336           * are case-insensitive in desktop GLSL).
4337           */
4338          } else if (match_layout_qualifier((yyvsp[0].identifier), "row_major", state) == 0) {
4339             (yyval.type_qualifier).flags.q.row_major = 1;
4340          /* "packed" is a reserved word in GLSL, and its token is
4341           * parsed below in the interface_block_layout_qualifier rule.
4342           * However, we must take care of alternate capitalizations of
4343           * "packed", because layout qualifiers are case-insensitive
4344           * in desktop GLSL.
4345           */
4346          } else if (match_layout_qualifier((yyvsp[0].identifier), "packed", state) == 0) {
4347            (yyval.type_qualifier).flags.q.packed = 1;
4348          }
4349 
4350          if ((yyval.type_qualifier).flags.i && state->ARB_uniform_buffer_object_warn) {
4351             _mesa_glsl_warning(& (yylsp[0]), state,
4352                                "#version 140 / GL_ARB_uniform_buffer_object "
4353                                "layout qualifier `%s' is used", (yyvsp[0].identifier));
4354          }
4355       }
4356 
4357       /* Layout qualifiers for GLSL 1.50 geometry shaders. */
4358       if (!(yyval.type_qualifier).flags.i) {
4359          static const struct {
4360             const char *s;
4361             GLenum e;
4362          } map[] = {
4363                  { "points", GL_POINTS },
4364                  { "lines", GL_LINES },
4365                  { "lines_adjacency", GL_LINES_ADJACENCY },
4366                  { "line_strip", GL_LINE_STRIP },
4367                  { "triangles", GL_TRIANGLES },
4368                  { "triangles_adjacency", GL_TRIANGLES_ADJACENCY },
4369                  { "triangle_strip", GL_TRIANGLE_STRIP },
4370          };
4371          for (unsigned i = 0; i < Elements(map); i++) {
4372             if (match_layout_qualifier((yyvsp[0].identifier), map[i].s, state) == 0) {
4373                (yyval.type_qualifier).flags.q.prim_type = 1;
4374                (yyval.type_qualifier).prim_type = map[i].e;
4375                break;
4376             }
4377          }
4378 
4379          if ((yyval.type_qualifier).flags.i && !state->is_version(150, 0)) {
4380             _mesa_glsl_error(& (yylsp[0]), state, "#version 150 layout "
4381                              "qualifier `%s' used", (yyvsp[0].identifier));
4382          }
4383       }
4384 
4385       /* Layout qualifiers for ARB_shader_image_load_store. */
4386       if (state->ARB_shader_image_load_store_enable ||
4387           state->is_version(420, 0)) {
4388          if (!(yyval.type_qualifier).flags.i) {
4389             static const struct {
4390                const char *name;
4391                GLenum format;
4392                glsl_base_type base_type;
4393             } map[] = {
4394                { "rgba32f", GL_RGBA32F, GLSL_TYPE_FLOAT },
4395                { "rgba16f", GL_RGBA16F, GLSL_TYPE_FLOAT },
4396                { "rg32f", GL_RG32F, GLSL_TYPE_FLOAT },
4397                { "rg16f", GL_RG16F, GLSL_TYPE_FLOAT },
4398                { "r11f_g11f_b10f", GL_R11F_G11F_B10F, GLSL_TYPE_FLOAT },
4399                { "r32f", GL_R32F, GLSL_TYPE_FLOAT },
4400                { "r16f", GL_R16F, GLSL_TYPE_FLOAT },
4401                { "rgba32ui", GL_RGBA32UI, GLSL_TYPE_UINT },
4402                { "rgba16ui", GL_RGBA16UI, GLSL_TYPE_UINT },
4403                { "rgb10_a2ui", GL_RGB10_A2UI, GLSL_TYPE_UINT },
4404                { "rgba8ui", GL_RGBA8UI, GLSL_TYPE_UINT },
4405                { "rg32ui", GL_RG32UI, GLSL_TYPE_UINT },
4406                { "rg16ui", GL_RG16UI, GLSL_TYPE_UINT },
4407                { "rg8ui", GL_RG8UI, GLSL_TYPE_UINT },
4408                { "r32ui", GL_R32UI, GLSL_TYPE_UINT },
4409                { "r16ui", GL_R16UI, GLSL_TYPE_UINT },
4410                { "r8ui", GL_R8UI, GLSL_TYPE_UINT },
4411                { "rgba32i", GL_RGBA32I, GLSL_TYPE_INT },
4412                { "rgba16i", GL_RGBA16I, GLSL_TYPE_INT },
4413                { "rgba8i", GL_RGBA8I, GLSL_TYPE_INT },
4414                { "rg32i", GL_RG32I, GLSL_TYPE_INT },
4415                { "rg16i", GL_RG16I, GLSL_TYPE_INT },
4416                { "rg8i", GL_RG8I, GLSL_TYPE_INT },
4417                { "r32i", GL_R32I, GLSL_TYPE_INT },
4418                { "r16i", GL_R16I, GLSL_TYPE_INT },
4419                { "r8i", GL_R8I, GLSL_TYPE_INT },
4420                { "rgba16", GL_RGBA16, GLSL_TYPE_FLOAT },
4421                { "rgb10_a2", GL_RGB10_A2, GLSL_TYPE_FLOAT },
4422                { "rgba8", GL_RGBA8, GLSL_TYPE_FLOAT },
4423                { "rg16", GL_RG16, GLSL_TYPE_FLOAT },
4424                { "rg8", GL_RG8, GLSL_TYPE_FLOAT },
4425                { "r16", GL_R16, GLSL_TYPE_FLOAT },
4426                { "r8", GL_R8, GLSL_TYPE_FLOAT },
4427                { "rgba16_snorm", GL_RGBA16_SNORM, GLSL_TYPE_FLOAT },
4428                { "rgba8_snorm", GL_RGBA8_SNORM, GLSL_TYPE_FLOAT },
4429                { "rg16_snorm", GL_RG16_SNORM, GLSL_TYPE_FLOAT },
4430                { "rg8_snorm", GL_RG8_SNORM, GLSL_TYPE_FLOAT },
4431                { "r16_snorm", GL_R16_SNORM, GLSL_TYPE_FLOAT },
4432                { "r8_snorm", GL_R8_SNORM, GLSL_TYPE_FLOAT }
4433             };
4434 
4435             for (unsigned i = 0; i < Elements(map); i++) {
4436                if (match_layout_qualifier((yyvsp[0].identifier), map[i].name, state) == 0) {
4437                   (yyval.type_qualifier).flags.q.explicit_image_format = 1;
4438                   (yyval.type_qualifier).image_format = map[i].format;
4439                   (yyval.type_qualifier).image_base_type = map[i].base_type;
4440                   break;
4441                }
4442             }
4443          }
4444 
4445          if (!(yyval.type_qualifier).flags.i &&
4446              match_layout_qualifier((yyvsp[0].identifier), "early_fragment_tests", state) == 0) {
4447             (yyval.type_qualifier).flags.q.early_fragment_tests = 1;
4448          }
4449       }
4450 
4451       if (!(yyval.type_qualifier).flags.i) {
4452          _mesa_glsl_error(& (yylsp[0]), state, "unrecognized layout identifier "
4453                           "`%s'", (yyvsp[0].identifier));
4454          YYERROR;
4455       }
4456    }
4457 #line 4458 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4458     break;
4459 
4460   case 155:
4461 #line 1358 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4462     {
4463       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4464 	  (yyval.type_qualifier).precision = ast_precision_none;
4465 
4466       if (match_layout_qualifier("location", (yyvsp[-2].identifier), state) == 0) {
4467          (yyval.type_qualifier).flags.q.explicit_location = 1;
4468 
4469          if ((yyval.type_qualifier).flags.q.attribute == 1 &&
4470              state->ARB_explicit_attrib_location_warn) {
4471             _mesa_glsl_warning(& (yylsp[-2]), state,
4472                                "GL_ARB_explicit_attrib_location layout "
4473                                "identifier `%s' used", (yyvsp[-2].identifier));
4474          }
4475 
4476          if ((yyvsp[0].n) >= 0) {
4477             (yyval.type_qualifier).location = (yyvsp[0].n);
4478          } else {
4479              _mesa_glsl_error(& (yylsp[0]), state, "invalid location %d specified", (yyvsp[0].n));
4480              YYERROR;
4481          }
4482       }
4483 
4484       if (match_layout_qualifier("index", (yyvsp[-2].identifier), state) == 0) {
4485          (yyval.type_qualifier).flags.q.explicit_index = 1;
4486 
4487          if ((yyvsp[0].n) >= 0) {
4488             (yyval.type_qualifier).index = (yyvsp[0].n);
4489          } else {
4490             _mesa_glsl_error(& (yylsp[0]), state, "invalid index %d specified", (yyvsp[0].n));
4491             YYERROR;
4492          }
4493       }
4494 
4495       if ((state->ARB_shading_language_420pack_enable ||
4496            state->ARB_shader_atomic_counters_enable) &&
4497           match_layout_qualifier("binding", (yyvsp[-2].identifier), state) == 0) {
4498          (yyval.type_qualifier).flags.q.explicit_binding = 1;
4499          (yyval.type_qualifier).binding = (yyvsp[0].n);
4500       }
4501 
4502       if (state->ARB_shader_atomic_counters_enable &&
4503           match_layout_qualifier("offset", (yyvsp[-2].identifier), state) == 0) {
4504          (yyval.type_qualifier).flags.q.explicit_offset = 1;
4505          (yyval.type_qualifier).offset = (yyvsp[0].n);
4506       }
4507 
4508       if (match_layout_qualifier("max_vertices", (yyvsp[-2].identifier), state) == 0) {
4509          (yyval.type_qualifier).flags.q.max_vertices = 1;
4510 
4511          if ((yyvsp[0].n) < 0) {
4512             _mesa_glsl_error(& (yylsp[0]), state,
4513                              "invalid max_vertices %d specified", (yyvsp[0].n));
4514             YYERROR;
4515          } else {
4516             (yyval.type_qualifier).max_vertices = (yyvsp[0].n);
4517             if (!state->is_version(150, 0)) {
4518                _mesa_glsl_error(& (yylsp[0]), state,
4519                                 "#version 150 max_vertices qualifier "
4520                                 "specified", (yyvsp[0].n));
4521             }
4522          }
4523       }
4524 
4525       if (state->stage == MESA_SHADER_GEOMETRY) {
4526          if (match_layout_qualifier("stream", (yyvsp[-2].identifier), state) == 0 &&
4527              state->check_explicit_attrib_stream_allowed(& (yylsp[0]))) {
4528             (yyval.type_qualifier).flags.q.stream = 1;
4529 
4530             if ((yyvsp[0].n) < 0) {
4531                _mesa_glsl_error(& (yylsp[0]), state,
4532                                 "invalid stream %d specified", (yyvsp[0].n));
4533                YYERROR;
4534             } else {
4535                (yyval.type_qualifier).flags.q.explicit_stream = 1;
4536                (yyval.type_qualifier).stream = (yyvsp[0].n);
4537             }
4538          }
4539       }
4540 
4541       static const char * const local_size_qualifiers[3] = {
4542          "local_size_x",
4543          "local_size_y",
4544          "local_size_z",
4545       };
4546       for (int i = 0; i < 3; i++) {
4547          if (match_layout_qualifier(local_size_qualifiers[i], (yyvsp[-2].identifier),
4548                                     state) == 0) {
4549             if ((yyvsp[0].n) <= 0) {
4550                _mesa_glsl_error(& (yylsp[0]), state,
4551                                 "invalid %s of %d specified",
4552                                 local_size_qualifiers[i], (yyvsp[0].n));
4553                YYERROR;
4554             } else if (!state->is_version(430, 0) &&
4555                        !state->ARB_compute_shader_enable) {
4556                _mesa_glsl_error(& (yylsp[0]), state,
4557                                 "%s qualifier requires GLSL 4.30 or "
4558                                 "ARB_compute_shader",
4559                                 local_size_qualifiers[i]);
4560                YYERROR;
4561             } else {
4562                (yyval.type_qualifier).flags.q.local_size |= (1 << i);
4563                (yyval.type_qualifier).local_size[i] = (yyvsp[0].n);
4564             }
4565             break;
4566          }
4567       }
4568 
4569       if (match_layout_qualifier("invocations", (yyvsp[-2].identifier), state) == 0) {
4570          (yyval.type_qualifier).flags.q.invocations = 1;
4571 
4572          if ((yyvsp[0].n) <= 0) {
4573             _mesa_glsl_error(& (yylsp[0]), state,
4574                              "invalid invocations %d specified", (yyvsp[0].n));
4575             YYERROR;
4576          } else if ((yyvsp[0].n) > MAX_GEOMETRY_SHADER_INVOCATIONS) {
4577             _mesa_glsl_error(& (yylsp[0]), state,
4578                              "invocations (%d) exceeds "
4579                              "GL_MAX_GEOMETRY_SHADER_INVOCATIONS", (yyvsp[0].n));
4580             YYERROR;
4581          } else {
4582             (yyval.type_qualifier).invocations = (yyvsp[0].n);
4583             if (!state->is_version(400, 0) &&
4584                 !state->ARB_gpu_shader5_enable) {
4585                _mesa_glsl_error(& (yylsp[0]), state,
4586                                 "GL_ARB_gpu_shader5 invocations "
4587                                 "qualifier specified", (yyvsp[0].n));
4588             }
4589          }
4590       }
4591 
4592       /* If the identifier didn't match any known layout identifiers,
4593        * emit an error.
4594        */
4595       if (!(yyval.type_qualifier).flags.i) {
4596          _mesa_glsl_error(& (yylsp[-2]), state, "unrecognized layout identifier "
4597                           "`%s'", (yyvsp[-2].identifier));
4598          YYERROR;
4599       }
4600    }
4601 #line 4602 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4602     break;
4603 
4604   case 156:
4605 #line 1498 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4606     {
4607       (yyval.type_qualifier) = (yyvsp[0].type_qualifier);
4608       /* Layout qualifiers for ARB_uniform_buffer_object. */
4609       if ((yyval.type_qualifier).flags.q.uniform && !state->has_uniform_buffer_objects()) {
4610          _mesa_glsl_error(& (yylsp[0]), state,
4611                           "#version 140 / GL_ARB_uniform_buffer_object "
4612                           "layout qualifier `%s' is used", (yyvsp[0].type_qualifier));
4613       } else if ((yyval.type_qualifier).flags.q.uniform && state->ARB_uniform_buffer_object_warn) {
4614          _mesa_glsl_warning(& (yylsp[0]), state,
4615                             "#version 140 / GL_ARB_uniform_buffer_object "
4616                             "layout qualifier `%s' is used", (yyvsp[0].type_qualifier));
4617       }
4618    }
4619 #line 4620 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4620     break;
4621 
4622   case 157:
4623 #line 1524 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4624     {
4625       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4626 	  (yyval.type_qualifier).precision = ast_precision_none;
4627       (yyval.type_qualifier).flags.q.row_major = 1;
4628    }
4629 #line 4630 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4630     break;
4631 
4632   case 158:
4633 #line 1530 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4634     {
4635       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4636 	  (yyval.type_qualifier).precision = ast_precision_none;
4637       (yyval.type_qualifier).flags.q.packed = 1;
4638    }
4639 #line 4640 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4640     break;
4641 
4642   case 159:
4643 #line 1539 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4644     {
4645       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4646 	  (yyval.type_qualifier).precision = ast_precision_none;
4647       (yyval.type_qualifier).flags.q.smooth = 1;
4648    }
4649 #line 4650 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4650     break;
4651 
4652   case 160:
4653 #line 1545 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4654     {
4655       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4656 	  (yyval.type_qualifier).precision = ast_precision_none;
4657       (yyval.type_qualifier).flags.q.flat = 1;
4658    }
4659 #line 4660 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4660     break;
4661 
4662   case 161:
4663 #line 1551 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4664     {
4665       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4666 	  (yyval.type_qualifier).precision = ast_precision_none;
4667       (yyval.type_qualifier).flags.q.noperspective = 1;
4668    }
4669 #line 4670 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4670     break;
4671 
4672   case 162:
4673 #line 1561 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4674     {
4675       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4676 	  (yyval.type_qualifier).precision = ast_precision_none;
4677       (yyval.type_qualifier).flags.q.invariant = 1;
4678    }
4679 #line 4680 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4680     break;
4681 
4682   case 163:
4683 #line 1567 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4684     {
4685       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4686       (yyval.type_qualifier).flags.q.precise = 1;
4687    }
4688 #line 4689 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4689     break;
4690 
4691   case 168:
4692 #line 1576 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4693     {
4694       memset(&(yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4695 	  (yyval.type_qualifier).precision = ast_precision_none;
4696       (yyval.type_qualifier).precision = (yyvsp[0].n);
4697    }
4698 #line 4699 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4699     break;
4700 
4701   case 169:
4702 #line 1595 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4703     {
4704       if ((yyvsp[0].type_qualifier).flags.q.precise)
4705          _mesa_glsl_error(&(yylsp[-1]), state, "duplicate \"precise\" qualifier");
4706 
4707       (yyval.type_qualifier) = (yyvsp[0].type_qualifier);
4708       (yyval.type_qualifier).flags.q.precise = 1;
4709    }
4710 #line 4711 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4711     break;
4712 
4713   case 170:
4714 #line 1603 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4715     {
4716       if ((yyvsp[0].type_qualifier).flags.q.invariant)
4717          _mesa_glsl_error(&(yylsp[-1]), state, "duplicate \"invariant\" qualifier");
4718 
4719       if (!state->ARB_shading_language_420pack_enable && (yyvsp[0].type_qualifier).flags.q.precise)
4720          _mesa_glsl_error(&(yylsp[-1]), state,
4721                           "\"invariant\" must come after \"precise\"");
4722 
4723       (yyval.type_qualifier) = (yyvsp[0].type_qualifier);
4724       (yyval.type_qualifier).flags.q.invariant = 1;
4725    }
4726 #line 4727 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4727     break;
4728 
4729   case 171:
4730 #line 1615 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4731     {
4732       /* Section 4.3 of the GLSL 1.40 specification states:
4733        * "...qualified with one of these interpolation qualifiers"
4734        *
4735        * GLSL 1.30 claims to allow "one or more", but insists that:
4736        * "These interpolation qualifiers may only precede the qualifiers in,
4737        *  centroid in, out, or centroid out in a declaration."
4738        *
4739        * ...which means that e.g. smooth can't precede smooth, so there can be
4740        * only one after all, and the 1.40 text is a clarification, not a change.
4741        */
4742       if ((yyvsp[0].type_qualifier).has_interpolation())
4743          _mesa_glsl_error(&(yylsp[-1]), state, "duplicate interpolation qualifier");
4744 
4745       if (!state->ARB_shading_language_420pack_enable &&
4746           ((yyvsp[0].type_qualifier).flags.q.precise || (yyvsp[0].type_qualifier).flags.q.invariant)) {
4747          _mesa_glsl_error(&(yylsp[-1]), state, "interpolation qualifiers must come "
4748                           "after \"precise\" or \"invariant\"");
4749       }
4750 
4751       (yyval.type_qualifier) = (yyvsp[-1].type_qualifier);
4752       (yyval.type_qualifier).merge_qualifier(&(yylsp[-1]), state, (yyvsp[0].type_qualifier));
4753    }
4754 #line 4755 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4755     break;
4756 
4757   case 172:
4758 #line 1639 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4759     {
4760       /* In the absence of ARB_shading_language_420pack, layout qualifiers may
4761        * appear no later than auxiliary storage qualifiers. There is no
4762        * particularly clear spec language mandating this, but in all examples
4763        * the layout qualifier precedes the storage qualifier.
4764        *
4765        * We allow combinations of layout with interpolation, invariant or
4766        * precise qualifiers since these are useful in ARB_separate_shader_objects.
4767        * There is no clear spec guidance on this either.
4768        */
4769       if (!state->ARB_shading_language_420pack_enable && (yyvsp[0].type_qualifier).has_layout())
4770          _mesa_glsl_error(&(yylsp[-1]), state, "duplicate layout(...) qualifiers");
4771 
4772       (yyval.type_qualifier) = (yyvsp[-1].type_qualifier);
4773       (yyval.type_qualifier).merge_qualifier(&(yylsp[-1]), state, (yyvsp[0].type_qualifier));
4774    }
4775 #line 4776 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4776     break;
4777 
4778   case 173:
4779 #line 1656 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4780     {
4781       if ((yyvsp[0].type_qualifier).has_auxiliary_storage()) {
4782          _mesa_glsl_error(&(yylsp[-1]), state,
4783                           "duplicate auxiliary storage qualifier (centroid or sample)");
4784       }
4785 
4786       if (!state->ARB_shading_language_420pack_enable &&
4787           ((yyvsp[0].type_qualifier).flags.q.precise || (yyvsp[0].type_qualifier).flags.q.invariant ||
4788            (yyvsp[0].type_qualifier).has_interpolation() || (yyvsp[0].type_qualifier).has_layout())) {
4789          _mesa_glsl_error(&(yylsp[-1]), state, "auxiliary storage qualifiers must come "
4790                           "just before storage qualifiers");
4791       }
4792       (yyval.type_qualifier) = (yyvsp[-1].type_qualifier);
4793       (yyval.type_qualifier).merge_qualifier(&(yylsp[-1]), state, (yyvsp[0].type_qualifier));
4794    }
4795 #line 4796 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4796     break;
4797 
4798   case 174:
4799 #line 1672 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4800     {
4801       /* Section 4.3 of the GLSL 1.20 specification states:
4802        * "Variable declarations may have a storage qualifier specified..."
4803        *  1.30 clarifies this to "may have one storage qualifier".
4804        */
4805       if ((yyvsp[0].type_qualifier).has_storage())
4806          _mesa_glsl_error(&(yylsp[-1]), state, "duplicate storage qualifier");
4807 
4808       if (!state->ARB_shading_language_420pack_enable &&
4809           ((yyvsp[0].type_qualifier).flags.q.precise || (yyvsp[0].type_qualifier).flags.q.invariant || (yyvsp[0].type_qualifier).has_interpolation() ||
4810            (yyvsp[0].type_qualifier).has_layout() || (yyvsp[0].type_qualifier).has_auxiliary_storage())) {
4811          _mesa_glsl_error(&(yylsp[-1]), state, "storage qualifiers must come after "
4812                           "precise, invariant, interpolation, layout and auxiliary "
4813                           "storage qualifiers");
4814       }
4815 
4816       (yyval.type_qualifier) = (yyvsp[-1].type_qualifier);
4817       (yyval.type_qualifier).merge_qualifier(&(yylsp[-1]), state, (yyvsp[0].type_qualifier));
4818    }
4819 #line 4820 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4820     break;
4821 
4822   case 175:
4823 #line 1692 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4824     {
4825       if ((yyvsp[0].type_qualifier).precision != ast_precision_none)
4826          _mesa_glsl_error(&(yylsp[-1]), state, "duplicate precision qualifier");
4827 
4828       if (!state->ARB_shading_language_420pack_enable && (yyvsp[0].type_qualifier).flags.i != 0)
4829          _mesa_glsl_error(&(yylsp[-1]), state, "precision qualifiers must come last");
4830 
4831       (yyval.type_qualifier) = (yyvsp[0].type_qualifier);
4832       (yyval.type_qualifier).precision = (yyvsp[-1].n);
4833    }
4834 #line 4835 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4835     break;
4836 
4837   case 176:
4838 #line 1706 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4839     {
4840       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4841 	  (yyval.type_qualifier).precision = ast_precision_none;
4842       (yyval.type_qualifier).flags.q.centroid = 1;
4843    }
4844 #line 4845 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4845     break;
4846 
4847   case 177:
4848 #line 1712 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4849     {
4850       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4851       (yyval.type_qualifier).flags.q.sample = 1;
4852    }
4853 #line 4854 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4854     break;
4855 
4856   case 178:
4857 #line 1720 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4858     {
4859       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4860 	  (yyval.type_qualifier).precision = ast_precision_none;
4861       (yyval.type_qualifier).flags.q.constant = 1;
4862    }
4863 #line 4864 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4864     break;
4865 
4866   case 179:
4867 #line 1726 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4868     {
4869       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4870 	  (yyval.type_qualifier).precision = ast_precision_none;
4871       (yyval.type_qualifier).flags.q.attribute = 1;
4872    }
4873 #line 4874 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4874     break;
4875 
4876   case 180:
4877 #line 1732 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4878     {
4879       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4880 	  (yyval.type_qualifier).precision = ast_precision_none;
4881       (yyval.type_qualifier).flags.q.varying = 1;
4882    }
4883 #line 4884 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4884     break;
4885 
4886   case 181:
4887 #line 1738 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4888     {
4889       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4890 	  (yyval.type_qualifier).precision = ast_precision_none;
4891       (yyval.type_qualifier).flags.q.in = 1;
4892    }
4893 #line 4894 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4894     break;
4895 
4896   case 182:
4897 #line 1744 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4898     {
4899       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4900 	  (yyval.type_qualifier).precision = ast_precision_none;
4901       (yyval.type_qualifier).flags.q.out = 1;
4902    }
4903 #line 4904 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4904     break;
4905 
4906   case 183:
4907 #line 1750 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4908     {
4909       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4910       (yyval.type_qualifier).precision = ast_precision_none;
4911       (yyval.type_qualifier).flags.q.in = 1;
4912       (yyval.type_qualifier).flags.q.out = 1;
4913 
4914       if (state->stage == MESA_SHADER_GEOMETRY &&
4915           state->has_explicit_attrib_stream()) {
4916          /* Section 4.3.8.2 (Output Layout Qualifiers) of the GLSL 4.00
4917           * spec says:
4918           *
4919           *     "If the block or variable is declared with the stream
4920           *     identifier, it is associated with the specified stream;
4921           *     otherwise, it is associated with the current default stream."
4922           */
4923           (yyval.type_qualifier).flags.q.stream = 1;
4924           (yyval.type_qualifier).flags.q.explicit_stream = 0;
4925           (yyval.type_qualifier).stream = state->out_qualifier->stream;
4926       }
4927    }
4928 #line 4929 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4929     break;
4930 
4931   case 184:
4932 #line 1771 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4933     {
4934       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4935 	  (yyval.type_qualifier).precision = ast_precision_none;
4936       (yyval.type_qualifier).flags.q.uniform = 1;
4937    }
4938 #line 4939 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4939     break;
4940 
4941   case 185:
4942 #line 1777 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4943     {
4944       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4945       (yyval.type_qualifier).flags.q.coherent = 1;
4946    }
4947 #line 4948 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4948     break;
4949 
4950   case 186:
4951 #line 1782 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4952     {
4953       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4954       (yyval.type_qualifier).flags.q._volatile = 1;
4955    }
4956 #line 4957 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4957     break;
4958 
4959   case 187:
4960 #line 1787 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4961     {
4962       STATIC_ASSERT(sizeof((yyval.type_qualifier).flags.q) <= sizeof((yyval.type_qualifier).flags.i));
4963       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4964       (yyval.type_qualifier).flags.q.restrict_flag = 1;
4965    }
4966 #line 4967 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4967     break;
4968 
4969   case 188:
4970 #line 1793 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4971     {
4972       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4973       (yyval.type_qualifier).flags.q.read_only = 1;
4974    }
4975 #line 4976 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4976     break;
4977 
4978   case 189:
4979 #line 1798 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4980     {
4981       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4982       (yyval.type_qualifier).flags.q.write_only = 1;
4983    }
4984 #line 4985 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4985     break;
4986 
4987   case 190:
4988 #line 1806 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4989     {
4990       void *ctx = state;
4991       (yyval.array_specifier) = new(ctx) ast_array_specifier((yylsp[-1]));
4992       (yyval.array_specifier)->set_location_range((yylsp[-1]), (yylsp[0]));
4993    }
4994 #line 4995 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
4995     break;
4996 
4997   case 191:
4998 #line 1812 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
4999     {
5000       void *ctx = state;
5001       (yyval.array_specifier) = new(ctx) ast_array_specifier((yylsp[-2]), (yyvsp[-1].expression));
5002       (yyval.array_specifier)->set_location_range((yylsp[-2]), (yylsp[0]));
5003    }
5004 #line 5005 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5005     break;
5006 
5007   case 192:
5008 #line 1818 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5009     {
5010       (yyval.array_specifier) = (yyvsp[-2].array_specifier);
5011 
5012       if (!state->ARB_arrays_of_arrays_enable) {
5013          _mesa_glsl_error(& (yylsp[-2]), state,
5014                           "GL_ARB_arrays_of_arrays "
5015                           "required for defining arrays of arrays");
5016       } else {
5017          _mesa_glsl_error(& (yylsp[-2]), state,
5018                           "only the outermost array dimension can "
5019                           "be unsized");
5020       }
5021    }
5022 #line 5023 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5023     break;
5024 
5025   case 193:
5026 #line 1832 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5027     {
5028       (yyval.array_specifier) = (yyvsp[-3].array_specifier);
5029 
5030       if (!state->ARB_arrays_of_arrays_enable) {
5031          _mesa_glsl_error(& (yylsp[-3]), state,
5032                           "GL_ARB_arrays_of_arrays "
5033                           "required for defining arrays of arrays");
5034       }
5035 
5036       (yyval.array_specifier)->add_dimension((yyvsp[-1].expression));
5037    }
5038 #line 5039 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5039     break;
5040 
5041   case 195:
5042 #line 1848 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5043     {
5044       (yyval.type_specifier) = (yyvsp[-1].type_specifier);
5045       (yyval.type_specifier)->array_specifier = (yyvsp[0].array_specifier);
5046    }
5047 #line 5048 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5048     break;
5049 
5050   case 196:
5051 #line 1856 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5052     {
5053       void *ctx = state;
5054       (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[0].identifier));
5055       (yyval.type_specifier)->set_location((yylsp[0]));
5056    }
5057 #line 5058 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5058     break;
5059 
5060   case 197:
5061 #line 1862 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5062     {
5063       void *ctx = state;
5064       (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[0].struct_specifier));
5065       (yyval.type_specifier)->set_location((yylsp[0]));
5066    }
5067 #line 5068 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5068     break;
5069 
5070   case 198:
5071 #line 1868 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5072     {
5073       void *ctx = state;
5074       (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[0].identifier));
5075       (yyval.type_specifier)->set_location((yylsp[0]));
5076    }
5077 #line 5078 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5078     break;
5079 
5080   case 199:
5081 #line 1876 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5082     { (yyval.identifier) = "void"; }
5083 #line 5084 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5084     break;
5085 
5086   case 200:
5087 #line 1877 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5088     { (yyval.identifier) = "float"; }
5089 #line 5090 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5090     break;
5091 
5092   case 201:
5093 #line 1878 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5094     { (yyval.identifier) = "int"; }
5095 #line 5096 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5096     break;
5097 
5098   case 202:
5099 #line 1879 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5100     { (yyval.identifier) = "uint"; }
5101 #line 5102 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5102     break;
5103 
5104   case 203:
5105 #line 1880 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5106     { (yyval.identifier) = "bool"; }
5107 #line 5108 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5108     break;
5109 
5110   case 204:
5111 #line 1881 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5112     { (yyval.identifier) = "vec2"; }
5113 #line 5114 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5114     break;
5115 
5116   case 205:
5117 #line 1882 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5118     { (yyval.identifier) = "vec3"; }
5119 #line 5120 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5120     break;
5121 
5122   case 206:
5123 #line 1883 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5124     { (yyval.identifier) = "vec4"; }
5125 #line 5126 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5126     break;
5127 
5128   case 207:
5129 #line 1884 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5130     { (yyval.identifier) = "bvec2"; }
5131 #line 5132 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5132     break;
5133 
5134   case 208:
5135 #line 1885 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5136     { (yyval.identifier) = "bvec3"; }
5137 #line 5138 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5138     break;
5139 
5140   case 209:
5141 #line 1886 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5142     { (yyval.identifier) = "bvec4"; }
5143 #line 5144 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5144     break;
5145 
5146   case 210:
5147 #line 1887 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5148     { (yyval.identifier) = "ivec2"; }
5149 #line 5150 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5150     break;
5151 
5152   case 211:
5153 #line 1888 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5154     { (yyval.identifier) = "ivec3"; }
5155 #line 5156 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5156     break;
5157 
5158   case 212:
5159 #line 1889 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5160     { (yyval.identifier) = "ivec4"; }
5161 #line 5162 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5162     break;
5163 
5164   case 213:
5165 #line 1890 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5166     { (yyval.identifier) = "uvec2"; }
5167 #line 5168 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5168     break;
5169 
5170   case 214:
5171 #line 1891 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5172     { (yyval.identifier) = "uvec3"; }
5173 #line 5174 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5174     break;
5175 
5176   case 215:
5177 #line 1892 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5178     { (yyval.identifier) = "uvec4"; }
5179 #line 5180 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5180     break;
5181 
5182   case 216:
5183 #line 1893 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5184     { (yyval.identifier) = "mat2"; }
5185 #line 5186 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5186     break;
5187 
5188   case 217:
5189 #line 1894 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5190     { (yyval.identifier) = "mat2x3"; }
5191 #line 5192 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5192     break;
5193 
5194   case 218:
5195 #line 1895 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5196     { (yyval.identifier) = "mat2x4"; }
5197 #line 5198 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5198     break;
5199 
5200   case 219:
5201 #line 1896 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5202     { (yyval.identifier) = "mat3x2"; }
5203 #line 5204 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5204     break;
5205 
5206   case 220:
5207 #line 1897 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5208     { (yyval.identifier) = "mat3"; }
5209 #line 5210 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5210     break;
5211 
5212   case 221:
5213 #line 1898 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5214     { (yyval.identifier) = "mat3x4"; }
5215 #line 5216 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5216     break;
5217 
5218   case 222:
5219 #line 1899 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5220     { (yyval.identifier) = "mat4x2"; }
5221 #line 5222 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5222     break;
5223 
5224   case 223:
5225 #line 1900 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5226     { (yyval.identifier) = "mat4x3"; }
5227 #line 5228 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5228     break;
5229 
5230   case 224:
5231 #line 1901 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5232     { (yyval.identifier) = "mat4"; }
5233 #line 5234 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5234     break;
5235 
5236   case 225:
5237 #line 1902 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5238     { (yyval.identifier) = "sampler1D"; }
5239 #line 5240 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5240     break;
5241 
5242   case 226:
5243 #line 1903 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5244     { (yyval.identifier) = "sampler2D"; }
5245 #line 5246 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5246     break;
5247 
5248   case 227:
5249 #line 1904 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5250     { (yyval.identifier) = "sampler2DRect"; }
5251 #line 5252 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5252     break;
5253 
5254   case 228:
5255 #line 1905 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5256     { (yyval.identifier) = "sampler3D"; }
5257 #line 5258 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5258     break;
5259 
5260   case 229:
5261 #line 1906 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5262     { (yyval.identifier) = "samplerCube"; }
5263 #line 5264 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5264     break;
5265 
5266   case 230:
5267 #line 1907 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5268     { (yyval.identifier) = "samplerExternalOES"; }
5269 #line 5270 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5270     break;
5271 
5272   case 231:
5273 #line 1908 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5274     { (yyval.identifier) = "sampler1DShadow"; }
5275 #line 5276 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5276     break;
5277 
5278   case 232:
5279 #line 1909 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5280     { (yyval.identifier) = "sampler2DShadow"; }
5281 #line 5282 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5282     break;
5283 
5284   case 233:
5285 #line 1910 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5286     { (yyval.identifier) = "sampler2DRectShadow"; }
5287 #line 5288 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5288     break;
5289 
5290   case 234:
5291 #line 1911 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5292     { (yyval.identifier) = "samplerCubeShadow"; }
5293 #line 5294 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5294     break;
5295 
5296   case 235:
5297 #line 1912 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5298     { (yyval.identifier) = "sampler1DArray"; }
5299 #line 5300 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5300     break;
5301 
5302   case 236:
5303 #line 1913 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5304     { (yyval.identifier) = "sampler2DArray"; }
5305 #line 5306 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5306     break;
5307 
5308   case 237:
5309 #line 1914 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5310     { (yyval.identifier) = "sampler1DArrayShadow"; }
5311 #line 5312 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5312     break;
5313 
5314   case 238:
5315 #line 1915 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5316     { (yyval.identifier) = "sampler2DArrayShadow"; }
5317 #line 5318 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5318     break;
5319 
5320   case 239:
5321 #line 1916 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5322     { (yyval.identifier) = "samplerBuffer"; }
5323 #line 5324 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5324     break;
5325 
5326   case 240:
5327 #line 1917 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5328     { (yyval.identifier) = "samplerCubeArray"; }
5329 #line 5330 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5330     break;
5331 
5332   case 241:
5333 #line 1918 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5334     { (yyval.identifier) = "samplerCubeArrayShadow"; }
5335 #line 5336 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5336     break;
5337 
5338   case 242:
5339 #line 1919 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5340     { (yyval.identifier) = "isampler1D"; }
5341 #line 5342 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5342     break;
5343 
5344   case 243:
5345 #line 1920 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5346     { (yyval.identifier) = "isampler2D"; }
5347 #line 5348 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5348     break;
5349 
5350   case 244:
5351 #line 1921 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5352     { (yyval.identifier) = "isampler2DRect"; }
5353 #line 5354 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5354     break;
5355 
5356   case 245:
5357 #line 1922 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5358     { (yyval.identifier) = "isampler3D"; }
5359 #line 5360 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5360     break;
5361 
5362   case 246:
5363 #line 1923 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5364     { (yyval.identifier) = "isamplerCube"; }
5365 #line 5366 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5366     break;
5367 
5368   case 247:
5369 #line 1924 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5370     { (yyval.identifier) = "isampler1DArray"; }
5371 #line 5372 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5372     break;
5373 
5374   case 248:
5375 #line 1925 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5376     { (yyval.identifier) = "isampler2DArray"; }
5377 #line 5378 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5378     break;
5379 
5380   case 249:
5381 #line 1926 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5382     { (yyval.identifier) = "isamplerBuffer"; }
5383 #line 5384 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5384     break;
5385 
5386   case 250:
5387 #line 1927 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5388     { (yyval.identifier) = "isamplerCubeArray"; }
5389 #line 5390 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5390     break;
5391 
5392   case 251:
5393 #line 1928 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5394     { (yyval.identifier) = "usampler1D"; }
5395 #line 5396 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5396     break;
5397 
5398   case 252:
5399 #line 1929 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5400     { (yyval.identifier) = "usampler2D"; }
5401 #line 5402 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5402     break;
5403 
5404   case 253:
5405 #line 1930 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5406     { (yyval.identifier) = "usampler2DRect"; }
5407 #line 5408 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5408     break;
5409 
5410   case 254:
5411 #line 1931 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5412     { (yyval.identifier) = "usampler3D"; }
5413 #line 5414 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5414     break;
5415 
5416   case 255:
5417 #line 1932 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5418     { (yyval.identifier) = "usamplerCube"; }
5419 #line 5420 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5420     break;
5421 
5422   case 256:
5423 #line 1933 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5424     { (yyval.identifier) = "usampler1DArray"; }
5425 #line 5426 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5426     break;
5427 
5428   case 257:
5429 #line 1934 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5430     { (yyval.identifier) = "usampler2DArray"; }
5431 #line 5432 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5432     break;
5433 
5434   case 258:
5435 #line 1935 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5436     { (yyval.identifier) = "usamplerBuffer"; }
5437 #line 5438 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5438     break;
5439 
5440   case 259:
5441 #line 1936 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5442     { (yyval.identifier) = "usamplerCubeArray"; }
5443 #line 5444 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5444     break;
5445 
5446   case 260:
5447 #line 1937 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5448     { (yyval.identifier) = "sampler2DMS"; }
5449 #line 5450 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5450     break;
5451 
5452   case 261:
5453 #line 1938 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5454     { (yyval.identifier) = "isampler2DMS"; }
5455 #line 5456 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5456     break;
5457 
5458   case 262:
5459 #line 1939 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5460     { (yyval.identifier) = "usampler2DMS"; }
5461 #line 5462 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5462     break;
5463 
5464   case 263:
5465 #line 1940 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5466     { (yyval.identifier) = "sampler2DMSArray"; }
5467 #line 5468 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5468     break;
5469 
5470   case 264:
5471 #line 1941 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5472     { (yyval.identifier) = "isampler2DMSArray"; }
5473 #line 5474 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5474     break;
5475 
5476   case 265:
5477 #line 1942 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5478     { (yyval.identifier) = "usampler2DMSArray"; }
5479 #line 5480 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5480     break;
5481 
5482   case 266:
5483 #line 1943 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5484     { (yyval.identifier) = "image1D"; }
5485 #line 5486 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5486     break;
5487 
5488   case 267:
5489 #line 1944 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5490     { (yyval.identifier) = "image2D"; }
5491 #line 5492 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5492     break;
5493 
5494   case 268:
5495 #line 1945 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5496     { (yyval.identifier) = "image3D"; }
5497 #line 5498 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5498     break;
5499 
5500   case 269:
5501 #line 1946 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5502     { (yyval.identifier) = "image2DRect"; }
5503 #line 5504 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5504     break;
5505 
5506   case 270:
5507 #line 1947 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5508     { (yyval.identifier) = "imageCube"; }
5509 #line 5510 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5510     break;
5511 
5512   case 271:
5513 #line 1948 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5514     { (yyval.identifier) = "imageBuffer"; }
5515 #line 5516 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5516     break;
5517 
5518   case 272:
5519 #line 1949 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5520     { (yyval.identifier) = "image1DArray"; }
5521 #line 5522 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5522     break;
5523 
5524   case 273:
5525 #line 1950 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5526     { (yyval.identifier) = "image2DArray"; }
5527 #line 5528 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5528     break;
5529 
5530   case 274:
5531 #line 1951 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5532     { (yyval.identifier) = "imageCubeArray"; }
5533 #line 5534 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5534     break;
5535 
5536   case 275:
5537 #line 1952 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5538     { (yyval.identifier) = "image2DMS"; }
5539 #line 5540 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5540     break;
5541 
5542   case 276:
5543 #line 1953 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5544     { (yyval.identifier) = "image2DMSArray"; }
5545 #line 5546 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5546     break;
5547 
5548   case 277:
5549 #line 1954 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5550     { (yyval.identifier) = "iimage1D"; }
5551 #line 5552 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5552     break;
5553 
5554   case 278:
5555 #line 1955 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5556     { (yyval.identifier) = "iimage2D"; }
5557 #line 5558 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5558     break;
5559 
5560   case 279:
5561 #line 1956 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5562     { (yyval.identifier) = "iimage3D"; }
5563 #line 5564 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5564     break;
5565 
5566   case 280:
5567 #line 1957 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5568     { (yyval.identifier) = "iimage2DRect"; }
5569 #line 5570 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5570     break;
5571 
5572   case 281:
5573 #line 1958 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5574     { (yyval.identifier) = "iimageCube"; }
5575 #line 5576 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5576     break;
5577 
5578   case 282:
5579 #line 1959 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5580     { (yyval.identifier) = "iimageBuffer"; }
5581 #line 5582 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5582     break;
5583 
5584   case 283:
5585 #line 1960 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5586     { (yyval.identifier) = "iimage1DArray"; }
5587 #line 5588 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5588     break;
5589 
5590   case 284:
5591 #line 1961 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5592     { (yyval.identifier) = "iimage2DArray"; }
5593 #line 5594 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5594     break;
5595 
5596   case 285:
5597 #line 1962 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5598     { (yyval.identifier) = "iimageCubeArray"; }
5599 #line 5600 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5600     break;
5601 
5602   case 286:
5603 #line 1963 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5604     { (yyval.identifier) = "iimage2DMS"; }
5605 #line 5606 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5606     break;
5607 
5608   case 287:
5609 #line 1964 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5610     { (yyval.identifier) = "iimage2DMSArray"; }
5611 #line 5612 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5612     break;
5613 
5614   case 288:
5615 #line 1965 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5616     { (yyval.identifier) = "uimage1D"; }
5617 #line 5618 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5618     break;
5619 
5620   case 289:
5621 #line 1966 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5622     { (yyval.identifier) = "uimage2D"; }
5623 #line 5624 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5624     break;
5625 
5626   case 290:
5627 #line 1967 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5628     { (yyval.identifier) = "uimage3D"; }
5629 #line 5630 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5630     break;
5631 
5632   case 291:
5633 #line 1968 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5634     { (yyval.identifier) = "uimage2DRect"; }
5635 #line 5636 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5636     break;
5637 
5638   case 292:
5639 #line 1969 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5640     { (yyval.identifier) = "uimageCube"; }
5641 #line 5642 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5642     break;
5643 
5644   case 293:
5645 #line 1970 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5646     { (yyval.identifier) = "uimageBuffer"; }
5647 #line 5648 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5648     break;
5649 
5650   case 294:
5651 #line 1971 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5652     { (yyval.identifier) = "uimage1DArray"; }
5653 #line 5654 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5654     break;
5655 
5656   case 295:
5657 #line 1972 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5658     { (yyval.identifier) = "uimage2DArray"; }
5659 #line 5660 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5660     break;
5661 
5662   case 296:
5663 #line 1973 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5664     { (yyval.identifier) = "uimageCubeArray"; }
5665 #line 5666 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5666     break;
5667 
5668   case 297:
5669 #line 1974 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5670     { (yyval.identifier) = "uimage2DMS"; }
5671 #line 5672 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5672     break;
5673 
5674   case 298:
5675 #line 1975 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5676     { (yyval.identifier) = "uimage2DMSArray"; }
5677 #line 5678 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5678     break;
5679 
5680   case 299:
5681 #line 1976 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5682     { (yyval.identifier) = "atomic_uint"; }
5683 #line 5684 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5684     break;
5685 
5686   case 300:
5687 #line 1981 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5688     {
5689       state->check_precision_qualifiers_allowed(&(yylsp[0]));
5690       (yyval.n) = ast_precision_high;
5691    }
5692 #line 5693 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5693     break;
5694 
5695   case 301:
5696 #line 1986 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5697     {
5698       state->check_precision_qualifiers_allowed(&(yylsp[0]));
5699       (yyval.n) = ast_precision_medium;
5700    }
5701 #line 5702 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5702     break;
5703 
5704   case 302:
5705 #line 1991 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5706     {
5707       state->check_precision_qualifiers_allowed(&(yylsp[0]));
5708       (yyval.n) = ast_precision_low;
5709    }
5710 #line 5711 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5711     break;
5712 
5713   case 303:
5714 #line 1999 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5715     {
5716       void *ctx = state;
5717       (yyval.struct_specifier) = new(ctx) ast_struct_specifier((yyvsp[-3].identifier), (yyvsp[-1].declarator_list));
5718       (yyval.struct_specifier)->set_location_range((yylsp[-3]), (yylsp[0]));
5719       state->symbols->add_type((yyvsp[-3].identifier), glsl_type::void_type);
5720    }
5721 #line 5722 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5722     break;
5723 
5724   case 304:
5725 #line 2006 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5726     {
5727       void *ctx = state;
5728       (yyval.struct_specifier) = new(ctx) ast_struct_specifier(NULL, (yyvsp[-1].declarator_list));
5729       (yyval.struct_specifier)->set_location_range((yylsp[-2]), (yylsp[0]));
5730    }
5731 #line 5732 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5732     break;
5733 
5734   case 305:
5735 #line 2015 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5736     {
5737       (yyval.declarator_list) = (yyvsp[0].declarator_list);
5738       (yyvsp[0].declarator_list)->link.self_link();
5739    }
5740 #line 5741 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5741     break;
5742 
5743   case 306:
5744 #line 2020 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5745     {
5746       (yyval.declarator_list) = (yyvsp[-1].declarator_list);
5747       (yyval.declarator_list)->link.insert_before(& (yyvsp[0].declarator_list)->link);
5748    }
5749 #line 5750 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5750     break;
5751 
5752   case 307:
5753 #line 2028 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5754     {
5755       void *ctx = state;
5756       ast_fully_specified_type *const type = (yyvsp[-2].fully_specified_type);
5757       type->set_location((yylsp[-2]));
5758 
5759       if (type->qualifier.flags.i != 0)
5760          _mesa_glsl_error(&(yylsp[-2]), state,
5761 			  "only precision qualifiers may be applied to "
5762 			  "structure members");
5763 
5764       (yyval.declarator_list) = new(ctx) ast_declarator_list(type);
5765       (yyval.declarator_list)->set_location((yylsp[-1]));
5766 
5767       (yyval.declarator_list)->declarations.push_degenerate_list_at_head(& (yyvsp[-1].declaration)->link);
5768    }
5769 #line 5770 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5770     break;
5771 
5772   case 308:
5773 #line 2047 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5774     {
5775       (yyval.declaration) = (yyvsp[0].declaration);
5776       (yyvsp[0].declaration)->link.self_link();
5777    }
5778 #line 5779 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5779     break;
5780 
5781   case 309:
5782 #line 2052 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5783     {
5784       (yyval.declaration) = (yyvsp[-2].declaration);
5785       (yyval.declaration)->link.insert_before(& (yyvsp[0].declaration)->link);
5786    }
5787 #line 5788 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5788     break;
5789 
5790   case 310:
5791 #line 2060 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5792     {
5793       void *ctx = state;
5794       (yyval.declaration) = new(ctx) ast_declaration((yyvsp[0].identifier), NULL, NULL);
5795       (yyval.declaration)->set_location((yylsp[0]));
5796    }
5797 #line 5798 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5798     break;
5799 
5800   case 311:
5801 #line 2066 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5802     {
5803       void *ctx = state;
5804       (yyval.declaration) = new(ctx) ast_declaration((yyvsp[-1].identifier), (yyvsp[0].array_specifier), NULL);
5805       (yyval.declaration)->set_location_range((yylsp[-1]), (yylsp[0]));
5806    }
5807 #line 5808 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5808     break;
5809 
5810   case 313:
5811 #line 2076 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5812     {
5813       (yyval.expression) = (yyvsp[-1].expression);
5814    }
5815 #line 5816 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5816     break;
5817 
5818   case 314:
5819 #line 2080 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5820     {
5821       (yyval.expression) = (yyvsp[-2].expression);
5822    }
5823 #line 5824 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5824     break;
5825 
5826   case 315:
5827 #line 2087 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5828     {
5829       void *ctx = state;
5830       (yyval.expression) = new(ctx) ast_aggregate_initializer();
5831       (yyval.expression)->set_location((yylsp[0]));
5832       (yyval.expression)->expressions.push_tail(& (yyvsp[0].expression)->link);
5833    }
5834 #line 5835 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5835     break;
5836 
5837   case 316:
5838 #line 2094 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5839     {
5840       (yyvsp[-2].expression)->expressions.push_tail(& (yyvsp[0].expression)->link);
5841    }
5842 #line 5843 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5843     break;
5844 
5845   case 318:
5846 #line 2106 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5847     { (yyval.node) = (ast_node *) (yyvsp[0].compound_statement); }
5848 #line 5849 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5849     break;
5850 
5851   case 326:
5852 #line 2121 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5853     {
5854       void *ctx = state;
5855       (yyval.compound_statement) = new(ctx) ast_compound_statement(true, NULL);
5856       (yyval.compound_statement)->set_location_range((yylsp[-1]), (yylsp[0]));
5857    }
5858 #line 5859 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5859     break;
5860 
5861   case 327:
5862 #line 2127 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5863     {
5864       state->symbols->push_scope();
5865    }
5866 #line 5867 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5867     break;
5868 
5869   case 328:
5870 #line 2131 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5871     {
5872       void *ctx = state;
5873       (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (yyvsp[-1].node));
5874       (yyval.compound_statement)->set_location_range((yylsp[-3]), (yylsp[0]));
5875       state->symbols->pop_scope();
5876    }
5877 #line 5878 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5878     break;
5879 
5880   case 329:
5881 #line 2140 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5882     { (yyval.node) = (ast_node *) (yyvsp[0].compound_statement); }
5883 #line 5884 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5884     break;
5885 
5886   case 331:
5887 #line 2146 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5888     {
5889       void *ctx = state;
5890       (yyval.compound_statement) = new(ctx) ast_compound_statement(false, NULL);
5891       (yyval.compound_statement)->set_location_range((yylsp[-1]), (yylsp[0]));
5892    }
5893 #line 5894 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5894     break;
5895 
5896   case 332:
5897 #line 2152 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5898     {
5899       void *ctx = state;
5900       (yyval.compound_statement) = new(ctx) ast_compound_statement(false, (yyvsp[-1].node));
5901       (yyval.compound_statement)->set_location_range((yylsp[-2]), (yylsp[0]));
5902    }
5903 #line 5904 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5904     break;
5905 
5906   case 333:
5907 #line 2161 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5908     {
5909       if ((yyvsp[0].node) == NULL) {
5910          _mesa_glsl_error(& (yylsp[0]), state, "<nil> statement");
5911          assert((yyvsp[0].node) != NULL);
5912       }
5913 
5914       (yyval.node) = (yyvsp[0].node);
5915       (yyval.node)->link.self_link();
5916    }
5917 #line 5918 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5918     break;
5919 
5920   case 334:
5921 #line 2171 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5922     {
5923       if ((yyvsp[0].node) == NULL) {
5924          _mesa_glsl_error(& (yylsp[0]), state, "<nil> statement");
5925          assert((yyvsp[0].node) != NULL);
5926       }
5927       (yyval.node) = (yyvsp[-1].node);
5928       (yyval.node)->link.insert_before(& (yyvsp[0].node)->link);
5929    }
5930 #line 5931 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5931     break;
5932 
5933   case 335:
5934 #line 2183 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5935     {
5936       void *ctx = state;
5937       (yyval.node) = new(ctx) ast_expression_statement(NULL);
5938       (yyval.node)->set_location((yylsp[0]));
5939    }
5940 #line 5941 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5941     break;
5942 
5943   case 336:
5944 #line 2189 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5945     {
5946       void *ctx = state;
5947       (yyval.node) = new(ctx) ast_expression_statement((yyvsp[-1].expression));
5948       (yyval.node)->set_location((yylsp[-1]));
5949    }
5950 #line 5951 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5951     break;
5952 
5953   case 337:
5954 #line 2198 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5955     {
5956       (yyval.node) = new(state) ast_selection_statement((yyvsp[-2].expression), (yyvsp[0].selection_rest_statement).then_statement,
5957                                               (yyvsp[0].selection_rest_statement).else_statement);
5958       (yyval.node)->set_location_range((yylsp[-4]), (yylsp[0]));
5959    }
5960 #line 5961 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5961     break;
5962 
5963   case 338:
5964 #line 2207 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5965     {
5966       (yyval.selection_rest_statement).then_statement = (yyvsp[-2].node);
5967       (yyval.selection_rest_statement).else_statement = (yyvsp[0].node);
5968    }
5969 #line 5970 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5970     break;
5971 
5972   case 339:
5973 #line 2212 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5974     {
5975       (yyval.selection_rest_statement).then_statement = (yyvsp[0].node);
5976       (yyval.selection_rest_statement).else_statement = NULL;
5977    }
5978 #line 5979 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5979     break;
5980 
5981   case 340:
5982 #line 2220 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5983     {
5984       (yyval.node) = (ast_node *) (yyvsp[0].expression);
5985    }
5986 #line 5987 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
5987     break;
5988 
5989   case 341:
5990 #line 2224 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
5991     {
5992       void *ctx = state;
5993       ast_declaration *decl = new(ctx) ast_declaration((yyvsp[-2].identifier), NULL, (yyvsp[0].expression));
5994       ast_declarator_list *declarator = new(ctx) ast_declarator_list((yyvsp[-3].fully_specified_type));
5995       decl->set_location_range((yylsp[-2]), (yylsp[0]));
5996       declarator->set_location((yylsp[-3]));
5997 
5998       declarator->declarations.push_tail(&decl->link);
5999       (yyval.node) = declarator;
6000    }
6001 #line 6002 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6002     break;
6003 
6004   case 342:
6005 #line 2242 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6006     {
6007       (yyval.node) = new(state) ast_switch_statement((yyvsp[-2].expression), (yyvsp[0].switch_body));
6008       (yyval.node)->set_location_range((yylsp[-4]), (yylsp[0]));
6009    }
6010 #line 6011 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6011     break;
6012 
6013   case 343:
6014 #line 2250 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6015     {
6016       (yyval.switch_body) = new(state) ast_switch_body(NULL);
6017       (yyval.switch_body)->set_location_range((yylsp[-1]), (yylsp[0]));
6018    }
6019 #line 6020 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6020     break;
6021 
6022   case 344:
6023 #line 2255 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6024     {
6025       (yyval.switch_body) = new(state) ast_switch_body((yyvsp[-1].case_statement_list));
6026       (yyval.switch_body)->set_location_range((yylsp[-2]), (yylsp[0]));
6027    }
6028 #line 6029 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6029     break;
6030 
6031   case 345:
6032 #line 2263 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6033     {
6034       (yyval.case_label) = new(state) ast_case_label((yyvsp[-1].expression));
6035       (yyval.case_label)->set_location((yylsp[-1]));
6036    }
6037 #line 6038 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6038     break;
6039 
6040   case 346:
6041 #line 2268 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6042     {
6043       (yyval.case_label) = new(state) ast_case_label(NULL);
6044       (yyval.case_label)->set_location((yylsp[0]));
6045    }
6046 #line 6047 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6047     break;
6048 
6049   case 347:
6050 #line 2276 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6051     {
6052       ast_case_label_list *labels = new(state) ast_case_label_list();
6053 
6054       labels->labels.push_tail(& (yyvsp[0].case_label)->link);
6055       (yyval.case_label_list) = labels;
6056       (yyval.case_label_list)->set_location((yylsp[0]));
6057    }
6058 #line 6059 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6059     break;
6060 
6061   case 348:
6062 #line 2284 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6063     {
6064       (yyval.case_label_list) = (yyvsp[-1].case_label_list);
6065       (yyval.case_label_list)->labels.push_tail(& (yyvsp[0].case_label)->link);
6066    }
6067 #line 6068 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6068     break;
6069 
6070   case 349:
6071 #line 2292 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6072     {
6073       ast_case_statement *stmts = new(state) ast_case_statement((yyvsp[-1].case_label_list));
6074       stmts->set_location((yylsp[0]));
6075 
6076       stmts->stmts.push_tail(& (yyvsp[0].node)->link);
6077       (yyval.case_statement) = stmts;
6078    }
6079 #line 6080 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6080     break;
6081 
6082   case 350:
6083 #line 2300 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6084     {
6085       (yyval.case_statement) = (yyvsp[-1].case_statement);
6086       (yyval.case_statement)->stmts.push_tail(& (yyvsp[0].node)->link);
6087    }
6088 #line 6089 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6089     break;
6090 
6091   case 351:
6092 #line 2308 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6093     {
6094       ast_case_statement_list *cases= new(state) ast_case_statement_list();
6095       cases->set_location((yylsp[0]));
6096 
6097       cases->cases.push_tail(& (yyvsp[0].case_statement)->link);
6098       (yyval.case_statement_list) = cases;
6099    }
6100 #line 6101 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6101     break;
6102 
6103   case 352:
6104 #line 2316 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6105     {
6106       (yyval.case_statement_list) = (yyvsp[-1].case_statement_list);
6107       (yyval.case_statement_list)->cases.push_tail(& (yyvsp[0].case_statement)->link);
6108    }
6109 #line 6110 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6110     break;
6111 
6112   case 353:
6113 #line 2324 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6114     {
6115       void *ctx = state;
6116       (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_while,
6117                                             NULL, (yyvsp[-2].node), NULL, (yyvsp[0].node));
6118       (yyval.node)->set_location_range((yylsp[-4]), (yylsp[-1]));
6119    }
6120 #line 6121 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6121     break;
6122 
6123   case 354:
6124 #line 2331 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6125     {
6126       void *ctx = state;
6127       (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_do_while,
6128                                             NULL, (yyvsp[-2].expression), NULL, (yyvsp[-5].node));
6129       (yyval.node)->set_location_range((yylsp[-6]), (yylsp[-1]));
6130    }
6131 #line 6132 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6132     break;
6133 
6134   case 355:
6135 #line 2338 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6136     {
6137       void *ctx = state;
6138       (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_for,
6139                                             (yyvsp[-3].node), (yyvsp[-2].for_rest_statement).cond, (yyvsp[-2].for_rest_statement).rest, (yyvsp[0].node));
6140       (yyval.node)->set_location_range((yylsp[-5]), (yylsp[0]));
6141    }
6142 #line 6143 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6143     break;
6144 
6145   case 359:
6146 #line 2354 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6147     {
6148       (yyval.node) = NULL;
6149    }
6150 #line 6151 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6151     break;
6152 
6153   case 360:
6154 #line 2361 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6155     {
6156       (yyval.for_rest_statement).cond = (yyvsp[-1].node);
6157       (yyval.for_rest_statement).rest = NULL;
6158    }
6159 #line 6160 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6160     break;
6161 
6162   case 361:
6163 #line 2366 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6164     {
6165       (yyval.for_rest_statement).cond = (yyvsp[-2].node);
6166       (yyval.for_rest_statement).rest = (yyvsp[0].expression);
6167    }
6168 #line 6169 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6169     break;
6170 
6171   case 362:
6172 #line 2375 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6173     {
6174       void *ctx = state;
6175       (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_continue, NULL);
6176       (yyval.node)->set_location((yylsp[-1]));
6177    }
6178 #line 6179 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6179     break;
6180 
6181   case 363:
6182 #line 2381 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6183     {
6184       void *ctx = state;
6185       (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_break, NULL);
6186       (yyval.node)->set_location((yylsp[-1]));
6187    }
6188 #line 6189 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6189     break;
6190 
6191   case 364:
6192 #line 2387 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6193     {
6194       void *ctx = state;
6195       (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, NULL);
6196       (yyval.node)->set_location((yylsp[-1]));
6197    }
6198 #line 6199 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6199     break;
6200 
6201   case 365:
6202 #line 2393 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6203     {
6204       void *ctx = state;
6205       (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, (yyvsp[-1].expression));
6206       (yyval.node)->set_location_range((yylsp[-2]), (yylsp[-1]));
6207    }
6208 #line 6209 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6209     break;
6210 
6211   case 366:
6212 #line 2399 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6213     {
6214       void *ctx = state;
6215       (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_discard, NULL);
6216       (yyval.node)->set_location((yylsp[-1]));
6217    }
6218 #line 6219 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6219     break;
6220 
6221   case 367:
6222 #line 2407 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6223     { (yyval.node) = (yyvsp[0].function_definition); }
6224 #line 6225 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6225     break;
6226 
6227   case 368:
6228 #line 2408 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6229     { (yyval.node) = (yyvsp[0].node); }
6230 #line 6231 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6231     break;
6232 
6233   case 369:
6234 #line 2409 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6235     { (yyval.node) = NULL; }
6236 #line 6237 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6237     break;
6238 
6239   case 370:
6240 #line 2410 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6241     { (yyval.node) = (yyvsp[0].node); }
6242 #line 6243 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6243     break;
6244 
6245   case 371:
6246 #line 2415 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6247     {
6248       void *ctx = state;
6249       (yyval.function_definition) = new(ctx) ast_function_definition();
6250       (yyval.function_definition)->set_location_range((yylsp[-1]), (yylsp[0]));
6251       (yyval.function_definition)->prototype = (yyvsp[-1].function);
6252       (yyval.function_definition)->body = (yyvsp[0].compound_statement);
6253 
6254       state->symbols->pop_scope();
6255    }
6256 #line 6257 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6257     break;
6258 
6259   case 372:
6260 #line 2429 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6261     {
6262       (yyval.node) = (yyvsp[0].interface_block);
6263    }
6264 #line 6265 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6265     break;
6266 
6267   case 373:
6268 #line 2433 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6269     {
6270       ast_interface_block *block = (yyvsp[0].interface_block);
6271       if (!block->layout.merge_qualifier(& (yylsp[-1]), state, (yyvsp[-1].type_qualifier))) {
6272          YYERROR;
6273       }
6274 
6275       foreach_list_typed (ast_declarator_list, member, link, &block->declarations) {
6276          ast_type_qualifier& qualifier = member->type->qualifier;
6277          if (qualifier.flags.q.stream && qualifier.stream != block->layout.stream) {
6278                _mesa_glsl_error(& (yylsp[-1]), state,
6279                              "stream layout qualifier on "
6280                              "interface block member does not match "
6281                              "the interface block (%d vs %d)",
6282                              qualifier.stream, block->layout.stream);
6283                YYERROR;
6284          }
6285       }
6286       (yyval.node) = block;
6287    }
6288 #line 6289 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6289     break;
6290 
6291   case 374:
6292 #line 2456 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6293     {
6294       ast_interface_block *const block = (yyvsp[-1].interface_block);
6295 
6296       block->block_name = (yyvsp[-5].identifier);
6297       block->declarations.push_degenerate_list_at_head(& (yyvsp[-3].declarator_list)->link);
6298 
6299       if ((yyvsp[-6].type_qualifier).flags.q.uniform) {
6300          if (!state->has_uniform_buffer_objects()) {
6301             _mesa_glsl_error(& (yylsp[-6]), state,
6302                              "#version 140 / GL_ARB_uniform_buffer_object "
6303                              "required for defining uniform blocks");
6304          } else if (state->ARB_uniform_buffer_object_warn) {
6305             _mesa_glsl_warning(& (yylsp[-6]), state,
6306                                "#version 140 / GL_ARB_uniform_buffer_object "
6307                                "required for defining uniform blocks");
6308          }
6309       } else {
6310          if (state->es_shader || state->language_version < 150) {
6311             _mesa_glsl_error(& (yylsp[-6]), state,
6312                              "#version 150 required for using "
6313                              "interface blocks");
6314          }
6315       }
6316 
6317       /* From the GLSL 1.50.11 spec, section 4.3.7 ("Interface Blocks"):
6318        * "It is illegal to have an input block in a vertex shader
6319        *  or an output block in a fragment shader"
6320        */
6321       if ((state->stage == MESA_SHADER_VERTEX) && (yyvsp[-6].type_qualifier).flags.q.in) {
6322          _mesa_glsl_error(& (yylsp[-6]), state,
6323                           "`in' interface block is not allowed for "
6324                           "a vertex shader");
6325       } else if ((state->stage == MESA_SHADER_FRAGMENT) && (yyvsp[-6].type_qualifier).flags.q.out) {
6326          _mesa_glsl_error(& (yylsp[-6]), state,
6327                           "`out' interface block is not allowed for "
6328                           "a fragment shader");
6329       }
6330 
6331       /* Since block arrays require names, and both features are added in
6332        * the same language versions, we don't have to explicitly
6333        * version-check both things.
6334        */
6335       if (block->instance_name != NULL) {
6336          state->check_version(150, 300, & (yylsp[-6]), "interface blocks with "
6337                                "an instance name are not allowed");
6338       }
6339 
6340       uint64_t interface_type_mask;
6341       struct ast_type_qualifier temp_type_qualifier;
6342 
6343       /* Get a bitmask containing only the in/out/uniform flags, allowing us
6344        * to ignore other irrelevant flags like interpolation qualifiers.
6345        */
6346       temp_type_qualifier.flags.i = 0;
6347       temp_type_qualifier.flags.q.uniform = true;
6348       temp_type_qualifier.flags.q.in = true;
6349       temp_type_qualifier.flags.q.out = true;
6350       interface_type_mask = temp_type_qualifier.flags.i;
6351 
6352       /* Get the block's interface qualifier.  The interface_qualifier
6353        * production rule guarantees that only one bit will be set (and
6354        * it will be in/out/uniform).
6355        */
6356       uint64_t block_interface_qualifier = (yyvsp[-6].type_qualifier).flags.i;
6357 
6358       block->layout.flags.i |= block_interface_qualifier;
6359 
6360       if (state->stage == MESA_SHADER_GEOMETRY &&
6361           state->has_explicit_attrib_stream()) {
6362          /* Assign global layout's stream value. */
6363          block->layout.flags.q.stream = 1;
6364          block->layout.flags.q.explicit_stream = 0;
6365          block->layout.stream = state->out_qualifier->stream;
6366       }
6367 
6368       foreach_list_typed (ast_declarator_list, member, link, &block->declarations) {
6369          ast_type_qualifier& qualifier = member->type->qualifier;
6370          if ((qualifier.flags.i & interface_type_mask) == 0) {
6371             /* GLSLangSpec.1.50.11, 4.3.7 (Interface Blocks):
6372              * "If no optional qualifier is used in a member declaration, the
6373              *  qualifier of the variable is just in, out, or uniform as declared
6374              *  by interface-qualifier."
6375              */
6376             qualifier.flags.i |= block_interface_qualifier;
6377          } else if ((qualifier.flags.i & interface_type_mask) !=
6378                     block_interface_qualifier) {
6379             /* GLSLangSpec.1.50.11, 4.3.7 (Interface Blocks):
6380              * "If optional qualifiers are used, they can include interpolation
6381              *  and storage qualifiers and they must declare an input, output,
6382              *  or uniform variable consistent with the interface qualifier of
6383              *  the block."
6384              */
6385             _mesa_glsl_error(& (yylsp[-6]), state,
6386                              "uniform/in/out qualifier on "
6387                              "interface block member does not match "
6388                              "the interface block");
6389          }
6390       }
6391 
6392       (yyval.interface_block) = block;
6393    }
6394 #line 6395 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6395     break;
6396 
6397   case 375:
6398 #line 2561 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6399     {
6400       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
6401 	  (yyval.type_qualifier).precision = ast_precision_none;
6402       (yyval.type_qualifier).flags.q.in = 1;
6403    }
6404 #line 6405 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6405     break;
6406 
6407   case 376:
6408 #line 2567 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6409     {
6410       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
6411 	  (yyval.type_qualifier).precision = ast_precision_none;
6412       (yyval.type_qualifier).flags.q.out = 1;
6413    }
6414 #line 6415 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6415     break;
6416 
6417   case 377:
6418 #line 2573 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6419     {
6420       memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
6421 	  (yyval.type_qualifier).precision = ast_precision_none;
6422       (yyval.type_qualifier).flags.q.uniform = 1;
6423    }
6424 #line 6425 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6425     break;
6426 
6427   case 378:
6428 #line 2582 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6429     {
6430       (yyval.interface_block) = new(state) ast_interface_block(*state->default_uniform_qualifier,
6431                                           NULL, NULL);
6432    }
6433 #line 6434 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6434     break;
6435 
6436   case 379:
6437 #line 2587 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6438     {
6439       (yyval.interface_block) = new(state) ast_interface_block(*state->default_uniform_qualifier,
6440                                           (yyvsp[0].identifier), NULL);
6441       (yyval.interface_block)->set_location((yylsp[0]));
6442    }
6443 #line 6444 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6444     break;
6445 
6446   case 380:
6447 #line 2593 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6448     {
6449       (yyval.interface_block) = new(state) ast_interface_block(*state->default_uniform_qualifier,
6450                                           (yyvsp[-1].identifier), (yyvsp[0].array_specifier));
6451       (yyval.interface_block)->set_location_range((yylsp[-1]), (yylsp[0]));
6452    }
6453 #line 6454 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6454     break;
6455 
6456   case 381:
6457 #line 2602 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6458     {
6459       (yyval.declarator_list) = (yyvsp[0].declarator_list);
6460       (yyvsp[0].declarator_list)->link.self_link();
6461    }
6462 #line 6463 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6463     break;
6464 
6465   case 382:
6466 #line 2607 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6467     {
6468       (yyval.declarator_list) = (yyvsp[-1].declarator_list);
6469       (yyvsp[0].declarator_list)->link.insert_before(& (yyval.declarator_list)->link);
6470    }
6471 #line 6472 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6472     break;
6473 
6474   case 383:
6475 #line 2615 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6476     {
6477       void *ctx = state;
6478       ast_fully_specified_type *type = (yyvsp[-2].fully_specified_type);
6479       type->set_location((yylsp[-2]));
6480 
6481       if (type->qualifier.flags.q.attribute) {
6482          _mesa_glsl_error(& (yylsp[-2]), state,
6483                           "keyword 'attribute' cannot be used with "
6484                           "interface block member");
6485       } else if (type->qualifier.flags.q.varying) {
6486          _mesa_glsl_error(& (yylsp[-2]), state,
6487                           "keyword 'varying' cannot be used with "
6488                           "interface block member");
6489       }
6490 
6491       (yyval.declarator_list) = new(ctx) ast_declarator_list(type);
6492       (yyval.declarator_list)->set_location((yylsp[-1]));
6493 
6494       (yyval.declarator_list)->declarations.push_degenerate_list_at_head(& (yyvsp[-1].declaration)->link);
6495    }
6496 #line 6497 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6497     break;
6498 
6499   case 384:
6500 #line 2639 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6501     {
6502       if (!state->default_uniform_qualifier->merge_qualifier(& (yylsp[-2]), state, (yyvsp[-2].type_qualifier))) {
6503          YYERROR;
6504       }
6505       (yyval.node) = NULL;
6506    }
6507 #line 6508 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6508     break;
6509 
6510   case 385:
6511 #line 2647 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6512     {
6513       (yyval.node) = NULL;
6514       if (!state->in_qualifier->merge_in_qualifier(& (yylsp[-2]), state, (yyvsp[-2].type_qualifier), (yyval.node))) {
6515          YYERROR;
6516       }
6517    }
6518 #line 6519 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6519     break;
6520 
6521   case 386:
6522 #line 2655 "src/glsl/glsl_parser.yy" /* yacc.c:1646  */
6523     {
6524       if (state->stage != MESA_SHADER_GEOMETRY) {
6525          _mesa_glsl_error(& (yylsp[-2]), state,
6526                           "out layout qualifiers only valid in "
6527                           "geometry shaders");
6528       } else {
6529          if ((yyvsp[-2].type_qualifier).flags.q.prim_type) {
6530             /* Make sure this is a valid output primitive type. */
6531             switch ((yyvsp[-2].type_qualifier).prim_type) {
6532             case GL_POINTS:
6533             case GL_LINE_STRIP:
6534             case GL_TRIANGLE_STRIP:
6535                break;
6536             default:
6537                _mesa_glsl_error(&(yylsp[-2]), state, "invalid geometry shader output "
6538                                 "primitive type");
6539                break;
6540             }
6541          }
6542          if (!state->out_qualifier->merge_qualifier(& (yylsp[-2]), state, (yyvsp[-2].type_qualifier)))
6543             YYERROR;
6544 
6545          /* Allow future assigments of global out's stream id value */
6546          state->out_qualifier->flags.q.explicit_stream = 0;
6547       }
6548       (yyval.node) = NULL;
6549    }
6550 #line 6551 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6551     break;
6552 
6553 
6554 #line 6555 "src/glsl/glsl_parser.cpp" /* yacc.c:1646  */
6555       default: break;
6556     }
6557   /* User semantic actions sometimes alter yychar, and that requires
6558      that yytoken be updated with the new translation.  We take the
6559      approach of translating immediately before every use of yytoken.
6560      One alternative is translating here after every semantic action,
6561      but that translation would be missed if the semantic action invokes
6562      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6563      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
6564      incorrect destructor might then be invoked immediately.  In the
6565      case of YYERROR or YYBACKUP, subsequent parser actions might lead
6566      to an incorrect destructor call or verbose syntax error message
6567      before the lookahead is translated.  */
6568   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6569 
6570   YYPOPSTACK (yylen);
6571   yylen = 0;
6572   YY_STACK_PRINT (yyss, yyssp);
6573 
6574   *++yyvsp = yyval;
6575   *++yylsp = yyloc;
6576 
6577   /* Now 'shift' the result of the reduction.  Determine what state
6578      that goes to, based on the state we popped back to and the rule
6579      number reduced by.  */
6580 
6581   yyn = yyr1[yyn];
6582 
6583   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
6584   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
6585     yystate = yytable[yystate];
6586   else
6587     yystate = yydefgoto[yyn - YYNTOKENS];
6588 
6589   goto yynewstate;
6590 
6591 
6592 /*--------------------------------------.
6593 | yyerrlab -- here on detecting error.  |
6594 `--------------------------------------*/
6595 yyerrlab:
6596   /* Make sure we have latest lookahead translation.  See comments at
6597      user semantic actions for why this is necessary.  */
6598   yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6599 
6600   /* If not already recovering from an error, report this error.  */
6601   if (!yyerrstatus)
6602     {
6603       ++yynerrs;
6604 #if ! YYERROR_VERBOSE
6605       yyerror (&yylloc, state, YY_("syntax error"));
6606 #else
6607 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6608                                         yyssp, yytoken)
6609       {
6610         char const *yymsgp = YY_("syntax error");
6611         int yysyntax_error_status;
6612         yysyntax_error_status = YYSYNTAX_ERROR;
6613         if (yysyntax_error_status == 0)
6614           yymsgp = yymsg;
6615         else if (yysyntax_error_status == 1)
6616           {
6617             if (yymsg != yymsgbuf)
6618               YYSTACK_FREE (yymsg);
6619             yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6620             if (!yymsg)
6621               {
6622                 yymsg = yymsgbuf;
6623                 yymsg_alloc = sizeof yymsgbuf;
6624                 yysyntax_error_status = 2;
6625               }
6626             else
6627               {
6628                 yysyntax_error_status = YYSYNTAX_ERROR;
6629                 yymsgp = yymsg;
6630               }
6631           }
6632         yyerror (&yylloc, state, yymsgp);
6633         if (yysyntax_error_status == 2)
6634           goto yyexhaustedlab;
6635       }
6636 # undef YYSYNTAX_ERROR
6637 #endif
6638     }
6639 
6640   yyerror_range[1] = yylloc;
6641 
6642   if (yyerrstatus == 3)
6643     {
6644       /* If just tried and failed to reuse lookahead token after an
6645          error, discard it.  */
6646 
6647       if (yychar <= YYEOF)
6648         {
6649           /* Return failure if at end of input.  */
6650           if (yychar == YYEOF)
6651             YYABORT;
6652         }
6653       else
6654         {
6655           yydestruct ("Error: discarding",
6656                       yytoken, &yylval, &yylloc, state);
6657           yychar = YYEMPTY;
6658         }
6659     }
6660 
6661   /* Else will try to reuse lookahead token after shifting the error
6662      token.  */
6663   goto yyerrlab1;
6664 
6665 
6666 /*---------------------------------------------------.
6667 | yyerrorlab -- error raised explicitly by YYERROR.  |
6668 `---------------------------------------------------*/
6669 yyerrorlab:
6670 
6671   /* Pacify compilers like GCC when the user code never invokes
6672      YYERROR and the label yyerrorlab therefore never appears in user
6673      code.  */
6674   if (/*CONSTCOND*/ 0)
6675      goto yyerrorlab;
6676 
6677   yyerror_range[1] = yylsp[1-yylen];
6678   /* Do not reclaim the symbols of the rule whose action triggered
6679      this YYERROR.  */
6680   YYPOPSTACK (yylen);
6681   yylen = 0;
6682   YY_STACK_PRINT (yyss, yyssp);
6683   yystate = *yyssp;
6684   goto yyerrlab1;
6685 
6686 
6687 /*-------------------------------------------------------------.
6688 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6689 `-------------------------------------------------------------*/
6690 yyerrlab1:
6691   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6692 
6693   for (;;)
6694     {
6695       yyn = yypact[yystate];
6696       if (!yypact_value_is_default (yyn))
6697         {
6698           yyn += YYTERROR;
6699           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6700             {
6701               yyn = yytable[yyn];
6702               if (0 < yyn)
6703                 break;
6704             }
6705         }
6706 
6707       /* Pop the current state because it cannot handle the error token.  */
6708       if (yyssp == yyss)
6709         YYABORT;
6710 
6711       yyerror_range[1] = *yylsp;
6712       yydestruct ("Error: popping",
6713                   yystos[yystate], yyvsp, yylsp, state);
6714       YYPOPSTACK (1);
6715       yystate = *yyssp;
6716       YY_STACK_PRINT (yyss, yyssp);
6717     }
6718 
6719   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6720   *++yyvsp = yylval;
6721   YY_IGNORE_MAYBE_UNINITIALIZED_END
6722 
6723   yyerror_range[2] = yylloc;
6724   /* Using YYLLOC is tempting, but would change the location of
6725      the lookahead.  YYLOC is available though.  */
6726   YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
6727   *++yylsp = yyloc;
6728 
6729   /* Shift the error token.  */
6730   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
6731 
6732   yystate = yyn;
6733   goto yynewstate;
6734 
6735 
6736 /*-------------------------------------.
6737 | yyacceptlab -- YYACCEPT comes here.  |
6738 `-------------------------------------*/
6739 yyacceptlab:
6740   yyresult = 0;
6741   goto yyreturn;
6742 
6743 /*-----------------------------------.
6744 | yyabortlab -- YYABORT comes here.  |
6745 `-----------------------------------*/
6746 yyabortlab:
6747   yyresult = 1;
6748   goto yyreturn;
6749 
6750 #if !defined yyoverflow || YYERROR_VERBOSE
6751 /*-------------------------------------------------.
6752 | yyexhaustedlab -- memory exhaustion comes here.  |
6753 `-------------------------------------------------*/
6754 yyexhaustedlab:
6755   yyerror (&yylloc, state, YY_("memory exhausted"));
6756   yyresult = 2;
6757   /* Fall through.  */
6758 #endif
6759 
6760 yyreturn:
6761   if (yychar != YYEMPTY)
6762     {
6763       /* Make sure we have latest lookahead translation.  See comments at
6764          user semantic actions for why this is necessary.  */
6765       yytoken = YYTRANSLATE (yychar);
6766       yydestruct ("Cleanup: discarding lookahead",
6767                   yytoken, &yylval, &yylloc, state);
6768     }
6769   /* Do not reclaim the symbols of the rule whose action triggered
6770      this YYABORT or YYACCEPT.  */
6771   YYPOPSTACK (yylen);
6772   YY_STACK_PRINT (yyss, yyssp);
6773   while (yyssp != yyss)
6774     {
6775       yydestruct ("Cleanup: popping",
6776                   yystos[*yyssp], yyvsp, yylsp, state);
6777       YYPOPSTACK (1);
6778     }
6779 #ifndef yyoverflow
6780   if (yyss != yyssa)
6781     YYSTACK_FREE (yyss);
6782 #endif
6783 #if YYERROR_VERBOSE
6784   if (yymsg != yymsgbuf)
6785     YYSTACK_FREE (yymsg);
6786 #endif
6787   return yyresult;
6788 }
6789