glsl: Remove files generated by flex and bison from GIT
authorIan Romanick <ian.d.romanick@intel.com>
Mon, 31 Jan 2011 23:41:12 +0000 (15:41 -0800)
committerIan Romanick <ian.d.romanick@intel.com>
Tue, 1 Mar 2011 21:43:12 +0000 (13:43 -0800)
src/glsl/glsl_lexer.cpp [deleted file]
src/glsl/glsl_parser.cpp [deleted file]
src/glsl/glsl_parser.h [deleted file]

diff --git a/src/glsl/glsl_lexer.cpp b/src/glsl/glsl_lexer.cpp
deleted file mode 100644 (file)
index 40d2294..0000000
+++ /dev/null
@@ -1,3726 +0,0 @@
-#line 2 "glsl_lexer.cpp"
-
-#line 4 "glsl_lexer.cpp"
-
-#define  YY_INT_ALIGNED short int
-
-/* A lexical scanner generated by flex */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 35
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-/* First, we deal with  platform-specific or compiler-specific issues. */
-
-/* begin standard C headers. */
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-
-/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types. 
- */
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS 1
-#endif
-
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t; 
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
-
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN               (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN              (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN              (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX               (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX              (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX              (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX              (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX             (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX             (4294967295U)
-#endif
-
-#endif /* ! FLEXINT_H */
-
-#ifdef __cplusplus
-
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
-
-#else  /* ! __cplusplus */
-
-/* C99 requires __STDC__ to be defined as 1. */
-#if defined (__STDC__)
-
-#define YY_USE_CONST
-
-#endif /* defined (__STDC__) */
-#endif /* ! __cplusplus */
-
-#ifdef YY_USE_CONST
-#define yyconst const
-#else
-#define yyconst
-#endif
-
-/* Returned upon end-of-file. */
-#define YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index.  If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
- */
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-
-/* An opaque pointer. */
-#ifndef YY_TYPEDEF_YY_SCANNER_T
-#define YY_TYPEDEF_YY_SCANNER_T
-typedef void* yyscan_t;
-#endif
-
-/* For convenience, these vars (plus the bison vars far below)
-   are macros in the reentrant scanner. */
-#define yyin yyg->yyin_r
-#define yyout yyg->yyout_r
-#define yyextra yyg->yyextra_r
-#define yyleng yyg->yyleng_r
-#define yytext yyg->yytext_r
-#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
-#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
-#define yy_flex_debug yyg->yy_flex_debug_r
-
-/* Enter a start condition.  This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN yyg->yy_start = 1 + 2 *
-
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state.  The YYSTATE alias is for lex
- * compatibility.
- */
-#define YY_START ((yyg->yy_start - 1) / 2)
-#define YYSTATE YY_START
-
-/* Action number for EOF rule of a given start state. */
-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
-/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE _mesa_glsl_restart(yyin ,yyscanner )
-
-#define YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
-#define YY_BUF_SIZE 16384
-#endif
-
-/* The state buf must be large enough to hold one state per character in the main buffer.
- */
-#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
-
-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-#define YY_TYPEDEF_YY_BUFFER_STATE
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
-    #define YY_LESS_LINENO(n)
-    
-/* Return all but the first "n" matched characters back to the input stream. */
-#define yyless(n) \
-       do \
-               { \
-               /* Undo effects of setting up yytext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-               *yy_cp = yyg->yy_hold_char; \
-               YY_RESTORE_YY_MORE_OFFSET \
-               yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-               YY_DO_BEFORE_ACTION; /* set up yytext again */ \
-               } \
-       while ( 0 )
-
-#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
-#ifndef YY_STRUCT_YY_BUFFER_STATE
-#define YY_STRUCT_YY_BUFFER_STATE
-struct yy_buffer_state
-       {
-       FILE *yy_input_file;
-
-       char *yy_ch_buf;                /* input buffer */
-       char *yy_buf_pos;               /* current position in input buffer */
-
-       /* Size of input buffer in bytes, not including room for EOB
-        * characters.
-        */
-       yy_size_t yy_buf_size;
-
-       /* Number of characters read into yy_ch_buf, not including EOB
-        * characters.
-        */
-       int yy_n_chars;
-
-       /* Whether we "own" the buffer - i.e., we know we created it,
-        * and can realloc() it to grow it, and should free() it to
-        * delete it.
-        */
-       int yy_is_our_buffer;
-
-       /* Whether this is an "interactive" input source; if so, and
-        * if we're using stdio for input, then we want to use getc()
-        * instead of fread(), to make sure we stop fetching input after
-        * each newline.
-        */
-       int yy_is_interactive;
-
-       /* Whether we're considered to be at the beginning of a line.
-        * If so, '^' rules will be active on the next match, otherwise
-        * not.
-        */
-       int yy_at_bol;
-
-    int yy_bs_lineno; /**< The line count. */
-    int yy_bs_column; /**< The column count. */
-    
-       /* Whether to try to fill the input buffer when we reach the
-        * end of it.
-        */
-       int yy_fill_buffer;
-
-       int yy_buffer_status;
-
-#define YY_BUFFER_NEW 0
-#define YY_BUFFER_NORMAL 1
-       /* When an EOF's been seen but there's still some text to process
-        * then we mark the buffer as YY_EOF_PENDING, to indicate that we
-        * shouldn't try reading from the input source any more.  We might
-        * still have a bunch of tokens to match, though, because of
-        * possible backing-up.
-        *
-        * When we actually see the EOF, we change the status to "new"
-        * (via _mesa_glsl_restart()), so that the user can continue scanning by
-        * just pointing yyin at a new input file.
-        */
-#define YY_BUFFER_EOF_PENDING 2
-
-       };
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- *
- * Returns the top of the stack, or NULL.
- */
-#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
-                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
-                          : NULL)
-
-/* Same as previous macro, but useful when we know that the buffer stack is not
- * NULL or when we need an lvalue. For internal use only.
- */
-#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
-
-void _mesa_glsl_restart (FILE *input_file ,yyscan_t yyscanner );
-void _mesa_glsl__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
-YY_BUFFER_STATE _mesa_glsl__create_buffer (FILE *file,int size ,yyscan_t yyscanner );
-void _mesa_glsl__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
-void _mesa_glsl__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
-void _mesa_glsl_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
-void _mesa_glsl_pop_buffer_state (yyscan_t yyscanner );
-
-static void _mesa_glsl_ensure_buffer_stack (yyscan_t yyscanner );
-static void _mesa_glsl__load_buffer_state (yyscan_t yyscanner );
-static void _mesa_glsl__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
-
-#define YY_FLUSH_BUFFER _mesa_glsl__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
-
-YY_BUFFER_STATE _mesa_glsl__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
-YY_BUFFER_STATE _mesa_glsl__scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
-YY_BUFFER_STATE _mesa_glsl__scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
-
-void *_mesa_glsl_alloc (yy_size_t ,yyscan_t yyscanner );
-void *_mesa_glsl_realloc (void *,yy_size_t ,yyscan_t yyscanner );
-void _mesa_glsl_free (void * ,yyscan_t yyscanner );
-
-#define yy_new_buffer _mesa_glsl__create_buffer
-
-#define yy_set_interactive(is_interactive) \
-       { \
-       if ( ! YY_CURRENT_BUFFER ){ \
-        _mesa_glsl_ensure_buffer_stack (yyscanner); \
-               YY_CURRENT_BUFFER_LVALUE =    \
-            _mesa_glsl__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
-       } \
-       YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
-       }
-
-#define yy_set_bol(at_bol) \
-       { \
-       if ( ! YY_CURRENT_BUFFER ){\
-        _mesa_glsl_ensure_buffer_stack (yyscanner); \
-               YY_CURRENT_BUFFER_LVALUE =    \
-            _mesa_glsl__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
-       } \
-       YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
-       }
-
-#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
-
-/* Begin user sect3 */
-
-#define _mesa_glsl_wrap(n) 1
-#define YY_SKIP_YYWRAP
-
-typedef unsigned char YY_CHAR;
-
-typedef int yy_state_type;
-
-#define yytext_ptr yytext_r
-
-static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
-static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
-static int yy_get_next_buffer (yyscan_t yyscanner );
-static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
- */
-#define YY_DO_BEFORE_ACTION \
-       yyg->yytext_ptr = yy_bp; \
-       yyleng = (size_t) (yy_cp - yy_bp); \
-       yyg->yy_hold_char = *yy_cp; \
-       *yy_cp = '\0'; \
-       yyg->yy_c_buf_p = yy_cp;
-
-#define YY_NUM_RULES 210
-#define YY_END_OF_BUFFER 211
-/* This struct is not used in this scanner,
-   but its presence is necessary. */
-struct yy_trans_info
-       {
-       flex_int32_t yy_verify;
-       flex_int32_t yy_nxt;
-       };
-static yyconst flex_int16_t yy_accept[836] =
-    {   0,
-        0,    0,   16,   16,    0,    0,  211,  209,    1,   21,
-      209,  209,  209,  209,  209,  209,  209,  209,  120,  118,
-      209,  209,  209,  208,  209,  208,  208,  208,  208,  208,
-      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-      208,  208,  208,  208,  208,  209,    1,  209,  210,   16,
-       20,  210,   19,   17,   18,   14,   13,    1,  102,  111,
-      103,  114,  108,   97,  110,   98,  117,  122,  109,  123,
-      120,    0,    0,  125,  120,    0,  118,  118,  106,   99,
-      101,  100,  107,  208,  115,  105,  208,  208,  208,  208,
-      208,  208,  208,  208,  208,  208,  208,  208,   30,  208,
-
-      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-      208,  208,   34,  208,  208,   61,  208,  208,  208,  208,
-      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-      208,  208,  208,  208,  208,  208,  208,  208,  208,  116,
-      104,    1,    0,    0,    2,    0,    0,    0,    0,   16,
-       15,   19,   18,    0,  122,  121,    0,  123,    0,  124,
-      119,  112,  113,  208,  128,  208,  208,  208,  208,  208,
-      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-      208,  208,  208,  208,  208,  208,   33,  208,  208,  208,
-
-      208,  208,  208,  208,  208,  208,  208,   26,  208,  208,
-      208,  208,  208,  208,  208,  208,  208,  208,  208,   62,
-      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-        0,    0,    0,    0,   15,    0,  122,    0,  121,    0,
-      123,  124,  119,  208,  208,   24,  208,  208,  175,  168,
-      208,  208,  208,  208,  208,  208,  208,  208,  208,   32,
-      131,  208,  208,  208,  208,   68,  208,  208,  136,  150,
-      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-
-      208,  208,  147,  171,   49,   50,   51,  208,  208,  208,
-      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-      208,  208,  208,  208,  208,  208,  208,  134,  126,  208,
-      208,   27,  208,  208,  208,  208,  208,  208,  208,   46,
-       47,   48,   95,  208,  208,    0,    0,    0,    0,    0,
-      121,  208,  208,   28,   37,   38,   39,  208,  129,  208,
-       23,  208,  208,  208,  208,  158,  159,  160,  208,  127,
-      208,  151,   25,  161,  162,  163,  173,  155,  156,  157,
-      208,  208,  208,   63,  153,  208,  208,  208,   40,   41,
-       42,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-
-      208,  208,  208,  208,  208,  208,  208,  148,  208,  208,
-      208,  208,  208,  208,  208,  208,  208,  208,  130,  208,
-      208,  170,   43,   44,   45,  208,  208,   31,    0,    0,
-        0,    0,  178,  208,  208,  176,  208,  208,  208,  149,
-      144,  181,  208,  208,  208,  208,  208,  208,  139,  208,
-      208,  208,   96,   52,   53,   54,   55,   56,   57,   58,
-       59,   60,  208,  208,  208,  208,  154,  135,  208,  208,
-      142,   36,  208,  208,  167,   69,  143,   94,  179,  137,
-      208,  208,  208,  208,  208,  208,  208,  208,    0,    0,
-        0,    0,  208,  208,  208,  138,   35,  208,  208,  208,
-
-      208,  208,  208,  182,  183,  184,  208,  208,  208,  208,
-      208,  172,  208,  208,  208,  208,  208,  208,  208,  208,
-      132,  208,  208,  208,  208,  208,   64,  208,  208,   65,
-      208,    0,    0,    0,    0,    0,  208,   66,   29,  145,
-      186,  187,  188,  208,  208,  208,  208,  208,  208,  208,
-      208,  208,  208,  208,  208,  140,  208,  208,  208,  208,
-      208,  208,  208,  208,  208,  133,  190,  191,  192,  208,
-      208,  152,  208,  141,    0,    0,    6,    0,    0,    0,
-       12,    3,   22,  208,  208,  208,  208,  208,  208,  208,
-      208,  208,  185,  146,   67,  208,  208,  208,  208,  169,
-
-      208,  177,  174,  207,   71,   72,   73,  208,  208,  208,
-      208,  208,  208,  208,  208,  208,  208,    0,    0,    0,
-        0,    0,    0,    0,  208,  208,  208,  189,  208,  208,
-      208,  208,  208,   82,   83,   84,  208,  208,  208,  208,
-      208,  208,  208,  208,  208,  208,  208,  208,  208,  193,
-       88,   89,   90,  208,    4,    0,    5,    0,    0,    0,
-        0,    0,    0,  208,  208,  208,  208,  208,  208,  208,
-      204,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-      208,  208,   74,  208,  208,  208,  208,  208,  208,    0,
-        0,    0,    0,  208,  208,  205,  194,  208,  195,  208,
-
-      208,  208,   85,  208,  208,  208,  208,  208,  208,  208,
-      208,  208,  208,  208,  206,  208,  208,   91,    0,    0,
-        0,  196,  197,  208,  200,  208,  201,  208,  208,   70,
-      208,  208,  208,  164,  208,  165,  180,  208,  198,  199,
-      208,  208,    0,    0,    0,  208,  208,  208,  208,   75,
-      208,   76,  208,  208,  208,  208,  208,    0,    0,    0,
-        0,  208,  208,   86,   87,  208,   77,  208,  208,   78,
-      208,   92,   93,    0,    0,    0,    0,  208,  208,  208,
-      208,  208,  208,    0,    0,    0,    0,  208,  208,  208,
-      208,  208,   79,    0,    0,    0,    7,    0,    0,  202,
-
-      203,  208,  208,  208,    0,    0,    8,    0,    0,  208,
-      208,  166,    0,    0,    0,   80,   81,    0,    0,    0,
-        9,    0,    0,   10,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   11,    0
-    } ;
-
-static yyconst flex_int32_t yy_ec[256] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
-        1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    2,    5,    1,    6,    1,    7,    8,    1,    9,
-       10,   11,   12,    1,   13,   14,   15,   16,   17,   18,
-       19,   20,   21,   21,   21,   22,   22,   23,    1,   24,
-       25,   26,    1,    1,   27,   28,   29,   30,   31,   32,
-       33,   34,   34,   34,   34,   35,   34,   34,   34,   34,
-       34,   36,   37,   38,   39,   34,   34,   40,   34,   34,
-        1,    1,    1,   41,   42,    1,   43,   44,   45,   46,
-
-       47,   48,   49,   50,   51,   52,   53,   54,   55,   56,
-       57,   58,   34,   59,   60,   61,   62,   63,   64,   65,
-       66,   67,    1,   68,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1
-    } ;
-
-static yyconst flex_int32_t yy_meta[69] =
-    {   0,
-        1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    3,    3,    3,    3,    3,
-        3,    3,    1,    1,    1,    1,    4,    4,    4,    4,
-        3,    3,    5,    5,    5,    5,    5,    5,    5,    5,
-        1,    5,    4,    4,    4,    4,    3,    3,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    1
-    } ;
-
-static yyconst flex_int16_t yy_base[845] =
-    {   0,
-        0,   67,   73,    0, 1210, 1209, 1211, 1214,   68, 1214,
-     1185, 1184,  134, 1183,  131,  132,  130, 1182,  146,  198,
-      129, 1181,  144,    0,  130,  113,  124,  141,  150,  126,
-      181, 1148,  159,  192,  118,  129,  146, 1142,  147,  174,
-      206,  192,  203,  222, 1153,  203,  221,  231, 1214,  260,
-     1214, 1187,  279, 1214,    0, 1214, 1214,  270, 1214, 1214,
-     1214, 1214, 1214, 1214, 1214, 1214, 1214,  244, 1214,  255,
-      139,  290,  307, 1214, 1214,    0,    0, 1214, 1176, 1214,
-     1214, 1214, 1175,    0, 1214, 1214, 1138, 1143, 1136, 1139,
-     1148, 1147, 1133, 1136, 1148,  144, 1142, 1129, 1126, 1140,
-
-     1126, 1123, 1123, 1129,  219,  193, 1123, 1134, 1119, 1125,
-     1129, 1130,    0, 1121, 1132,  278, 1131, 1126, 1106,  224,
-     1110, 1124, 1114,  232, 1107,  271, 1120, 1122, 1104, 1100,
-     1108, 1105, 1094, 1103,  234, 1101, 1107, 1102, 1105, 1093,
-     1096,  226,  145,  262, 1106, 1093, 1106,  263, 1099, 1214,
-     1214,  338,  331,  343, 1214, 1084, 1097, 1088, 1099,  345,
-        0,  334,    0,  345, 1214,  328,  391, 1214,  352,  398,
-      338, 1214, 1214, 1094,    0, 1085, 1089, 1099, 1096,  332,
-     1079, 1079, 1083,  320, 1094, 1091, 1091, 1089, 1086, 1077,
-     1084, 1070, 1068, 1081, 1066, 1083,    0, 1080, 1067, 1075,
-
-     1072, 1076, 1077, 1070, 1067, 1055, 1054, 1068, 1071, 1058,
-     1067, 1054, 1061, 1051,  364, 1057, 1060, 1050, 1058, 1046,
-     1050, 1041, 1056, 1046, 1037, 1056, 1039, 1037, 1048, 1037,
-     1032, 1030, 1044, 1029, 1031, 1028, 1040, 1039, 1042, 1023,
-      338, 1032, 1027, 1025, 1035, 1013,  403, 1032, 1034, 1022,
-     1014, 1018, 1030, 1013,    0,  415,  422,  439, 1214,  446,
-      455, 1214, 1214, 1008, 1019,    0, 1016,  406,    0,    0,
-     1009, 1007, 1009, 1004, 1013, 1001, 1019, 1007,  409,    0,
-        0, 1001, 1012, 1011, 1011,    0,  995,  429,    0,    0,
-      997,  460, 1005, 1006,  996,  990,  989,  990,  989,  989,
-
-      463,  984,    0,    0,  980,  979,  978,  980,  981,  986,
-      980,  976,  990,  985,  984,  983,  974,  977,  977,  969,
-      972,  967,  976,  981,  966,  979,  969,    0,    0,  976,
-      972,    0,  963,  963,  969,  959,  967,  466,  964,    0,
-        0,    0,    0,  953,  966,  965,  964,  961,  949,  472,
-      479,  961,  963,    0,    0,    0,    0,  949,    0,  949,
-        0,  948,  949,  943,  954,    0,    0,    0,  944,    0,
-      940,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      951,  487,  950,    0,    0,  948,  944,  940,    0,    0,
-        0,  932,  489,  494,  499,  937,  933,  939,  929,  927,
-
-      941,  925,  925,  939,  927,  939,  934,    0,  932,  929,
-      933,  916,  918,  925,  931,  926,  925,  912,    0,  914,
-      915,    0,    0,    0,    0,  912,  916,    0,  910,  963,
-      909,  912,    0,  900,  910,    0,  898,  898,  912,    0,
-      914,    0,  503,  926,  925,  924,  891,  890,    0,  908,
-      907,  902,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  890,  904,  890,  887,    0,    0,  893,  892,
-        0,    0,  890,  882,    0,    0,    0,    0,    0,    0,
-      879,  891,  506,  883,  890,  889,  886,  880,  873,  524,
-      889,  874,  869,  883,  881,    0,    0,  873,  896,  895,
-
-      894,  861,  860,  361,  365,    0,  873,  876,  874,  862,
-      858,    0,  871,  868,  867,  856,  855,  854,  519,  863,
-        0,  879,  878,  877,  844,  843,    0,  858,  844,    0,
-      855,  850,  547,  553,  898,  843,  851,    0,    0,    0,
-      870,  869,    0,  847,  850,  834,  842,  832,  840,  841,
-      841,  840,  825,  559,  838,    0,  839,  827,  826,  822,
-      850,  849,  848,  815,  814,    0,  848,  847,    0,  825,
-      828,    0,  562,    0,  814,  580, 1214,  587,    0,  607,
-      584, 1214,    0,  811,  810,  820,  820,  807,  822,  805,
-      820,  815,    0,    0,    0,  831,  830,  829,  796,    0,
-
-      796,    0,    0,    0,  502,  524,  820,  807,  810,  794,
-      793,  803,  803,  819,  818,  817,  784,  789,  615,  640,
-      550,  806,  796,  784,  782,  781,  792,    0,  795,  791,
-      793,  789,  775,  806,  805,    0,  787,  779,  770,  778,
-      768,  779,  775,  777,  775,  775,  762,  761,  772,    0,
-      791,  790,    0,  772, 1214,  555, 1214,  647,    0,  667,
-      785,  770,  752,  769,  768,  751,  743,  751,  741,  749,
-        0,  746,  745,  756,  739,  742,  757,  740,  753,  754,
-      751,  748,  757,  750,  749,  732,  731,  730,  741,  582,
-      754,  724,  734,  718,  717,    0,  745,  717,  743,  715,
-
-      719,  718,    0,  729,  732,  728,  730,  711,  725,  709,
-      710,  718,  701,  700,    0,  706,  705,    0,  728,  713,
-      706,    0,    0,  710,    0,  709,    0,  715,  714,    0,
-      690,  698,  688,  716,  695,    0,    0,  708,    0,    0,
-      707,  706,  746,  611,  696,  703,  702,  678,  677,  705,
-      677,  703,  689,  674,  691,  670,  669,  190,  613,  557,
-      667,  687,  686,    0,    0,  681,    0,  680,  686,    0,
-      671,    0,    0,  671,  590,  343,  672,  645,  644,  654,
-      635,  631,  612,  612,  604,  443,  635,  576,  575,  549,
-       25,   87,    0,  183,  500,  552, 1214,  636,  591,    0,
-
-        0,  196,  258,  254,  272,  609, 1214,  614,  598,  279,
-      284,    0,  336,  348,  671,    0,    0,  362,  672,  688,
-     1214,  394,  689, 1214,  408,  670,  691,  649,  651,  474,
-      476,  693,  694, 1214, 1214,  704,  707,  710,  530,  591,
-      713,  717,  720,  722
-    } ;
-
-static yyconst flex_int16_t yy_def[845] =
-    {   0,
-      835,    1,  835,    3,  836,  836,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  837,  835,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  838,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  839,  835,  840,
-       19,  835,  835,  835,  835,  841,   20,  835,  835,  835,
-      835,  835,  835,  837,  835,  835,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      842,  835,  838,  835,  835,  840,  835,  835,  835,  835,
-      841,  835,  835,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      835,  835,  835,  835,  842,  835,  835,  835,  835,  835,
-      835,  835,  835,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  835,  835,  835,  835,  835,
-      835,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  835,  835,
-      835,  835,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  835,  835,
-      835,  835,  837,  837,  837,  837,  837,  837,  837,  837,
-
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  835,  835,  835,  835,  835,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  835,  835,  835,  835,  843,  835,
-      835,  835,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  835,  835,  835,
-      843,  835,  835,  835,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  835,  835,  835,  835,  844,  835,
-      835,  835,  835,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  844,
-      835,  835,  835,  837,  837,  837,  837,  837,  837,  837,
-
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  835,  835,
-      835,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  835,  835,  835,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  835,  835,  835,
-      835,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  835,  835,  835,  835,  837,  837,  837,
-      837,  837,  837,  835,  835,  835,  835,  837,  837,  837,
-      837,  837,  837,  835,  835,  835,  835,  835,  835,  837,
-
-      837,  837,  837,  837,  835,  835,  835,  835,  835,  837,
-      837,  837,  835,  835,  835,  837,  837,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,    0,  835,  835,  835,  835,  835,
-      835,  835,  835,  835
-    } ;
-
-static yyconst flex_int16_t yy_nxt[1283] =
-    {   0,
-        8,    9,   10,    9,   11,    8,   12,   13,    8,    8,
-       14,   15,   16,   17,   18,   19,   20,   20,   20,   20,
-       20,   20,    8,   21,   22,   23,   24,   24,   24,   24,
-       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
-       25,   24,   26,   27,   28,   29,   30,   31,   32,   33,
-       34,   24,   24,   35,   36,   37,   38,   39,   40,   41,
-       42,   43,   44,   45,   24,   24,   24,   46,   47,   58,
-      803,   58,   48,   49,   50,   51,   50,   49,   49,   49,
-       49,   49,   49,   49,   49,   49,   49,   52,   49,   53,
-       53,   53,   53,   53,   53,   54,   49,   49,   49,   55,
-
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   49,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       49,   61,   64,  804,   66,   68,   68,   68,   68,   68,
-       68,   68,   79,   80,   85,   65,   67,   87,   62,   70,
-      119,   71,   71,   71,   71,   71,   71,   72,   82,   83,
-       86,  121,   88,   89,  120,  122,   73,   74,  835,  101,
-       90,  102,   91,   93,   75,   76,   92,   94,  123,  126,
-      103,  758,   73,   74,   95,  241,   97,   96,  183,  184,
-
-       98,  110,  124,  835,  242,  127,   99,   75,  128,  111,
-       76,   70,  100,   77,   77,   77,   77,   77,   77,   77,
-      129,  112,  152,  104,   58,  805,  153,  150,   73,   74,
-      130,  105,  154,  155,  106,  195,   78,  107,  138,  113,
-      774,  139,  114,  108,   73,   74,  115,  116,  131,  196,
-      140,  117,  810,  142,  118,  132,  133,  141,  143,   78,
-      134,  160,  144,  160,  146,  145,  135,  136,  147,  137,
-      151,   58,  193,   58,  164,  165,  231,  156,  148,  213,
-      239,  240,  218,  194,  157,  167,  168,  214,  158,  219,
-      164,  165,  232,  159,  162,  162,  162,  162,  162,  162,
-
-      162,  167,  168,   70,  243,   72,   72,   72,   72,   72,
-       72,   72,  244,  248,  811,  221,  249,  812,  169,  169,
-       73,   74,  170,  170,  170,  170,  170,  170,  170,  222,
-      813,  205,  154,  155,  206,  207,   73,   74,  208,  152,
-      209,   58,  816,  153,  154,  155,  160,  817,  160,  162,
-      162,  162,  162,  162,  162,  162,  256,  256,  258,  259,
-      257,  257,  257,  257,  257,  257,  257,  170,  170,  170,
-      170,  170,  170,  170,  258,  259,  263,  156,  269,  274,
-      275,  305,  306,  307,  157,  333,  818,  546,  158,  156,
-      785,  548,  270,  159,  334,  819,  157,  547,  786,  263,
-
-      158,  549,  260,  260,  822,  159,  261,  261,  261,  261,
-      261,  261,  261,  170,  170,  170,  170,  170,  170,  170,
-      340,  341,  342,  355,  356,  357,  366,  367,  368,  262,
-      257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
-      257,  257,  257,  257,  796,  262,  374,  375,  376,  825,
-      350,  350,  797,  165,  351,  351,  351,  351,  351,  351,
-      351,  261,  261,  261,  261,  261,  261,  261,  826,  165,
-      261,  261,  261,  261,  261,  261,  261,  378,  379,  380,
-      389,  390,  391,  423,  424,  425,  168,  351,  351,  351,
-      351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
-
-      351,  806,  168,  444,  445,  446,  454,  455,  456,  807,
-      259,  457,  458,  459,  447,  448,  460,  461,  462,  499,
-      500,  501,  522,  523,  524,  490,  259,  831,  639,  832,
-      502,  503,   68,  525,  526,  561,  562,  563,  640,  533,
-      534,  534,  534,  534,  534,  534,  564,  565,  576,  577,
-      641,  576,  577,  796,  576,  577,  656,  657,  775,  642,
-      643,  797,  578,  578,  578,  578,  578,  578,  580,  580,
-      580,  580,  580,  580,  580,  596,  597,  598,  614,  615,
-      616,  576,  577,  656,  657,  581,  579,  599,  576,  577,
-      617,  775,  808,  166,  802,  619,  620,  620,  620,  620,
-
-      620,  620,  578,  578,  578,  578,  578,  578,  576,  577,
-      806,  579,  759,  776,  759,  808,  656,  657,  807,  760,
-      622,  760,  580,  580,  580,  580,  580,  580,  580,  623,
-      658,  658,  658,  658,  658,  658,  798,  798,  801,  800,
-      624,  656,  657,  799,  799,  814,  776,  809,  656,  657,
-      829,  795,  829,  815,  659,  660,  660,  660,  660,  660,
-      660,  660,  658,  658,  658,  658,  658,  658,  656,  657,
-      809,  827,  820,  823,  794,  793,  792,  791,  828,  659,
-      821,  824,  660,  660,  660,  660,  660,  660,  660,  820,
-      823,  830,  827,  830,  833,  833,  790,  821,  824,  828,
-
-      789,  788,  834,  834,   56,   56,   56,   56,   56,   84,
-       84,   84,  163,  163,  163,  171,  171,  255,  787,  255,
-      255,  255,  621,  621,  690,  690,  784,  783,  782,  781,
-      780,  779,  778,  777,  773,  772,  771,  770,  769,  768,
-      767,  766,  765,  764,  763,  762,  761,  758,  757,  756,
-      755,  754,  753,  752,  751,  750,  749,  748,  747,  746,
-      745,  744,  743,  742,  741,  740,  739,  738,  737,  736,
-      735,  734,  733,  732,  731,  730,  729,  728,  727,  726,
-      725,  724,  723,  722,  721,  720,  719,  718,  717,  716,
-      715,  714,  713,  712,  711,  710,  709,  708,  707,  706,
-
-      705,  704,  703,  702,  701,  700,  699,  698,  697,  696,
-      695,  694,  693,  692,  691,  689,  688,  687,  686,  685,
-      684,  683,  682,  681,  680,  679,  678,  677,  676,  675,
-      674,  673,  672,  671,  670,  669,  668,  667,  666,  665,
-      664,  663,  662,  661,  655,  654,  653,  652,  651,  650,
-      649,  648,  647,  646,  645,  644,  638,  637,  636,  635,
-      634,  633,  632,  631,  630,  629,  628,  627,  626,  625,
-      618,  613,  612,  611,  610,  609,  608,  607,  606,  605,
-      604,  603,  602,  601,  600,  595,  594,  593,  592,  591,
-      590,  589,  588,  587,  586,  585,  584,  583,  582,  581,
-
-      575,  574,  573,  572,  571,  570,  569,  568,  567,  566,
-      560,  559,  558,  557,  556,  555,  554,  553,  552,  551,
-      550,  545,  544,  543,  542,  541,  540,  539,  538,  537,
-      536,  535,  532,  531,  530,  529,  528,  527,  521,  520,
-      519,  518,  517,  516,  515,  514,  513,  512,  511,  510,
-      509,  508,  507,  506,  505,  504,  498,  497,  496,  495,
-      494,  493,  492,  491,  490,  489,  488,  487,  486,  485,
-      484,  483,  482,  481,  480,  479,  478,  477,  476,  475,
-      474,  473,  472,  471,  470,  469,  468,  467,  466,  465,
-      464,  463,  453,  452,  451,  450,  449,  443,  442,  441,
-
-      440,  439,  438,  437,  436,  435,  434,  433,  432,  431,
-      430,  429,  428,  427,  426,  422,  421,  420,  419,  418,
-      417,  416,  415,  414,  413,  412,  411,  410,  409,  408,
-      407,  406,  405,  404,  403,  402,  401,  400,  399,  398,
-      397,  396,  395,  394,  393,  392,  388,  387,  386,  385,
-      384,  383,  382,  381,  377,  373,  372,  371,  370,  369,
-      365,  364,  363,  362,  361,  360,  359,  358,  354,  353,
-      352,  349,  348,  347,  346,  345,  344,  343,  339,  338,
-      337,  336,  335,  332,  331,  330,  329,  328,  327,  326,
-      325,  324,  323,  322,  321,  320,  319,  318,  317,  316,
-
-      315,  314,  313,  312,  311,  310,  309,  308,  304,  303,
-      302,  301,  300,  299,  298,  297,  296,  295,  294,  293,
-      292,  291,  290,  289,  288,  287,  286,  285,  284,  283,
-      282,  281,  280,  279,  278,  277,  276,  273,  272,  271,
-      268,  267,  266,  265,  264,  254,  253,  252,  251,  250,
-      247,  246,  245,  238,  237,  236,  235,  234,  233,  230,
-      229,  228,  227,  226,  225,  224,  223,  220,  217,  216,
-      215,  212,  211,  210,  204,  203,  202,  201,  200,  199,
-      198,  197,  192,  191,  190,  189,  188,  187,  186,  185,
-      182,  181,  180,  179,  178,  177,  176,  175,  174,  173,
-
-      172,  161,  149,  125,  109,   81,   69,   63,   60,   59,
-      835,   57,   57,    7,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835
-    } ;
-
-static yyconst flex_int16_t yy_chk[1283] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    2,    9,
-      791,    9,    2,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,   13,   15,  792,   16,   17,   17,   17,   17,   17,
-       17,   17,   21,   21,   25,   15,   16,   26,   13,   19,
-       35,   19,   19,   19,   19,   19,   19,   19,   23,   23,
-       25,   36,   26,   26,   35,   36,   19,   19,   71,   30,
-       27,   30,   27,   28,   19,   19,   27,   28,   37,   39,
-       30,  758,   19,   19,   28,  143,   29,   28,   96,   96,
-
-       29,   33,   37,   71,  143,   39,   29,   19,   39,   33,
-       19,   20,   29,   20,   20,   20,   20,   20,   20,   20,
-       40,   33,   47,   31,   47,  794,   47,   46,   20,   20,
-       40,   31,   48,   48,   31,  106,   20,   31,   42,   34,
-      758,   42,   34,   31,   20,   20,   34,   34,   41,  106,
-       42,   34,  802,   43,   34,   41,   41,   42,   43,   20,
-       41,   50,   43,   50,   44,   43,   41,   41,   44,   41,
-       46,   58,  105,   58,   68,   68,  135,   48,   44,  120,
-      142,  142,  124,  105,   48,   70,   70,  120,   48,  124,
-       68,   68,  135,   48,   53,   53,   53,   53,   53,   53,
-
-       53,   70,   70,   72,  144,   72,   72,   72,   72,   72,
-       72,   72,  144,  148,  803,  126,  148,  804,   73,   73,
-       72,   72,   73,   73,   73,   73,   73,   73,   73,  126,
-      805,  116,  153,  153,  116,  116,   72,   72,  116,  152,
-      116,  152,  810,  152,  154,  154,  160,  811,  160,  162,
-      162,  162,  162,  162,  162,  162,  164,  164,  166,  166,
-      164,  164,  164,  164,  164,  164,  164,  169,  169,  169,
-      169,  169,  169,  169,  166,  166,  171,  153,  180,  184,
-      184,  215,  215,  215,  153,  241,  813,  504,  153,  154,
-      776,  505,  180,  153,  241,  814,  154,  504,  776,  171,
-
-      154,  505,  167,  167,  818,  154,  167,  167,  167,  167,
-      167,  167,  167,  170,  170,  170,  170,  170,  170,  170,
-      247,  247,  247,  268,  268,  268,  279,  279,  279,  170,
-      256,  256,  256,  256,  256,  256,  256,  257,  257,  257,
-      257,  257,  257,  257,  786,  170,  288,  288,  288,  822,
-      258,  258,  786,  257,  258,  258,  258,  258,  258,  258,
-      258,  260,  260,  260,  260,  260,  260,  260,  825,  257,
-      261,  261,  261,  261,  261,  261,  261,  292,  292,  292,
-      301,  301,  301,  338,  338,  338,  261,  350,  350,  350,
-      350,  350,  350,  350,  351,  351,  351,  351,  351,  351,
-
-      351,  795,  261,  382,  382,  382,  393,  393,  393,  795,
-      351,  394,  394,  394,  382,  382,  395,  395,  395,  443,
-      443,  443,  483,  483,  483,  490,  351,  830,  605,  831,
-      443,  443,  839,  483,  483,  519,  519,  519,  605,  490,
-      490,  490,  490,  490,  490,  490,  519,  519,  533,  533,
-      606,  621,  621,  796,  534,  534,  656,  656,  760,  606,
-      606,  796,  533,  533,  533,  533,  533,  533,  534,  534,
-      534,  534,  534,  534,  534,  554,  554,  554,  573,  573,
-      573,  576,  576,  690,  690,  581,  533,  554,  578,  578,
-      573,  775,  799,  840,  790,  576,  576,  576,  576,  576,
-
-      576,  576,  578,  578,  578,  578,  578,  578,  580,  580,
-      806,  533,  744,  760,  759,  808,  619,  619,  806,  744,
-      581,  759,  580,  580,  580,  580,  580,  580,  580,  581,
-      619,  619,  619,  619,  619,  619,  787,  798,  789,  788,
-      581,  620,  620,  787,  798,  809,  775,  799,  658,  658,
-      828,  785,  829,  809,  619,  620,  620,  620,  620,  620,
-      620,  620,  658,  658,  658,  658,  658,  658,  660,  660,
-      808,  826,  815,  819,  784,  783,  782,  781,  826,  619,
-      815,  819,  660,  660,  660,  660,  660,  660,  660,  820,
-      823,  828,  827,  829,  832,  833,  780,  820,  823,  827,
-
-      779,  778,  832,  833,  836,  836,  836,  836,  836,  837,
-      837,  837,  838,  838,  838,  841,  841,  842,  777,  842,
-      842,  842,  843,  843,  844,  844,  774,  771,  769,  768,
-      766,  763,  762,  761,  757,  756,  755,  754,  753,  752,
-      751,  750,  749,  748,  747,  746,  745,  743,  742,  741,
-      738,  735,  734,  733,  732,  731,  729,  728,  726,  724,
-      721,  720,  719,  717,  716,  714,  713,  712,  711,  710,
-      709,  708,  707,  706,  705,  704,  702,  701,  700,  699,
-      698,  697,  695,  694,  693,  692,  691,  689,  688,  687,
-      686,  685,  684,  683,  682,  681,  680,  679,  678,  677,
-
-      676,  675,  674,  673,  672,  670,  669,  668,  667,  666,
-      665,  664,  663,  662,  661,  654,  652,  651,  649,  648,
-      647,  646,  645,  644,  643,  642,  641,  640,  639,  638,
-      637,  635,  634,  633,  632,  631,  630,  629,  627,  626,
-      625,  624,  623,  622,  618,  617,  616,  615,  614,  613,
-      612,  611,  610,  609,  608,  607,  601,  599,  598,  597,
-      596,  592,  591,  590,  589,  588,  587,  586,  585,  584,
-      575,  571,  570,  568,  567,  565,  564,  563,  562,  561,
-      560,  559,  558,  557,  555,  553,  552,  551,  550,  549,
-      548,  547,  546,  545,  544,  542,  541,  537,  536,  535,
-
-      532,  531,  529,  528,  526,  525,  524,  523,  522,  520,
-      518,  517,  516,  515,  514,  513,  511,  510,  509,  508,
-      507,  503,  502,  501,  500,  499,  498,  495,  494,  493,
-      492,  491,  489,  488,  487,  486,  485,  484,  482,  481,
-      474,  473,  470,  469,  466,  465,  464,  463,  452,  451,
-      450,  448,  447,  446,  445,  444,  441,  439,  438,  437,
-      435,  434,  432,  431,  430,  429,  427,  426,  421,  420,
-      418,  417,  416,  415,  414,  413,  412,  411,  410,  409,
-      407,  406,  405,  404,  403,  402,  401,  400,  399,  398,
-      397,  396,  392,  388,  387,  386,  383,  381,  371,  369,
-
-      365,  364,  363,  362,  360,  358,  353,  352,  349,  348,
-      347,  346,  345,  344,  339,  337,  336,  335,  334,  333,
-      331,  330,  327,  326,  325,  324,  323,  322,  321,  320,
-      319,  318,  317,  316,  315,  314,  313,  312,  311,  310,
-      309,  308,  307,  306,  305,  302,  300,  299,  298,  297,
-      296,  295,  294,  293,  291,  287,  285,  284,  283,  282,
-      278,  277,  276,  275,  274,  273,  272,  271,  267,  265,
-      264,  254,  253,  252,  251,  250,  249,  248,  246,  245,
-      244,  243,  242,  240,  239,  238,  237,  236,  235,  234,
-      233,  232,  231,  230,  229,  228,  227,  226,  225,  224,
-
-      223,  222,  221,  220,  219,  218,  217,  216,  214,  213,
-      212,  211,  210,  209,  208,  207,  206,  205,  204,  203,
-      202,  201,  200,  199,  198,  196,  195,  194,  193,  192,
-      191,  190,  189,  188,  187,  186,  185,  183,  182,  181,
-      179,  178,  177,  176,  174,  159,  158,  157,  156,  149,
-      147,  146,  145,  141,  140,  139,  138,  137,  136,  134,
-      133,  132,  131,  130,  129,  128,  127,  125,  123,  122,
-      121,  119,  118,  117,  115,  114,  112,  111,  110,  109,
-      108,  107,  104,  103,  102,  101,  100,   99,   98,   97,
-       95,   94,   93,   92,   91,   90,   89,   88,   87,   83,
-
-       79,   52,   45,   38,   32,   22,   18,   14,   12,   11,
-        7,    6,    5,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-      835,  835
-    } ;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-#line 1 "glsl_lexer.lpp"
-#line 2 "glsl_lexer.lpp"
-/*
- * Copyright Â© 2008, 2009 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-#include <ctype.h>
-#include "strtod.h"
-#include "ast.h"
-#include "glsl_parser_extras.h"
-#include "glsl_parser.h"
-
-static int classify_identifier(struct _mesa_glsl_parse_state *, const char *);
-
-#define YY_USER_ACTION                                         \
-   do {                                                                \
-      yylloc->source = 0;                                      \
-      yylloc->first_column = yycolumn + 1;                     \
-      yylloc->first_line = yylineno + 1;                       \
-      yycolumn += yyleng;                                      \
-   } while(0);
-
-#define YY_USER_INIT yylineno = 0; yycolumn = 0;
-
-#define IS_UINT (yytext[yyleng - 1] == 'u' || yytext[yyleng - 1] == 'U')
-
-/* A macro for handling reserved words and keywords across language versions.
- *
- * Certain words start out as identifiers, become reserved words in
- * later language revisions, and finally become language keywords.
- *
- * For example, consider the following lexer rule:
- * samplerBuffer       KEYWORD(130, 140, SAMPLERBUFFER)
- *
- * This means that "samplerBuffer" will be treated as:
- * - a keyword (SAMPLERBUFFER token)         ...in GLSL >= 1.40
- * - a reserved word - error                 ...in GLSL >= 1.30
- * - an identifier                           ...in GLSL <  1.30
- */
-#define KEYWORD(reserved_version, allowed_version, token)              \
-   do {                                                                        \
-      if (yyextra->language_version >= allowed_version) {              \
-        return token;                                                  \
-      } else if (yyextra->language_version >= reserved_version) {      \
-        _mesa_glsl_error(yylloc, yyextra,                              \
-                         "Illegal use of reserved word `%s'", yytext); \
-        return ERROR_TOK;                                              \
-      } else {                                                         \
-        yylval->identifier = strdup(yytext);                           \
-        return classify_identifier(yyextra, yytext);                   \
-      }                                                                        \
-   } while (0)
-
-/* The ES macro can be used in KEYWORD checks:
- *
- *    word      KEYWORD(110 || ES, 400, TOKEN)
- * ...means the word is reserved in GLSL ES 1.00, while
- *
- *    word      KEYWORD(110, 130 || ES, TOKEN)
- * ...means the word is a legal keyword in GLSL ES 1.00.
- */
-#define ES yyextra->es_shader
-
-#line 1073 "glsl_lexer.cpp"
-
-#define INITIAL 0
-#define PP 1
-#define PRAGMA 2
-
-#define YY_EXTRA_TYPE struct _mesa_glsl_parse_state *
-
-/* Holds the entire state of the reentrant scanner. */
-struct yyguts_t
-    {
-
-    /* User-defined. Not touched by flex. */
-    YY_EXTRA_TYPE yyextra_r;
-
-    /* The rest are the same as the globals declared in the non-reentrant scanner. */
-    FILE *yyin_r, *yyout_r;
-    size_t yy_buffer_stack_top; /**< index of top of stack. */
-    size_t yy_buffer_stack_max; /**< capacity of stack. */
-    YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
-    char yy_hold_char;
-    int yy_n_chars;
-    int yyleng_r;
-    char *yy_c_buf_p;
-    int yy_init;
-    int yy_start;
-    int yy_did_buffer_switch_on_eof;
-    int yy_start_stack_ptr;
-    int yy_start_stack_depth;
-    int *yy_start_stack;
-    yy_state_type yy_last_accepting_state;
-    char* yy_last_accepting_cpos;
-
-    int yylineno_r;
-    int yy_flex_debug_r;
-
-    char *yytext_r;
-    int yy_more_flag;
-    int yy_more_len;
-
-    YYSTYPE * yylval_r;
-
-    YYLTYPE * yylloc_r;
-
-    }; /* end struct yyguts_t */
-
-static int yy_init_globals (yyscan_t yyscanner );
-
-    /* This must go here because YYSTYPE and YYLTYPE are included
-     * from bison output in section 1.*/
-    #    define yylval yyg->yylval_r
-    
-    #    define yylloc yyg->yylloc_r
-    
-int _mesa_glsl_lex_init (yyscan_t* scanner);
-
-int _mesa_glsl_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
-
-/* Accessor methods to globals.
-   These are made visible to non-reentrant scanners for convenience. */
-
-int _mesa_glsl_lex_destroy (yyscan_t yyscanner );
-
-int _mesa_glsl_get_debug (yyscan_t yyscanner );
-
-void _mesa_glsl_set_debug (int debug_flag ,yyscan_t yyscanner );
-
-YY_EXTRA_TYPE _mesa_glsl_get_extra (yyscan_t yyscanner );
-
-void _mesa_glsl_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
-
-FILE *_mesa_glsl_get_in (yyscan_t yyscanner );
-
-void _mesa_glsl_set_in  (FILE * in_str ,yyscan_t yyscanner );
-
-FILE *_mesa_glsl_get_out (yyscan_t yyscanner );
-
-void _mesa_glsl_set_out  (FILE * out_str ,yyscan_t yyscanner );
-
-int _mesa_glsl_get_leng (yyscan_t yyscanner );
-
-char *_mesa_glsl_get_text (yyscan_t yyscanner );
-
-int _mesa_glsl_get_lineno (yyscan_t yyscanner );
-
-void _mesa_glsl_set_lineno (int line_number ,yyscan_t yyscanner );
-
-int _mesa_glsl_get_column  (yyscan_t yyscanner );
-
-void _mesa_glsl_set_column (int column_no ,yyscan_t yyscanner );
-
-YYSTYPE * _mesa_glsl_get_lval (yyscan_t yyscanner );
-
-void _mesa_glsl_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
-
-       YYLTYPE *_mesa_glsl_get_lloc (yyscan_t yyscanner );
-    
-        void _mesa_glsl_set_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
-    
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int _mesa_glsl_wrap (yyscan_t yyscanner );
-#else
-extern int _mesa_glsl_wrap (yyscan_t yyscanner );
-#endif
-#endif
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
-#endif
-
-#ifndef YY_NO_INPUT
-
-#ifdef __cplusplus
-static int yyinput (yyscan_t yyscanner );
-#else
-static int input (yyscan_t yyscanner );
-#endif
-
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 8192
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-#ifndef ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
-#endif
-
-/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#ifndef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
-       if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
-               { \
-               int c = '*'; \
-               unsigned n; \
-               for ( n = 0; n < max_size && \
-                            (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
-                       buf[n] = (char) c; \
-               if ( c == '\n' ) \
-                       buf[n++] = (char) c; \
-               if ( c == EOF && ferror( yyin ) ) \
-                       YY_FATAL_ERROR( "input in flex scanner failed" ); \
-               result = n; \
-               } \
-       else \
-               { \
-               errno=0; \
-               while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
-                       { \
-                       if( errno != EINTR) \
-                               { \
-                               YY_FATAL_ERROR( "input in flex scanner failed" ); \
-                               break; \
-                               } \
-                       errno=0; \
-                       clearerr(yyin); \
-                       } \
-               }\
-\
-
-#endif
-
-/* No semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef yyterminate
-#define yyterminate() return YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
-#endif
-
-/* end tables serialization structures and prototypes */
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL_IS_OURS 1
-
-extern int _mesa_glsl_lex \
-               (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
-
-#define YY_DECL int _mesa_glsl_lex \
-               (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
-#endif /* !YY_DECL */
-
-/* Code executed at the beginning of each rule, after yytext and yyleng
- * have been set up.
- */
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef YY_BREAK
-#define YY_BREAK break;
-#endif
-
-#define YY_RULE_SETUP \
-       if ( yyleng > 0 ) \
-               YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
-                               (yytext[yyleng - 1] == '\n'); \
-       YY_USER_ACTION
-
-/** The main scanner function which does all the work.
- */
-YY_DECL
-{
-       register yy_state_type yy_current_state;
-       register char *yy_cp, *yy_bp;
-       register int yy_act;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-#line 97 "glsl_lexer.lpp"
-
-
-#line 1314 "glsl_lexer.cpp"
-
-    yylval = yylval_param;
-
-    yylloc = yylloc_param;
-
-       if ( !yyg->yy_init )
-               {
-               yyg->yy_init = 1;
-
-#ifdef YY_USER_INIT
-               YY_USER_INIT;
-#endif
-
-               if ( ! yyg->yy_start )
-                       yyg->yy_start = 1;      /* first start state */
-
-               if ( ! yyin )
-                       yyin = stdin;
-
-               if ( ! yyout )
-                       yyout = stdout;
-
-               if ( ! YY_CURRENT_BUFFER ) {
-                       _mesa_glsl_ensure_buffer_stack (yyscanner);
-                       YY_CURRENT_BUFFER_LVALUE =
-                               _mesa_glsl__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
-               }
-
-               _mesa_glsl__load_buffer_state(yyscanner );
-               }
-
-       while ( 1 )             /* loops until end-of-file is reached */
-               {
-               yy_cp = yyg->yy_c_buf_p;
-
-               /* Support of yytext. */
-               *yy_cp = yyg->yy_hold_char;
-
-               /* yy_bp points to the position in yy_ch_buf of the start of
-                * the current run.
-                */
-               yy_bp = yy_cp;
-
-               yy_current_state = yyg->yy_start;
-               yy_current_state += YY_AT_BOL();
-yy_match:
-               do
-                       {
-                       register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
-                       if ( yy_accept[yy_current_state] )
-                               {
-                               yyg->yy_last_accepting_state = yy_current_state;
-                               yyg->yy_last_accepting_cpos = yy_cp;
-                               }
-                       while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-                               {
-                               yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 836 )
-                                       yy_c = yy_meta[(unsigned int) yy_c];
-                               }
-                       yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-                       ++yy_cp;
-                       }
-               while ( yy_current_state != 835 );
-               yy_cp = yyg->yy_last_accepting_cpos;
-               yy_current_state = yyg->yy_last_accepting_state;
-
-yy_find_action:
-               yy_act = yy_accept[yy_current_state];
-
-               YY_DO_BEFORE_ACTION;
-
-do_action:     /* This label is used only to access EOF actions. */
-
-               switch ( yy_act )
-       { /* beginning of action switch */
-                       case 0: /* must back up */
-                       /* undo the effects of YY_DO_BEFORE_ACTION */
-                       *yy_cp = yyg->yy_hold_char;
-                       yy_cp = yyg->yy_last_accepting_cpos;
-                       yy_current_state = yyg->yy_last_accepting_state;
-                       goto yy_find_action;
-
-case 1:
-YY_RULE_SETUP
-#line 99 "glsl_lexer.lpp"
-;
-       YY_BREAK
-/* Preprocessor tokens. */ 
-case 2:
-*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
-yyg->yy_c_buf_p = yy_cp -= 1;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-#line 102 "glsl_lexer.lpp"
-;
-       YY_BREAK
-case 3:
-YY_RULE_SETUP
-#line 103 "glsl_lexer.lpp"
-{ BEGIN PP; return VERSION; }
-       YY_BREAK
-case 4:
-YY_RULE_SETUP
-#line 104 "glsl_lexer.lpp"
-{ BEGIN PP; return EXTENSION; }
-       YY_BREAK
-case 5:
-*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
-yyg->yy_c_buf_p = yy_cp -= 1;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-#line 105 "glsl_lexer.lpp"
-{
-                                  /* Eat characters until the first digit is
-                                   * encountered
-                                   */
-                                  char *ptr = yytext;
-                                  while (!isdigit(*ptr))
-                                     ptr++;
-
-                                  /* Subtract one from the line number because
-                                   * yylineno is zero-based instead of
-                                   * one-based.
-                                   */
-                                  yylineno = strtol(ptr, &ptr, 0) - 1;
-                                  yylloc->source = strtol(ptr, NULL, 0);
-                               }
-       YY_BREAK
-case 6:
-*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
-yyg->yy_c_buf_p = yy_cp -= 1;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-#line 120 "glsl_lexer.lpp"
-{
-                                  /* Eat characters until the first digit is
-                                   * encountered
-                                   */
-                                  char *ptr = yytext;
-                                  while (!isdigit(*ptr))
-                                     ptr++;
-
-                                  /* Subtract one from the line number because
-                                   * yylineno is zero-based instead of
-                                   * one-based.
-                                   */
-                                  yylineno = strtol(ptr, &ptr, 0) - 1;
-                               }
-       YY_BREAK
-case 7:
-YY_RULE_SETUP
-#line 134 "glsl_lexer.lpp"
-{
-                                 BEGIN PP;
-                                 return PRAGMA_DEBUG_ON;
-                               }
-       YY_BREAK
-case 8:
-YY_RULE_SETUP
-#line 138 "glsl_lexer.lpp"
-{
-                                 BEGIN PP;
-                                 return PRAGMA_DEBUG_OFF;
-                               }
-       YY_BREAK
-case 9:
-YY_RULE_SETUP
-#line 142 "glsl_lexer.lpp"
-{
-                                 BEGIN PP;
-                                 return PRAGMA_OPTIMIZE_ON;
-                               }
-       YY_BREAK
-case 10:
-YY_RULE_SETUP
-#line 146 "glsl_lexer.lpp"
-{
-                                 BEGIN PP;
-                                 return PRAGMA_OPTIMIZE_OFF;
-                               }
-       YY_BREAK
-case 11:
-YY_RULE_SETUP
-#line 150 "glsl_lexer.lpp"
-{
-                                 BEGIN PP;
-                                 return PRAGMA_INVARIANT_ALL;
-                               }
-       YY_BREAK
-case 12:
-YY_RULE_SETUP
-#line 154 "glsl_lexer.lpp"
-{ BEGIN PRAGMA; }
-       YY_BREAK
-case 13:
-/* rule 13 can match eol */
-YY_RULE_SETUP
-#line 156 "glsl_lexer.lpp"
-{ BEGIN 0; yylineno++; yycolumn = 0; }
-       YY_BREAK
-case 14:
-YY_RULE_SETUP
-#line 157 "glsl_lexer.lpp"
-{ }
-       YY_BREAK
-case 15:
-YY_RULE_SETUP
-#line 159 "glsl_lexer.lpp"
-{ }
-       YY_BREAK
-case 16:
-YY_RULE_SETUP
-#line 160 "glsl_lexer.lpp"
-{ }
-       YY_BREAK
-case 17:
-YY_RULE_SETUP
-#line 161 "glsl_lexer.lpp"
-return COLON;
-       YY_BREAK
-case 18:
-YY_RULE_SETUP
-#line 162 "glsl_lexer.lpp"
-{
-                                  yylval->identifier = strdup(yytext);
-                                  return IDENTIFIER;
-                               }
-       YY_BREAK
-case 19:
-YY_RULE_SETUP
-#line 166 "glsl_lexer.lpp"
-{
-                                   yylval->n = strtol(yytext, NULL, 10);
-                                   return INTCONSTANT;
-                               }
-       YY_BREAK
-case 20:
-/* rule 20 can match eol */
-YY_RULE_SETUP
-#line 170 "glsl_lexer.lpp"
-{ BEGIN 0; yylineno++; yycolumn = 0; return EOL; }
-       YY_BREAK
-case 21:
-/* rule 21 can match eol */
-YY_RULE_SETUP
-#line 172 "glsl_lexer.lpp"
-{ yylineno++; yycolumn = 0; }
-       YY_BREAK
-case 22:
-YY_RULE_SETUP
-#line 174 "glsl_lexer.lpp"
-return ATTRIBUTE;
-       YY_BREAK
-case 23:
-YY_RULE_SETUP
-#line 175 "glsl_lexer.lpp"
-return CONST_TOK;
-       YY_BREAK
-case 24:
-YY_RULE_SETUP
-#line 176 "glsl_lexer.lpp"
-return BOOL_TOK;
-       YY_BREAK
-case 25:
-YY_RULE_SETUP
-#line 177 "glsl_lexer.lpp"
-return FLOAT_TOK;
-       YY_BREAK
-case 26:
-YY_RULE_SETUP
-#line 178 "glsl_lexer.lpp"
-return INT_TOK;
-       YY_BREAK
-case 27:
-YY_RULE_SETUP
-#line 179 "glsl_lexer.lpp"
-KEYWORD(130, 130, UINT_TOK);
-       YY_BREAK
-case 28:
-YY_RULE_SETUP
-#line 181 "glsl_lexer.lpp"
-return BREAK;
-       YY_BREAK
-case 29:
-YY_RULE_SETUP
-#line 182 "glsl_lexer.lpp"
-return CONTINUE;
-       YY_BREAK
-case 30:
-YY_RULE_SETUP
-#line 183 "glsl_lexer.lpp"
-return DO;
-       YY_BREAK
-case 31:
-YY_RULE_SETUP
-#line 184 "glsl_lexer.lpp"
-return WHILE;
-       YY_BREAK
-case 32:
-YY_RULE_SETUP
-#line 185 "glsl_lexer.lpp"
-return ELSE;
-       YY_BREAK
-case 33:
-YY_RULE_SETUP
-#line 186 "glsl_lexer.lpp"
-return FOR;
-       YY_BREAK
-case 34:
-YY_RULE_SETUP
-#line 187 "glsl_lexer.lpp"
-return IF;
-       YY_BREAK
-case 35:
-YY_RULE_SETUP
-#line 188 "glsl_lexer.lpp"
-return DISCARD;
-       YY_BREAK
-case 36:
-YY_RULE_SETUP
-#line 189 "glsl_lexer.lpp"
-return RETURN;
-       YY_BREAK
-case 37:
-YY_RULE_SETUP
-#line 191 "glsl_lexer.lpp"
-return BVEC2;
-       YY_BREAK
-case 38:
-YY_RULE_SETUP
-#line 192 "glsl_lexer.lpp"
-return BVEC3;
-       YY_BREAK
-case 39:
-YY_RULE_SETUP
-#line 193 "glsl_lexer.lpp"
-return BVEC4;
-       YY_BREAK
-case 40:
-YY_RULE_SETUP
-#line 194 "glsl_lexer.lpp"
-return IVEC2;
-       YY_BREAK
-case 41:
-YY_RULE_SETUP
-#line 195 "glsl_lexer.lpp"
-return IVEC3;
-       YY_BREAK
-case 42:
-YY_RULE_SETUP
-#line 196 "glsl_lexer.lpp"
-return IVEC4;
-       YY_BREAK
-case 43:
-YY_RULE_SETUP
-#line 197 "glsl_lexer.lpp"
-KEYWORD(130, 130, UVEC2);
-       YY_BREAK
-case 44:
-YY_RULE_SETUP
-#line 198 "glsl_lexer.lpp"
-KEYWORD(130, 130, UVEC3);
-       YY_BREAK
-case 45:
-YY_RULE_SETUP
-#line 199 "glsl_lexer.lpp"
-KEYWORD(130, 130, UVEC4);
-       YY_BREAK
-case 46:
-YY_RULE_SETUP
-#line 200 "glsl_lexer.lpp"
-return VEC2;
-       YY_BREAK
-case 47:
-YY_RULE_SETUP
-#line 201 "glsl_lexer.lpp"
-return VEC3;
-       YY_BREAK
-case 48:
-YY_RULE_SETUP
-#line 202 "glsl_lexer.lpp"
-return VEC4;
-       YY_BREAK
-case 49:
-YY_RULE_SETUP
-#line 203 "glsl_lexer.lpp"
-return MAT2X2;
-       YY_BREAK
-case 50:
-YY_RULE_SETUP
-#line 204 "glsl_lexer.lpp"
-return MAT3X3;
-       YY_BREAK
-case 51:
-YY_RULE_SETUP
-#line 205 "glsl_lexer.lpp"
-return MAT4X4;
-       YY_BREAK
-case 52:
-YY_RULE_SETUP
-#line 206 "glsl_lexer.lpp"
-KEYWORD(120, 120, MAT2X2);
-       YY_BREAK
-case 53:
-YY_RULE_SETUP
-#line 207 "glsl_lexer.lpp"
-KEYWORD(120, 120, MAT2X3);
-       YY_BREAK
-case 54:
-YY_RULE_SETUP
-#line 208 "glsl_lexer.lpp"
-KEYWORD(120, 120, MAT2X4);
-       YY_BREAK
-case 55:
-YY_RULE_SETUP
-#line 209 "glsl_lexer.lpp"
-KEYWORD(120, 120, MAT3X2);
-       YY_BREAK
-case 56:
-YY_RULE_SETUP
-#line 210 "glsl_lexer.lpp"
-KEYWORD(120, 120, MAT3X3);
-       YY_BREAK
-case 57:
-YY_RULE_SETUP
-#line 211 "glsl_lexer.lpp"
-KEYWORD(120, 120, MAT3X4);
-       YY_BREAK
-case 58:
-YY_RULE_SETUP
-#line 212 "glsl_lexer.lpp"
-KEYWORD(120, 120, MAT4X2);
-       YY_BREAK
-case 59:
-YY_RULE_SETUP
-#line 213 "glsl_lexer.lpp"
-KEYWORD(120, 120, MAT4X3);
-       YY_BREAK
-case 60:
-YY_RULE_SETUP
-#line 214 "glsl_lexer.lpp"
-KEYWORD(120, 120, MAT4X4);
-       YY_BREAK
-case 61:
-YY_RULE_SETUP
-#line 216 "glsl_lexer.lpp"
-return IN_TOK;
-       YY_BREAK
-case 62:
-YY_RULE_SETUP
-#line 217 "glsl_lexer.lpp"
-return OUT_TOK;
-       YY_BREAK
-case 63:
-YY_RULE_SETUP
-#line 218 "glsl_lexer.lpp"
-return INOUT_TOK;
-       YY_BREAK
-case 64:
-YY_RULE_SETUP
-#line 219 "glsl_lexer.lpp"
-return UNIFORM;
-       YY_BREAK
-case 65:
-YY_RULE_SETUP
-#line 220 "glsl_lexer.lpp"
-return VARYING;
-       YY_BREAK
-case 66:
-YY_RULE_SETUP
-#line 221 "glsl_lexer.lpp"
-KEYWORD(120, 120, CENTROID);
-       YY_BREAK
-case 67:
-YY_RULE_SETUP
-#line 222 "glsl_lexer.lpp"
-KEYWORD(120 || ES, 120 || ES, INVARIANT);
-       YY_BREAK
-case 68:
-YY_RULE_SETUP
-#line 223 "glsl_lexer.lpp"
-KEYWORD(130 || ES, 130, FLAT);
-       YY_BREAK
-case 69:
-YY_RULE_SETUP
-#line 224 "glsl_lexer.lpp"
-KEYWORD(130, 130, SMOOTH);
-       YY_BREAK
-case 70:
-YY_RULE_SETUP
-#line 225 "glsl_lexer.lpp"
-KEYWORD(130, 130, NOPERSPECTIVE);
-       YY_BREAK
-case 71:
-YY_RULE_SETUP
-#line 227 "glsl_lexer.lpp"
-return SAMPLER1D;
-       YY_BREAK
-case 72:
-YY_RULE_SETUP
-#line 228 "glsl_lexer.lpp"
-return SAMPLER2D;
-       YY_BREAK
-case 73:
-YY_RULE_SETUP
-#line 229 "glsl_lexer.lpp"
-return SAMPLER3D;
-       YY_BREAK
-case 74:
-YY_RULE_SETUP
-#line 230 "glsl_lexer.lpp"
-return SAMPLERCUBE;
-       YY_BREAK
-case 75:
-YY_RULE_SETUP
-#line 231 "glsl_lexer.lpp"
-KEYWORD(130, 130, SAMPLER1DARRAY);
-       YY_BREAK
-case 76:
-YY_RULE_SETUP
-#line 232 "glsl_lexer.lpp"
-KEYWORD(130, 130, SAMPLER2DARRAY);
-       YY_BREAK
-case 77:
-YY_RULE_SETUP
-#line 233 "glsl_lexer.lpp"
-return SAMPLER1DSHADOW;
-       YY_BREAK
-case 78:
-YY_RULE_SETUP
-#line 234 "glsl_lexer.lpp"
-return SAMPLER2DSHADOW;
-       YY_BREAK
-case 79:
-YY_RULE_SETUP
-#line 235 "glsl_lexer.lpp"
-KEYWORD(130, 130, SAMPLERCUBESHADOW);
-       YY_BREAK
-case 80:
-YY_RULE_SETUP
-#line 236 "glsl_lexer.lpp"
-KEYWORD(130, 130, SAMPLER1DARRAYSHADOW);
-       YY_BREAK
-case 81:
-YY_RULE_SETUP
-#line 237 "glsl_lexer.lpp"
-KEYWORD(130, 130, SAMPLER2DARRAYSHADOW);
-       YY_BREAK
-case 82:
-YY_RULE_SETUP
-#line 238 "glsl_lexer.lpp"
-KEYWORD(130, 130, ISAMPLER1D);
-       YY_BREAK
-case 83:
-YY_RULE_SETUP
-#line 239 "glsl_lexer.lpp"
-KEYWORD(130, 130, ISAMPLER2D);
-       YY_BREAK
-case 84:
-YY_RULE_SETUP
-#line 240 "glsl_lexer.lpp"
-KEYWORD(130, 130, ISAMPLER3D);
-       YY_BREAK
-case 85:
-YY_RULE_SETUP
-#line 241 "glsl_lexer.lpp"
-KEYWORD(130, 130, ISAMPLERCUBE);
-       YY_BREAK
-case 86:
-YY_RULE_SETUP
-#line 242 "glsl_lexer.lpp"
-KEYWORD(130, 130, ISAMPLER1DARRAY);
-       YY_BREAK
-case 87:
-YY_RULE_SETUP
-#line 243 "glsl_lexer.lpp"
-KEYWORD(130, 130, ISAMPLER2DARRAY);
-       YY_BREAK
-case 88:
-YY_RULE_SETUP
-#line 244 "glsl_lexer.lpp"
-KEYWORD(130, 130, USAMPLER1D);
-       YY_BREAK
-case 89:
-YY_RULE_SETUP
-#line 245 "glsl_lexer.lpp"
-KEYWORD(130, 130, USAMPLER2D);
-       YY_BREAK
-case 90:
-YY_RULE_SETUP
-#line 246 "glsl_lexer.lpp"
-KEYWORD(130, 130, USAMPLER3D);
-       YY_BREAK
-case 91:
-YY_RULE_SETUP
-#line 247 "glsl_lexer.lpp"
-KEYWORD(130, 130, USAMPLERCUBE);
-       YY_BREAK
-case 92:
-YY_RULE_SETUP
-#line 248 "glsl_lexer.lpp"
-KEYWORD(130, 130, USAMPLER1DARRAY);
-       YY_BREAK
-case 93:
-YY_RULE_SETUP
-#line 249 "glsl_lexer.lpp"
-KEYWORD(130, 130, USAMPLER2DARRAY);
-       YY_BREAK
-case 94:
-YY_RULE_SETUP
-#line 252 "glsl_lexer.lpp"
-return STRUCT;
-       YY_BREAK
-case 95:
-YY_RULE_SETUP
-#line 253 "glsl_lexer.lpp"
-return VOID_TOK;
-       YY_BREAK
-case 96:
-YY_RULE_SETUP
-#line 255 "glsl_lexer.lpp"
-{
-                 if ((yyextra->language_version >= 140)
-                     || yyextra->AMD_conservative_depth_enable
-                     || yyextra->ARB_explicit_attrib_location_enable
-                     || yyextra->ARB_fragment_coord_conventions_enable) {
-                     return LAYOUT_TOK;
-                  } else {
-                     yylval->identifier = strdup(yytext);
-                     return IDENTIFIER;
-                  }
-               }
-       YY_BREAK
-case 97:
-YY_RULE_SETUP
-#line 267 "glsl_lexer.lpp"
-return INC_OP;
-       YY_BREAK
-case 98:
-YY_RULE_SETUP
-#line 268 "glsl_lexer.lpp"
-return DEC_OP;
-       YY_BREAK
-case 99:
-YY_RULE_SETUP
-#line 269 "glsl_lexer.lpp"
-return LE_OP;
-       YY_BREAK
-case 100:
-YY_RULE_SETUP
-#line 270 "glsl_lexer.lpp"
-return GE_OP;
-       YY_BREAK
-case 101:
-YY_RULE_SETUP
-#line 271 "glsl_lexer.lpp"
-return EQ_OP;
-       YY_BREAK
-case 102:
-YY_RULE_SETUP
-#line 272 "glsl_lexer.lpp"
-return NE_OP;
-       YY_BREAK
-case 103:
-YY_RULE_SETUP
-#line 273 "glsl_lexer.lpp"
-return AND_OP;
-       YY_BREAK
-case 104:
-YY_RULE_SETUP
-#line 274 "glsl_lexer.lpp"
-return OR_OP;
-       YY_BREAK
-case 105:
-YY_RULE_SETUP
-#line 275 "glsl_lexer.lpp"
-return XOR_OP;
-       YY_BREAK
-case 106:
-YY_RULE_SETUP
-#line 276 "glsl_lexer.lpp"
-return LEFT_OP;
-       YY_BREAK
-case 107:
-YY_RULE_SETUP
-#line 277 "glsl_lexer.lpp"
-return RIGHT_OP;
-       YY_BREAK
-case 108:
-YY_RULE_SETUP
-#line 279 "glsl_lexer.lpp"
-return MUL_ASSIGN;
-       YY_BREAK
-case 109:
-YY_RULE_SETUP
-#line 280 "glsl_lexer.lpp"
-return DIV_ASSIGN;
-       YY_BREAK
-case 110:
-YY_RULE_SETUP
-#line 281 "glsl_lexer.lpp"
-return ADD_ASSIGN;
-       YY_BREAK
-case 111:
-YY_RULE_SETUP
-#line 282 "glsl_lexer.lpp"
-return MOD_ASSIGN;
-       YY_BREAK
-case 112:
-YY_RULE_SETUP
-#line 283 "glsl_lexer.lpp"
-return LEFT_ASSIGN;
-       YY_BREAK
-case 113:
-YY_RULE_SETUP
-#line 284 "glsl_lexer.lpp"
-return RIGHT_ASSIGN;
-       YY_BREAK
-case 114:
-YY_RULE_SETUP
-#line 285 "glsl_lexer.lpp"
-return AND_ASSIGN;
-       YY_BREAK
-case 115:
-YY_RULE_SETUP
-#line 286 "glsl_lexer.lpp"
-return XOR_ASSIGN;
-       YY_BREAK
-case 116:
-YY_RULE_SETUP
-#line 287 "glsl_lexer.lpp"
-return OR_ASSIGN;
-       YY_BREAK
-case 117:
-YY_RULE_SETUP
-#line 288 "glsl_lexer.lpp"
-return SUB_ASSIGN;
-       YY_BREAK
-case 118:
-YY_RULE_SETUP
-#line 290 "glsl_lexer.lpp"
-{
-                           yylval->n = strtol(yytext, NULL, 10);
-                           return IS_UINT ? UINTCONSTANT : INTCONSTANT;
-                       }
-       YY_BREAK
-case 119:
-YY_RULE_SETUP
-#line 294 "glsl_lexer.lpp"
-{
-                           yylval->n = strtol(yytext + 2, NULL, 16);
-                           return IS_UINT ? UINTCONSTANT : INTCONSTANT;
-                       }
-       YY_BREAK
-case 120:
-YY_RULE_SETUP
-#line 298 "glsl_lexer.lpp"
-{
-                           yylval->n = strtol(yytext, NULL, 8);
-                           return IS_UINT ? UINTCONSTANT : INTCONSTANT;
-                       }
-       YY_BREAK
-case 121:
-YY_RULE_SETUP
-#line 303 "glsl_lexer.lpp"
-{
-                           yylval->real = glsl_strtod(yytext, NULL);
-                           return FLOATCONSTANT;
-                       }
-       YY_BREAK
-case 122:
-YY_RULE_SETUP
-#line 307 "glsl_lexer.lpp"
-{
-                           yylval->real = glsl_strtod(yytext, NULL);
-                           return FLOATCONSTANT;
-                       }
-       YY_BREAK
-case 123:
-YY_RULE_SETUP
-#line 311 "glsl_lexer.lpp"
-{
-                           yylval->real = glsl_strtod(yytext, NULL);
-                           return FLOATCONSTANT;
-                       }
-       YY_BREAK
-case 124:
-YY_RULE_SETUP
-#line 315 "glsl_lexer.lpp"
-{
-                           yylval->real = glsl_strtod(yytext, NULL);
-                           return FLOATCONSTANT;
-                       }
-       YY_BREAK
-case 125:
-YY_RULE_SETUP
-#line 319 "glsl_lexer.lpp"
-{
-                           yylval->real = glsl_strtod(yytext, NULL);
-                           return FLOATCONSTANT;
-                       }
-       YY_BREAK
-case 126:
-YY_RULE_SETUP
-#line 324 "glsl_lexer.lpp"
-{
-                           yylval->n = 1;
-                           return BOOLCONSTANT;
-                       }
-       YY_BREAK
-case 127:
-YY_RULE_SETUP
-#line 328 "glsl_lexer.lpp"
-{
-                           yylval->n = 0;
-                           return BOOLCONSTANT;
-                       }
-       YY_BREAK
-/* Reserved words in GLSL 1.10. */
-case 128:
-YY_RULE_SETUP
-#line 335 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, ASM);
-       YY_BREAK
-case 129:
-YY_RULE_SETUP
-#line 336 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, CLASS);
-       YY_BREAK
-case 130:
-YY_RULE_SETUP
-#line 337 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, UNION);
-       YY_BREAK
-case 131:
-YY_RULE_SETUP
-#line 338 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, ENUM);
-       YY_BREAK
-case 132:
-YY_RULE_SETUP
-#line 339 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, TYPEDEF);
-       YY_BREAK
-case 133:
-YY_RULE_SETUP
-#line 340 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, TEMPLATE);
-       YY_BREAK
-case 134:
-YY_RULE_SETUP
-#line 341 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, THIS);
-       YY_BREAK
-case 135:
-YY_RULE_SETUP
-#line 342 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, PACKED_TOK);
-       YY_BREAK
-case 136:
-YY_RULE_SETUP
-#line 343 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, GOTO);
-       YY_BREAK
-case 137:
-YY_RULE_SETUP
-#line 344 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 130, SWITCH);
-       YY_BREAK
-case 138:
-YY_RULE_SETUP
-#line 345 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 130, DEFAULT);
-       YY_BREAK
-case 139:
-YY_RULE_SETUP
-#line 346 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, INLINE_TOK);
-       YY_BREAK
-case 140:
-YY_RULE_SETUP
-#line 347 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, NOINLINE);
-       YY_BREAK
-case 141:
-YY_RULE_SETUP
-#line 348 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, VOLATILE);
-       YY_BREAK
-case 142:
-YY_RULE_SETUP
-#line 349 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, PUBLIC_TOK);
-       YY_BREAK
-case 143:
-YY_RULE_SETUP
-#line 350 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, STATIC);
-       YY_BREAK
-case 144:
-YY_RULE_SETUP
-#line 351 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, EXTERN);
-       YY_BREAK
-case 145:
-YY_RULE_SETUP
-#line 352 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, EXTERNAL);
-       YY_BREAK
-case 146:
-YY_RULE_SETUP
-#line 353 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, INTERFACE);
-       YY_BREAK
-case 147:
-YY_RULE_SETUP
-#line 354 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, LONG_TOK);
-       YY_BREAK
-case 148:
-YY_RULE_SETUP
-#line 355 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, SHORT_TOK);
-       YY_BREAK
-case 149:
-YY_RULE_SETUP
-#line 356 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 400, DOUBLE_TOK);
-       YY_BREAK
-case 150:
-YY_RULE_SETUP
-#line 357 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, HALF);
-       YY_BREAK
-case 151:
-YY_RULE_SETUP
-#line 358 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, FIXED_TOK);
-       YY_BREAK
-case 152:
-YY_RULE_SETUP
-#line 359 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, UNSIGNED);
-       YY_BREAK
-case 153:
-YY_RULE_SETUP
-#line 360 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, INPUT_TOK);
-       YY_BREAK
-case 154:
-YY_RULE_SETUP
-#line 361 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, OUTPUT);
-       YY_BREAK
-case 155:
-YY_RULE_SETUP
-#line 362 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, HVEC2);
-       YY_BREAK
-case 156:
-YY_RULE_SETUP
-#line 363 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, HVEC3);
-       YY_BREAK
-case 157:
-YY_RULE_SETUP
-#line 364 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, HVEC4);
-       YY_BREAK
-case 158:
-YY_RULE_SETUP
-#line 365 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 400, DVEC2);
-       YY_BREAK
-case 159:
-YY_RULE_SETUP
-#line 366 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 400, DVEC3);
-       YY_BREAK
-case 160:
-YY_RULE_SETUP
-#line 367 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 400, DVEC4);
-       YY_BREAK
-case 161:
-YY_RULE_SETUP
-#line 368 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, FVEC2);
-       YY_BREAK
-case 162:
-YY_RULE_SETUP
-#line 369 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, FVEC3);
-       YY_BREAK
-case 163:
-YY_RULE_SETUP
-#line 370 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, FVEC4);
-       YY_BREAK
-case 164:
-YY_RULE_SETUP
-#line 371 "glsl_lexer.lpp"
-return SAMPLER2DRECT;
-       YY_BREAK
-case 165:
-YY_RULE_SETUP
-#line 372 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, SAMPLER3DRECT);
-       YY_BREAK
-case 166:
-YY_RULE_SETUP
-#line 373 "glsl_lexer.lpp"
-return SAMPLER2DRECTSHADOW;
-       YY_BREAK
-case 167:
-YY_RULE_SETUP
-#line 374 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, SIZEOF);
-       YY_BREAK
-case 168:
-YY_RULE_SETUP
-#line 375 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, CAST);
-       YY_BREAK
-case 169:
-YY_RULE_SETUP
-#line 376 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, NAMESPACE);
-       YY_BREAK
-case 170:
-YY_RULE_SETUP
-#line 377 "glsl_lexer.lpp"
-KEYWORD(110 || ES, 999, USING);
-       YY_BREAK
-/* Additional reserved words in GLSL 1.20. */
-case 171:
-YY_RULE_SETUP
-#line 380 "glsl_lexer.lpp"
-KEYWORD(120, 130 || ES, LOWP);
-       YY_BREAK
-case 172:
-YY_RULE_SETUP
-#line 381 "glsl_lexer.lpp"
-KEYWORD(120, 130 || ES, MEDIUMP);
-       YY_BREAK
-case 173:
-YY_RULE_SETUP
-#line 382 "glsl_lexer.lpp"
-KEYWORD(120, 130 || ES, HIGHP);
-       YY_BREAK
-case 174:
-YY_RULE_SETUP
-#line 383 "glsl_lexer.lpp"
-KEYWORD(120, 130 || ES, PRECISION);
-       YY_BREAK
-/* Additional reserved words in GLSL 1.30. */
-case 175:
-YY_RULE_SETUP
-#line 386 "glsl_lexer.lpp"
-KEYWORD(130, 130, CASE);
-       YY_BREAK
-case 176:
-YY_RULE_SETUP
-#line 387 "glsl_lexer.lpp"
-KEYWORD(130, 999, COMMON);
-       YY_BREAK
-case 177:
-YY_RULE_SETUP
-#line 388 "glsl_lexer.lpp"
-KEYWORD(130, 999, PARTITION);
-       YY_BREAK
-case 178:
-YY_RULE_SETUP
-#line 389 "glsl_lexer.lpp"
-KEYWORD(130, 999, ACTIVE);
-       YY_BREAK
-case 179:
-YY_RULE_SETUP
-#line 390 "glsl_lexer.lpp"
-KEYWORD(130 || ES, 999, SUPERP);
-       YY_BREAK
-case 180:
-YY_RULE_SETUP
-#line 391 "glsl_lexer.lpp"
-KEYWORD(130, 140, SAMPLERBUFFER);
-       YY_BREAK
-case 181:
-YY_RULE_SETUP
-#line 392 "glsl_lexer.lpp"
-KEYWORD(130, 999, FILTER);
-       YY_BREAK
-case 182:
-YY_RULE_SETUP
-#line 393 "glsl_lexer.lpp"
-KEYWORD(130, 999, IMAGE1D);
-       YY_BREAK
-case 183:
-YY_RULE_SETUP
-#line 394 "glsl_lexer.lpp"
-KEYWORD(130, 999, IMAGE2D);
-       YY_BREAK
-case 184:
-YY_RULE_SETUP
-#line 395 "glsl_lexer.lpp"
-KEYWORD(130, 999, IMAGE3D);
-       YY_BREAK
-case 185:
-YY_RULE_SETUP
-#line 396 "glsl_lexer.lpp"
-KEYWORD(130, 999, IMAGECUBE);
-       YY_BREAK
-case 186:
-YY_RULE_SETUP
-#line 397 "glsl_lexer.lpp"
-KEYWORD(130, 999, IIMAGE1D);
-       YY_BREAK
-case 187:
-YY_RULE_SETUP
-#line 398 "glsl_lexer.lpp"
-KEYWORD(130, 999, IIMAGE2D);
-       YY_BREAK
-case 188:
-YY_RULE_SETUP
-#line 399 "glsl_lexer.lpp"
-KEYWORD(130, 999, IIMAGE3D);
-       YY_BREAK
-case 189:
-YY_RULE_SETUP
-#line 400 "glsl_lexer.lpp"
-KEYWORD(130, 999, IIMAGECUBE);
-       YY_BREAK
-case 190:
-YY_RULE_SETUP
-#line 401 "glsl_lexer.lpp"
-KEYWORD(130, 999, UIMAGE1D);
-       YY_BREAK
-case 191:
-YY_RULE_SETUP
-#line 402 "glsl_lexer.lpp"
-KEYWORD(130, 999, UIMAGE2D);
-       YY_BREAK
-case 192:
-YY_RULE_SETUP
-#line 403 "glsl_lexer.lpp"
-KEYWORD(130, 999, UIMAGE3D);
-       YY_BREAK
-case 193:
-YY_RULE_SETUP
-#line 404 "glsl_lexer.lpp"
-KEYWORD(130, 999, UIMAGECUBE);
-       YY_BREAK
-case 194:
-YY_RULE_SETUP
-#line 405 "glsl_lexer.lpp"
-KEYWORD(130, 999, IMAGE1DARRAY);
-       YY_BREAK
-case 195:
-YY_RULE_SETUP
-#line 406 "glsl_lexer.lpp"
-KEYWORD(130, 999, IMAGE2DARRAY);
-       YY_BREAK
-case 196:
-YY_RULE_SETUP
-#line 407 "glsl_lexer.lpp"
-KEYWORD(130, 999, IIMAGE1DARRAY);
-       YY_BREAK
-case 197:
-YY_RULE_SETUP
-#line 408 "glsl_lexer.lpp"
-KEYWORD(130, 999, IIMAGE2DARRAY);
-       YY_BREAK
-case 198:
-YY_RULE_SETUP
-#line 409 "glsl_lexer.lpp"
-KEYWORD(130, 999, UIMAGE1DARRAY);
-       YY_BREAK
-case 199:
-YY_RULE_SETUP
-#line 410 "glsl_lexer.lpp"
-KEYWORD(130, 999, UIMAGE2DARRAY);
-       YY_BREAK
-case 200:
-YY_RULE_SETUP
-#line 411 "glsl_lexer.lpp"
-KEYWORD(130, 999, IMAGE1DSHADOW);
-       YY_BREAK
-case 201:
-YY_RULE_SETUP
-#line 412 "glsl_lexer.lpp"
-KEYWORD(130, 999, IMAGE2DSHADOW);
-       YY_BREAK
-case 202:
-YY_RULE_SETUP
-#line 413 "glsl_lexer.lpp"
-KEYWORD(130, 999, IMAGE1DARRAYSHADOW);
-       YY_BREAK
-case 203:
-YY_RULE_SETUP
-#line 414 "glsl_lexer.lpp"
-KEYWORD(130, 999, IMAGE2DARRAYSHADOW);
-       YY_BREAK
-case 204:
-YY_RULE_SETUP
-#line 415 "glsl_lexer.lpp"
-KEYWORD(130, 999, IMAGEBUFFER);
-       YY_BREAK
-case 205:
-YY_RULE_SETUP
-#line 416 "glsl_lexer.lpp"
-KEYWORD(130, 999, IIMAGEBUFFER);
-       YY_BREAK
-case 206:
-YY_RULE_SETUP
-#line 417 "glsl_lexer.lpp"
-KEYWORD(130, 999, UIMAGEBUFFER);
-       YY_BREAK
-case 207:
-YY_RULE_SETUP
-#line 418 "glsl_lexer.lpp"
-KEYWORD(130, 999, ROW_MAJOR);
-       YY_BREAK
-case 208:
-YY_RULE_SETUP
-#line 420 "glsl_lexer.lpp"
-{
-                           struct _mesa_glsl_parse_state *state = yyextra;
-                           void *ctx = state;  
-                           yylval->identifier = ralloc_strdup(ctx, yytext);
-                           return classify_identifier(state, yytext);
-                       }
-       YY_BREAK
-case 209:
-YY_RULE_SETUP
-#line 427 "glsl_lexer.lpp"
-{ return yytext[0]; }
-       YY_BREAK
-case 210:
-YY_RULE_SETUP
-#line 429 "glsl_lexer.lpp"
-ECHO;
-       YY_BREAK
-#line 2557 "glsl_lexer.cpp"
-case YY_STATE_EOF(INITIAL):
-case YY_STATE_EOF(PP):
-case YY_STATE_EOF(PRAGMA):
-       yyterminate();
-
-       case YY_END_OF_BUFFER:
-               {
-               /* Amount of text matched not including the EOB char. */
-               int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
-
-               /* Undo the effects of YY_DO_BEFORE_ACTION. */
-               *yy_cp = yyg->yy_hold_char;
-               YY_RESTORE_YY_MORE_OFFSET
-
-               if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
-                       {
-                       /* We're scanning a new file or input source.  It's
-                        * possible that this happened because the user
-                        * just pointed yyin at a new source and called
-                        * _mesa_glsl_lex().  If so, then we have to assure
-                        * consistency between YY_CURRENT_BUFFER and our
-                        * globals.  Here is the right place to do so, because
-                        * this is the first action (other than possibly a
-                        * back-up) that will match for the new input source.
-                        */
-                       yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-                       YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
-                       YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
-                       }
-
-               /* Note that here we test for yy_c_buf_p "<=" to the position
-                * of the first EOB in the buffer, since yy_c_buf_p will
-                * already have been incremented past the NUL character
-                * (since all states make transitions on EOB to the
-                * end-of-buffer state).  Contrast this with the test
-                * in input().
-                */
-               if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
-                       { /* This was really a NUL. */
-                       yy_state_type yy_next_state;
-
-                       yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
-
-                       yy_current_state = yy_get_previous_state( yyscanner );
-
-                       /* Okay, we're now positioned to make the NUL
-                        * transition.  We couldn't have
-                        * yy_get_previous_state() go ahead and do it
-                        * for us because it doesn't know how to deal
-                        * with the possibility of jamming (and we don't
-                        * want to build jamming into it because then it
-                        * will run more slowly).
-                        */
-
-                       yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
-
-                       yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
-
-                       if ( yy_next_state )
-                               {
-                               /* Consume the NUL. */
-                               yy_cp = ++yyg->yy_c_buf_p;
-                               yy_current_state = yy_next_state;
-                               goto yy_match;
-                               }
-
-                       else
-                               {
-                               yy_cp = yyg->yy_last_accepting_cpos;
-                               yy_current_state = yyg->yy_last_accepting_state;
-                               goto yy_find_action;
-                               }
-                       }
-
-               else switch ( yy_get_next_buffer( yyscanner ) )
-                       {
-                       case EOB_ACT_END_OF_FILE:
-                               {
-                               yyg->yy_did_buffer_switch_on_eof = 0;
-
-                               if ( _mesa_glsl_wrap(yyscanner ) )
-                                       {
-                                       /* Note: because we've taken care in
-                                        * yy_get_next_buffer() to have set up
-                                        * yytext, we can now set up
-                                        * yy_c_buf_p so that if some total
-                                        * hoser (like flex itself) wants to
-                                        * call the scanner after we return the
-                                        * YY_NULL, it'll still work - another
-                                        * YY_NULL will get returned.
-                                        */
-                                       yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
-
-                                       yy_act = YY_STATE_EOF(YY_START);
-                                       goto do_action;
-                                       }
-
-                               else
-                                       {
-                                       if ( ! yyg->yy_did_buffer_switch_on_eof )
-                                               YY_NEW_FILE;
-                                       }
-                               break;
-                               }
-
-                       case EOB_ACT_CONTINUE_SCAN:
-                               yyg->yy_c_buf_p =
-                                       yyg->yytext_ptr + yy_amount_of_matched_text;
-
-                               yy_current_state = yy_get_previous_state( yyscanner );
-
-                               yy_cp = yyg->yy_c_buf_p;
-                               yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
-                               goto yy_match;
-
-                       case EOB_ACT_LAST_MATCH:
-                               yyg->yy_c_buf_p =
-                               &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
-
-                               yy_current_state = yy_get_previous_state( yyscanner );
-
-                               yy_cp = yyg->yy_c_buf_p;
-                               yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
-                               goto yy_find_action;
-                       }
-               break;
-               }
-
-       default:
-               YY_FATAL_ERROR(
-                       "fatal flex scanner internal error--no action found" );
-       } /* end of action switch */
-               } /* end of scanning one token */
-} /* end of _mesa_glsl_lex */
-
-/* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- *     EOB_ACT_LAST_MATCH -
- *     EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- *     EOB_ACT_END_OF_FILE - end of file
- */
-static int yy_get_next_buffer (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-       register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-       register char *source = yyg->yytext_ptr;
-       register int number_to_move, i;
-       int ret_val;
-
-       if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
-               YY_FATAL_ERROR(
-               "fatal flex scanner internal error--end of buffer missed" );
-
-       if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
-               { /* Don't try to fill the buffer, so this is an EOF. */
-               if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
-                       {
-                       /* We matched a single character, the EOB, so
-                        * treat this as a final EOF.
-                        */
-                       return EOB_ACT_END_OF_FILE;
-                       }
-
-               else
-                       {
-                       /* We matched some text prior to the EOB, first
-                        * process it.
-                        */
-                       return EOB_ACT_LAST_MATCH;
-                       }
-               }
-
-       /* Try to read more data. */
-
-       /* First move last chars to start of buffer. */
-       number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
-
-       for ( i = 0; i < number_to_move; ++i )
-               *(dest++) = *(source++);
-
-       if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
-               /* don't do the read, it's not guaranteed to return an EOF,
-                * just force an EOF
-                */
-               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
-
-       else
-               {
-                       int num_to_read =
-                       YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
-
-               while ( num_to_read <= 0 )
-                       { /* Not enough room in the buffer - grow it. */
-
-                       /* just a shorter name for the current buffer */
-                       YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
-
-                       int yy_c_buf_p_offset =
-                               (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
-
-                       if ( b->yy_is_our_buffer )
-                               {
-                               int new_size = b->yy_buf_size * 2;
-
-                               if ( new_size <= 0 )
-                                       b->yy_buf_size += b->yy_buf_size / 8;
-                               else
-                                       b->yy_buf_size *= 2;
-
-                               b->yy_ch_buf = (char *)
-                                       /* Include room in for 2 EOB chars. */
-                                       _mesa_glsl_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
-                               }
-                       else
-                               /* Can't grow it, we don't own it. */
-                               b->yy_ch_buf = 0;
-
-                       if ( ! b->yy_ch_buf )
-                               YY_FATAL_ERROR(
-                               "fatal error - scanner input buffer overflow" );
-
-                       yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
-
-                       num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
-                                               number_to_move - 1;
-
-                       }
-
-               if ( num_to_read > YY_READ_BUF_SIZE )
-                       num_to_read = YY_READ_BUF_SIZE;
-
-               /* Read in more data. */
-               YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-                       yyg->yy_n_chars, (size_t) num_to_read );
-
-               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
-               }
-
-       if ( yyg->yy_n_chars == 0 )
-               {
-               if ( number_to_move == YY_MORE_ADJ )
-                       {
-                       ret_val = EOB_ACT_END_OF_FILE;
-                       _mesa_glsl_restart(yyin  ,yyscanner);
-                       }
-
-               else
-                       {
-                       ret_val = EOB_ACT_LAST_MATCH;
-                       YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
-                               YY_BUFFER_EOF_PENDING;
-                       }
-               }
-
-       else
-               ret_val = EOB_ACT_CONTINUE_SCAN;
-
-       if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
-               /* Extend the array by 50%, plus the number we really need. */
-               yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
-               YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) _mesa_glsl_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
-               if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-                       YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
-       }
-
-       yyg->yy_n_chars += number_to_move;
-       YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
-       YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
-
-       yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
-
-       return ret_val;
-}
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
-    static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
-{
-       register yy_state_type yy_current_state;
-       register char *yy_cp;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-       yy_current_state = yyg->yy_start;
-       yy_current_state += YY_AT_BOL();
-
-       for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
-               {
-               register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
-               if ( yy_accept[yy_current_state] )
-                       {
-                       yyg->yy_last_accepting_state = yy_current_state;
-                       yyg->yy_last_accepting_cpos = yy_cp;
-                       }
-               while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-                       {
-                       yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 836 )
-                               yy_c = yy_meta[(unsigned int) yy_c];
-                       }
-               yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-               }
-
-       return yy_current_state;
-}
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- *     next_state = yy_try_NUL_trans( current_state );
- */
-    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
-{
-       register int yy_is_jam;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
-       register char *yy_cp = yyg->yy_c_buf_p;
-
-       register YY_CHAR yy_c = 1;
-       if ( yy_accept[yy_current_state] )
-               {
-               yyg->yy_last_accepting_state = yy_current_state;
-               yyg->yy_last_accepting_cpos = yy_cp;
-               }
-       while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-               {
-               yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 836 )
-                       yy_c = yy_meta[(unsigned int) yy_c];
-               }
-       yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 835);
-
-       return yy_is_jam ? 0 : yy_current_state;
-}
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-    static int yyinput (yyscan_t yyscanner)
-#else
-    static int input  (yyscan_t yyscanner)
-#endif
-
-{
-       int c;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-       *yyg->yy_c_buf_p = yyg->yy_hold_char;
-
-       if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
-               {
-               /* yy_c_buf_p now points to the character we want to return.
-                * If this occurs *before* the EOB characters, then it's a
-                * valid NUL; if not, then we've hit the end of the buffer.
-                */
-               if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
-                       /* This was really a NUL. */
-                       *yyg->yy_c_buf_p = '\0';
-
-               else
-                       { /* need more input */
-                       int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
-                       ++yyg->yy_c_buf_p;
-
-                       switch ( yy_get_next_buffer( yyscanner ) )
-                               {
-                               case EOB_ACT_LAST_MATCH:
-                                       /* This happens because yy_g_n_b()
-                                        * sees that we've accumulated a
-                                        * token and flags that we need to
-                                        * try matching the token before
-                                        * proceeding.  But for input(),
-                                        * there's no matching to consider.
-                                        * So convert the EOB_ACT_LAST_MATCH
-                                        * to EOB_ACT_END_OF_FILE.
-                                        */
-
-                                       /* Reset buffer status. */
-                                       _mesa_glsl_restart(yyin ,yyscanner);
-
-                                       /*FALLTHROUGH*/
-
-                               case EOB_ACT_END_OF_FILE:
-                                       {
-                                       if ( _mesa_glsl_wrap(yyscanner ) )
-                                               return EOF;
-
-                                       if ( ! yyg->yy_did_buffer_switch_on_eof )
-                                               YY_NEW_FILE;
-#ifdef __cplusplus
-                                       return yyinput(yyscanner);
-#else
-                                       return input(yyscanner);
-#endif
-                                       }
-
-                               case EOB_ACT_CONTINUE_SCAN:
-                                       yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
-                                       break;
-                               }
-                       }
-               }
-
-       c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
-       *yyg->yy_c_buf_p = '\0';        /* preserve yytext */
-       yyg->yy_hold_char = *++yyg->yy_c_buf_p;
-
-       YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
-
-       return c;
-}
-#endif /* ifndef YY_NO_INPUT */
-
-/** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- * @param yyscanner The scanner object.
- * @note This function does not reset the start condition to @c INITIAL .
- */
-    void _mesa_glsl_restart  (FILE * input_file , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-       if ( ! YY_CURRENT_BUFFER ){
-        _mesa_glsl_ensure_buffer_stack (yyscanner);
-               YY_CURRENT_BUFFER_LVALUE =
-            _mesa_glsl__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
-       }
-
-       _mesa_glsl__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
-       _mesa_glsl__load_buffer_state(yyscanner );
-}
-
-/** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- * @param yyscanner The scanner object.
- */
-    void _mesa_glsl__switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-       /* TODO. We should be able to replace this entire function body
-        * with
-        *              _mesa_glsl_pop_buffer_state();
-        *              _mesa_glsl_push_buffer_state(new_buffer);
-     */
-       _mesa_glsl_ensure_buffer_stack (yyscanner);
-       if ( YY_CURRENT_BUFFER == new_buffer )
-               return;
-
-       if ( YY_CURRENT_BUFFER )
-               {
-               /* Flush out information for old buffer. */
-               *yyg->yy_c_buf_p = yyg->yy_hold_char;
-               YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
-               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
-               }
-
-       YY_CURRENT_BUFFER_LVALUE = new_buffer;
-       _mesa_glsl__load_buffer_state(yyscanner );
-
-       /* We don't actually know whether we did this switch during
-        * EOF (_mesa_glsl_wrap()) processing, but the only time this flag
-        * is looked at is after _mesa_glsl_wrap() is called, so it's safe
-        * to go ahead and always set it.
-        */
-       yyg->yy_did_buffer_switch_on_eof = 1;
-}
-
-static void _mesa_glsl__load_buffer_state  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-       yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-       yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-       yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
-       yyg->yy_hold_char = *yyg->yy_c_buf_p;
-}
-
-/** Allocate and initialize an input buffer state.
- * @param file A readable stream.
- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- * @param yyscanner The scanner object.
- * @return the allocated buffer state.
- */
-    YY_BUFFER_STATE _mesa_glsl__create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
-{
-       YY_BUFFER_STATE b;
-    
-       b = (YY_BUFFER_STATE) _mesa_glsl_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
-       if ( ! b )
-               YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl__create_buffer()" );
-
-       b->yy_buf_size = size;
-
-       /* yy_ch_buf has to be 2 characters longer than the size given because
-        * we need to put in 2 end-of-buffer characters.
-        */
-       b->yy_ch_buf = (char *) _mesa_glsl_alloc(b->yy_buf_size + 2 ,yyscanner );
-       if ( ! b->yy_ch_buf )
-               YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl__create_buffer()" );
-
-       b->yy_is_our_buffer = 1;
-
-       _mesa_glsl__init_buffer(b,file ,yyscanner);
-
-       return b;
-}
-
-/** Destroy the buffer.
- * @param b a buffer created with _mesa_glsl__create_buffer()
- * @param yyscanner The scanner object.
- */
-    void _mesa_glsl__delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-       if ( ! b )
-               return;
-
-       if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
-               YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
-
-       if ( b->yy_is_our_buffer )
-               _mesa_glsl_free((void *) b->yy_ch_buf ,yyscanner );
-
-       _mesa_glsl_free((void *) b ,yyscanner );
-}
-
-/* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a _mesa_glsl_restart() or at EOF.
- */
-    static void _mesa_glsl__init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
-
-{
-       int oerrno = errno;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-       _mesa_glsl__flush_buffer(b ,yyscanner);
-
-       b->yy_input_file = file;
-       b->yy_fill_buffer = 1;
-
-    /* If b is the current buffer, then _mesa_glsl__init_buffer was _probably_
-     * called from _mesa_glsl_restart() or through yy_get_next_buffer.
-     * In that case, we don't want to reset the lineno or column.
-     */
-    if (b != YY_CURRENT_BUFFER){
-        b->yy_bs_lineno = 1;
-        b->yy_bs_column = 0;
-    }
-
-        b->yy_is_interactive = 0;
-    
-       errno = oerrno;
-}
-
-/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- * @param yyscanner The scanner object.
- */
-    void _mesa_glsl__flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-       if ( ! b )
-               return;
-
-       b->yy_n_chars = 0;
-
-       /* We always need two end-of-buffer characters.  The first causes
-        * a transition to the end-of-buffer state.  The second causes
-        * a jam in that state.
-        */
-       b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
-       b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-
-       b->yy_buf_pos = &b->yy_ch_buf[0];
-
-       b->yy_at_bol = 1;
-       b->yy_buffer_status = YY_BUFFER_NEW;
-
-       if ( b == YY_CURRENT_BUFFER )
-               _mesa_glsl__load_buffer_state(yyscanner );
-}
-
-/** Pushes the new state onto the stack. The new state becomes
- *  the current state. This function will allocate the stack
- *  if necessary.
- *  @param new_buffer The new state.
- *  @param yyscanner The scanner object.
- */
-void _mesa_glsl_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-       if (new_buffer == NULL)
-               return;
-
-       _mesa_glsl_ensure_buffer_stack(yyscanner);
-
-       /* This block is copied from _mesa_glsl__switch_to_buffer. */
-       if ( YY_CURRENT_BUFFER )
-               {
-               /* Flush out information for old buffer. */
-               *yyg->yy_c_buf_p = yyg->yy_hold_char;
-               YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
-               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
-               }
-
-       /* Only push if top exists. Otherwise, replace top. */
-       if (YY_CURRENT_BUFFER)
-               yyg->yy_buffer_stack_top++;
-       YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
-       /* copied from _mesa_glsl__switch_to_buffer. */
-       _mesa_glsl__load_buffer_state(yyscanner );
-       yyg->yy_did_buffer_switch_on_eof = 1;
-}
-
-/** Removes and deletes the top of the stack, if present.
- *  The next element becomes the new top.
- *  @param yyscanner The scanner object.
- */
-void _mesa_glsl_pop_buffer_state (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-       if (!YY_CURRENT_BUFFER)
-               return;
-
-       _mesa_glsl__delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
-       YY_CURRENT_BUFFER_LVALUE = NULL;
-       if (yyg->yy_buffer_stack_top > 0)
-               --yyg->yy_buffer_stack_top;
-
-       if (YY_CURRENT_BUFFER) {
-               _mesa_glsl__load_buffer_state(yyscanner );
-               yyg->yy_did_buffer_switch_on_eof = 1;
-       }
-}
-
-/* Allocates the stack if it does not exist.
- *  Guarantees space for at least one push.
- */
-static void _mesa_glsl_ensure_buffer_stack (yyscan_t yyscanner)
-{
-       int num_to_alloc;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-       if (!yyg->yy_buffer_stack) {
-
-               /* First allocation is just for 2 elements, since we don't know if this
-                * scanner will even need a stack. We use 2 instead of 1 to avoid an
-                * immediate realloc on the next call.
-         */
-               num_to_alloc = 1;
-               yyg->yy_buffer_stack = (struct yy_buffer_state**)_mesa_glsl_alloc
-                                                               (num_to_alloc * sizeof(struct yy_buffer_state*)
-                                                               , yyscanner);
-               if ( ! yyg->yy_buffer_stack )
-                       YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl_ensure_buffer_stack()" );
-                                                                 
-               memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-                               
-               yyg->yy_buffer_stack_max = num_to_alloc;
-               yyg->yy_buffer_stack_top = 0;
-               return;
-       }
-
-       if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
-
-               /* Increase the buffer to prepare for a possible push. */
-               int grow_size = 8 /* arbitrary grow size */;
-
-               num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
-               yyg->yy_buffer_stack = (struct yy_buffer_state**)_mesa_glsl_realloc
-                                                               (yyg->yy_buffer_stack,
-                                                               num_to_alloc * sizeof(struct yy_buffer_state*)
-                                                               , yyscanner);
-               if ( ! yyg->yy_buffer_stack )
-                       YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl_ensure_buffer_stack()" );
-
-               /* zero only the new slots.*/
-               memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
-               yyg->yy_buffer_stack_max = num_to_alloc;
-       }
-}
-
-/** Setup the input buffer state to scan directly from a user-specified character buffer.
- * @param base the character buffer
- * @param size the size in bytes of the character buffer
- * @param yyscanner The scanner object.
- * @return the newly allocated buffer state object. 
- */
-YY_BUFFER_STATE _mesa_glsl__scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
-{
-       YY_BUFFER_STATE b;
-    
-       if ( size < 2 ||
-            base[size-2] != YY_END_OF_BUFFER_CHAR ||
-            base[size-1] != YY_END_OF_BUFFER_CHAR )
-               /* They forgot to leave room for the EOB's. */
-               return 0;
-
-       b = (YY_BUFFER_STATE) _mesa_glsl_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
-       if ( ! b )
-               YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl__scan_buffer()" );
-
-       b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
-       b->yy_buf_pos = b->yy_ch_buf = base;
-       b->yy_is_our_buffer = 0;
-       b->yy_input_file = 0;
-       b->yy_n_chars = b->yy_buf_size;
-       b->yy_is_interactive = 0;
-       b->yy_at_bol = 1;
-       b->yy_fill_buffer = 0;
-       b->yy_buffer_status = YY_BUFFER_NEW;
-
-       _mesa_glsl__switch_to_buffer(b ,yyscanner );
-
-       return b;
-}
-
-/** Setup the input buffer state to scan a string. The next call to _mesa_glsl_lex() will
- * scan from a @e copy of @a str.
- * @param yystr a NUL-terminated string to scan
- * @param yyscanner The scanner object.
- * @return the newly allocated buffer state object.
- * @note If you want to scan bytes that may contain NUL values, then use
- *       _mesa_glsl__scan_bytes() instead.
- */
-YY_BUFFER_STATE _mesa_glsl__scan_string (yyconst char * yystr , yyscan_t yyscanner)
-{
-    
-       return _mesa_glsl__scan_bytes(yystr,strlen(yystr) ,yyscanner);
-}
-
-/** Setup the input buffer state to scan the given bytes. The next call to _mesa_glsl_lex() will
- * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
- * @param yyscanner The scanner object.
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE _mesa_glsl__scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
-{
-       YY_BUFFER_STATE b;
-       char *buf;
-       yy_size_t n;
-       int i;
-    
-       /* Get memory for full buffer, including space for trailing EOB's. */
-       n = _yybytes_len + 2;
-       buf = (char *) _mesa_glsl_alloc(n ,yyscanner );
-       if ( ! buf )
-               YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl__scan_bytes()" );
-
-       for ( i = 0; i < _yybytes_len; ++i )
-               buf[i] = yybytes[i];
-
-       buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
-
-       b = _mesa_glsl__scan_buffer(buf,n ,yyscanner);
-       if ( ! b )
-               YY_FATAL_ERROR( "bad buffer in _mesa_glsl__scan_bytes()" );
-
-       /* It's okay to grow etc. this buffer, and we should throw it
-        * away when we're done.
-        */
-       b->yy_is_our_buffer = 1;
-
-       return b;
-}
-
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
-
-static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
-{
-       (void) fprintf( stderr, "%s\n", msg );
-       exit( YY_EXIT_FAILURE );
-}
-
-/* Redefine yyless() so it works in section 3 code. */
-
-#undef yyless
-#define yyless(n) \
-       do \
-               { \
-               /* Undo effects of setting up yytext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-               yytext[yyleng] = yyg->yy_hold_char; \
-               yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
-               yyg->yy_hold_char = *yyg->yy_c_buf_p; \
-               *yyg->yy_c_buf_p = '\0'; \
-               yyleng = yyless_macro_arg; \
-               } \
-       while ( 0 )
-
-/* Accessor  methods (get/set functions) to struct members. */
-
-/** Get the user-defined data for this scanner.
- * @param yyscanner The scanner object.
- */
-YY_EXTRA_TYPE _mesa_glsl_get_extra  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyextra;
-}
-
-/** Get the current line number.
- * @param yyscanner The scanner object.
- */
-int _mesa_glsl_get_lineno  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    
-        if (! YY_CURRENT_BUFFER)
-            return 0;
-    
-    return yylineno;
-}
-
-/** Get the current column number.
- * @param yyscanner The scanner object.
- */
-int _mesa_glsl_get_column  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    
-        if (! YY_CURRENT_BUFFER)
-            return 0;
-    
-    return yycolumn;
-}
-
-/** Get the input stream.
- * @param yyscanner The scanner object.
- */
-FILE *_mesa_glsl_get_in  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyin;
-}
-
-/** Get the output stream.
- * @param yyscanner The scanner object.
- */
-FILE *_mesa_glsl_get_out  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyout;
-}
-
-/** Get the length of the current token.
- * @param yyscanner The scanner object.
- */
-int _mesa_glsl_get_leng  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyleng;
-}
-
-/** Get the current token.
- * @param yyscanner The scanner object.
- */
-
-char *_mesa_glsl_get_text  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yytext;
-}
-
-/** Set the user-defined data. This data is never touched by the scanner.
- * @param user_defined The data to be associated with this scanner.
- * @param yyscanner The scanner object.
- */
-void _mesa_glsl_set_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yyextra = user_defined ;
-}
-
-/** Set the current line number.
- * @param line_number
- * @param yyscanner The scanner object.
- */
-void _mesa_glsl_set_lineno (int  line_number , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-        /* lineno is only valid if an input buffer exists. */
-        if (! YY_CURRENT_BUFFER )
-           yy_fatal_error( "_mesa_glsl_set_lineno called with no buffer" , yyscanner); 
-    
-    yylineno = line_number;
-}
-
-/** Set the current column.
- * @param line_number
- * @param yyscanner The scanner object.
- */
-void _mesa_glsl_set_column (int  column_no , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-        /* column is only valid if an input buffer exists. */
-        if (! YY_CURRENT_BUFFER )
-           yy_fatal_error( "_mesa_glsl_set_column called with no buffer" , yyscanner); 
-    
-    yycolumn = column_no;
-}
-
-/** Set the input stream. This does not discard the current
- * input buffer.
- * @param in_str A readable stream.
- * @param yyscanner The scanner object.
- * @see _mesa_glsl__switch_to_buffer
- */
-void _mesa_glsl_set_in (FILE *  in_str , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yyin = in_str ;
-}
-
-void _mesa_glsl_set_out (FILE *  out_str , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yyout = out_str ;
-}
-
-int _mesa_glsl_get_debug  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yy_flex_debug;
-}
-
-void _mesa_glsl_set_debug (int  bdebug , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yy_flex_debug = bdebug ;
-}
-
-/* Accessor methods for yylval and yylloc */
-
-YYSTYPE * _mesa_glsl_get_lval  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yylval;
-}
-
-void _mesa_glsl_set_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yylval = yylval_param;
-}
-
-YYLTYPE *_mesa_glsl_get_lloc  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yylloc;
-}
-    
-void _mesa_glsl_set_lloc (YYLTYPE *  yylloc_param , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yylloc = yylloc_param;
-}
-    
-/* User-visible API */
-
-/* _mesa_glsl_lex_init is special because it creates the scanner itself, so it is
- * the ONLY reentrant function that doesn't take the scanner as the last argument.
- * That's why we explicitly handle the declaration, instead of using our macros.
- */
-
-int _mesa_glsl_lex_init(yyscan_t* ptr_yy_globals)
-
-{
-    if (ptr_yy_globals == NULL){
-        errno = EINVAL;
-        return 1;
-    }
-
-    *ptr_yy_globals = (yyscan_t) _mesa_glsl_alloc ( sizeof( struct yyguts_t ), NULL );
-
-    if (*ptr_yy_globals == NULL){
-        errno = ENOMEM;
-        return 1;
-    }
-
-    /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
-    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
-
-    return yy_init_globals ( *ptr_yy_globals );
-}
-
-/* _mesa_glsl_lex_init_extra has the same functionality as _mesa_glsl_lex_init, but follows the
- * convention of taking the scanner as the last argument. Note however, that
- * this is a *pointer* to a scanner, as it will be allocated by this call (and
- * is the reason, too, why this function also must handle its own declaration).
- * The user defined value in the first argument will be available to _mesa_glsl_alloc in
- * the yyextra field.
- */
-
-int _mesa_glsl_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
-
-{
-    struct yyguts_t dummy_yyguts;
-
-    _mesa_glsl_set_extra (yy_user_defined, &dummy_yyguts);
-
-    if (ptr_yy_globals == NULL){
-        errno = EINVAL;
-        return 1;
-    }
-       
-    *ptr_yy_globals = (yyscan_t) _mesa_glsl_alloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
-       
-    if (*ptr_yy_globals == NULL){
-        errno = ENOMEM;
-        return 1;
-    }
-    
-    /* By setting to 0xAA, we expose bugs in
-    yy_init_globals. Leave at 0x00 for releases. */
-    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
-    
-    _mesa_glsl_set_extra (yy_user_defined, *ptr_yy_globals);
-    
-    return yy_init_globals ( *ptr_yy_globals );
-}
-
-static int yy_init_globals (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    /* Initialization is the same as for the non-reentrant scanner.
-     * This function is called from _mesa_glsl_lex_destroy(), so don't allocate here.
-     */
-
-    yyg->yy_buffer_stack = 0;
-    yyg->yy_buffer_stack_top = 0;
-    yyg->yy_buffer_stack_max = 0;
-    yyg->yy_c_buf_p = (char *) 0;
-    yyg->yy_init = 0;
-    yyg->yy_start = 0;
-
-    yyg->yy_start_stack_ptr = 0;
-    yyg->yy_start_stack_depth = 0;
-    yyg->yy_start_stack =  NULL;
-
-/* Defined in main.c */
-#ifdef YY_STDINIT
-    yyin = stdin;
-    yyout = stdout;
-#else
-    yyin = (FILE *) 0;
-    yyout = (FILE *) 0;
-#endif
-
-    /* For future reference: Set errno on error, since we are called by
-     * _mesa_glsl_lex_init()
-     */
-    return 0;
-}
-
-/* _mesa_glsl_lex_destroy is for both reentrant and non-reentrant scanners. */
-int _mesa_glsl_lex_destroy  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-    /* Pop the buffer stack, destroying each element. */
-       while(YY_CURRENT_BUFFER){
-               _mesa_glsl__delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
-               YY_CURRENT_BUFFER_LVALUE = NULL;
-               _mesa_glsl_pop_buffer_state(yyscanner);
-       }
-
-       /* Destroy the stack itself. */
-       _mesa_glsl_free(yyg->yy_buffer_stack ,yyscanner);
-       yyg->yy_buffer_stack = NULL;
-
-    /* Destroy the start condition stack. */
-        _mesa_glsl_free(yyg->yy_start_stack ,yyscanner );
-        yyg->yy_start_stack = NULL;
-
-    /* Reset the globals. This is important in a non-reentrant scanner so the next time
-     * _mesa_glsl_lex() is called, initialization will occur. */
-    yy_init_globals( yyscanner);
-
-    /* Destroy the main struct (reentrant only). */
-    _mesa_glsl_free ( yyscanner , yyscanner );
-    yyscanner = NULL;
-    return 0;
-}
-
-/*
- * Internal utility routines.
- */
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
-{
-       register int i;
-       for ( i = 0; i < n; ++i )
-               s1[i] = s2[i];
-}
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
-{
-       register int n;
-       for ( n = 0; s[n]; ++n )
-               ;
-
-       return n;
-}
-#endif
-
-void *_mesa_glsl_alloc (yy_size_t  size , yyscan_t yyscanner)
-{
-       return (void *) malloc( size );
-}
-
-void *_mesa_glsl_realloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
-{
-       /* The cast to (char *) in the following accommodates both
-        * implementations that use char* generic pointers, and those
-        * that use void* generic pointers.  It works with the latter
-        * because both ANSI C and C++ allow castless assignment from
-        * any pointer type to void*, and deal with argument conversions
-        * as though doing an assignment.
-        */
-       return (void *) realloc( (char *) ptr, size );
-}
-
-void _mesa_glsl_free (void * ptr , yyscan_t yyscanner)
-{
-       free( (char *) ptr );   /* see _mesa_glsl_realloc() for (char *) cast */
-}
-
-#define YYTABLES_NAME "yytables"
-
-#line 429 "glsl_lexer.lpp"
-
-
-
-int
-classify_identifier(struct _mesa_glsl_parse_state *state, const char *name)
-{
-   if (state->symbols->get_variable(name) || state->symbols->get_function(name))
-      return IDENTIFIER;
-   else if (state->symbols->get_type(name))
-      return TYPE_IDENTIFIER;
-   else
-      return NEW_IDENTIFIER;
-}
-
-void
-_mesa_glsl_lexer_ctor(struct _mesa_glsl_parse_state *state, const char *string)
-{
-   _mesa_glsl_lex_init_extra(state,& state->scanner);
-   _mesa_glsl__scan_string(string,state->scanner);
-}
-
-void
-_mesa_glsl_lexer_dtor(struct _mesa_glsl_parse_state *state)
-{
-   _mesa_glsl_lex_destroy(state->scanner);
-}
-
diff --git a/src/glsl/glsl_parser.cpp b/src/glsl/glsl_parser.cpp
deleted file mode 100644 (file)
index 1db7e90..0000000
+++ /dev/null
@@ -1,5456 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.4.3.  */
-
-/* Skeleton implementation for Bison's Yacc-like parsers in C
-   
-      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-   2009, 2010 Free Software Foundation, Inc.
-   
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-   
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-/* C LALR(1) parser skeleton written by Richard Stallman, by
-   simplifying the original so-called "semantic" parser.  */
-
-/* All symbols defined below should begin with yy or YY, to avoid
-   infringing on user name space.  This should be done even for local
-   variables, as they might otherwise be expanded by user macros.
-   There are some unavoidable exceptions within include files to
-   define necessary library symbols; they are noted "INFRINGES ON
-   USER NAME SPACE" below.  */
-
-/* Identify Bison output.  */
-#define YYBISON 1
-
-/* Bison version.  */
-#define YYBISON_VERSION "2.4.3"
-
-/* Skeleton name.  */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers.  */
-#define YYPURE 1
-
-/* Push parsers.  */
-#define YYPUSH 0
-
-/* Pull parsers.  */
-#define YYPULL 1
-
-/* Using locations.  */
-#define YYLSP_NEEDED 1
-
-/* Substitute the variable and function names.  */
-#define yyparse         _mesa_glsl_parse
-#define yylex           _mesa_glsl_lex
-#define yyerror         _mesa_glsl_error
-#define yylval          _mesa_glsl_lval
-#define yychar          _mesa_glsl_char
-#define yydebug         _mesa_glsl_debug
-#define yynerrs         _mesa_glsl_nerrs
-#define yylloc          _mesa_glsl_lloc
-
-/* Copy the first part of user declarations.  */
-
-/* Line 189 of yacc.c  */
-#line 1 "glsl_parser.ypp"
-
-/*
- * Copyright Â© 2008, 2009 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-    
-#include "ast.h"
-#include "glsl_parser_extras.h"
-#include "glsl_types.h"
-
-#define YYLEX_PARAM state->scanner
-
-
-
-/* Line 189 of yacc.c  */
-#line 117 "glsl_parser.cpp"
-
-/* Enabling traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-
-/* Enabling verbose error messages.  */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 1
-#endif
-
-/* Enabling the token table.  */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
-#endif
-
-
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     ATTRIBUTE = 258,
-     CONST_TOK = 259,
-     BOOL_TOK = 260,
-     FLOAT_TOK = 261,
-     INT_TOK = 262,
-     UINT_TOK = 263,
-     BREAK = 264,
-     CONTINUE = 265,
-     DO = 266,
-     ELSE = 267,
-     FOR = 268,
-     IF = 269,
-     DISCARD = 270,
-     RETURN = 271,
-     SWITCH = 272,
-     CASE = 273,
-     DEFAULT = 274,
-     BVEC2 = 275,
-     BVEC3 = 276,
-     BVEC4 = 277,
-     IVEC2 = 278,
-     IVEC3 = 279,
-     IVEC4 = 280,
-     UVEC2 = 281,
-     UVEC3 = 282,
-     UVEC4 = 283,
-     VEC2 = 284,
-     VEC3 = 285,
-     VEC4 = 286,
-     CENTROID = 287,
-     IN_TOK = 288,
-     OUT_TOK = 289,
-     INOUT_TOK = 290,
-     UNIFORM = 291,
-     VARYING = 292,
-     NOPERSPECTIVE = 293,
-     FLAT = 294,
-     SMOOTH = 295,
-     MAT2X2 = 296,
-     MAT2X3 = 297,
-     MAT2X4 = 298,
-     MAT3X2 = 299,
-     MAT3X3 = 300,
-     MAT3X4 = 301,
-     MAT4X2 = 302,
-     MAT4X3 = 303,
-     MAT4X4 = 304,
-     SAMPLER1D = 305,
-     SAMPLER2D = 306,
-     SAMPLER3D = 307,
-     SAMPLERCUBE = 308,
-     SAMPLER1DSHADOW = 309,
-     SAMPLER2DSHADOW = 310,
-     SAMPLERCUBESHADOW = 311,
-     SAMPLER1DARRAY = 312,
-     SAMPLER2DARRAY = 313,
-     SAMPLER1DARRAYSHADOW = 314,
-     SAMPLER2DARRAYSHADOW = 315,
-     ISAMPLER1D = 316,
-     ISAMPLER2D = 317,
-     ISAMPLER3D = 318,
-     ISAMPLERCUBE = 319,
-     ISAMPLER1DARRAY = 320,
-     ISAMPLER2DARRAY = 321,
-     USAMPLER1D = 322,
-     USAMPLER2D = 323,
-     USAMPLER3D = 324,
-     USAMPLERCUBE = 325,
-     USAMPLER1DARRAY = 326,
-     USAMPLER2DARRAY = 327,
-     STRUCT = 328,
-     VOID_TOK = 329,
-     WHILE = 330,
-     IDENTIFIER = 331,
-     TYPE_IDENTIFIER = 332,
-     NEW_IDENTIFIER = 333,
-     FLOATCONSTANT = 334,
-     INTCONSTANT = 335,
-     UINTCONSTANT = 336,
-     BOOLCONSTANT = 337,
-     FIELD_SELECTION = 338,
-     LEFT_OP = 339,
-     RIGHT_OP = 340,
-     INC_OP = 341,
-     DEC_OP = 342,
-     LE_OP = 343,
-     GE_OP = 344,
-     EQ_OP = 345,
-     NE_OP = 346,
-     AND_OP = 347,
-     OR_OP = 348,
-     XOR_OP = 349,
-     MUL_ASSIGN = 350,
-     DIV_ASSIGN = 351,
-     ADD_ASSIGN = 352,
-     MOD_ASSIGN = 353,
-     LEFT_ASSIGN = 354,
-     RIGHT_ASSIGN = 355,
-     AND_ASSIGN = 356,
-     XOR_ASSIGN = 357,
-     OR_ASSIGN = 358,
-     SUB_ASSIGN = 359,
-     INVARIANT = 360,
-     LOWP = 361,
-     MEDIUMP = 362,
-     HIGHP = 363,
-     SUPERP = 364,
-     PRECISION = 365,
-     VERSION = 366,
-     EXTENSION = 367,
-     LINE = 368,
-     COLON = 369,
-     EOL = 370,
-     INTERFACE = 371,
-     OUTPUT = 372,
-     PRAGMA_DEBUG_ON = 373,
-     PRAGMA_DEBUG_OFF = 374,
-     PRAGMA_OPTIMIZE_ON = 375,
-     PRAGMA_OPTIMIZE_OFF = 376,
-     PRAGMA_INVARIANT_ALL = 377,
-     LAYOUT_TOK = 378,
-     ASM = 379,
-     CLASS = 380,
-     UNION = 381,
-     ENUM = 382,
-     TYPEDEF = 383,
-     TEMPLATE = 384,
-     THIS = 385,
-     PACKED_TOK = 386,
-     GOTO = 387,
-     INLINE_TOK = 388,
-     NOINLINE = 389,
-     VOLATILE = 390,
-     PUBLIC_TOK = 391,
-     STATIC = 392,
-     EXTERN = 393,
-     EXTERNAL = 394,
-     LONG_TOK = 395,
-     SHORT_TOK = 396,
-     DOUBLE_TOK = 397,
-     HALF = 398,
-     FIXED_TOK = 399,
-     UNSIGNED = 400,
-     INPUT_TOK = 401,
-     OUPTUT = 402,
-     HVEC2 = 403,
-     HVEC3 = 404,
-     HVEC4 = 405,
-     DVEC2 = 406,
-     DVEC3 = 407,
-     DVEC4 = 408,
-     FVEC2 = 409,
-     FVEC3 = 410,
-     FVEC4 = 411,
-     SAMPLER2DRECT = 412,
-     SAMPLER3DRECT = 413,
-     SAMPLER2DRECTSHADOW = 414,
-     SIZEOF = 415,
-     CAST = 416,
-     NAMESPACE = 417,
-     USING = 418,
-     ERROR_TOK = 419,
-     COMMON = 420,
-     PARTITION = 421,
-     ACTIVE = 422,
-     SAMPLERBUFFER = 423,
-     FILTER = 424,
-     IMAGE1D = 425,
-     IMAGE2D = 426,
-     IMAGE3D = 427,
-     IMAGECUBE = 428,
-     IMAGE1DARRAY = 429,
-     IMAGE2DARRAY = 430,
-     IIMAGE1D = 431,
-     IIMAGE2D = 432,
-     IIMAGE3D = 433,
-     IIMAGECUBE = 434,
-     IIMAGE1DARRAY = 435,
-     IIMAGE2DARRAY = 436,
-     UIMAGE1D = 437,
-     UIMAGE2D = 438,
-     UIMAGE3D = 439,
-     UIMAGECUBE = 440,
-     UIMAGE1DARRAY = 441,
-     UIMAGE2DARRAY = 442,
-     IMAGE1DSHADOW = 443,
-     IMAGE2DSHADOW = 444,
-     IMAGEBUFFER = 445,
-     IIMAGEBUFFER = 446,
-     UIMAGEBUFFER = 447,
-     IMAGE1DARRAYSHADOW = 448,
-     IMAGE2DARRAYSHADOW = 449,
-     ROW_MAJOR = 450
-   };
-#endif
-
-
-
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
-{
-
-/* Line 214 of yacc.c  */
-#line 52 "glsl_parser.ypp"
-
-   int n;
-   float real;
-   char *identifier;
-
-   struct ast_type_qualifier type_qualifier;
-
-   ast_node *node;
-   ast_type_specifier *type_specifier;
-   ast_fully_specified_type *fully_specified_type;
-   ast_function *function;
-   ast_parameter_declarator *parameter_declarator;
-   ast_function_definition *function_definition;
-   ast_compound_statement *compound_statement;
-   ast_expression *expression;
-   ast_declarator_list *declarator_list;
-   ast_struct_specifier *struct_specifier;
-   ast_declaration *declaration;
-
-   struct {
-      ast_node *cond;
-      ast_expression *rest;
-   } for_rest_statement;
-
-   struct {
-      ast_node *then_statement;
-      ast_node *else_statement;
-   } selection_rest_statement;
-
-
-
-/* Line 214 of yacc.c  */
-#line 380 "glsl_parser.cpp"
-} YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
-typedef struct YYLTYPE
-{
-  int first_line;
-  int first_column;
-  int last_line;
-  int last_column;
-} YYLTYPE;
-# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
-# define YYLTYPE_IS_DECLARED 1
-# define YYLTYPE_IS_TRIVIAL 1
-#endif
-
-
-/* Copy the second part of user declarations.  */
-
-
-/* Line 264 of yacc.c  */
-#line 405 "glsl_parser.cpp"
-
-#ifdef short
-# undef short
-#endif
-
-#ifdef YYTYPE_UINT8
-typedef YYTYPE_UINT8 yytype_uint8;
-#else
-typedef unsigned char yytype_uint8;
-#endif
-
-#ifdef YYTYPE_INT8
-typedef YYTYPE_INT8 yytype_int8;
-#elif (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-typedef signed char yytype_int8;
-#else
-typedef short int yytype_int8;
-#endif
-
-#ifdef YYTYPE_UINT16
-typedef YYTYPE_UINT16 yytype_uint16;
-#else
-typedef unsigned short int yytype_uint16;
-#endif
-
-#ifdef YYTYPE_INT16
-typedef YYTYPE_INT16 yytype_int16;
-#else
-typedef short int yytype_int16;
-#endif
-
-#ifndef YYSIZE_T
-# ifdef __SIZE_TYPE__
-#  define YYSIZE_T __SIZE_TYPE__
-# elif defined size_t
-#  define YYSIZE_T size_t
-# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYSIZE_T size_t
-# else
-#  define YYSIZE_T unsigned int
-# endif
-#endif
-
-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-
-#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
-#  if ENABLE_NLS
-#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-#   define YY_(msgid) dgettext ("bison-runtime", msgid)
-#  endif
-# endif
-# ifndef YY_
-#  define YY_(msgid) msgid
-# endif
-#endif
-
-/* Suppress unused-variable warnings by "using" E.  */
-#if ! defined lint || defined __GNUC__
-# define YYUSE(e) ((void) (e))
-#else
-# define YYUSE(e) /* empty */
-#endif
-
-/* Identity function, used to suppress warnings about constant conditions.  */
-#ifndef lint
-# define YYID(n) (n)
-#else
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static int
-YYID (int yyi)
-#else
-static int
-YYID (yyi)
-    int yyi;
-#endif
-{
-  return yyi;
-}
-#endif
-
-#if ! defined yyoverflow || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols.  */
-
-# ifdef YYSTACK_USE_ALLOCA
-#  if YYSTACK_USE_ALLOCA
-#   ifdef __GNUC__
-#    define YYSTACK_ALLOC __builtin_alloca
-#   elif defined __BUILTIN_VA_ARG_INCR
-#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-#   elif defined _AIX
-#    define YYSTACK_ALLOC __alloca
-#   elif defined _MSC_VER
-#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-#    define alloca _alloca
-#   else
-#    define YYSTACK_ALLOC alloca
-#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#     ifndef _STDLIB_H
-#      define _STDLIB_H 1
-#     endif
-#    endif
-#   endif
-#  endif
-# endif
-
-# ifdef YYSTACK_ALLOC
-   /* Pacify GCC's `empty if-body' warning.  */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
-#  ifndef YYSTACK_ALLOC_MAXIMUM
-    /* The OS might guarantee only one guard page at the bottom of the stack,
-       and a page size can be as small as 4096 bytes.  So we cannot safely
-       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
-       to allow for a few compiler-allocated temporary stack slots.  */
-#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
-#  endif
-# else
-#  define YYSTACK_ALLOC YYMALLOC
-#  define YYSTACK_FREE YYFREE
-#  ifndef YYSTACK_ALLOC_MAXIMUM
-#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-#  endif
-#  if (defined __cplusplus && ! defined _STDLIB_H \
-       && ! ((defined YYMALLOC || defined malloc) \
-            && (defined YYFREE || defined free)))
-#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   ifndef _STDLIB_H
-#    define _STDLIB_H 1
-#   endif
-#  endif
-#  ifndef YYMALLOC
-#   define YYMALLOC malloc
-#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-#   endif
-#  endif
-#  ifndef YYFREE
-#   define YYFREE free
-#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-#   endif
-#  endif
-# endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
-#if (! defined yyoverflow \
-     && (! defined __cplusplus \
-        || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
-            && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member.  */
-union yyalloc
-{
-  yytype_int16 yyss_alloc;
-  YYSTYPE yyvs_alloc;
-  YYLTYPE yyls_alloc;
-};
-
-/* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
-   N elements.  */
-# define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
-      + 2 * YYSTACK_GAP_MAXIMUM)
-
-/* Copy COUNT objects from FROM to TO.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if defined __GNUC__ && 1 < __GNUC__
-#   define YYCOPY(To, From, Count) \
-      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-#  else
-#   define YYCOPY(To, From, Count)             \
-      do                                       \
-       {                                       \
-         YYSIZE_T yyi;                         \
-         for (yyi = 0; yyi < (Count); yyi++)   \
-           (To)[yyi] = (From)[yyi];            \
-       }                                       \
-      while (YYID (0))
-#  endif
-# endif
-
-/* Relocate STACK from its old location to the new one.  The
-   local variables YYSIZE and YYSTACKSIZE give the old and new number of
-   elements in the stack, and YYPTR gives the new location of the
-   stack.  Advance YYPTR to a properly aligned location for the next
-   stack.  */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack)                          \
-    do                                                                 \
-      {                                                                        \
-       YYSIZE_T yynewbytes;                                            \
-       YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
-       Stack = &yyptr->Stack_alloc;                                    \
-       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
-       yyptr += yynewbytes / sizeof (*yyptr);                          \
-      }                                                                        \
-    while (YYID (0))
-
-#endif
-
-/* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  5
-/* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   3692
-
-/* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  220
-/* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  93
-/* YYNRULES -- Number of rules.  */
-#define YYNRULES  291
-/* YYNRULES -- Number of states.  */
-#define YYNSTATES  434
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
-#define YYUNDEFTOK  2
-#define YYMAXUTOK   450
-
-#define YYTRANSLATE(YYX)                                               \
-  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
-static const yytype_uint8 yytranslate[] =
-{
-       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   204,     2,     2,     2,   208,   211,     2,
-     196,   197,   206,   202,   201,   203,   200,   207,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,   215,   217,
-     209,   216,   210,   214,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,   198,     2,   199,   212,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   218,   213,   219,   205,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
-      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
-     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
-     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
-     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
-     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
-     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
-     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
-     195
-};
-
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
-   YYRHS.  */
-static const yytype_uint16 yyprhs[] =
-{
-       0,     0,     3,     4,     9,    10,    14,    17,    20,    23,
-      26,    29,    30,    33,    35,    37,    39,    45,    47,    50,
-      52,    54,    56,    58,    60,    62,    64,    68,    70,    75,
-      77,    81,    84,    87,    89,    91,    93,    97,   100,   103,
-     106,   108,   111,   115,   118,   120,   122,   124,   127,   130,
-     133,   135,   138,   142,   145,   147,   150,   153,   156,   158,
-     160,   162,   164,   166,   170,   174,   178,   180,   184,   188,
-     190,   194,   198,   200,   204,   208,   212,   216,   218,   222,
-     226,   228,   232,   234,   238,   240,   244,   246,   250,   252,
-     256,   258,   262,   264,   270,   272,   276,   278,   280,   282,
-     284,   286,   288,   290,   292,   294,   296,   298,   300,   304,
-     306,   309,   312,   317,   320,   322,   324,   327,   331,   335,
-     338,   344,   348,   351,   355,   358,   359,   361,   363,   365,
-     367,   369,   373,   379,   386,   394,   403,   409,   411,   414,
-     419,   425,   432,   440,   445,   448,   450,   453,   458,   460,
-     464,   466,   470,   472,   474,   476,   478,   480,   482,   485,
-     487,   490,   493,   497,   499,   501,   503,   505,   508,   510,
-     512,   515,   518,   520,   522,   525,   527,   531,   536,   538,
-     540,   542,   544,   546,   548,   550,   552,   554,   556,   558,
-     560,   562,   564,   566,   568,   570,   572,   574,   576,   578,
-     580,   582,   584,   586,   588,   590,   592,   594,   596,   598,
-     600,   602,   604,   606,   608,   610,   612,   614,   616,   618,
-     620,   622,   624,   626,   628,   630,   632,   634,   636,   638,
-     640,   642,   644,   646,   648,   650,   656,   661,   663,   666,
-     670,   672,   676,   678,   683,   685,   687,   689,   691,   693,
-     695,   697,   699,   701,   703,   705,   708,   709,   714,   716,
-     718,   721,   725,   727,   730,   732,   735,   741,   745,   747,
-     749,   754,   760,   764,   767,   773,   781,   788,   790,   792,
-     794,   795,   798,   802,   805,   808,   811,   815,   818,   820,
-     822,   824
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
-static const yytype_int16 yyrhs[] =
-{
-     221,     0,    -1,    -1,   223,   225,   222,   228,    -1,    -1,
-     111,    80,   115,    -1,   118,   115,    -1,   119,   115,    -1,
-     120,   115,    -1,   121,   115,    -1,   122,   115,    -1,    -1,
-     225,   227,    -1,    76,    -1,    77,    -1,    78,    -1,   112,
-     226,   114,   226,   115,    -1,   311,    -1,   228,   311,    -1,
-      76,    -1,    78,    -1,   229,    -1,    80,    -1,    81,    -1,
-      79,    -1,    82,    -1,   196,   260,   197,    -1,   230,    -1,
-     231,   198,   232,   199,    -1,   233,    -1,   231,   200,   226,
-      -1,   231,    86,    -1,   231,    87,    -1,   260,    -1,   234,
-      -1,   235,    -1,   231,   200,   240,    -1,   237,   197,    -1,
-     236,   197,    -1,   238,    74,    -1,   238,    -1,   238,   258,
-      -1,   237,   201,   258,    -1,   239,   196,    -1,   281,    -1,
-     229,    -1,    83,    -1,   242,   197,    -1,   241,   197,    -1,
-     243,    74,    -1,   243,    -1,   243,   258,    -1,   242,   201,
-     258,    -1,   229,   196,    -1,   231,    -1,    86,   244,    -1,
-      87,   244,    -1,   245,   244,    -1,   202,    -1,   203,    -1,
-     204,    -1,   205,    -1,   244,    -1,   246,   206,   244,    -1,
-     246,   207,   244,    -1,   246,   208,   244,    -1,   246,    -1,
-     247,   202,   246,    -1,   247,   203,   246,    -1,   247,    -1,
-     248,    84,   247,    -1,   248,    85,   247,    -1,   248,    -1,
-     249,   209,   248,    -1,   249,   210,   248,    -1,   249,    88,
-     248,    -1,   249,    89,   248,    -1,   249,    -1,   250,    90,
-     249,    -1,   250,    91,   249,    -1,   250,    -1,   251,   211,
-     250,    -1,   251,    -1,   252,   212,   251,    -1,   252,    -1,
-     253,   213,   252,    -1,   253,    -1,   254,    92,   253,    -1,
-     254,    -1,   255,    94,   254,    -1,   255,    -1,   256,    93,
-     255,    -1,   256,    -1,   256,   214,   260,   215,   258,    -1,
-     257,    -1,   244,   259,   258,    -1,   216,    -1,    95,    -1,
-      96,    -1,    98,    -1,    97,    -1,   104,    -1,    99,    -1,
-     100,    -1,   101,    -1,   102,    -1,   103,    -1,   258,    -1,
-     260,   201,   258,    -1,   257,    -1,   263,   217,    -1,   271,
-     217,    -1,   110,   285,   282,   217,    -1,   264,   197,    -1,
-     266,    -1,   265,    -1,   266,   268,    -1,   265,   201,   268,
-      -1,   273,   229,   196,    -1,   281,   226,    -1,   281,   226,
-     198,   261,   199,    -1,   278,   269,   267,    -1,   269,   267,
-      -1,   278,   269,   270,    -1,   269,   270,    -1,    -1,    33,
-      -1,    34,    -1,    35,    -1,   281,    -1,   272,    -1,   271,
-     201,   226,    -1,   271,   201,   226,   198,   199,    -1,   271,
-     201,   226,   198,   261,   199,    -1,   271,   201,   226,   198,
-     199,   216,   291,    -1,   271,   201,   226,   198,   261,   199,
-     216,   291,    -1,   271,   201,   226,   216,   291,    -1,   273,
-      -1,   273,   226,    -1,   273,   226,   198,   199,    -1,   273,
-     226,   198,   261,   199,    -1,   273,   226,   198,   199,   216,
-     291,    -1,   273,   226,   198,   261,   199,   216,   291,    -1,
-     273,   226,   216,   291,    -1,   105,   229,    -1,   281,    -1,
-     279,   281,    -1,   123,   196,   275,   197,    -1,   276,    -1,
-     275,   201,   276,    -1,   226,    -1,   226,   216,    80,    -1,
-      40,    -1,    39,    -1,    38,    -1,     4,    -1,   280,    -1,
-     274,    -1,   274,   280,    -1,   277,    -1,   277,   280,    -1,
-     105,   280,    -1,   105,   277,   280,    -1,   105,    -1,     4,
-      -1,     3,    -1,    37,    -1,    32,    37,    -1,    33,    -1,
-      34,    -1,    32,    33,    -1,    32,    34,    -1,    36,    -1,
-     282,    -1,   285,   282,    -1,   283,    -1,   283,   198,   199,
-      -1,   283,   198,   261,   199,    -1,   284,    -1,   286,    -1,
-      77,    -1,    74,    -1,     6,    -1,     7,    -1,     8,    -1,
-       5,    -1,    29,    -1,    30,    -1,    31,    -1,    20,    -1,
-      21,    -1,    22,    -1,    23,    -1,    24,    -1,    25,    -1,
-      26,    -1,    27,    -1,    28,    -1,    41,    -1,    42,    -1,
-      43,    -1,    44,    -1,    45,    -1,    46,    -1,    47,    -1,
-      48,    -1,    49,    -1,    50,    -1,    51,    -1,   157,    -1,
-      52,    -1,    53,    -1,    54,    -1,    55,    -1,   159,    -1,
-      56,    -1,    57,    -1,    58,    -1,    59,    -1,    60,    -1,
-      61,    -1,    62,    -1,    63,    -1,    64,    -1,    65,    -1,
-      66,    -1,    67,    -1,    68,    -1,    69,    -1,    70,    -1,
-      71,    -1,    72,    -1,   108,    -1,   107,    -1,   106,    -1,
-      73,   226,   218,   287,   219,    -1,    73,   218,   287,   219,
-      -1,   288,    -1,   287,   288,    -1,   281,   289,   217,    -1,
-     290,    -1,   289,   201,   290,    -1,   226,    -1,   226,   198,
-     261,   199,    -1,   258,    -1,   262,    -1,   295,    -1,   294,
-      -1,   292,    -1,   300,    -1,   301,    -1,   304,    -1,   305,
-      -1,   306,    -1,   310,    -1,   218,   219,    -1,    -1,   218,
-     296,   299,   219,    -1,   298,    -1,   294,    -1,   218,   219,
-      -1,   218,   299,   219,    -1,   293,    -1,   299,   293,    -1,
-     217,    -1,   260,   217,    -1,    14,   196,   260,   197,   302,
-      -1,   293,    12,   293,    -1,   293,    -1,   260,    -1,   273,
-     226,   216,   291,    -1,    17,   196,   260,   197,   295,    -1,
-      18,   260,   215,    -1,    19,   215,    -1,    75,   196,   303,
-     197,   297,    -1,    11,   293,    75,   196,   260,   197,   217,
-      -1,    13,   196,   307,   309,   197,   297,    -1,   300,    -1,
-     292,    -1,   303,    -1,    -1,   308,   217,    -1,   308,   217,
-     260,    -1,    10,   217,    -1,     9,   217,    -1,    16,   217,
-      -1,    16,   260,   217,    -1,    15,   217,    -1,   312,    -1,
-     262,    -1,   224,    -1,   263,   298,    -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
-static const yytype_uint16 yyrline[] =
-{
-       0,   218,   218,   217,   229,   231,   271,   272,   273,   274,
-     275,   287,   289,   293,   294,   295,   299,   308,   316,   327,
-     328,   332,   339,   346,   353,   360,   367,   374,   375,   381,
-     385,   392,   398,   407,   411,   415,   416,   425,   426,   430,
-     431,   435,   441,   453,   457,   463,   470,   480,   481,   485,
-     486,   490,   496,   508,   519,   520,   526,   532,   542,   543,
-     544,   545,   549,   550,   556,   562,   571,   572,   578,   587,
-     588,   594,   603,   604,   610,   616,   622,   631,   632,   638,
-     647,   648,   657,   658,   667,   668,   677,   678,   687,   688,
-     697,   698,   707,   708,   717,   718,   727,   728,   729,   730,
-     731,   732,   733,   734,   735,   736,   737,   741,   745,   761,
-     765,   770,   774,   783,   787,   788,   792,   797,   805,   819,
-     829,   844,   851,   856,   867,   880,   883,   888,   893,   902,
-     906,   907,   917,   927,   937,   947,   957,   971,   982,   991,
-    1000,  1009,  1018,  1027,  1036,  1050,  1057,  1068,  1075,  1076,
-    1095,  1147,  1188,  1193,  1198,  1206,  1214,  1215,  1216,  1221,
-    1222,  1227,  1232,  1238,  1246,  1251,  1256,  1261,  1267,  1272,
-    1277,  1282,  1287,  1295,  1299,  1307,  1308,  1314,  1323,  1329,
-    1335,  1344,  1345,  1346,  1347,  1348,  1349,  1350,  1351,  1352,
-    1353,  1354,  1355,  1356,  1357,  1358,  1359,  1360,  1361,  1362,
-    1363,  1364,  1365,  1366,  1367,  1368,  1369,  1370,  1371,  1372,
-    1373,  1374,  1375,  1376,  1377,  1378,  1379,  1380,  1381,  1382,
-    1383,  1384,  1385,  1386,  1387,  1388,  1389,  1390,  1391,  1392,
-    1393,  1394,  1398,  1408,  1418,  1431,  1438,  1447,  1452,  1460,
-    1475,  1480,  1488,  1495,  1504,  1508,  1514,  1515,  1519,  1520,
-    1521,  1522,  1523,  1524,  1525,  1529,  1536,  1535,  1549,  1550,
-    1554,  1560,  1569,  1579,  1591,  1597,  1606,  1615,  1620,  1628,
-    1632,  1646,  1650,  1651,  1655,  1662,  1669,  1679,  1680,  1684,
-    1686,  1692,  1697,  1706,  1712,  1718,  1724,  1730,  1739,  1740,
-    1741,  1745
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
-static const char *const yytname[] =
-{
-  "$end", "error", "$undefined", "ATTRIBUTE", "CONST_TOK", "BOOL_TOK",
-  "FLOAT_TOK", "INT_TOK", "UINT_TOK", "BREAK", "CONTINUE", "DO", "ELSE",
-  "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "BVEC2",
-  "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", "UVEC2", "UVEC3", "UVEC4",
-  "VEC2", "VEC3", "VEC4", "CENTROID", "IN_TOK", "OUT_TOK", "INOUT_TOK",
-  "UNIFORM", "VARYING", "NOPERSPECTIVE", "FLAT", "SMOOTH", "MAT2X2",
-  "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3",
-  "MAT4X4", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
-  "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW",
-  "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW",
-  "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D",
-  "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D",
-  "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY",
-  "USAMPLER2DARRAY", "STRUCT", "VOID_TOK", "WHILE", "IDENTIFIER",
-  "TYPE_IDENTIFIER", "NEW_IDENTIFIER", "FLOATCONSTANT", "INTCONSTANT",
-  "UINTCONSTANT", "BOOLCONSTANT", "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP",
-  "INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP",
-  "OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN",
-  "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN",
-  "OR_ASSIGN", "SUB_ASSIGN", "INVARIANT", "LOWP", "MEDIUMP", "HIGHP",
-  "SUPERP", "PRECISION", "VERSION", "EXTENSION", "LINE", "COLON", "EOL",
-  "INTERFACE", "OUTPUT", "PRAGMA_DEBUG_ON", "PRAGMA_DEBUG_OFF",
-  "PRAGMA_OPTIMIZE_ON", "PRAGMA_OPTIMIZE_OFF", "PRAGMA_INVARIANT_ALL",
-  "LAYOUT_TOK", "ASM", "CLASS", "UNION", "ENUM", "TYPEDEF", "TEMPLATE",
-  "THIS", "PACKED_TOK", "GOTO", "INLINE_TOK", "NOINLINE", "VOLATILE",
-  "PUBLIC_TOK", "STATIC", "EXTERN", "EXTERNAL", "LONG_TOK", "SHORT_TOK",
-  "DOUBLE_TOK", "HALF", "FIXED_TOK", "UNSIGNED", "INPUT_TOK", "OUPTUT",
-  "HVEC2", "HVEC3", "HVEC4", "DVEC2", "DVEC3", "DVEC4", "FVEC2", "FVEC3",
-  "FVEC4", "SAMPLER2DRECT", "SAMPLER3DRECT", "SAMPLER2DRECTSHADOW",
-  "SIZEOF", "CAST", "NAMESPACE", "USING", "ERROR_TOK", "COMMON",
-  "PARTITION", "ACTIVE", "SAMPLERBUFFER", "FILTER", "IMAGE1D", "IMAGE2D",
-  "IMAGE3D", "IMAGECUBE", "IMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE1D",
-  "IIMAGE2D", "IIMAGE3D", "IIMAGECUBE", "IIMAGE1DARRAY", "IIMAGE2DARRAY",
-  "UIMAGE1D", "UIMAGE2D", "UIMAGE3D", "UIMAGECUBE", "UIMAGE1DARRAY",
-  "UIMAGE2DARRAY", "IMAGE1DSHADOW", "IMAGE2DSHADOW", "IMAGEBUFFER",
-  "IIMAGEBUFFER", "UIMAGEBUFFER", "IMAGE1DARRAYSHADOW",
-  "IMAGE2DARRAYSHADOW", "ROW_MAJOR", "'('", "')'", "'['", "']'", "'.'",
-  "','", "'+'", "'-'", "'!'", "'~'", "'*'", "'/'", "'%'", "'<'", "'>'",
-  "'&'", "'^'", "'|'", "'?'", "':'", "'='", "';'", "'{'", "'}'", "$accept",
-  "translation_unit", "$@1", "version_statement", "pragma_statement",
-  "extension_statement_list", "any_identifier", "extension_statement",
-  "external_declaration_list", "variable_identifier", "primary_expression",
-  "postfix_expression", "integer_expression", "function_call",
-  "function_call_or_method", "function_call_generic",
-  "function_call_header_no_parameters",
-  "function_call_header_with_parameters", "function_call_header",
-  "function_identifier", "method_call_generic",
-  "method_call_header_no_parameters", "method_call_header_with_parameters",
-  "method_call_header", "unary_expression", "unary_operator",
-  "multiplicative_expression", "additive_expression", "shift_expression",
-  "relational_expression", "equality_expression", "and_expression",
-  "exclusive_or_expression", "inclusive_or_expression",
-  "logical_and_expression", "logical_xor_expression",
-  "logical_or_expression", "conditional_expression",
-  "assignment_expression", "assignment_operator", "expression",
-  "constant_expression", "declaration", "function_prototype",
-  "function_declarator", "function_header_with_parameters",
-  "function_header", "parameter_declarator", "parameter_declaration",
-  "parameter_qualifier", "parameter_type_specifier",
-  "init_declarator_list", "single_declaration", "fully_specified_type",
-  "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
-  "interpolation_qualifier", "parameter_type_qualifier", "type_qualifier",
-  "storage_qualifier", "type_specifier", "type_specifier_no_prec",
-  "type_specifier_nonarray", "basic_type_specifier_nonarray",
-  "precision_qualifier", "struct_specifier", "struct_declaration_list",
-  "struct_declaration", "struct_declarator_list", "struct_declarator",
-  "initializer", "declaration_statement", "statement", "simple_statement",
-  "compound_statement", "$@2", "statement_no_new_scope",
-  "compound_statement_no_new_scope", "statement_list",
-  "expression_statement", "selection_statement",
-  "selection_rest_statement", "condition", "switch_statement",
-  "case_label", "iteration_statement", "for_init_statement",
-  "conditionopt", "for_rest_statement", "jump_statement",
-  "external_declaration", "function_definition", 0
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
-   token YYLEX-NUM.  */
-static const yytype_uint16 yytoknum[] =
-{
-       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
-     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
-     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
-     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
-     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
-     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
-     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
-     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
-     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
-     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
-     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
-     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
-     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
-     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
-     445,   446,   447,   448,   449,   450,    40,    41,    91,    93,
-      46,    44,    43,    45,    33,   126,    42,    47,    37,    60,
-      62,    38,    94,   124,    63,    58,    61,    59,   123,   125
-};
-# endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const yytype_uint16 yyr1[] =
-{
-       0,   220,   222,   221,   223,   223,   224,   224,   224,   224,
-     224,   225,   225,   226,   226,   226,   227,   228,   228,   229,
-     229,   230,   230,   230,   230,   230,   230,   231,   231,   231,
-     231,   231,   231,   232,   233,   234,   234,   235,   235,   236,
-     236,   237,   237,   238,   239,   239,   239,   240,   240,   241,
-     241,   242,   242,   243,   244,   244,   244,   244,   245,   245,
-     245,   245,   246,   246,   246,   246,   247,   247,   247,   248,
-     248,   248,   249,   249,   249,   249,   249,   250,   250,   250,
-     251,   251,   252,   252,   253,   253,   254,   254,   255,   255,
-     256,   256,   257,   257,   258,   258,   259,   259,   259,   259,
-     259,   259,   259,   259,   259,   259,   259,   260,   260,   261,
-     262,   262,   262,   263,   264,   264,   265,   265,   266,   267,
-     267,   268,   268,   268,   268,   269,   269,   269,   269,   270,
-     271,   271,   271,   271,   271,   271,   271,   272,   272,   272,
-     272,   272,   272,   272,   272,   273,   273,   274,   275,   275,
-     276,   276,   277,   277,   277,   278,   279,   279,   279,   279,
-     279,   279,   279,   279,   280,   280,   280,   280,   280,   280,
-     280,   280,   280,   281,   281,   282,   282,   282,   283,   283,
-     283,   284,   284,   284,   284,   284,   284,   284,   284,   284,
-     284,   284,   284,   284,   284,   284,   284,   284,   284,   284,
-     284,   284,   284,   284,   284,   284,   284,   284,   284,   284,
-     284,   284,   284,   284,   284,   284,   284,   284,   284,   284,
-     284,   284,   284,   284,   284,   284,   284,   284,   284,   284,
-     284,   284,   285,   285,   285,   286,   286,   287,   287,   288,
-     289,   289,   290,   290,   291,   292,   293,   293,   294,   294,
-     294,   294,   294,   294,   294,   295,   296,   295,   297,   297,
-     298,   298,   299,   299,   300,   300,   301,   302,   302,   303,
-     303,   304,   305,   305,   306,   306,   306,   307,   307,   308,
-     308,   309,   309,   310,   310,   310,   310,   310,   311,   311,
-     311,   312
-};
-
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
-static const yytype_uint8 yyr2[] =
-{
-       0,     2,     0,     4,     0,     3,     2,     2,     2,     2,
-       2,     0,     2,     1,     1,     1,     5,     1,     2,     1,
-       1,     1,     1,     1,     1,     1,     3,     1,     4,     1,
-       3,     2,     2,     1,     1,     1,     3,     2,     2,     2,
-       1,     2,     3,     2,     1,     1,     1,     2,     2,     2,
-       1,     2,     3,     2,     1,     2,     2,     2,     1,     1,
-       1,     1,     1,     3,     3,     3,     1,     3,     3,     1,
-       3,     3,     1,     3,     3,     3,     3,     1,     3,     3,
-       1,     3,     1,     3,     1,     3,     1,     3,     1,     3,
-       1,     3,     1,     5,     1,     3,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     3,     1,
-       2,     2,     4,     2,     1,     1,     2,     3,     3,     2,
-       5,     3,     2,     3,     2,     0,     1,     1,     1,     1,
-       1,     3,     5,     6,     7,     8,     5,     1,     2,     4,
-       5,     6,     7,     4,     2,     1,     2,     4,     1,     3,
-       1,     3,     1,     1,     1,     1,     1,     1,     2,     1,
-       2,     2,     3,     1,     1,     1,     1,     2,     1,     1,
-       2,     2,     1,     1,     2,     1,     3,     4,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     5,     4,     1,     2,     3,
-       1,     3,     1,     4,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     2,     0,     4,     1,     1,
-       2,     3,     1,     2,     1,     2,     5,     3,     1,     1,
-       4,     5,     3,     2,     5,     7,     6,     1,     1,     1,
-       0,     2,     3,     2,     2,     2,     3,     2,     1,     1,
-       1,     2
-};
-
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
-   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
-   means the default is an error.  */
-static const yytype_uint16 yydefact[] =
-{
-       4,     0,     0,    11,     0,     1,     2,     5,     0,     0,
-      12,    13,    14,    15,     0,   165,   164,   185,   182,   183,
-     184,   189,   190,   191,   192,   193,   194,   195,   196,   197,
-     186,   187,   188,     0,   168,   169,   172,   166,   154,   153,
-     152,   198,   199,   200,   201,   202,   203,   204,   205,   206,
-     207,   208,   210,   211,   212,   213,   215,   216,   217,   218,
-     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
-     229,   230,   231,     0,   181,   180,   163,   234,   233,   232,
-       0,     0,     0,     0,     0,     0,     0,   209,   214,   290,
-       3,   289,     0,     0,   115,   125,     0,   130,   137,   157,
-     159,     0,   156,   145,   173,   175,   178,     0,   179,    17,
-     288,     0,   170,   171,   167,     0,     0,    19,    20,   144,
-       0,   161,     0,     6,     7,     8,     9,    10,     0,    18,
-     110,     0,   291,   113,   125,   155,   126,   127,   128,   116,
-       0,   125,     0,   111,    13,    15,   138,     0,   158,   160,
-     146,     0,   174,     0,     0,     0,   237,     0,   162,     0,
-     150,     0,   148,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    24,    22,    23,    25,    46,     0,
-       0,     0,    58,    59,    60,    61,   264,   256,   260,    21,
-      27,    54,    29,    34,    35,     0,     0,    40,     0,    62,
-       0,    66,    69,    72,    77,    80,    82,    84,    86,    88,
-      90,    92,    94,   107,     0,   245,     0,   145,   248,   262,
-     247,   246,     0,   249,   250,   251,   252,   253,   254,   117,
-     122,   124,   129,     0,   131,     0,     0,   118,   176,    62,
-     109,     0,    44,    16,   242,     0,   240,   236,   238,     0,
-     112,     0,   147,     0,   284,   283,     0,     0,     0,   287,
-     285,     0,     0,     0,   273,     0,    55,    56,     0,   255,
-       0,    31,    32,     0,     0,    38,    37,     0,   181,    41,
-      43,    97,    98,   100,    99,   102,   103,   104,   105,   106,
-     101,    96,     0,    57,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   265,   261,   263,   119,   121,
-     123,     0,     0,   139,     0,   244,   143,   177,     0,     0,
-     239,   235,   151,   149,     0,   278,   277,   280,     0,   286,
-       0,   272,   163,   269,     0,     0,    26,     0,     0,    33,
-      30,     0,    36,     0,     0,    50,    42,    95,    63,    64,
-      65,    67,    68,    70,    71,    75,    76,    73,    74,    78,
-      79,    81,    83,    85,    87,    89,    91,     0,   108,     0,
-     132,     0,   136,     0,   140,     0,   241,     0,   279,     0,
-       0,     0,     0,     0,     0,   257,    28,    53,    48,    47,
-       0,   181,    51,     0,     0,     0,   133,   141,     0,   243,
-       0,   281,     0,   268,   266,   271,     0,   259,   274,   258,
-      52,    93,   120,   134,     0,   142,     0,   282,   276,     0,
-     270,   135,   275,   267
-};
-
-/* YYDEFGOTO[NTERM-NUM].  */
-static const yytype_int16 yydefgoto[] =
-{
-      -1,     2,     9,     3,    89,     6,   160,    10,    90,   189,
-     190,   191,   348,   192,   193,   194,   195,   196,   197,   198,
-     352,   353,   354,   355,   199,   200,   201,   202,   203,   204,
-     205,   206,   207,   208,   209,   210,   211,   212,   213,   292,
-     214,   241,   215,   216,    93,    94,    95,   230,   139,   140,
-     231,    96,    97,    98,    99,   161,   162,   100,   141,   101,
-     102,   242,   104,   105,   106,   107,   108,   155,   156,   245,
-     246,   326,   218,   219,   220,   221,   270,   418,   419,   222,
-     223,   224,   414,   345,   225,   226,   227,   337,   389,   390,
-     228,   109,   110
-};
-
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-   STATE-NUM.  */
-#define YYPACT_NINF -366
-static const yytype_int16 yypact[] =
-{
-     -57,   -43,    62,  -366,   -50,  -366,   -30,  -366,    67,  3341,
-    -366,  -366,  -366,  -366,    -6,  -366,  -366,  -366,  -366,  -366,
-    -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,
-    -366,  -366,  -366,     8,  -366,  -366,  -366,  -366,  -366,  -366,
-    -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,
-    -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,
-    -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,
-    -366,  -366,  -366,   -65,  -366,  -366,   226,  -366,  -366,  -366,
-      51,   -31,   -28,     6,    13,    15,   -44,  -366,  -366,  -366,
-    3341,  -366,  -183,   -47,   -29,    18,  -169,  -366,   140,    24,
-      24,  3460,  -366,  -366,  -366,   -24,  -366,  3533,  -366,  -366,
-    -366,    67,  -366,  -366,  -366,  3460,   -48,  -366,  -366,  -366,
-      24,  -366,  3533,  -366,  -366,  -366,  -366,  -366,    67,  -366,
-    -366,   408,  -366,  -366,    55,  -366,  -366,  -366,  -366,  -366,
-    3460,   200,    67,  -366,   -20,   -18,  -178,    23,  -366,  -366,
-    -366,  2225,  -366,    72,    67,  1598,  -366,  3460,  -366,     4,
-      10,   -84,  -366,    11,    14,  1059,    40,    42,    29,  1836,
-      43,  2783,    34,    54,  -366,  -366,  -366,  -366,  -366,  2783,
-    2783,  2783,  -366,  -366,  -366,  -366,  -366,    32,  -366,    56,
-    -366,   -71,  -366,  -366,  -366,    57,   -81,  2969,    61,   -27,
-    2783,    35,   -88,   -41,   -70,    33,    60,    41,    59,   181,
-     180,   -89,  -366,  -366,  -168,  -366,    58,    80,  -366,  -366,
-    -366,  -366,   625,  -366,  -366,  -366,  -366,  -366,  -366,  -366,
-    -366,  -366,    67,  3460,  -177,  2411,  2783,  -366,  -366,  -366,
-    -366,    78,  -366,  -366,    81,  -137,  -366,  -366,  -366,  1717,
-    -366,   201,  -366,    67,  -366,  -366,   205,  1478,  2783,  -366,
-    -366,  -134,  2783,  -115,  -366,  2039,  -366,  -366,   -60,  -366,
-    1059,  -366,  -366,  2783,   140,  -366,  -366,  2783,    85,  -366,
-    -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,
-    -366,  -366,  2783,  -366,  2783,  2783,  2783,  2783,  2783,  2783,
-    2783,  2783,  2783,  2783,  2783,  2783,  2783,  2783,  2783,  2783,
-    2783,  2783,  2783,  2783,  2783,  -366,  -366,  -366,    86,  -366,
-    -366,  2597,  2783,    69,    87,  -366,  -366,  -366,  2783,    67,
-    -366,  -366,  -366,  -366,    91,  -366,  -366,  2039,   -59,  -366,
-     -46,  -366,   129,    88,    67,    93,  -366,   842,    89,    88,
-    -366,    95,  -366,    96,   -37,  3155,  -366,  -366,  -366,  -366,
-    -366,    35,    35,   -88,   -88,   -41,   -41,   -41,   -41,   -70,
-     -70,    33,    60,    41,    59,   181,   180,   -96,  -366,  2783,
-      76,    97,  -366,  2783,    79,    98,  -366,  2783,  -366,    77,
-     101,  1059,    83,    90,  1275,  -366,  -366,  -366,  -366,  -366,
-    2783,   102,  -366,  2783,   108,  2783,    94,  -366,  2783,  -366,
-     -26,  2783,  1275,   297,  -366,  -366,  2783,  -366,  -366,  -366,
-    -366,  -366,  -366,  -366,  2783,  -366,   100,    88,  -366,  1059,
-    -366,  -366,  -366,  -366
-};
-
-/* YYPGOTO[NTERM-NUM].  */
-static const yytype_int16 yypgoto[] =
-{
-    -366,  -366,  -366,  -366,  -366,  -366,    -7,  -366,  -366,   -62,
-    -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,
-    -366,  -366,  -366,  -366,  -101,  -366,  -113,  -109,  -121,   -61,
-       5,     3,     9,    16,     2,     7,  -366,  -142,  -100,  -366,
-    -164,  -225,    21,    22,  -366,  -366,  -366,    82,   186,   173,
-      92,  -366,  -366,  -242,  -366,  -366,    68,   -73,  -366,  -366,
-     -74,    -9,   -67,  -366,  -366,   243,  -366,   170,  -147,  -366,
-       0,  -298,    73,  -159,  -365,   -58,  -366,   -80,   239,    63,
-      84,  -366,  -366,    -2,  -366,  -366,  -366,  -366,  -366,  -366,
-    -366,   246,  -366
-};
-
-/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
-   positive, shift that token.  If negative, reduce the rule which
-   number is the opposite.  If zero, do what YYDEFACT says.
-   If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -115
-static const yytype_int16 yytable[] =
-{
-     103,    14,   121,   120,   312,   261,   256,   263,   248,   240,
-     324,    11,    12,    13,   119,   271,   272,   268,   301,   302,
-     235,   321,   135,   344,   382,   148,   149,    15,    16,   417,
-      91,    92,   142,   314,   130,   131,   147,     4,   236,   322,
-     152,   112,   113,   299,   300,   114,   158,   417,   143,   315,
-     239,   136,   137,   138,     1,   159,    33,    34,    35,   135,
-      36,    37,     5,   317,   329,     7,   116,   314,   281,   282,
-     283,   284,   285,   286,   287,   288,   289,   290,   266,   267,
-     330,   103,     8,   339,   123,   407,   314,   124,   136,   137,
-     138,   146,   150,   240,   338,   344,   381,   279,   340,   293,
-     341,   343,   248,   385,   153,   314,   154,   423,   111,   349,
-     425,    91,    92,   252,   297,   298,   276,   253,   430,   403,
-     277,   125,   217,   305,   306,   313,   431,   273,   126,   274,
-     127,   232,    15,    16,   239,   234,   325,   346,   391,   303,
-     304,   314,   314,    11,    12,    13,   154,   244,   154,   377,
-     133,   392,   128,   115,   404,   314,   217,    77,    78,    79,
-     399,    33,    34,    35,   400,    36,    37,    38,    39,    40,
-     157,   426,   134,   343,   151,   314,   -19,   356,   -20,   240,
-     365,   366,   367,   368,   361,   362,   240,   243,   317,   291,
-     363,   364,   357,   358,   359,   360,   239,   239,   239,   239,
-     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
-     239,   239,   351,   217,   378,  -114,   144,    12,   145,   237,
-     239,   250,   325,   410,   232,   318,   251,   239,   254,    15,
-      16,   255,   413,   136,   137,   138,   257,   240,   258,   262,
-     154,   294,   295,   296,   369,   370,   259,   427,   217,   264,
-     265,   269,   -45,   308,   275,   402,   217,   280,    33,    34,
-      35,   217,    36,    37,    38,    39,    40,   350,   121,   120,
-     433,   307,   309,   310,   311,   130,   -44,   327,   239,   328,
-     334,   332,   -39,   325,   379,   383,   384,   387,   396,   314,
-     394,   397,   405,   398,   411,   408,   406,   409,   412,   -49,
-     420,   187,   117,   421,   118,   325,   416,   422,   325,   429,
-     424,   372,   371,   375,   233,   319,   325,   432,   373,   376,
-     229,   333,   244,   122,   325,   320,   374,   249,   217,   386,
-     335,   132,   428,   347,   415,   388,   129,   393,   217,     0,
-       0,   336,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   217,     0,     0,   217,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   217,     0,     0,     0,     0,     0,     0,
-       0,    15,    16,    17,    18,    19,    20,   163,   164,   165,
-     217,   166,   167,   168,   169,   170,   171,   172,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    35,     0,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,   173,   117,    75,   118,   174,   175,   176,
-     177,   178,     0,     0,   179,   180,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    76,    77,    78,    79,     0,    80,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    86,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    87,     0,    88,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   181,     0,     0,     0,     0,     0,
-     182,   183,   184,   185,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   186,   187,   188,    15,    16,
-      17,    18,    19,    20,   163,   164,   165,     0,   166,   167,
-     168,   169,   170,   171,   172,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-       0,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-     173,   117,    75,   118,   174,   175,   176,   177,   178,     0,
-       0,   179,   180,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      76,    77,    78,    79,     0,    80,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    86,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    87,     0,    88,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   181,     0,     0,     0,     0,     0,   182,   183,   184,
-     185,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   186,   187,   316,    15,    16,    17,    18,    19,
-      20,   163,   164,   165,     0,   166,   167,   168,   169,   170,
-     171,   172,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    35,     0,    36,    37,
-      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-      68,    69,    70,    71,    72,    73,    74,   173,   117,    75,
-     118,   174,   175,   176,   177,   178,     0,     0,   179,   180,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    76,    77,    78,
-      79,     0,    80,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    86,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    87,
-       0,    88,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   181,     0,
-       0,     0,     0,     0,   182,   183,   184,   185,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   186,
-     187,   395,    15,    16,    17,    18,    19,    20,   163,   164,
-     165,     0,   166,   167,   168,   169,   170,   171,   172,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    35,     0,    36,    37,    38,    39,    40,
-      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,   173,   117,    75,   118,   174,   175,
-     176,   177,   178,     0,     0,   179,   180,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    76,    77,    78,    79,     0,    80,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    86,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    87,     0,    88,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   181,     0,     0,     0,     0,
-       0,   182,   183,   184,   185,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   186,   187,    15,    16,
-      17,    18,    19,    20,   163,   164,   165,     0,   166,   167,
-     168,   169,   170,   171,   172,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-       0,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-     173,   117,    75,   118,   174,   175,   176,   177,   178,     0,
-       0,   179,   180,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      76,    77,    78,    79,     0,    80,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    86,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    87,     0,    88,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   181,     0,     0,     0,     0,     0,   182,   183,   184,
-     185,    15,    16,    17,    18,    19,    20,     0,     0,     0,
-       0,     0,   186,   131,     0,     0,     0,     0,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    35,     0,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,     0,   117,    75,   118,   174,   175,   176,
-     177,   178,     0,     0,   179,   180,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    76,    77,    78,    79,     0,    80,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    86,     0,    17,    18,    19,    20,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-       0,     0,     0,     0,     0,    87,     0,    88,     0,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,     0,   181,    75,     0,     0,     0,     0,
-     182,   183,   184,   185,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   186,     0,     0,     0,     0,
-       0,     0,     0,     0,    77,    78,    79,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    17,    18,    19,    20,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    32,     0,
-       0,     0,     0,     0,     0,    87,     0,    88,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,     0,     0,    75,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   247,     0,     0,
-       0,     0,     0,    77,    78,    79,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    17,    18,    19,    20,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,     0,     0,
-       0,     0,     0,     0,    87,     0,    88,    41,    42,    43,
-      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-      74,     0,   117,    75,   118,   174,   175,   176,   177,   178,
-       0,     0,   179,   180,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   331,     0,     0,     0,
-       0,     0,    77,    78,    79,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    87,     0,    88,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   181,     0,     0,     0,     0,     0,   182,   183,
-     184,   185,    15,    16,    17,    18,    19,    20,     0,     0,
-       0,     0,     0,   260,     0,     0,     0,     0,     0,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    35,     0,    36,    37,    38,    39,    40,
-      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,     0,   117,    75,   118,   174,   175,
-     176,   177,   178,     0,     0,   179,   180,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   342,    77,    78,    79,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    86,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    87,     0,    88,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      17,    18,    19,    20,     0,   181,     0,     0,     0,     0,
-       0,   182,   183,   184,   185,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-       0,   117,    75,   118,   174,   175,   176,   177,   178,     0,
-       0,   179,   180,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    77,    78,    79,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    87,     0,    88,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    17,    18,    19,    20,
-       0,   181,     0,     0,   238,     0,     0,   182,   183,   184,
-     185,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    73,    74,     0,   117,    75,   118,
-     174,   175,   176,   177,   178,     0,     0,   179,   180,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    77,    78,    79,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    87,     0,
-      88,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    17,    18,    19,    20,     0,   181,     0,     0,
-     323,     0,     0,   182,   183,   184,   185,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    32,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,     0,   117,    75,   118,   174,   175,   176,   177,
-     178,     0,     0,   179,   180,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    77,    78,    79,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    87,     0,    88,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    17,    18,
-      19,    20,     0,   181,     0,     0,   380,     0,     0,   182,
-     183,   184,   185,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,     0,   117,
-      75,   118,   174,   175,   176,   177,   178,     0,     0,   179,
-     180,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    77,
-      78,    79,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      87,     0,    88,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    17,    18,    19,    20,     0,   181,
-       0,     0,     0,     0,     0,   182,   183,   184,   185,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,   278,     0,   117,    75,   118,   174,   175,
-     176,   177,   178,     0,     0,   179,   180,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    77,    78,    79,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    87,     0,    88,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      17,    18,    19,    20,     0,   181,     0,     0,     0,     0,
-       0,   182,   183,   184,   185,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,   401,
-       0,   117,    75,   118,   174,   175,   176,   177,   178,     0,
-       0,   179,   180,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    77,    78,    79,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    87,     0,    88,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    15,    16,    17,    18,    19,    20,
-       0,   181,     0,     0,     0,     0,     0,   182,   183,   184,
-     185,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,    33,    34,    35,     0,    36,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    73,    74,     0,     0,    75,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    76,    77,    78,    79,
-       0,    80,     0,     0,     0,     0,     0,     0,     0,    81,
-      82,    83,    84,    85,    86,    17,    18,    19,    20,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,     0,     0,     0,     0,     0,     0,    87,     0,
-      88,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,     0,     0,    75,    17,    18,
-      19,    20,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,     0,    77,    78,    79,     0,
-       0,     0,     0,     0,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,     0,     0,
-      75,     0,     0,     0,     0,     0,     0,    87,     0,    88,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      87,     0,    88
-};
-
-static const yytype_int16 yycheck[] =
-{
-       9,     8,    76,    76,    93,   169,   165,   171,   155,   151,
-     235,    76,    77,    78,    76,    86,    87,   181,    88,    89,
-     198,   198,     4,   265,   322,    99,   100,     3,     4,   394,
-       9,     9,   201,   201,   217,   218,    98,    80,   216,   216,
-     107,    33,    34,    84,    85,    37,   120,   412,   217,   217,
-     151,    33,    34,    35,   111,   122,    32,    33,    34,     4,
-      36,    37,     0,   222,   201,   115,    73,   201,    95,    96,
-      97,    98,    99,   100,   101,   102,   103,   104,   179,   180,
-     217,    90,   112,   217,   115,   383,   201,   115,    33,    34,
-      35,    98,   101,   235,   258,   337,   321,   197,   262,   200,
-     215,   265,   249,   328,   111,   201,   115,   405,   114,   273,
-     408,    90,    90,   197,   202,   203,   197,   201,   416,   215,
-     201,   115,   131,    90,    91,   214,   424,   198,   115,   200,
-     115,   140,     3,     4,   235,   142,   236,   197,   197,   209,
-     210,   201,   201,    76,    77,    78,   155,   154,   157,   313,
-     197,   197,   196,   218,   379,   201,   165,   106,   107,   108,
-     197,    32,    33,    34,   201,    36,    37,    38,    39,    40,
-     218,   197,   201,   337,   198,   201,   196,   277,   196,   321,
-     301,   302,   303,   304,   297,   298,   328,   115,   347,   216,
-     299,   300,   292,   294,   295,   296,   297,   298,   299,   300,
-     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   274,   222,   314,   197,    76,    77,    78,   196,
-     321,   217,   322,   387,   233,   232,   216,   328,   217,     3,
-       4,   217,   391,    33,    34,    35,   196,   379,   196,   196,
-     249,   206,   207,   208,   305,   306,   217,   411,   257,   215,
-     196,   219,   196,   212,   197,   355,   265,   196,    32,    33,
-      34,   270,    36,    37,    38,    39,    40,   274,   342,   342,
-     429,   211,   213,    92,    94,   217,   196,   199,   379,   198,
-      75,    80,   197,   383,   198,   216,   199,   196,   199,   201,
-     197,   196,   216,   197,   217,   216,   199,   199,   197,   197,
-     400,   218,    76,   403,    78,   405,   216,   199,   408,    12,
-     216,   308,   307,   311,   141,   233,   416,   217,   309,   312,
-     134,   253,   329,    80,   424,   233,   310,   157,   337,   329,
-     257,    92,   412,   270,   392,   337,    90,   344,   347,    -1,
-      -1,   257,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   391,    -1,    -1,   394,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   412,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
-     429,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    -1,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
-      82,    83,    -1,    -1,    86,    87,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   105,   106,   107,   108,    -1,   110,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   157,    -1,   159,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,
-     202,   203,   204,   205,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   217,   218,   219,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    -1,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      -1,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,    -1,
-      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     105,   106,   107,   108,    -1,   110,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   123,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   157,    -1,   159,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   196,    -1,    -1,    -1,    -1,    -1,   202,   203,   204,
-     205,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   217,   218,   219,     3,     4,     5,     6,     7,
-       8,     9,    10,    11,    -1,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    34,    -1,    36,    37,
-      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-      78,    79,    80,    81,    82,    83,    -1,    -1,    86,    87,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,   106,   107,
-     108,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   123,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   157,
-      -1,   159,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   196,    -1,
-      -1,    -1,    -1,    -1,   202,   203,   204,   205,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   217,
-     218,   219,     3,     4,     5,     6,     7,     8,     9,    10,
-      11,    -1,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    -1,    36,    37,    38,    39,    40,
-      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-      81,    82,    83,    -1,    -1,    86,    87,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   105,   106,   107,   108,    -1,   110,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   157,    -1,   159,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,    -1,
-      -1,   202,   203,   204,   205,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   217,   218,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    -1,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      -1,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,    -1,
-      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     105,   106,   107,   108,    -1,   110,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   123,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   157,    -1,   159,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   196,    -1,    -1,    -1,    -1,    -1,   202,   203,   204,
-     205,     3,     4,     5,     6,     7,     8,    -1,    -1,    -1,
-      -1,    -1,   217,   218,    -1,    -1,    -1,    -1,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    -1,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    -1,    76,    77,    78,    79,    80,    81,
-      82,    83,    -1,    -1,    86,    87,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   105,   106,   107,   108,    -1,   110,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   123,    -1,     5,     6,     7,     8,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      -1,    -1,    -1,    -1,    -1,   157,    -1,   159,    -1,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    -1,   196,    77,    -1,    -1,    -1,    -1,
-     202,   203,   204,   205,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   217,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   106,   107,   108,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,     5,     6,     7,     8,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    -1,
-      -1,    -1,    -1,    -1,    -1,   157,    -1,   159,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   219,    -1,    -1,
-      -1,    -1,    -1,   106,   107,   108,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,     5,     6,     7,     8,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    -1,    -1,
-      -1,    -1,    -1,    -1,   157,    -1,   159,    41,    42,    43,
-      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-      74,    -1,    76,    77,    78,    79,    80,    81,    82,    83,
-      -1,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   219,    -1,    -1,    -1,
-      -1,    -1,   106,   107,   108,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   157,    -1,   159,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,   202,   203,
-     204,   205,     3,     4,     5,     6,     7,     8,    -1,    -1,
-      -1,    -1,    -1,   217,    -1,    -1,    -1,    -1,    -1,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    -1,    36,    37,    38,    39,    40,
-      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,    -1,    76,    77,    78,    79,    80,
-      81,    82,    83,    -1,    -1,    86,    87,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   105,   106,   107,   108,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   157,    -1,   159,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       5,     6,     7,     8,    -1,   196,    -1,    -1,    -1,    -1,
-      -1,   202,   203,   204,   205,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      -1,    76,    77,    78,    79,    80,    81,    82,    83,    -1,
-      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   106,   107,   108,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   157,    -1,   159,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,     5,     6,     7,     8,
-      -1,   196,    -1,    -1,   199,    -1,    -1,   202,   203,   204,
-     205,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    73,    74,    -1,    76,    77,    78,
-      79,    80,    81,    82,    83,    -1,    -1,    86,    87,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,   107,   108,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   157,    -1,
-     159,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,     5,     6,     7,     8,    -1,   196,    -1,    -1,
-     199,    -1,    -1,   202,   203,   204,   205,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,    -1,    76,    77,    78,    79,    80,    81,    82,
-      83,    -1,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   106,   107,   108,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   157,    -1,   159,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,     6,
-       7,     8,    -1,   196,    -1,    -1,   199,    -1,    -1,   202,
-     203,   204,   205,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,    -1,    76,
-      77,    78,    79,    80,    81,    82,    83,    -1,    -1,    86,
-      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,
-     107,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     157,    -1,   159,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,     5,     6,     7,     8,    -1,   196,
-      -1,    -1,    -1,    -1,    -1,   202,   203,   204,   205,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,    -1,    76,    77,    78,    79,    80,
-      81,    82,    83,    -1,    -1,    86,    87,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   106,   107,   108,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   157,    -1,   159,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       5,     6,     7,     8,    -1,   196,    -1,    -1,    -1,    -1,
-      -1,   202,   203,   204,   205,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      -1,    76,    77,    78,    79,    80,    81,    82,    83,    -1,
-      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   106,   107,   108,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   157,    -1,   159,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
-      -1,   196,    -1,    -1,    -1,    -1,    -1,   202,   203,   204,
-     205,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    -1,    36,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    73,    74,    -1,    -1,    77,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   105,   106,   107,   108,
-      -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,
-     119,   120,   121,   122,   123,     5,     6,     7,     8,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    -1,    -1,    -1,    -1,    -1,    -1,   157,    -1,
-     159,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    -1,    -1,    77,     5,     6,
-       7,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    -1,   106,   107,   108,    -1,
-      -1,    -1,    -1,    -1,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,    -1,    -1,
-      77,    -1,    -1,    -1,    -1,    -1,    -1,   157,    -1,   159,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     157,    -1,   159
-};
-
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-   symbol of state STATE-NUM.  */
-static const yytype_uint16 yystos[] =
-{
-       0,   111,   221,   223,    80,     0,   225,   115,   112,   222,
-     227,    76,    77,    78,   226,     3,     4,     5,     6,     7,
-       8,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    77,   105,   106,   107,   108,
-     110,   118,   119,   120,   121,   122,   123,   157,   159,   224,
-     228,   262,   263,   264,   265,   266,   271,   272,   273,   274,
-     277,   279,   280,   281,   282,   283,   284,   285,   286,   311,
-     312,   114,    33,    34,    37,   218,   226,    76,    78,   229,
-     277,   280,   285,   115,   115,   115,   115,   115,   196,   311,
-     217,   218,   298,   197,   201,     4,    33,    34,    35,   268,
-     269,   278,   201,   217,    76,    78,   226,   229,   280,   280,
-     281,   198,   282,   226,   281,   287,   288,   218,   280,   282,
-     226,   275,   276,     9,    10,    11,    13,    14,    15,    16,
-      17,    18,    19,    75,    79,    80,    81,    82,    83,    86,
-      87,   196,   202,   203,   204,   205,   217,   218,   219,   229,
-     230,   231,   233,   234,   235,   236,   237,   238,   239,   244,
-     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
-     255,   256,   257,   258,   260,   262,   263,   281,   292,   293,
-     294,   295,   299,   300,   301,   304,   305,   306,   310,   268,
-     267,   270,   281,   269,   226,   198,   216,   196,   199,   244,
-     257,   261,   281,   115,   226,   289,   290,   219,   288,   287,
-     217,   216,   197,   201,   217,   217,   293,   196,   196,   217,
-     217,   260,   196,   260,   215,   196,   244,   244,   260,   219,
-     296,    86,    87,   198,   200,   197,   197,   201,    74,   258,
-     196,    95,    96,    97,    98,    99,   100,   101,   102,   103,
-     104,   216,   259,   244,   206,   207,   208,   202,   203,    84,
-      85,    88,    89,   209,   210,    90,    91,   211,   212,   213,
-      92,    94,    93,   214,   201,   217,   219,   293,   226,   267,
-     270,   198,   216,   199,   261,   258,   291,   199,   198,   201,
-     217,   219,    80,   276,    75,   292,   300,   307,   260,   217,
-     260,   215,   105,   260,   273,   303,   197,   299,   232,   260,
-     226,   229,   240,   241,   242,   243,   258,   258,   244,   244,
-     244,   246,   246,   247,   247,   248,   248,   248,   248,   249,
-     249,   250,   251,   252,   253,   254,   255,   260,   258,   198,
-     199,   261,   291,   216,   199,   261,   290,   196,   303,   308,
-     309,   197,   197,   226,   197,   219,   199,   196,   197,   197,
-     201,    74,   258,   215,   261,   216,   199,   291,   216,   199,
-     260,   217,   197,   293,   302,   295,   216,   294,   297,   298,
-     258,   258,   199,   291,   216,   291,   197,   260,   297,    12,
-     291,   291,   217,   293
-};
-
-#define yyerrok                (yyerrstatus = 0)
-#define yyclearin      (yychar = YYEMPTY)
-#define YYEMPTY                (-2)
-#define YYEOF          0
-
-#define YYACCEPT       goto yyacceptlab
-#define YYABORT                goto yyabortlab
-#define YYERROR                goto yyerrorlab
-
-
-/* Like YYERROR except do call yyerror.  This remains here temporarily
-   to ease the transition to the new meaning of YYERROR, for GCC.
-   Once GCC version 2 has supplanted version 1, this can go.  However,
-   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
-   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
-   discussed.  */
-
-#define YYFAIL         goto yyerrlab
-#if defined YYFAIL
-  /* This is here to suppress warnings from the GCC cpp's
-     -Wunused-macros.  Normally we don't worry about that warning, but
-     some users do, and we want to make it easy for users to remove
-     YYFAIL uses, which will produce warnings from Bison 2.5.  */
-#endif
-
-#define YYRECOVERING()  (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value)                                 \
-do                                                             \
-  if (yychar == YYEMPTY && yylen == 1)                         \
-    {                                                          \
-      yychar = (Token);                                                \
-      yylval = (Value);                                                \
-      yytoken = YYTRANSLATE (yychar);                          \
-      YYPOPSTACK (1);                                          \
-      goto yybackup;                                           \
-    }                                                          \
-  else                                                         \
-    {                                                          \
-      yyerror (&yylloc, state, YY_("syntax error: cannot back up")); \
-      YYERROR;                                                 \
-    }                                                          \
-while (YYID (0))
-
-
-#define YYTERROR       1
-#define YYERRCODE      256
-
-
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
-   If N is 0, then set CURRENT to the empty location which ends
-   the previous symbol: RHS[0] (always defined).  */
-
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)                               \
-    do                                                                 \
-      if (YYID (N))                                                    \
-       {                                                               \
-         (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
-         (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
-         (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
-         (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
-       }                                                               \
-      else                                                             \
-       {                                                               \
-         (Current).first_line   = (Current).last_line   =              \
-           YYRHSLOC (Rhs, 0).last_line;                                \
-         (Current).first_column = (Current).last_column =              \
-           YYRHSLOC (Rhs, 0).last_column;                              \
-       }                                                               \
-    while (YYID (0))
-#endif
-
-
-/* YY_LOCATION_PRINT -- Print the location on the stream.
-   This macro was not mandated originally: define only if we know
-   we won't break user code: when these are the locations we know.  */
-
-#ifndef YY_LOCATION_PRINT
-# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
-#  define YY_LOCATION_PRINT(File, Loc)                 \
-     fprintf (File, "%d.%d-%d.%d",                     \
-             (Loc).first_line, (Loc).first_column,     \
-             (Loc).last_line,  (Loc).last_column)
-# else
-#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
-#endif
-
-
-/* YYLEX -- calling `yylex' with the right arguments.  */
-
-#ifdef YYLEX_PARAM
-# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
-#else
-# define YYLEX yylex (&yylval, &yylloc, scanner)
-#endif
-
-/* Enable debugging if requested.  */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args)                       \
-do {                                           \
-  if (yydebug)                                 \
-    YYFPRINTF Args;                            \
-} while (YYID (0))
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                   \
-do {                                                                     \
-  if (yydebug)                                                           \
-    {                                                                    \
-      YYFPRINTF (stderr, "%s ", Title);                                          \
-      yy_symbol_print (stderr,                                           \
-                 Type, Value, Location, state); \
-      YYFPRINTF (stderr, "\n");                                                  \
-    }                                                                    \
-} while (YYID (0))
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
-
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, struct _mesa_glsl_parse_state *state)
-#else
-static void
-yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, state)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE const * const yyvaluep;
-    YYLTYPE const * const yylocationp;
-    struct _mesa_glsl_parse_state *state;
-#endif
-{
-  if (!yyvaluep)
-    return;
-  YYUSE (yylocationp);
-  YYUSE (state);
-# ifdef YYPRINT
-  if (yytype < YYNTOKENS)
-    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# else
-  YYUSE (yyoutput);
-# endif
-  switch (yytype)
-    {
-      default:
-       break;
-    }
-}
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, struct _mesa_glsl_parse_state *state)
-#else
-static void
-yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, state)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE const * const yyvaluep;
-    YYLTYPE const * const yylocationp;
-    struct _mesa_glsl_parse_state *state;
-#endif
-{
-  if (yytype < YYNTOKENS)
-    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-  else
-    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
-  YY_LOCATION_PRINT (yyoutput, *yylocationp);
-  YYFPRINTF (yyoutput, ": ");
-  yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, state);
-  YYFPRINTF (yyoutput, ")");
-}
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (included).                                                   |
-`------------------------------------------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
-#else
-static void
-yy_stack_print (yybottom, yytop)
-    yytype_int16 *yybottom;
-    yytype_int16 *yytop;
-#endif
-{
-  YYFPRINTF (stderr, "Stack now");
-  for (; yybottom <= yytop; yybottom++)
-    {
-      int yybot = *yybottom;
-      YYFPRINTF (stderr, " %d", yybot);
-    }
-  YYFPRINTF (stderr, "\n");
-}
-
-# define YY_STACK_PRINT(Bottom, Top)                           \
-do {                                                           \
-  if (yydebug)                                                 \
-    yy_stack_print ((Bottom), (Top));                          \
-} while (YYID (0))
-
-
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced.  |
-`------------------------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, struct _mesa_glsl_parse_state *state)
-#else
-static void
-yy_reduce_print (yyvsp, yylsp, yyrule, state)
-    YYSTYPE *yyvsp;
-    YYLTYPE *yylsp;
-    int yyrule;
-    struct _mesa_glsl_parse_state *state;
-#endif
-{
-  int yynrhs = yyr2[yyrule];
-  int yyi;
-  unsigned long int yylno = yyrline[yyrule];
-  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-            yyrule - 1, yylno);
-  /* The symbols being reduced.  */
-  for (yyi = 0; yyi < yynrhs; yyi++)
-    {
-      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
-      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
-                      &(yyvsp[(yyi + 1) - (yynrhs)])
-                      , &(yylsp[(yyi + 1) - (yynrhs)])                , state);
-      YYFPRINTF (stderr, "\n");
-    }
-}
-
-# define YY_REDUCE_PRINT(Rule)         \
-do {                                   \
-  if (yydebug)                         \
-    yy_reduce_print (yyvsp, yylsp, Rule, state); \
-} while (YYID (0))
-
-/* Nonzero means print parse trace.  It is left uninitialized so that
-   multiple parsers can coexist.  */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef        YYINITDEPTH
-# define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
-   if the built-in stack extension method is used).
-
-   Do not make this value too large; the results are undefined if
-   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
-   evaluated with infinite-precision integer arithmetic.  */
-
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-\f
-
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-#  if defined __GLIBC__ && defined _STRING_H
-#   define yystrlen strlen
-#  else
-/* Return the length of YYSTR.  */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static YYSIZE_T
-yystrlen (const char *yystr)
-#else
-static YYSIZE_T
-yystrlen (yystr)
-    const char *yystr;
-#endif
-{
-  YYSIZE_T yylen;
-  for (yylen = 0; yystr[yylen]; yylen++)
-    continue;
-  return yylen;
-}
-#  endif
-# endif
-
-# ifndef yystpcpy
-#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-#   define yystpcpy stpcpy
-#  else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
-   YYDEST.  */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-#else
-static char *
-yystpcpy (yydest, yysrc)
-    char *yydest;
-    const char *yysrc;
-#endif
-{
-  char *yyd = yydest;
-  const char *yys = yysrc;
-
-  while ((*yyd++ = *yys++) != '\0')
-    continue;
-
-  return yyd - 1;
-}
-#  endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-   quotes and backslashes, so that it's suitable for yyerror.  The
-   heuristic is that double-quoting is unnecessary unless the string
-   contains an apostrophe, a comma, or backslash (other than
-   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
-   null, do not copy; instead, return the length of what the result
-   would have been.  */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
-  if (*yystr == '"')
-    {
-      YYSIZE_T yyn = 0;
-      char const *yyp = yystr;
-
-      for (;;)
-       switch (*++yyp)
-         {
-         case '\'':
-         case ',':
-           goto do_not_strip_quotes;
-
-         case '\\':
-           if (*++yyp != '\\')
-             goto do_not_strip_quotes;
-           /* Fall through.  */
-         default:
-           if (yyres)
-             yyres[yyn] = *yyp;
-           yyn++;
-           break;
-
-         case '"':
-           if (yyres)
-             yyres[yyn] = '\0';
-           return yyn;
-         }
-    do_not_strip_quotes: ;
-    }
-
-  if (! yyres)
-    return yystrlen (yystr);
-
-  return yystpcpy (yyres, yystr) - yyres;
-}
-# endif
-
-/* Copy into YYRESULT an error message about the unexpected token
-   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
-   including the terminating null byte.  If YYRESULT is null, do not
-   copy anything; just return the number of bytes that would be
-   copied.  As a special case, return 0 if an ordinary "syntax error"
-   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
-   size calculation.  */
-static YYSIZE_T
-yysyntax_error (char *yyresult, int yystate, int yychar)
-{
-  int yyn = yypact[yystate];
-
-  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
-    return 0;
-  else
-    {
-      int yytype = YYTRANSLATE (yychar);
-      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
-      YYSIZE_T yysize = yysize0;
-      YYSIZE_T yysize1;
-      int yysize_overflow = 0;
-      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-      int yyx;
-
-# if 0
-      /* This is so xgettext sees the translatable formats that are
-        constructed on the fly.  */
-      YY_("syntax error, unexpected %s");
-      YY_("syntax error, unexpected %s, expecting %s");
-      YY_("syntax error, unexpected %s, expecting %s or %s");
-      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
-      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-# endif
-      char *yyfmt;
-      char const *yyf;
-      static char const yyunexpected[] = "syntax error, unexpected %s";
-      static char const yyexpecting[] = ", expecting %s";
-      static char const yyor[] = " or %s";
-      char yyformat[sizeof yyunexpected
-                   + sizeof yyexpecting - 1
-                   + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
-                      * (sizeof yyor - 1))];
-      char const *yyprefix = yyexpecting;
-
-      /* Start YYX at -YYN if negative to avoid negative indexes in
-        YYCHECK.  */
-      int yyxbegin = yyn < 0 ? -yyn : 0;
-
-      /* Stay within bounds of both yycheck and yytname.  */
-      int yychecklim = YYLAST - yyn + 1;
-      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-      int yycount = 1;
-
-      yyarg[0] = yytname[yytype];
-      yyfmt = yystpcpy (yyformat, yyunexpected);
-
-      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-       if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-         {
-           if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-             {
-               yycount = 1;
-               yysize = yysize0;
-               yyformat[sizeof yyunexpected - 1] = '\0';
-               break;
-             }
-           yyarg[yycount++] = yytname[yyx];
-           yysize1 = yysize + yytnamerr (0, yytname[yyx]);
-           yysize_overflow |= (yysize1 < yysize);
-           yysize = yysize1;
-           yyfmt = yystpcpy (yyfmt, yyprefix);
-           yyprefix = yyor;
-         }
-
-      yyf = YY_(yyformat);
-      yysize1 = yysize + yystrlen (yyf);
-      yysize_overflow |= (yysize1 < yysize);
-      yysize = yysize1;
-
-      if (yysize_overflow)
-       return YYSIZE_MAXIMUM;
-
-      if (yyresult)
-       {
-         /* Avoid sprintf, as that infringes on the user's name space.
-            Don't have undefined behavior even if the translation
-            produced a string with the wrong number of "%s"s.  */
-         char *yyp = yyresult;
-         int yyi = 0;
-         while ((*yyp = *yyf) != '\0')
-           {
-             if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
-               {
-                 yyp += yytnamerr (yyp, yyarg[yyi++]);
-                 yyf += 2;
-               }
-             else
-               {
-                 yyp++;
-                 yyf++;
-               }
-           }
-       }
-      return yysize;
-    }
-}
-#endif /* YYERROR_VERBOSE */
-\f
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol.  |
-`-----------------------------------------------*/
-
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, struct _mesa_glsl_parse_state *state)
-#else
-static void
-yydestruct (yymsg, yytype, yyvaluep, yylocationp, state)
-    const char *yymsg;
-    int yytype;
-    YYSTYPE *yyvaluep;
-    YYLTYPE *yylocationp;
-    struct _mesa_glsl_parse_state *state;
-#endif
-{
-  YYUSE (yyvaluep);
-  YYUSE (yylocationp);
-  YYUSE (state);
-
-  if (!yymsg)
-    yymsg = "Deleting";
-  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
-  switch (yytype)
-    {
-
-      default:
-       break;
-    }
-}
-
-/* Prevent warnings from -Wmissing-prototypes.  */
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
-int yyparse (struct _mesa_glsl_parse_state *state);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
-
-
-
-
-
-/*-------------------------.
-| yyparse or yypush_parse.  |
-`-------------------------*/
-
-#ifdef YYPARSE_PARAM
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (void *YYPARSE_PARAM)
-#else
-int
-yyparse (YYPARSE_PARAM)
-    void *YYPARSE_PARAM;
-#endif
-#else /* ! YYPARSE_PARAM */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (struct _mesa_glsl_parse_state *state)
-#else
-int
-yyparse (state)
-    struct _mesa_glsl_parse_state *state;
-#endif
-#endif
-{
-/* The lookahead symbol.  */
-int yychar;
-
-/* The semantic value of the lookahead symbol.  */
-YYSTYPE yylval;
-
-/* Location data for the lookahead symbol.  */
-YYLTYPE yylloc;
-
-    /* Number of syntax errors so far.  */
-    int yynerrs;
-
-    int yystate;
-    /* Number of tokens to shift before error messages enabled.  */
-    int yyerrstatus;
-
-    /* The stacks and their tools:
-       `yyss': related to states.
-       `yyvs': related to semantic values.
-       `yyls': related to locations.
-
-       Refer to the stacks thru separate pointers, to allow yyoverflow
-       to reallocate them elsewhere.  */
-
-    /* The state stack.  */
-    yytype_int16 yyssa[YYINITDEPTH];
-    yytype_int16 *yyss;
-    yytype_int16 *yyssp;
-
-    /* The semantic value stack.  */
-    YYSTYPE yyvsa[YYINITDEPTH];
-    YYSTYPE *yyvs;
-    YYSTYPE *yyvsp;
-
-    /* The location stack.  */
-    YYLTYPE yylsa[YYINITDEPTH];
-    YYLTYPE *yyls;
-    YYLTYPE *yylsp;
-
-    /* The locations where the error started and ended.  */
-    YYLTYPE yyerror_range[3];
-
-    YYSIZE_T yystacksize;
-
-  int yyn;
-  int yyresult;
-  /* Lookahead token as an internal (translated) token number.  */
-  int yytoken;
-  /* The variables used to return semantic value and location from the
-     action routines.  */
-  YYSTYPE yyval;
-  YYLTYPE yyloc;
-
-#if YYERROR_VERBOSE
-  /* Buffer for error messages, and its allocated size.  */
-  char yymsgbuf[128];
-  char *yymsg = yymsgbuf;
-  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
-#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
-
-  /* The number of symbols on the RHS of the reduced rule.
-     Keep to zero when no symbol should be popped.  */
-  int yylen = 0;
-
-  yytoken = 0;
-  yyss = yyssa;
-  yyvs = yyvsa;
-  yyls = yylsa;
-  yystacksize = YYINITDEPTH;
-
-  YYDPRINTF ((stderr, "Starting parse\n"));
-
-  yystate = 0;
-  yyerrstatus = 0;
-  yynerrs = 0;
-  yychar = YYEMPTY; /* Cause a token to be read.  */
-
-  /* Initialize stack pointers.
-     Waste one element of value and location stack
-     so that they stay on the same level as the state stack.
-     The wasted elements are never initialized.  */
-  yyssp = yyss;
-  yyvsp = yyvs;
-  yylsp = yyls;
-
-#if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
-  /* Initialize the default location before parsing starts.  */
-  yylloc.first_line   = yylloc.last_line   = 1;
-  yylloc.first_column = yylloc.last_column = 1;
-#endif
-
-/* User initialization code.  */
-
-/* Line 1251 of yacc.c  */
-#line 41 "glsl_parser.ypp"
-{
-   yylloc.first_line = 1;
-   yylloc.first_column = 1;
-   yylloc.last_line = 1;
-   yylloc.last_column = 1;
-   yylloc.source = 0;
-}
-
-/* Line 1251 of yacc.c  */
-#line 2657 "glsl_parser.cpp"
-  yylsp[0] = yylloc;
-
-  goto yysetstate;
-
-/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate.  |
-`------------------------------------------------------------*/
- yynewstate:
-  /* In all cases, when you get here, the value and location stacks
-     have just been pushed.  So pushing a state here evens the stacks.  */
-  yyssp++;
-
- yysetstate:
-  *yyssp = yystate;
-
-  if (yyss + yystacksize - 1 <= yyssp)
-    {
-      /* Get the current used size of the three stacks, in elements.  */
-      YYSIZE_T yysize = yyssp - yyss + 1;
-
-#ifdef yyoverflow
-      {
-       /* Give user a chance to reallocate the stack.  Use copies of
-          these so that the &'s don't force the real ones into
-          memory.  */
-       YYSTYPE *yyvs1 = yyvs;
-       yytype_int16 *yyss1 = yyss;
-       YYLTYPE *yyls1 = yyls;
-
-       /* Each stack pointer address is followed by the size of the
-          data in use in that stack, in bytes.  This used to be a
-          conditional around just the two extra args, but that might
-          be undefined if yyoverflow is a macro.  */
-       yyoverflow (YY_("memory exhausted"),
-                   &yyss1, yysize * sizeof (*yyssp),
-                   &yyvs1, yysize * sizeof (*yyvsp),
-                   &yyls1, yysize * sizeof (*yylsp),
-                   &yystacksize);
-
-       yyls = yyls1;
-       yyss = yyss1;
-       yyvs = yyvs1;
-      }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
-      goto yyexhaustedlab;
-# else
-      /* Extend the stack our own way.  */
-      if (YYMAXDEPTH <= yystacksize)
-       goto yyexhaustedlab;
-      yystacksize *= 2;
-      if (YYMAXDEPTH < yystacksize)
-       yystacksize = YYMAXDEPTH;
-
-      {
-       yytype_int16 *yyss1 = yyss;
-       union yyalloc *yyptr =
-         (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-       if (! yyptr)
-         goto yyexhaustedlab;
-       YYSTACK_RELOCATE (yyss_alloc, yyss);
-       YYSTACK_RELOCATE (yyvs_alloc, yyvs);
-       YYSTACK_RELOCATE (yyls_alloc, yyls);
-#  undef YYSTACK_RELOCATE
-       if (yyss1 != yyssa)
-         YYSTACK_FREE (yyss1);
-      }
-# endif
-#endif /* no yyoverflow */
-
-      yyssp = yyss + yysize - 1;
-      yyvsp = yyvs + yysize - 1;
-      yylsp = yyls + yysize - 1;
-
-      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-                 (unsigned long int) yystacksize));
-
-      if (yyss + yystacksize - 1 <= yyssp)
-       YYABORT;
-    }
-
-  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-
-  if (yystate == YYFINAL)
-    YYACCEPT;
-
-  goto yybackup;
-
-/*-----------.
-| yybackup.  |
-`-----------*/
-yybackup:
-
-  /* Do appropriate processing given the current state.  Read a
-     lookahead token if we need one and don't already have one.  */
-
-  /* First try to decide what to do without reference to lookahead token.  */
-  yyn = yypact[yystate];
-  if (yyn == YYPACT_NINF)
-    goto yydefault;
-
-  /* Not known => get a lookahead token if don't already have one.  */
-
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
-  if (yychar == YYEMPTY)
-    {
-      YYDPRINTF ((stderr, "Reading a token: "));
-      yychar = YYLEX;
-    }
-
-  if (yychar <= YYEOF)
-    {
-      yychar = yytoken = YYEOF;
-      YYDPRINTF ((stderr, "Now at end of input.\n"));
-    }
-  else
-    {
-      yytoken = YYTRANSLATE (yychar);
-      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
-    }
-
-  /* If the proper action on seeing token YYTOKEN is to reduce or to
-     detect an error, take that action.  */
-  yyn += yytoken;
-  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
-    goto yydefault;
-  yyn = yytable[yyn];
-  if (yyn <= 0)
-    {
-      if (yyn == 0 || yyn == YYTABLE_NINF)
-       goto yyerrlab;
-      yyn = -yyn;
-      goto yyreduce;
-    }
-
-  /* Count tokens shifted since error; after three, turn off error
-     status.  */
-  if (yyerrstatus)
-    yyerrstatus--;
-
-  /* Shift the lookahead token.  */
-  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
-  /* Discard the shifted token.  */
-  yychar = YYEMPTY;
-
-  yystate = yyn;
-  *++yyvsp = yylval;
-  *++yylsp = yylloc;
-  goto yynewstate;
-
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state.  |
-`-----------------------------------------------------------*/
-yydefault:
-  yyn = yydefact[yystate];
-  if (yyn == 0)
-    goto yyerrlab;
-  goto yyreduce;
-
-
-/*-----------------------------.
-| yyreduce -- Do a reduction.  |
-`-----------------------------*/
-yyreduce:
-  /* yyn is the number of a rule to reduce with.  */
-  yylen = yyr2[yyn];
-
-  /* If YYLEN is nonzero, implement the default value of the action:
-     `$$ = $1'.
-
-     Otherwise, the following line sets YYVAL to garbage.
-     This behavior is undocumented and Bison
-     users should not rely upon it.  Assigning to YYVAL
-     unconditionally makes the parser a bit smaller, and it avoids a
-     GCC warning that YYVAL may be used uninitialized.  */
-  yyval = yyvsp[1-yylen];
-
-  /* Default location.  */
-  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
-  YY_REDUCE_PRINT (yyn);
-  switch (yyn)
-    {
-        case 2:
-
-/* Line 1464 of yacc.c  */
-#line 218 "glsl_parser.ypp"
-    {
-          _mesa_glsl_initialize_types(state);
-       ;}
-    break;
-
-  case 3:
-
-/* Line 1464 of yacc.c  */
-#line 222 "glsl_parser.ypp"
-    {
-          delete state->symbols;
-          state->symbols = new(ralloc_parent(state)) glsl_symbol_table;
-          _mesa_glsl_initialize_types(state);
-       ;}
-    break;
-
-  case 5:
-
-/* Line 1464 of yacc.c  */
-#line 232 "glsl_parser.ypp"
-    {
-          bool supported = false;
-
-          switch ((yyvsp[(2) - (3)].n)) {
-          case 100:
-             state->es_shader = true;
-             supported = state->Const.GLSL_100ES;
-             break;
-          case 110:
-             supported = state->Const.GLSL_110;
-             break;
-          case 120:
-             supported = state->Const.GLSL_120;
-             break;
-          case 130:
-             supported = state->Const.GLSL_130;
-             break;
-          default:
-             supported = false;
-             break;
-          }
-
-          state->language_version = (yyvsp[(2) - (3)].n);
-          state->version_string =
-             ralloc_asprintf(state, "GLSL%s %d.%02d",
-                             state->es_shader ? " ES" : "",
-                             state->language_version / 100,
-                             state->language_version % 100);
-
-          if (!supported) {
-             _mesa_glsl_error(& (yylsp[(2) - (3)]), state, "%s is not supported. "
-                              "Supported versions are: %s\n",
-                              state->version_string,
-                              state->supported_version_string);
-          }
-       ;}
-    break;
-
-  case 10:
-
-/* Line 1464 of yacc.c  */
-#line 276 "glsl_parser.ypp"
-    {
-          if (state->language_version < 120) {
-             _mesa_glsl_warning(& (yylsp[(1) - (2)]), state,
-                                "pragma `invariant(all)' not supported in %s",
-                                state->version_string);
-          } else {
-             state->all_invariant = true;
-          }
-       ;}
-    break;
-
-  case 16:
-
-/* Line 1464 of yacc.c  */
-#line 300 "glsl_parser.ypp"
-    {
-          if (!_mesa_glsl_process_extension((yyvsp[(2) - (5)].identifier), & (yylsp[(2) - (5)]), (yyvsp[(4) - (5)].identifier), & (yylsp[(4) - (5)]), state)) {
-             YYERROR;
-          }
-       ;}
-    break;
-
-  case 17:
-
-/* Line 1464 of yacc.c  */
-#line 309 "glsl_parser.ypp"
-    {
-          /* FINISHME: The NULL test is required because pragmas are set to
-           * FINISHME: NULL. (See production rule for external_declaration.)
-           */
-          if ((yyvsp[(1) - (1)].node) != NULL)
-             state->translation_unit.push_tail(& (yyvsp[(1) - (1)].node)->link);
-       ;}
-    break;
-
-  case 18:
-
-/* Line 1464 of yacc.c  */
-#line 317 "glsl_parser.ypp"
-    {
-          /* FINISHME: The NULL test is required because pragmas are set to
-           * FINISHME: NULL. (See production rule for external_declaration.)
-           */
-          if ((yyvsp[(2) - (2)].node) != NULL)
-             state->translation_unit.push_tail(& (yyvsp[(2) - (2)].node)->link);
-       ;}
-    break;
-
-  case 21:
-
-/* Line 1464 of yacc.c  */
-#line 333 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression(ast_identifier, NULL, NULL, NULL);
-          (yyval.expression)->set_location(yylloc);
-          (yyval.expression)->primary_expression.identifier = (yyvsp[(1) - (1)].identifier);
-       ;}
-    break;
-
-  case 22:
-
-/* Line 1464 of yacc.c  */
-#line 340 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression(ast_int_constant, NULL, NULL, NULL);
-          (yyval.expression)->set_location(yylloc);
-          (yyval.expression)->primary_expression.int_constant = (yyvsp[(1) - (1)].n);
-       ;}
-    break;
-
-  case 23:
-
-/* Line 1464 of yacc.c  */
-#line 347 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression(ast_uint_constant, NULL, NULL, NULL);
-          (yyval.expression)->set_location(yylloc);
-          (yyval.expression)->primary_expression.uint_constant = (yyvsp[(1) - (1)].n);
-       ;}
-    break;
-
-  case 24:
-
-/* Line 1464 of yacc.c  */
-#line 354 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression(ast_float_constant, NULL, NULL, NULL);
-          (yyval.expression)->set_location(yylloc);
-          (yyval.expression)->primary_expression.float_constant = (yyvsp[(1) - (1)].real);
-       ;}
-    break;
-
-  case 25:
-
-/* Line 1464 of yacc.c  */
-#line 361 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression(ast_bool_constant, NULL, NULL, NULL);
-          (yyval.expression)->set_location(yylloc);
-          (yyval.expression)->primary_expression.bool_constant = (yyvsp[(1) - (1)].n);
-       ;}
-    break;
-
-  case 26:
-
-/* Line 1464 of yacc.c  */
-#line 368 "glsl_parser.ypp"
-    {
-          (yyval.expression) = (yyvsp[(2) - (3)].expression);
-       ;}
-    break;
-
-  case 28:
-
-/* Line 1464 of yacc.c  */
-#line 376 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression(ast_array_index, (yyvsp[(1) - (4)].expression), (yyvsp[(3) - (4)].expression), NULL);
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 29:
-
-/* Line 1464 of yacc.c  */
-#line 382 "glsl_parser.ypp"
-    {
-          (yyval.expression) = (yyvsp[(1) - (1)].expression);
-       ;}
-    break;
-
-  case 30:
-
-/* Line 1464 of yacc.c  */
-#line 386 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), NULL, NULL);
-          (yyval.expression)->set_location(yylloc);
-          (yyval.expression)->primary_expression.identifier = (yyvsp[(3) - (3)].identifier);
-       ;}
-    break;
-
-  case 31:
-
-/* Line 1464 of yacc.c  */
-#line 393 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression(ast_post_inc, (yyvsp[(1) - (2)].expression), NULL, NULL);
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 32:
-
-/* Line 1464 of yacc.c  */
-#line 399 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression(ast_post_dec, (yyvsp[(1) - (2)].expression), NULL, NULL);
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 36:
-
-/* Line 1464 of yacc.c  */
-#line 417 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL);
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 41:
-
-/* Line 1464 of yacc.c  */
-#line 436 "glsl_parser.ypp"
-    {
-          (yyval.expression) = (yyvsp[(1) - (2)].expression);
-          (yyval.expression)->set_location(yylloc);
-          (yyval.expression)->expressions.push_tail(& (yyvsp[(2) - (2)].expression)->link);
-       ;}
-    break;
-
-  case 42:
-
-/* Line 1464 of yacc.c  */
-#line 442 "glsl_parser.ypp"
-    {
-          (yyval.expression) = (yyvsp[(1) - (3)].expression);
-          (yyval.expression)->set_location(yylloc);
-          (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].expression)->link);
-       ;}
-    break;
-
-  case 44:
-
-/* Line 1464 of yacc.c  */
-#line 458 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_function_expression((yyvsp[(1) - (1)].type_specifier));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 45:
-
-/* Line 1464 of yacc.c  */
-#line 464 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier));
-          (yyval.expression) = new(ctx) ast_function_expression(callee);
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 46:
-
-/* Line 1464 of yacc.c  */
-#line 471 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier));
-          (yyval.expression) = new(ctx) ast_function_expression(callee);
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 51:
-
-/* Line 1464 of yacc.c  */
-#line 491 "glsl_parser.ypp"
-    {
-          (yyval.expression) = (yyvsp[(1) - (2)].expression);
-          (yyval.expression)->set_location(yylloc);
-          (yyval.expression)->expressions.push_tail(& (yyvsp[(2) - (2)].expression)->link);
-       ;}
-    break;
-
-  case 52:
-
-/* Line 1464 of yacc.c  */
-#line 497 "glsl_parser.ypp"
-    {
-          (yyval.expression) = (yyvsp[(1) - (3)].expression);
-          (yyval.expression)->set_location(yylloc);
-          (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].expression)->link);
-       ;}
-    break;
-
-  case 53:
-
-/* Line 1464 of yacc.c  */
-#line 509 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (2)].identifier));
-          (yyval.expression) = new(ctx) ast_function_expression(callee);
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 55:
-
-/* Line 1464 of yacc.c  */
-#line 521 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression(ast_pre_inc, (yyvsp[(2) - (2)].expression), NULL, NULL);
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 56:
-
-/* Line 1464 of yacc.c  */
-#line 527 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression(ast_pre_dec, (yyvsp[(2) - (2)].expression), NULL, NULL);
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 57:
-
-/* Line 1464 of yacc.c  */
-#line 533 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression((yyvsp[(1) - (2)].n), (yyvsp[(2) - (2)].expression), NULL, NULL);
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 58:
-
-/* Line 1464 of yacc.c  */
-#line 542 "glsl_parser.ypp"
-    { (yyval.n) = ast_plus; ;}
-    break;
-
-  case 59:
-
-/* Line 1464 of yacc.c  */
-#line 543 "glsl_parser.ypp"
-    { (yyval.n) = ast_neg; ;}
-    break;
-
-  case 60:
-
-/* Line 1464 of yacc.c  */
-#line 544 "glsl_parser.ypp"
-    { (yyval.n) = ast_logic_not; ;}
-    break;
-
-  case 61:
-
-/* Line 1464 of yacc.c  */
-#line 545 "glsl_parser.ypp"
-    { (yyval.n) = ast_bit_not; ;}
-    break;
-
-  case 63:
-
-/* Line 1464 of yacc.c  */
-#line 551 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression_bin(ast_mul, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 64:
-
-/* Line 1464 of yacc.c  */
-#line 557 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression_bin(ast_div, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 65:
-
-/* Line 1464 of yacc.c  */
-#line 563 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression_bin(ast_mod, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 67:
-
-/* Line 1464 of yacc.c  */
-#line 573 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression_bin(ast_add, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 68:
-
-/* Line 1464 of yacc.c  */
-#line 579 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression_bin(ast_sub, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 70:
-
-/* Line 1464 of yacc.c  */
-#line 589 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression_bin(ast_lshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 71:
-
-/* Line 1464 of yacc.c  */
-#line 595 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression_bin(ast_rshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 73:
-
-/* Line 1464 of yacc.c  */
-#line 605 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression_bin(ast_less, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 74:
-
-/* Line 1464 of yacc.c  */
-#line 611 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression_bin(ast_greater, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 75:
-
-/* Line 1464 of yacc.c  */
-#line 617 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression_bin(ast_lequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 76:
-
-/* Line 1464 of yacc.c  */
-#line 623 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression_bin(ast_gequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 78:
-
-/* Line 1464 of yacc.c  */
-#line 633 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression_bin(ast_equal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 79:
-
-/* Line 1464 of yacc.c  */
-#line 639 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression_bin(ast_nequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 81:
-
-/* Line 1464 of yacc.c  */
-#line 649 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_and, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 83:
-
-/* Line 1464 of yacc.c  */
-#line 659 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 85:
-
-/* Line 1464 of yacc.c  */
-#line 669 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 87:
-
-/* Line 1464 of yacc.c  */
-#line 679 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_and, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 89:
-
-/* Line 1464 of yacc.c  */
-#line 689 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 91:
-
-/* Line 1464 of yacc.c  */
-#line 699 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 93:
-
-/* Line 1464 of yacc.c  */
-#line 709 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression(ast_conditional, (yyvsp[(1) - (5)].expression), (yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].expression));
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 95:
-
-/* Line 1464 of yacc.c  */
-#line 719 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.expression) = new(ctx) ast_expression((yyvsp[(2) - (3)].n), (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL);
-          (yyval.expression)->set_location(yylloc);
-       ;}
-    break;
-
-  case 96:
-
-/* Line 1464 of yacc.c  */
-#line 727 "glsl_parser.ypp"
-    { (yyval.n) = ast_assign; ;}
-    break;
-
-  case 97:
-
-/* Line 1464 of yacc.c  */
-#line 728 "glsl_parser.ypp"
-    { (yyval.n) = ast_mul_assign; ;}
-    break;
-
-  case 98:
-
-/* Line 1464 of yacc.c  */
-#line 729 "glsl_parser.ypp"
-    { (yyval.n) = ast_div_assign; ;}
-    break;
-
-  case 99:
-
-/* Line 1464 of yacc.c  */
-#line 730 "glsl_parser.ypp"
-    { (yyval.n) = ast_mod_assign; ;}
-    break;
-
-  case 100:
-
-/* Line 1464 of yacc.c  */
-#line 731 "glsl_parser.ypp"
-    { (yyval.n) = ast_add_assign; ;}
-    break;
-
-  case 101:
-
-/* Line 1464 of yacc.c  */
-#line 732 "glsl_parser.ypp"
-    { (yyval.n) = ast_sub_assign; ;}
-    break;
-
-  case 102:
-
-/* Line 1464 of yacc.c  */
-#line 733 "glsl_parser.ypp"
-    { (yyval.n) = ast_ls_assign; ;}
-    break;
-
-  case 103:
-
-/* Line 1464 of yacc.c  */
-#line 734 "glsl_parser.ypp"
-    { (yyval.n) = ast_rs_assign; ;}
-    break;
-
-  case 104:
-
-/* Line 1464 of yacc.c  */
-#line 735 "glsl_parser.ypp"
-    { (yyval.n) = ast_and_assign; ;}
-    break;
-
-  case 105:
-
-/* Line 1464 of yacc.c  */
-#line 736 "glsl_parser.ypp"
-    { (yyval.n) = ast_xor_assign; ;}
-    break;
-
-  case 106:
-
-/* Line 1464 of yacc.c  */
-#line 737 "glsl_parser.ypp"
-    { (yyval.n) = ast_or_assign; ;}
-    break;
-
-  case 107:
-
-/* Line 1464 of yacc.c  */
-#line 742 "glsl_parser.ypp"
-    {
-          (yyval.expression) = (yyvsp[(1) - (1)].expression);
-       ;}
-    break;
-
-  case 108:
-
-/* Line 1464 of yacc.c  */
-#line 746 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          if ((yyvsp[(1) - (3)].expression)->oper != ast_sequence) {
-             (yyval.expression) = new(ctx) ast_expression(ast_sequence, NULL, NULL, NULL);
-             (yyval.expression)->set_location(yylloc);
-             (yyval.expression)->expressions.push_tail(& (yyvsp[(1) - (3)].expression)->link);
-          } else {
-             (yyval.expression) = (yyvsp[(1) - (3)].expression);
-          }
-
-          (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].expression)->link);
-       ;}
-    break;
-
-  case 110:
-
-/* Line 1464 of yacc.c  */
-#line 766 "glsl_parser.ypp"
-    {
-          state->symbols->pop_scope();
-          (yyval.node) = (yyvsp[(1) - (2)].function);
-       ;}
-    break;
-
-  case 111:
-
-/* Line 1464 of yacc.c  */
-#line 771 "glsl_parser.ypp"
-    {
-          (yyval.node) = (yyvsp[(1) - (2)].declarator_list);
-       ;}
-    break;
-
-  case 112:
-
-/* Line 1464 of yacc.c  */
-#line 775 "glsl_parser.ypp"
-    {
-          (yyvsp[(3) - (4)].type_specifier)->precision = (yyvsp[(2) - (4)].n);
-          (yyvsp[(3) - (4)].type_specifier)->is_precision_statement = true;
-          (yyval.node) = (yyvsp[(3) - (4)].type_specifier);
-       ;}
-    break;
-
-  case 116:
-
-/* Line 1464 of yacc.c  */
-#line 793 "glsl_parser.ypp"
-    {
-          (yyval.function) = (yyvsp[(1) - (2)].function);
-          (yyval.function)->parameters.push_tail(& (yyvsp[(2) - (2)].parameter_declarator)->link);
-       ;}
-    break;
-
-  case 117:
-
-/* Line 1464 of yacc.c  */
-#line 798 "glsl_parser.ypp"
-    {
-          (yyval.function) = (yyvsp[(1) - (3)].function);
-          (yyval.function)->parameters.push_tail(& (yyvsp[(3) - (3)].parameter_declarator)->link);
-       ;}
-    break;
-
-  case 118:
-
-/* Line 1464 of yacc.c  */
-#line 806 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.function) = new(ctx) ast_function();
-          (yyval.function)->set_location(yylloc);
-          (yyval.function)->return_type = (yyvsp[(1) - (3)].fully_specified_type);
-          (yyval.function)->identifier = (yyvsp[(2) - (3)].identifier);
-
-          state->symbols->add_function(new(state) ir_function((yyvsp[(2) - (3)].identifier)));
-          state->symbols->push_scope();
-       ;}
-    break;
-
-  case 119:
-
-/* Line 1464 of yacc.c  */
-#line 820 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
-          (yyval.parameter_declarator)->set_location(yylloc);
-          (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
-          (yyval.parameter_declarator)->type->set_location(yylloc);
-          (yyval.parameter_declarator)->type->specifier = (yyvsp[(1) - (2)].type_specifier);
-          (yyval.parameter_declarator)->identifier = (yyvsp[(2) - (2)].identifier);
-       ;}
-    break;
-
-  case 120:
-
-/* Line 1464 of yacc.c  */
-#line 830 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
-          (yyval.parameter_declarator)->set_location(yylloc);
-          (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
-          (yyval.parameter_declarator)->type->set_location(yylloc);
-          (yyval.parameter_declarator)->type->specifier = (yyvsp[(1) - (5)].type_specifier);
-          (yyval.parameter_declarator)->identifier = (yyvsp[(2) - (5)].identifier);
-          (yyval.parameter_declarator)->is_array = true;
-          (yyval.parameter_declarator)->array_size = (yyvsp[(4) - (5)].expression);
-       ;}
-    break;
-
-  case 121:
-
-/* Line 1464 of yacc.c  */
-#line 845 "glsl_parser.ypp"
-    {
-          (yyvsp[(1) - (3)].type_qualifier).flags.i |= (yyvsp[(2) - (3)].type_qualifier).flags.i;
-
-          (yyval.parameter_declarator) = (yyvsp[(3) - (3)].parameter_declarator);
-          (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (3)].type_qualifier);
-       ;}
-    break;
-
-  case 122:
-
-/* Line 1464 of yacc.c  */
-#line 852 "glsl_parser.ypp"
-    {
-          (yyval.parameter_declarator) = (yyvsp[(2) - (2)].parameter_declarator);
-          (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].type_qualifier);
-       ;}
-    break;
-
-  case 123:
-
-/* Line 1464 of yacc.c  */
-#line 857 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyvsp[(1) - (3)].type_qualifier).flags.i |= (yyvsp[(2) - (3)].type_qualifier).flags.i;
-
-          (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
-          (yyval.parameter_declarator)->set_location(yylloc);
-          (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
-          (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (3)].type_qualifier);
-          (yyval.parameter_declarator)->type->specifier = (yyvsp[(3) - (3)].type_specifier);
-       ;}
-    break;
-
-  case 124:
-
-/* Line 1464 of yacc.c  */
-#line 868 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
-          (yyval.parameter_declarator)->set_location(yylloc);
-          (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
-          (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].type_qualifier);
-          (yyval.parameter_declarator)->type->specifier = (yyvsp[(2) - (2)].type_specifier);
-       ;}
-    break;
-
-  case 125:
-
-/* Line 1464 of yacc.c  */
-#line 880 "glsl_parser.ypp"
-    {
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-       ;}
-    break;
-
-  case 126:
-
-/* Line 1464 of yacc.c  */
-#line 884 "glsl_parser.ypp"
-    {
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-          (yyval.type_qualifier).flags.q.in = 1;
-       ;}
-    break;
-
-  case 127:
-
-/* Line 1464 of yacc.c  */
-#line 889 "glsl_parser.ypp"
-    {
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-          (yyval.type_qualifier).flags.q.out = 1;
-       ;}
-    break;
-
-  case 128:
-
-/* Line 1464 of yacc.c  */
-#line 894 "glsl_parser.ypp"
-    {
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-          (yyval.type_qualifier).flags.q.in = 1;
-          (yyval.type_qualifier).flags.q.out = 1;
-       ;}
-    break;
-
-  case 131:
-
-/* Line 1464 of yacc.c  */
-#line 908 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (3)].identifier), false, NULL, NULL);
-          decl->set_location(yylloc);
-
-          (yyval.declarator_list) = (yyvsp[(1) - (3)].declarator_list);
-          (yyval.declarator_list)->declarations.push_tail(&decl->link);
-          state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (3)].identifier), ir_var_auto));
-       ;}
-    break;
-
-  case 132:
-
-/* Line 1464 of yacc.c  */
-#line 918 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), true, NULL, NULL);
-          decl->set_location(yylloc);
-
-          (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list);
-          (yyval.declarator_list)->declarations.push_tail(&decl->link);
-          state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (5)].identifier), ir_var_auto));
-       ;}
-    break;
-
-  case 133:
-
-/* Line 1464 of yacc.c  */
-#line 928 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (6)].identifier), true, (yyvsp[(5) - (6)].expression), NULL);
-          decl->set_location(yylloc);
-
-          (yyval.declarator_list) = (yyvsp[(1) - (6)].declarator_list);
-          (yyval.declarator_list)->declarations.push_tail(&decl->link);
-          state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (6)].identifier), ir_var_auto));
-       ;}
-    break;
-
-  case 134:
-
-/* Line 1464 of yacc.c  */
-#line 938 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (7)].identifier), true, NULL, (yyvsp[(7) - (7)].expression));
-          decl->set_location(yylloc);
-
-          (yyval.declarator_list) = (yyvsp[(1) - (7)].declarator_list);
-          (yyval.declarator_list)->declarations.push_tail(&decl->link);
-          state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (7)].identifier), ir_var_auto));
-       ;}
-    break;
-
-  case 135:
-
-/* Line 1464 of yacc.c  */
-#line 948 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (8)].identifier), true, (yyvsp[(5) - (8)].expression), (yyvsp[(8) - (8)].expression));
-          decl->set_location(yylloc);
-
-          (yyval.declarator_list) = (yyvsp[(1) - (8)].declarator_list);
-          (yyval.declarator_list)->declarations.push_tail(&decl->link);
-          state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (8)].identifier), ir_var_auto));
-       ;}
-    break;
-
-  case 136:
-
-/* Line 1464 of yacc.c  */
-#line 958 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), false, NULL, (yyvsp[(5) - (5)].expression));
-          decl->set_location(yylloc);
-
-          (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list);
-          (yyval.declarator_list)->declarations.push_tail(&decl->link);
-          state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (5)].identifier), ir_var_auto));
-       ;}
-    break;
-
-  case 137:
-
-/* Line 1464 of yacc.c  */
-#line 972 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          if ((yyvsp[(1) - (1)].fully_specified_type)->specifier->type_specifier != ast_struct) {
-             _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "empty declaration list\n");
-             YYERROR;
-          } else {
-             (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (1)].fully_specified_type));
-             (yyval.declarator_list)->set_location(yylloc);
-          }
-       ;}
-    break;
-
-  case 138:
-
-/* Line 1464 of yacc.c  */
-#line 983 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL);
-
-          (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (2)].fully_specified_type));
-          (yyval.declarator_list)->set_location(yylloc);
-          (yyval.declarator_list)->declarations.push_tail(&decl->link);
-       ;}
-    break;
-
-  case 139:
-
-/* Line 1464 of yacc.c  */
-#line 992 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), true, NULL, NULL);
-
-          (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (4)].fully_specified_type));
-          (yyval.declarator_list)->set_location(yylloc);
-          (yyval.declarator_list)->declarations.push_tail(&decl->link);
-       ;}
-    break;
-
-  case 140:
-
-/* Line 1464 of yacc.c  */
-#line 1001 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (5)].identifier), true, (yyvsp[(4) - (5)].expression), NULL);
-
-          (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (5)].fully_specified_type));
-          (yyval.declarator_list)->set_location(yylloc);
-          (yyval.declarator_list)->declarations.push_tail(&decl->link);
-       ;}
-    break;
-
-  case 141:
-
-/* Line 1464 of yacc.c  */
-#line 1010 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (6)].identifier), true, NULL, (yyvsp[(6) - (6)].expression));
-
-          (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (6)].fully_specified_type));
-          (yyval.declarator_list)->set_location(yylloc);
-          (yyval.declarator_list)->declarations.push_tail(&decl->link);
-       ;}
-    break;
-
-  case 142:
-
-/* Line 1464 of yacc.c  */
-#line 1019 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (7)].identifier), true, (yyvsp[(4) - (7)].expression), (yyvsp[(7) - (7)].expression));
-
-          (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (7)].fully_specified_type));
-          (yyval.declarator_list)->set_location(yylloc);
-          (yyval.declarator_list)->declarations.push_tail(&decl->link);
-       ;}
-    break;
-
-  case 143:
-
-/* Line 1464 of yacc.c  */
-#line 1028 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression));
-
-          (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (4)].fully_specified_type));
-          (yyval.declarator_list)->set_location(yylloc);
-          (yyval.declarator_list)->declarations.push_tail(&decl->link);
-       ;}
-    break;
-
-  case 144:
-
-/* Line 1464 of yacc.c  */
-#line 1037 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL);
-
-          (yyval.declarator_list) = new(ctx) ast_declarator_list(NULL);
-          (yyval.declarator_list)->set_location(yylloc);
-          (yyval.declarator_list)->invariant = true;
-
-          (yyval.declarator_list)->declarations.push_tail(&decl->link);
-       ;}
-    break;
-
-  case 145:
-
-/* Line 1464 of yacc.c  */
-#line 1051 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
-          (yyval.fully_specified_type)->set_location(yylloc);
-          (yyval.fully_specified_type)->specifier = (yyvsp[(1) - (1)].type_specifier);
-       ;}
-    break;
-
-  case 146:
-
-/* Line 1464 of yacc.c  */
-#line 1058 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
-          (yyval.fully_specified_type)->set_location(yylloc);
-          (yyval.fully_specified_type)->qualifier = (yyvsp[(1) - (2)].type_qualifier);
-          (yyval.fully_specified_type)->specifier = (yyvsp[(2) - (2)].type_specifier);
-       ;}
-    break;
-
-  case 147:
-
-/* Line 1464 of yacc.c  */
-#line 1069 "glsl_parser.ypp"
-    {
-         (yyval.type_qualifier) = (yyvsp[(3) - (4)].type_qualifier);
-       ;}
-    break;
-
-  case 149:
-
-/* Line 1464 of yacc.c  */
-#line 1077 "glsl_parser.ypp"
-    {
-          if (((yyvsp[(1) - (3)].type_qualifier).flags.i & (yyvsp[(3) - (3)].type_qualifier).flags.i) != 0) {
-             _mesa_glsl_error(& (yylsp[(3) - (3)]), state,
-                              "duplicate layout qualifiers used\n");
-             YYERROR;
-          }
-
-          (yyval.type_qualifier).flags.i = (yyvsp[(1) - (3)].type_qualifier).flags.i | (yyvsp[(3) - (3)].type_qualifier).flags.i;
-
-          if ((yyvsp[(1) - (3)].type_qualifier).flags.q.explicit_location)
-             (yyval.type_qualifier).location = (yyvsp[(1) - (3)].type_qualifier).location;
-
-          if ((yyvsp[(3) - (3)].type_qualifier).flags.q.explicit_location)
-             (yyval.type_qualifier).location = (yyvsp[(3) - (3)].type_qualifier).location;
-       ;}
-    break;
-
-  case 150:
-
-/* Line 1464 of yacc.c  */
-#line 1096 "glsl_parser.ypp"
-    {
-          bool got_one = false;
-
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-
-          /* Layout qualifiers for ARB_fragment_coord_conventions. */
-          if (!got_one && state->ARB_fragment_coord_conventions_enable) {
-             if (strcmp((yyvsp[(1) - (1)].identifier), "origin_upper_left") == 0) {
-                got_one = true;
-                (yyval.type_qualifier).flags.q.origin_upper_left = 1;
-             } else if (strcmp((yyvsp[(1) - (1)].identifier), "pixel_center_integer") == 0) {
-                got_one = true;
-                (yyval.type_qualifier).flags.q.pixel_center_integer = 1;
-             }
-
-             if (got_one && state->ARB_fragment_coord_conventions_warn) {
-                _mesa_glsl_warning(& (yylsp[(1) - (1)]), state,
-                                   "GL_ARB_fragment_coord_conventions layout "
-                                   "identifier `%s' used\n", (yyvsp[(1) - (1)].identifier));
-             }
-          }
-
-          /* Layout qualifiers for AMD_conservative_depth. */
-          if (!got_one && state->AMD_conservative_depth_enable) {
-             if (strcmp((yyvsp[(1) - (1)].identifier), "depth_any") == 0) {
-                got_one = true;
-                (yyval.type_qualifier).flags.q.depth_any = 1;
-             } else if (strcmp((yyvsp[(1) - (1)].identifier), "depth_greater") == 0) {
-                got_one = true;
-                (yyval.type_qualifier).flags.q.depth_greater = 1;
-             } else if (strcmp((yyvsp[(1) - (1)].identifier), "depth_less") == 0) {
-                got_one = true;
-                (yyval.type_qualifier).flags.q.depth_less = 1;
-             } else if (strcmp((yyvsp[(1) - (1)].identifier), "depth_unchanged") == 0) {
-                got_one = true;
-                (yyval.type_qualifier).flags.q.depth_unchanged = 1;
-             }
-       
-             if (got_one && state->AMD_conservative_depth_warn) {
-                _mesa_glsl_warning(& (yylsp[(1) - (1)]), state,
-                                   "GL_AMD_conservative_depth "
-                                   "layout qualifier `%s' is used\n", (yyvsp[(1) - (1)].identifier));
-             }
-          }
-
-          if (!got_one) {
-             _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "unrecognized layout identifier "
-                              "`%s'\n", (yyvsp[(1) - (1)].identifier));
-             YYERROR;
-          }
-       ;}
-    break;
-
-  case 151:
-
-/* Line 1464 of yacc.c  */
-#line 1148 "glsl_parser.ypp"
-    {
-          bool got_one = false;
-
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-
-          if (state->ARB_explicit_attrib_location_enable) {
-             /* FINISHME: Handle 'index' once GL_ARB_blend_func_exteneded and
-              * FINISHME: GLSL 1.30 (or later) are supported.
-              */
-             if (strcmp("location", (yyvsp[(1) - (3)].identifier)) == 0) {
-                got_one = true;
-
-                (yyval.type_qualifier).flags.q.explicit_location = 1;
-
-                if ((yyvsp[(3) - (3)].n) >= 0) {
-                   (yyval.type_qualifier).location = (yyvsp[(3) - (3)].n);
-                } else {
-                   _mesa_glsl_error(& (yylsp[(3) - (3)]), state,
-                                    "invalid location %d specified\n", (yyvsp[(3) - (3)].n));
-                   YYERROR;
-                }
-             }
-          }
-
-          /* If the identifier didn't match any known layout identifiers,
-           * emit an error.
-           */
-          if (!got_one) {
-             _mesa_glsl_error(& (yylsp[(1) - (3)]), state, "unrecognized layout identifier "
-                              "`%s'\n", (yyvsp[(1) - (3)].identifier));
-             YYERROR;
-          } else if (state->ARB_explicit_attrib_location_warn) {
-             _mesa_glsl_warning(& (yylsp[(1) - (3)]), state,
-                                "GL_ARB_explicit_attrib_location layout "
-                                "identifier `%s' used\n", (yyvsp[(1) - (3)].identifier));
-          }
-       ;}
-    break;
-
-  case 152:
-
-/* Line 1464 of yacc.c  */
-#line 1189 "glsl_parser.ypp"
-    {
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-          (yyval.type_qualifier).flags.q.smooth = 1;
-       ;}
-    break;
-
-  case 153:
-
-/* Line 1464 of yacc.c  */
-#line 1194 "glsl_parser.ypp"
-    {
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-          (yyval.type_qualifier).flags.q.flat = 1;
-       ;}
-    break;
-
-  case 154:
-
-/* Line 1464 of yacc.c  */
-#line 1199 "glsl_parser.ypp"
-    {
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-          (yyval.type_qualifier).flags.q.noperspective = 1;
-       ;}
-    break;
-
-  case 155:
-
-/* Line 1464 of yacc.c  */
-#line 1207 "glsl_parser.ypp"
-    {
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-          (yyval.type_qualifier).flags.q.constant = 1;
-       ;}
-    break;
-
-  case 158:
-
-/* Line 1464 of yacc.c  */
-#line 1217 "glsl_parser.ypp"
-    {
-          (yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier);
-          (yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).flags.i;
-       ;}
-    break;
-
-  case 160:
-
-/* Line 1464 of yacc.c  */
-#line 1223 "glsl_parser.ypp"
-    {
-          (yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier);
-          (yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).flags.i;
-       ;}
-    break;
-
-  case 161:
-
-/* Line 1464 of yacc.c  */
-#line 1228 "glsl_parser.ypp"
-    {
-          (yyval.type_qualifier) = (yyvsp[(2) - (2)].type_qualifier);
-          (yyval.type_qualifier).flags.q.invariant = 1;
-       ;}
-    break;
-
-  case 162:
-
-/* Line 1464 of yacc.c  */
-#line 1233 "glsl_parser.ypp"
-    {
-          (yyval.type_qualifier) = (yyvsp[(2) - (3)].type_qualifier);
-          (yyval.type_qualifier).flags.i |= (yyvsp[(3) - (3)].type_qualifier).flags.i;
-          (yyval.type_qualifier).flags.q.invariant = 1;
-       ;}
-    break;
-
-  case 163:
-
-/* Line 1464 of yacc.c  */
-#line 1239 "glsl_parser.ypp"
-    {
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-          (yyval.type_qualifier).flags.q.invariant = 1;
-       ;}
-    break;
-
-  case 164:
-
-/* Line 1464 of yacc.c  */
-#line 1247 "glsl_parser.ypp"
-    {
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-          (yyval.type_qualifier).flags.q.constant = 1;
-       ;}
-    break;
-
-  case 165:
-
-/* Line 1464 of yacc.c  */
-#line 1252 "glsl_parser.ypp"
-    {
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-          (yyval.type_qualifier).flags.q.attribute = 1;
-       ;}
-    break;
-
-  case 166:
-
-/* Line 1464 of yacc.c  */
-#line 1257 "glsl_parser.ypp"
-    {
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-          (yyval.type_qualifier).flags.q.varying = 1;
-       ;}
-    break;
-
-  case 167:
-
-/* Line 1464 of yacc.c  */
-#line 1262 "glsl_parser.ypp"
-    {
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-          (yyval.type_qualifier).flags.q.centroid = 1;
-          (yyval.type_qualifier).flags.q.varying = 1;
-       ;}
-    break;
-
-  case 168:
-
-/* Line 1464 of yacc.c  */
-#line 1268 "glsl_parser.ypp"
-    {
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-          (yyval.type_qualifier).flags.q.in = 1;
-       ;}
-    break;
-
-  case 169:
-
-/* Line 1464 of yacc.c  */
-#line 1273 "glsl_parser.ypp"
-    {
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-          (yyval.type_qualifier).flags.q.out = 1;
-       ;}
-    break;
-
-  case 170:
-
-/* Line 1464 of yacc.c  */
-#line 1278 "glsl_parser.ypp"
-    {
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-          (yyval.type_qualifier).flags.q.centroid = 1; (yyval.type_qualifier).flags.q.in = 1;
-       ;}
-    break;
-
-  case 171:
-
-/* Line 1464 of yacc.c  */
-#line 1283 "glsl_parser.ypp"
-    {
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-          (yyval.type_qualifier).flags.q.centroid = 1; (yyval.type_qualifier).flags.q.out = 1;
-       ;}
-    break;
-
-  case 172:
-
-/* Line 1464 of yacc.c  */
-#line 1288 "glsl_parser.ypp"
-    {
-          memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
-          (yyval.type_qualifier).flags.q.uniform = 1;
-       ;}
-    break;
-
-  case 173:
-
-/* Line 1464 of yacc.c  */
-#line 1296 "glsl_parser.ypp"
-    {
-          (yyval.type_specifier) = (yyvsp[(1) - (1)].type_specifier);
-       ;}
-    break;
-
-  case 174:
-
-/* Line 1464 of yacc.c  */
-#line 1300 "glsl_parser.ypp"
-    {
-          (yyval.type_specifier) = (yyvsp[(2) - (2)].type_specifier);
-          (yyval.type_specifier)->precision = (yyvsp[(1) - (2)].n);
-       ;}
-    break;
-
-  case 176:
-
-/* Line 1464 of yacc.c  */
-#line 1309 "glsl_parser.ypp"
-    {
-          (yyval.type_specifier) = (yyvsp[(1) - (3)].type_specifier);
-          (yyval.type_specifier)->is_array = true;
-          (yyval.type_specifier)->array_size = NULL;
-       ;}
-    break;
-
-  case 177:
-
-/* Line 1464 of yacc.c  */
-#line 1315 "glsl_parser.ypp"
-    {
-          (yyval.type_specifier) = (yyvsp[(1) - (4)].type_specifier);
-          (yyval.type_specifier)->is_array = true;
-          (yyval.type_specifier)->array_size = (yyvsp[(3) - (4)].expression);
-       ;}
-    break;
-
-  case 178:
-
-/* Line 1464 of yacc.c  */
-#line 1324 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].n));
-          (yyval.type_specifier)->set_location(yylloc);
-       ;}
-    break;
-
-  case 179:
-
-/* Line 1464 of yacc.c  */
-#line 1330 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].struct_specifier));
-          (yyval.type_specifier)->set_location(yylloc);
-       ;}
-    break;
-
-  case 180:
-
-/* Line 1464 of yacc.c  */
-#line 1336 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].identifier));
-          (yyval.type_specifier)->set_location(yylloc);
-       ;}
-    break;
-
-  case 181:
-
-/* Line 1464 of yacc.c  */
-#line 1344 "glsl_parser.ypp"
-    { (yyval.n) = ast_void; ;}
-    break;
-
-  case 182:
-
-/* Line 1464 of yacc.c  */
-#line 1345 "glsl_parser.ypp"
-    { (yyval.n) = ast_float; ;}
-    break;
-
-  case 183:
-
-/* Line 1464 of yacc.c  */
-#line 1346 "glsl_parser.ypp"
-    { (yyval.n) = ast_int; ;}
-    break;
-
-  case 184:
-
-/* Line 1464 of yacc.c  */
-#line 1347 "glsl_parser.ypp"
-    { (yyval.n) = ast_uint; ;}
-    break;
-
-  case 185:
-
-/* Line 1464 of yacc.c  */
-#line 1348 "glsl_parser.ypp"
-    { (yyval.n) = ast_bool; ;}
-    break;
-
-  case 186:
-
-/* Line 1464 of yacc.c  */
-#line 1349 "glsl_parser.ypp"
-    { (yyval.n) = ast_vec2; ;}
-    break;
-
-  case 187:
-
-/* Line 1464 of yacc.c  */
-#line 1350 "glsl_parser.ypp"
-    { (yyval.n) = ast_vec3; ;}
-    break;
-
-  case 188:
-
-/* Line 1464 of yacc.c  */
-#line 1351 "glsl_parser.ypp"
-    { (yyval.n) = ast_vec4; ;}
-    break;
-
-  case 189:
-
-/* Line 1464 of yacc.c  */
-#line 1352 "glsl_parser.ypp"
-    { (yyval.n) = ast_bvec2; ;}
-    break;
-
-  case 190:
-
-/* Line 1464 of yacc.c  */
-#line 1353 "glsl_parser.ypp"
-    { (yyval.n) = ast_bvec3; ;}
-    break;
-
-  case 191:
-
-/* Line 1464 of yacc.c  */
-#line 1354 "glsl_parser.ypp"
-    { (yyval.n) = ast_bvec4; ;}
-    break;
-
-  case 192:
-
-/* Line 1464 of yacc.c  */
-#line 1355 "glsl_parser.ypp"
-    { (yyval.n) = ast_ivec2; ;}
-    break;
-
-  case 193:
-
-/* Line 1464 of yacc.c  */
-#line 1356 "glsl_parser.ypp"
-    { (yyval.n) = ast_ivec3; ;}
-    break;
-
-  case 194:
-
-/* Line 1464 of yacc.c  */
-#line 1357 "glsl_parser.ypp"
-    { (yyval.n) = ast_ivec4; ;}
-    break;
-
-  case 195:
-
-/* Line 1464 of yacc.c  */
-#line 1358 "glsl_parser.ypp"
-    { (yyval.n) = ast_uvec2; ;}
-    break;
-
-  case 196:
-
-/* Line 1464 of yacc.c  */
-#line 1359 "glsl_parser.ypp"
-    { (yyval.n) = ast_uvec3; ;}
-    break;
-
-  case 197:
-
-/* Line 1464 of yacc.c  */
-#line 1360 "glsl_parser.ypp"
-    { (yyval.n) = ast_uvec4; ;}
-    break;
-
-  case 198:
-
-/* Line 1464 of yacc.c  */
-#line 1361 "glsl_parser.ypp"
-    { (yyval.n) = ast_mat2; ;}
-    break;
-
-  case 199:
-
-/* Line 1464 of yacc.c  */
-#line 1362 "glsl_parser.ypp"
-    { (yyval.n) = ast_mat2x3; ;}
-    break;
-
-  case 200:
-
-/* Line 1464 of yacc.c  */
-#line 1363 "glsl_parser.ypp"
-    { (yyval.n) = ast_mat2x4; ;}
-    break;
-
-  case 201:
-
-/* Line 1464 of yacc.c  */
-#line 1364 "glsl_parser.ypp"
-    { (yyval.n) = ast_mat3x2; ;}
-    break;
-
-  case 202:
-
-/* Line 1464 of yacc.c  */
-#line 1365 "glsl_parser.ypp"
-    { (yyval.n) = ast_mat3; ;}
-    break;
-
-  case 203:
-
-/* Line 1464 of yacc.c  */
-#line 1366 "glsl_parser.ypp"
-    { (yyval.n) = ast_mat3x4; ;}
-    break;
-
-  case 204:
-
-/* Line 1464 of yacc.c  */
-#line 1367 "glsl_parser.ypp"
-    { (yyval.n) = ast_mat4x2; ;}
-    break;
-
-  case 205:
-
-/* Line 1464 of yacc.c  */
-#line 1368 "glsl_parser.ypp"
-    { (yyval.n) = ast_mat4x3; ;}
-    break;
-
-  case 206:
-
-/* Line 1464 of yacc.c  */
-#line 1369 "glsl_parser.ypp"
-    { (yyval.n) = ast_mat4; ;}
-    break;
-
-  case 207:
-
-/* Line 1464 of yacc.c  */
-#line 1370 "glsl_parser.ypp"
-    { (yyval.n) = ast_sampler1d; ;}
-    break;
-
-  case 208:
-
-/* Line 1464 of yacc.c  */
-#line 1371 "glsl_parser.ypp"
-    { (yyval.n) = ast_sampler2d; ;}
-    break;
-
-  case 209:
-
-/* Line 1464 of yacc.c  */
-#line 1372 "glsl_parser.ypp"
-    { (yyval.n) = ast_sampler2drect; ;}
-    break;
-
-  case 210:
-
-/* Line 1464 of yacc.c  */
-#line 1373 "glsl_parser.ypp"
-    { (yyval.n) = ast_sampler3d; ;}
-    break;
-
-  case 211:
-
-/* Line 1464 of yacc.c  */
-#line 1374 "glsl_parser.ypp"
-    { (yyval.n) = ast_samplercube; ;}
-    break;
-
-  case 212:
-
-/* Line 1464 of yacc.c  */
-#line 1375 "glsl_parser.ypp"
-    { (yyval.n) = ast_sampler1dshadow; ;}
-    break;
-
-  case 213:
-
-/* Line 1464 of yacc.c  */
-#line 1376 "glsl_parser.ypp"
-    { (yyval.n) = ast_sampler2dshadow; ;}
-    break;
-
-  case 214:
-
-/* Line 1464 of yacc.c  */
-#line 1377 "glsl_parser.ypp"
-    { (yyval.n) = ast_sampler2drectshadow; ;}
-    break;
-
-  case 215:
-
-/* Line 1464 of yacc.c  */
-#line 1378 "glsl_parser.ypp"
-    { (yyval.n) = ast_samplercubeshadow; ;}
-    break;
-
-  case 216:
-
-/* Line 1464 of yacc.c  */
-#line 1379 "glsl_parser.ypp"
-    { (yyval.n) = ast_sampler1darray; ;}
-    break;
-
-  case 217:
-
-/* Line 1464 of yacc.c  */
-#line 1380 "glsl_parser.ypp"
-    { (yyval.n) = ast_sampler2darray; ;}
-    break;
-
-  case 218:
-
-/* Line 1464 of yacc.c  */
-#line 1381 "glsl_parser.ypp"
-    { (yyval.n) = ast_sampler1darrayshadow; ;}
-    break;
-
-  case 219:
-
-/* Line 1464 of yacc.c  */
-#line 1382 "glsl_parser.ypp"
-    { (yyval.n) = ast_sampler2darrayshadow; ;}
-    break;
-
-  case 220:
-
-/* Line 1464 of yacc.c  */
-#line 1383 "glsl_parser.ypp"
-    { (yyval.n) = ast_isampler1d; ;}
-    break;
-
-  case 221:
-
-/* Line 1464 of yacc.c  */
-#line 1384 "glsl_parser.ypp"
-    { (yyval.n) = ast_isampler2d; ;}
-    break;
-
-  case 222:
-
-/* Line 1464 of yacc.c  */
-#line 1385 "glsl_parser.ypp"
-    { (yyval.n) = ast_isampler3d; ;}
-    break;
-
-  case 223:
-
-/* Line 1464 of yacc.c  */
-#line 1386 "glsl_parser.ypp"
-    { (yyval.n) = ast_isamplercube; ;}
-    break;
-
-  case 224:
-
-/* Line 1464 of yacc.c  */
-#line 1387 "glsl_parser.ypp"
-    { (yyval.n) = ast_isampler1darray; ;}
-    break;
-
-  case 225:
-
-/* Line 1464 of yacc.c  */
-#line 1388 "glsl_parser.ypp"
-    { (yyval.n) = ast_isampler2darray; ;}
-    break;
-
-  case 226:
-
-/* Line 1464 of yacc.c  */
-#line 1389 "glsl_parser.ypp"
-    { (yyval.n) = ast_usampler1d; ;}
-    break;
-
-  case 227:
-
-/* Line 1464 of yacc.c  */
-#line 1390 "glsl_parser.ypp"
-    { (yyval.n) = ast_usampler2d; ;}
-    break;
-
-  case 228:
-
-/* Line 1464 of yacc.c  */
-#line 1391 "glsl_parser.ypp"
-    { (yyval.n) = ast_usampler3d; ;}
-    break;
-
-  case 229:
-
-/* Line 1464 of yacc.c  */
-#line 1392 "glsl_parser.ypp"
-    { (yyval.n) = ast_usamplercube; ;}
-    break;
-
-  case 230:
-
-/* Line 1464 of yacc.c  */
-#line 1393 "glsl_parser.ypp"
-    { (yyval.n) = ast_usampler1darray; ;}
-    break;
-
-  case 231:
-
-/* Line 1464 of yacc.c  */
-#line 1394 "glsl_parser.ypp"
-    { (yyval.n) = ast_usampler2darray; ;}
-    break;
-
-  case 232:
-
-/* Line 1464 of yacc.c  */
-#line 1398 "glsl_parser.ypp"
-    {
-                    if (!state->es_shader && state->language_version < 130)
-                       _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
-                                        "precision qualifier forbidden "
-                                        "in %s (1.30 or later "
-                                        "required)\n",
-                                        state->version_string);
-
-                    (yyval.n) = ast_precision_high;
-                 ;}
-    break;
-
-  case 233:
-
-/* Line 1464 of yacc.c  */
-#line 1408 "glsl_parser.ypp"
-    {
-                    if (!state->es_shader && state->language_version < 130)
-                       _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
-                                        "precision qualifier forbidden "
-                                        "in %s (1.30 or later "
-                                        "required)\n",
-                                        state->version_string);
-
-                    (yyval.n) = ast_precision_medium;
-                 ;}
-    break;
-
-  case 234:
-
-/* Line 1464 of yacc.c  */
-#line 1418 "glsl_parser.ypp"
-    {
-                    if (!state->es_shader && state->language_version < 130)
-                       _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
-                                        "precision qualifier forbidden "
-                                        "in %s (1.30 or later "
-                                        "required)\n",
-                                        state->version_string);
-
-                    (yyval.n) = ast_precision_low;
-                 ;}
-    break;
-
-  case 235:
-
-/* Line 1464 of yacc.c  */
-#line 1432 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.struct_specifier) = new(ctx) ast_struct_specifier((yyvsp[(2) - (5)].identifier), (yyvsp[(4) - (5)].node));
-          (yyval.struct_specifier)->set_location(yylloc);
-          state->symbols->add_type((yyvsp[(2) - (5)].identifier), glsl_type::void_type);
-       ;}
-    break;
-
-  case 236:
-
-/* Line 1464 of yacc.c  */
-#line 1439 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.struct_specifier) = new(ctx) ast_struct_specifier(NULL, (yyvsp[(3) - (4)].node));
-          (yyval.struct_specifier)->set_location(yylloc);
-       ;}
-    break;
-
-  case 237:
-
-/* Line 1464 of yacc.c  */
-#line 1448 "glsl_parser.ypp"
-    {
-          (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].declarator_list);
-          (yyvsp[(1) - (1)].declarator_list)->link.self_link();
-       ;}
-    break;
-
-  case 238:
-
-/* Line 1464 of yacc.c  */
-#line 1453 "glsl_parser.ypp"
-    {
-          (yyval.node) = (ast_node *) (yyvsp[(1) - (2)].node);
-          (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].declarator_list)->link);
-       ;}
-    break;
-
-  case 239:
-
-/* Line 1464 of yacc.c  */
-#line 1461 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          ast_fully_specified_type *type = new(ctx) ast_fully_specified_type();
-          type->set_location(yylloc);
-
-          type->specifier = (yyvsp[(1) - (3)].type_specifier);
-          (yyval.declarator_list) = new(ctx) ast_declarator_list(type);
-          (yyval.declarator_list)->set_location(yylloc);
-
-          (yyval.declarator_list)->declarations.push_degenerate_list_at_head(& (yyvsp[(2) - (3)].declaration)->link);
-       ;}
-    break;
-
-  case 240:
-
-/* Line 1464 of yacc.c  */
-#line 1476 "glsl_parser.ypp"
-    {
-          (yyval.declaration) = (yyvsp[(1) - (1)].declaration);
-          (yyvsp[(1) - (1)].declaration)->link.self_link();
-       ;}
-    break;
-
-  case 241:
-
-/* Line 1464 of yacc.c  */
-#line 1481 "glsl_parser.ypp"
-    {
-          (yyval.declaration) = (yyvsp[(1) - (3)].declaration);
-          (yyval.declaration)->link.insert_before(& (yyvsp[(3) - (3)].declaration)->link);
-       ;}
-    break;
-
-  case 242:
-
-/* Line 1464 of yacc.c  */
-#line 1489 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (1)].identifier), false, NULL, NULL);
-          (yyval.declaration)->set_location(yylloc);
-          state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(1) - (1)].identifier), ir_var_auto));
-       ;}
-    break;
-
-  case 243:
-
-/* Line 1464 of yacc.c  */
-#line 1496 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (4)].identifier), true, (yyvsp[(3) - (4)].expression), NULL);
-          (yyval.declaration)->set_location(yylloc);
-       ;}
-    break;
-
-  case 246:
-
-/* Line 1464 of yacc.c  */
-#line 1514 "glsl_parser.ypp"
-    { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
-    break;
-
-  case 251:
-
-/* Line 1464 of yacc.c  */
-#line 1522 "glsl_parser.ypp"
-    { (yyval.node) = NULL; ;}
-    break;
-
-  case 252:
-
-/* Line 1464 of yacc.c  */
-#line 1523 "glsl_parser.ypp"
-    { (yyval.node) = NULL; ;}
-    break;
-
-  case 255:
-
-/* Line 1464 of yacc.c  */
-#line 1530 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.compound_statement) = new(ctx) ast_compound_statement(true, NULL);
-          (yyval.compound_statement)->set_location(yylloc);
-       ;}
-    break;
-
-  case 256:
-
-/* Line 1464 of yacc.c  */
-#line 1536 "glsl_parser.ypp"
-    {
-          state->symbols->push_scope();
-       ;}
-    break;
-
-  case 257:
-
-/* Line 1464 of yacc.c  */
-#line 1540 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (yyvsp[(3) - (4)].node));
-          (yyval.compound_statement)->set_location(yylloc);
-          state->symbols->pop_scope();
-       ;}
-    break;
-
-  case 258:
-
-/* Line 1464 of yacc.c  */
-#line 1549 "glsl_parser.ypp"
-    { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
-    break;
-
-  case 260:
-
-/* Line 1464 of yacc.c  */
-#line 1555 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.compound_statement) = new(ctx) ast_compound_statement(false, NULL);
-          (yyval.compound_statement)->set_location(yylloc);
-       ;}
-    break;
-
-  case 261:
-
-/* Line 1464 of yacc.c  */
-#line 1561 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.compound_statement) = new(ctx) ast_compound_statement(false, (yyvsp[(2) - (3)].node));
-          (yyval.compound_statement)->set_location(yylloc);
-       ;}
-    break;
-
-  case 262:
-
-/* Line 1464 of yacc.c  */
-#line 1570 "glsl_parser.ypp"
-    {
-          if ((yyvsp[(1) - (1)].node) == NULL) {
-             _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "<nil> statement\n");
-             assert((yyvsp[(1) - (1)].node) != NULL);
-          }
-
-          (yyval.node) = (yyvsp[(1) - (1)].node);
-          (yyval.node)->link.self_link();
-       ;}
-    break;
-
-  case 263:
-
-/* Line 1464 of yacc.c  */
-#line 1580 "glsl_parser.ypp"
-    {
-          if ((yyvsp[(2) - (2)].node) == NULL) {
-             _mesa_glsl_error(& (yylsp[(2) - (2)]), state, "<nil> statement\n");
-             assert((yyvsp[(2) - (2)].node) != NULL);
-          }
-          (yyval.node) = (yyvsp[(1) - (2)].node);
-          (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].node)->link);
-       ;}
-    break;
-
-  case 264:
-
-/* Line 1464 of yacc.c  */
-#line 1592 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.node) = new(ctx) ast_expression_statement(NULL);
-          (yyval.node)->set_location(yylloc);
-       ;}
-    break;
-
-  case 265:
-
-/* Line 1464 of yacc.c  */
-#line 1598 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.node) = new(ctx) ast_expression_statement((yyvsp[(1) - (2)].expression));
-          (yyval.node)->set_location(yylloc);
-       ;}
-    break;
-
-  case 266:
-
-/* Line 1464 of yacc.c  */
-#line 1607 "glsl_parser.ypp"
-    {
-          (yyval.node) = new(state) ast_selection_statement((yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].selection_rest_statement).then_statement,
-                                                  (yyvsp[(5) - (5)].selection_rest_statement).else_statement);
-          (yyval.node)->set_location(yylloc);
-       ;}
-    break;
-
-  case 267:
-
-/* Line 1464 of yacc.c  */
-#line 1616 "glsl_parser.ypp"
-    {
-          (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (3)].node);
-          (yyval.selection_rest_statement).else_statement = (yyvsp[(3) - (3)].node);
-       ;}
-    break;
-
-  case 268:
-
-/* Line 1464 of yacc.c  */
-#line 1621 "glsl_parser.ypp"
-    {
-          (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (1)].node);
-          (yyval.selection_rest_statement).else_statement = NULL;
-       ;}
-    break;
-
-  case 269:
-
-/* Line 1464 of yacc.c  */
-#line 1629 "glsl_parser.ypp"
-    {
-          (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].expression);
-       ;}
-    break;
-
-  case 270:
-
-/* Line 1464 of yacc.c  */
-#line 1633 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression));
-          ast_declarator_list *declarator = new(ctx) ast_declarator_list((yyvsp[(1) - (4)].fully_specified_type));
-          decl->set_location(yylloc);
-          declarator->set_location(yylloc);
-
-          declarator->declarations.push_tail(&decl->link);
-          (yyval.node) = declarator;
-       ;}
-    break;
-
-  case 274:
-
-/* Line 1464 of yacc.c  */
-#line 1656 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_while,
-                                                   NULL, (yyvsp[(3) - (5)].node), NULL, (yyvsp[(5) - (5)].node));
-          (yyval.node)->set_location(yylloc);
-       ;}
-    break;
-
-  case 275:
-
-/* Line 1464 of yacc.c  */
-#line 1663 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_do_while,
-                                                   NULL, (yyvsp[(5) - (7)].expression), NULL, (yyvsp[(2) - (7)].node));
-          (yyval.node)->set_location(yylloc);
-       ;}
-    break;
-
-  case 276:
-
-/* Line 1464 of yacc.c  */
-#line 1670 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_for,
-                                                   (yyvsp[(3) - (6)].node), (yyvsp[(4) - (6)].for_rest_statement).cond, (yyvsp[(4) - (6)].for_rest_statement).rest, (yyvsp[(6) - (6)].node));
-          (yyval.node)->set_location(yylloc);
-       ;}
-    break;
-
-  case 280:
-
-/* Line 1464 of yacc.c  */
-#line 1686 "glsl_parser.ypp"
-    {
-          (yyval.node) = NULL;
-       ;}
-    break;
-
-  case 281:
-
-/* Line 1464 of yacc.c  */
-#line 1693 "glsl_parser.ypp"
-    {
-          (yyval.for_rest_statement).cond = (yyvsp[(1) - (2)].node);
-          (yyval.for_rest_statement).rest = NULL;
-       ;}
-    break;
-
-  case 282:
-
-/* Line 1464 of yacc.c  */
-#line 1698 "glsl_parser.ypp"
-    {
-          (yyval.for_rest_statement).cond = (yyvsp[(1) - (3)].node);
-          (yyval.for_rest_statement).rest = (yyvsp[(3) - (3)].expression);
-       ;}
-    break;
-
-  case 283:
-
-/* Line 1464 of yacc.c  */
-#line 1707 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_continue, NULL);
-          (yyval.node)->set_location(yylloc);
-       ;}
-    break;
-
-  case 284:
-
-/* Line 1464 of yacc.c  */
-#line 1713 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_break, NULL);
-          (yyval.node)->set_location(yylloc);
-       ;}
-    break;
-
-  case 285:
-
-/* Line 1464 of yacc.c  */
-#line 1719 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, NULL);
-          (yyval.node)->set_location(yylloc);
-       ;}
-    break;
-
-  case 286:
-
-/* Line 1464 of yacc.c  */
-#line 1725 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, (yyvsp[(2) - (3)].expression));
-          (yyval.node)->set_location(yylloc);
-       ;}
-    break;
-
-  case 287:
-
-/* Line 1464 of yacc.c  */
-#line 1731 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_discard, NULL);
-          (yyval.node)->set_location(yylloc);
-       ;}
-    break;
-
-  case 288:
-
-/* Line 1464 of yacc.c  */
-#line 1739 "glsl_parser.ypp"
-    { (yyval.node) = (yyvsp[(1) - (1)].function_definition); ;}
-    break;
-
-  case 289:
-
-/* Line 1464 of yacc.c  */
-#line 1740 "glsl_parser.ypp"
-    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
-    break;
-
-  case 290:
-
-/* Line 1464 of yacc.c  */
-#line 1741 "glsl_parser.ypp"
-    { (yyval.node) = NULL; ;}
-    break;
-
-  case 291:
-
-/* Line 1464 of yacc.c  */
-#line 1746 "glsl_parser.ypp"
-    {
-          void *ctx = state;
-          (yyval.function_definition) = new(ctx) ast_function_definition();
-          (yyval.function_definition)->set_location(yylloc);
-          (yyval.function_definition)->prototype = (yyvsp[(1) - (2)].function);
-          (yyval.function_definition)->body = (yyvsp[(2) - (2)].compound_statement);
-
-          state->symbols->pop_scope();
-       ;}
-    break;
-
-
-
-/* Line 1464 of yacc.c  */
-#line 5240 "glsl_parser.cpp"
-      default: break;
-    }
-  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
-  YYPOPSTACK (yylen);
-  yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
-
-  *++yyvsp = yyval;
-  *++yylsp = yyloc;
-
-  /* Now `shift' the result of the reduction.  Determine what state
-     that goes to, based on the state we popped back to and the rule
-     number reduced by.  */
-
-  yyn = yyr1[yyn];
-
-  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
-  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
-    yystate = yytable[yystate];
-  else
-    yystate = yydefgoto[yyn - YYNTOKENS];
-
-  goto yynewstate;
-
-
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
-yyerrlab:
-  /* If not already recovering from an error, report this error.  */
-  if (!yyerrstatus)
-    {
-      ++yynerrs;
-#if ! YYERROR_VERBOSE
-      yyerror (&yylloc, state, YY_("syntax error"));
-#else
-      {
-       YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
-       if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
-         {
-           YYSIZE_T yyalloc = 2 * yysize;
-           if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
-             yyalloc = YYSTACK_ALLOC_MAXIMUM;
-           if (yymsg != yymsgbuf)
-             YYSTACK_FREE (yymsg);
-           yymsg = (char *) YYSTACK_ALLOC (yyalloc);
-           if (yymsg)
-             yymsg_alloc = yyalloc;
-           else
-             {
-               yymsg = yymsgbuf;
-               yymsg_alloc = sizeof yymsgbuf;
-             }
-         }
-
-       if (0 < yysize && yysize <= yymsg_alloc)
-         {
-           (void) yysyntax_error (yymsg, yystate, yychar);
-           yyerror (&yylloc, state, yymsg);
-         }
-       else
-         {
-           yyerror (&yylloc, state, YY_("syntax error"));
-           if (yysize != 0)
-             goto yyexhaustedlab;
-         }
-      }
-#endif
-    }
-
-  yyerror_range[1] = yylloc;
-
-  if (yyerrstatus == 3)
-    {
-      /* If just tried and failed to reuse lookahead token after an
-        error, discard it.  */
-
-      if (yychar <= YYEOF)
-       {
-         /* Return failure if at end of input.  */
-         if (yychar == YYEOF)
-           YYABORT;
-       }
-      else
-       {
-         yydestruct ("Error: discarding",
-                     yytoken, &yylval, &yylloc, state);
-         yychar = YYEMPTY;
-       }
-    }
-
-  /* Else will try to reuse lookahead token after shifting the error
-     token.  */
-  goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR.  |
-`---------------------------------------------------*/
-yyerrorlab:
-
-  /* Pacify compilers like GCC when the user code never invokes
-     YYERROR and the label yyerrorlab therefore never appears in user
-     code.  */
-  if (/*CONSTCOND*/ 0)
-     goto yyerrorlab;
-
-  yyerror_range[1] = yylsp[1-yylen];
-  /* Do not reclaim the symbols of the rule which action triggered
-     this YYERROR.  */
-  YYPOPSTACK (yylen);
-  yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
-  yystate = *yyssp;
-  goto yyerrlab1;
-
-
-/*-------------------------------------------------------------.
-| yyerrlab1 -- common code for both syntax error and YYERROR.  |
-`-------------------------------------------------------------*/
-yyerrlab1:
-  yyerrstatus = 3;     /* Each real token shifted decrements this.  */
-
-  for (;;)
-    {
-      yyn = yypact[yystate];
-      if (yyn != YYPACT_NINF)
-       {
-         yyn += YYTERROR;
-         if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
-           {
-             yyn = yytable[yyn];
-             if (0 < yyn)
-               break;
-           }
-       }
-
-      /* Pop the current state because it cannot handle the error token.  */
-      if (yyssp == yyss)
-       YYABORT;
-
-      yyerror_range[1] = *yylsp;
-      yydestruct ("Error: popping",
-                 yystos[yystate], yyvsp, yylsp, state);
-      YYPOPSTACK (1);
-      yystate = *yyssp;
-      YY_STACK_PRINT (yyss, yyssp);
-    }
-
-  *++yyvsp = yylval;
-
-  yyerror_range[2] = yylloc;
-  /* Using YYLLOC is tempting, but would change the location of
-     the lookahead.  YYLOC is available though.  */
-  YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
-  *++yylsp = yyloc;
-
-  /* Shift the error token.  */
-  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
-  yystate = yyn;
-  goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here.  |
-`-------------------------------------*/
-yyacceptlab:
-  yyresult = 0;
-  goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here.  |
-`-----------------------------------*/
-yyabortlab:
-  yyresult = 1;
-  goto yyreturn;
-
-#if !defined(yyoverflow) || YYERROR_VERBOSE
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here.  |
-`-------------------------------------------------*/
-yyexhaustedlab:
-  yyerror (&yylloc, state, YY_("memory exhausted"));
-  yyresult = 2;
-  /* Fall through.  */
-#endif
-
-yyreturn:
-  if (yychar != YYEMPTY)
-     yydestruct ("Cleanup: discarding lookahead",
-                yytoken, &yylval, &yylloc, state);
-  /* Do not reclaim the symbols of the rule which action triggered
-     this YYABORT or YYACCEPT.  */
-  YYPOPSTACK (yylen);
-  YY_STACK_PRINT (yyss, yyssp);
-  while (yyssp != yyss)
-    {
-      yydestruct ("Cleanup: popping",
-                 yystos[*yyssp], yyvsp, yylsp, state);
-      YYPOPSTACK (1);
-    }
-#ifndef yyoverflow
-  if (yyss != yyssa)
-    YYSTACK_FREE (yyss);
-#endif
-#if YYERROR_VERBOSE
-  if (yymsg != yymsgbuf)
-    YYSTACK_FREE (yymsg);
-#endif
-  /* Make sure YYID is used.  */
-  return YYID (yyresult);
-}
-
-
-
diff --git a/src/glsl/glsl_parser.h b/src/glsl/glsl_parser.h
deleted file mode 100644 (file)
index 7f36492..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.4.3.  */
-
-/* Skeleton interface for Bison's Yacc-like parsers in C
-   
-      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-   2009, 2010 Free Software Foundation, Inc.
-   
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-   
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     ATTRIBUTE = 258,
-     CONST_TOK = 259,
-     BOOL_TOK = 260,
-     FLOAT_TOK = 261,
-     INT_TOK = 262,
-     UINT_TOK = 263,
-     BREAK = 264,
-     CONTINUE = 265,
-     DO = 266,
-     ELSE = 267,
-     FOR = 268,
-     IF = 269,
-     DISCARD = 270,
-     RETURN = 271,
-     SWITCH = 272,
-     CASE = 273,
-     DEFAULT = 274,
-     BVEC2 = 275,
-     BVEC3 = 276,
-     BVEC4 = 277,
-     IVEC2 = 278,
-     IVEC3 = 279,
-     IVEC4 = 280,
-     UVEC2 = 281,
-     UVEC3 = 282,
-     UVEC4 = 283,
-     VEC2 = 284,
-     VEC3 = 285,
-     VEC4 = 286,
-     CENTROID = 287,
-     IN_TOK = 288,
-     OUT_TOK = 289,
-     INOUT_TOK = 290,
-     UNIFORM = 291,
-     VARYING = 292,
-     NOPERSPECTIVE = 293,
-     FLAT = 294,
-     SMOOTH = 295,
-     MAT2X2 = 296,
-     MAT2X3 = 297,
-     MAT2X4 = 298,
-     MAT3X2 = 299,
-     MAT3X3 = 300,
-     MAT3X4 = 301,
-     MAT4X2 = 302,
-     MAT4X3 = 303,
-     MAT4X4 = 304,
-     SAMPLER1D = 305,
-     SAMPLER2D = 306,
-     SAMPLER3D = 307,
-     SAMPLERCUBE = 308,
-     SAMPLER1DSHADOW = 309,
-     SAMPLER2DSHADOW = 310,
-     SAMPLERCUBESHADOW = 311,
-     SAMPLER1DARRAY = 312,
-     SAMPLER2DARRAY = 313,
-     SAMPLER1DARRAYSHADOW = 314,
-     SAMPLER2DARRAYSHADOW = 315,
-     ISAMPLER1D = 316,
-     ISAMPLER2D = 317,
-     ISAMPLER3D = 318,
-     ISAMPLERCUBE = 319,
-     ISAMPLER1DARRAY = 320,
-     ISAMPLER2DARRAY = 321,
-     USAMPLER1D = 322,
-     USAMPLER2D = 323,
-     USAMPLER3D = 324,
-     USAMPLERCUBE = 325,
-     USAMPLER1DARRAY = 326,
-     USAMPLER2DARRAY = 327,
-     STRUCT = 328,
-     VOID_TOK = 329,
-     WHILE = 330,
-     IDENTIFIER = 331,
-     TYPE_IDENTIFIER = 332,
-     NEW_IDENTIFIER = 333,
-     FLOATCONSTANT = 334,
-     INTCONSTANT = 335,
-     UINTCONSTANT = 336,
-     BOOLCONSTANT = 337,
-     FIELD_SELECTION = 338,
-     LEFT_OP = 339,
-     RIGHT_OP = 340,
-     INC_OP = 341,
-     DEC_OP = 342,
-     LE_OP = 343,
-     GE_OP = 344,
-     EQ_OP = 345,
-     NE_OP = 346,
-     AND_OP = 347,
-     OR_OP = 348,
-     XOR_OP = 349,
-     MUL_ASSIGN = 350,
-     DIV_ASSIGN = 351,
-     ADD_ASSIGN = 352,
-     MOD_ASSIGN = 353,
-     LEFT_ASSIGN = 354,
-     RIGHT_ASSIGN = 355,
-     AND_ASSIGN = 356,
-     XOR_ASSIGN = 357,
-     OR_ASSIGN = 358,
-     SUB_ASSIGN = 359,
-     INVARIANT = 360,
-     LOWP = 361,
-     MEDIUMP = 362,
-     HIGHP = 363,
-     SUPERP = 364,
-     PRECISION = 365,
-     VERSION = 366,
-     EXTENSION = 367,
-     LINE = 368,
-     COLON = 369,
-     EOL = 370,
-     INTERFACE = 371,
-     OUTPUT = 372,
-     PRAGMA_DEBUG_ON = 373,
-     PRAGMA_DEBUG_OFF = 374,
-     PRAGMA_OPTIMIZE_ON = 375,
-     PRAGMA_OPTIMIZE_OFF = 376,
-     PRAGMA_INVARIANT_ALL = 377,
-     LAYOUT_TOK = 378,
-     ASM = 379,
-     CLASS = 380,
-     UNION = 381,
-     ENUM = 382,
-     TYPEDEF = 383,
-     TEMPLATE = 384,
-     THIS = 385,
-     PACKED_TOK = 386,
-     GOTO = 387,
-     INLINE_TOK = 388,
-     NOINLINE = 389,
-     VOLATILE = 390,
-     PUBLIC_TOK = 391,
-     STATIC = 392,
-     EXTERN = 393,
-     EXTERNAL = 394,
-     LONG_TOK = 395,
-     SHORT_TOK = 396,
-     DOUBLE_TOK = 397,
-     HALF = 398,
-     FIXED_TOK = 399,
-     UNSIGNED = 400,
-     INPUT_TOK = 401,
-     OUPTUT = 402,
-     HVEC2 = 403,
-     HVEC3 = 404,
-     HVEC4 = 405,
-     DVEC2 = 406,
-     DVEC3 = 407,
-     DVEC4 = 408,
-     FVEC2 = 409,
-     FVEC3 = 410,
-     FVEC4 = 411,
-     SAMPLER2DRECT = 412,
-     SAMPLER3DRECT = 413,
-     SAMPLER2DRECTSHADOW = 414,
-     SIZEOF = 415,
-     CAST = 416,
-     NAMESPACE = 417,
-     USING = 418,
-     ERROR_TOK = 419,
-     COMMON = 420,
-     PARTITION = 421,
-     ACTIVE = 422,
-     SAMPLERBUFFER = 423,
-     FILTER = 424,
-     IMAGE1D = 425,
-     IMAGE2D = 426,
-     IMAGE3D = 427,
-     IMAGECUBE = 428,
-     IMAGE1DARRAY = 429,
-     IMAGE2DARRAY = 430,
-     IIMAGE1D = 431,
-     IIMAGE2D = 432,
-     IIMAGE3D = 433,
-     IIMAGECUBE = 434,
-     IIMAGE1DARRAY = 435,
-     IIMAGE2DARRAY = 436,
-     UIMAGE1D = 437,
-     UIMAGE2D = 438,
-     UIMAGE3D = 439,
-     UIMAGECUBE = 440,
-     UIMAGE1DARRAY = 441,
-     UIMAGE2DARRAY = 442,
-     IMAGE1DSHADOW = 443,
-     IMAGE2DSHADOW = 444,
-     IMAGEBUFFER = 445,
-     IIMAGEBUFFER = 446,
-     UIMAGEBUFFER = 447,
-     IMAGE1DARRAYSHADOW = 448,
-     IMAGE2DARRAYSHADOW = 449,
-     ROW_MAJOR = 450
-   };
-#endif
-
-
-
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
-{
-
-/* Line 1685 of yacc.c  */
-#line 52 "glsl_parser.ypp"
-
-   int n;
-   float real;
-   char *identifier;
-
-   struct ast_type_qualifier type_qualifier;
-
-   ast_node *node;
-   ast_type_specifier *type_specifier;
-   ast_fully_specified_type *fully_specified_type;
-   ast_function *function;
-   ast_parameter_declarator *parameter_declarator;
-   ast_function_definition *function_definition;
-   ast_compound_statement *compound_statement;
-   ast_expression *expression;
-   ast_declarator_list *declarator_list;
-   ast_struct_specifier *struct_specifier;
-   ast_declaration *declaration;
-
-   struct {
-      ast_node *cond;
-      ast_expression *rest;
-   } for_rest_statement;
-
-   struct {
-      ast_node *then_statement;
-      ast_node *else_statement;
-   } selection_rest_statement;
-
-
-
-/* Line 1685 of yacc.c  */
-#line 278 "glsl_parser.h"
-} YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-
-#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
-typedef struct YYLTYPE
-{
-  int first_line;
-  int first_column;
-  int last_line;
-  int last_column;
-} YYLTYPE;
-# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
-# define YYLTYPE_IS_DECLARED 1
-# define YYLTYPE_IS_TRIVIAL 1
-#endif
-
-
-