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