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 
yyerror(YYLTYPE * loc,_mesa_glsl_parse_state * st,const char * msg)115 static void yyerror(YYLTYPE *loc, _mesa_glsl_parse_state *st, const char *msg)
116 {
117    _mesa_glsl_error(loc, st, "%s", msg);
118 }
119 
120 
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
553 typedef 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
603 typedef 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
627 typedef YYTYPE_UINT8 yytype_uint8;
628 #else
629 typedef unsigned char yytype_uint8;
630 #endif
631 
632 #ifdef YYTYPE_INT8
633 typedef YYTYPE_INT8 yytype_int8;
634 #elif (defined __STDC__ || defined __C99__FUNC__ \
635      || defined __cplusplus || defined _MSC_VER)
636 typedef signed char yytype_int8;
637 #else
638 typedef short int yytype_int8;
639 #endif
640 
641 #ifdef YYTYPE_UINT16
642 typedef YYTYPE_UINT16 yytype_uint16;
643 #else
644 typedef unsigned short int yytype_uint16;
645 #endif
646 
647 #ifdef YYTYPE_INT16
648 typedef YYTYPE_INT16 yytype_int16;
649 #else
650 typedef 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)
694 static int
YYID(int yyi)695 YYID (int yyi)
696 #else
697 static int
698 YYID (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)
762 void *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)
769 void 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.  */
782 union 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.  */
860 static 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.  */
913 static 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.  */
950 static 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.  */
1046 static 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.  */
1086 static 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.  */
1172 static 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.  */
1201 static 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.  */
1238 static 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.  */
1277 static 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].  */
1331 static 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
1349 static 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].  */
1403 static 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
1422 static 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 
1743 static 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.  */
2060 static 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)					\
2141 do								\
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     }								\
2154 while (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)			\
2220 do {						\
2221   if (yydebug)					\
2222     YYFPRINTF Args;				\
2223 } while (YYID (0))
2224 
2225 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
2226 do {									  \
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)
2244 static void
yy_symbol_value_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep,YYLTYPE const * const yylocationp,struct _mesa_glsl_parse_state * state)2245 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, struct _mesa_glsl_parse_state *state)
2246 #else
2247 static void
2248 yy_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)
2280 static void
yy_symbol_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep,YYLTYPE const * const yylocationp,struct _mesa_glsl_parse_state * state)2281 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, struct _mesa_glsl_parse_state *state)
2282 #else
2283 static void
2284 yy_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)
2310 static void
yy_stack_print(yytype_int16 * yybottom,yytype_int16 * yytop)2311 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2312 #else
2313 static void
2314 yy_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)				\
2329 do {								\
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)
2341 static void
yy_reduce_print(YYSTYPE * yyvsp,YYLTYPE * yylsp,int yyrule,struct _mesa_glsl_parse_state * state)2342 yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, struct _mesa_glsl_parse_state *state)
2343 #else
2344 static void
2345 yy_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)		\
2369 do {					\
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.  */
2376 int 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)
2411 static YYSIZE_T
yystrlen(const char * yystr)2412 yystrlen (const char *yystr)
2413 #else
2414 static YYSIZE_T
2415 yystrlen (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)
2435 static char *
yystpcpy(char * yydest,const char * yysrc)2436 yystpcpy (char *yydest, const char *yysrc)
2437 #else
2438 static char *
2439 yystpcpy (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.  */
2463 static YYSIZE_T
yytnamerr(char * yyres,const char * yystr)2464 yytnamerr (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.  */
2511 static int
yysyntax_error(YYSIZE_T * yymsg_alloc,char ** yymsg,yytype_int16 * yyssp,int yytoken)2512 yysyntax_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)
2647 static void
yydestruct(const char * yymsg,int yytype,YYSTYPE * yyvaluep,YYLTYPE * yylocationp,struct _mesa_glsl_parse_state * state)2648 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, struct _mesa_glsl_parse_state *state)
2649 #else
2650 static void
2651 yydestruct (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
2679 int yyparse (void *YYPARSE_PARAM);
2680 #else
2681 int yyparse ();
2682 #endif
2683 #else /* ! YYPARSE_PARAM */
2684 #if defined __STDC__ || defined __cplusplus
2685 int yyparse (struct _mesa_glsl_parse_state *state);
2686 #else
2687 int 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)
2699 int
yyparse(void * YYPARSE_PARAM)2700 yyparse (void *YYPARSE_PARAM)
2701 #else
2702 int
2703 yyparse (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)
2709 int
2710 yyparse (struct _mesa_glsl_parse_state *state)
2711 #else
2712 int
2713 yyparse (state)
2714     struct _mesa_glsl_parse_state *state;
2715 #endif
2716 #endif
2717 {
2718 /* The lookahead symbol.  */
2719 int yychar;
2720 
2721 /* The semantic value of the lookahead symbol.  */
2722 YYSTYPE yylval;
2723 
2724 /* Location data for the lookahead symbol.  */
2725 YYLTYPE 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 `-----------*/
2916 yybackup:
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 `-----------------------------------------------------------*/
2980 yydefault:
2981   yyn = yydefact[yystate];
2982   if (yyn == 0)
2983     goto yyerrlab;
2984   goto yyreduce;
2985 
2986 
2987 /*-----------------------------.
2988 | yyreduce -- Do a reduction.  |
2989 `-----------------------------*/
2990 yyreduce:
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 `------------------------------------*/
5790 yyerrlab:
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 `---------------------------------------------------*/
5864 yyerrorlab:
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 `-------------------------------------------------------------*/
5885 yyerrlab1:
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 `-------------------------------------*/
5932 yyacceptlab:
5933   yyresult = 0;
5934   goto yyreturn;
5935 
5936 /*-----------------------------------.
5937 | yyabortlab -- YYABORT comes here.  |
5938 `-----------------------------------*/
5939 yyabortlab:
5940   yyresult = 1;
5941   goto yyreturn;
5942 
5943 #if !defined(yyoverflow) || YYERROR_VERBOSE
5944 /*-------------------------------------------------.
5945 | yyexhaustedlab -- memory exhaustion comes here.  |
5946 `-------------------------------------------------*/
5947 yyexhaustedlab:
5948   yyerror (&yylloc, state, YY_("memory exhausted"));
5949   yyresult = 2;
5950   /* Fall through.  */
5951 #endif
5952 
5953 yyreturn:
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