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