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