Home | History | Annotate | Download | only in mesa
      1 #line 2 "src/chromium_gensrc/mesa/glsl_lexer.cc"
      2 
      3 #line 4 "src/chromium_gensrc/mesa/glsl_lexer.cc"
      4 
      5 #define  YY_INT_ALIGNED short int
      6 
      7 /* A lexical scanner generated by flex */
      8 
      9 #define FLEX_SCANNER
     10 #define YY_FLEX_MAJOR_VERSION 2
     11 #define YY_FLEX_MINOR_VERSION 5
     12 #define YY_FLEX_SUBMINOR_VERSION 35
     13 #if YY_FLEX_SUBMINOR_VERSION > 0
     14 #define FLEX_BETA
     15 #endif
     16 
     17 /* First, we deal with  platform-specific or compiler-specific issues. */
     18 
     19 /* begin standard C headers. */
     20 #include <stdio.h>
     21 #include <string.h>
     22 #include <errno.h>
     23 #include <stdlib.h>
     24 
     25 /* end standard C headers. */
     26 
     27 /* flex integer type definitions */
     28 
     29 #ifndef FLEXINT_H
     30 #define FLEXINT_H
     31 
     32 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
     33 
     34 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
     35 
     36 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
     37  * if you want the limit (max/min) macros for int types.
     38  */
     39 #ifndef __STDC_LIMIT_MACROS
     40 #define __STDC_LIMIT_MACROS 1
     41 #endif
     42 
     43 #include <inttypes.h>
     44 typedef int8_t flex_int8_t;
     45 typedef uint8_t flex_uint8_t;
     46 typedef int16_t flex_int16_t;
     47 typedef uint16_t flex_uint16_t;
     48 typedef int32_t flex_int32_t;
     49 typedef uint32_t flex_uint32_t;
     50 #else
     51 typedef signed char flex_int8_t;
     52 typedef short int flex_int16_t;
     53 typedef int flex_int32_t;
     54 typedef unsigned char flex_uint8_t;
     55 typedef unsigned short int flex_uint16_t;
     56 typedef unsigned int flex_uint32_t;
     57 
     58 /* Limits of integral types. */
     59 #ifndef INT8_MIN
     60 #define INT8_MIN               (-128)
     61 #endif
     62 #ifndef INT16_MIN
     63 #define INT16_MIN              (-32767-1)
     64 #endif
     65 #ifndef INT32_MIN
     66 #define INT32_MIN              (-2147483647-1)
     67 #endif
     68 #ifndef INT8_MAX
     69 #define INT8_MAX               (127)
     70 #endif
     71 #ifndef INT16_MAX
     72 #define INT16_MAX              (32767)
     73 #endif
     74 #ifndef INT32_MAX
     75 #define INT32_MAX              (2147483647)
     76 #endif
     77 #ifndef UINT8_MAX
     78 #define UINT8_MAX              (255U)
     79 #endif
     80 #ifndef UINT16_MAX
     81 #define UINT16_MAX             (65535U)
     82 #endif
     83 #ifndef UINT32_MAX
     84 #define UINT32_MAX             (4294967295U)
     85 #endif
     86 
     87 #endif /* ! C99 */
     88 
     89 #endif /* ! FLEXINT_H */
     90 
     91 #ifdef __cplusplus
     92 
     93 /* The "const" storage-class-modifier is valid. */
     94 #define YY_USE_CONST
     95 
     96 #else	/* ! __cplusplus */
     97 
     98 /* C99 requires __STDC__ to be defined as 1. */
     99 #if defined (__STDC__)
    100 
    101 #define YY_USE_CONST
    102 
    103 #endif	/* defined (__STDC__) */
    104 #endif	/* ! __cplusplus */
    105 
    106 #ifdef YY_USE_CONST
    107 #define yyconst const
    108 #else
    109 #define yyconst
    110 #endif
    111 
    112 /* Returned upon end-of-file. */
    113 #define YY_NULL 0
    114 
    115 /* Promotes a possibly negative, possibly signed char to an unsigned
    116  * integer for use as an array index.  If the signed char is negative,
    117  * we want to instead treat it as an 8-bit unsigned char, hence the
    118  * double cast.
    119  */
    120 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
    121 
    122 /* An opaque pointer. */
    123 #ifndef YY_TYPEDEF_YY_SCANNER_T
    124 #define YY_TYPEDEF_YY_SCANNER_T
    125 typedef void* yyscan_t;
    126 #endif
    127 
    128 /* For convenience, these vars (plus the bison vars far below)
    129    are macros in the reentrant scanner. */
    130 #define yyin yyg->yyin_r
    131 #define yyout yyg->yyout_r
    132 #define yyextra yyg->yyextra_r
    133 #define yyleng yyg->yyleng_r
    134 #define yytext yyg->yytext_r
    135 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
    136 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
    137 #define yy_flex_debug yyg->yy_flex_debug_r
    138 
    139 /* Enter a start condition.  This macro really ought to take a parameter,
    140  * but we do it the disgusting crufty way forced on us by the ()-less
    141  * definition of BEGIN.
    142  */
    143 #define BEGIN yyg->yy_start = 1 + 2 *
    144 
    145 /* Translate the current start state into a value that can be later handed
    146  * to BEGIN to return to the state.  The YYSTATE alias is for lex
    147  * compatibility.
    148  */
    149 #define YY_START ((yyg->yy_start - 1) / 2)
    150 #define YYSTATE YY_START
    151 
    152 /* Action number for EOF rule of a given start state. */
    153 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
    154 
    155 /* Special action meaning "start processing a new file". */
    156 #define YY_NEW_FILE _mesa_glsl_restart(yyin ,yyscanner )
    157 
    158 #define YY_END_OF_BUFFER_CHAR 0
    159 
    160 /* Size of default input buffer. */
    161 #ifndef YY_BUF_SIZE
    162 #ifdef __ia64__
    163 /* On IA-64, the buffer size is 16k, not 8k.
    164  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
    165  * Ditto for the __ia64__ case accordingly.
    166  */
    167 #define YY_BUF_SIZE 32768
    168 #else
    169 #define YY_BUF_SIZE 16384
    170 #endif /* __ia64__ */
    171 #endif
    172 
    173 /* The state buf must be large enough to hold one state per character in the main buffer.
    174  */
    175 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
    176 
    177 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
    178 #define YY_TYPEDEF_YY_BUFFER_STATE
    179 typedef struct yy_buffer_state *YY_BUFFER_STATE;
    180 #endif
    181 
    182 #define EOB_ACT_CONTINUE_SCAN 0
    183 #define EOB_ACT_END_OF_FILE 1
    184 #define EOB_ACT_LAST_MATCH 2
    185 
    186     #define YY_LESS_LINENO(n)
    187 
    188 /* Return all but the first "n" matched characters back to the input stream. */
    189 #define yyless(n) \
    190 	do \
    191 		{ \
    192 		/* Undo effects of setting up yytext. */ \
    193         int yyless_macro_arg = (n); \
    194         YY_LESS_LINENO(yyless_macro_arg);\
    195 		*yy_cp = yyg->yy_hold_char; \
    196 		YY_RESTORE_YY_MORE_OFFSET \
    197 		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
    198 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
    199 		} \
    200 	while ( 0 )
    201 
    202 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
    203 
    204 #ifndef YY_TYPEDEF_YY_SIZE_T
    205 #define YY_TYPEDEF_YY_SIZE_T
    206 typedef size_t yy_size_t;
    207 #endif
    208 
    209 #ifndef YY_STRUCT_YY_BUFFER_STATE
    210 #define YY_STRUCT_YY_BUFFER_STATE
    211 struct yy_buffer_state
    212 	{
    213 	FILE *yy_input_file;
    214 
    215 	char *yy_ch_buf;		/* input buffer */
    216 	char *yy_buf_pos;		/* current position in input buffer */
    217 
    218 	/* Size of input buffer in bytes, not including room for EOB
    219 	 * characters.
    220 	 */
    221 	yy_size_t yy_buf_size;
    222 
    223 	/* Number of characters read into yy_ch_buf, not including EOB
    224 	 * characters.
    225 	 */
    226 	int yy_n_chars;
    227 
    228 	/* Whether we "own" the buffer - i.e., we know we created it,
    229 	 * and can realloc() it to grow it, and should free() it to
    230 	 * delete it.
    231 	 */
    232 	int yy_is_our_buffer;
    233 
    234 	/* Whether this is an "interactive" input source; if so, and
    235 	 * if we're using stdio for input, then we want to use getc()
    236 	 * instead of fread(), to make sure we stop fetching input after
    237 	 * each newline.
    238 	 */
    239 	int yy_is_interactive;
    240 
    241 	/* Whether we're considered to be at the beginning of a line.
    242 	 * If so, '^' rules will be active on the next match, otherwise
    243 	 * not.
    244 	 */
    245 	int yy_at_bol;
    246 
    247     int yy_bs_lineno; /**< The line count. */
    248     int yy_bs_column; /**< The column count. */
    249 
    250 	/* Whether to try to fill the input buffer when we reach the
    251 	 * end of it.
    252 	 */
    253 	int yy_fill_buffer;
    254 
    255 	int yy_buffer_status;
    256 
    257 #define YY_BUFFER_NEW 0
    258 #define YY_BUFFER_NORMAL 1
    259 	/* When an EOF's been seen but there's still some text to process
    260 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
    261 	 * shouldn't try reading from the input source any more.  We might
    262 	 * still have a bunch of tokens to match, though, because of
    263 	 * possible backing-up.
    264 	 *
    265 	 * When we actually see the EOF, we change the status to "new"
    266 	 * (via _mesa_glsl_restart()), so that the user can continue scanning by
    267 	 * just pointing yyin at a new input file.
    268 	 */
    269 #define YY_BUFFER_EOF_PENDING 2
    270 
    271 	};
    272 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
    273 
    274 /* We provide macros for accessing buffer states in case in the
    275  * future we want to put the buffer states in a more general
    276  * "scanner state".
    277  *
    278  * Returns the top of the stack, or NULL.
    279  */
    280 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
    281                           ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
    282                           : NULL)
    283 
    284 /* Same as previous macro, but useful when we know that the buffer stack is not
    285  * NULL or when we need an lvalue. For internal use only.
    286  */
    287 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
    288 
    289 void _mesa_glsl_restart (FILE *input_file ,yyscan_t yyscanner );
    290 void _mesa_glsl__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
    291 YY_BUFFER_STATE _mesa_glsl__create_buffer (FILE *file,int size ,yyscan_t yyscanner );
    292 void _mesa_glsl__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
    293 void _mesa_glsl__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
    294 void _mesa_glsl_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
    295 void _mesa_glsl_pop_buffer_state (yyscan_t yyscanner );
    296 
    297 static void _mesa_glsl_ensure_buffer_stack (yyscan_t yyscanner );
    298 static void _mesa_glsl__load_buffer_state (yyscan_t yyscanner );
    299 static void _mesa_glsl__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
    300 
    301 #define YY_FLUSH_BUFFER _mesa_glsl__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
    302 
    303 YY_BUFFER_STATE _mesa_glsl__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
    304 YY_BUFFER_STATE _mesa_glsl__scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
    305 YY_BUFFER_STATE _mesa_glsl__scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
    306 
    307 void *_mesa_glsl_alloc (yy_size_t ,yyscan_t yyscanner );
    308 void *_mesa_glsl_realloc (void *,yy_size_t ,yyscan_t yyscanner );
    309 void _mesa_glsl_free (void * ,yyscan_t yyscanner );
    310 
    311 #define yy_new_buffer _mesa_glsl__create_buffer
    312 
    313 #define yy_set_interactive(is_interactive) \
    314 	{ \
    315 	if ( ! YY_CURRENT_BUFFER ){ \
    316         _mesa_glsl_ensure_buffer_stack (yyscanner); \
    317 		YY_CURRENT_BUFFER_LVALUE =    \
    318             _mesa_glsl__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
    319 	} \
    320 	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
    321 	}
    322 
    323 #define yy_set_bol(at_bol) \
    324 	{ \
    325 	if ( ! YY_CURRENT_BUFFER ){\
    326         _mesa_glsl_ensure_buffer_stack (yyscanner); \
    327 		YY_CURRENT_BUFFER_LVALUE =    \
    328             _mesa_glsl__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
    329 	} \
    330 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
    331 	}
    332 
    333 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
    334 
    335 /* Begin user sect3 */
    336 
    337 #define _mesa_glsl_wrap(n) 1
    338 #define YY_SKIP_YYWRAP
    339 
    340 typedef unsigned char YY_CHAR;
    341 
    342 typedef int yy_state_type;
    343 
    344 #define yytext_ptr yytext_r
    345 
    346 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
    347 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
    348 static int yy_get_next_buffer (yyscan_t yyscanner );
    349 static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
    350 
    351 /* Done after the current pattern has been matched and before the
    352  * corresponding action - sets up yytext.
    353  */
    354 #define YY_DO_BEFORE_ACTION \
    355 	yyg->yytext_ptr = yy_bp; \
    356 	yyleng = (size_t) (yy_cp - yy_bp); \
    357 	yyg->yy_hold_char = *yy_cp; \
    358 	*yy_cp = '\0'; \
    359 	yyg->yy_c_buf_p = yy_cp;
    360 
    361 #define YY_NUM_RULES 215
    362 #define YY_END_OF_BUFFER 216
    363 /* This struct is not used in this scanner,
    364    but its presence is necessary. */
    365 struct yy_trans_info
    366 	{
    367 	flex_int32_t yy_verify;
    368 	flex_int32_t yy_nxt;
    369 	};
    370 static yyconst flex_int16_t yy_accept[867] =
    371     {   0,
    372         0,    0,   16,   16,    0,    0,  216,  214,    1,   21,
    373       214,  214,  214,  214,  214,  214,  214,  214,  121,  119,
    374       214,  214,  214,  213,  214,  213,  213,  213,  213,  213,
    375       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
    376       213,  213,  213,  213,  213,  214,    1,  214,  215,   16,
    377        20,  215,   19,   17,   18,   14,   13,    1,  103,  112,
    378       104,  115,  109,   98,  111,   99,  118,  123,  110,  124,
    379       121,    0,    0,  126,  121,    0,  119,  119,  107,  100,
    380       102,  101,  108,  213,  116,  106,  213,  213,  213,  213,
    381       213,  213,  213,  213,  213,  213,  213,  213,   30,  213,
    382 
    383       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
    384       213,  213,   34,  213,  213,   61,  213,  213,  213,  213,
    385       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
    386       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
    387       213,  213,  213,  213,  213,  213,  213,  213,  213,  117,
    388       105,    1,    0,    0,    2,    0,    0,    0,    0,   16,
    389        15,   19,   18,    0,  123,  122,    0,  124,    0,  125,
    390       120,  113,  114,  213,  129,  213,  213,  213,  213,  213,
    391       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
    392       213,  213,  213,  213,  213,  213,   33,  213,  213,  213,
    393 
    394       213,  213,  213,  213,  213,  213,  213,   26,  213,  213,
    395       213,  213,  213,  213,  213,  213,  213,  213,  213,   62,
    396       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
    397       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
    398       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
    399         0,    0,    0,    0,   15,    0,  123,    0,  122,    0,
    400       124,  125,  120,  213,  213,   24,  213,  213,  176,  169,
    401       213,  213,  213,  213,  213,  213,  213,  213,  213,   32,
    402       132,  213,  213,  213,  213,   68,  213,  213,  137,  151,
    403       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
    404 
    405       213,  213,  148,  172,   49,   50,   51,  213,  213,  213,
    406       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
    407       213,  213,  213,  213,  213,  213,  213,  135,  127,  213,
    408       213,   27,  213,  213,  213,  213,  213,  213,  213,   46,
    409        47,   48,   96,  213,  213,    0,    0,    0,    0,    0,
    410       122,  213,  213,   28,   37,   38,   39,  213,  130,  213,
    411        23,  213,  213,  213,  213,  159,  160,  161,  213,  128,
    412       213,  152,   25,  162,  163,  164,  174,  156,  157,  158,
    413       213,  213,  213,   63,  154,  213,  213,  213,   40,   41,
    414        42,  213,  213,  213,  213,  213,  213,  213,  213,  213,
    415 
    416       213,  213,  213,  213,  213,  213,  213,  149,  213,  213,
    417       213,  213,  213,  213,  213,  213,  213,  213,  131,  213,
    418       213,  171,   43,   44,   45,  213,  213,   31,    0,    0,
    419         0,    0,  179,  213,  213,  177,  213,  213,  213,  150,
    420       145,  182,  213,  213,  213,  213,  213,  213,  140,  213,
    421       213,  213,   97,   52,   53,   54,   55,   56,   57,   58,
    422        59,   60,  213,  213,  213,  213,  155,  136,  213,  213,
    423       143,   36,  213,  213,  168,   69,  144,   95,  180,  138,
    424       213,  213,  213,  213,  213,  213,  213,  213,    0,    0,
    425         0,    0,  213,  213,  213,  139,   35,  213,  213,  213,
    426 
    427       213,  213,  213,  183,  184,  185,  213,  213,  213,  213,
    428       213,  173,  213,  213,  213,  213,  213,  213,  213,  213,
    429       133,  213,  213,  213,  213,  213,   64,  213,  213,   65,
    430       213,    0,    0,    0,    0,    0,  213,   66,   29,  146,
    431       187,  188,  189,  213,  213,  213,  213,  213,  213,  213,
    432       213,  213,  213,  213,  213,  141,  213,  213,  213,  213,
    433       213,  213,  213,  213,  213,  213,  134,  191,  192,  193,
    434       213,  213,  153,  213,  142,    0,    0,    6,    0,    0,
    435         0,   12,    3,   22,  213,  213,  213,  213,  213,  213,
    436       213,  213,  213,  186,  147,   67,  213,  213,  213,  213,
    437 
    438       213,  170,  213,  178,  175,  208,   71,   72,   73,  213,
    439       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
    440       213,    0,    0,    0,    0,    0,    0,    0,  213,  213,
    441       213,  190,  213,  213,  213,  213,  213,   82,   83,   84,
    442       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
    443       213,  213,  213,  213,  213,  194,   88,   89,   90,  213,
    444       213,    4,    0,    5,    0,    0,    0,    0,    0,    0,
    445       213,  213,  213,  213,  213,  213,  213,  205,  213,  213,
    446       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
    447       213,   74,  213,  213,  213,  213,  213,  213,  213,  213,
    448 
    449       213,    0,    0,    0,    0,  213,  213,  206,  195,  213,
    450       196,  213,  213,  213,  213,  213,   85,  213,  213,  213,
    451       213,  213,  213,  213,  213,  213,  213,  213,  213,  207,
    452       213,  213,  213,  213,   91,    0,    0,    0,  197,  198,
    453       213,  201,  213,  202,  213,  213,  213,  213,   70,  213,
    454       213,  213,  165,  213,  166,  181,  213,  213,  199,  200,
    455       213,  213,  213,  213,    0,    0,    0,  213,  213,  213,
    456       213,  209,  211,   75,  213,   76,  213,  213,  213,  213,
    457       213,  213,  210,  212,    0,    0,    0,    0,  213,  213,
    458        86,   87,  213,   77,  213,  213,   78,  213,  213,   92,
    459 
    460        93,    0,    0,    0,    0,  213,  213,  213,  213,  213,
    461       213,  213,    0,    0,    0,    0,  213,  213,  213,  213,
    462       213,   79,  213,    0,    0,    0,    7,    0,    0,  203,
    463       204,  213,  213,  213,   94,    0,    0,    8,    0,    0,
    464       213,  213,  167,    0,    0,    0,   80,   81,    0,    0,
    465         0,    9,    0,    0,   10,    0,    0,    0,    0,    0,
    466         0,    0,    0,    0,   11,    0
    467     } ;
    468 
    469 static yyconst flex_int32_t yy_ec[256] =
    470     {   0,
    471         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
    472         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
    473         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    474         1,    2,    5,    1,    6,    1,    7,    8,    1,    9,
    475        10,   11,   12,    1,   13,   14,   15,   16,   17,   18,
    476        19,   20,   21,   21,   21,   22,   22,   23,    1,   24,
    477        25,   26,    1,    1,   27,   28,   29,   30,   31,   32,
    478        33,   34,   34,   34,   34,   35,   34,   34,   36,   34,
    479        34,   37,   38,   39,   40,   34,   34,   41,   34,   34,
    480         1,    1,    1,   42,   43,    1,   44,   45,   46,   47,
    481 
    482        48,   49,   50,   51,   52,   53,   54,   55,   56,   57,
    483        58,   59,   34,   60,   61,   62,   63,   64,   65,   66,
    484        67,   68,    1,   69,    1,    1,    1,    1,    1,    1,
    485         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    486         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    487         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    488         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    489         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    490         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    491         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    492 
    493         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    494         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    495         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    496         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    497         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    498         1,    1,    1,    1,    1
    499     } ;
    500 
    501 static yyconst flex_int32_t yy_meta[70] =
    502     {   0,
    503         1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
    504         1,    1,    1,    1,    1,    3,    3,    3,    3,    3,
    505         3,    3,    1,    1,    1,    1,    4,    4,    4,    4,
    506         3,    3,    5,    5,    5,    5,    5,    5,    5,    5,
    507         5,    1,    5,    4,    4,    4,    4,    3,    3,    5,
    508         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    509         5,    5,    5,    5,    5,    5,    5,    5,    1
    510     } ;
    511 
    512 static yyconst flex_int16_t yy_base[876] =
    513     {   0,
    514         0,   68,   74,    0, 1243, 1242, 1244, 1247,   69, 1247,
    515      1218, 1217,  136, 1216,  133,  134,  132, 1215,  148,  201,
    516       131, 1214,  146,    0,  121,  114,  123,  146,  134,  136,
    517       172, 1180,  161,  182,  141,  129,  151, 1174,  140,  187,
    518       196,  203,  205,  223, 1185,  187,  204,  270, 1247,  224,
    519      1247, 1220,  258, 1247,    0, 1247, 1247,  240, 1247, 1247,
    520      1247, 1247, 1247, 1247, 1247, 1247, 1247,  251, 1247,  253,
    521       224,  321,  275, 1247, 1247,    0,    0, 1247, 1209, 1247,
    522      1247, 1247, 1208,    0, 1247, 1247, 1170, 1175, 1168, 1171,
    523      1180, 1179, 1165, 1168, 1180,  247, 1174, 1161, 1158, 1172,
    524 
    525      1158, 1155, 1155, 1161,  243,  261, 1155, 1166, 1151, 1157,
    526      1161, 1162,    0, 1153, 1164,  252, 1163, 1158, 1138,  172,
    527      1142, 1156, 1146,  201, 1139,  260, 1152, 1154, 1136, 1132,
    528      1140, 1137, 1126, 1135,  264, 1133, 1139, 1134, 1137, 1125,
    529      1128,  256,  265,  271, 1138, 1125, 1138,  234, 1131, 1247,
    530      1247,  326,  319,  342, 1247, 1116, 1129, 1120, 1131,  329,
    531         0,  338,    0,  391, 1247,  315,  402, 1247,  409,  416,
    532       287, 1247, 1247, 1126,    0, 1117, 1121, 1131, 1128,  300,
    533      1111, 1111, 1115,  304, 1126, 1123, 1123, 1121, 1118, 1109,
    534      1116, 1102, 1100, 1113, 1098, 1115,    0, 1112, 1099, 1107,
    535 
    536      1104, 1108, 1109, 1102, 1099, 1087, 1086, 1100, 1103, 1090,
    537      1099, 1086, 1093, 1083,  353, 1089, 1092, 1082, 1090, 1078,
    538      1082, 1073, 1088, 1078, 1069, 1088, 1071, 1069, 1080, 1069,
    539      1064, 1062, 1076, 1061, 1063, 1060, 1072, 1071, 1074, 1055,
    540       319, 1064, 1059, 1057, 1067, 1045,  361, 1064, 1066, 1054,
    541      1046, 1050, 1062, 1045,    0,  423,  434,  451, 1247,  458,
    542       468, 1247, 1247, 1040, 1051,    0, 1048,  366,    0,    0,
    543      1041, 1039, 1041, 1036, 1045, 1033, 1051, 1039,  369,    0,
    544         0, 1033, 1044, 1043, 1043,    0, 1027,  373,    0,    0,
    545      1029,  376, 1037, 1038, 1028, 1022, 1021, 1022, 1021, 1021,
    546 
    547       380, 1016,    0,    0, 1012, 1011, 1010, 1012, 1013, 1018,
    548      1012, 1008, 1022, 1017, 1016, 1015, 1006, 1009, 1009, 1001,
    549      1004,  999, 1008, 1013,  998, 1011, 1001,    0,    0, 1008,
    550      1004,    0,  995,  995, 1001,  991,  999,  439,  996,    0,
    551         0,    0,    0,  985,  998,  997,  996,  993,  981,  475,
    552       486,  993,  995,    0,    0,    0,    0,  981,    0,  981,
    553         0,  980,  981,  975,  986,    0,    0,    0,  976,    0,
    554       972,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    555       983,  492,  982,    0,    0,  980,  976,  972,    0,    0,
    556         0,  964,  442,  494,  504,  969,  965,  971,  961,  959,
    557 
    558       973,  957,  957,  971,  959,  971,  966,    0,  964,  961,
    559       965,  948,  950,  957,  963,  958,  957,  944,    0,  946,
    560       947,    0,    0,    0,    0,  944,  948,    0,  942,  996,
    561       941,  944,    0,  932,  942,    0,  930,  930,  944,    0,
    562       946,    0,  508,  959,  958,  957,  923,  922,    0,  940,
    563       939,  934,    0,    0,    0,    0,    0,    0,    0,    0,
    564         0,    0,  922,  936,  922,  919,    0,    0,  925,  924,
    565         0,    0,  922,  914,    0,    0,    0,    0,    0,    0,
    566       911,  923,  511,  915,  922,  921,  918,  912,  905,  529,
    567       921,  906,  901,  915,  913,    0,    0,  905,  929,  928,
    568 
    569       927,  893,  892,  378,  505,    0,  905,  908,  906,  894,
    570       890,    0,  903,  900,  899,  888,  887,  886,  535,  895,
    571         0,  912,  911,  910,  876,  875,    0,  890,  876,    0,
    572       887,  882,  539,  565,  931,  875,  883,    0,    0,    0,
    573       903,  902,    0,  879,  882,  866,  874,  864,  872,  873,
    574       873,  872,  857,  560,  870,    0,  871,  859,  858,  854,
    575       883,  882,  881,  847,  846,  842,    0,  880,  879,    0,
    576       856,  859,    0,  573,    0,  845,  591, 1247,  601,    0,
    577       612,  597, 1247,    0,  842,  841,  851,  851,  838,  853,
    578       836,  851,  846,    0,    0,    0,  863,  862,  861,  827,
    579 
    580       826,    0,  826,    0,    0,    0,  506,  534,  850,  837,
    581       840,  822,  823,  822,  832,  832,  849,  848,  847,  813,
    582       812,  817,  621,  647,  373,  834,  824,  812,  810,  809,
    583       820,    0,  823,  819,  821,  817,  803,  835,  324,    0,
    584       812,  815,  807,  798,  806,  796,  807,  803,  805,  803,
    585       803,  802,  789,  788,  799,    0,  819,  538,    0,  796,
    586       799, 1247,  444, 1247,  654,    0,  674,  813,  797,  779,
    587       796,  795,  778,  770,  778,  768,  776,    0,  773,  772,
    588       783,  781,  781,  764,  767,  782,  765,  778,  779,  776,
    589       773,  782,  759,  774,  773,  756,  755,  754,  765,  763,
    590 
    591       763,  479,  777,  746,  756,  740,  739,    0,  767,  739,
    592       765,  737,  741,  740,  753,  750,    0,  749,  752,  748,
    593       750,  731,  745,  729,  730,  738,  731,  720,  719,    0,
    594       725,  724,  737,  734,    0,  746,  730,  723,    0,    0,
    595       720,    0,  704,    0,  710,  709,  689,  690,    0,  682,
    596       690,  680,  708,  687,    0,    0,  700,  699,    0,    0,
    597       698,  697,  678,  679,  736,  560,  685,  692,  691,  667,
    598       666,    0,    0,  694,  666,  692,  678,  663,  678,  669,
    599       656,    5,    0,    0,  155,  634,  568,  106,  131,  208,
    600         0,    0,  217,    0,  285,  305,    0,  324,  366,    0,
    601 
    602         0,  360,  593,  549,  401,  440,  441,  457,  471,  469,
    603       454,  503,  474,  524,  643,  645,  509,  511,  549,  550,
    604       542,    0,  578,  581,  650,  676, 1247,  679,  625,    0,
    605         0,  588,  590,  593,    0,  599,  687, 1247,  659,  649,
    606       614,  615,    0,  630,  635,  697,    0,    0,  641,  698,
    607       699, 1247,  645,  701, 1247,  642,  703,  711,  708,  712,
    608       660,  661,  716,  717, 1247, 1247,  756,  759,  762,  718,
    609       719,  765,  769,  772,  774
    610     } ;
    611 
    612 static yyconst flex_int16_t yy_def[876] =
    613     {   0,
    614       866,    1,  866,    3,  867,  867,  866,  866,  866,  866,
    615       866,  866,  866,  866,  866,  866,  866,  866,  866,  866,
    616       866,  866,  866,  868,  866,  868,  868,  868,  868,  868,
    617       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    618       868,  868,  868,  868,  868,  866,  866,  866,  866,  866,
    619       866,  866,  866,  866,  869,  866,  866,  866,  866,  866,
    620       866,  866,  866,  866,  866,  866,  866,  870,  866,  871,
    621        19,  866,  866,  866,  866,  872,   20,  866,  866,  866,
    622       866,  866,  866,  868,  866,  866,  868,  868,  868,  868,
    623       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    624 
    625       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    626       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    627       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    628       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    629       868,  868,  868,  868,  868,  868,  868,  868,  868,  866,
    630       866,  866,  866,  866,  866,  866,  866,  866,  866,  866,
    631       873,  866,  869,  866,  866,  871,  866,  866,  866,  866,
    632       872,  866,  866,  868,  868,  868,  868,  868,  868,  868,
    633       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    634       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    635 
    636       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    637       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    638       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    639       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    640       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    641       866,  866,  866,  866,  873,  866,  866,  866,  866,  866,
    642       866,  866,  866,  868,  868,  868,  868,  868,  868,  868,
    643       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    644       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    645       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    646 
    647       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    648       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    649       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    650       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    651       868,  868,  868,  868,  868,  866,  866,  866,  866,  866,
    652       866,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    653       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    654       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    655       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    656       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    657 
    658       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    659       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    660       868,  868,  868,  868,  868,  868,  868,  868,  866,  866,
    661       866,  866,  868,  868,  868,  868,  868,  868,  868,  868,
    662       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    663       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    664       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    665       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    666       868,  868,  868,  868,  868,  868,  868,  868,  866,  866,
    667       866,  866,  868,  868,  868,  868,  868,  868,  868,  868,
    668 
    669       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    670       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    671       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    672       868,  866,  866,  866,  866,  866,  868,  868,  868,  868,
    673       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    674       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    675       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    676       868,  868,  868,  868,  868,  866,  866,  866,  866,  874,
    677       866,  866,  866,  868,  868,  868,  868,  868,  868,  868,
    678       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    679 
    680       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    681       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    682       868,  866,  866,  866,  874,  866,  866,  866,  868,  868,
    683       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    684       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    685       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    686       868,  866,  866,  866,  866,  875,  866,  866,  866,  866,
    687       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    688       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    689       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    690 
    691       868,  875,  866,  866,  866,  868,  868,  868,  868,  868,
    692       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    693       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    694       868,  868,  868,  868,  868,  866,  866,  866,  868,  868,
    695       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    696       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    697       868,  868,  868,  868,  866,  866,  866,  868,  868,  868,
    698       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    699       868,  868,  868,  868,  866,  866,  866,  866,  868,  868,
    700       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
    701 
    702       868,  866,  866,  866,  866,  868,  868,  868,  868,  868,
    703       868,  868,  866,  866,  866,  866,  868,  868,  868,  868,
    704       868,  868,  868,  866,  866,  866,  866,  866,  866,  868,
    705       868,  868,  868,  868,  868,  866,  866,  866,  866,  866,
    706       868,  868,  868,  866,  866,  866,  868,  868,  866,  866,
    707       866,  866,  866,  866,  866,  866,  866,  866,  866,  866,
    708       866,  866,  866,  866,  866,    0,  866,  866,  866,  866,
    709       866,  866,  866,  866,  866
    710     } ;
    711 
    712 static yyconst flex_int16_t yy_nxt[1317] =
    713     {   0,
    714         8,    9,   10,    9,   11,    8,   12,   13,    8,    8,
    715        14,   15,   16,   17,   18,   19,   20,   20,   20,   20,
    716        20,   20,    8,   21,   22,   23,   24,   24,   24,   24,
    717        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
    718        24,   25,   24,   26,   27,   28,   29,   30,   31,   32,
    719        33,   34,   24,   24,   35,   36,   37,   38,   39,   40,
    720        41,   42,   43,   44,   45,   24,   24,   24,   46,   47,
    721        58,  801,   58,   48,   49,   50,   51,   50,   49,   49,
    722        49,   49,   49,   49,   49,   49,   49,   49,   52,   49,
    723        53,   53,   53,   53,   53,   53,   54,   49,   49,   49,
    724 
    725        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
    726        55,   55,   55,   55,   55,   49,   55,   55,   55,   55,
    727        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
    728        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
    729        55,   55,   49,   61,   64,   85,   66,   68,   68,   68,
    730        68,   68,   68,   68,   79,   80,  785,   65,   67,   87,
    731        62,   70,   86,   71,   71,   71,   71,   71,   71,   72,
    732        82,   83,  121,  805,   88,   89,  122,  806,   73,   74,
    733        90,   97,   91,  126,  119,   98,   92,   75,   76,   93,
    734       101,   99,  102,   94,  123,   73,   74,  100,  120,  127,
    735 
    736        95,  103,  128,   96,  110,  152,  802,   58,  124,  153,
    737        75,  150,  111,   76,   70,  104,   77,   77,   77,   77,
    738        77,   77,   77,  105,  112,  160,  106,  160,  213,  107,
    739       113,   73,   74,  114,  129,  108,  214,  115,  116,  131,
    740        78,   58,  117,   58,  130,  118,  132,  133,   73,   74,
    741       138,  134,  218,  139,  807,  151,  142,  135,  136,  219,
    742       137,  143,  140,   78,  866,  144,  146,  808,  145,  141,
    743       147,  154,  155,  162,  162,  162,  162,  162,  162,  162,
    744       148,  164,  165,  167,  168,  248,  169,  169,  249,  866,
    745       170,  170,  170,  170,  170,  170,  170,  193,  164,  165,
    746 
    747       167,  168,  183,  184,  195,  221,  205,  231,  194,  206,
    748       207,  239,  240,  208,  243,  209,  241,  156,  196,  222,
    749       154,  155,  244,  232,  157,  242,  263,  152,  158,   58,
    750       160,  153,  160,  159,   70,  809,   72,   72,   72,   72,
    751        72,   72,   72,  154,  155,  258,  259,  269,  810,  263,
    752       680,   73,   74,  162,  162,  162,  162,  162,  162,  162,
    753       681,  270,  258,  259,  274,  275,  156,  333,   73,   74,
    754       305,  306,  307,  157,  577,  578,  334,  158,  340,  341,
    755       342,  811,  159,  355,  356,  357,  366,  367,  368,  156,
    756       374,  375,  376,  378,  379,  380,  157,  389,  390,  391,
    757 
    758       158,  812,  256,  256,  546,  159,  257,  257,  257,  257,
    759       257,  257,  257,  260,  260,  547,  813,  261,  261,  261,
    760       261,  261,  261,  261,  170,  170,  170,  170,  170,  170,
    761       170,  170,  170,  170,  170,  170,  170,  170,  257,  257,
    762       257,  257,  257,  257,  257,  663,  664,  262,  816,  257,
    763       257,  257,  257,  257,  257,  257,  423,  424,  425,  454,
    764       455,  456,  350,  350,  262,  165,  351,  351,  351,  351,
    765       351,  351,  351,  261,  261,  261,  261,  261,  261,  261,
    766       663,  664,  165,  261,  261,  261,  261,  261,  261,  261,
    767       351,  351,  351,  351,  351,  351,  351,  817,  818,  168,
    768 
    769       819,  351,  351,  351,  351,  351,  351,  351,  444,  445,
    770       446,  457,  458,  459,  820,  821,  168,  259,  822,  447,
    771       448,  460,  461,  462,  499,  500,  501,  522,  523,  524,
    772       490,  548,  644,  823,  259,  502,  503,  824,  525,  526,
    773       577,  578,  549,  645,  533,  534,  534,  534,  534,  534,
    774       534,  561,  562,  563,  579,  579,  579,  579,  579,  579,
    775       646,  786,  564,  565,  698,  566,  577,  578,  787,  803,
    776       647,  648,  825,  830,  699,  831,  597,  598,  599,  580,
    777       581,  581,  581,  581,  581,  581,  581,  600,  601,  617,
    778       618,  619,  577,  578,  803,  832,  833,  814,  582,  834,
    779 
    780       620,  621,  577,  578,  580,  815,  623,  624,  624,  624,
    781       624,  624,  624,  577,  578,  835,  579,  579,  579,  579,
    782       579,  579,  663,  664,  836,  804,  839,  581,  581,  581,
    783       581,  581,  581,  581,  626,  786,  665,  665,  665,  665,
    784       665,  665,  787,  627,  826,  841,  828,  842,  663,  664,
    785       804,  837,  827,  829,  628,  663,  664,  843,  844,  838,
    786       839,  666,  667,  667,  667,  667,  667,  667,  667,  665,
    787       665,  665,  665,  665,  665,  663,  664,  826,  847,  848,
    788       828,  849,  840,  850,  853,  827,  666,  829,  837,  667,
    789       667,  667,  667,  667,  667,  667,  838,  845,  851,  854,
    790 
    791       851,  856,  854,  857,  858,  846,  852,  855,  852,  860,
    792       855,  859,  858,  860,  862,  863,  840,  864,  864,  859,
    793        68,  166,  800,  799,  798,  865,  865,  797,  796,  795,
    794       794,  793,  792,  791,  790,  789,  788,  785,  784,  783,
    795       782,  781,  780,  779,  778,  777,  776,  775,  774,  773,
    796       772,  861,  771,  770,  769,  861,   56,   56,   56,   56,
    797        56,   84,   84,   84,  163,  163,  163,  171,  171,  255,
    798       768,  255,  255,  255,  625,  625,  702,  702,  767,  766,
    799       765,  764,  763,  762,  761,  760,  759,  758,  757,  756,
    800       755,  754,  753,  752,  751,  750,  749,  748,  747,  746,
    801 
    802       745,  744,  743,  742,  741,  740,  739,  738,  737,  736,
    803       735,  734,  733,  732,  731,  730,  729,  728,  727,  726,
    804       725,  724,  723,  722,  721,  720,  719,  718,  717,  716,
    805       715,  714,  713,  712,  711,  710,  709,  708,  707,  706,
    806       705,  704,  703,  701,  700,  697,  696,  695,  694,  693,
    807       692,  691,  690,  689,  688,  687,  686,  685,  684,  683,
    808       682,  679,  678,  677,  676,  675,  674,  673,  672,  671,
    809       670,  669,  668,  662,  661,  660,  659,  658,  657,  656,
    810       655,  654,  653,  652,  651,  650,  649,  643,  642,  641,
    811       640,  639,  638,  637,  636,  635,  634,  633,  632,  631,
    812 
    813       630,  629,  622,  616,  615,  614,  613,  612,  611,  610,
    814       609,  608,  607,  606,  605,  604,  603,  602,  596,  595,
    815       594,  593,  592,  591,  590,  589,  588,  587,  586,  585,
    816       584,  583,  582,  576,  575,  574,  573,  572,  571,  570,
    817       569,  568,  567,  560,  559,  558,  557,  556,  555,  554,
    818       553,  552,  551,  550,  545,  544,  543,  542,  541,  540,
    819       539,  538,  537,  536,  535,  532,  531,  530,  529,  528,
    820       527,  521,  520,  519,  518,  517,  516,  515,  514,  513,
    821       512,  511,  510,  509,  508,  507,  506,  505,  504,  498,
    822       497,  496,  495,  494,  493,  492,  491,  490,  489,  488,
    823 
    824       487,  486,  485,  484,  483,  482,  481,  480,  479,  478,
    825       477,  476,  475,  474,  473,  472,  471,  470,  469,  468,
    826       467,  466,  465,  464,  463,  453,  452,  451,  450,  449,
    827       443,  442,  441,  440,  439,  438,  437,  436,  435,  434,
    828       433,  432,  431,  430,  429,  428,  427,  426,  422,  421,
    829       420,  419,  418,  417,  416,  415,  414,  413,  412,  411,
    830       410,  409,  408,  407,  406,  405,  404,  403,  402,  401,
    831       400,  399,  398,  397,  396,  395,  394,  393,  392,  388,
    832       387,  386,  385,  384,  383,  382,  381,  377,  373,  372,
    833       371,  370,  369,  365,  364,  363,  362,  361,  360,  359,
    834 
    835       358,  354,  353,  352,  349,  348,  347,  346,  345,  344,
    836       343,  339,  338,  337,  336,  335,  332,  331,  330,  329,
    837       328,  327,  326,  325,  324,  323,  322,  321,  320,  319,
    838       318,  317,  316,  315,  314,  313,  312,  311,  310,  309,
    839       308,  304,  303,  302,  301,  300,  299,  298,  297,  296,
    840       295,  294,  293,  292,  291,  290,  289,  288,  287,  286,
    841       285,  284,  283,  282,  281,  280,  279,  278,  277,  276,
    842       273,  272,  271,  268,  267,  266,  265,  264,  254,  253,
    843       252,  251,  250,  247,  246,  245,  238,  237,  236,  235,
    844       234,  233,  230,  229,  228,  227,  226,  225,  224,  223,
    845 
    846       220,  217,  216,  215,  212,  211,  210,  204,  203,  202,
    847       201,  200,  199,  198,  197,  192,  191,  190,  189,  188,
    848       187,  186,  185,  182,  181,  180,  179,  178,  177,  176,
    849       175,  174,  173,  172,  161,  149,  125,  109,   81,   69,
    850        63,   60,   59,  866,   57,   57,    7,  866,  866,  866,
    851       866,  866,  866,  866,  866,  866,  866,  866,  866,  866,
    852       866,  866,  866,  866,  866,  866,  866,  866,  866,  866,
    853       866,  866,  866,  866,  866,  866,  866,  866,  866,  866,
    854       866,  866,  866,  866,  866,  866,  866,  866,  866,  866,
    855       866,  866,  866,  866,  866,  866,  866,  866,  866,  866,
    856 
    857       866,  866,  866,  866,  866,  866,  866,  866,  866,  866,
    858       866,  866,  866,  866,  866,  866
    859     } ;
    860 
    861 static yyconst flex_int16_t yy_chk[1317] =
    862     {   0,
    863         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    864         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    865         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    866         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    867         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    868         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    869         1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
    870         9,  782,    9,    2,    3,    3,    3,    3,    3,    3,
    871         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    872         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    873 
    874         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    875         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    876         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    877         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    878         3,    3,    3,   13,   15,   25,   16,   17,   17,   17,
    879        17,   17,   17,   17,   21,   21,  785,   15,   16,   26,
    880        13,   19,   25,   19,   19,   19,   19,   19,   19,   19,
    881        23,   23,   36,  788,   26,   26,   36,  789,   19,   19,
    882        27,   29,   27,   39,   35,   29,   27,   19,   19,   28,
    883        30,   29,   30,   28,   37,   19,   19,   29,   35,   39,
    884 
    885        28,   30,   39,   28,   33,   47,  785,   47,   37,   47,
    886        19,   46,   33,   19,   20,   31,   20,   20,   20,   20,
    887        20,   20,   20,   31,   33,   50,   31,   50,  120,   31,
    888        34,   20,   20,   34,   40,   31,  120,   34,   34,   41,
    889        20,   58,   34,   58,   40,   34,   41,   41,   20,   20,
    890        42,   41,  124,   42,  790,   46,   43,   41,   41,  124,
    891        41,   43,   42,   20,   71,   43,   44,  793,   43,   42,
    892        44,   48,   48,   53,   53,   53,   53,   53,   53,   53,
    893        44,   68,   68,   70,   70,  148,   73,   73,  148,   71,
    894        73,   73,   73,   73,   73,   73,   73,  105,   68,   68,
    895 
    896        70,   70,   96,   96,  106,  126,  116,  135,  105,  116,
    897       116,  142,  142,  116,  144,  116,  143,   48,  106,  126,
    898       153,  153,  144,  135,   48,  143,  171,  152,   48,  152,
    899       160,  152,  160,   48,   72,  795,   72,   72,   72,   72,
    900        72,   72,   72,  154,  154,  166,  166,  180,  796,  171,
    901       639,   72,   72,  162,  162,  162,  162,  162,  162,  162,
    902       639,  180,  166,  166,  184,  184,  153,  241,   72,   72,
    903       215,  215,  215,  153,  625,  625,  241,  153,  247,  247,
    904       247,  798,  153,  268,  268,  268,  279,  279,  279,  154,
    905       288,  288,  288,  292,  292,  292,  154,  301,  301,  301,
    906 
    907       154,  799,  164,  164,  504,  154,  164,  164,  164,  164,
    908       164,  164,  164,  167,  167,  504,  802,  167,  167,  167,
    909       167,  167,  167,  167,  169,  169,  169,  169,  169,  169,
    910       169,  170,  170,  170,  170,  170,  170,  170,  256,  256,
    911       256,  256,  256,  256,  256,  663,  663,  170,  805,  257,
    912       257,  257,  257,  257,  257,  257,  338,  338,  338,  393,
    913       393,  393,  258,  258,  170,  257,  258,  258,  258,  258,
    914       258,  258,  258,  260,  260,  260,  260,  260,  260,  260,
    915       702,  702,  257,  261,  261,  261,  261,  261,  261,  261,
    916       350,  350,  350,  350,  350,  350,  350,  806,  807,  261,
    917 
    918       808,  351,  351,  351,  351,  351,  351,  351,  382,  382,
    919       382,  394,  394,  394,  809,  810,  261,  351,  811,  382,
    920       382,  395,  395,  395,  443,  443,  443,  483,  483,  483,
    921       490,  505,  607,  812,  351,  443,  443,  813,  483,  483,
    922       533,  533,  505,  607,  490,  490,  490,  490,  490,  490,
    923       490,  519,  519,  519,  533,  533,  533,  533,  533,  533,
    924       608,  766,  519,  519,  658,  519,  534,  534,  766,  787,
    925       608,  608,  814,  817,  658,  818,  554,  554,  554,  533,
    926       534,  534,  534,  534,  534,  534,  534,  554,  554,  574,
    927       574,  574,  577,  577,  803,  819,  820,  804,  582,  821,
    928 
    929       574,  574,  579,  579,  533,  804,  577,  577,  577,  577,
    930       577,  577,  577,  581,  581,  823,  579,  579,  579,  579,
    931       579,  579,  623,  623,  824,  787,  829,  581,  581,  581,
    932       581,  581,  581,  581,  582,  786,  623,  623,  623,  623,
    933       623,  623,  786,  582,  815,  832,  816,  833,  624,  624,
    934       803,  825,  815,  816,  582,  665,  665,  834,  836,  825,
    935       839,  623,  624,  624,  624,  624,  624,  624,  624,  665,
    936       665,  665,  665,  665,  665,  667,  667,  826,  841,  842,
    937       828,  844,  829,  845,  849,  826,  623,  828,  837,  667,
    938       667,  667,  667,  667,  667,  667,  837,  840,  846,  850,
    939 
    940       851,  853,  854,  856,  857,  840,  846,  850,  851,  859,
    941       854,  857,  858,  860,  861,  862,  839,  863,  864,  858,
    942       870,  871,  781,  780,  779,  863,  864,  778,  777,  776,
    943       775,  774,  771,  770,  769,  768,  767,  765,  764,  763,
    944       762,  761,  758,  757,  754,  753,  752,  751,  750,  748,
    945       747,  859,  746,  745,  743,  860,  867,  867,  867,  867,
    946       867,  868,  868,  868,  869,  869,  869,  872,  872,  873,
    947       741,  873,  873,  873,  874,  874,  875,  875,  738,  737,
    948       736,  734,  733,  732,  731,  729,  728,  727,  726,  725,
    949       724,  723,  722,  721,  720,  719,  718,  716,  715,  714,
    950 
    951       713,  712,  711,  710,  709,  707,  706,  705,  704,  703,
    952       701,  700,  699,  698,  697,  696,  695,  694,  693,  692,
    953       691,  690,  689,  688,  687,  686,  685,  684,  683,  682,
    954       681,  680,  679,  677,  676,  675,  674,  673,  672,  671,
    955       670,  669,  668,  661,  660,  657,  655,  654,  653,  652,
    956       651,  650,  649,  648,  647,  646,  645,  644,  643,  642,
    957       641,  638,  637,  636,  635,  634,  633,  631,  630,  629,
    958       628,  627,  626,  622,  621,  620,  619,  618,  617,  616,
    959       615,  614,  613,  612,  611,  610,  609,  603,  601,  600,
    960       599,  598,  597,  593,  592,  591,  590,  589,  588,  587,
    961 
    962       586,  585,  576,  572,  571,  569,  568,  566,  565,  564,
    963       563,  562,  561,  560,  559,  558,  557,  555,  553,  552,
    964       551,  550,  549,  548,  547,  546,  545,  544,  542,  541,
    965       537,  536,  535,  532,  531,  529,  528,  526,  525,  524,
    966       523,  522,  520,  518,  517,  516,  515,  514,  513,  511,
    967       510,  509,  508,  507,  503,  502,  501,  500,  499,  498,
    968       495,  494,  493,  492,  491,  489,  488,  487,  486,  485,
    969       484,  482,  481,  474,  473,  470,  469,  466,  465,  464,
    970       463,  452,  451,  450,  448,  447,  446,  445,  444,  441,
    971       439,  438,  437,  435,  434,  432,  431,  430,  429,  427,
    972 
    973       426,  421,  420,  418,  417,  416,  415,  414,  413,  412,
    974       411,  410,  409,  407,  406,  405,  404,  403,  402,  401,
    975       400,  399,  398,  397,  396,  392,  388,  387,  386,  383,
    976       381,  371,  369,  365,  364,  363,  362,  360,  358,  353,
    977       352,  349,  348,  347,  346,  345,  344,  339,  337,  336,
    978       335,  334,  333,  331,  330,  327,  326,  325,  324,  323,
    979       322,  321,  320,  319,  318,  317,  316,  315,  314,  313,
    980       312,  311,  310,  309,  308,  307,  306,  305,  302,  300,
    981       299,  298,  297,  296,  295,  294,  293,  291,  287,  285,
    982       284,  283,  282,  278,  277,  276,  275,  274,  273,  272,
    983 
    984       271,  267,  265,  264,  254,  253,  252,  251,  250,  249,
    985       248,  246,  245,  244,  243,  242,  240,  239,  238,  237,
    986       236,  235,  234,  233,  232,  231,  230,  229,  228,  227,
    987       226,  225,  224,  223,  222,  221,  220,  219,  218,  217,
    988       216,  214,  213,  212,  211,  210,  209,  208,  207,  206,
    989       205,  204,  203,  202,  201,  200,  199,  198,  196,  195,
    990       194,  193,  192,  191,  190,  189,  188,  187,  186,  185,
    991       183,  182,  181,  179,  178,  177,  176,  174,  159,  158,
    992       157,  156,  149,  147,  146,  145,  141,  140,  139,  138,
    993       137,  136,  134,  133,  132,  131,  130,  129,  128,  127,
    994 
    995       125,  123,  122,  121,  119,  118,  117,  115,  114,  112,
    996       111,  110,  109,  108,  107,  104,  103,  102,  101,  100,
    997        99,   98,   97,   95,   94,   93,   92,   91,   90,   89,
    998        88,   87,   83,   79,   52,   45,   38,   32,   22,   18,
    999        14,   12,   11,    7,    6,    5,  866,  866,  866,  866,
   1000       866,  866,  866,  866,  866,  866,  866,  866,  866,  866,
   1001       866,  866,  866,  866,  866,  866,  866,  866,  866,  866,
   1002       866,  866,  866,  866,  866,  866,  866,  866,  866,  866,
   1003       866,  866,  866,  866,  866,  866,  866,  866,  866,  866,
   1004       866,  866,  866,  866,  866,  866,  866,  866,  866,  866,
   1005 
   1006       866,  866,  866,  866,  866,  866,  866,  866,  866,  866,
   1007       866,  866,  866,  866,  866,  866
   1008     } ;
   1009 
   1010 /* The intent behind this definition is that it'll catch
   1011  * any uses of REJECT which flex missed.
   1012  */
   1013 #define REJECT reject_used_but_not_detected
   1014 #define yymore() yymore_used_but_not_detected
   1015 #define YY_MORE_ADJ 0
   1016 #define YY_RESTORE_YY_MORE_OFFSET
   1017 #line 1 "src/src/glsl/glsl_lexer.ll"
   1018 #line 2 "src/src/glsl/glsl_lexer.ll"
   1019 /*
   1020  * Copyright  2008, 2009 Intel Corporation
   1021  *
   1022  * Permission is hereby granted, free of charge, to any person obtaining a
   1023  * copy of this software and associated documentation files (the "Software"),
   1024  * to deal in the Software without restriction, including without limitation
   1025  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
   1026  * and/or sell copies of the Software, and to permit persons to whom the
   1027  * Software is furnished to do so, subject to the following conditions:
   1028  *
   1029  * The above copyright notice and this permission notice (including the next
   1030  * paragraph) shall be included in all copies or substantial portions of the
   1031  * Software.
   1032  *
   1033  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   1034  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   1035  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
   1036  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   1037  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
   1038  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
   1039  * DEALINGS IN THE SOFTWARE.
   1040  */
   1041 #include <ctype.h>
   1042 #include <limits.h>
   1043 #include "strtod.h"
   1044 #include "ast.h"
   1045 #include "glsl_parser_extras.h"
   1046 #include "glsl_parser.h"
   1047 
   1048 static int classify_identifier(struct _mesa_glsl_parse_state *, const char *);
   1049 
   1050 #ifdef _MSC_VER
   1051 #define YY_NO_UNISTD_H
   1052 #endif
   1053 
   1054 #define YY_USER_ACTION						\
   1055    do {								\
   1056       yylloc->source = 0;					\
   1057       yylloc->first_column = yycolumn + 1;			\
   1058       yylloc->first_line = yylineno + 1;			\
   1059       yycolumn += yyleng;					\
   1060    } while(0);
   1061 
   1062 #define YY_USER_INIT yylineno = 0; yycolumn = 0;
   1063 
   1064 /* A macro for handling reserved words and keywords across language versions.
   1065  *
   1066  * Certain words start out as identifiers, become reserved words in
   1067  * later language revisions, and finally become language keywords.
   1068  *
   1069  * For example, consider the following lexer rule:
   1070  * samplerBuffer       KEYWORD(130, 140, SAMPLERBUFFER)
   1071  *
   1072  * This means that "samplerBuffer" will be treated as:
   1073  * - a keyword (SAMPLERBUFFER token)         ...in GLSL >= 1.40
   1074  * - a reserved word - error                 ...in GLSL >= 1.30
   1075  * - an identifier                           ...in GLSL <  1.30
   1076  */
   1077 #define KEYWORD(reserved_version, allowed_version, token)		\
   1078    do {									\
   1079       if (yyextra->language_version >= allowed_version) {		\
   1080 	 return token;							\
   1081       } else if (yyextra->language_version >= reserved_version) {	\
   1082 	 _mesa_glsl_error(yylloc, yyextra,				\
   1083 			  "Illegal use of reserved word `%s'", yytext);	\
   1084 	 return ERROR_TOK;						\
   1085       } else {								\
   1086 	 yylval->identifier = strdup(yytext);				\
   1087 	 return classify_identifier(yyextra, yytext);			\
   1088       }									\
   1089    } while (0)
   1090 
   1091 /* The ES macro can be used in KEYWORD checks:
   1092  *
   1093  *    word      KEYWORD(110 || ES, 400, TOKEN)
   1094  * ...means the word is reserved in GLSL ES 1.00, while
   1095  *
   1096  *    word      KEYWORD(110, 130 || ES, TOKEN)
   1097  * ...means the word is a legal keyword in GLSL ES 1.00.
   1098  */
   1099 #define ES yyextra->es_shader
   1100 
   1101 static int
   1102 literal_integer(char *text, int len, struct _mesa_glsl_parse_state *state,
   1103 		YYSTYPE *lval, YYLTYPE *lloc, int base)
   1104 {
   1105    bool is_uint = (text[len - 1] == 'u' ||
   1106 		   text[len - 1] == 'U');
   1107    const char *digits = text;
   1108 
   1109    /* Skip "0x" */
   1110    if (base == 16)
   1111       digits += 2;
   1112 
   1113 #ifdef _MSC_VER
   1114    unsigned __int64 value = _strtoui64(digits, NULL, base);
   1115 #else
   1116    unsigned long long value = strtoull(digits, NULL, base);
   1117 #endif
   1118 
   1119    lval->n = (int)value;
   1120 
   1121    if (value > UINT_MAX) {
   1122       /* Note that signed 0xffffffff is valid, not out of range! */
   1123       if (state->language_version >= 130) {
   1124 	 _mesa_glsl_error(lloc, state,
   1125 			  "Literal value `%s' out of range", text);
   1126       } else {
   1127 	 _mesa_glsl_warning(lloc, state,
   1128 			    "Literal value `%s' out of range", text);
   1129       }
   1130    } else if (base == 10 && !is_uint && (unsigned)value > (unsigned)INT_MAX + 1) {
   1131       /* Tries to catch unintentionally providing a negative value.
   1132        * Note that -2147483648 is parsed as -(2147483648), so we don't
   1133        * want to warn for INT_MAX.
   1134        */
   1135       _mesa_glsl_warning(lloc, state,
   1136 			 "Signed literal value `%s' is interpreted as %d",
   1137 			 text, lval->n);
   1138    }
   1139    return is_uint ? UINTCONSTANT : INTCONSTANT;
   1140 }
   1141 
   1142 #define LITERAL_INTEGER(base) \
   1143    literal_integer(yytext, yyleng, yyextra, yylval, yylloc, base)
   1144 
   1145 
   1146 #line 1147 "src/chromium_gensrc/mesa/glsl_lexer.cc"
   1147 
   1148 #define INITIAL 0
   1149 #define PP 1
   1150 #define PRAGMA 2
   1151 
   1152 #define YY_EXTRA_TYPE struct _mesa_glsl_parse_state *
   1153 
   1154 /* Holds the entire state of the reentrant scanner. */
   1155 struct yyguts_t
   1156     {
   1157 
   1158     /* User-defined. Not touched by flex. */
   1159     YY_EXTRA_TYPE yyextra_r;
   1160 
   1161     /* The rest are the same as the globals declared in the non-reentrant scanner. */
   1162     FILE *yyin_r, *yyout_r;
   1163     size_t yy_buffer_stack_top; /**< index of top of stack. */
   1164     size_t yy_buffer_stack_max; /**< capacity of stack. */
   1165     YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
   1166     char yy_hold_char;
   1167     int yy_n_chars;
   1168     int yyleng_r;
   1169     char *yy_c_buf_p;
   1170     int yy_init;
   1171     int yy_start;
   1172     int yy_did_buffer_switch_on_eof;
   1173     int yy_start_stack_ptr;
   1174     int yy_start_stack_depth;
   1175     int *yy_start_stack;
   1176     yy_state_type yy_last_accepting_state;
   1177     char* yy_last_accepting_cpos;
   1178 
   1179     int yylineno_r;
   1180     int yy_flex_debug_r;
   1181 
   1182     char *yytext_r;
   1183     int yy_more_flag;
   1184     int yy_more_len;
   1185 
   1186     YYSTYPE * yylval_r;
   1187 
   1188     YYLTYPE * yylloc_r;
   1189 
   1190     }; /* end struct yyguts_t */
   1191 
   1192 static int yy_init_globals (yyscan_t yyscanner );
   1193 
   1194     /* This must go here because YYSTYPE and YYLTYPE are included
   1195      * from bison output in section 1.*/
   1196     #    define yylval yyg->yylval_r
   1197 
   1198     #    define yylloc yyg->yylloc_r
   1199 
   1200 int _mesa_glsl_lex_init (yyscan_t* scanner);
   1201 
   1202 int _mesa_glsl_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
   1203 
   1204 /* Accessor methods to globals.
   1205    These are made visible to non-reentrant scanners for convenience. */
   1206 
   1207 int _mesa_glsl_lex_destroy (yyscan_t yyscanner );
   1208 
   1209 int _mesa_glsl_get_debug (yyscan_t yyscanner );
   1210 
   1211 void _mesa_glsl_set_debug (int debug_flag ,yyscan_t yyscanner );
   1212 
   1213 YY_EXTRA_TYPE _mesa_glsl_get_extra (yyscan_t yyscanner );
   1214 
   1215 void _mesa_glsl_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
   1216 
   1217 FILE *_mesa_glsl_get_in (yyscan_t yyscanner );
   1218 
   1219 void _mesa_glsl_set_in  (FILE * in_str ,yyscan_t yyscanner );
   1220 
   1221 FILE *_mesa_glsl_get_out (yyscan_t yyscanner );
   1222 
   1223 void _mesa_glsl_set_out  (FILE * out_str ,yyscan_t yyscanner );
   1224 
   1225 int _mesa_glsl_get_leng (yyscan_t yyscanner );
   1226 
   1227 char *_mesa_glsl_get_text (yyscan_t yyscanner );
   1228 
   1229 int _mesa_glsl_get_lineno (yyscan_t yyscanner );
   1230 
   1231 void _mesa_glsl_set_lineno (int line_number ,yyscan_t yyscanner );
   1232 
   1233 YYSTYPE * _mesa_glsl_get_lval (yyscan_t yyscanner );
   1234 
   1235 void _mesa_glsl_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
   1236 
   1237        YYLTYPE *_mesa_glsl_get_lloc (yyscan_t yyscanner );
   1238 
   1239         void _mesa_glsl_set_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
   1240 
   1241 /* Macros after this point can all be overridden by user definitions in
   1242  * section 1.
   1243  */
   1244 
   1245 #ifndef YY_SKIP_YYWRAP
   1246 #ifdef __cplusplus
   1247 extern "C" int _mesa_glsl_wrap (yyscan_t yyscanner );
   1248 #else
   1249 extern int _mesa_glsl_wrap (yyscan_t yyscanner );
   1250 #endif
   1251 #endif
   1252 
   1253 #ifndef yytext_ptr
   1254 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
   1255 #endif
   1256 
   1257 #ifdef YY_NEED_STRLEN
   1258 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
   1259 #endif
   1260 
   1261 #ifndef YY_NO_INPUT
   1262 
   1263 #ifdef __cplusplus
   1264 static int yyinput (yyscan_t yyscanner );
   1265 #else
   1266 static int input (yyscan_t yyscanner );
   1267 #endif
   1268 
   1269 #endif
   1270 
   1271 /* Amount of stuff to slurp up with each read. */
   1272 #ifndef YY_READ_BUF_SIZE
   1273 #ifdef __ia64__
   1274 /* On IA-64, the buffer size is 16k, not 8k */
   1275 #define YY_READ_BUF_SIZE 16384
   1276 #else
   1277 #define YY_READ_BUF_SIZE 8192
   1278 #endif /* __ia64__ */
   1279 #endif
   1280 
   1281 /* Copy whatever the last rule matched to the standard output. */
   1282 #ifndef ECHO
   1283 /* This used to be an fputs(), but since the string might contain NUL's,
   1284  * we now use fwrite().
   1285  */
   1286 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
   1287 #endif
   1288 
   1289 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
   1290  * is returned in "result".
   1291  */
   1292 #ifndef YY_INPUT
   1293 #define YY_INPUT(buf,result,max_size) \
   1294 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
   1295 		{ \
   1296 		int c = '*'; \
   1297 		size_t n; \
   1298 		for ( n = 0; n < max_size && \
   1299 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
   1300 			buf[n] = (char) c; \
   1301 		if ( c == '\n' ) \
   1302 			buf[n++] = (char) c; \
   1303 		if ( c == EOF && ferror( yyin ) ) \
   1304 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
   1305 		result = n; \
   1306 		} \
   1307 	else \
   1308 		{ \
   1309 		errno=0; \
   1310 		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
   1311 			{ \
   1312 			if( errno != EINTR) \
   1313 				{ \
   1314 				YY_FATAL_ERROR( "input in flex scanner failed" ); \
   1315 				break; \
   1316 				} \
   1317 			errno=0; \
   1318 			clearerr(yyin); \
   1319 			} \
   1320 		}\
   1321 \
   1322 
   1323 #endif
   1324 
   1325 /* No semi-colon after return; correct usage is to write "yyterminate();" -
   1326  * we don't want an extra ';' after the "return" because that will cause
   1327  * some compilers to complain about unreachable statements.
   1328  */
   1329 #ifndef yyterminate
   1330 #define yyterminate() return YY_NULL
   1331 #endif
   1332 
   1333 /* Number of entries by which start-condition stack grows. */
   1334 #ifndef YY_START_STACK_INCR
   1335 #define YY_START_STACK_INCR 25
   1336 #endif
   1337 
   1338 /* Report a fatal error. */
   1339 #ifndef YY_FATAL_ERROR
   1340 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
   1341 #endif
   1342 
   1343 /* end tables serialization structures and prototypes */
   1344 
   1345 /* Default declaration of generated scanner - a define so the user can
   1346  * easily add parameters.
   1347  */
   1348 #ifndef YY_DECL
   1349 #define YY_DECL_IS_OURS 1
   1350 
   1351 extern int _mesa_glsl_lex \
   1352                (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
   1353 
   1354 #define YY_DECL int _mesa_glsl_lex \
   1355                (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
   1356 #endif /* !YY_DECL */
   1357 
   1358 /* Code executed at the beginning of each rule, after yytext and yyleng
   1359  * have been set up.
   1360  */
   1361 #ifndef YY_USER_ACTION
   1362 #define YY_USER_ACTION
   1363 #endif
   1364 
   1365 /* Code executed at the end of each rule. */
   1366 #ifndef YY_BREAK
   1367 #define YY_BREAK break;
   1368 #endif
   1369 
   1370 #define YY_RULE_SETUP \
   1371 	if ( yyleng > 0 ) \
   1372 		YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
   1373 				(yytext[yyleng - 1] == '\n'); \
   1374 	YY_USER_ACTION
   1375 
   1376 /** The main scanner function which does all the work.
   1377  */
   1378 YY_DECL
   1379 {
   1380 	register yy_state_type yy_current_state;
   1381 	register char *yy_cp, *yy_bp;
   1382 	register int yy_act;
   1383     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   1384 
   1385 #line 145 "src/src/glsl/glsl_lexer.ll"
   1386 
   1387 
   1388 #line 1389 "src/chromium_gensrc/mesa/glsl_lexer.cc"
   1389 
   1390     yylval = yylval_param;
   1391 
   1392     yylloc = yylloc_param;
   1393 
   1394 	if ( !yyg->yy_init )
   1395 		{
   1396 		yyg->yy_init = 1;
   1397 
   1398 #ifdef YY_USER_INIT
   1399 		YY_USER_INIT;
   1400 #endif
   1401 
   1402 		if ( ! yyg->yy_start )
   1403 			yyg->yy_start = 1;	/* first start state */
   1404 
   1405 		if ( ! yyin )
   1406 			yyin = stdin;
   1407 
   1408 		if ( ! yyout )
   1409 			yyout = stdout;
   1410 
   1411 		if ( ! YY_CURRENT_BUFFER ) {
   1412 			_mesa_glsl_ensure_buffer_stack (yyscanner);
   1413 			YY_CURRENT_BUFFER_LVALUE =
   1414 				_mesa_glsl__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
   1415 		}
   1416 
   1417 		_mesa_glsl__load_buffer_state(yyscanner );
   1418 		}
   1419 
   1420 	while ( 1 )		/* loops until end-of-file is reached */
   1421 		{
   1422 		yy_cp = yyg->yy_c_buf_p;
   1423 
   1424 		/* Support of yytext. */
   1425 		*yy_cp = yyg->yy_hold_char;
   1426 
   1427 		/* yy_bp points to the position in yy_ch_buf of the start of
   1428 		 * the current run.
   1429 		 */
   1430 		yy_bp = yy_cp;
   1431 
   1432 		yy_current_state = yyg->yy_start;
   1433 		yy_current_state += YY_AT_BOL();
   1434 yy_match:
   1435 		do
   1436 			{
   1437 			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
   1438 			if ( yy_accept[yy_current_state] )
   1439 				{
   1440 				yyg->yy_last_accepting_state = yy_current_state;
   1441 				yyg->yy_last_accepting_cpos = yy_cp;
   1442 				}
   1443 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
   1444 				{
   1445 				yy_current_state = (int) yy_def[yy_current_state];
   1446 				if ( yy_current_state >= 867 )
   1447 					yy_c = yy_meta[(unsigned int) yy_c];
   1448 				}
   1449 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
   1450 			++yy_cp;
   1451 			}
   1452 		while ( yy_current_state != 866 );
   1453 		yy_cp = yyg->yy_last_accepting_cpos;
   1454 		yy_current_state = yyg->yy_last_accepting_state;
   1455 
   1456 yy_find_action:
   1457 		yy_act = yy_accept[yy_current_state];
   1458 
   1459 		YY_DO_BEFORE_ACTION;
   1460 
   1461 do_action:	/* This label is used only to access EOF actions. */
   1462 
   1463 		switch ( yy_act )
   1464 	{ /* beginning of action switch */
   1465 			case 0: /* must back up */
   1466 			/* undo the effects of YY_DO_BEFORE_ACTION */
   1467 			*yy_cp = yyg->yy_hold_char;
   1468 			yy_cp = yyg->yy_last_accepting_cpos;
   1469 			yy_current_state = yyg->yy_last_accepting_state;
   1470 			goto yy_find_action;
   1471 
   1472 case 1:
   1473 YY_RULE_SETUP
   1474 #line 147 "src/src/glsl/glsl_lexer.ll"
   1475 ;
   1476 	YY_BREAK
   1477 /* Preprocessor tokens. */
   1478 case 2:
   1479 *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
   1480 yyg->yy_c_buf_p = yy_cp -= 1;
   1481 YY_DO_BEFORE_ACTION; /* set up yytext again */
   1482 YY_RULE_SETUP
   1483 #line 150 "src/src/glsl/glsl_lexer.ll"
   1484 ;
   1485 	YY_BREAK
   1486 case 3:
   1487 YY_RULE_SETUP
   1488 #line 151 "src/src/glsl/glsl_lexer.ll"
   1489 { BEGIN PP; return VERSION_TOK; }
   1490 	YY_BREAK
   1491 case 4:
   1492 YY_RULE_SETUP
   1493 #line 152 "src/src/glsl/glsl_lexer.ll"
   1494 { BEGIN PP; return EXTENSION; }
   1495 	YY_BREAK
   1496 case 5:
   1497 *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
   1498 yyg->yy_c_buf_p = yy_cp -= 1;
   1499 YY_DO_BEFORE_ACTION; /* set up yytext again */
   1500 YY_RULE_SETUP
   1501 #line 153 "src/src/glsl/glsl_lexer.ll"
   1502 {
   1503 				   /* Eat characters until the first digit is
   1504 				    * encountered
   1505 				    */
   1506 				   char *ptr = yytext;
   1507 				   while (!isdigit(*ptr))
   1508 				      ptr++;
   1509 
   1510 				   /* Subtract one from the line number because
   1511 				    * yylineno is zero-based instead of
   1512 				    * one-based.
   1513 				    */
   1514 				   yylineno = strtol(ptr, &ptr, 0) - 1;
   1515 				   yylloc->source = strtol(ptr, NULL, 0);
   1516 				}
   1517 	YY_BREAK
   1518 case 6:
   1519 *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
   1520 yyg->yy_c_buf_p = yy_cp -= 1;
   1521 YY_DO_BEFORE_ACTION; /* set up yytext again */
   1522 YY_RULE_SETUP
   1523 #line 168 "src/src/glsl/glsl_lexer.ll"
   1524 {
   1525 				   /* Eat characters until the first digit is
   1526 				    * encountered
   1527 				    */
   1528 				   char *ptr = yytext;
   1529 				   while (!isdigit(*ptr))
   1530 				      ptr++;
   1531 
   1532 				   /* Subtract one from the line number because
   1533 				    * yylineno is zero-based instead of
   1534 				    * one-based.
   1535 				    */
   1536 				   yylineno = strtol(ptr, &ptr, 0) - 1;
   1537 				}
   1538 	YY_BREAK
   1539 case 7:
   1540 YY_RULE_SETUP
   1541 #line 182 "src/src/glsl/glsl_lexer.ll"
   1542 {
   1543 				  BEGIN PP;
   1544 				  return PRAGMA_DEBUG_ON;
   1545 				}
   1546 	YY_BREAK
   1547 case 8:
   1548 YY_RULE_SETUP
   1549 #line 186 "src/src/glsl/glsl_lexer.ll"
   1550 {
   1551 				  BEGIN PP;
   1552 				  return PRAGMA_DEBUG_OFF;
   1553 				}
   1554 	YY_BREAK
   1555 case 9:
   1556 YY_RULE_SETUP
   1557 #line 190 "src/src/glsl/glsl_lexer.ll"
   1558 {
   1559 				  BEGIN PP;
   1560 				  return PRAGMA_OPTIMIZE_ON;
   1561 				}
   1562 	YY_BREAK
   1563 case 10:
   1564 YY_RULE_SETUP
   1565 #line 194 "src/src/glsl/glsl_lexer.ll"
   1566 {
   1567 				  BEGIN PP;
   1568 				  return PRAGMA_OPTIMIZE_OFF;
   1569 				}
   1570 	YY_BREAK
   1571 case 11:
   1572 YY_RULE_SETUP
   1573 #line 198 "src/src/glsl/glsl_lexer.ll"
   1574 {
   1575 				  BEGIN PP;
   1576 				  return PRAGMA_INVARIANT_ALL;
   1577 				}
   1578 	YY_BREAK
   1579 case 12:
   1580 YY_RULE_SETUP
   1581 #line 202 "src/src/glsl/glsl_lexer.ll"
   1582 { BEGIN PRAGMA; }
   1583 	YY_BREAK
   1584 case 13:
   1585 /* rule 13 can match eol */
   1586 YY_RULE_SETUP
   1587 #line 204 "src/src/glsl/glsl_lexer.ll"
   1588 { BEGIN 0; yylineno++; yycolumn = 0; }
   1589 	YY_BREAK
   1590 case 14:
   1591 YY_RULE_SETUP
   1592 #line 205 "src/src/glsl/glsl_lexer.ll"
   1593 { }
   1594 	YY_BREAK
   1595 case 15:
   1596 YY_RULE_SETUP
   1597 #line 207 "src/src/glsl/glsl_lexer.ll"
   1598 { }
   1599 	YY_BREAK
   1600 case 16:
   1601 YY_RULE_SETUP
   1602 #line 208 "src/src/glsl/glsl_lexer.ll"
   1603 { }
   1604 	YY_BREAK
   1605 case 17:
   1606 YY_RULE_SETUP
   1607 #line 209 "src/src/glsl/glsl_lexer.ll"
   1608 return COLON;
   1609 	YY_BREAK
   1610 case 18:
   1611 YY_RULE_SETUP
   1612 #line 210 "src/src/glsl/glsl_lexer.ll"
   1613 {
   1614 				   yylval->identifier = strdup(yytext);
   1615 				   return IDENTIFIER;
   1616 				}
   1617 	YY_BREAK
   1618 case 19:
   1619 YY_RULE_SETUP
   1620 #line 214 "src/src/glsl/glsl_lexer.ll"
   1621 {
   1622 				    yylval->n = strtol(yytext, NULL, 10);
   1623 				    return INTCONSTANT;
   1624 				}
   1625 	YY_BREAK
   1626 case 20:
   1627 /* rule 20 can match eol */
   1628 YY_RULE_SETUP
   1629 #line 218 "src/src/glsl/glsl_lexer.ll"
   1630 { BEGIN 0; yylineno++; yycolumn = 0; return EOL; }
   1631 	YY_BREAK
   1632 case 21:
   1633 /* rule 21 can match eol */
   1634 YY_RULE_SETUP
   1635 #line 220 "src/src/glsl/glsl_lexer.ll"
   1636 { yylineno++; yycolumn = 0; }
   1637 	YY_BREAK
   1638 case 22:
   1639 YY_RULE_SETUP
   1640 #line 222 "src/src/glsl/glsl_lexer.ll"
   1641 return ATTRIBUTE;
   1642 	YY_BREAK
   1643 case 23:
   1644 YY_RULE_SETUP
   1645 #line 223 "src/src/glsl/glsl_lexer.ll"
   1646 return CONST_TOK;
   1647 	YY_BREAK
   1648 case 24:
   1649 YY_RULE_SETUP
   1650 #line 224 "src/src/glsl/glsl_lexer.ll"
   1651 return BOOL_TOK;
   1652 	YY_BREAK
   1653 case 25:
   1654 YY_RULE_SETUP
   1655 #line 225 "src/src/glsl/glsl_lexer.ll"
   1656 return FLOAT_TOK;
   1657 	YY_BREAK
   1658 case 26:
   1659 YY_RULE_SETUP
   1660 #line 226 "src/src/glsl/glsl_lexer.ll"
   1661 return INT_TOK;
   1662 	YY_BREAK
   1663 case 27:
   1664 YY_RULE_SETUP
   1665 #line 227 "src/src/glsl/glsl_lexer.ll"
   1666 KEYWORD(130, 130, UINT_TOK);
   1667 	YY_BREAK
   1668 case 28:
   1669 YY_RULE_SETUP
   1670 #line 229 "src/src/glsl/glsl_lexer.ll"
   1671 return BREAK;
   1672 	YY_BREAK
   1673 case 29:
   1674 YY_RULE_SETUP
   1675 #line 230 "src/src/glsl/glsl_lexer.ll"
   1676 return CONTINUE;
   1677 	YY_BREAK
   1678 case 30:
   1679 YY_RULE_SETUP
   1680 #line 231 "src/src/glsl/glsl_lexer.ll"
   1681 return DO;
   1682 	YY_BREAK
   1683 case 31:
   1684 YY_RULE_SETUP
   1685 #line 232 "src/src/glsl/glsl_lexer.ll"
   1686 return WHILE;
   1687 	YY_BREAK
   1688 case 32:
   1689 YY_RULE_SETUP
   1690 #line 233 "src/src/glsl/glsl_lexer.ll"
   1691 return ELSE;
   1692 	YY_BREAK
   1693 case 33:
   1694 YY_RULE_SETUP
   1695 #line 234 "src/src/glsl/glsl_lexer.ll"
   1696 return FOR;
   1697 	YY_BREAK
   1698 case 34:
   1699 YY_RULE_SETUP
   1700 #line 235 "src/src/glsl/glsl_lexer.ll"
   1701 return IF;
   1702 	YY_BREAK
   1703 case 35:
   1704 YY_RULE_SETUP
   1705 #line 236 "src/src/glsl/glsl_lexer.ll"
   1706 return DISCARD;
   1707 	YY_BREAK
   1708 case 36:
   1709 YY_RULE_SETUP
   1710 #line 237 "src/src/glsl/glsl_lexer.ll"
   1711 return RETURN;
   1712 	YY_BREAK
   1713 case 37:
   1714 YY_RULE_SETUP
   1715 #line 239 "src/src/glsl/glsl_lexer.ll"
   1716 return BVEC2;
   1717 	YY_BREAK
   1718 case 38:
   1719 YY_RULE_SETUP
   1720 #line 240 "src/src/glsl/glsl_lexer.ll"
   1721 return BVEC3;
   1722 	YY_BREAK
   1723 case 39:
   1724 YY_RULE_SETUP
   1725 #line 241 "src/src/glsl/glsl_lexer.ll"
   1726 return BVEC4;
   1727 	YY_BREAK
   1728 case 40:
   1729 YY_RULE_SETUP
   1730 #line 242 "src/src/glsl/glsl_lexer.ll"
   1731 return IVEC2;
   1732 	YY_BREAK
   1733 case 41:
   1734 YY_RULE_SETUP
   1735 #line 243 "src/src/glsl/glsl_lexer.ll"
   1736 return IVEC3;
   1737 	YY_BREAK
   1738 case 42:
   1739 YY_RULE_SETUP
   1740 #line 244 "src/src/glsl/glsl_lexer.ll"
   1741 return IVEC4;
   1742 	YY_BREAK
   1743 case 43:
   1744 YY_RULE_SETUP
   1745 #line 245 "src/src/glsl/glsl_lexer.ll"
   1746 KEYWORD(130, 130, UVEC2);
   1747 	YY_BREAK
   1748 case 44:
   1749 YY_RULE_SETUP
   1750 #line 246 "src/src/glsl/glsl_lexer.ll"
   1751 KEYWORD(130, 130, UVEC3);
   1752 	YY_BREAK
   1753 case 45:
   1754 YY_RULE_SETUP
   1755 #line 247 "src/src/glsl/glsl_lexer.ll"
   1756 KEYWORD(130, 130, UVEC4);
   1757 	YY_BREAK
   1758 case 46:
   1759 YY_RULE_SETUP
   1760 #line 248 "src/src/glsl/glsl_lexer.ll"
   1761 return VEC2;
   1762 	YY_BREAK
   1763 case 47:
   1764 YY_RULE_SETUP
   1765 #line 249 "src/src/glsl/glsl_lexer.ll"
   1766 return VEC3;
   1767 	YY_BREAK
   1768 case 48:
   1769 YY_RULE_SETUP
   1770 #line 250 "src/src/glsl/glsl_lexer.ll"
   1771 return VEC4;
   1772 	YY_BREAK
   1773 case 49:
   1774 YY_RULE_SETUP
   1775 #line 251 "src/src/glsl/glsl_lexer.ll"
   1776 return MAT2X2;
   1777 	YY_BREAK
   1778 case 50:
   1779 YY_RULE_SETUP
   1780 #line 252 "src/src/glsl/glsl_lexer.ll"
   1781 return MAT3X3;
   1782 	YY_BREAK
   1783 case 51:
   1784 YY_RULE_SETUP
   1785 #line 253 "src/src/glsl/glsl_lexer.ll"
   1786 return MAT4X4;
   1787 	YY_BREAK
   1788 case 52:
   1789 YY_RULE_SETUP
   1790 #line 254 "src/src/glsl/glsl_lexer.ll"
   1791 KEYWORD(120, 120, MAT2X2);
   1792 	YY_BREAK
   1793 case 53:
   1794 YY_RULE_SETUP
   1795 #line 255 "src/src/glsl/glsl_lexer.ll"
   1796 KEYWORD(120, 120, MAT2X3);
   1797 	YY_BREAK
   1798 case 54:
   1799 YY_RULE_SETUP
   1800 #line 256 "src/src/glsl/glsl_lexer.ll"
   1801 KEYWORD(120, 120, MAT2X4);
   1802 	YY_BREAK
   1803 case 55:
   1804 YY_RULE_SETUP
   1805 #line 257 "src/src/glsl/glsl_lexer.ll"
   1806 KEYWORD(120, 120, MAT3X2);
   1807 	YY_BREAK
   1808 case 56:
   1809 YY_RULE_SETUP
   1810 #line 258 "src/src/glsl/glsl_lexer.ll"
   1811 KEYWORD(120, 120, MAT3X3);
   1812 	YY_BREAK
   1813 case 57:
   1814 YY_RULE_SETUP
   1815 #line 259 "src/src/glsl/glsl_lexer.ll"
   1816 KEYWORD(120, 120, MAT3X4);
   1817 	YY_BREAK
   1818 case 58:
   1819 YY_RULE_SETUP
   1820 #line 260 "src/src/glsl/glsl_lexer.ll"
   1821 KEYWORD(120, 120, MAT4X2);
   1822 	YY_BREAK
   1823 case 59:
   1824 YY_RULE_SETUP
   1825 #line 261 "src/src/glsl/glsl_lexer.ll"
   1826 KEYWORD(120, 120, MAT4X3);
   1827 	YY_BREAK
   1828 case 60:
   1829 YY_RULE_SETUP
   1830 #line 262 "src/src/glsl/glsl_lexer.ll"
   1831 KEYWORD(120, 120, MAT4X4);
   1832 	YY_BREAK
   1833 case 61:
   1834 YY_RULE_SETUP
   1835 #line 264 "src/src/glsl/glsl_lexer.ll"
   1836 return IN_TOK;
   1837 	YY_BREAK
   1838 case 62:
   1839 YY_RULE_SETUP
   1840 #line 265 "src/src/glsl/glsl_lexer.ll"
   1841 return OUT_TOK;
   1842 	YY_BREAK
   1843 case 63:
   1844 YY_RULE_SETUP
   1845 #line 266 "src/src/glsl/glsl_lexer.ll"
   1846 return INOUT_TOK;
   1847 	YY_BREAK
   1848 case 64:
   1849 YY_RULE_SETUP
   1850 #line 267 "src/src/glsl/glsl_lexer.ll"
   1851 return UNIFORM;
   1852 	YY_BREAK
   1853 case 65:
   1854 YY_RULE_SETUP
   1855 #line 268 "src/src/glsl/glsl_lexer.ll"
   1856 return VARYING;
   1857 	YY_BREAK
   1858 case 66:
   1859 YY_RULE_SETUP
   1860 #line 269 "src/src/glsl/glsl_lexer.ll"
   1861 KEYWORD(120, 120, CENTROID);
   1862 	YY_BREAK
   1863 case 67:
   1864 YY_RULE_SETUP
   1865 #line 270 "src/src/glsl/glsl_lexer.ll"
   1866 KEYWORD(120 || ES, 120 || ES, INVARIANT);
   1867 	YY_BREAK
   1868 case 68:
   1869 YY_RULE_SETUP
   1870 #line 271 "src/src/glsl/glsl_lexer.ll"
   1871 KEYWORD(130 || ES, 130, FLAT);
   1872 	YY_BREAK
   1873 case 69:
   1874 YY_RULE_SETUP
   1875 #line 272 "src/src/glsl/glsl_lexer.ll"
   1876 KEYWORD(130, 130, SMOOTH);
   1877 	YY_BREAK
   1878 case 70:
   1879 YY_RULE_SETUP
   1880 #line 273 "src/src/glsl/glsl_lexer.ll"
   1881 KEYWORD(130, 130, NOPERSPECTIVE);
   1882 	YY_BREAK
   1883 case 71:
   1884 YY_RULE_SETUP
   1885 #line 275 "src/src/glsl/glsl_lexer.ll"
   1886 return SAMPLER1D;
   1887 	YY_BREAK
   1888 case 72:
   1889 YY_RULE_SETUP
   1890 #line 276 "src/src/glsl/glsl_lexer.ll"
   1891 return SAMPLER2D;
   1892 	YY_BREAK
   1893 case 73:
   1894 YY_RULE_SETUP
   1895 #line 277 "src/src/glsl/glsl_lexer.ll"
   1896 return SAMPLER3D;
   1897 	YY_BREAK
   1898 case 74:
   1899 YY_RULE_SETUP
   1900 #line 278 "src/src/glsl/glsl_lexer.ll"
   1901 return SAMPLERCUBE;
   1902 	YY_BREAK
   1903 case 75:
   1904 YY_RULE_SETUP
   1905 #line 279 "src/src/glsl/glsl_lexer.ll"
   1906 KEYWORD(130, 130, SAMPLER1DARRAY);
   1907 	YY_BREAK
   1908 case 76:
   1909 YY_RULE_SETUP
   1910 #line 280 "src/src/glsl/glsl_lexer.ll"
   1911 KEYWORD(130, 130, SAMPLER2DARRAY);
   1912 	YY_BREAK
   1913 case 77:
   1914 YY_RULE_SETUP
   1915 #line 281 "src/src/glsl/glsl_lexer.ll"
   1916 return SAMPLER1DSHADOW;
   1917 	YY_BREAK
   1918 case 78:
   1919 YY_RULE_SETUP
   1920 #line 282 "src/src/glsl/glsl_lexer.ll"
   1921 return SAMPLER2DSHADOW;
   1922 	YY_BREAK
   1923 case 79:
   1924 YY_RULE_SETUP
   1925 #line 283 "src/src/glsl/glsl_lexer.ll"
   1926 KEYWORD(130, 130, SAMPLERCUBESHADOW);
   1927 	YY_BREAK
   1928 case 80:
   1929 YY_RULE_SETUP
   1930 #line 284 "src/src/glsl/glsl_lexer.ll"
   1931 KEYWORD(130, 130, SAMPLER1DARRAYSHADOW);
   1932 	YY_BREAK
   1933 case 81:
   1934 YY_RULE_SETUP
   1935 #line 285 "src/src/glsl/glsl_lexer.ll"
   1936 KEYWORD(130, 130, SAMPLER2DARRAYSHADOW);
   1937 	YY_BREAK
   1938 case 82:
   1939 YY_RULE_SETUP
   1940 #line 286 "src/src/glsl/glsl_lexer.ll"
   1941 KEYWORD(130, 130, ISAMPLER1D);
   1942 	YY_BREAK
   1943 case 83:
   1944 YY_RULE_SETUP
   1945 #line 287 "src/src/glsl/glsl_lexer.ll"
   1946 KEYWORD(130, 130, ISAMPLER2D);
   1947 	YY_BREAK
   1948 case 84:
   1949 YY_RULE_SETUP
   1950 #line 288 "src/src/glsl/glsl_lexer.ll"
   1951 KEYWORD(130, 130, ISAMPLER3D);
   1952 	YY_BREAK
   1953 case 85:
   1954 YY_RULE_SETUP
   1955 #line 289 "src/src/glsl/glsl_lexer.ll"
   1956 KEYWORD(130, 130, ISAMPLERCUBE);
   1957 	YY_BREAK
   1958 case 86:
   1959 YY_RULE_SETUP
   1960 #line 290 "src/src/glsl/glsl_lexer.ll"
   1961 KEYWORD(130, 130, ISAMPLER1DARRAY);
   1962 	YY_BREAK
   1963 case 87:
   1964 YY_RULE_SETUP
   1965 #line 291 "src/src/glsl/glsl_lexer.ll"
   1966 KEYWORD(130, 130, ISAMPLER2DARRAY);
   1967 	YY_BREAK
   1968 case 88:
   1969 YY_RULE_SETUP
   1970 #line 292 "src/src/glsl/glsl_lexer.ll"
   1971 KEYWORD(130, 130, USAMPLER1D);
   1972 	YY_BREAK
   1973 case 89:
   1974 YY_RULE_SETUP
   1975 #line 293 "src/src/glsl/glsl_lexer.ll"
   1976 KEYWORD(130, 130, USAMPLER2D);
   1977 	YY_BREAK
   1978 case 90:
   1979 YY_RULE_SETUP
   1980 #line 294 "src/src/glsl/glsl_lexer.ll"
   1981 KEYWORD(130, 130, USAMPLER3D);
   1982 	YY_BREAK
   1983 case 91:
   1984 YY_RULE_SETUP
   1985 #line 295 "src/src/glsl/glsl_lexer.ll"
   1986 KEYWORD(130, 130, USAMPLERCUBE);
   1987 	YY_BREAK
   1988 case 92:
   1989 YY_RULE_SETUP
   1990 #line 296 "src/src/glsl/glsl_lexer.ll"
   1991 KEYWORD(130, 130, USAMPLER1DARRAY);
   1992 	YY_BREAK
   1993 case 93:
   1994 YY_RULE_SETUP
   1995 #line 297 "src/src/glsl/glsl_lexer.ll"
   1996 KEYWORD(130, 130, USAMPLER2DARRAY);
   1997 	YY_BREAK
   1998 case 94:
   1999 YY_RULE_SETUP
   2000 #line 299 "src/src/glsl/glsl_lexer.ll"
   2001 {
   2002 			  if (yyextra->OES_EGL_image_external_enable)
   2003 			     return SAMPLEREXTERNALOES;
   2004 			  else
   2005 			     return IDENTIFIER;
   2006 			}
   2007 	YY_BREAK
   2008 case 95:
   2009 YY_RULE_SETUP
   2010 #line 307 "src/src/glsl/glsl_lexer.ll"
   2011 return STRUCT;
   2012 	YY_BREAK
   2013 case 96:
   2014 YY_RULE_SETUP
   2015 #line 308 "src/src/glsl/glsl_lexer.ll"
   2016 return VOID_TOK;
   2017 	YY_BREAK
   2018 case 97:
   2019 YY_RULE_SETUP
   2020 #line 310 "src/src/glsl/glsl_lexer.ll"
   2021 {
   2022 		  if ((yyextra->language_version >= 140)
   2023 		      || yyextra->AMD_conservative_depth_enable
   2024 		      || yyextra->ARB_conservative_depth_enable
   2025 		      || yyextra->ARB_explicit_attrib_location_enable
   2026 		      || yyextra->ARB_uniform_buffer_object_enable
   2027 		      || yyextra->ARB_fragment_coord_conventions_enable) {
   2028 		      return LAYOUT_TOK;
   2029 		   } else {
   2030 		      yylval->identifier = strdup(yytext);
   2031 		      return IDENTIFIER;
   2032 		   }
   2033 		}
   2034 	YY_BREAK
   2035 case 98:
   2036 YY_RULE_SETUP
   2037 #line 324 "src/src/glsl/glsl_lexer.ll"
   2038 return INC_OP;
   2039 	YY_BREAK
   2040 case 99:
   2041 YY_RULE_SETUP
   2042 #line 325 "src/src/glsl/glsl_lexer.ll"
   2043 return DEC_OP;
   2044 	YY_BREAK
   2045 case 100:
   2046 YY_RULE_SETUP
   2047 #line 326 "src/src/glsl/glsl_lexer.ll"
   2048 return LE_OP;
   2049 	YY_BREAK
   2050 case 101:
   2051 YY_RULE_SETUP
   2052 #line 327 "src/src/glsl/glsl_lexer.ll"
   2053 return GE_OP;
   2054 	YY_BREAK
   2055 case 102:
   2056 YY_RULE_SETUP
   2057 #line 328 "src/src/glsl/glsl_lexer.ll"
   2058 return EQ_OP;
   2059 	YY_BREAK
   2060 case 103:
   2061 YY_RULE_SETUP
   2062 #line 329 "src/src/glsl/glsl_lexer.ll"
   2063 return NE_OP;
   2064 	YY_BREAK
   2065 case 104:
   2066 YY_RULE_SETUP
   2067 #line 330 "src/src/glsl/glsl_lexer.ll"
   2068 return AND_OP;
   2069 	YY_BREAK
   2070 case 105:
   2071 YY_RULE_SETUP
   2072 #line 331 "src/src/glsl/glsl_lexer.ll"
   2073 return OR_OP;
   2074 	YY_BREAK
   2075 case 106:
   2076 YY_RULE_SETUP
   2077 #line 332 "src/src/glsl/glsl_lexer.ll"
   2078 return XOR_OP;
   2079 	YY_BREAK
   2080 case 107:
   2081 YY_RULE_SETUP
   2082 #line 333 "src/src/glsl/glsl_lexer.ll"
   2083 return LEFT_OP;
   2084 	YY_BREAK
   2085 case 108:
   2086 YY_RULE_SETUP
   2087 #line 334 "src/src/glsl/glsl_lexer.ll"
   2088 return RIGHT_OP;
   2089 	YY_BREAK
   2090 case 109:
   2091 YY_RULE_SETUP
   2092 #line 336 "src/src/glsl/glsl_lexer.ll"
   2093 return MUL_ASSIGN;
   2094 	YY_BREAK
   2095 case 110:
   2096 YY_RULE_SETUP
   2097 #line 337 "src/src/glsl/glsl_lexer.ll"
   2098 return DIV_ASSIGN;
   2099 	YY_BREAK
   2100 case 111:
   2101 YY_RULE_SETUP
   2102 #line 338 "src/src/glsl/glsl_lexer.ll"
   2103 return ADD_ASSIGN;
   2104 	YY_BREAK
   2105 case 112:
   2106 YY_RULE_SETUP
   2107 #line 339 "src/src/glsl/glsl_lexer.ll"
   2108 return MOD_ASSIGN;
   2109 	YY_BREAK
   2110 case 113:
   2111 YY_RULE_SETUP
   2112 #line 340 "src/src/glsl/glsl_lexer.ll"
   2113 return LEFT_ASSIGN;
   2114 	YY_BREAK
   2115 case 114:
   2116 YY_RULE_SETUP
   2117 #line 341 "src/src/glsl/glsl_lexer.ll"
   2118 return RIGHT_ASSIGN;
   2119 	YY_BREAK
   2120 case 115:
   2121 YY_RULE_SETUP
   2122 #line 342 "src/src/glsl/glsl_lexer.ll"
   2123 return AND_ASSIGN;
   2124 	YY_BREAK
   2125 case 116:
   2126 YY_RULE_SETUP
   2127 #line 343 "src/src/glsl/glsl_lexer.ll"
   2128 return XOR_ASSIGN;
   2129 	YY_BREAK
   2130 case 117:
   2131 YY_RULE_SETUP
   2132 #line 344 "src/src/glsl/glsl_lexer.ll"
   2133 return OR_ASSIGN;
   2134 	YY_BREAK
   2135 case 118:
   2136 YY_RULE_SETUP
   2137 #line 345 "src/src/glsl/glsl_lexer.ll"
   2138 return SUB_ASSIGN;
   2139 	YY_BREAK
   2140 case 119:
   2141 YY_RULE_SETUP
   2142 #line 347 "src/src/glsl/glsl_lexer.ll"
   2143 {
   2144 			    return LITERAL_INTEGER(10);
   2145 			}
   2146 	YY_BREAK
   2147 case 120:
   2148 YY_RULE_SETUP
   2149 #line 350 "src/src/glsl/glsl_lexer.ll"
   2150 {
   2151 			    return LITERAL_INTEGER(16);
   2152 			}
   2153 	YY_BREAK
   2154 case 121:
   2155 YY_RULE_SETUP
   2156 #line 353 "src/src/glsl/glsl_lexer.ll"
   2157 {
   2158 			    return LITERAL_INTEGER(8);
   2159 			}
   2160 	YY_BREAK
   2161 case 122:
   2162 YY_RULE_SETUP
   2163 #line 357 "src/src/glsl/glsl_lexer.ll"
   2164 {
   2165 			    yylval->real = glsl_strtod(yytext, NULL);
   2166 			    return FLOATCONSTANT;
   2167 			}
   2168 	YY_BREAK
   2169 case 123:
   2170 YY_RULE_SETUP
   2171 #line 361 "src/src/glsl/glsl_lexer.ll"
   2172 {
   2173 			    yylval->real = glsl_strtod(yytext, NULL);
   2174 			    return FLOATCONSTANT;
   2175 			}
   2176 	YY_BREAK
   2177 case 124:
   2178 YY_RULE_SETUP
   2179 #line 365 "src/src/glsl/glsl_lexer.ll"
   2180 {
   2181 			    yylval->real = glsl_strtod(yytext, NULL);
   2182 			    return FLOATCONSTANT;
   2183 			}
   2184 	YY_BREAK
   2185 case 125:
   2186 YY_RULE_SETUP
   2187 #line 369 "src/src/glsl/glsl_lexer.ll"
   2188 {
   2189 			    yylval->real = glsl_strtod(yytext, NULL);
   2190 			    return FLOATCONSTANT;
   2191 			}
   2192 	YY_BREAK
   2193 case 126:
   2194 YY_RULE_SETUP
   2195 #line 373 "src/src/glsl/glsl_lexer.ll"
   2196 {
   2197 			    yylval->real = glsl_strtod(yytext, NULL);
   2198 			    return FLOATCONSTANT;
   2199 			}
   2200 	YY_BREAK
   2201 case 127:
   2202 YY_RULE_SETUP
   2203 #line 378 "src/src/glsl/glsl_lexer.ll"
   2204 {
   2205 			    yylval->n = 1;
   2206 			    return BOOLCONSTANT;
   2207 			}
   2208 	YY_BREAK
   2209 case 128:
   2210 YY_RULE_SETUP
   2211 #line 382 "src/src/glsl/glsl_lexer.ll"
   2212 {
   2213 			    yylval->n = 0;
   2214 			    return BOOLCONSTANT;
   2215 			}
   2216 	YY_BREAK
   2217 /* Reserved words in GLSL 1.10. */
   2218 case 129:
   2219 YY_RULE_SETUP
   2220 #line 389 "src/src/glsl/glsl_lexer.ll"
   2221 KEYWORD(110 || ES, 999, ASM);
   2222 	YY_BREAK
   2223 case 130:
   2224 YY_RULE_SETUP
   2225 #line 390 "src/src/glsl/glsl_lexer.ll"
   2226 KEYWORD(110 || ES, 999, CLASS);
   2227 	YY_BREAK
   2228 case 131:
   2229 YY_RULE_SETUP
   2230 #line 391 "src/src/glsl/glsl_lexer.ll"
   2231 KEYWORD(110 || ES, 999, UNION);
   2232 	YY_BREAK
   2233 case 132:
   2234 YY_RULE_SETUP
   2235 #line 392 "src/src/glsl/glsl_lexer.ll"
   2236 KEYWORD(110 || ES, 999, ENUM);
   2237 	YY_BREAK
   2238 case 133:
   2239 YY_RULE_SETUP
   2240 #line 393 "src/src/glsl/glsl_lexer.ll"
   2241 KEYWORD(110 || ES, 999, TYPEDEF);
   2242 	YY_BREAK
   2243 case 134:
   2244 YY_RULE_SETUP
   2245 #line 394 "src/src/glsl/glsl_lexer.ll"
   2246 KEYWORD(110 || ES, 999, TEMPLATE);
   2247 	YY_BREAK
   2248 case 135:
   2249 YY_RULE_SETUP
   2250 #line 395 "src/src/glsl/glsl_lexer.ll"
   2251 KEYWORD(110 || ES, 999, THIS);
   2252 	YY_BREAK
   2253 case 136:
   2254 YY_RULE_SETUP
   2255 #line 396 "src/src/glsl/glsl_lexer.ll"
   2256 KEYWORD(110 || ES, 140 || yyextra->ARB_uniform_buffer_object_enable, PACKED_TOK);
   2257 	YY_BREAK
   2258 case 137:
   2259 YY_RULE_SETUP
   2260 #line 397 "src/src/glsl/glsl_lexer.ll"
   2261 KEYWORD(110 || ES, 999, GOTO);
   2262 	YY_BREAK
   2263 case 138:
   2264 YY_RULE_SETUP
   2265 #line 398 "src/src/glsl/glsl_lexer.ll"
   2266 KEYWORD(110 || ES, 130, SWITCH);
   2267 	YY_BREAK
   2268 case 139:
   2269 YY_RULE_SETUP
   2270 #line 399 "src/src/glsl/glsl_lexer.ll"
   2271 KEYWORD(110 || ES, 130, DEFAULT);
   2272 	YY_BREAK
   2273 case 140:
   2274 YY_RULE_SETUP
   2275 #line 400 "src/src/glsl/glsl_lexer.ll"
   2276 KEYWORD(110 || ES, 999, INLINE_TOK);
   2277 	YY_BREAK
   2278 case 141:
   2279 YY_RULE_SETUP
   2280 #line 401 "src/src/glsl/glsl_lexer.ll"
   2281 KEYWORD(110 || ES, 999, NOINLINE);
   2282 	YY_BREAK
   2283 case 142:
   2284 YY_RULE_SETUP
   2285 #line 402 "src/src/glsl/glsl_lexer.ll"
   2286 KEYWORD(110 || ES, 999, VOLATILE);
   2287 	YY_BREAK
   2288 case 143:
   2289 YY_RULE_SETUP
   2290 #line 403 "src/src/glsl/glsl_lexer.ll"
   2291 KEYWORD(110 || ES, 999, PUBLIC_TOK);
   2292 	YY_BREAK
   2293 case 144:
   2294 YY_RULE_SETUP
   2295 #line 404 "src/src/glsl/glsl_lexer.ll"
   2296 KEYWORD(110 || ES, 999, STATIC);
   2297 	YY_BREAK
   2298 case 145:
   2299 YY_RULE_SETUP
   2300 #line 405 "src/src/glsl/glsl_lexer.ll"
   2301 KEYWORD(110 || ES, 999, EXTERN);
   2302 	YY_BREAK
   2303 case 146:
   2304 YY_RULE_SETUP
   2305 #line 406 "src/src/glsl/glsl_lexer.ll"
   2306 KEYWORD(110 || ES, 999, EXTERNAL);
   2307 	YY_BREAK
   2308 case 147:
   2309 YY_RULE_SETUP
   2310 #line 407 "src/src/glsl/glsl_lexer.ll"
   2311 KEYWORD(110 || ES, 999, INTERFACE);
   2312 	YY_BREAK
   2313 case 148:
   2314 YY_RULE_SETUP
   2315 #line 408 "src/src/glsl/glsl_lexer.ll"
   2316 KEYWORD(110 || ES, 999, LONG_TOK);
   2317 	YY_BREAK
   2318 case 149:
   2319 YY_RULE_SETUP
   2320 #line 409 "src/src/glsl/glsl_lexer.ll"
   2321 KEYWORD(110 || ES, 999, SHORT_TOK);
   2322 	YY_BREAK
   2323 case 150:
   2324 YY_RULE_SETUP
   2325 #line 410 "src/src/glsl/glsl_lexer.ll"
   2326 KEYWORD(110 || ES, 400, DOUBLE_TOK);
   2327 	YY_BREAK
   2328 case 151:
   2329 YY_RULE_SETUP
   2330 #line 411 "src/src/glsl/glsl_lexer.ll"
   2331 KEYWORD(110 || ES, 999, HALF);
   2332 	YY_BREAK
   2333 case 152:
   2334 YY_RULE_SETUP
   2335 #line 412 "src/src/glsl/glsl_lexer.ll"
   2336 KEYWORD(110 || ES, 999, FIXED_TOK);
   2337 	YY_BREAK
   2338 case 153:
   2339 YY_RULE_SETUP
   2340 #line 413 "src/src/glsl/glsl_lexer.ll"
   2341 KEYWORD(110 || ES, 999, UNSIGNED);
   2342 	YY_BREAK
   2343 case 154:
   2344 YY_RULE_SETUP
   2345 #line 414 "src/src/glsl/glsl_lexer.ll"
   2346 KEYWORD(110 || ES, 999, INPUT_TOK);
   2347 	YY_BREAK
   2348 case 155:
   2349 YY_RULE_SETUP
   2350 #line 415 "src/src/glsl/glsl_lexer.ll"
   2351 KEYWORD(110 || ES, 999, OUTPUT);
   2352 	YY_BREAK
   2353 case 156:
   2354 YY_RULE_SETUP
   2355 #line 416 "src/src/glsl/glsl_lexer.ll"
   2356 KEYWORD(110 || ES, 999, HVEC2);
   2357 	YY_BREAK
   2358 case 157:
   2359 YY_RULE_SETUP
   2360 #line 417 "src/src/glsl/glsl_lexer.ll"
   2361 KEYWORD(110 || ES, 999, HVEC3);
   2362 	YY_BREAK
   2363 case 158:
   2364 YY_RULE_SETUP
   2365 #line 418 "src/src/glsl/glsl_lexer.ll"
   2366 KEYWORD(110 || ES, 999, HVEC4);
   2367 	YY_BREAK
   2368 case 159:
   2369 YY_RULE_SETUP
   2370 #line 419 "src/src/glsl/glsl_lexer.ll"
   2371 KEYWORD(110 || ES, 400, DVEC2);
   2372 	YY_BREAK
   2373 case 160:
   2374 YY_RULE_SETUP
   2375 #line 420 "src/src/glsl/glsl_lexer.ll"
   2376 KEYWORD(110 || ES, 400, DVEC3);
   2377 	YY_BREAK
   2378 case 161:
   2379 YY_RULE_SETUP
   2380 #line 421 "src/src/glsl/glsl_lexer.ll"
   2381 KEYWORD(110 || ES, 400, DVEC4);
   2382 	YY_BREAK
   2383 case 162:
   2384 YY_RULE_SETUP
   2385 #line 422 "src/src/glsl/glsl_lexer.ll"
   2386 KEYWORD(110 || ES, 999, FVEC2);
   2387 	YY_BREAK
   2388 case 163:
   2389 YY_RULE_SETUP
   2390 #line 423 "src/src/glsl/glsl_lexer.ll"
   2391 KEYWORD(110 || ES, 999, FVEC3);
   2392 	YY_BREAK
   2393 case 164:
   2394 YY_RULE_SETUP
   2395 #line 424 "src/src/glsl/glsl_lexer.ll"
   2396 KEYWORD(110 || ES, 999, FVEC4);
   2397 	YY_BREAK
   2398 case 165:
   2399 YY_RULE_SETUP
   2400 #line 425 "src/src/glsl/glsl_lexer.ll"
   2401 return SAMPLER2DRECT;
   2402 	YY_BREAK
   2403 case 166:
   2404 YY_RULE_SETUP
   2405 #line 426 "src/src/glsl/glsl_lexer.ll"
   2406 KEYWORD(110 || ES, 999, SAMPLER3DRECT);
   2407 	YY_BREAK
   2408 case 167:
   2409 YY_RULE_SETUP
   2410 #line 427 "src/src/glsl/glsl_lexer.ll"
   2411 return SAMPLER2DRECTSHADOW;
   2412 	YY_BREAK
   2413 case 168:
   2414 YY_RULE_SETUP
   2415 #line 428 "src/src/glsl/glsl_lexer.ll"
   2416 KEYWORD(110 || ES, 999, SIZEOF);
   2417 	YY_BREAK
   2418 case 169:
   2419 YY_RULE_SETUP
   2420 #line 429 "src/src/glsl/glsl_lexer.ll"
   2421 KEYWORD(110 || ES, 999, CAST);
   2422 	YY_BREAK
   2423 case 170:
   2424 YY_RULE_SETUP
   2425 #line 430 "src/src/glsl/glsl_lexer.ll"
   2426 KEYWORD(110 || ES, 999, NAMESPACE);
   2427 	YY_BREAK
   2428 case 171:
   2429 YY_RULE_SETUP
   2430 #line 431 "src/src/glsl/glsl_lexer.ll"
   2431 KEYWORD(110 || ES, 999, USING);
   2432 	YY_BREAK
   2433 /* Additional reserved words in GLSL 1.20. */
   2434 case 172:
   2435 YY_RULE_SETUP
   2436 #line 434 "src/src/glsl/glsl_lexer.ll"
   2437 KEYWORD(120, 130 || ES, LOWP);
   2438 	YY_BREAK
   2439 case 173:
   2440 YY_RULE_SETUP
   2441 #line 435 "src/src/glsl/glsl_lexer.ll"
   2442 KEYWORD(120, 130 || ES, MEDIUMP);
   2443 	YY_BREAK
   2444 case 174:
   2445 YY_RULE_SETUP
   2446 #line 436 "src/src/glsl/glsl_lexer.ll"
   2447 KEYWORD(120, 130 || ES, HIGHP);
   2448 	YY_BREAK
   2449 case 175:
   2450 YY_RULE_SETUP
   2451 #line 437 "src/src/glsl/glsl_lexer.ll"
   2452 KEYWORD(120, 130 || ES, PRECISION);
   2453 	YY_BREAK
   2454 /* Additional reserved words in GLSL 1.30. */
   2455 case 176:
   2456 YY_RULE_SETUP
   2457 #line 440 "src/src/glsl/glsl_lexer.ll"
   2458 KEYWORD(130, 130, CASE);
   2459 	YY_BREAK
   2460 case 177:
   2461 YY_RULE_SETUP
   2462 #line 441 "src/src/glsl/glsl_lexer.ll"
   2463 KEYWORD(130, 999, COMMON);
   2464 	YY_BREAK
   2465 case 178:
   2466 YY_RULE_SETUP
   2467 #line 442 "src/src/glsl/glsl_lexer.ll"
   2468 KEYWORD(130, 999, PARTITION);
   2469 	YY_BREAK
   2470 case 179:
   2471 YY_RULE_SETUP
   2472 #line 443 "src/src/glsl/glsl_lexer.ll"
   2473 KEYWORD(130, 999, ACTIVE);
   2474 	YY_BREAK
   2475 case 180:
   2476 YY_RULE_SETUP
   2477 #line 444 "src/src/glsl/glsl_lexer.ll"
   2478 KEYWORD(130 || ES, 999, SUPERP);
   2479 	YY_BREAK
   2480 case 181:
   2481 YY_RULE_SETUP
   2482 #line 445 "src/src/glsl/glsl_lexer.ll"
   2483 KEYWORD(130, 140, SAMPLERBUFFER);
   2484 	YY_BREAK
   2485 case 182:
   2486 YY_RULE_SETUP
   2487 #line 446 "src/src/glsl/glsl_lexer.ll"
   2488 KEYWORD(130, 999, FILTER);
   2489 	YY_BREAK
   2490 case 183:
   2491 YY_RULE_SETUP
   2492 #line 447 "src/src/glsl/glsl_lexer.ll"
   2493 KEYWORD(130, 999, IMAGE1D);
   2494 	YY_BREAK
   2495 case 184:
   2496 YY_RULE_SETUP
   2497 #line 448 "src/src/glsl/glsl_lexer.ll"
   2498 KEYWORD(130, 999, IMAGE2D);
   2499 	YY_BREAK
   2500 case 185:
   2501 YY_RULE_SETUP
   2502 #line 449 "src/src/glsl/glsl_lexer.ll"
   2503 KEYWORD(130, 999, IMAGE3D);
   2504 	YY_BREAK
   2505 case 186:
   2506 YY_RULE_SETUP
   2507 #line 450 "src/src/glsl/glsl_lexer.ll"
   2508 KEYWORD(130, 999, IMAGECUBE);
   2509 	YY_BREAK
   2510 case 187:
   2511 YY_RULE_SETUP
   2512 #line 451 "src/src/glsl/glsl_lexer.ll"
   2513 KEYWORD(130, 999, IIMAGE1D);
   2514 	YY_BREAK
   2515 case 188:
   2516 YY_RULE_SETUP
   2517 #line 452 "src/src/glsl/glsl_lexer.ll"
   2518 KEYWORD(130, 999, IIMAGE2D);
   2519 	YY_BREAK
   2520 case 189:
   2521 YY_RULE_SETUP
   2522 #line 453 "src/src/glsl/glsl_lexer.ll"
   2523 KEYWORD(130, 999, IIMAGE3D);
   2524 	YY_BREAK
   2525 case 190:
   2526 YY_RULE_SETUP
   2527 #line 454 "src/src/glsl/glsl_lexer.ll"
   2528 KEYWORD(130, 999, IIMAGECUBE);
   2529 	YY_BREAK
   2530 case 191:
   2531 YY_RULE_SETUP
   2532 #line 455 "src/src/glsl/glsl_lexer.ll"
   2533 KEYWORD(130, 999, UIMAGE1D);
   2534 	YY_BREAK
   2535 case 192:
   2536 YY_RULE_SETUP
   2537 #line 456 "src/src/glsl/glsl_lexer.ll"
   2538 KEYWORD(130, 999, UIMAGE2D);
   2539 	YY_BREAK
   2540 case 193:
   2541 YY_RULE_SETUP
   2542 #line 457 "src/src/glsl/glsl_lexer.ll"
   2543 KEYWORD(130, 999, UIMAGE3D);
   2544 	YY_BREAK
   2545 case 194:
   2546 YY_RULE_SETUP
   2547 #line 458 "src/src/glsl/glsl_lexer.ll"
   2548 KEYWORD(130, 999, UIMAGECUBE);
   2549 	YY_BREAK
   2550 case 195:
   2551 YY_RULE_SETUP
   2552 #line 459 "src/src/glsl/glsl_lexer.ll"
   2553 KEYWORD(130, 999, IMAGE1DARRAY);
   2554 	YY_BREAK
   2555 case 196:
   2556 YY_RULE_SETUP
   2557 #line 460 "src/src/glsl/glsl_lexer.ll"
   2558 KEYWORD(130, 999, IMAGE2DARRAY);
   2559 	YY_BREAK
   2560 case 197:
   2561 YY_RULE_SETUP
   2562 #line 461 "src/src/glsl/glsl_lexer.ll"
   2563 KEYWORD(130, 999, IIMAGE1DARRAY);
   2564 	YY_BREAK
   2565 case 198:
   2566 YY_RULE_SETUP
   2567 #line 462 "src/src/glsl/glsl_lexer.ll"
   2568 KEYWORD(130, 999, IIMAGE2DARRAY);
   2569 	YY_BREAK
   2570 case 199:
   2571 YY_RULE_SETUP
   2572 #line 463 "src/src/glsl/glsl_lexer.ll"
   2573 KEYWORD(130, 999, UIMAGE1DARRAY);
   2574 	YY_BREAK
   2575 case 200:
   2576 YY_RULE_SETUP
   2577 #line 464 "src/src/glsl/glsl_lexer.ll"
   2578 KEYWORD(130, 999, UIMAGE2DARRAY);
   2579 	YY_BREAK
   2580 case 201:
   2581 YY_RULE_SETUP
   2582 #line 465 "src/src/glsl/glsl_lexer.ll"
   2583 KEYWORD(130, 999, IMAGE1DSHADOW);
   2584 	YY_BREAK
   2585 case 202:
   2586 YY_RULE_SETUP
   2587 #line 466 "src/src/glsl/glsl_lexer.ll"
   2588 KEYWORD(130, 999, IMAGE2DSHADOW);
   2589 	YY_BREAK
   2590 case 203:
   2591 YY_RULE_SETUP
   2592 #line 467 "src/src/glsl/glsl_lexer.ll"
   2593 KEYWORD(130, 999, IMAGE1DARRAYSHADOW);
   2594 	YY_BREAK
   2595 case 204:
   2596 YY_RULE_SETUP
   2597 #line 468 "src/src/glsl/glsl_lexer.ll"
   2598 KEYWORD(130, 999, IMAGE2DARRAYSHADOW);
   2599 	YY_BREAK
   2600 case 205:
   2601 YY_RULE_SETUP
   2602 #line 469 "src/src/glsl/glsl_lexer.ll"
   2603 KEYWORD(130, 999, IMAGEBUFFER);
   2604 	YY_BREAK
   2605 case 206:
   2606 YY_RULE_SETUP
   2607 #line 470 "src/src/glsl/glsl_lexer.ll"
   2608 KEYWORD(130, 999, IIMAGEBUFFER);
   2609 	YY_BREAK
   2610 case 207:
   2611 YY_RULE_SETUP
   2612 #line 471 "src/src/glsl/glsl_lexer.ll"
   2613 KEYWORD(130, 999, UIMAGEBUFFER);
   2614 	YY_BREAK
   2615 case 208:
   2616 YY_RULE_SETUP
   2617 #line 472 "src/src/glsl/glsl_lexer.ll"
   2618 KEYWORD(130, 140 || yyextra->ARB_uniform_buffer_object_enable, ROW_MAJOR);
   2619 	YY_BREAK
   2620 /* Additional reserved words in GLSL 1.40 */
   2621 case 209:
   2622 YY_RULE_SETUP
   2623 #line 475 "src/src/glsl/glsl_lexer.ll"
   2624 KEYWORD(140, 140, ISAMPLER2DRECT);
   2625 	YY_BREAK
   2626 case 210:
   2627 YY_RULE_SETUP
   2628 #line 476 "src/src/glsl/glsl_lexer.ll"
   2629 KEYWORD(140, 140, USAMPLER2DRECT);
   2630 	YY_BREAK
   2631 case 211:
   2632 YY_RULE_SETUP
   2633 #line 477 "src/src/glsl/glsl_lexer.ll"
   2634 KEYWORD(140, 140, ISAMPLERBUFFER);
   2635 	YY_BREAK
   2636 case 212:
   2637 YY_RULE_SETUP
   2638 #line 478 "src/src/glsl/glsl_lexer.ll"
   2639 KEYWORD(140, 140, USAMPLERBUFFER);
   2640 	YY_BREAK
   2641 case 213:
   2642 YY_RULE_SETUP
   2643 #line 480 "src/src/glsl/glsl_lexer.ll"
   2644 {
   2645 			    struct _mesa_glsl_parse_state *state = yyextra;
   2646 			    void *ctx = state;
   2647 			    yylval->identifier = ralloc_strdup(ctx, yytext);
   2648 			    return classify_identifier(state, yytext);
   2649 			}
   2650 	YY_BREAK
   2651 case 214:
   2652 YY_RULE_SETUP
   2653 #line 487 "src/src/glsl/glsl_lexer.ll"
   2654 { return yytext[0]; }
   2655 	YY_BREAK
   2656 case 215:
   2657 YY_RULE_SETUP
   2658 #line 489 "src/src/glsl/glsl_lexer.ll"
   2659 ECHO;
   2660 	YY_BREAK
   2661 #line 2662 "src/chromium_gensrc/mesa/glsl_lexer.cc"
   2662 case YY_STATE_EOF(INITIAL):
   2663 case YY_STATE_EOF(PP):
   2664 case YY_STATE_EOF(PRAGMA):
   2665 	yyterminate();
   2666 
   2667 	case YY_END_OF_BUFFER:
   2668 		{
   2669 		/* Amount of text matched not including the EOB char. */
   2670 		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
   2671 
   2672 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
   2673 		*yy_cp = yyg->yy_hold_char;
   2674 		YY_RESTORE_YY_MORE_OFFSET
   2675 
   2676 		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
   2677 			{
   2678 			/* We're scanning a new file or input source.  It's
   2679 			 * possible that this happened because the user
   2680 			 * just pointed yyin at a new source and called
   2681 			 * _mesa_glsl_lex().  If so, then we have to assure
   2682 			 * consistency between YY_CURRENT_BUFFER and our
   2683 			 * globals.  Here is the right place to do so, because
   2684 			 * this is the first action (other than possibly a
   2685 			 * back-up) that will match for the new input source.
   2686 			 */
   2687 			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
   2688 			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
   2689 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
   2690 			}
   2691 
   2692 		/* Note that here we test for yy_c_buf_p "<=" to the position
   2693 		 * of the first EOB in the buffer, since yy_c_buf_p will
   2694 		 * already have been incremented past the NUL character
   2695 		 * (since all states make transitions on EOB to the
   2696 		 * end-of-buffer state).  Contrast this with the test
   2697 		 * in input().
   2698 		 */
   2699 		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
   2700 			{ /* This was really a NUL. */
   2701 			yy_state_type yy_next_state;
   2702 
   2703 			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
   2704 
   2705 			yy_current_state = yy_get_previous_state( yyscanner );
   2706 
   2707 			/* Okay, we're now positioned to make the NUL
   2708 			 * transition.  We couldn't have
   2709 			 * yy_get_previous_state() go ahead and do it
   2710 			 * for us because it doesn't know how to deal
   2711 			 * with the possibility of jamming (and we don't
   2712 			 * want to build jamming into it because then it
   2713 			 * will run more slowly).
   2714 			 */
   2715 
   2716 			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
   2717 
   2718 			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
   2719 
   2720 			if ( yy_next_state )
   2721 				{
   2722 				/* Consume the NUL. */
   2723 				yy_cp = ++yyg->yy_c_buf_p;
   2724 				yy_current_state = yy_next_state;
   2725 				goto yy_match;
   2726 				}
   2727 
   2728 			else
   2729 				{
   2730 				yy_cp = yyg->yy_last_accepting_cpos;
   2731 				yy_current_state = yyg->yy_last_accepting_state;
   2732 				goto yy_find_action;
   2733 				}
   2734 			}
   2735 
   2736 		else switch ( yy_get_next_buffer( yyscanner ) )
   2737 			{
   2738 			case EOB_ACT_END_OF_FILE:
   2739 				{
   2740 				yyg->yy_did_buffer_switch_on_eof = 0;
   2741 
   2742 				if ( _mesa_glsl_wrap(yyscanner ) )
   2743 					{
   2744 					/* Note: because we've taken care in
   2745 					 * yy_get_next_buffer() to have set up
   2746 					 * yytext, we can now set up
   2747 					 * yy_c_buf_p so that if some total
   2748 					 * hoser (like flex itself) wants to
   2749 					 * call the scanner after we return the
   2750 					 * YY_NULL, it'll still work - another
   2751 					 * YY_NULL will get returned.
   2752 					 */
   2753 					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
   2754 
   2755 					yy_act = YY_STATE_EOF(YY_START);
   2756 					goto do_action;
   2757 					}
   2758 
   2759 				else
   2760 					{
   2761 					if ( ! yyg->yy_did_buffer_switch_on_eof )
   2762 						YY_NEW_FILE;
   2763 					}
   2764 				break;
   2765 				}
   2766 
   2767 			case EOB_ACT_CONTINUE_SCAN:
   2768 				yyg->yy_c_buf_p =
   2769 					yyg->yytext_ptr + yy_amount_of_matched_text;
   2770 
   2771 				yy_current_state = yy_get_previous_state( yyscanner );
   2772 
   2773 				yy_cp = yyg->yy_c_buf_p;
   2774 				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
   2775 				goto yy_match;
   2776 
   2777 			case EOB_ACT_LAST_MATCH:
   2778 				yyg->yy_c_buf_p =
   2779 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
   2780 
   2781 				yy_current_state = yy_get_previous_state( yyscanner );
   2782 
   2783 				yy_cp = yyg->yy_c_buf_p;
   2784 				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
   2785 				goto yy_find_action;
   2786 			}
   2787 		break;
   2788 		}
   2789 
   2790 	default:
   2791 		YY_FATAL_ERROR(
   2792 			"fatal flex scanner internal error--no action found" );
   2793 	} /* end of action switch */
   2794 		} /* end of scanning one token */
   2795 } /* end of _mesa_glsl_lex */
   2796 
   2797 /* yy_get_next_buffer - try to read in a new buffer
   2798  *
   2799  * Returns a code representing an action:
   2800  *	EOB_ACT_LAST_MATCH -
   2801  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
   2802  *	EOB_ACT_END_OF_FILE - end of file
   2803  */
   2804 static int yy_get_next_buffer (yyscan_t yyscanner)
   2805 {
   2806     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   2807 	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
   2808 	register char *source = yyg->yytext_ptr;
   2809 	register int number_to_move, i;
   2810 	int ret_val;
   2811 
   2812 	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
   2813 		YY_FATAL_ERROR(
   2814 		"fatal flex scanner internal error--end of buffer missed" );
   2815 
   2816 	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
   2817 		{ /* Don't try to fill the buffer, so this is an EOF. */
   2818 		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
   2819 			{
   2820 			/* We matched a single character, the EOB, so
   2821 			 * treat this as a final EOF.
   2822 			 */
   2823 			return EOB_ACT_END_OF_FILE;
   2824 			}
   2825 
   2826 		else
   2827 			{
   2828 			/* We matched some text prior to the EOB, first
   2829 			 * process it.
   2830 			 */
   2831 			return EOB_ACT_LAST_MATCH;
   2832 			}
   2833 		}
   2834 
   2835 	/* Try to read more data. */
   2836 
   2837 	/* First move last chars to start of buffer. */
   2838 	number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
   2839 
   2840 	for ( i = 0; i < number_to_move; ++i )
   2841 		*(dest++) = *(source++);
   2842 
   2843 	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
   2844 		/* don't do the read, it's not guaranteed to return an EOF,
   2845 		 * just force an EOF
   2846 		 */
   2847 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
   2848 
   2849 	else
   2850 		{
   2851 			int num_to_read =
   2852 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
   2853 
   2854 		while ( num_to_read <= 0 )
   2855 			{ /* Not enough room in the buffer - grow it. */
   2856 
   2857 			/* just a shorter name for the current buffer */
   2858 			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
   2859 
   2860 			int yy_c_buf_p_offset =
   2861 				(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
   2862 
   2863 			if ( b->yy_is_our_buffer )
   2864 				{
   2865 				int new_size = b->yy_buf_size * 2;
   2866 
   2867 				if ( new_size <= 0 )
   2868 					b->yy_buf_size += b->yy_buf_size / 8;
   2869 				else
   2870 					b->yy_buf_size *= 2;
   2871 
   2872 				b->yy_ch_buf = (char *)
   2873 					/* Include room in for 2 EOB chars. */
   2874 					_mesa_glsl_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
   2875 				}
   2876 			else
   2877 				/* Can't grow it, we don't own it. */
   2878 				b->yy_ch_buf = 0;
   2879 
   2880 			if ( ! b->yy_ch_buf )
   2881 				YY_FATAL_ERROR(
   2882 				"fatal error - scanner input buffer overflow" );
   2883 
   2884 			yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
   2885 
   2886 			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
   2887 						number_to_move - 1;
   2888 
   2889 			}
   2890 
   2891 		if ( num_to_read > YY_READ_BUF_SIZE )
   2892 			num_to_read = YY_READ_BUF_SIZE;
   2893 
   2894 		/* Read in more data. */
   2895 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
   2896 			yyg->yy_n_chars, (size_t) num_to_read );
   2897 
   2898 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
   2899 		}
   2900 
   2901 	if ( yyg->yy_n_chars == 0 )
   2902 		{
   2903 		if ( number_to_move == YY_MORE_ADJ )
   2904 			{
   2905 			ret_val = EOB_ACT_END_OF_FILE;
   2906 			_mesa_glsl_restart(yyin  ,yyscanner);
   2907 			}
   2908 
   2909 		else
   2910 			{
   2911 			ret_val = EOB_ACT_LAST_MATCH;
   2912 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
   2913 				YY_BUFFER_EOF_PENDING;
   2914 			}
   2915 		}
   2916 
   2917 	else
   2918 		ret_val = EOB_ACT_CONTINUE_SCAN;
   2919 
   2920 	if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
   2921 		/* Extend the array by 50%, plus the number we really need. */
   2922 		yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
   2923 		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) _mesa_glsl_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
   2924 		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
   2925 			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
   2926 	}
   2927 
   2928 	yyg->yy_n_chars += number_to_move;
   2929 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
   2930 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
   2931 
   2932 	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
   2933 
   2934 	return ret_val;
   2935 }
   2936 
   2937 /* yy_get_previous_state - get the state just before the EOB char was reached */
   2938 
   2939     static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
   2940 {
   2941 	register yy_state_type yy_current_state;
   2942 	register char *yy_cp;
   2943     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   2944 
   2945 	yy_current_state = yyg->yy_start;
   2946 	yy_current_state += YY_AT_BOL();
   2947 
   2948 	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
   2949 		{
   2950 		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
   2951 		if ( yy_accept[yy_current_state] )
   2952 			{
   2953 			yyg->yy_last_accepting_state = yy_current_state;
   2954 			yyg->yy_last_accepting_cpos = yy_cp;
   2955 			}
   2956 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
   2957 			{
   2958 			yy_current_state = (int) yy_def[yy_current_state];
   2959 			if ( yy_current_state >= 867 )
   2960 				yy_c = yy_meta[(unsigned int) yy_c];
   2961 			}
   2962 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
   2963 		}
   2964 
   2965 	return yy_current_state;
   2966 }
   2967 
   2968 /* yy_try_NUL_trans - try to make a transition on the NUL character
   2969  *
   2970  * synopsis
   2971  *	next_state = yy_try_NUL_trans( current_state );
   2972  */
   2973     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
   2974 {
   2975 	register int yy_is_jam;
   2976     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
   2977 	register char *yy_cp = yyg->yy_c_buf_p;
   2978 
   2979 	register YY_CHAR yy_c = 1;
   2980 	if ( yy_accept[yy_current_state] )
   2981 		{
   2982 		yyg->yy_last_accepting_state = yy_current_state;
   2983 		yyg->yy_last_accepting_cpos = yy_cp;
   2984 		}
   2985 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
   2986 		{
   2987 		yy_current_state = (int) yy_def[yy_current_state];
   2988 		if ( yy_current_state >= 867 )
   2989 			yy_c = yy_meta[(unsigned int) yy_c];
   2990 		}
   2991 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
   2992 	yy_is_jam = (yy_current_state == 866);
   2993 
   2994 	return yy_is_jam ? 0 : yy_current_state;
   2995 }
   2996 
   2997 #ifndef YY_NO_INPUT
   2998 #ifdef __cplusplus
   2999     static int yyinput (yyscan_t yyscanner)
   3000 #else
   3001     static int input  (yyscan_t yyscanner)
   3002 #endif
   3003 
   3004 {
   3005 	int c;
   3006     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3007 
   3008 	*yyg->yy_c_buf_p = yyg->yy_hold_char;
   3009 
   3010 	if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
   3011 		{
   3012 		/* yy_c_buf_p now points to the character we want to return.
   3013 		 * If this occurs *before* the EOB characters, then it's a
   3014 		 * valid NUL; if not, then we've hit the end of the buffer.
   3015 		 */
   3016 		if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
   3017 			/* This was really a NUL. */
   3018 			*yyg->yy_c_buf_p = '\0';
   3019 
   3020 		else
   3021 			{ /* need more input */
   3022 			int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
   3023 			++yyg->yy_c_buf_p;
   3024 
   3025 			switch ( yy_get_next_buffer( yyscanner ) )
   3026 				{
   3027 				case EOB_ACT_LAST_MATCH:
   3028 					/* This happens because yy_g_n_b()
   3029 					 * sees that we've accumulated a
   3030 					 * token and flags that we need to
   3031 					 * try matching the token before
   3032 					 * proceeding.  But for input(),
   3033 					 * there's no matching to consider.
   3034 					 * So convert the EOB_ACT_LAST_MATCH
   3035 					 * to EOB_ACT_END_OF_FILE.
   3036 					 */
   3037 
   3038 					/* Reset buffer status. */
   3039 					_mesa_glsl_restart(yyin ,yyscanner);
   3040 
   3041 					/*FALLTHROUGH*/
   3042 
   3043 				case EOB_ACT_END_OF_FILE:
   3044 					{
   3045 					if ( _mesa_glsl_wrap(yyscanner ) )
   3046 						return EOF;
   3047 
   3048 					if ( ! yyg->yy_did_buffer_switch_on_eof )
   3049 						YY_NEW_FILE;
   3050 #ifdef __cplusplus
   3051 					return yyinput(yyscanner);
   3052 #else
   3053 					return input(yyscanner);
   3054 #endif
   3055 					}
   3056 
   3057 				case EOB_ACT_CONTINUE_SCAN:
   3058 					yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
   3059 					break;
   3060 				}
   3061 			}
   3062 		}
   3063 
   3064 	c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
   3065 	*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
   3066 	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
   3067 
   3068 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
   3069 
   3070 	return c;
   3071 }
   3072 #endif	/* ifndef YY_NO_INPUT */
   3073 
   3074 /** Immediately switch to a different input stream.
   3075  * @param input_file A readable stream.
   3076  * @param yyscanner The scanner object.
   3077  * @note This function does not reset the start condition to @c INITIAL .
   3078  */
   3079     void _mesa_glsl_restart  (FILE * input_file , yyscan_t yyscanner)
   3080 {
   3081     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3082 
   3083 	if ( ! YY_CURRENT_BUFFER ){
   3084         _mesa_glsl_ensure_buffer_stack (yyscanner);
   3085 		YY_CURRENT_BUFFER_LVALUE =
   3086             _mesa_glsl__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
   3087 	}
   3088 
   3089 	_mesa_glsl__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
   3090 	_mesa_glsl__load_buffer_state(yyscanner );
   3091 }
   3092 
   3093 /** Switch to a different input buffer.
   3094  * @param new_buffer The new input buffer.
   3095  * @param yyscanner The scanner object.
   3096  */
   3097     void _mesa_glsl__switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
   3098 {
   3099     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3100 
   3101 	/* TODO. We should be able to replace this entire function body
   3102 	 * with
   3103 	 *		_mesa_glsl_pop_buffer_state();
   3104 	 *		_mesa_glsl_push_buffer_state(new_buffer);
   3105      */
   3106 	_mesa_glsl_ensure_buffer_stack (yyscanner);
   3107 	if ( YY_CURRENT_BUFFER == new_buffer )
   3108 		return;
   3109 
   3110 	if ( YY_CURRENT_BUFFER )
   3111 		{
   3112 		/* Flush out information for old buffer. */
   3113 		*yyg->yy_c_buf_p = yyg->yy_hold_char;
   3114 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
   3115 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
   3116 		}
   3117 
   3118 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
   3119 	_mesa_glsl__load_buffer_state(yyscanner );
   3120 
   3121 	/* We don't actually know whether we did this switch during
   3122 	 * EOF (_mesa_glsl_wrap()) processing, but the only time this flag
   3123 	 * is looked at is after _mesa_glsl_wrap() is called, so it's safe
   3124 	 * to go ahead and always set it.
   3125 	 */
   3126 	yyg->yy_did_buffer_switch_on_eof = 1;
   3127 }
   3128 
   3129 static void _mesa_glsl__load_buffer_state  (yyscan_t yyscanner)
   3130 {
   3131     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3132 	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
   3133 	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
   3134 	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
   3135 	yyg->yy_hold_char = *yyg->yy_c_buf_p;
   3136 }
   3137 
   3138 /** Allocate and initialize an input buffer state.
   3139  * @param file A readable stream.
   3140  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
   3141  * @param yyscanner The scanner object.
   3142  * @return the allocated buffer state.
   3143  */
   3144     YY_BUFFER_STATE _mesa_glsl__create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
   3145 {
   3146 	YY_BUFFER_STATE b;
   3147 
   3148 	b = (YY_BUFFER_STATE) _mesa_glsl_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
   3149 	if ( ! b )
   3150 		YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl__create_buffer()" );
   3151 
   3152 	b->yy_buf_size = size;
   3153 
   3154 	/* yy_ch_buf has to be 2 characters longer than the size given because
   3155 	 * we need to put in 2 end-of-buffer characters.
   3156 	 */
   3157 	b->yy_ch_buf = (char *) _mesa_glsl_alloc(b->yy_buf_size + 2 ,yyscanner );
   3158 	if ( ! b->yy_ch_buf )
   3159 		YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl__create_buffer()" );
   3160 
   3161 	b->yy_is_our_buffer = 1;
   3162 
   3163 	_mesa_glsl__init_buffer(b,file ,yyscanner);
   3164 
   3165 	return b;
   3166 }
   3167 
   3168 /** Destroy the buffer.
   3169  * @param b a buffer created with _mesa_glsl__create_buffer()
   3170  * @param yyscanner The scanner object.
   3171  */
   3172     void _mesa_glsl__delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
   3173 {
   3174     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3175 
   3176 	if ( ! b )
   3177 		return;
   3178 
   3179 	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
   3180 		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
   3181 
   3182 	if ( b->yy_is_our_buffer )
   3183 		_mesa_glsl_free((void *) b->yy_ch_buf ,yyscanner );
   3184 
   3185 	_mesa_glsl_free((void *) b ,yyscanner );
   3186 }
   3187 
   3188 /* Initializes or reinitializes a buffer.
   3189  * This function is sometimes called more than once on the same buffer,
   3190  * such as during a _mesa_glsl_restart() or at EOF.
   3191  */
   3192     static void _mesa_glsl__init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
   3193 
   3194 {
   3195 	int oerrno = errno;
   3196     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3197 
   3198 	_mesa_glsl__flush_buffer(b ,yyscanner);
   3199 
   3200 	b->yy_input_file = file;
   3201 	b->yy_fill_buffer = 1;
   3202 
   3203     /* If b is the current buffer, then _mesa_glsl__init_buffer was _probably_
   3204      * called from _mesa_glsl_restart() or through yy_get_next_buffer.
   3205      * In that case, we don't want to reset the lineno or column.
   3206      */
   3207     if (b != YY_CURRENT_BUFFER){
   3208         b->yy_bs_lineno = 1;
   3209         b->yy_bs_column = 0;
   3210     }
   3211 
   3212         b->yy_is_interactive = 0;
   3213 
   3214 	errno = oerrno;
   3215 }
   3216 
   3217 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
   3218  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
   3219  * @param yyscanner The scanner object.
   3220  */
   3221     void _mesa_glsl__flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
   3222 {
   3223     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3224 	if ( ! b )
   3225 		return;
   3226 
   3227 	b->yy_n_chars = 0;
   3228 
   3229 	/* We always need two end-of-buffer characters.  The first causes
   3230 	 * a transition to the end-of-buffer state.  The second causes
   3231 	 * a jam in that state.
   3232 	 */
   3233 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
   3234 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
   3235 
   3236 	b->yy_buf_pos = &b->yy_ch_buf[0];
   3237 
   3238 	b->yy_at_bol = 1;
   3239 	b->yy_buffer_status = YY_BUFFER_NEW;
   3240 
   3241 	if ( b == YY_CURRENT_BUFFER )
   3242 		_mesa_glsl__load_buffer_state(yyscanner );
   3243 }
   3244 
   3245 /** Pushes the new state onto the stack. The new state becomes
   3246  *  the current state. This function will allocate the stack
   3247  *  if necessary.
   3248  *  @param new_buffer The new state.
   3249  *  @param yyscanner The scanner object.
   3250  */
   3251 void _mesa_glsl_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
   3252 {
   3253     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3254 	if (new_buffer == NULL)
   3255 		return;
   3256 
   3257 	_mesa_glsl_ensure_buffer_stack(yyscanner);
   3258 
   3259 	/* This block is copied from _mesa_glsl__switch_to_buffer. */
   3260 	if ( YY_CURRENT_BUFFER )
   3261 		{
   3262 		/* Flush out information for old buffer. */
   3263 		*yyg->yy_c_buf_p = yyg->yy_hold_char;
   3264 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
   3265 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
   3266 		}
   3267 
   3268 	/* Only push if top exists. Otherwise, replace top. */
   3269 	if (YY_CURRENT_BUFFER)
   3270 		yyg->yy_buffer_stack_top++;
   3271 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
   3272 
   3273 	/* copied from _mesa_glsl__switch_to_buffer. */
   3274 	_mesa_glsl__load_buffer_state(yyscanner );
   3275 	yyg->yy_did_buffer_switch_on_eof = 1;
   3276 }
   3277 
   3278 /** Removes and deletes the top of the stack, if present.
   3279  *  The next element becomes the new top.
   3280  *  @param yyscanner The scanner object.
   3281  */
   3282 void _mesa_glsl_pop_buffer_state (yyscan_t yyscanner)
   3283 {
   3284     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3285 	if (!YY_CURRENT_BUFFER)
   3286 		return;
   3287 
   3288 	_mesa_glsl__delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
   3289 	YY_CURRENT_BUFFER_LVALUE = NULL;
   3290 	if (yyg->yy_buffer_stack_top > 0)
   3291 		--yyg->yy_buffer_stack_top;
   3292 
   3293 	if (YY_CURRENT_BUFFER) {
   3294 		_mesa_glsl__load_buffer_state(yyscanner );
   3295 		yyg->yy_did_buffer_switch_on_eof = 1;
   3296 	}
   3297 }
   3298 
   3299 /* Allocates the stack if it does not exist.
   3300  *  Guarantees space for at least one push.
   3301  */
   3302 static void _mesa_glsl_ensure_buffer_stack (yyscan_t yyscanner)
   3303 {
   3304 	int num_to_alloc;
   3305     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3306 
   3307 	if (!yyg->yy_buffer_stack) {
   3308 
   3309 		/* First allocation is just for 2 elements, since we don't know if this
   3310 		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
   3311 		 * immediate realloc on the next call.
   3312          */
   3313 		num_to_alloc = 1;
   3314 		yyg->yy_buffer_stack = (struct yy_buffer_state**)_mesa_glsl_alloc
   3315 								(num_to_alloc * sizeof(struct yy_buffer_state*)
   3316 								, yyscanner);
   3317 		if ( ! yyg->yy_buffer_stack )
   3318 			YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl_ensure_buffer_stack()" );
   3319 
   3320 		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
   3321 
   3322 		yyg->yy_buffer_stack_max = num_to_alloc;
   3323 		yyg->yy_buffer_stack_top = 0;
   3324 		return;
   3325 	}
   3326 
   3327 	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
   3328 
   3329 		/* Increase the buffer to prepare for a possible push. */
   3330 		int grow_size = 8 /* arbitrary grow size */;
   3331 
   3332 		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
   3333 		yyg->yy_buffer_stack = (struct yy_buffer_state**)_mesa_glsl_realloc
   3334 								(yyg->yy_buffer_stack,
   3335 								num_to_alloc * sizeof(struct yy_buffer_state*)
   3336 								, yyscanner);
   3337 		if ( ! yyg->yy_buffer_stack )
   3338 			YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl_ensure_buffer_stack()" );
   3339 
   3340 		/* zero only the new slots.*/
   3341 		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
   3342 		yyg->yy_buffer_stack_max = num_to_alloc;
   3343 	}
   3344 }
   3345 
   3346 /** Setup the input buffer state to scan directly from a user-specified character buffer.
   3347  * @param base the character buffer
   3348  * @param size the size in bytes of the character buffer
   3349  * @param yyscanner The scanner object.
   3350  * @return the newly allocated buffer state object.
   3351  */
   3352 YY_BUFFER_STATE _mesa_glsl__scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
   3353 {
   3354 	YY_BUFFER_STATE b;
   3355 
   3356 	if ( size < 2 ||
   3357 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
   3358 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
   3359 		/* They forgot to leave room for the EOB's. */
   3360 		return 0;
   3361 
   3362 	b = (YY_BUFFER_STATE) _mesa_glsl_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
   3363 	if ( ! b )
   3364 		YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl__scan_buffer()" );
   3365 
   3366 	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
   3367 	b->yy_buf_pos = b->yy_ch_buf = base;
   3368 	b->yy_is_our_buffer = 0;
   3369 	b->yy_input_file = 0;
   3370 	b->yy_n_chars = b->yy_buf_size;
   3371 	b->yy_is_interactive = 0;
   3372 	b->yy_at_bol = 1;
   3373 	b->yy_fill_buffer = 0;
   3374 	b->yy_buffer_status = YY_BUFFER_NEW;
   3375 
   3376 	_mesa_glsl__switch_to_buffer(b ,yyscanner );
   3377 
   3378 	return b;
   3379 }
   3380 
   3381 /** Setup the input buffer state to scan a string. The next call to _mesa_glsl_lex() will
   3382  * scan from a @e copy of @a str.
   3383  * @param yystr a NUL-terminated string to scan
   3384  * @param yyscanner The scanner object.
   3385  * @return the newly allocated buffer state object.
   3386  * @note If you want to scan bytes that may contain NUL values, then use
   3387  *       _mesa_glsl__scan_bytes() instead.
   3388  */
   3389 YY_BUFFER_STATE _mesa_glsl__scan_string (yyconst char * yystr , yyscan_t yyscanner)
   3390 {
   3391 
   3392 	return _mesa_glsl__scan_bytes(yystr,strlen(yystr) ,yyscanner);
   3393 }
   3394 
   3395 /** Setup the input buffer state to scan the given bytes. The next call to _mesa_glsl_lex() will
   3396  * scan from a @e copy of @a bytes.
   3397  * @param yybytes the byte buffer to scan
   3398  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
   3399  * @param yyscanner The scanner object.
   3400  * @return the newly allocated buffer state object.
   3401  */
   3402 YY_BUFFER_STATE _mesa_glsl__scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
   3403 {
   3404 	YY_BUFFER_STATE b;
   3405 	char *buf;
   3406 	yy_size_t n;
   3407 	int i;
   3408 
   3409 	/* Get memory for full buffer, including space for trailing EOB's. */
   3410 	n = _yybytes_len + 2;
   3411 	buf = (char *) _mesa_glsl_alloc(n ,yyscanner );
   3412 	if ( ! buf )
   3413 		YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl__scan_bytes()" );
   3414 
   3415 	for ( i = 0; i < _yybytes_len; ++i )
   3416 		buf[i] = yybytes[i];
   3417 
   3418 	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
   3419 
   3420 	b = _mesa_glsl__scan_buffer(buf,n ,yyscanner);
   3421 	if ( ! b )
   3422 		YY_FATAL_ERROR( "bad buffer in _mesa_glsl__scan_bytes()" );
   3423 
   3424 	/* It's okay to grow etc. this buffer, and we should throw it
   3425 	 * away when we're done.
   3426 	 */
   3427 	b->yy_is_our_buffer = 1;
   3428 
   3429 	return b;
   3430 }
   3431 
   3432 #ifndef YY_EXIT_FAILURE
   3433 #define YY_EXIT_FAILURE 2
   3434 #endif
   3435 
   3436 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
   3437 {
   3438     	(void) fprintf( stderr, "%s\n", msg );
   3439 	exit( YY_EXIT_FAILURE );
   3440 }
   3441 
   3442 /* Redefine yyless() so it works in section 3 code. */
   3443 
   3444 #undef yyless
   3445 #define yyless(n) \
   3446 	do \
   3447 		{ \
   3448 		/* Undo effects of setting up yytext. */ \
   3449         int yyless_macro_arg = (n); \
   3450         YY_LESS_LINENO(yyless_macro_arg);\
   3451 		yytext[yyleng] = yyg->yy_hold_char; \
   3452 		yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
   3453 		yyg->yy_hold_char = *yyg->yy_c_buf_p; \
   3454 		*yyg->yy_c_buf_p = '\0'; \
   3455 		yyleng = yyless_macro_arg; \
   3456 		} \
   3457 	while ( 0 )
   3458 
   3459 /* Accessor  methods (get/set functions) to struct members. */
   3460 
   3461 /** Get the user-defined data for this scanner.
   3462  * @param yyscanner The scanner object.
   3463  */
   3464 YY_EXTRA_TYPE _mesa_glsl_get_extra  (yyscan_t yyscanner)
   3465 {
   3466     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3467     return yyextra;
   3468 }
   3469 
   3470 /** Get the current line number.
   3471  * @param yyscanner The scanner object.
   3472  */
   3473 int _mesa_glsl_get_lineno  (yyscan_t yyscanner)
   3474 {
   3475     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3476 
   3477         if (! YY_CURRENT_BUFFER)
   3478             return 0;
   3479 
   3480     return yylineno;
   3481 }
   3482 
   3483 /** Get the current column number.
   3484  * @param yyscanner The scanner object.
   3485  */
   3486 int _mesa_glsl_get_column  (yyscan_t yyscanner)
   3487 {
   3488     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3489 
   3490         if (! YY_CURRENT_BUFFER)
   3491             return 0;
   3492 
   3493     return yycolumn;
   3494 }
   3495 
   3496 /** Get the input stream.
   3497  * @param yyscanner The scanner object.
   3498  */
   3499 FILE *_mesa_glsl_get_in  (yyscan_t yyscanner)
   3500 {
   3501     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3502     return yyin;
   3503 }
   3504 
   3505 /** Get the output stream.
   3506  * @param yyscanner The scanner object.
   3507  */
   3508 FILE *_mesa_glsl_get_out  (yyscan_t yyscanner)
   3509 {
   3510     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3511     return yyout;
   3512 }
   3513 
   3514 /** Get the length of the current token.
   3515  * @param yyscanner The scanner object.
   3516  */
   3517 int _mesa_glsl_get_leng  (yyscan_t yyscanner)
   3518 {
   3519     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3520     return yyleng;
   3521 }
   3522 
   3523 /** Get the current token.
   3524  * @param yyscanner The scanner object.
   3525  */
   3526 
   3527 char *_mesa_glsl_get_text  (yyscan_t yyscanner)
   3528 {
   3529     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3530     return yytext;
   3531 }
   3532 
   3533 /** Set the user-defined data. This data is never touched by the scanner.
   3534  * @param user_defined The data to be associated with this scanner.
   3535  * @param yyscanner The scanner object.
   3536  */
   3537 void _mesa_glsl_set_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
   3538 {
   3539     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3540     yyextra = user_defined ;
   3541 }
   3542 
   3543 /** Set the current line number.
   3544  * @param line_number
   3545  * @param yyscanner The scanner object.
   3546  */
   3547 void _mesa_glsl_set_lineno (int  line_number , yyscan_t yyscanner)
   3548 {
   3549     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3550 
   3551         /* lineno is only valid if an input buffer exists. */
   3552         if (! YY_CURRENT_BUFFER )
   3553            yy_fatal_error( "_mesa_glsl_set_lineno called with no buffer" , yyscanner);
   3554 
   3555     yylineno = line_number;
   3556 }
   3557 
   3558 /** Set the current column.
   3559  * @param line_number
   3560  * @param yyscanner The scanner object.
   3561  */
   3562 void _mesa_glsl_set_column (int  column_no , yyscan_t yyscanner)
   3563 {
   3564     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3565 
   3566         /* column is only valid if an input buffer exists. */
   3567         if (! YY_CURRENT_BUFFER )
   3568            yy_fatal_error( "_mesa_glsl_set_column called with no buffer" , yyscanner);
   3569 
   3570     yycolumn = column_no;
   3571 }
   3572 
   3573 /** Set the input stream. This does not discard the current
   3574  * input buffer.
   3575  * @param in_str A readable stream.
   3576  * @param yyscanner The scanner object.
   3577  * @see _mesa_glsl__switch_to_buffer
   3578  */
   3579 void _mesa_glsl_set_in (FILE *  in_str , yyscan_t yyscanner)
   3580 {
   3581     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3582     yyin = in_str ;
   3583 }
   3584 
   3585 void _mesa_glsl_set_out (FILE *  out_str , yyscan_t yyscanner)
   3586 {
   3587     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3588     yyout = out_str ;
   3589 }
   3590 
   3591 int _mesa_glsl_get_debug  (yyscan_t yyscanner)
   3592 {
   3593     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3594     return yy_flex_debug;
   3595 }
   3596 
   3597 void _mesa_glsl_set_debug (int  bdebug , yyscan_t yyscanner)
   3598 {
   3599     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3600     yy_flex_debug = bdebug ;
   3601 }
   3602 
   3603 /* Accessor methods for yylval and yylloc */
   3604 
   3605 YYSTYPE * _mesa_glsl_get_lval  (yyscan_t yyscanner)
   3606 {
   3607     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3608     return yylval;
   3609 }
   3610 
   3611 void _mesa_glsl_set_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
   3612 {
   3613     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3614     yylval = yylval_param;
   3615 }
   3616 
   3617 YYLTYPE *_mesa_glsl_get_lloc  (yyscan_t yyscanner)
   3618 {
   3619     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3620     return yylloc;
   3621 }
   3622 
   3623 void _mesa_glsl_set_lloc (YYLTYPE *  yylloc_param , yyscan_t yyscanner)
   3624 {
   3625     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3626     yylloc = yylloc_param;
   3627 }
   3628 
   3629 /* User-visible API */
   3630 
   3631 /* _mesa_glsl_lex_init is special because it creates the scanner itself, so it is
   3632  * the ONLY reentrant function that doesn't take the scanner as the last argument.
   3633  * That's why we explicitly handle the declaration, instead of using our macros.
   3634  */
   3635 
   3636 int _mesa_glsl_lex_init(yyscan_t* ptr_yy_globals)
   3637 
   3638 {
   3639     if (ptr_yy_globals == NULL){
   3640         errno = EINVAL;
   3641         return 1;
   3642     }
   3643 
   3644     *ptr_yy_globals = (yyscan_t) _mesa_glsl_alloc ( sizeof( struct yyguts_t ), NULL );
   3645 
   3646     if (*ptr_yy_globals == NULL){
   3647         errno = ENOMEM;
   3648         return 1;
   3649     }
   3650 
   3651     /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
   3652     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
   3653 
   3654     return yy_init_globals ( *ptr_yy_globals );
   3655 }
   3656 
   3657 /* _mesa_glsl_lex_init_extra has the same functionality as _mesa_glsl_lex_init, but follows the
   3658  * convention of taking the scanner as the last argument. Note however, that
   3659  * this is a *pointer* to a scanner, as it will be allocated by this call (and
   3660  * is the reason, too, why this function also must handle its own declaration).
   3661  * The user defined value in the first argument will be available to _mesa_glsl_alloc in
   3662  * the yyextra field.
   3663  */
   3664 
   3665 int _mesa_glsl_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
   3666 
   3667 {
   3668     struct yyguts_t dummy_yyguts;
   3669 
   3670     _mesa_glsl_set_extra (yy_user_defined, &dummy_yyguts);
   3671 
   3672     if (ptr_yy_globals == NULL){
   3673         errno = EINVAL;
   3674         return 1;
   3675     }
   3676 
   3677     *ptr_yy_globals = (yyscan_t) _mesa_glsl_alloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
   3678 
   3679     if (*ptr_yy_globals == NULL){
   3680         errno = ENOMEM;
   3681         return 1;
   3682     }
   3683 
   3684     /* By setting to 0xAA, we expose bugs in
   3685     yy_init_globals. Leave at 0x00 for releases. */
   3686     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
   3687 
   3688     _mesa_glsl_set_extra (yy_user_defined, *ptr_yy_globals);
   3689 
   3690     return yy_init_globals ( *ptr_yy_globals );
   3691 }
   3692 
   3693 static int yy_init_globals (yyscan_t yyscanner)
   3694 {
   3695     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3696     /* Initialization is the same as for the non-reentrant scanner.
   3697      * This function is called from _mesa_glsl_lex_destroy(), so don't allocate here.
   3698      */
   3699 
   3700     yyg->yy_buffer_stack = 0;
   3701     yyg->yy_buffer_stack_top = 0;
   3702     yyg->yy_buffer_stack_max = 0;
   3703     yyg->yy_c_buf_p = (char *) 0;
   3704     yyg->yy_init = 0;
   3705     yyg->yy_start = 0;
   3706 
   3707     yyg->yy_start_stack_ptr = 0;
   3708     yyg->yy_start_stack_depth = 0;
   3709     yyg->yy_start_stack =  NULL;
   3710 
   3711 /* Defined in main.c */
   3712 #ifdef YY_STDINIT
   3713     yyin = stdin;
   3714     yyout = stdout;
   3715 #else
   3716     yyin = (FILE *) 0;
   3717     yyout = (FILE *) 0;
   3718 #endif
   3719 
   3720     /* For future reference: Set errno on error, since we are called by
   3721      * _mesa_glsl_lex_init()
   3722      */
   3723     return 0;
   3724 }
   3725 
   3726 /* _mesa_glsl_lex_destroy is for both reentrant and non-reentrant scanners. */
   3727 int _mesa_glsl_lex_destroy  (yyscan_t yyscanner)
   3728 {
   3729     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   3730 
   3731     /* Pop the buffer stack, destroying each element. */
   3732 	while(YY_CURRENT_BUFFER){
   3733 		_mesa_glsl__delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
   3734 		YY_CURRENT_BUFFER_LVALUE = NULL;
   3735 		_mesa_glsl_pop_buffer_state(yyscanner);
   3736 	}
   3737 
   3738 	/* Destroy the stack itself. */
   3739 	_mesa_glsl_free(yyg->yy_buffer_stack ,yyscanner);
   3740 	yyg->yy_buffer_stack = NULL;
   3741 
   3742     /* Destroy the start condition stack. */
   3743         _mesa_glsl_free(yyg->yy_start_stack ,yyscanner );
   3744         yyg->yy_start_stack = NULL;
   3745 
   3746     /* Reset the globals. This is important in a non-reentrant scanner so the next time
   3747      * _mesa_glsl_lex() is called, initialization will occur. */
   3748     yy_init_globals( yyscanner);
   3749 
   3750     /* Destroy the main struct (reentrant only). */
   3751     _mesa_glsl_free ( yyscanner , yyscanner );
   3752     yyscanner = NULL;
   3753     return 0;
   3754 }
   3755 
   3756 /*
   3757  * Internal utility routines.
   3758  */
   3759 
   3760 #ifndef yytext_ptr
   3761 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
   3762 {
   3763 	register int i;
   3764 	for ( i = 0; i < n; ++i )
   3765 		s1[i] = s2[i];
   3766 }
   3767 #endif
   3768 
   3769 #ifdef YY_NEED_STRLEN
   3770 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
   3771 {
   3772 	register int n;
   3773 	for ( n = 0; s[n]; ++n )
   3774 		;
   3775 
   3776 	return n;
   3777 }
   3778 #endif
   3779 
   3780 void *_mesa_glsl_alloc (yy_size_t  size , yyscan_t yyscanner)
   3781 {
   3782 	return (void *) malloc( size );
   3783 }
   3784 
   3785 void *_mesa_glsl_realloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
   3786 {
   3787 	/* The cast to (char *) in the following accommodates both
   3788 	 * implementations that use char* generic pointers, and those
   3789 	 * that use void* generic pointers.  It works with the latter
   3790 	 * because both ANSI C and C++ allow castless assignment from
   3791 	 * any pointer type to void*, and deal with argument conversions
   3792 	 * as though doing an assignment.
   3793 	 */
   3794 	return (void *) realloc( (char *) ptr, size );
   3795 }
   3796 
   3797 void _mesa_glsl_free (void * ptr , yyscan_t yyscanner)
   3798 {
   3799 	free( (char *) ptr );	/* see _mesa_glsl_realloc() for (char *) cast */
   3800 }
   3801 
   3802 #define YYTABLES_NAME "yytables"
   3803 
   3804 #line 489 "src/src/glsl/glsl_lexer.ll"
   3805 
   3806 
   3807 
   3808 int
   3809 classify_identifier(struct _mesa_glsl_parse_state *state, const char *name)
   3810 {
   3811    if (state->symbols->get_variable(name) || state->symbols->get_function(name))
   3812       return IDENTIFIER;
   3813    else if (state->symbols->get_type(name))
   3814       return TYPE_IDENTIFIER;
   3815    else
   3816       return NEW_IDENTIFIER;
   3817 }
   3818 
   3819 void
   3820 _mesa_glsl_lexer_ctor(struct _mesa_glsl_parse_state *state, const char *string)
   3821 {
   3822    _mesa_glsl_lex_init_extra(state,& state->scanner);
   3823    _mesa_glsl__scan_string(string,state->scanner);
   3824 }
   3825 
   3826 void
   3827 _mesa_glsl_lexer_dtor(struct _mesa_glsl_parse_state *state)
   3828 {
   3829    _mesa_glsl_lex_destroy(state->scanner);
   3830 }
   3831 
   3832