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