Home | History | Annotate | Download | only in mesa
      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 
    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
    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
   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
   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
   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
   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
   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 *
   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
   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
   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
   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
   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