11591693c7b415e9869157c711fe11263c95d74eDavid Li#line 2 "glsl_lexer.cpp"
21591693c7b415e9869157c711fe11263c95d74eDavid Li
31591693c7b415e9869157c711fe11263c95d74eDavid Li#line 4 "glsl_lexer.cpp"
41591693c7b415e9869157c711fe11263c95d74eDavid Li
51591693c7b415e9869157c711fe11263c95d74eDavid Li#define  YY_INT_ALIGNED short int
61591693c7b415e9869157c711fe11263c95d74eDavid Li
71591693c7b415e9869157c711fe11263c95d74eDavid Li/* A lexical scanner generated by flex */
81591693c7b415e9869157c711fe11263c95d74eDavid Li
91591693c7b415e9869157c711fe11263c95d74eDavid Li#define FLEX_SCANNER
101591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_FLEX_MAJOR_VERSION 2
111591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_FLEX_MINOR_VERSION 5
121591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_FLEX_SUBMINOR_VERSION 35
131591693c7b415e9869157c711fe11263c95d74eDavid Li#if YY_FLEX_SUBMINOR_VERSION > 0
141591693c7b415e9869157c711fe11263c95d74eDavid Li#define FLEX_BETA
151591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
161591693c7b415e9869157c711fe11263c95d74eDavid Li
171591693c7b415e9869157c711fe11263c95d74eDavid Li/* First, we deal with  platform-specific or compiler-specific issues. */
181591693c7b415e9869157c711fe11263c95d74eDavid Li
191591693c7b415e9869157c711fe11263c95d74eDavid Li/* begin standard C headers. */
201591693c7b415e9869157c711fe11263c95d74eDavid Li#include <stdio.h>
211591693c7b415e9869157c711fe11263c95d74eDavid Li#include <string.h>
221591693c7b415e9869157c711fe11263c95d74eDavid Li#include <errno.h>
231591693c7b415e9869157c711fe11263c95d74eDavid Li#include <stdlib.h>
241591693c7b415e9869157c711fe11263c95d74eDavid Li
251591693c7b415e9869157c711fe11263c95d74eDavid Li/* end standard C headers. */
261591693c7b415e9869157c711fe11263c95d74eDavid Li
271591693c7b415e9869157c711fe11263c95d74eDavid Li/* flex integer type definitions */
281591693c7b415e9869157c711fe11263c95d74eDavid Li
291591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef FLEXINT_H
301591693c7b415e9869157c711fe11263c95d74eDavid Li#define FLEXINT_H
311591693c7b415e9869157c711fe11263c95d74eDavid Li
321591693c7b415e9869157c711fe11263c95d74eDavid Li/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
331591693c7b415e9869157c711fe11263c95d74eDavid Li
341591693c7b415e9869157c711fe11263c95d74eDavid Li#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
351591693c7b415e9869157c711fe11263c95d74eDavid Li
361591693c7b415e9869157c711fe11263c95d74eDavid Li/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
371591693c7b415e9869157c711fe11263c95d74eDavid Li * if you want the limit (max/min) macros for int types.
381591693c7b415e9869157c711fe11263c95d74eDavid Li */
391591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef __STDC_LIMIT_MACROS
401591693c7b415e9869157c711fe11263c95d74eDavid Li#define __STDC_LIMIT_MACROS 1
411591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
421591693c7b415e9869157c711fe11263c95d74eDavid Li
431591693c7b415e9869157c711fe11263c95d74eDavid Li#include <inttypes.h>
441591693c7b415e9869157c711fe11263c95d74eDavid Litypedef int8_t flex_int8_t;
451591693c7b415e9869157c711fe11263c95d74eDavid Litypedef uint8_t flex_uint8_t;
461591693c7b415e9869157c711fe11263c95d74eDavid Litypedef int16_t flex_int16_t;
471591693c7b415e9869157c711fe11263c95d74eDavid Litypedef uint16_t flex_uint16_t;
481591693c7b415e9869157c711fe11263c95d74eDavid Litypedef int32_t flex_int32_t;
491591693c7b415e9869157c711fe11263c95d74eDavid Litypedef uint32_t flex_uint32_t;
501591693c7b415e9869157c711fe11263c95d74eDavid Li#else
511591693c7b415e9869157c711fe11263c95d74eDavid Litypedef signed char flex_int8_t;
521591693c7b415e9869157c711fe11263c95d74eDavid Litypedef short int flex_int16_t;
531591693c7b415e9869157c711fe11263c95d74eDavid Litypedef int flex_int32_t;
541591693c7b415e9869157c711fe11263c95d74eDavid Litypedef unsigned char flex_uint8_t;
551591693c7b415e9869157c711fe11263c95d74eDavid Litypedef unsigned short int flex_uint16_t;
561591693c7b415e9869157c711fe11263c95d74eDavid Litypedef unsigned int flex_uint32_t;
571591693c7b415e9869157c711fe11263c95d74eDavid Li#endif /* ! C99 */
581591693c7b415e9869157c711fe11263c95d74eDavid Li
591591693c7b415e9869157c711fe11263c95d74eDavid Li/* Limits of integral types. */
601591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef INT8_MIN
611591693c7b415e9869157c711fe11263c95d74eDavid Li#define INT8_MIN               (-128)
621591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
631591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef INT16_MIN
641591693c7b415e9869157c711fe11263c95d74eDavid Li#define INT16_MIN              (-32767-1)
651591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
661591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef INT32_MIN
671591693c7b415e9869157c711fe11263c95d74eDavid Li#define INT32_MIN              (-2147483647-1)
681591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
691591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef INT8_MAX
701591693c7b415e9869157c711fe11263c95d74eDavid Li#define INT8_MAX               (127)
711591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
721591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef INT16_MAX
731591693c7b415e9869157c711fe11263c95d74eDavid Li#define INT16_MAX              (32767)
741591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
751591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef INT32_MAX
761591693c7b415e9869157c711fe11263c95d74eDavid Li#define INT32_MAX              (2147483647)
771591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
781591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef UINT8_MAX
791591693c7b415e9869157c711fe11263c95d74eDavid Li#define UINT8_MAX              (255U)
801591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
811591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef UINT16_MAX
821591693c7b415e9869157c711fe11263c95d74eDavid Li#define UINT16_MAX             (65535U)
831591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
841591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef UINT32_MAX
851591693c7b415e9869157c711fe11263c95d74eDavid Li#define UINT32_MAX             (4294967295U)
861591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
871591693c7b415e9869157c711fe11263c95d74eDavid Li
881591693c7b415e9869157c711fe11263c95d74eDavid Li#endif /* ! FLEXINT_H */
891591693c7b415e9869157c711fe11263c95d74eDavid Li
901591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef __cplusplus
911591693c7b415e9869157c711fe11263c95d74eDavid Li
921591693c7b415e9869157c711fe11263c95d74eDavid Li/* The "const" storage-class-modifier is valid. */
931591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_USE_CONST
941591693c7b415e9869157c711fe11263c95d74eDavid Li
951591693c7b415e9869157c711fe11263c95d74eDavid Li#else	/* ! __cplusplus */
961591693c7b415e9869157c711fe11263c95d74eDavid Li
971591693c7b415e9869157c711fe11263c95d74eDavid Li/* C99 requires __STDC__ to be defined as 1. */
981591693c7b415e9869157c711fe11263c95d74eDavid Li#if defined (__STDC__)
991591693c7b415e9869157c711fe11263c95d74eDavid Li
1001591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_USE_CONST
1011591693c7b415e9869157c711fe11263c95d74eDavid Li
1021591693c7b415e9869157c711fe11263c95d74eDavid Li#endif	/* defined (__STDC__) */
1031591693c7b415e9869157c711fe11263c95d74eDavid Li#endif	/* ! __cplusplus */
1041591693c7b415e9869157c711fe11263c95d74eDavid Li
1051591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef YY_USE_CONST
1061591693c7b415e9869157c711fe11263c95d74eDavid Li#define yyconst const
1071591693c7b415e9869157c711fe11263c95d74eDavid Li#else
1081591693c7b415e9869157c711fe11263c95d74eDavid Li#define yyconst
1091591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
1101591693c7b415e9869157c711fe11263c95d74eDavid Li
1111591693c7b415e9869157c711fe11263c95d74eDavid Li/* Returned upon end-of-file. */
1121591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_NULL 0
1131591693c7b415e9869157c711fe11263c95d74eDavid Li
1141591693c7b415e9869157c711fe11263c95d74eDavid Li/* Promotes a possibly negative, possibly signed char to an unsigned
1151591693c7b415e9869157c711fe11263c95d74eDavid Li * integer for use as an array index.  If the signed char is negative,
1161591693c7b415e9869157c711fe11263c95d74eDavid Li * we want to instead treat it as an 8-bit unsigned char, hence the
1171591693c7b415e9869157c711fe11263c95d74eDavid Li * double cast.
1181591693c7b415e9869157c711fe11263c95d74eDavid Li */
1191591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
1201591693c7b415e9869157c711fe11263c95d74eDavid Li
1211591693c7b415e9869157c711fe11263c95d74eDavid Li/* An opaque pointer. */
1221591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_TYPEDEF_YY_SCANNER_T
1231591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_TYPEDEF_YY_SCANNER_T
1241591693c7b415e9869157c711fe11263c95d74eDavid Litypedef void* yyscan_t;
1251591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
1261591693c7b415e9869157c711fe11263c95d74eDavid Li
1271591693c7b415e9869157c711fe11263c95d74eDavid Li/* For convenience, these vars (plus the bison vars far below)
1281591693c7b415e9869157c711fe11263c95d74eDavid Li   are macros in the reentrant scanner. */
1291591693c7b415e9869157c711fe11263c95d74eDavid Li#define yyin yyg->yyin_r
1301591693c7b415e9869157c711fe11263c95d74eDavid Li#define yyout yyg->yyout_r
1311591693c7b415e9869157c711fe11263c95d74eDavid Li#define yyextra yyg->yyextra_r
1321591693c7b415e9869157c711fe11263c95d74eDavid Li#define yyleng yyg->yyleng_r
1331591693c7b415e9869157c711fe11263c95d74eDavid Li#define yytext yyg->yytext_r
1341591693c7b415e9869157c711fe11263c95d74eDavid Li#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
1351591693c7b415e9869157c711fe11263c95d74eDavid Li#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
1361591693c7b415e9869157c711fe11263c95d74eDavid Li#define yy_flex_debug yyg->yy_flex_debug_r
1371591693c7b415e9869157c711fe11263c95d74eDavid Li
1381591693c7b415e9869157c711fe11263c95d74eDavid Li/* Enter a start condition.  This macro really ought to take a parameter,
1391591693c7b415e9869157c711fe11263c95d74eDavid Li * but we do it the disgusting crufty way forced on us by the ()-less
1401591693c7b415e9869157c711fe11263c95d74eDavid Li * definition of BEGIN.
1411591693c7b415e9869157c711fe11263c95d74eDavid Li */
1421591693c7b415e9869157c711fe11263c95d74eDavid Li#define BEGIN yyg->yy_start = 1 + 2 *
1431591693c7b415e9869157c711fe11263c95d74eDavid Li
1441591693c7b415e9869157c711fe11263c95d74eDavid Li/* Translate the current start state into a value that can be later handed
1451591693c7b415e9869157c711fe11263c95d74eDavid Li * to BEGIN to return to the state.  The YYSTATE alias is for lex
1461591693c7b415e9869157c711fe11263c95d74eDavid Li * compatibility.
1471591693c7b415e9869157c711fe11263c95d74eDavid Li */
1481591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_START ((yyg->yy_start - 1) / 2)
1491591693c7b415e9869157c711fe11263c95d74eDavid Li#define YYSTATE YY_START
1501591693c7b415e9869157c711fe11263c95d74eDavid Li
1511591693c7b415e9869157c711fe11263c95d74eDavid Li/* Action number for EOF rule of a given start state. */
1521591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
1531591693c7b415e9869157c711fe11263c95d74eDavid Li
1541591693c7b415e9869157c711fe11263c95d74eDavid Li/* Special action meaning "start processing a new file". */
1551591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_NEW_FILE _mesa_glsl_restart(yyin ,yyscanner )
1561591693c7b415e9869157c711fe11263c95d74eDavid Li
1571591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_END_OF_BUFFER_CHAR 0
1581591693c7b415e9869157c711fe11263c95d74eDavid Li
1591591693c7b415e9869157c711fe11263c95d74eDavid Li/* Size of default input buffer. */
1601591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_BUF_SIZE
1611591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_BUF_SIZE 16384
1621591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
1631591693c7b415e9869157c711fe11263c95d74eDavid Li
1641591693c7b415e9869157c711fe11263c95d74eDavid Li/* The state buf must be large enough to hold one state per character in the main buffer.
1651591693c7b415e9869157c711fe11263c95d74eDavid Li */
1661591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
1671591693c7b415e9869157c711fe11263c95d74eDavid Li
1681591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_TYPEDEF_YY_BUFFER_STATE
1691591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_TYPEDEF_YY_BUFFER_STATE
1701591693c7b415e9869157c711fe11263c95d74eDavid Litypedef struct yy_buffer_state *YY_BUFFER_STATE;
1711591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
1721591693c7b415e9869157c711fe11263c95d74eDavid Li
1731591693c7b415e9869157c711fe11263c95d74eDavid Li#define EOB_ACT_CONTINUE_SCAN 0
1741591693c7b415e9869157c711fe11263c95d74eDavid Li#define EOB_ACT_END_OF_FILE 1
1751591693c7b415e9869157c711fe11263c95d74eDavid Li#define EOB_ACT_LAST_MATCH 2
1761591693c7b415e9869157c711fe11263c95d74eDavid Li
1771591693c7b415e9869157c711fe11263c95d74eDavid Li    #define YY_LESS_LINENO(n)
1781591693c7b415e9869157c711fe11263c95d74eDavid Li
1791591693c7b415e9869157c711fe11263c95d74eDavid Li/* Return all but the first "n" matched characters back to the input stream. */
1801591693c7b415e9869157c711fe11263c95d74eDavid Li#define yyless(n) \
1811591693c7b415e9869157c711fe11263c95d74eDavid Li	do \
1821591693c7b415e9869157c711fe11263c95d74eDavid Li		{ \
1831591693c7b415e9869157c711fe11263c95d74eDavid Li		/* Undo effects of setting up yytext. */ \
1841591693c7b415e9869157c711fe11263c95d74eDavid Li        int yyless_macro_arg = (n); \
1851591693c7b415e9869157c711fe11263c95d74eDavid Li        YY_LESS_LINENO(yyless_macro_arg);\
1861591693c7b415e9869157c711fe11263c95d74eDavid Li		*yy_cp = yyg->yy_hold_char; \
1871591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_RESTORE_YY_MORE_OFFSET \
1881591693c7b415e9869157c711fe11263c95d74eDavid Li		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
1891591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
1901591693c7b415e9869157c711fe11263c95d74eDavid Li		} \
1911591693c7b415e9869157c711fe11263c95d74eDavid Li	while ( 0 )
1921591693c7b415e9869157c711fe11263c95d74eDavid Li
1931591693c7b415e9869157c711fe11263c95d74eDavid Li#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
1941591693c7b415e9869157c711fe11263c95d74eDavid Li
1951591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_TYPEDEF_YY_SIZE_T
1961591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_TYPEDEF_YY_SIZE_T
1971591693c7b415e9869157c711fe11263c95d74eDavid Litypedef size_t yy_size_t;
1981591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
1991591693c7b415e9869157c711fe11263c95d74eDavid Li
2001591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_STRUCT_YY_BUFFER_STATE
2011591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_STRUCT_YY_BUFFER_STATE
2021591693c7b415e9869157c711fe11263c95d74eDavid Listruct yy_buffer_state
2031591693c7b415e9869157c711fe11263c95d74eDavid Li	{
2041591693c7b415e9869157c711fe11263c95d74eDavid Li	FILE *yy_input_file;
2051591693c7b415e9869157c711fe11263c95d74eDavid Li
2061591693c7b415e9869157c711fe11263c95d74eDavid Li	char *yy_ch_buf;		/* input buffer */
2071591693c7b415e9869157c711fe11263c95d74eDavid Li	char *yy_buf_pos;		/* current position in input buffer */
2081591693c7b415e9869157c711fe11263c95d74eDavid Li
2091591693c7b415e9869157c711fe11263c95d74eDavid Li	/* Size of input buffer in bytes, not including room for EOB
2101591693c7b415e9869157c711fe11263c95d74eDavid Li	 * characters.
2111591693c7b415e9869157c711fe11263c95d74eDavid Li	 */
2121591693c7b415e9869157c711fe11263c95d74eDavid Li	yy_size_t yy_buf_size;
2131591693c7b415e9869157c711fe11263c95d74eDavid Li
2141591693c7b415e9869157c711fe11263c95d74eDavid Li	/* Number of characters read into yy_ch_buf, not including EOB
2151591693c7b415e9869157c711fe11263c95d74eDavid Li	 * characters.
2161591693c7b415e9869157c711fe11263c95d74eDavid Li	 */
2171591693c7b415e9869157c711fe11263c95d74eDavid Li	int yy_n_chars;
2181591693c7b415e9869157c711fe11263c95d74eDavid Li
2191591693c7b415e9869157c711fe11263c95d74eDavid Li	/* Whether we "own" the buffer - i.e., we know we created it,
2201591693c7b415e9869157c711fe11263c95d74eDavid Li	 * and can realloc() it to grow it, and should free() it to
2211591693c7b415e9869157c711fe11263c95d74eDavid Li	 * delete it.
2221591693c7b415e9869157c711fe11263c95d74eDavid Li	 */
2231591693c7b415e9869157c711fe11263c95d74eDavid Li	int yy_is_our_buffer;
2241591693c7b415e9869157c711fe11263c95d74eDavid Li
2251591693c7b415e9869157c711fe11263c95d74eDavid Li	/* Whether this is an "interactive" input source; if so, and
2261591693c7b415e9869157c711fe11263c95d74eDavid Li	 * if we're using stdio for input, then we want to use getc()
2271591693c7b415e9869157c711fe11263c95d74eDavid Li	 * instead of fread(), to make sure we stop fetching input after
2281591693c7b415e9869157c711fe11263c95d74eDavid Li	 * each newline.
2291591693c7b415e9869157c711fe11263c95d74eDavid Li	 */
2301591693c7b415e9869157c711fe11263c95d74eDavid Li	int yy_is_interactive;
2311591693c7b415e9869157c711fe11263c95d74eDavid Li
2321591693c7b415e9869157c711fe11263c95d74eDavid Li	/* Whether we're considered to be at the beginning of a line.
2331591693c7b415e9869157c711fe11263c95d74eDavid Li	 * If so, '^' rules will be active on the next match, otherwise
2341591693c7b415e9869157c711fe11263c95d74eDavid Li	 * not.
2351591693c7b415e9869157c711fe11263c95d74eDavid Li	 */
2361591693c7b415e9869157c711fe11263c95d74eDavid Li	int yy_at_bol;
2371591693c7b415e9869157c711fe11263c95d74eDavid Li
2381591693c7b415e9869157c711fe11263c95d74eDavid Li    int yy_bs_lineno; /**< The line count. */
2391591693c7b415e9869157c711fe11263c95d74eDavid Li    int yy_bs_column; /**< The column count. */
2401591693c7b415e9869157c711fe11263c95d74eDavid Li
2411591693c7b415e9869157c711fe11263c95d74eDavid Li	/* Whether to try to fill the input buffer when we reach the
2421591693c7b415e9869157c711fe11263c95d74eDavid Li	 * end of it.
2431591693c7b415e9869157c711fe11263c95d74eDavid Li	 */
2441591693c7b415e9869157c711fe11263c95d74eDavid Li	int yy_fill_buffer;
2451591693c7b415e9869157c711fe11263c95d74eDavid Li
2461591693c7b415e9869157c711fe11263c95d74eDavid Li	int yy_buffer_status;
2471591693c7b415e9869157c711fe11263c95d74eDavid Li
2481591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_BUFFER_NEW 0
2491591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_BUFFER_NORMAL 1
2501591693c7b415e9869157c711fe11263c95d74eDavid Li	/* When an EOF's been seen but there's still some text to process
2511591693c7b415e9869157c711fe11263c95d74eDavid Li	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
2521591693c7b415e9869157c711fe11263c95d74eDavid Li	 * shouldn't try reading from the input source any more.  We might
2531591693c7b415e9869157c711fe11263c95d74eDavid Li	 * still have a bunch of tokens to match, though, because of
2541591693c7b415e9869157c711fe11263c95d74eDavid Li	 * possible backing-up.
2551591693c7b415e9869157c711fe11263c95d74eDavid Li	 *
2561591693c7b415e9869157c711fe11263c95d74eDavid Li	 * When we actually see the EOF, we change the status to "new"
2571591693c7b415e9869157c711fe11263c95d74eDavid Li	 * (via _mesa_glsl_restart()), so that the user can continue scanning by
2581591693c7b415e9869157c711fe11263c95d74eDavid Li	 * just pointing yyin at a new input file.
2591591693c7b415e9869157c711fe11263c95d74eDavid Li	 */
2601591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_BUFFER_EOF_PENDING 2
2611591693c7b415e9869157c711fe11263c95d74eDavid Li
2621591693c7b415e9869157c711fe11263c95d74eDavid Li	};
2631591693c7b415e9869157c711fe11263c95d74eDavid Li#endif /* !YY_STRUCT_YY_BUFFER_STATE */
2641591693c7b415e9869157c711fe11263c95d74eDavid Li
2651591693c7b415e9869157c711fe11263c95d74eDavid Li/* We provide macros for accessing buffer states in case in the
2661591693c7b415e9869157c711fe11263c95d74eDavid Li * future we want to put the buffer states in a more general
2671591693c7b415e9869157c711fe11263c95d74eDavid Li * "scanner state".
2681591693c7b415e9869157c711fe11263c95d74eDavid Li *
2691591693c7b415e9869157c711fe11263c95d74eDavid Li * Returns the top of the stack, or NULL.
2701591693c7b415e9869157c711fe11263c95d74eDavid Li */
2711591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
2721591693c7b415e9869157c711fe11263c95d74eDavid Li                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
2731591693c7b415e9869157c711fe11263c95d74eDavid Li                          : NULL)
2741591693c7b415e9869157c711fe11263c95d74eDavid Li
2751591693c7b415e9869157c711fe11263c95d74eDavid Li/* Same as previous macro, but useful when we know that the buffer stack is not
2761591693c7b415e9869157c711fe11263c95d74eDavid Li * NULL or when we need an lvalue. For internal use only.
2771591693c7b415e9869157c711fe11263c95d74eDavid Li */
2781591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
2791591693c7b415e9869157c711fe11263c95d74eDavid Li
2801591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_restart (FILE *input_file ,yyscan_t yyscanner );
2811591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
2821591693c7b415e9869157c711fe11263c95d74eDavid LiYY_BUFFER_STATE _mesa_glsl__create_buffer (FILE *file,int size ,yyscan_t yyscanner );
2831591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
2841591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
2851591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
2861591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_pop_buffer_state (yyscan_t yyscanner );
2871591693c7b415e9869157c711fe11263c95d74eDavid Li
2881591693c7b415e9869157c711fe11263c95d74eDavid Listatic void _mesa_glsl_ensure_buffer_stack (yyscan_t yyscanner );
2891591693c7b415e9869157c711fe11263c95d74eDavid Listatic void _mesa_glsl__load_buffer_state (yyscan_t yyscanner );
2901591693c7b415e9869157c711fe11263c95d74eDavid Listatic void _mesa_glsl__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
2911591693c7b415e9869157c711fe11263c95d74eDavid Li
2921591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_FLUSH_BUFFER _mesa_glsl__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
2931591693c7b415e9869157c711fe11263c95d74eDavid Li
2941591693c7b415e9869157c711fe11263c95d74eDavid LiYY_BUFFER_STATE _mesa_glsl__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
2951591693c7b415e9869157c711fe11263c95d74eDavid LiYY_BUFFER_STATE _mesa_glsl__scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
2961591693c7b415e9869157c711fe11263c95d74eDavid LiYY_BUFFER_STATE _mesa_glsl__scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
2971591693c7b415e9869157c711fe11263c95d74eDavid Li
2981591693c7b415e9869157c711fe11263c95d74eDavid Livoid *_mesa_glsl_alloc (yy_size_t ,yyscan_t yyscanner );
2991591693c7b415e9869157c711fe11263c95d74eDavid Livoid *_mesa_glsl_realloc (void *,yy_size_t ,yyscan_t yyscanner );
3001591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_free (void * ,yyscan_t yyscanner );
3011591693c7b415e9869157c711fe11263c95d74eDavid Li
3021591693c7b415e9869157c711fe11263c95d74eDavid Li#define yy_new_buffer _mesa_glsl__create_buffer
3031591693c7b415e9869157c711fe11263c95d74eDavid Li
3041591693c7b415e9869157c711fe11263c95d74eDavid Li#define yy_set_interactive(is_interactive) \
3051591693c7b415e9869157c711fe11263c95d74eDavid Li	{ \
3061591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( ! YY_CURRENT_BUFFER ){ \
3071591693c7b415e9869157c711fe11263c95d74eDavid Li        _mesa_glsl_ensure_buffer_stack (yyscanner); \
3081591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_CURRENT_BUFFER_LVALUE =    \
3091591693c7b415e9869157c711fe11263c95d74eDavid Li            _mesa_glsl__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
3101591693c7b415e9869157c711fe11263c95d74eDavid Li	} \
3111591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
3121591693c7b415e9869157c711fe11263c95d74eDavid Li	}
3131591693c7b415e9869157c711fe11263c95d74eDavid Li
3141591693c7b415e9869157c711fe11263c95d74eDavid Li#define yy_set_bol(at_bol) \
3151591693c7b415e9869157c711fe11263c95d74eDavid Li	{ \
3161591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( ! YY_CURRENT_BUFFER ){\
3171591693c7b415e9869157c711fe11263c95d74eDavid Li        _mesa_glsl_ensure_buffer_stack (yyscanner); \
3181591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_CURRENT_BUFFER_LVALUE =    \
3191591693c7b415e9869157c711fe11263c95d74eDavid Li            _mesa_glsl__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
3201591693c7b415e9869157c711fe11263c95d74eDavid Li	} \
3211591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
3221591693c7b415e9869157c711fe11263c95d74eDavid Li	}
3231591693c7b415e9869157c711fe11263c95d74eDavid Li
3241591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
3251591693c7b415e9869157c711fe11263c95d74eDavid Li
3261591693c7b415e9869157c711fe11263c95d74eDavid Li/* Begin user sect3 */
3271591693c7b415e9869157c711fe11263c95d74eDavid Li
3281591693c7b415e9869157c711fe11263c95d74eDavid Li#define _mesa_glsl_wrap(n) 1
3291591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_SKIP_YYWRAP
3301591693c7b415e9869157c711fe11263c95d74eDavid Li
3311591693c7b415e9869157c711fe11263c95d74eDavid Litypedef unsigned char YY_CHAR;
3321591693c7b415e9869157c711fe11263c95d74eDavid Li
3331591693c7b415e9869157c711fe11263c95d74eDavid Litypedef int yy_state_type;
3341591693c7b415e9869157c711fe11263c95d74eDavid Li
3351591693c7b415e9869157c711fe11263c95d74eDavid Li#define yytext_ptr yytext_r
3361591693c7b415e9869157c711fe11263c95d74eDavid Li
3371591693c7b415e9869157c711fe11263c95d74eDavid Listatic yy_state_type yy_get_previous_state (yyscan_t yyscanner );
3381591693c7b415e9869157c711fe11263c95d74eDavid Listatic yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
3391591693c7b415e9869157c711fe11263c95d74eDavid Listatic int yy_get_next_buffer (yyscan_t yyscanner );
3401591693c7b415e9869157c711fe11263c95d74eDavid Listatic void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
3411591693c7b415e9869157c711fe11263c95d74eDavid Li
3421591693c7b415e9869157c711fe11263c95d74eDavid Li/* Done after the current pattern has been matched and before the
3431591693c7b415e9869157c711fe11263c95d74eDavid Li * corresponding action - sets up yytext.
3441591693c7b415e9869157c711fe11263c95d74eDavid Li */
3451591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_DO_BEFORE_ACTION \
3461591693c7b415e9869157c711fe11263c95d74eDavid Li	yyg->yytext_ptr = yy_bp; \
3471591693c7b415e9869157c711fe11263c95d74eDavid Li	yyleng = (size_t) (yy_cp - yy_bp); \
3481591693c7b415e9869157c711fe11263c95d74eDavid Li	yyg->yy_hold_char = *yy_cp; \
3491591693c7b415e9869157c711fe11263c95d74eDavid Li	*yy_cp = '\0'; \
3501591693c7b415e9869157c711fe11263c95d74eDavid Li	yyg->yy_c_buf_p = yy_cp;
3511591693c7b415e9869157c711fe11263c95d74eDavid Li
3521591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_NUM_RULES 209
3531591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_END_OF_BUFFER 210
3541591693c7b415e9869157c711fe11263c95d74eDavid Li/* This struct is not used in this scanner,
3551591693c7b415e9869157c711fe11263c95d74eDavid Li   but its presence is necessary. */
3561591693c7b415e9869157c711fe11263c95d74eDavid Listruct yy_trans_info
3571591693c7b415e9869157c711fe11263c95d74eDavid Li	{
3581591693c7b415e9869157c711fe11263c95d74eDavid Li	flex_int32_t yy_verify;
3591591693c7b415e9869157c711fe11263c95d74eDavid Li	flex_int32_t yy_nxt;
3601591693c7b415e9869157c711fe11263c95d74eDavid Li	};
3611591693c7b415e9869157c711fe11263c95d74eDavid Listatic yyconst flex_int16_t yy_accept[813] =
3621591693c7b415e9869157c711fe11263c95d74eDavid Li    {   0,
3631591693c7b415e9869157c711fe11263c95d74eDavid Li        0,    0,   15,   15,    0,    0,  210,  208,    1,   20,
3641591693c7b415e9869157c711fe11263c95d74eDavid Li      208,  208,  208,  208,  208,  208,  208,  208,  119,  117,
3651591693c7b415e9869157c711fe11263c95d74eDavid Li      208,  208,  208,  207,  208,  207,  207,  207,  207,  207,
3661591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
3671591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  208,    1,  208,  209,   15,
3681591693c7b415e9869157c711fe11263c95d74eDavid Li       19,  209,   18,   16,   17,   13,   12,    1,  101,  110,
3691591693c7b415e9869157c711fe11263c95d74eDavid Li      102,  113,  107,   96,  109,   97,  116,  121,  108,  122,
3701591693c7b415e9869157c711fe11263c95d74eDavid Li      119,    0,    0,  124,  119,    0,  117,  117,  105,   98,
3711591693c7b415e9869157c711fe11263c95d74eDavid Li      100,   99,  106,  207,  114,  104,  207,  207,  207,  207,
3721591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  207,   29,  207,
3731591693c7b415e9869157c711fe11263c95d74eDavid Li
3741591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
3751591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,   33,  207,  207,   60,  207,  207,  207,  207,
3761591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
3771591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
3781591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  207,  207,  115,
3791591693c7b415e9869157c711fe11263c95d74eDavid Li      103,    1,    0,    0,    2,    0,    0,    0,    0,   15,
3801591693c7b415e9869157c711fe11263c95d74eDavid Li       14,   18,   17,    0,  121,  120,    0,  122,    0,  123,
3811591693c7b415e9869157c711fe11263c95d74eDavid Li      118,  111,  112,  207,  127,  207,  207,  207,  207,  207,
3821591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
3831591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,   32,  207,  207,  207,
3841591693c7b415e9869157c711fe11263c95d74eDavid Li
3851591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,   25,  207,  207,
3861591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  207,  207,   61,
3871591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
3881591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
3891591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
3901591693c7b415e9869157c711fe11263c95d74eDavid Li        0,    0,    0,    0,   14,    0,  121,    0,  120,    0,
3911591693c7b415e9869157c711fe11263c95d74eDavid Li      122,  123,  118,  207,  207,   23,  207,  207,  174,  167,
3921591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  207,  207,   31,
3931591693c7b415e9869157c711fe11263c95d74eDavid Li      130,  207,  207,  207,  207,   67,  207,  207,  135,  149,
3941591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
3951591693c7b415e9869157c711fe11263c95d74eDavid Li
3961591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  146,  170,   48,   49,   50,  207,  207,  207,
3971591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
3981591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  133,  125,  207,
3991591693c7b415e9869157c711fe11263c95d74eDavid Li      207,   26,  207,  207,  207,  207,  207,  207,  207,   45,
4001591693c7b415e9869157c711fe11263c95d74eDavid Li       46,   47,   94,  207,  207,    0,    0,    0,    0,    0,
4011591693c7b415e9869157c711fe11263c95d74eDavid Li      120,  207,  207,   27,   36,   37,   38,  207,  128,  207,
4021591693c7b415e9869157c711fe11263c95d74eDavid Li       22,  207,  207,  207,  207,  157,  158,  159,  207,  126,
4031591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  150,   24,  160,  161,  162,  172,  154,  155,  156,
4041591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,   62,  152,  207,  207,  207,   39,   40,
4051591693c7b415e9869157c711fe11263c95d74eDavid Li       41,  207,  207,  207,  207,  207,  207,  207,  207,  207,
4061591693c7b415e9869157c711fe11263c95d74eDavid Li
4071591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  147,  207,  207,
4081591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  207,  129,  207,
4091591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  169,   42,   43,   44,  207,  207,   30,    0,    0,
4101591693c7b415e9869157c711fe11263c95d74eDavid Li        0,    0,  177,  207,  207,  175,  207,  207,  207,  148,
4111591693c7b415e9869157c711fe11263c95d74eDavid Li      143,  180,  207,  207,  207,  207,  207,  207,  138,  207,
4121591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,   95,   51,   52,   53,   54,   55,   56,   57,
4131591693c7b415e9869157c711fe11263c95d74eDavid Li       58,   59,  207,  207,  207,  207,  153,  134,  207,  207,
4141591693c7b415e9869157c711fe11263c95d74eDavid Li      141,   35,  207,  207,  166,   68,  142,   93,  178,  136,
4151591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  207,    0,    0,
4161591693c7b415e9869157c711fe11263c95d74eDavid Li        0,    0,  207,  207,  207,  137,   34,  207,  207,  207,
4171591693c7b415e9869157c711fe11263c95d74eDavid Li
4181591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  181,  182,  183,  207,  207,  207,  207,
4191591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  171,  207,  207,  207,  207,  207,  207,  207,  207,
4201591693c7b415e9869157c711fe11263c95d74eDavid Li      131,  207,  207,  207,  207,  207,   63,  207,  207,   64,
4211591693c7b415e9869157c711fe11263c95d74eDavid Li      207,    0,    0,    0,    0,    0,  207,   65,   28,  144,
4221591693c7b415e9869157c711fe11263c95d74eDavid Li      185,  186,  187,  207,  207,  207,  207,  207,  207,  207,
4231591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  139,  207,  207,  207,  207,
4241591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  132,  189,  190,  191,  207,
4251591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  151,  207,  140,    0,    0,    6,    0,    0,    0,
4261591693c7b415e9869157c711fe11263c95d74eDavid Li       11,    3,   21,  207,  207,  207,  207,  207,  207,  207,
4271591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  184,  145,   66,  207,  207,  207,  207,  168,
4281591693c7b415e9869157c711fe11263c95d74eDavid Li
4291591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  176,  173,  206,   70,   71,   72,  207,  207,  207,
4301591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,    0,    0,    0,
4311591693c7b415e9869157c711fe11263c95d74eDavid Li        0,    0,    0,  207,  207,  207,  188,  207,  207,  207,
4321591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,   81,   82,   83,  207,  207,  207,  207,  207,
4331591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  207,  192,   87,
4341591693c7b415e9869157c711fe11263c95d74eDavid Li       88,   89,  207,    4,    0,    5,    0,    0,    0,    0,
4351591693c7b415e9869157c711fe11263c95d74eDavid Li        0,  207,  207,  207,  207,  207,  207,  207,  203,  207,
4361591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
4371591693c7b415e9869157c711fe11263c95d74eDavid Li       73,  207,  207,  207,  207,  207,  207,    0,    0,    0,
4381591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  204,  193,  207,  194,  207,  207,  207,   84,
4391591693c7b415e9869157c711fe11263c95d74eDavid Li
4401591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
4411591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  205,  207,  207,   90,    0,    0,  195,  196,  207,
4421591693c7b415e9869157c711fe11263c95d74eDavid Li      199,  207,  200,  207,  207,   69,  207,  207,  207,  163,
4431591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  164,  179,  207,  197,  198,  207,  207,    0,    0,
4441591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,   74,  207,   75,  207,  207,  207,
4451591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,    0,    0,    0,  207,  207,   85,   86,  207,
4461591693c7b415e9869157c711fe11263c95d74eDavid Li       76,  207,  207,   77,  207,   91,   92,    0,    0,    0,
4471591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,  207,  207,    0,    0,    0,  207,
4481591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  207,  207,  207,   78,    0,    0,    7,    0,    0,
4491591693c7b415e9869157c711fe11263c95d74eDavid Li      201,  202,  207,  207,  207,    0,    8,    0,    0,  207,
4501591693c7b415e9869157c711fe11263c95d74eDavid Li
4511591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  165,    0,    0,   79,   80,    0,    0,    9,    0,
4521591693c7b415e9869157c711fe11263c95d74eDavid Li       10,    0
4531591693c7b415e9869157c711fe11263c95d74eDavid Li    } ;
4541591693c7b415e9869157c711fe11263c95d74eDavid Li
4551591693c7b415e9869157c711fe11263c95d74eDavid Listatic yyconst flex_int32_t yy_ec[256] =
4561591693c7b415e9869157c711fe11263c95d74eDavid Li    {   0,
4571591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
4581591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
4591591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4601591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    2,    5,    1,    6,    1,    7,    8,    1,    9,
4611591693c7b415e9869157c711fe11263c95d74eDavid Li       10,   11,   12,    1,   13,   14,   15,   16,   17,   18,
4621591693c7b415e9869157c711fe11263c95d74eDavid Li       19,   20,   21,   21,   21,   22,   22,   23,    1,   24,
4631591693c7b415e9869157c711fe11263c95d74eDavid Li       25,   26,    1,    1,   27,   28,   29,   30,   31,   32,
4641591693c7b415e9869157c711fe11263c95d74eDavid Li       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
4651591693c7b415e9869157c711fe11263c95d74eDavid Li       33,   34,   35,   33,   36,   33,   33,   37,   33,   33,
4661591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,   38,   39,    1,   40,   41,   42,   43,
4671591693c7b415e9869157c711fe11263c95d74eDavid Li
4681591693c7b415e9869157c711fe11263c95d74eDavid Li       44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
4691591693c7b415e9869157c711fe11263c95d74eDavid Li       54,   55,   33,   56,   57,   58,   59,   60,   61,   62,
4701591693c7b415e9869157c711fe11263c95d74eDavid Li       63,   64,    1,   65,    1,    1,    1,    1,    1,    1,
4711591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4721591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4731591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4741591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4751591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4761591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4771591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4781591693c7b415e9869157c711fe11263c95d74eDavid Li
4791591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4801591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4811591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4821591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4831591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4841591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1
4851591693c7b415e9869157c711fe11263c95d74eDavid Li    } ;
4861591693c7b415e9869157c711fe11263c95d74eDavid Li
4871591693c7b415e9869157c711fe11263c95d74eDavid Listatic yyconst flex_int32_t yy_meta[66] =
4881591693c7b415e9869157c711fe11263c95d74eDavid Li    {   0,
4891591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    2,    3,    1,    1,    1,    1,    1,    1,    1,
4901591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    4,    4,    4,    4,    4,
4911591693c7b415e9869157c711fe11263c95d74eDavid Li        4,    5,    1,    1,    1,    1,    6,    6,    6,    6,
4921591693c7b415e9869157c711fe11263c95d74eDavid Li        5,    5,    7,    7,    7,    7,    8,    1,    7,    6,
4931591693c7b415e9869157c711fe11263c95d74eDavid Li        6,    6,    6,    5,    5,    7,    7,    7,    7,    7,
4941591693c7b415e9869157c711fe11263c95d74eDavid Li        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
4951591693c7b415e9869157c711fe11263c95d74eDavid Li        7,    8,    7,    7,    1
4961591693c7b415e9869157c711fe11263c95d74eDavid Li    } ;
4971591693c7b415e9869157c711fe11263c95d74eDavid Li
4981591693c7b415e9869157c711fe11263c95d74eDavid Listatic yyconst flex_int16_t yy_base[824] =
4991591693c7b415e9869157c711fe11263c95d74eDavid Li    {   0,
5001591693c7b415e9869157c711fe11263c95d74eDavid Li        0,   64,   70,    0, 1185, 1184, 1186, 1189,   65, 1189,
5011591693c7b415e9869157c711fe11263c95d74eDavid Li     1160, 1159,  128, 1158,  125,  126,  124, 1157,  140,  189,
5021591693c7b415e9869157c711fe11263c95d74eDavid Li      123, 1156,  138,    0,  127,  124,  113,  135,  144,  161,
5031591693c7b415e9869157c711fe11263c95d74eDavid Li      176, 1126,  130,  187,  140,  143,  161, 1120,  182,  174,
5041591693c7b415e9869157c711fe11263c95d74eDavid Li      202,  199,  211,  212, 1131,  130,  263,  255, 1189,  189,
5051591693c7b415e9869157c711fe11263c95d74eDavid Li     1189, 1162,  256, 1189,    0, 1189, 1189,  215, 1189, 1189,
5061591693c7b415e9869157c711fe11263c95d74eDavid Li     1189, 1189, 1189, 1189, 1189, 1189, 1189,  248, 1189,  250,
5071591693c7b415e9869157c711fe11263c95d74eDavid Li      112,  302,  319, 1189, 1189,    0,    0, 1189, 1151, 1189,
5081591693c7b415e9869157c711fe11263c95d74eDavid Li     1189, 1189, 1150,    0, 1189, 1189, 1116, 1121, 1114, 1117,
5091591693c7b415e9869157c711fe11263c95d74eDavid Li     1126, 1125, 1111, 1114, 1126,  144, 1120, 1107, 1104, 1118,
5101591693c7b415e9869157c711fe11263c95d74eDavid Li
5111591693c7b415e9869157c711fe11263c95d74eDavid Li     1104, 1101, 1101, 1107,  175,  191, 1101, 1112, 1097, 1103,
5121591693c7b415e9869157c711fe11263c95d74eDavid Li     1107, 1108,    0, 1099, 1110,  247, 1109, 1104, 1084,  230,
5131591693c7b415e9869157c711fe11263c95d74eDavid Li     1088, 1102, 1092,  241, 1085,  228, 1098, 1100, 1082, 1078,
5141591693c7b415e9869157c711fe11263c95d74eDavid Li     1086, 1083, 1072, 1081,  173, 1079, 1085, 1080, 1083, 1071,
5151591693c7b415e9869157c711fe11263c95d74eDavid Li     1074,  233,  240,  260, 1084, 1071, 1084,  239, 1077, 1189,
5161591693c7b415e9869157c711fe11263c95d74eDavid Li     1189,  307,  301,  323, 1189, 1062, 1075, 1066, 1077,  249,
5171591693c7b415e9869157c711fe11263c95d74eDavid Li        0,  368,    0,  379, 1189,  298,  390, 1189,  397,  404,
5181591693c7b415e9869157c711fe11263c95d74eDavid Li      291, 1189, 1189, 1072,    0, 1063, 1067, 1077, 1074,  270,
5191591693c7b415e9869157c711fe11263c95d74eDavid Li     1057, 1057, 1061,  291, 1072, 1069, 1069, 1067, 1064, 1055,
5201591693c7b415e9869157c711fe11263c95d74eDavid Li     1062, 1048, 1046, 1059, 1044, 1061,    0, 1058, 1045, 1053,
5211591693c7b415e9869157c711fe11263c95d74eDavid Li
5221591693c7b415e9869157c711fe11263c95d74eDavid Li     1050, 1054, 1055, 1048, 1045, 1033, 1032, 1046, 1049, 1036,
5231591693c7b415e9869157c711fe11263c95d74eDavid Li     1045, 1032, 1039, 1029,  335, 1035, 1038, 1028, 1036, 1024,
5241591693c7b415e9869157c711fe11263c95d74eDavid Li     1028, 1019, 1034, 1024, 1015, 1034, 1017, 1015, 1026, 1015,
5251591693c7b415e9869157c711fe11263c95d74eDavid Li     1010, 1008, 1022, 1007, 1009, 1006, 1018, 1017, 1020, 1001,
5261591693c7b415e9869157c711fe11263c95d74eDavid Li      306, 1010, 1005, 1003, 1013,  991,  339, 1010, 1012, 1000,
5271591693c7b415e9869157c711fe11263c95d74eDavid Li      992,  996, 1008,  991,    0,  411,  421,  438, 1189,  451,
5281591693c7b415e9869157c711fe11263c95d74eDavid Li      458, 1189, 1189,  986,  997,    0,  994,  344,    0,    0,
5291591693c7b415e9869157c711fe11263c95d74eDavid Li      987,  985,  987,  982,  991,  979,  997,  985,  350,    0,
5301591693c7b415e9869157c711fe11263c95d74eDavid Li        0,  979,  990,  989,  989,    0,  973,  353,    0,    0,
5311591693c7b415e9869157c711fe11263c95d74eDavid Li      975,  357,  983,  984,  974,  968,  967,  968,  967,  967,
5321591693c7b415e9869157c711fe11263c95d74eDavid Li
5331591693c7b415e9869157c711fe11263c95d74eDavid Li      361,  962,    0,    0,  958,  957,  956,  958,  959,  964,
5341591693c7b415e9869157c711fe11263c95d74eDavid Li      958,  954,  968,  963,  962,  961,  952,  955,  955,  947,
5351591693c7b415e9869157c711fe11263c95d74eDavid Li      950,  945,  954,  959,  944,  957,  947,    0,    0,  954,
5361591693c7b415e9869157c711fe11263c95d74eDavid Li      950,    0,  941,  941,  947,  937,  945,  426,  942,    0,
5371591693c7b415e9869157c711fe11263c95d74eDavid Li        0,    0,    0,  931,  944,  943,  942,  939,  927,  465,
5381591693c7b415e9869157c711fe11263c95d74eDavid Li      475,  939,  941,    0,    0,    0,    0,  927,    0,  927,
5391591693c7b415e9869157c711fe11263c95d74eDavid Li        0,  926,  927,  921,  932,    0,    0,    0,  922,    0,
5401591693c7b415e9869157c711fe11263c95d74eDavid Li      918,    0,    0,    0,    0,    0,    0,    0,    0,    0,
5411591693c7b415e9869157c711fe11263c95d74eDavid Li      929,  481,  928,    0,    0,  926,  922,  918,    0,    0,
5421591693c7b415e9869157c711fe11263c95d74eDavid Li        0,  910,  443,  486,  493,  915,  911,  917,  907,  905,
5431591693c7b415e9869157c711fe11263c95d74eDavid Li
5441591693c7b415e9869157c711fe11263c95d74eDavid Li      919,  903,  903,  917,  905,  917,  912,    0,  910,  907,
5451591693c7b415e9869157c711fe11263c95d74eDavid Li      911,  894,  896,  903,  909,  904,  903,  890,    0,  892,
5461591693c7b415e9869157c711fe11263c95d74eDavid Li      893,    0,    0,    0,    0,  890,  894,    0,  888,  938,
5471591693c7b415e9869157c711fe11263c95d74eDavid Li      887,  890,    0,  878,  888,    0,  876,  876,  890,    0,
5481591693c7b415e9869157c711fe11263c95d74eDavid Li      892,    0,  497,  901,  900,  899,  869,  868,    0,  886,
5491591693c7b415e9869157c711fe11263c95d74eDavid Li      885,  880,    0,    0,    0,    0,    0,    0,    0,    0,
5501591693c7b415e9869157c711fe11263c95d74eDavid Li        0,    0,  868,  882,  868,  865,    0,    0,  871,  870,
5511591693c7b415e9869157c711fe11263c95d74eDavid Li        0,    0,  868,  860,    0,    0,    0,    0,    0,    0,
5521591693c7b415e9869157c711fe11263c95d74eDavid Li      857,  869,  500,  861,  868,  867,  864,  858,  851,  519,
5531591693c7b415e9869157c711fe11263c95d74eDavid Li      867,  852,  847,  861,  859,    0,    0,  851,  871,  870,
5541591693c7b415e9869157c711fe11263c95d74eDavid Li
5551591693c7b415e9869157c711fe11263c95d74eDavid Li      869,  839,  838,  495,  496,    0,  851,  854,  852,  840,
5561591693c7b415e9869157c711fe11263c95d74eDavid Li      836,    0,  849,  846,  845,  834,  833,  832,  515,  841,
5571591693c7b415e9869157c711fe11263c95d74eDavid Li        0,  854,  853,  852,  822,  821,    0,  836,  822,    0,
5581591693c7b415e9869157c711fe11263c95d74eDavid Li      833,  828,  543,  545,  873,  821,  829,    0,    0,    0,
5591591693c7b415e9869157c711fe11263c95d74eDavid Li      845,  844,    0,  825,  828,  812,  820,  810,  818,  819,
5601591693c7b415e9869157c711fe11263c95d74eDavid Li      819,  818,  803,  539,  816,    0,  817,  805,  804,  800,
5611591693c7b415e9869157c711fe11263c95d74eDavid Li      825,  824,  823,  793,  792,    0,  823,  822,    0,  803,
5621591693c7b415e9869157c711fe11263c95d74eDavid Li      806,    0,  552,    0,  792,  557, 1189,  580,    0,  590,
5631591693c7b415e9869157c711fe11263c95d74eDavid Li      499, 1189,    0,  789,  788,  798,  798,  785,  800,  783,
5641591693c7b415e9869157c711fe11263c95d74eDavid Li      798,  793,    0,    0,    0,  806,  805,  804,  774,    0,
5651591693c7b415e9869157c711fe11263c95d74eDavid Li
5661591693c7b415e9869157c711fe11263c95d74eDavid Li      774,    0,    0,    0,  559,  568,  797,  785,  788,  772,
5671591693c7b415e9869157c711fe11263c95d74eDavid Li      771,  781,  781,  794,  793,  792,  762,  767,  552,  613,
5681591693c7b415e9869157c711fe11263c95d74eDavid Li      363,  775,  763,  761,  760,  771,    0,  774,  770,  772,
5691591693c7b415e9869157c711fe11263c95d74eDavid Li      768,  754,  782,  781,    0,  766,  758,  749,  757,  747,
5701591693c7b415e9869157c711fe11263c95d74eDavid Li      758,  754,  756,  754,  754,  741,  740,  751,    0,  767,
5711591693c7b415e9869157c711fe11263c95d74eDavid Li      766,    0,  751, 1189,  391, 1189,  620,    0,  640,  750,
5721591693c7b415e9869157c711fe11263c95d74eDavid Li      732,  749,  748,  731,  723,  731,  721,  729,    0,  726,
5731591693c7b415e9869157c711fe11263c95d74eDavid Li      725,  736,  719,  722,  737,  720,  733,  734,  731,  728,
5741591693c7b415e9869157c711fe11263c95d74eDavid Li      736,  730,  729,  712,  711,  710,  721,  402,  705,  715,
5751591693c7b415e9869157c711fe11263c95d74eDavid Li      699,  698,    0,  725,  698,  723,  696,  700,  699,    0,
5761591693c7b415e9869157c711fe11263c95d74eDavid Li
5771591693c7b415e9869157c711fe11263c95d74eDavid Li      710,  713,  709,  711,  688,  702,  686,  680,  688,  671,
5781591693c7b415e9869157c711fe11263c95d74eDavid Li      662,    0,  640,  639,    0,  648,  641,    0,    0,  645,
5791591693c7b415e9869157c711fe11263c95d74eDavid Li        0,  644,    0,  650,  649,    0,  625,  633,  623,  650,
5801591693c7b415e9869157c711fe11263c95d74eDavid Li      630,    0,    0,  643,    0,    0,  642,  641,  582,  632,
5811591693c7b415e9869157c711fe11263c95d74eDavid Li      639,  638,  614,  613,  635,  608,  633,  607,  590,  607,
5821591693c7b415e9869157c711fe11263c95d74eDavid Li      586,  585,  611,  380,  526,  545,  544,    0,    0,  538,
5831591693c7b415e9869157c711fe11263c95d74eDavid Li        0,  504,  510,    0,  495,    0,    0,  550,  572,  483,
5841591693c7b415e9869157c711fe11263c95d74eDavid Li      470,  454,  462,  449,  445,  404,  419,  616,  619,  391,
5851591693c7b415e9869157c711fe11263c95d74eDavid Li      387,  404,  392,  290,    0,  617,  642, 1189,  644,  570,
5861591693c7b415e9869157c711fe11263c95d74eDavid Li        0,    0,  263,  258,  139,  645, 1189,  643,  618,  107,
5871591693c7b415e9869157c711fe11263c95d74eDavid Li
5881591693c7b415e9869157c711fe11263c95d74eDavid Li       77,    0,   23,  662,    0,    0,  663,  664, 1189,  665,
5891591693c7b415e9869157c711fe11263c95d74eDavid Li     1189, 1189,  697,  702,  707,  712,  714,  716,  722,  729,
5901591693c7b415e9869157c711fe11263c95d74eDavid Li      734,  739,  744
5911591693c7b415e9869157c711fe11263c95d74eDavid Li    } ;
5921591693c7b415e9869157c711fe11263c95d74eDavid Li
5931591693c7b415e9869157c711fe11263c95d74eDavid Listatic yyconst flex_int16_t yy_def[824] =
5941591693c7b415e9869157c711fe11263c95d74eDavid Li    {   0,
5951591693c7b415e9869157c711fe11263c95d74eDavid Li      812,    1,  812,    3,  813,  813,  812,  812,  812,  812,
5961591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
5971591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  814,  812,  814,  814,  814,  814,  814,
5981591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
5991591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  812,  812,  812,  812,  812,
6001591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  812,  815,  812,  812,  812,  812,  812,
6011591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  812,  812,  812,  812,  816,  812,  817,
6021591693c7b415e9869157c711fe11263c95d74eDavid Li       19,  812,  812,  812,  812,  818,   20,  812,  812,  812,
6031591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  814,  812,  812,  814,  814,  814,  814,
6041591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6051591693c7b415e9869157c711fe11263c95d74eDavid Li
6061591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6071591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6081591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6091591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6101591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  812,
6111591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
6121591693c7b415e9869157c711fe11263c95d74eDavid Li      819,  812,  815,  812,  812,  817,  812,  812,  812,  812,
6131591693c7b415e9869157c711fe11263c95d74eDavid Li      818,  812,  812,  814,  814,  814,  814,  814,  814,  814,
6141591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6151591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6161591693c7b415e9869157c711fe11263c95d74eDavid Li
6171591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6181591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6191591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6201591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6211591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6221591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  812,  819,  812,  812,  812,  812,  812,
6231591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  814,  814,  814,  814,  814,  814,  814,
6241591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6251591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6261591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6271591693c7b415e9869157c711fe11263c95d74eDavid Li
6281591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6291591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6301591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6311591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6321591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  812,  812,  812,  812,  812,
6331591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6341591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6351591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6361591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6371591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6381591693c7b415e9869157c711fe11263c95d74eDavid Li
6391591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6401591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6411591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  812,  812,
6421591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  814,  814,  814,  814,  814,  814,  814,  814,
6431591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6441591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6451591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6461591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6471591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  812,  812,
6481591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  814,  814,  814,  814,  814,  814,  814,  814,
6491591693c7b415e9869157c711fe11263c95d74eDavid Li
6501591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6511591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6521591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6531591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  812,  820,  812,  812,  812,  814,  814,  814,  814,
6541591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6551591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6561591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6571591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  812,  812,  812,  812,  821,  812,
6581591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  814,  814,  814,  814,  814,  814,  814,  814,
6591591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6601591693c7b415e9869157c711fe11263c95d74eDavid Li
6611591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6621591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  812,  822,  812,
6631591693c7b415e9869157c711fe11263c95d74eDavid Li      821,  812,  812,  814,  814,  814,  814,  814,  814,  814,
6641591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6651591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6661591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  812,  812,  812,  812,  823,  812,  812,
6671591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6681591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6691591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  823,  812,  812,
6701591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6711591693c7b415e9869157c711fe11263c95d74eDavid Li
6721591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6731591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  812,  812,  814,  814,  814,
6741591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6751591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  812,  812,
6761591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
6771591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  812,  812,  812,  814,  814,  814,  814,  814,
6781591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  814,  812,  812,  812,
6791591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  814,  812,  812,  812,  814,
6801591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  812,  812,  812,  812,  812,
6811591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  814,  814,  814,  812,  812,  812,  812,  814,
6821591693c7b415e9869157c711fe11263c95d74eDavid Li
6831591693c7b415e9869157c711fe11263c95d74eDavid Li      814,  814,  812,  812,  814,  814,  812,  812,  812,  812,
6841591693c7b415e9869157c711fe11263c95d74eDavid Li      812,    0,  812,  812,  812,  812,  812,  812,  812,  812,
6851591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812
6861591693c7b415e9869157c711fe11263c95d74eDavid Li    } ;
6871591693c7b415e9869157c711fe11263c95d74eDavid Li
6881591693c7b415e9869157c711fe11263c95d74eDavid Listatic yyconst flex_int16_t yy_nxt[1255] =
6891591693c7b415e9869157c711fe11263c95d74eDavid Li    {   0,
6901591693c7b415e9869157c711fe11263c95d74eDavid Li        8,    9,   10,    9,   11,    8,   12,   13,    8,    8,
6911591693c7b415e9869157c711fe11263c95d74eDavid Li       14,   15,   16,   17,   18,   19,   20,   20,   20,   20,
6921591693c7b415e9869157c711fe11263c95d74eDavid Li       20,   20,    8,   21,   22,   23,   24,   24,   24,   24,
6931591693c7b415e9869157c711fe11263c95d74eDavid Li       24,   24,   24,   24,   24,   24,   24,   25,   24,   26,
6941591693c7b415e9869157c711fe11263c95d74eDavid Li       27,   28,   29,   30,   31,   32,   33,   34,   24,   24,
6951591693c7b415e9869157c711fe11263c95d74eDavid Li       35,   36,   37,   38,   39,   40,   41,   42,   43,   44,
6961591693c7b415e9869157c711fe11263c95d74eDavid Li       45,   24,   24,   24,   46,   47,   58,  807,   58,   48,
6971591693c7b415e9869157c711fe11263c95d74eDavid Li       49,   50,   51,   50,   49,   49,   49,   49,   49,   49,
6981591693c7b415e9869157c711fe11263c95d74eDavid Li       49,   49,   49,   49,   52,   49,   53,   53,   53,   53,
6991591693c7b415e9869157c711fe11263c95d74eDavid Li       53,   53,   54,   49,   49,   49,   55,   55,   55,   55,
7001591693c7b415e9869157c711fe11263c95d74eDavid Li
7011591693c7b415e9869157c711fe11263c95d74eDavid Li       55,   55,   55,   55,   55,   55,   55,   49,   55,   55,
7021591693c7b415e9869157c711fe11263c95d74eDavid Li       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
7031591693c7b415e9869157c711fe11263c95d74eDavid Li       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
7041591693c7b415e9869157c711fe11263c95d74eDavid Li       55,   55,   55,   55,   49,   61,   64,  806,   66,   68,
7051591693c7b415e9869157c711fe11263c95d74eDavid Li       68,   68,   68,   68,   68,   68,   79,   80,  812,   65,
7061591693c7b415e9869157c711fe11263c95d74eDavid Li       67,   85,   62,   70,  150,   71,   71,   71,   71,   71,
7071591693c7b415e9869157c711fe11263c95d74eDavid Li       71,   72,   82,   83,   86,   87,   90,  805,   91,  110,
7081591693c7b415e9869157c711fe11263c95d74eDavid Li       73,   74,   92,  812,   93,   75,   76,  111,   94,  119,
7091591693c7b415e9869157c711fe11263c95d74eDavid Li       88,   89,  121,   73,   74,   95,  122,   97,   96,  112,
7101591693c7b415e9869157c711fe11263c95d74eDavid Li      160,   98,  160,  120,  151,  183,  184,   99,   75,  802,
7111591693c7b415e9869157c711fe11263c95d74eDavid Li
7121591693c7b415e9869157c711fe11263c95d74eDavid Li      123,   76,   70,  100,   77,   77,   77,   77,   77,   77,
7131591693c7b415e9869157c711fe11263c95d74eDavid Li       77,  101,  231,  102,  124,  104,   58,  129,   58,   73,
7141591693c7b415e9869157c711fe11263c95d74eDavid Li       74,  126,  103,  105,   78,  193,  106,  130,  232,  107,
7151591693c7b415e9869157c711fe11263c95d74eDavid Li      195,  113,   73,   74,  114,  108,  194,  127,  115,  116,
7161591693c7b415e9869157c711fe11263c95d74eDavid Li      128,  131,  138,  117,  196,  139,  118,   78,  132,  133,
7171591693c7b415e9869157c711fe11263c95d74eDavid Li      160,  146,  160,  134,  140,  147,  154,  155,  142,  135,
7181591693c7b415e9869157c711fe11263c95d74eDavid Li      136,  141,  137,  143,  152,  148,   58,  144,  153,  221,
7191591693c7b415e9869157c711fe11263c95d74eDavid Li      145,  162,  162,  162,  162,  162,  162,  162,  164,  165,
7201591693c7b415e9869157c711fe11263c95d74eDavid Li      167,  168,  213,  222,  239,  240,  248,  241,  218,  249,
7211591693c7b415e9869157c711fe11263c95d74eDavid Li      214,  164,  165,  167,  168,  219,  242,  205,  156,  243,
7221591693c7b415e9869157c711fe11263c95d74eDavid Li
7231591693c7b415e9869157c711fe11263c95d74eDavid Li      206,  207,  154,  155,  208,  157,  209,  244,  152,  158,
7241591693c7b415e9869157c711fe11263c95d74eDavid Li       58,  801,  153,  269,  159,   70,  800,   72,   72,   72,
7251591693c7b415e9869157c711fe11263c95d74eDavid Li       72,   72,   72,   72,  154,  155,  263,  270,  258,  259,
7261591693c7b415e9869157c711fe11263c95d74eDavid Li      169,  169,   73,   74,  170,  170,  170,  170,  170,  170,
7271591693c7b415e9869157c711fe11263c95d74eDavid Li      170,  258,  259,  795,  156,   73,   74,  274,  275,  263,
7281591693c7b415e9869157c711fe11263c95d74eDavid Li      333,  157,  305,  306,  307,  158,  340,  341,  342,  334,
7291591693c7b415e9869157c711fe11263c95d74eDavid Li      159,  355,  356,  357,  576,  577,  156,  366,  367,  368,
7301591693c7b415e9869157c711fe11263c95d74eDavid Li      374,  375,  376,  157,  378,  379,  380,  158,  389,  390,
7311591693c7b415e9869157c711fe11263c95d74eDavid Li      391,  768,  159,  162,  162,  162,  162,  162,  162,  162,
7321591693c7b415e9869157c711fe11263c95d74eDavid Li      256,  256,  655,  656,  257,  257,  257,  257,  257,  257,
7331591693c7b415e9869157c711fe11263c95d74eDavid Li
7341591693c7b415e9869157c711fe11263c95d74eDavid Li      257,  260,  260,  655,  656,  261,  261,  261,  261,  261,
7351591693c7b415e9869157c711fe11263c95d74eDavid Li      261,  261,  170,  170,  170,  170,  170,  170,  170,  170,
7361591693c7b415e9869157c711fe11263c95d74eDavid Li      170,  170,  170,  170,  170,  170,  257,  257,  257,  257,
7371591693c7b415e9869157c711fe11263c95d74eDavid Li      257,  257,  257,  769,  794,  262,  257,  257,  257,  257,
7381591693c7b415e9869157c711fe11263c95d74eDavid Li      257,  257,  257,  423,  424,  425,  793,  792,  262,  350,
7391591693c7b415e9869157c711fe11263c95d74eDavid Li      350,  791,  165,  351,  351,  351,  351,  351,  351,  351,
7401591693c7b415e9869157c711fe11263c95d74eDavid Li      454,  455,  456,  786,  785,  165,  261,  261,  261,  261,
7411591693c7b415e9869157c711fe11263c95d74eDavid Li      261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
7421591693c7b415e9869157c711fe11263c95d74eDavid Li      351,  351,  351,  351,  351,  351,  351,  784,  783,  168,
7431591693c7b415e9869157c711fe11263c95d74eDavid Li      351,  351,  351,  351,  351,  351,  351,  444,  445,  446,
7441591693c7b415e9869157c711fe11263c95d74eDavid Li
7451591693c7b415e9869157c711fe11263c95d74eDavid Li      581,  782,  168,  457,  458,  459,  259,  781,  447,  448,
7461591693c7b415e9869157c711fe11263c95d74eDavid Li      460,  461,  462,  499,  500,  501,  522,  523,  524,  259,
7471591693c7b415e9869157c711fe11263c95d74eDavid Li      490,  546,  548,  780,  502,  503,  779,  525,  526,  547,
7481591693c7b415e9869157c711fe11263c95d74eDavid Li      549,  561,  562,  563,  533,  534,  534,  534,  534,  534,
7491591693c7b415e9869157c711fe11263c95d74eDavid Li      534,  622,  564,  565,  576,  577,  576,  577,  776,  775,
7501591693c7b415e9869157c711fe11263c95d74eDavid Li      774,  768,  623,  655,  656,  596,  597,  598,  576,  577,
7511591693c7b415e9869157c711fe11263c95d74eDavid Li      580,  580,  580,  580,  580,  580,  580,  599,  614,  615,
7521591693c7b415e9869157c711fe11263c95d74eDavid Li      616,  798,  619,  620,  620,  620,  620,  620,  620,  579,
7531591693c7b415e9869157c711fe11263c95d74eDavid Li      617,  576,  577,  753,  773,  638,  772,  771,  658,  770,
7541591693c7b415e9869157c711fe11263c95d74eDavid Li      754,  576,  577,  639,  640,  578,  578,  578,  578,  578,
7551591693c7b415e9869157c711fe11263c95d74eDavid Li
7561591693c7b415e9869157c711fe11263c95d74eDavid Li      578,  641,  642,  769,  579,  580,  580,  580,  580,  580,
7571591693c7b415e9869157c711fe11263c95d74eDavid Li      580,  580,  753,  658,  655,  656,  777,  787,  796,  754,
7581591693c7b415e9869157c711fe11263c95d74eDavid Li      789,  655,  656,  799,  778,  788,  797,  790,  659,  659,
7591591693c7b415e9869157c711fe11263c95d74eDavid Li      659,  659,  659,  659,  659,  657,  657,  657,  657,  657,
7601591693c7b415e9869157c711fe11263c95d74eDavid Li      657,  655,  656,  787,  798,  789,  796,  767,  766,  765,
7611591693c7b415e9869157c711fe11263c95d74eDavid Li      764,  788,  790,  763,  797,  659,  659,  659,  659,  659,
7621591693c7b415e9869157c711fe11263c95d74eDavid Li      659,  659,  803,  808,  810,  808,  810,  762,  761,  760,
7631591693c7b415e9869157c711fe11263c95d74eDavid Li      804,  809,  811,  809,  811,  759,  758,  757,  756,  755,
7641591693c7b415e9869157c711fe11263c95d74eDavid Li      752,  751,  750,  749,  748,  747,  746,  745,  744,  743,
7651591693c7b415e9869157c711fe11263c95d74eDavid Li      742,  741,  740,  739,  738,  737,  799,   56,   56,   56,
7661591693c7b415e9869157c711fe11263c95d74eDavid Li
7671591693c7b415e9869157c711fe11263c95d74eDavid Li       56,   56,   56,   56,   56,   84,   84,   84,   84,   84,
7681591693c7b415e9869157c711fe11263c95d74eDavid Li      163,  163,  163,  163,  163,   68,   68,  166,  166,  171,
7691591693c7b415e9869157c711fe11263c95d74eDavid Li      171,  171,  255,  255,  736,  255,  255,  255,  255,  255,
7701591693c7b415e9869157c711fe11263c95d74eDavid Li      578,  578,  578,  735,  734,  733,  578,  621,  621,  621,
7711591693c7b415e9869157c711fe11263c95d74eDavid Li      657,  657,  657,  732,  731,  730,  657,  688,  688,  688,
7721591693c7b415e9869157c711fe11263c95d74eDavid Li      729,  728,  727,  726,  725,  724,  723,  722,  721,  720,
7731591693c7b415e9869157c711fe11263c95d74eDavid Li      719,  718,  717,  716,  715,  714,  713,  712,  711,  710,
7741591693c7b415e9869157c711fe11263c95d74eDavid Li      709,  708,  707,  706,  705,  704,  703,  702,  701,  700,
7751591693c7b415e9869157c711fe11263c95d74eDavid Li      699,  698,  697,  696,  695,  694,  693,  692,  691,  690,
7761591693c7b415e9869157c711fe11263c95d74eDavid Li      689,  687,  686,  685,  684,  683,  682,  681,  680,  679,
7771591693c7b415e9869157c711fe11263c95d74eDavid Li
7781591693c7b415e9869157c711fe11263c95d74eDavid Li      678,  677,  676,  675,  674,  673,  672,  671,  670,  669,
7791591693c7b415e9869157c711fe11263c95d74eDavid Li      668,  667,  666,  665,  664,  663,  662,  661,  660,  654,
7801591693c7b415e9869157c711fe11263c95d74eDavid Li      653,  652,  651,  650,  649,  648,  647,  646,  645,  644,
7811591693c7b415e9869157c711fe11263c95d74eDavid Li      643,  637,  636,  635,  634,  633,  632,  631,  630,  629,
7821591693c7b415e9869157c711fe11263c95d74eDavid Li      628,  627,  626,  625,  624,  618,  613,  612,  611,  610,
7831591693c7b415e9869157c711fe11263c95d74eDavid Li      609,  608,  607,  606,  605,  604,  603,  602,  601,  600,
7841591693c7b415e9869157c711fe11263c95d74eDavid Li      595,  594,  593,  592,  591,  590,  589,  588,  587,  586,
7851591693c7b415e9869157c711fe11263c95d74eDavid Li      585,  584,  583,  582,  581,  575,  574,  573,  572,  571,
7861591693c7b415e9869157c711fe11263c95d74eDavid Li      570,  569,  568,  567,  566,  560,  559,  558,  557,  556,
7871591693c7b415e9869157c711fe11263c95d74eDavid Li      555,  554,  553,  552,  551,  550,  545,  544,  543,  542,
7881591693c7b415e9869157c711fe11263c95d74eDavid Li
7891591693c7b415e9869157c711fe11263c95d74eDavid Li      541,  540,  539,  538,  537,  536,  535,  532,  531,  530,
7901591693c7b415e9869157c711fe11263c95d74eDavid Li      529,  528,  527,  521,  520,  519,  518,  517,  516,  515,
7911591693c7b415e9869157c711fe11263c95d74eDavid Li      514,  513,  512,  511,  510,  509,  508,  507,  506,  505,
7921591693c7b415e9869157c711fe11263c95d74eDavid Li      504,  498,  497,  496,  495,  494,  493,  492,  491,  490,
7931591693c7b415e9869157c711fe11263c95d74eDavid Li      489,  488,  487,  486,  485,  484,  483,  482,  481,  480,
7941591693c7b415e9869157c711fe11263c95d74eDavid Li      479,  478,  477,  476,  475,  474,  473,  472,  471,  470,
7951591693c7b415e9869157c711fe11263c95d74eDavid Li      469,  468,  467,  466,  465,  464,  463,  453,  452,  451,
7961591693c7b415e9869157c711fe11263c95d74eDavid Li      450,  449,  443,  442,  441,  440,  439,  438,  437,  436,
7971591693c7b415e9869157c711fe11263c95d74eDavid Li      435,  434,  433,  432,  431,  430,  429,  428,  427,  426,
7981591693c7b415e9869157c711fe11263c95d74eDavid Li      422,  421,  420,  419,  418,  417,  416,  415,  414,  413,
7991591693c7b415e9869157c711fe11263c95d74eDavid Li
8001591693c7b415e9869157c711fe11263c95d74eDavid Li      412,  411,  410,  409,  408,  407,  406,  405,  404,  403,
8011591693c7b415e9869157c711fe11263c95d74eDavid Li      402,  401,  400,  399,  398,  397,  396,  395,  394,  393,
8021591693c7b415e9869157c711fe11263c95d74eDavid Li      392,  388,  387,  386,  385,  384,  383,  382,  381,  377,
8031591693c7b415e9869157c711fe11263c95d74eDavid Li      373,  372,  371,  370,  369,  365,  364,  363,  362,  361,
8041591693c7b415e9869157c711fe11263c95d74eDavid Li      360,  359,  358,  354,  353,  352,  349,  348,  347,  346,
8051591693c7b415e9869157c711fe11263c95d74eDavid Li      345,  344,  343,  339,  338,  337,  336,  335,  332,  331,
8061591693c7b415e9869157c711fe11263c95d74eDavid Li      330,  329,  328,  327,  326,  325,  324,  323,  322,  321,
8071591693c7b415e9869157c711fe11263c95d74eDavid Li      320,  319,  318,  317,  316,  315,  314,  313,  312,  311,
8081591693c7b415e9869157c711fe11263c95d74eDavid Li      310,  309,  308,  304,  303,  302,  301,  300,  299,  298,
8091591693c7b415e9869157c711fe11263c95d74eDavid Li      297,  296,  295,  294,  293,  292,  291,  290,  289,  288,
8101591693c7b415e9869157c711fe11263c95d74eDavid Li
8111591693c7b415e9869157c711fe11263c95d74eDavid Li      287,  286,  285,  284,  283,  282,  281,  280,  279,  278,
8121591693c7b415e9869157c711fe11263c95d74eDavid Li      277,  276,  273,  272,  271,  268,  267,  266,  265,  264,
8131591693c7b415e9869157c711fe11263c95d74eDavid Li      254,  253,  252,  251,  250,  247,  246,  245,  238,  237,
8141591693c7b415e9869157c711fe11263c95d74eDavid Li      236,  235,  234,  233,  230,  229,  228,  227,  226,  225,
8151591693c7b415e9869157c711fe11263c95d74eDavid Li      224,  223,  220,  217,  216,  215,  212,  211,  210,  204,
8161591693c7b415e9869157c711fe11263c95d74eDavid Li      203,  202,  201,  200,  199,  198,  197,  192,  191,  190,
8171591693c7b415e9869157c711fe11263c95d74eDavid Li      189,  188,  187,  186,  185,  182,  181,  180,  179,  178,
8181591693c7b415e9869157c711fe11263c95d74eDavid Li      177,  176,  175,  174,  173,  172,  161,  149,  125,  109,
8191591693c7b415e9869157c711fe11263c95d74eDavid Li       81,   69,   63,   60,   59,  812,   57,   57,    7,  812,
8201591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
8211591693c7b415e9869157c711fe11263c95d74eDavid Li
8221591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
8231591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
8241591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
8251591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
8261591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
8271591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  812
8281591693c7b415e9869157c711fe11263c95d74eDavid Li    } ;
8291591693c7b415e9869157c711fe11263c95d74eDavid Li
8301591693c7b415e9869157c711fe11263c95d74eDavid Listatic yyconst flex_int16_t yy_chk[1255] =
8311591693c7b415e9869157c711fe11263c95d74eDavid Li    {   0,
8321591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
8331591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
8341591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
8351591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
8361591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
8371591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
8381591693c7b415e9869157c711fe11263c95d74eDavid Li        1,    1,    1,    1,    1,    2,    9,  803,    9,    2,
8391591693c7b415e9869157c711fe11263c95d74eDavid Li        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
8401591693c7b415e9869157c711fe11263c95d74eDavid Li        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
8411591693c7b415e9869157c711fe11263c95d74eDavid Li        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
8421591693c7b415e9869157c711fe11263c95d74eDavid Li
8431591693c7b415e9869157c711fe11263c95d74eDavid Li        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
8441591693c7b415e9869157c711fe11263c95d74eDavid Li        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
8451591693c7b415e9869157c711fe11263c95d74eDavid Li        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
8461591693c7b415e9869157c711fe11263c95d74eDavid Li        3,    3,    3,    3,    3,   13,   15,  801,   16,   17,
8471591693c7b415e9869157c711fe11263c95d74eDavid Li       17,   17,   17,   17,   17,   17,   21,   21,   71,   15,
8481591693c7b415e9869157c711fe11263c95d74eDavid Li       16,   25,   13,   19,   46,   19,   19,   19,   19,   19,
8491591693c7b415e9869157c711fe11263c95d74eDavid Li       19,   19,   23,   23,   25,   26,   27,  800,   27,   33,
8501591693c7b415e9869157c711fe11263c95d74eDavid Li       19,   19,   27,   71,   28,   19,   19,   33,   28,   35,
8511591693c7b415e9869157c711fe11263c95d74eDavid Li       26,   26,   36,   19,   19,   28,   36,   29,   28,   33,
8521591693c7b415e9869157c711fe11263c95d74eDavid Li       50,   29,   50,   35,   46,   96,   96,   29,   19,  795,
8531591693c7b415e9869157c711fe11263c95d74eDavid Li
8541591693c7b415e9869157c711fe11263c95d74eDavid Li       37,   19,   20,   29,   20,   20,   20,   20,   20,   20,
8551591693c7b415e9869157c711fe11263c95d74eDavid Li       20,   30,  135,   30,   37,   31,   58,   40,   58,   20,
8561591693c7b415e9869157c711fe11263c95d74eDavid Li       20,   39,   30,   31,   20,  105,   31,   40,  135,   31,
8571591693c7b415e9869157c711fe11263c95d74eDavid Li      106,   34,   20,   20,   34,   31,  105,   39,   34,   34,
8581591693c7b415e9869157c711fe11263c95d74eDavid Li       39,   41,   42,   34,  106,   42,   34,   20,   41,   41,
8591591693c7b415e9869157c711fe11263c95d74eDavid Li      160,   44,  160,   41,   42,   44,   48,   48,   43,   41,
8601591693c7b415e9869157c711fe11263c95d74eDavid Li       41,   42,   41,   43,   47,   44,   47,   43,   47,  126,
8611591693c7b415e9869157c711fe11263c95d74eDavid Li       43,   53,   53,   53,   53,   53,   53,   53,   68,   68,
8621591693c7b415e9869157c711fe11263c95d74eDavid Li       70,   70,  120,  126,  142,  142,  148,  143,  124,  148,
8631591693c7b415e9869157c711fe11263c95d74eDavid Li      120,   68,   68,   70,   70,  124,  143,  116,   48,  144,
8641591693c7b415e9869157c711fe11263c95d74eDavid Li
8651591693c7b415e9869157c711fe11263c95d74eDavid Li      116,  116,  153,  153,  116,   48,  116,  144,  152,   48,
8661591693c7b415e9869157c711fe11263c95d74eDavid Li      152,  794,  152,  180,   48,   72,  793,   72,   72,   72,
8671591693c7b415e9869157c711fe11263c95d74eDavid Li       72,   72,   72,   72,  154,  154,  171,  180,  166,  166,
8681591693c7b415e9869157c711fe11263c95d74eDavid Li       73,   73,   72,   72,   73,   73,   73,   73,   73,   73,
8691591693c7b415e9869157c711fe11263c95d74eDavid Li       73,  166,  166,  784,  153,   72,   72,  184,  184,  171,
8701591693c7b415e9869157c711fe11263c95d74eDavid Li      241,  153,  215,  215,  215,  153,  247,  247,  247,  241,
8711591693c7b415e9869157c711fe11263c95d74eDavid Li      153,  268,  268,  268,  621,  621,  154,  279,  279,  279,
8721591693c7b415e9869157c711fe11263c95d74eDavid Li      288,  288,  288,  154,  292,  292,  292,  154,  301,  301,
8731591693c7b415e9869157c711fe11263c95d74eDavid Li      301,  754,  154,  162,  162,  162,  162,  162,  162,  162,
8741591693c7b415e9869157c711fe11263c95d74eDavid Li      164,  164,  655,  655,  164,  164,  164,  164,  164,  164,
8751591693c7b415e9869157c711fe11263c95d74eDavid Li
8761591693c7b415e9869157c711fe11263c95d74eDavid Li      164,  167,  167,  688,  688,  167,  167,  167,  167,  167,
8771591693c7b415e9869157c711fe11263c95d74eDavid Li      167,  167,  169,  169,  169,  169,  169,  169,  169,  170,
8781591693c7b415e9869157c711fe11263c95d74eDavid Li      170,  170,  170,  170,  170,  170,  256,  256,  256,  256,
8791591693c7b415e9869157c711fe11263c95d74eDavid Li      256,  256,  256,  754,  783,  170,  257,  257,  257,  257,
8801591693c7b415e9869157c711fe11263c95d74eDavid Li      257,  257,  257,  338,  338,  338,  782,  781,  170,  258,
8811591693c7b415e9869157c711fe11263c95d74eDavid Li      258,  780,  257,  258,  258,  258,  258,  258,  258,  258,
8821591693c7b415e9869157c711fe11263c95d74eDavid Li      393,  393,  393,  777,  776,  257,  260,  260,  260,  260,
8831591693c7b415e9869157c711fe11263c95d74eDavid Li      260,  260,  260,  261,  261,  261,  261,  261,  261,  261,
8841591693c7b415e9869157c711fe11263c95d74eDavid Li      350,  350,  350,  350,  350,  350,  350,  775,  774,  261,
8851591693c7b415e9869157c711fe11263c95d74eDavid Li      351,  351,  351,  351,  351,  351,  351,  382,  382,  382,
8861591693c7b415e9869157c711fe11263c95d74eDavid Li
8871591693c7b415e9869157c711fe11263c95d74eDavid Li      581,  773,  261,  394,  394,  394,  351,  772,  382,  382,
8881591693c7b415e9869157c711fe11263c95d74eDavid Li      395,  395,  395,  443,  443,  443,  483,  483,  483,  351,
8891591693c7b415e9869157c711fe11263c95d74eDavid Li      490,  504,  505,  771,  443,  443,  770,  483,  483,  504,
8901591693c7b415e9869157c711fe11263c95d74eDavid Li      505,  519,  519,  519,  490,  490,  490,  490,  490,  490,
8911591693c7b415e9869157c711fe11263c95d74eDavid Li      490,  581,  519,  519,  533,  533,  534,  534,  765,  763,
8921591693c7b415e9869157c711fe11263c95d74eDavid Li      762,  768,  581,  619,  619,  554,  554,  554,  576,  576,
8931591693c7b415e9869157c711fe11263c95d74eDavid Li      534,  534,  534,  534,  534,  534,  534,  554,  573,  573,
8941591693c7b415e9869157c711fe11263c95d74eDavid Li      573,  790,  576,  576,  576,  576,  576,  576,  576,  533,
8951591693c7b415e9869157c711fe11263c95d74eDavid Li      573,  578,  578,  739,  760,  605,  757,  756,  619,  755,
8961591693c7b415e9869157c711fe11263c95d74eDavid Li      739,  580,  580,  605,  606,  578,  578,  578,  578,  578,
8971591693c7b415e9869157c711fe11263c95d74eDavid Li
8981591693c7b415e9869157c711fe11263c95d74eDavid Li      578,  606,  606,  768,  533,  580,  580,  580,  580,  580,
8991591693c7b415e9869157c711fe11263c95d74eDavid Li      580,  580,  753,  619,  620,  620,  769,  778,  786,  753,
9001591693c7b415e9869157c711fe11263c95d74eDavid Li      779,  657,  657,  790,  769,  778,  786,  779,  620,  620,
9011591693c7b415e9869157c711fe11263c95d74eDavid Li      620,  620,  620,  620,  620,  657,  657,  657,  657,  657,
9021591693c7b415e9869157c711fe11263c95d74eDavid Li      657,  659,  659,  787,  798,  789,  796,  752,  751,  750,
9031591693c7b415e9869157c711fe11263c95d74eDavid Li      749,  787,  789,  748,  796,  659,  659,  659,  659,  659,
9041591693c7b415e9869157c711fe11263c95d74eDavid Li      659,  659,  799,  804,  807,  808,  810,  747,  746,  745,
9051591693c7b415e9869157c711fe11263c95d74eDavid Li      799,  804,  807,  808,  810,  744,  743,  742,  741,  740,
9061591693c7b415e9869157c711fe11263c95d74eDavid Li      738,  737,  734,  731,  730,  729,  728,  727,  725,  724,
9071591693c7b415e9869157c711fe11263c95d74eDavid Li      722,  720,  717,  716,  714,  713,  798,  813,  813,  813,
9081591693c7b415e9869157c711fe11263c95d74eDavid Li
9091591693c7b415e9869157c711fe11263c95d74eDavid Li      813,  813,  813,  813,  813,  814,  814,  814,  814,  814,
9101591693c7b415e9869157c711fe11263c95d74eDavid Li      815,  815,  815,  815,  815,  816,  816,  817,  817,  818,
9111591693c7b415e9869157c711fe11263c95d74eDavid Li      818,  818,  819,  819,  711,  819,  819,  819,  819,  819,
9121591693c7b415e9869157c711fe11263c95d74eDavid Li      820,  820,  820,  710,  709,  708,  820,  821,  821,  821,
9131591693c7b415e9869157c711fe11263c95d74eDavid Li      822,  822,  822,  707,  706,  705,  822,  823,  823,  823,
9141591693c7b415e9869157c711fe11263c95d74eDavid Li      704,  703,  702,  701,  699,  698,  697,  696,  695,  694,
9151591693c7b415e9869157c711fe11263c95d74eDavid Li      692,  691,  690,  689,  687,  686,  685,  684,  683,  682,
9161591693c7b415e9869157c711fe11263c95d74eDavid Li      681,  680,  679,  678,  677,  676,  675,  674,  673,  672,
9171591693c7b415e9869157c711fe11263c95d74eDavid Li      671,  670,  668,  667,  666,  665,  664,  663,  662,  661,
9181591693c7b415e9869157c711fe11263c95d74eDavid Li      660,  653,  651,  650,  648,  647,  646,  645,  644,  643,
9191591693c7b415e9869157c711fe11263c95d74eDavid Li
9201591693c7b415e9869157c711fe11263c95d74eDavid Li      642,  641,  640,  639,  638,  637,  636,  634,  633,  632,
9211591693c7b415e9869157c711fe11263c95d74eDavid Li      631,  630,  629,  628,  626,  625,  624,  623,  622,  618,
9221591693c7b415e9869157c711fe11263c95d74eDavid Li      617,  616,  615,  614,  613,  612,  611,  610,  609,  608,
9231591693c7b415e9869157c711fe11263c95d74eDavid Li      607,  601,  599,  598,  597,  596,  592,  591,  590,  589,
9241591693c7b415e9869157c711fe11263c95d74eDavid Li      588,  587,  586,  585,  584,  575,  571,  570,  568,  567,
9251591693c7b415e9869157c711fe11263c95d74eDavid Li      565,  564,  563,  562,  561,  560,  559,  558,  557,  555,
9261591693c7b415e9869157c711fe11263c95d74eDavid Li      553,  552,  551,  550,  549,  548,  547,  546,  545,  544,
9271591693c7b415e9869157c711fe11263c95d74eDavid Li      542,  541,  537,  536,  535,  532,  531,  529,  528,  526,
9281591693c7b415e9869157c711fe11263c95d74eDavid Li      525,  524,  523,  522,  520,  518,  517,  516,  515,  514,
9291591693c7b415e9869157c711fe11263c95d74eDavid Li      513,  511,  510,  509,  508,  507,  503,  502,  501,  500,
9301591693c7b415e9869157c711fe11263c95d74eDavid Li
9311591693c7b415e9869157c711fe11263c95d74eDavid Li      499,  498,  495,  494,  493,  492,  491,  489,  488,  487,
9321591693c7b415e9869157c711fe11263c95d74eDavid Li      486,  485,  484,  482,  481,  474,  473,  470,  469,  466,
9331591693c7b415e9869157c711fe11263c95d74eDavid Li      465,  464,  463,  452,  451,  450,  448,  447,  446,  445,
9341591693c7b415e9869157c711fe11263c95d74eDavid Li      444,  441,  439,  438,  437,  435,  434,  432,  431,  430,
9351591693c7b415e9869157c711fe11263c95d74eDavid Li      429,  427,  426,  421,  420,  418,  417,  416,  415,  414,
9361591693c7b415e9869157c711fe11263c95d74eDavid Li      413,  412,  411,  410,  409,  407,  406,  405,  404,  403,
9371591693c7b415e9869157c711fe11263c95d74eDavid Li      402,  401,  400,  399,  398,  397,  396,  392,  388,  387,
9381591693c7b415e9869157c711fe11263c95d74eDavid Li      386,  383,  381,  371,  369,  365,  364,  363,  362,  360,
9391591693c7b415e9869157c711fe11263c95d74eDavid Li      358,  353,  352,  349,  348,  347,  346,  345,  344,  339,
9401591693c7b415e9869157c711fe11263c95d74eDavid Li      337,  336,  335,  334,  333,  331,  330,  327,  326,  325,
9411591693c7b415e9869157c711fe11263c95d74eDavid Li
9421591693c7b415e9869157c711fe11263c95d74eDavid Li      324,  323,  322,  321,  320,  319,  318,  317,  316,  315,
9431591693c7b415e9869157c711fe11263c95d74eDavid Li      314,  313,  312,  311,  310,  309,  308,  307,  306,  305,
9441591693c7b415e9869157c711fe11263c95d74eDavid Li      302,  300,  299,  298,  297,  296,  295,  294,  293,  291,
9451591693c7b415e9869157c711fe11263c95d74eDavid Li      287,  285,  284,  283,  282,  278,  277,  276,  275,  274,
9461591693c7b415e9869157c711fe11263c95d74eDavid Li      273,  272,  271,  267,  265,  264,  254,  253,  252,  251,
9471591693c7b415e9869157c711fe11263c95d74eDavid Li      250,  249,  248,  246,  245,  244,  243,  242,  240,  239,
9481591693c7b415e9869157c711fe11263c95d74eDavid Li      238,  237,  236,  235,  234,  233,  232,  231,  230,  229,
9491591693c7b415e9869157c711fe11263c95d74eDavid Li      228,  227,  226,  225,  224,  223,  222,  221,  220,  219,
9501591693c7b415e9869157c711fe11263c95d74eDavid Li      218,  217,  216,  214,  213,  212,  211,  210,  209,  208,
9511591693c7b415e9869157c711fe11263c95d74eDavid Li      207,  206,  205,  204,  203,  202,  201,  200,  199,  198,
9521591693c7b415e9869157c711fe11263c95d74eDavid Li
9531591693c7b415e9869157c711fe11263c95d74eDavid Li      196,  195,  194,  193,  192,  191,  190,  189,  188,  187,
9541591693c7b415e9869157c711fe11263c95d74eDavid Li      186,  185,  183,  182,  181,  179,  178,  177,  176,  174,
9551591693c7b415e9869157c711fe11263c95d74eDavid Li      159,  158,  157,  156,  149,  147,  146,  145,  141,  140,
9561591693c7b415e9869157c711fe11263c95d74eDavid Li      139,  138,  137,  136,  134,  133,  132,  131,  130,  129,
9571591693c7b415e9869157c711fe11263c95d74eDavid Li      128,  127,  125,  123,  122,  121,  119,  118,  117,  115,
9581591693c7b415e9869157c711fe11263c95d74eDavid Li      114,  112,  111,  110,  109,  108,  107,  104,  103,  102,
9591591693c7b415e9869157c711fe11263c95d74eDavid Li      101,  100,   99,   98,   97,   95,   94,   93,   92,   91,
9601591693c7b415e9869157c711fe11263c95d74eDavid Li       90,   89,   88,   87,   83,   79,   52,   45,   38,   32,
9611591693c7b415e9869157c711fe11263c95d74eDavid Li       22,   18,   14,   12,   11,    7,    6,    5,  812,  812,
9621591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
9631591693c7b415e9869157c711fe11263c95d74eDavid Li
9641591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
9651591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
9661591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
9671591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
9681591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
9691591693c7b415e9869157c711fe11263c95d74eDavid Li      812,  812,  812,  812
9701591693c7b415e9869157c711fe11263c95d74eDavid Li    } ;
9711591693c7b415e9869157c711fe11263c95d74eDavid Li
9721591693c7b415e9869157c711fe11263c95d74eDavid Li/* The intent behind this definition is that it'll catch
9731591693c7b415e9869157c711fe11263c95d74eDavid Li * any uses of REJECT which flex missed.
9741591693c7b415e9869157c711fe11263c95d74eDavid Li */
9751591693c7b415e9869157c711fe11263c95d74eDavid Li#define REJECT reject_used_but_not_detected
9761591693c7b415e9869157c711fe11263c95d74eDavid Li#define yymore() yymore_used_but_not_detected
9771591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_MORE_ADJ 0
9781591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_RESTORE_YY_MORE_OFFSET
9791591693c7b415e9869157c711fe11263c95d74eDavid Li#line 1 "glsl_lexer.lpp"
9801591693c7b415e9869157c711fe11263c95d74eDavid Li#line 2 "glsl_lexer.lpp"
9811591693c7b415e9869157c711fe11263c95d74eDavid Li/*
9821591693c7b415e9869157c711fe11263c95d74eDavid Li * Copyright © 2008, 2009 Intel Corporation
9831591693c7b415e9869157c711fe11263c95d74eDavid Li *
9841591693c7b415e9869157c711fe11263c95d74eDavid Li * Permission is hereby granted, free of charge, to any person obtaining a
9851591693c7b415e9869157c711fe11263c95d74eDavid Li * copy of this software and associated documentation files (the "Software"),
9861591693c7b415e9869157c711fe11263c95d74eDavid Li * to deal in the Software without restriction, including without limitation
9871591693c7b415e9869157c711fe11263c95d74eDavid Li * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9881591693c7b415e9869157c711fe11263c95d74eDavid Li * and/or sell copies of the Software, and to permit persons to whom the
9891591693c7b415e9869157c711fe11263c95d74eDavid Li * Software is furnished to do so, subject to the following conditions:
9901591693c7b415e9869157c711fe11263c95d74eDavid Li *
9911591693c7b415e9869157c711fe11263c95d74eDavid Li * The above copyright notice and this permission notice (including the next
9921591693c7b415e9869157c711fe11263c95d74eDavid Li * paragraph) shall be included in all copies or substantial portions of the
9931591693c7b415e9869157c711fe11263c95d74eDavid Li * Software.
9941591693c7b415e9869157c711fe11263c95d74eDavid Li *
9951591693c7b415e9869157c711fe11263c95d74eDavid Li * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
9961591693c7b415e9869157c711fe11263c95d74eDavid Li * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
9971591693c7b415e9869157c711fe11263c95d74eDavid Li * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
9981591693c7b415e9869157c711fe11263c95d74eDavid Li * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
9991591693c7b415e9869157c711fe11263c95d74eDavid Li * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
10001591693c7b415e9869157c711fe11263c95d74eDavid Li * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
10011591693c7b415e9869157c711fe11263c95d74eDavid Li * DEALINGS IN THE SOFTWARE.
10021591693c7b415e9869157c711fe11263c95d74eDavid Li */
10031591693c7b415e9869157c711fe11263c95d74eDavid Li#include <ctype.h>
10041591693c7b415e9869157c711fe11263c95d74eDavid Li#include "strtod.h"
10051591693c7b415e9869157c711fe11263c95d74eDavid Li#include "ast.h"
10061591693c7b415e9869157c711fe11263c95d74eDavid Li#include "glsl_parser_extras.h"
10071591693c7b415e9869157c711fe11263c95d74eDavid Li#include "glsl_parser.h"
10081591693c7b415e9869157c711fe11263c95d74eDavid Li
10091591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_USER_ACTION						\
10101591693c7b415e9869157c711fe11263c95d74eDavid Li   do {								\
10111591693c7b415e9869157c711fe11263c95d74eDavid Li      yylloc->source = 0;					\
10121591693c7b415e9869157c711fe11263c95d74eDavid Li      yylloc->first_column = yycolumn + 1;			\
10131591693c7b415e9869157c711fe11263c95d74eDavid Li      yylloc->first_line = yylineno + 1;			\
10141591693c7b415e9869157c711fe11263c95d74eDavid Li      yycolumn += yyleng;					\
10151591693c7b415e9869157c711fe11263c95d74eDavid Li   } while(0);
10161591693c7b415e9869157c711fe11263c95d74eDavid Li
10171591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_USER_INIT yylineno = 0; yycolumn = 0;
10181591693c7b415e9869157c711fe11263c95d74eDavid Li
10191591693c7b415e9869157c711fe11263c95d74eDavid Li#define IS_UINT (yytext[yyleng - 1] == 'u' || yytext[yyleng - 1] == 'U')
10201591693c7b415e9869157c711fe11263c95d74eDavid Li
10211591693c7b415e9869157c711fe11263c95d74eDavid Li/* A macro for handling reserved words and keywords across language versions.
10221591693c7b415e9869157c711fe11263c95d74eDavid Li *
10231591693c7b415e9869157c711fe11263c95d74eDavid Li * Certain words start out as identifiers, become reserved words in
10241591693c7b415e9869157c711fe11263c95d74eDavid Li * later language revisions, and finally become language keywords.
10251591693c7b415e9869157c711fe11263c95d74eDavid Li *
10261591693c7b415e9869157c711fe11263c95d74eDavid Li * For example, consider the following lexer rule:
10271591693c7b415e9869157c711fe11263c95d74eDavid Li * samplerBuffer       KEYWORD(130, 140, SAMPLERBUFFER)
10281591693c7b415e9869157c711fe11263c95d74eDavid Li *
10291591693c7b415e9869157c711fe11263c95d74eDavid Li * This means that "samplerBuffer" will be treated as:
10301591693c7b415e9869157c711fe11263c95d74eDavid Li * - a keyword (SAMPLERBUFFER token)         ...in GLSL >= 1.40
10311591693c7b415e9869157c711fe11263c95d74eDavid Li * - a reserved word - error                 ...in GLSL >= 1.30
10321591693c7b415e9869157c711fe11263c95d74eDavid Li * - an identifier                           ...in GLSL <  1.30
10331591693c7b415e9869157c711fe11263c95d74eDavid Li */
10341591693c7b415e9869157c711fe11263c95d74eDavid Li#define KEYWORD(reserved_version, allowed_version, token)		\
10351591693c7b415e9869157c711fe11263c95d74eDavid Li   do {									\
10361591693c7b415e9869157c711fe11263c95d74eDavid Li      if (yyextra->language_version >= allowed_version) {		\
10371591693c7b415e9869157c711fe11263c95d74eDavid Li	 return token;							\
10381591693c7b415e9869157c711fe11263c95d74eDavid Li      } else if (yyextra->language_version >= reserved_version) {	\
10391591693c7b415e9869157c711fe11263c95d74eDavid Li	 _mesa_glsl_error(yylloc, yyextra,				\
10401591693c7b415e9869157c711fe11263c95d74eDavid Li			  "Illegal use of reserved word `%s'", yytext);	\
10411591693c7b415e9869157c711fe11263c95d74eDavid Li	 return ERROR_TOK;						\
10421591693c7b415e9869157c711fe11263c95d74eDavid Li      } else {								\
10431591693c7b415e9869157c711fe11263c95d74eDavid Li	 yylval->identifier = strdup(yytext);				\
10441591693c7b415e9869157c711fe11263c95d74eDavid Li	 return IDENTIFIER;						\
10451591693c7b415e9869157c711fe11263c95d74eDavid Li      }									\
10461591693c7b415e9869157c711fe11263c95d74eDavid Li   } while (0)
10471591693c7b415e9869157c711fe11263c95d74eDavid Li
10481591693c7b415e9869157c711fe11263c95d74eDavid Li/* The ES macro can be used in KEYWORD checks:
10491591693c7b415e9869157c711fe11263c95d74eDavid Li *
10501591693c7b415e9869157c711fe11263c95d74eDavid Li *    word      KEYWORD(110 || ES, 400, TOKEN)
10511591693c7b415e9869157c711fe11263c95d74eDavid Li * ...means the word is reserved in GLSL ES 1.00, while
10521591693c7b415e9869157c711fe11263c95d74eDavid Li *
10531591693c7b415e9869157c711fe11263c95d74eDavid Li *    word      KEYWORD(110, 130 || ES, TOKEN)
10541591693c7b415e9869157c711fe11263c95d74eDavid Li * ...means the word is a legal keyword in GLSL ES 1.00.
10551591693c7b415e9869157c711fe11263c95d74eDavid Li */
10561591693c7b415e9869157c711fe11263c95d74eDavid Li#define ES yyextra->es_shader
10571591693c7b415e9869157c711fe11263c95d74eDavid Li
10581591693c7b415e9869157c711fe11263c95d74eDavid Li#line 1059 "glsl_lexer.cpp"
10591591693c7b415e9869157c711fe11263c95d74eDavid Li
10601591693c7b415e9869157c711fe11263c95d74eDavid Li#define INITIAL 0
10611591693c7b415e9869157c711fe11263c95d74eDavid Li#define PP 1
10621591693c7b415e9869157c711fe11263c95d74eDavid Li#define PRAGMA 2
10631591693c7b415e9869157c711fe11263c95d74eDavid Li
10641591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_EXTRA_TYPE struct _mesa_glsl_parse_state *
10651591693c7b415e9869157c711fe11263c95d74eDavid Li
10661591693c7b415e9869157c711fe11263c95d74eDavid Li/* Holds the entire state of the reentrant scanner. */
10671591693c7b415e9869157c711fe11263c95d74eDavid Listruct yyguts_t
10681591693c7b415e9869157c711fe11263c95d74eDavid Li    {
10691591693c7b415e9869157c711fe11263c95d74eDavid Li
10701591693c7b415e9869157c711fe11263c95d74eDavid Li    /* User-defined. Not touched by flex. */
10711591693c7b415e9869157c711fe11263c95d74eDavid Li    YY_EXTRA_TYPE yyextra_r;
10721591693c7b415e9869157c711fe11263c95d74eDavid Li
10731591693c7b415e9869157c711fe11263c95d74eDavid Li    /* The rest are the same as the globals declared in the non-reentrant scanner. */
10741591693c7b415e9869157c711fe11263c95d74eDavid Li    FILE *yyin_r, *yyout_r;
10751591693c7b415e9869157c711fe11263c95d74eDavid Li    size_t yy_buffer_stack_top; /**< index of top of stack. */
10761591693c7b415e9869157c711fe11263c95d74eDavid Li    size_t yy_buffer_stack_max; /**< capacity of stack. */
10771591693c7b415e9869157c711fe11263c95d74eDavid Li    YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
10781591693c7b415e9869157c711fe11263c95d74eDavid Li    char yy_hold_char;
10791591693c7b415e9869157c711fe11263c95d74eDavid Li    int yy_n_chars;
10801591693c7b415e9869157c711fe11263c95d74eDavid Li    int yyleng_r;
10811591693c7b415e9869157c711fe11263c95d74eDavid Li    char *yy_c_buf_p;
10821591693c7b415e9869157c711fe11263c95d74eDavid Li    int yy_init;
10831591693c7b415e9869157c711fe11263c95d74eDavid Li    int yy_start;
10841591693c7b415e9869157c711fe11263c95d74eDavid Li    int yy_did_buffer_switch_on_eof;
10851591693c7b415e9869157c711fe11263c95d74eDavid Li    int yy_start_stack_ptr;
10861591693c7b415e9869157c711fe11263c95d74eDavid Li    int yy_start_stack_depth;
10871591693c7b415e9869157c711fe11263c95d74eDavid Li    int *yy_start_stack;
10881591693c7b415e9869157c711fe11263c95d74eDavid Li    yy_state_type yy_last_accepting_state;
10891591693c7b415e9869157c711fe11263c95d74eDavid Li    char* yy_last_accepting_cpos;
10901591693c7b415e9869157c711fe11263c95d74eDavid Li
10911591693c7b415e9869157c711fe11263c95d74eDavid Li    int yylineno_r;
10921591693c7b415e9869157c711fe11263c95d74eDavid Li    int yy_flex_debug_r;
10931591693c7b415e9869157c711fe11263c95d74eDavid Li
10941591693c7b415e9869157c711fe11263c95d74eDavid Li    char *yytext_r;
10951591693c7b415e9869157c711fe11263c95d74eDavid Li    int yy_more_flag;
10961591693c7b415e9869157c711fe11263c95d74eDavid Li    int yy_more_len;
10971591693c7b415e9869157c711fe11263c95d74eDavid Li
10981591693c7b415e9869157c711fe11263c95d74eDavid Li    YYSTYPE * yylval_r;
10991591693c7b415e9869157c711fe11263c95d74eDavid Li
11001591693c7b415e9869157c711fe11263c95d74eDavid Li    YYLTYPE * yylloc_r;
11011591693c7b415e9869157c711fe11263c95d74eDavid Li
11021591693c7b415e9869157c711fe11263c95d74eDavid Li    }; /* end struct yyguts_t */
11031591693c7b415e9869157c711fe11263c95d74eDavid Li
11041591693c7b415e9869157c711fe11263c95d74eDavid Listatic int yy_init_globals (yyscan_t yyscanner );
11051591693c7b415e9869157c711fe11263c95d74eDavid Li
11061591693c7b415e9869157c711fe11263c95d74eDavid Li    /* This must go here because YYSTYPE and YYLTYPE are included
11071591693c7b415e9869157c711fe11263c95d74eDavid Li     * from bison output in section 1.*/
11081591693c7b415e9869157c711fe11263c95d74eDavid Li    #    define yylval yyg->yylval_r
11091591693c7b415e9869157c711fe11263c95d74eDavid Li
11101591693c7b415e9869157c711fe11263c95d74eDavid Li    #    define yylloc yyg->yylloc_r
11111591693c7b415e9869157c711fe11263c95d74eDavid Li
11121591693c7b415e9869157c711fe11263c95d74eDavid Liint _mesa_glsl_lex_init (yyscan_t* scanner);
11131591693c7b415e9869157c711fe11263c95d74eDavid Li
11141591693c7b415e9869157c711fe11263c95d74eDavid Liint _mesa_glsl_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
11151591693c7b415e9869157c711fe11263c95d74eDavid Li
11161591693c7b415e9869157c711fe11263c95d74eDavid Li/* Accessor methods to globals.
11171591693c7b415e9869157c711fe11263c95d74eDavid Li   These are made visible to non-reentrant scanners for convenience. */
11181591693c7b415e9869157c711fe11263c95d74eDavid Li
11191591693c7b415e9869157c711fe11263c95d74eDavid Liint _mesa_glsl_lex_destroy (yyscan_t yyscanner );
11201591693c7b415e9869157c711fe11263c95d74eDavid Li
11211591693c7b415e9869157c711fe11263c95d74eDavid Liint _mesa_glsl_get_debug (yyscan_t yyscanner );
11221591693c7b415e9869157c711fe11263c95d74eDavid Li
11231591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_set_debug (int debug_flag ,yyscan_t yyscanner );
11241591693c7b415e9869157c711fe11263c95d74eDavid Li
11251591693c7b415e9869157c711fe11263c95d74eDavid LiYY_EXTRA_TYPE _mesa_glsl_get_extra (yyscan_t yyscanner );
11261591693c7b415e9869157c711fe11263c95d74eDavid Li
11271591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
11281591693c7b415e9869157c711fe11263c95d74eDavid Li
11291591693c7b415e9869157c711fe11263c95d74eDavid LiFILE *_mesa_glsl_get_in (yyscan_t yyscanner );
11301591693c7b415e9869157c711fe11263c95d74eDavid Li
11311591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_set_in  (FILE * in_str ,yyscan_t yyscanner );
11321591693c7b415e9869157c711fe11263c95d74eDavid Li
11331591693c7b415e9869157c711fe11263c95d74eDavid LiFILE *_mesa_glsl_get_out (yyscan_t yyscanner );
11341591693c7b415e9869157c711fe11263c95d74eDavid Li
11351591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_set_out  (FILE * out_str ,yyscan_t yyscanner );
11361591693c7b415e9869157c711fe11263c95d74eDavid Li
11371591693c7b415e9869157c711fe11263c95d74eDavid Liint _mesa_glsl_get_leng (yyscan_t yyscanner );
11381591693c7b415e9869157c711fe11263c95d74eDavid Li
11391591693c7b415e9869157c711fe11263c95d74eDavid Lichar *_mesa_glsl_get_text (yyscan_t yyscanner );
11401591693c7b415e9869157c711fe11263c95d74eDavid Li
11411591693c7b415e9869157c711fe11263c95d74eDavid Liint _mesa_glsl_get_lineno (yyscan_t yyscanner );
11421591693c7b415e9869157c711fe11263c95d74eDavid Li
11431591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_set_lineno (int line_number ,yyscan_t yyscanner );
11441591693c7b415e9869157c711fe11263c95d74eDavid Li
11451591693c7b415e9869157c711fe11263c95d74eDavid LiYYSTYPE * _mesa_glsl_get_lval (yyscan_t yyscanner );
11461591693c7b415e9869157c711fe11263c95d74eDavid Li
11471591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
11481591693c7b415e9869157c711fe11263c95d74eDavid Li
11491591693c7b415e9869157c711fe11263c95d74eDavid Li       YYLTYPE *_mesa_glsl_get_lloc (yyscan_t yyscanner );
11501591693c7b415e9869157c711fe11263c95d74eDavid Li
11511591693c7b415e9869157c711fe11263c95d74eDavid Li        void _mesa_glsl_set_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
11521591693c7b415e9869157c711fe11263c95d74eDavid Li
11531591693c7b415e9869157c711fe11263c95d74eDavid Li/* Macros after this point can all be overridden by user definitions in
11541591693c7b415e9869157c711fe11263c95d74eDavid Li * section 1.
11551591693c7b415e9869157c711fe11263c95d74eDavid Li */
11561591693c7b415e9869157c711fe11263c95d74eDavid Li
11571591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_SKIP_YYWRAP
11581591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef __cplusplus
11591591693c7b415e9869157c711fe11263c95d74eDavid Liextern "C" int _mesa_glsl_wrap (yyscan_t yyscanner );
11601591693c7b415e9869157c711fe11263c95d74eDavid Li#else
11611591693c7b415e9869157c711fe11263c95d74eDavid Liextern int _mesa_glsl_wrap (yyscan_t yyscanner );
11621591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
11631591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
11641591693c7b415e9869157c711fe11263c95d74eDavid Li
11651591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef yytext_ptr
11661591693c7b415e9869157c711fe11263c95d74eDavid Listatic void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
11671591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
11681591693c7b415e9869157c711fe11263c95d74eDavid Li
11691591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef YY_NEED_STRLEN
11701591693c7b415e9869157c711fe11263c95d74eDavid Listatic int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
11711591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
11721591693c7b415e9869157c711fe11263c95d74eDavid Li
11731591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_NO_INPUT
11741591693c7b415e9869157c711fe11263c95d74eDavid Li
11751591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef __cplusplus
11761591693c7b415e9869157c711fe11263c95d74eDavid Listatic int yyinput (yyscan_t yyscanner );
11771591693c7b415e9869157c711fe11263c95d74eDavid Li#else
11781591693c7b415e9869157c711fe11263c95d74eDavid Listatic int input (yyscan_t yyscanner );
11791591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
11801591693c7b415e9869157c711fe11263c95d74eDavid Li
11811591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
11821591693c7b415e9869157c711fe11263c95d74eDavid Li
11831591693c7b415e9869157c711fe11263c95d74eDavid Li/* Amount of stuff to slurp up with each read. */
11841591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_READ_BUF_SIZE
11851591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_READ_BUF_SIZE 8192
11861591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
11871591693c7b415e9869157c711fe11263c95d74eDavid Li
11881591693c7b415e9869157c711fe11263c95d74eDavid Li/* Copy whatever the last rule matched to the standard output. */
11891591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef ECHO
11901591693c7b415e9869157c711fe11263c95d74eDavid Li/* This used to be an fputs(), but since the string might contain NUL's,
11911591693c7b415e9869157c711fe11263c95d74eDavid Li * we now use fwrite().
11921591693c7b415e9869157c711fe11263c95d74eDavid Li */
11931591693c7b415e9869157c711fe11263c95d74eDavid Li#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
11941591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
11951591693c7b415e9869157c711fe11263c95d74eDavid Li
11961591693c7b415e9869157c711fe11263c95d74eDavid Li/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
11971591693c7b415e9869157c711fe11263c95d74eDavid Li * is returned in "result".
11981591693c7b415e9869157c711fe11263c95d74eDavid Li */
11991591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_INPUT
12001591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_INPUT(buf,result,max_size) \
12011591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
12021591693c7b415e9869157c711fe11263c95d74eDavid Li		{ \
12031591693c7b415e9869157c711fe11263c95d74eDavid Li		int c = '*'; \
12041591693c7b415e9869157c711fe11263c95d74eDavid Li		unsigned n; \
12051591693c7b415e9869157c711fe11263c95d74eDavid Li		for ( n = 0; n < max_size && \
12061591693c7b415e9869157c711fe11263c95d74eDavid Li			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
12071591693c7b415e9869157c711fe11263c95d74eDavid Li			buf[n] = (char) c; \
12081591693c7b415e9869157c711fe11263c95d74eDavid Li		if ( c == '\n' ) \
12091591693c7b415e9869157c711fe11263c95d74eDavid Li			buf[n++] = (char) c; \
12101591693c7b415e9869157c711fe11263c95d74eDavid Li		if ( c == EOF && ferror( yyin ) ) \
12111591693c7b415e9869157c711fe11263c95d74eDavid Li			YY_FATAL_ERROR( "input in flex scanner failed" ); \
12121591693c7b415e9869157c711fe11263c95d74eDavid Li		result = n; \
12131591693c7b415e9869157c711fe11263c95d74eDavid Li		} \
12141591693c7b415e9869157c711fe11263c95d74eDavid Li	else \
12151591693c7b415e9869157c711fe11263c95d74eDavid Li		{ \
12161591693c7b415e9869157c711fe11263c95d74eDavid Li		errno=0; \
12171591693c7b415e9869157c711fe11263c95d74eDavid Li		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
12181591693c7b415e9869157c711fe11263c95d74eDavid Li			{ \
12191591693c7b415e9869157c711fe11263c95d74eDavid Li			if( errno != EINTR) \
12201591693c7b415e9869157c711fe11263c95d74eDavid Li				{ \
12211591693c7b415e9869157c711fe11263c95d74eDavid Li				YY_FATAL_ERROR( "input in flex scanner failed" ); \
12221591693c7b415e9869157c711fe11263c95d74eDavid Li				break; \
12231591693c7b415e9869157c711fe11263c95d74eDavid Li				} \
12241591693c7b415e9869157c711fe11263c95d74eDavid Li			errno=0; \
12251591693c7b415e9869157c711fe11263c95d74eDavid Li			clearerr(yyin); \
12261591693c7b415e9869157c711fe11263c95d74eDavid Li			} \
12271591693c7b415e9869157c711fe11263c95d74eDavid Li		}\
12281591693c7b415e9869157c711fe11263c95d74eDavid Li\
12291591693c7b415e9869157c711fe11263c95d74eDavid Li
12301591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
12311591693c7b415e9869157c711fe11263c95d74eDavid Li
12321591693c7b415e9869157c711fe11263c95d74eDavid Li/* No semi-colon after return; correct usage is to write "yyterminate();" -
12331591693c7b415e9869157c711fe11263c95d74eDavid Li * we don't want an extra ';' after the "return" because that will cause
12341591693c7b415e9869157c711fe11263c95d74eDavid Li * some compilers to complain about unreachable statements.
12351591693c7b415e9869157c711fe11263c95d74eDavid Li */
12361591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef yyterminate
12371591693c7b415e9869157c711fe11263c95d74eDavid Li#define yyterminate() return YY_NULL
12381591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
12391591693c7b415e9869157c711fe11263c95d74eDavid Li
12401591693c7b415e9869157c711fe11263c95d74eDavid Li/* Number of entries by which start-condition stack grows. */
12411591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_START_STACK_INCR
12421591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_START_STACK_INCR 25
12431591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
12441591693c7b415e9869157c711fe11263c95d74eDavid Li
12451591693c7b415e9869157c711fe11263c95d74eDavid Li/* Report a fatal error. */
12461591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_FATAL_ERROR
12471591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
12481591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
12491591693c7b415e9869157c711fe11263c95d74eDavid Li
12501591693c7b415e9869157c711fe11263c95d74eDavid Li/* end tables serialization structures and prototypes */
12511591693c7b415e9869157c711fe11263c95d74eDavid Li
12521591693c7b415e9869157c711fe11263c95d74eDavid Li/* Default declaration of generated scanner - a define so the user can
12531591693c7b415e9869157c711fe11263c95d74eDavid Li * easily add parameters.
12541591693c7b415e9869157c711fe11263c95d74eDavid Li */
12551591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_DECL
12561591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_DECL_IS_OURS 1
12571591693c7b415e9869157c711fe11263c95d74eDavid Li
12581591693c7b415e9869157c711fe11263c95d74eDavid Liextern int _mesa_glsl_lex \
12591591693c7b415e9869157c711fe11263c95d74eDavid Li               (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
12601591693c7b415e9869157c711fe11263c95d74eDavid Li
12611591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_DECL int _mesa_glsl_lex \
12621591693c7b415e9869157c711fe11263c95d74eDavid Li               (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
12631591693c7b415e9869157c711fe11263c95d74eDavid Li#endif /* !YY_DECL */
12641591693c7b415e9869157c711fe11263c95d74eDavid Li
12651591693c7b415e9869157c711fe11263c95d74eDavid Li/* Code executed at the beginning of each rule, after yytext and yyleng
12661591693c7b415e9869157c711fe11263c95d74eDavid Li * have been set up.
12671591693c7b415e9869157c711fe11263c95d74eDavid Li */
12681591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_USER_ACTION
12691591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_USER_ACTION
12701591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
12711591693c7b415e9869157c711fe11263c95d74eDavid Li
12721591693c7b415e9869157c711fe11263c95d74eDavid Li/* Code executed at the end of each rule. */
12731591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_BREAK
12741591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_BREAK break;
12751591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
12761591693c7b415e9869157c711fe11263c95d74eDavid Li
12771591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_RULE_SETUP \
12781591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( yyleng > 0 ) \
12791591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
12801591693c7b415e9869157c711fe11263c95d74eDavid Li				(yytext[yyleng - 1] == '\n'); \
12811591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_USER_ACTION
12821591693c7b415e9869157c711fe11263c95d74eDavid Li
12831591693c7b415e9869157c711fe11263c95d74eDavid Li/** The main scanner function which does all the work.
12841591693c7b415e9869157c711fe11263c95d74eDavid Li */
12851591693c7b415e9869157c711fe11263c95d74eDavid LiYY_DECL
12861591693c7b415e9869157c711fe11263c95d74eDavid Li{
12871591693c7b415e9869157c711fe11263c95d74eDavid Li	register yy_state_type yy_current_state;
12881591693c7b415e9869157c711fe11263c95d74eDavid Li	register char *yy_cp, *yy_bp;
12891591693c7b415e9869157c711fe11263c95d74eDavid Li	register int yy_act;
12901591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
12911591693c7b415e9869157c711fe11263c95d74eDavid Li
12921591693c7b415e9869157c711fe11263c95d74eDavid Li#line 95 "glsl_lexer.lpp"
12931591693c7b415e9869157c711fe11263c95d74eDavid Li
12941591693c7b415e9869157c711fe11263c95d74eDavid Li
12951591693c7b415e9869157c711fe11263c95d74eDavid Li#line 1296 "glsl_lexer.cpp"
12961591693c7b415e9869157c711fe11263c95d74eDavid Li
12971591693c7b415e9869157c711fe11263c95d74eDavid Li    yylval = yylval_param;
12981591693c7b415e9869157c711fe11263c95d74eDavid Li
12991591693c7b415e9869157c711fe11263c95d74eDavid Li    yylloc = yylloc_param;
13001591693c7b415e9869157c711fe11263c95d74eDavid Li
13011591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( !yyg->yy_init )
13021591693c7b415e9869157c711fe11263c95d74eDavid Li		{
13031591693c7b415e9869157c711fe11263c95d74eDavid Li		yyg->yy_init = 1;
13041591693c7b415e9869157c711fe11263c95d74eDavid Li
13051591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef YY_USER_INIT
13061591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_USER_INIT;
13071591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
13081591693c7b415e9869157c711fe11263c95d74eDavid Li
13091591693c7b415e9869157c711fe11263c95d74eDavid Li		if ( ! yyg->yy_start )
13101591693c7b415e9869157c711fe11263c95d74eDavid Li			yyg->yy_start = 1;	/* first start state */
13111591693c7b415e9869157c711fe11263c95d74eDavid Li
13121591693c7b415e9869157c711fe11263c95d74eDavid Li		if ( ! yyin )
13131591693c7b415e9869157c711fe11263c95d74eDavid Li			yyin = stdin;
13141591693c7b415e9869157c711fe11263c95d74eDavid Li
13151591693c7b415e9869157c711fe11263c95d74eDavid Li		if ( ! yyout )
13161591693c7b415e9869157c711fe11263c95d74eDavid Li			yyout = stdout;
13171591693c7b415e9869157c711fe11263c95d74eDavid Li
13181591693c7b415e9869157c711fe11263c95d74eDavid Li		if ( ! YY_CURRENT_BUFFER ) {
13191591693c7b415e9869157c711fe11263c95d74eDavid Li			_mesa_glsl_ensure_buffer_stack (yyscanner);
13201591693c7b415e9869157c711fe11263c95d74eDavid Li			YY_CURRENT_BUFFER_LVALUE =
13211591693c7b415e9869157c711fe11263c95d74eDavid Li				_mesa_glsl__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
13221591693c7b415e9869157c711fe11263c95d74eDavid Li		}
13231591693c7b415e9869157c711fe11263c95d74eDavid Li
13241591693c7b415e9869157c711fe11263c95d74eDavid Li		_mesa_glsl__load_buffer_state(yyscanner );
13251591693c7b415e9869157c711fe11263c95d74eDavid Li		}
13261591693c7b415e9869157c711fe11263c95d74eDavid Li
13271591693c7b415e9869157c711fe11263c95d74eDavid Li	while ( 1 )		/* loops until end-of-file is reached */
13281591693c7b415e9869157c711fe11263c95d74eDavid Li		{
13291591693c7b415e9869157c711fe11263c95d74eDavid Li		yy_cp = yyg->yy_c_buf_p;
13301591693c7b415e9869157c711fe11263c95d74eDavid Li
13311591693c7b415e9869157c711fe11263c95d74eDavid Li		/* Support of yytext. */
13321591693c7b415e9869157c711fe11263c95d74eDavid Li		*yy_cp = yyg->yy_hold_char;
13331591693c7b415e9869157c711fe11263c95d74eDavid Li
13341591693c7b415e9869157c711fe11263c95d74eDavid Li		/* yy_bp points to the position in yy_ch_buf of the start of
13351591693c7b415e9869157c711fe11263c95d74eDavid Li		 * the current run.
13361591693c7b415e9869157c711fe11263c95d74eDavid Li		 */
13371591693c7b415e9869157c711fe11263c95d74eDavid Li		yy_bp = yy_cp;
13381591693c7b415e9869157c711fe11263c95d74eDavid Li
13391591693c7b415e9869157c711fe11263c95d74eDavid Li		yy_current_state = yyg->yy_start;
13401591693c7b415e9869157c711fe11263c95d74eDavid Li		yy_current_state += YY_AT_BOL();
13411591693c7b415e9869157c711fe11263c95d74eDavid Liyy_match:
13421591693c7b415e9869157c711fe11263c95d74eDavid Li		do
13431591693c7b415e9869157c711fe11263c95d74eDavid Li			{
13441591693c7b415e9869157c711fe11263c95d74eDavid Li			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
13451591693c7b415e9869157c711fe11263c95d74eDavid Li			if ( yy_accept[yy_current_state] )
13461591693c7b415e9869157c711fe11263c95d74eDavid Li				{
13471591693c7b415e9869157c711fe11263c95d74eDavid Li				yyg->yy_last_accepting_state = yy_current_state;
13481591693c7b415e9869157c711fe11263c95d74eDavid Li				yyg->yy_last_accepting_cpos = yy_cp;
13491591693c7b415e9869157c711fe11263c95d74eDavid Li				}
13501591693c7b415e9869157c711fe11263c95d74eDavid Li			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
13511591693c7b415e9869157c711fe11263c95d74eDavid Li				{
13521591693c7b415e9869157c711fe11263c95d74eDavid Li				yy_current_state = (int) yy_def[yy_current_state];
13531591693c7b415e9869157c711fe11263c95d74eDavid Li				if ( yy_current_state >= 813 )
13541591693c7b415e9869157c711fe11263c95d74eDavid Li					yy_c = yy_meta[(unsigned int) yy_c];
13551591693c7b415e9869157c711fe11263c95d74eDavid Li				}
13561591693c7b415e9869157c711fe11263c95d74eDavid Li			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
13571591693c7b415e9869157c711fe11263c95d74eDavid Li			++yy_cp;
13581591693c7b415e9869157c711fe11263c95d74eDavid Li			}
13591591693c7b415e9869157c711fe11263c95d74eDavid Li		while ( yy_current_state != 812 );
13601591693c7b415e9869157c711fe11263c95d74eDavid Li		yy_cp = yyg->yy_last_accepting_cpos;
13611591693c7b415e9869157c711fe11263c95d74eDavid Li		yy_current_state = yyg->yy_last_accepting_state;
13621591693c7b415e9869157c711fe11263c95d74eDavid Li
13631591693c7b415e9869157c711fe11263c95d74eDavid Liyy_find_action:
13641591693c7b415e9869157c711fe11263c95d74eDavid Li		yy_act = yy_accept[yy_current_state];
13651591693c7b415e9869157c711fe11263c95d74eDavid Li
13661591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_DO_BEFORE_ACTION;
13671591693c7b415e9869157c711fe11263c95d74eDavid Li
13681591693c7b415e9869157c711fe11263c95d74eDavid Lido_action:	/* This label is used only to access EOF actions. */
13691591693c7b415e9869157c711fe11263c95d74eDavid Li
13701591693c7b415e9869157c711fe11263c95d74eDavid Li		switch ( yy_act )
13711591693c7b415e9869157c711fe11263c95d74eDavid Li	{ /* beginning of action switch */
13721591693c7b415e9869157c711fe11263c95d74eDavid Li			case 0: /* must back up */
13731591693c7b415e9869157c711fe11263c95d74eDavid Li			/* undo the effects of YY_DO_BEFORE_ACTION */
13741591693c7b415e9869157c711fe11263c95d74eDavid Li			*yy_cp = yyg->yy_hold_char;
13751591693c7b415e9869157c711fe11263c95d74eDavid Li			yy_cp = yyg->yy_last_accepting_cpos;
13761591693c7b415e9869157c711fe11263c95d74eDavid Li			yy_current_state = yyg->yy_last_accepting_state;
13771591693c7b415e9869157c711fe11263c95d74eDavid Li			goto yy_find_action;
13781591693c7b415e9869157c711fe11263c95d74eDavid Li
13791591693c7b415e9869157c711fe11263c95d74eDavid Licase 1:
13801591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
13811591693c7b415e9869157c711fe11263c95d74eDavid Li#line 97 "glsl_lexer.lpp"
13821591693c7b415e9869157c711fe11263c95d74eDavid Li;
13831591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
13841591693c7b415e9869157c711fe11263c95d74eDavid Li/* Preprocessor tokens. */
13851591693c7b415e9869157c711fe11263c95d74eDavid Licase 2:
13861591693c7b415e9869157c711fe11263c95d74eDavid Li*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
13871591693c7b415e9869157c711fe11263c95d74eDavid Liyyg->yy_c_buf_p = yy_cp -= 1;
13881591693c7b415e9869157c711fe11263c95d74eDavid LiYY_DO_BEFORE_ACTION; /* set up yytext again */
13891591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
13901591693c7b415e9869157c711fe11263c95d74eDavid Li#line 100 "glsl_lexer.lpp"
13911591693c7b415e9869157c711fe11263c95d74eDavid Li;
13921591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
13931591693c7b415e9869157c711fe11263c95d74eDavid Licase 3:
13941591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
13951591693c7b415e9869157c711fe11263c95d74eDavid Li#line 101 "glsl_lexer.lpp"
13961591693c7b415e9869157c711fe11263c95d74eDavid Li{ BEGIN PP; return VERSION; }
13971591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
13981591693c7b415e9869157c711fe11263c95d74eDavid Licase 4:
13991591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
14001591693c7b415e9869157c711fe11263c95d74eDavid Li#line 102 "glsl_lexer.lpp"
14011591693c7b415e9869157c711fe11263c95d74eDavid Li{ BEGIN PP; return EXTENSION; }
14021591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
14031591693c7b415e9869157c711fe11263c95d74eDavid Licase 5:
14041591693c7b415e9869157c711fe11263c95d74eDavid Li*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
14051591693c7b415e9869157c711fe11263c95d74eDavid Liyyg->yy_c_buf_p = yy_cp -= 1;
14061591693c7b415e9869157c711fe11263c95d74eDavid LiYY_DO_BEFORE_ACTION; /* set up yytext again */
14071591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
14081591693c7b415e9869157c711fe11263c95d74eDavid Li#line 103 "glsl_lexer.lpp"
14091591693c7b415e9869157c711fe11263c95d74eDavid Li{
14101591693c7b415e9869157c711fe11263c95d74eDavid Li				   /* Eat characters until the first digit is
14111591693c7b415e9869157c711fe11263c95d74eDavid Li				    * encountered
14121591693c7b415e9869157c711fe11263c95d74eDavid Li				    */
14131591693c7b415e9869157c711fe11263c95d74eDavid Li				   char *ptr = yytext;
14141591693c7b415e9869157c711fe11263c95d74eDavid Li				   while (!isdigit(*ptr))
14151591693c7b415e9869157c711fe11263c95d74eDavid Li				      ptr++;
14161591693c7b415e9869157c711fe11263c95d74eDavid Li
14171591693c7b415e9869157c711fe11263c95d74eDavid Li				   /* Subtract one from the line number because
14181591693c7b415e9869157c711fe11263c95d74eDavid Li				    * yylineno is zero-based instead of
14191591693c7b415e9869157c711fe11263c95d74eDavid Li				    * one-based.
14201591693c7b415e9869157c711fe11263c95d74eDavid Li				    */
14211591693c7b415e9869157c711fe11263c95d74eDavid Li				   yylineno = strtol(ptr, &ptr, 0) - 1;
14221591693c7b415e9869157c711fe11263c95d74eDavid Li				   yylloc->source = strtol(ptr, NULL, 0);
14231591693c7b415e9869157c711fe11263c95d74eDavid Li				}
14241591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
14251591693c7b415e9869157c711fe11263c95d74eDavid Licase 6:
14261591693c7b415e9869157c711fe11263c95d74eDavid Li*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
14271591693c7b415e9869157c711fe11263c95d74eDavid Liyyg->yy_c_buf_p = yy_cp -= 1;
14281591693c7b415e9869157c711fe11263c95d74eDavid LiYY_DO_BEFORE_ACTION; /* set up yytext again */
14291591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
14301591693c7b415e9869157c711fe11263c95d74eDavid Li#line 118 "glsl_lexer.lpp"
14311591693c7b415e9869157c711fe11263c95d74eDavid Li{
14321591693c7b415e9869157c711fe11263c95d74eDavid Li				   /* Eat characters until the first digit is
14331591693c7b415e9869157c711fe11263c95d74eDavid Li				    * encountered
14341591693c7b415e9869157c711fe11263c95d74eDavid Li				    */
14351591693c7b415e9869157c711fe11263c95d74eDavid Li				   char *ptr = yytext;
14361591693c7b415e9869157c711fe11263c95d74eDavid Li				   while (!isdigit(*ptr))
14371591693c7b415e9869157c711fe11263c95d74eDavid Li				      ptr++;
14381591693c7b415e9869157c711fe11263c95d74eDavid Li
14391591693c7b415e9869157c711fe11263c95d74eDavid Li				   /* Subtract one from the line number because
14401591693c7b415e9869157c711fe11263c95d74eDavid Li				    * yylineno is zero-based instead of
14411591693c7b415e9869157c711fe11263c95d74eDavid Li				    * one-based.
14421591693c7b415e9869157c711fe11263c95d74eDavid Li				    */
14431591693c7b415e9869157c711fe11263c95d74eDavid Li				   yylineno = strtol(ptr, &ptr, 0) - 1;
14441591693c7b415e9869157c711fe11263c95d74eDavid Li				}
14451591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
14461591693c7b415e9869157c711fe11263c95d74eDavid Licase 7:
14471591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
14481591693c7b415e9869157c711fe11263c95d74eDavid Li#line 132 "glsl_lexer.lpp"
14491591693c7b415e9869157c711fe11263c95d74eDavid Li{
14501591693c7b415e9869157c711fe11263c95d74eDavid Li				  BEGIN PP;
14511591693c7b415e9869157c711fe11263c95d74eDavid Li				  return PRAGMA_DEBUG_ON;
14521591693c7b415e9869157c711fe11263c95d74eDavid Li				}
14531591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
14541591693c7b415e9869157c711fe11263c95d74eDavid Licase 8:
14551591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
14561591693c7b415e9869157c711fe11263c95d74eDavid Li#line 136 "glsl_lexer.lpp"
14571591693c7b415e9869157c711fe11263c95d74eDavid Li{
14581591693c7b415e9869157c711fe11263c95d74eDavid Li				  BEGIN PP;
14591591693c7b415e9869157c711fe11263c95d74eDavid Li				  return PRAGMA_DEBUG_OFF;
14601591693c7b415e9869157c711fe11263c95d74eDavid Li				}
14611591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
14621591693c7b415e9869157c711fe11263c95d74eDavid Licase 9:
14631591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
14641591693c7b415e9869157c711fe11263c95d74eDavid Li#line 140 "glsl_lexer.lpp"
14651591693c7b415e9869157c711fe11263c95d74eDavid Li{
14661591693c7b415e9869157c711fe11263c95d74eDavid Li				  BEGIN PP;
14671591693c7b415e9869157c711fe11263c95d74eDavid Li				  return PRAGMA_OPTIMIZE_ON;
14681591693c7b415e9869157c711fe11263c95d74eDavid Li				}
14691591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
14701591693c7b415e9869157c711fe11263c95d74eDavid Licase 10:
14711591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
14721591693c7b415e9869157c711fe11263c95d74eDavid Li#line 144 "glsl_lexer.lpp"
14731591693c7b415e9869157c711fe11263c95d74eDavid Li{
14741591693c7b415e9869157c711fe11263c95d74eDavid Li				  BEGIN PP;
14751591693c7b415e9869157c711fe11263c95d74eDavid Li				  return PRAGMA_OPTIMIZE_OFF;
14761591693c7b415e9869157c711fe11263c95d74eDavid Li				}
14771591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
14781591693c7b415e9869157c711fe11263c95d74eDavid Licase 11:
14791591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
14801591693c7b415e9869157c711fe11263c95d74eDavid Li#line 148 "glsl_lexer.lpp"
14811591693c7b415e9869157c711fe11263c95d74eDavid Li{ BEGIN PRAGMA; }
14821591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
14831591693c7b415e9869157c711fe11263c95d74eDavid Licase 12:
14841591693c7b415e9869157c711fe11263c95d74eDavid Li/* rule 12 can match eol */
14851591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
14861591693c7b415e9869157c711fe11263c95d74eDavid Li#line 150 "glsl_lexer.lpp"
14871591693c7b415e9869157c711fe11263c95d74eDavid Li{ BEGIN 0; yylineno++; yycolumn = 0; }
14881591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
14891591693c7b415e9869157c711fe11263c95d74eDavid Licase 13:
14901591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
14911591693c7b415e9869157c711fe11263c95d74eDavid Li#line 151 "glsl_lexer.lpp"
14921591693c7b415e9869157c711fe11263c95d74eDavid Li{ }
14931591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
14941591693c7b415e9869157c711fe11263c95d74eDavid Licase 14:
14951591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
14961591693c7b415e9869157c711fe11263c95d74eDavid Li#line 153 "glsl_lexer.lpp"
14971591693c7b415e9869157c711fe11263c95d74eDavid Li{ }
14981591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
14991591693c7b415e9869157c711fe11263c95d74eDavid Licase 15:
15001591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
15011591693c7b415e9869157c711fe11263c95d74eDavid Li#line 154 "glsl_lexer.lpp"
15021591693c7b415e9869157c711fe11263c95d74eDavid Li{ }
15031591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
15041591693c7b415e9869157c711fe11263c95d74eDavid Licase 16:
15051591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
15061591693c7b415e9869157c711fe11263c95d74eDavid Li#line 155 "glsl_lexer.lpp"
15071591693c7b415e9869157c711fe11263c95d74eDavid Lireturn COLON;
15081591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
15091591693c7b415e9869157c711fe11263c95d74eDavid Licase 17:
15101591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
15111591693c7b415e9869157c711fe11263c95d74eDavid Li#line 156 "glsl_lexer.lpp"
15121591693c7b415e9869157c711fe11263c95d74eDavid Li{
15131591693c7b415e9869157c711fe11263c95d74eDavid Li				   yylval->identifier = strdup(yytext);
15141591693c7b415e9869157c711fe11263c95d74eDavid Li				   return IDENTIFIER;
15151591693c7b415e9869157c711fe11263c95d74eDavid Li				}
15161591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
15171591693c7b415e9869157c711fe11263c95d74eDavid Licase 18:
15181591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
15191591693c7b415e9869157c711fe11263c95d74eDavid Li#line 160 "glsl_lexer.lpp"
15201591693c7b415e9869157c711fe11263c95d74eDavid Li{
15211591693c7b415e9869157c711fe11263c95d74eDavid Li				    yylval->n = strtol(yytext, NULL, 10);
15221591693c7b415e9869157c711fe11263c95d74eDavid Li				    return INTCONSTANT;
15231591693c7b415e9869157c711fe11263c95d74eDavid Li				}
15241591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
15251591693c7b415e9869157c711fe11263c95d74eDavid Licase 19:
15261591693c7b415e9869157c711fe11263c95d74eDavid Li/* rule 19 can match eol */
15271591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
15281591693c7b415e9869157c711fe11263c95d74eDavid Li#line 164 "glsl_lexer.lpp"
15291591693c7b415e9869157c711fe11263c95d74eDavid Li{ BEGIN 0; yylineno++; yycolumn = 0; return EOL; }
15301591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
15311591693c7b415e9869157c711fe11263c95d74eDavid Licase 20:
15321591693c7b415e9869157c711fe11263c95d74eDavid Li/* rule 20 can match eol */
15331591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
15341591693c7b415e9869157c711fe11263c95d74eDavid Li#line 166 "glsl_lexer.lpp"
15351591693c7b415e9869157c711fe11263c95d74eDavid Li{ yylineno++; yycolumn = 0; }
15361591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
15371591693c7b415e9869157c711fe11263c95d74eDavid Licase 21:
15381591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
15391591693c7b415e9869157c711fe11263c95d74eDavid Li#line 168 "glsl_lexer.lpp"
15401591693c7b415e9869157c711fe11263c95d74eDavid Lireturn ATTRIBUTE;
15411591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
15421591693c7b415e9869157c711fe11263c95d74eDavid Licase 22:
15431591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
15441591693c7b415e9869157c711fe11263c95d74eDavid Li#line 169 "glsl_lexer.lpp"
15451591693c7b415e9869157c711fe11263c95d74eDavid Lireturn CONST_TOK;
15461591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
15471591693c7b415e9869157c711fe11263c95d74eDavid Licase 23:
15481591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
15491591693c7b415e9869157c711fe11263c95d74eDavid Li#line 170 "glsl_lexer.lpp"
15501591693c7b415e9869157c711fe11263c95d74eDavid Lireturn BOOL_TOK;
15511591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
15521591693c7b415e9869157c711fe11263c95d74eDavid Licase 24:
15531591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
15541591693c7b415e9869157c711fe11263c95d74eDavid Li#line 171 "glsl_lexer.lpp"
15551591693c7b415e9869157c711fe11263c95d74eDavid Lireturn FLOAT_TOK;
15561591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
15571591693c7b415e9869157c711fe11263c95d74eDavid Licase 25:
15581591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
15591591693c7b415e9869157c711fe11263c95d74eDavid Li#line 172 "glsl_lexer.lpp"
15601591693c7b415e9869157c711fe11263c95d74eDavid Lireturn INT_TOK;
15611591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
15621591693c7b415e9869157c711fe11263c95d74eDavid Licase 26:
15631591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
15641591693c7b415e9869157c711fe11263c95d74eDavid Li#line 173 "glsl_lexer.lpp"
15651591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, UINT_TOK);
15661591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
15671591693c7b415e9869157c711fe11263c95d74eDavid Licase 27:
15681591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
15691591693c7b415e9869157c711fe11263c95d74eDavid Li#line 175 "glsl_lexer.lpp"
15701591693c7b415e9869157c711fe11263c95d74eDavid Lireturn BREAK;
15711591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
15721591693c7b415e9869157c711fe11263c95d74eDavid Licase 28:
15731591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
15741591693c7b415e9869157c711fe11263c95d74eDavid Li#line 176 "glsl_lexer.lpp"
15751591693c7b415e9869157c711fe11263c95d74eDavid Lireturn CONTINUE;
15761591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
15771591693c7b415e9869157c711fe11263c95d74eDavid Licase 29:
15781591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
15791591693c7b415e9869157c711fe11263c95d74eDavid Li#line 177 "glsl_lexer.lpp"
15801591693c7b415e9869157c711fe11263c95d74eDavid Lireturn DO;
15811591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
15821591693c7b415e9869157c711fe11263c95d74eDavid Licase 30:
15831591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
15841591693c7b415e9869157c711fe11263c95d74eDavid Li#line 178 "glsl_lexer.lpp"
15851591693c7b415e9869157c711fe11263c95d74eDavid Lireturn WHILE;
15861591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
15871591693c7b415e9869157c711fe11263c95d74eDavid Licase 31:
15881591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
15891591693c7b415e9869157c711fe11263c95d74eDavid Li#line 179 "glsl_lexer.lpp"
15901591693c7b415e9869157c711fe11263c95d74eDavid Lireturn ELSE;
15911591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
15921591693c7b415e9869157c711fe11263c95d74eDavid Licase 32:
15931591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
15941591693c7b415e9869157c711fe11263c95d74eDavid Li#line 180 "glsl_lexer.lpp"
15951591693c7b415e9869157c711fe11263c95d74eDavid Lireturn FOR;
15961591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
15971591693c7b415e9869157c711fe11263c95d74eDavid Licase 33:
15981591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
15991591693c7b415e9869157c711fe11263c95d74eDavid Li#line 181 "glsl_lexer.lpp"
16001591693c7b415e9869157c711fe11263c95d74eDavid Lireturn IF;
16011591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16021591693c7b415e9869157c711fe11263c95d74eDavid Licase 34:
16031591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16041591693c7b415e9869157c711fe11263c95d74eDavid Li#line 182 "glsl_lexer.lpp"
16051591693c7b415e9869157c711fe11263c95d74eDavid Lireturn DISCARD;
16061591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16071591693c7b415e9869157c711fe11263c95d74eDavid Licase 35:
16081591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16091591693c7b415e9869157c711fe11263c95d74eDavid Li#line 183 "glsl_lexer.lpp"
16101591693c7b415e9869157c711fe11263c95d74eDavid Lireturn RETURN;
16111591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16121591693c7b415e9869157c711fe11263c95d74eDavid Licase 36:
16131591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16141591693c7b415e9869157c711fe11263c95d74eDavid Li#line 185 "glsl_lexer.lpp"
16151591693c7b415e9869157c711fe11263c95d74eDavid Lireturn BVEC2;
16161591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16171591693c7b415e9869157c711fe11263c95d74eDavid Licase 37:
16181591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16191591693c7b415e9869157c711fe11263c95d74eDavid Li#line 186 "glsl_lexer.lpp"
16201591693c7b415e9869157c711fe11263c95d74eDavid Lireturn BVEC3;
16211591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16221591693c7b415e9869157c711fe11263c95d74eDavid Licase 38:
16231591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16241591693c7b415e9869157c711fe11263c95d74eDavid Li#line 187 "glsl_lexer.lpp"
16251591693c7b415e9869157c711fe11263c95d74eDavid Lireturn BVEC4;
16261591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16271591693c7b415e9869157c711fe11263c95d74eDavid Licase 39:
16281591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16291591693c7b415e9869157c711fe11263c95d74eDavid Li#line 188 "glsl_lexer.lpp"
16301591693c7b415e9869157c711fe11263c95d74eDavid Lireturn IVEC2;
16311591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16321591693c7b415e9869157c711fe11263c95d74eDavid Licase 40:
16331591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16341591693c7b415e9869157c711fe11263c95d74eDavid Li#line 189 "glsl_lexer.lpp"
16351591693c7b415e9869157c711fe11263c95d74eDavid Lireturn IVEC3;
16361591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16371591693c7b415e9869157c711fe11263c95d74eDavid Licase 41:
16381591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16391591693c7b415e9869157c711fe11263c95d74eDavid Li#line 190 "glsl_lexer.lpp"
16401591693c7b415e9869157c711fe11263c95d74eDavid Lireturn IVEC4;
16411591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16421591693c7b415e9869157c711fe11263c95d74eDavid Licase 42:
16431591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16441591693c7b415e9869157c711fe11263c95d74eDavid Li#line 191 "glsl_lexer.lpp"
16451591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, UVEC2);
16461591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16471591693c7b415e9869157c711fe11263c95d74eDavid Licase 43:
16481591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16491591693c7b415e9869157c711fe11263c95d74eDavid Li#line 192 "glsl_lexer.lpp"
16501591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, UVEC3);
16511591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16521591693c7b415e9869157c711fe11263c95d74eDavid Licase 44:
16531591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16541591693c7b415e9869157c711fe11263c95d74eDavid Li#line 193 "glsl_lexer.lpp"
16551591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, UVEC4);
16561591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16571591693c7b415e9869157c711fe11263c95d74eDavid Licase 45:
16581591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16591591693c7b415e9869157c711fe11263c95d74eDavid Li#line 194 "glsl_lexer.lpp"
16601591693c7b415e9869157c711fe11263c95d74eDavid Lireturn VEC2;
16611591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16621591693c7b415e9869157c711fe11263c95d74eDavid Licase 46:
16631591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16641591693c7b415e9869157c711fe11263c95d74eDavid Li#line 195 "glsl_lexer.lpp"
16651591693c7b415e9869157c711fe11263c95d74eDavid Lireturn VEC3;
16661591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16671591693c7b415e9869157c711fe11263c95d74eDavid Licase 47:
16681591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16691591693c7b415e9869157c711fe11263c95d74eDavid Li#line 196 "glsl_lexer.lpp"
16701591693c7b415e9869157c711fe11263c95d74eDavid Lireturn VEC4;
16711591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16721591693c7b415e9869157c711fe11263c95d74eDavid Licase 48:
16731591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16741591693c7b415e9869157c711fe11263c95d74eDavid Li#line 197 "glsl_lexer.lpp"
16751591693c7b415e9869157c711fe11263c95d74eDavid Lireturn MAT2X2;
16761591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16771591693c7b415e9869157c711fe11263c95d74eDavid Licase 49:
16781591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16791591693c7b415e9869157c711fe11263c95d74eDavid Li#line 198 "glsl_lexer.lpp"
16801591693c7b415e9869157c711fe11263c95d74eDavid Lireturn MAT3X3;
16811591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16821591693c7b415e9869157c711fe11263c95d74eDavid Licase 50:
16831591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16841591693c7b415e9869157c711fe11263c95d74eDavid Li#line 199 "glsl_lexer.lpp"
16851591693c7b415e9869157c711fe11263c95d74eDavid Lireturn MAT4X4;
16861591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16871591693c7b415e9869157c711fe11263c95d74eDavid Licase 51:
16881591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16891591693c7b415e9869157c711fe11263c95d74eDavid Li#line 200 "glsl_lexer.lpp"
16901591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(120, 120, MAT2X2);
16911591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16921591693c7b415e9869157c711fe11263c95d74eDavid Licase 52:
16931591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16941591693c7b415e9869157c711fe11263c95d74eDavid Li#line 201 "glsl_lexer.lpp"
16951591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(120, 120, MAT2X3);
16961591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
16971591693c7b415e9869157c711fe11263c95d74eDavid Licase 53:
16981591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
16991591693c7b415e9869157c711fe11263c95d74eDavid Li#line 202 "glsl_lexer.lpp"
17001591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(120, 120, MAT2X4);
17011591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17021591693c7b415e9869157c711fe11263c95d74eDavid Licase 54:
17031591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17041591693c7b415e9869157c711fe11263c95d74eDavid Li#line 203 "glsl_lexer.lpp"
17051591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(120, 120, MAT3X2);
17061591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17071591693c7b415e9869157c711fe11263c95d74eDavid Licase 55:
17081591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17091591693c7b415e9869157c711fe11263c95d74eDavid Li#line 204 "glsl_lexer.lpp"
17101591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(120, 120, MAT3X3);
17111591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17121591693c7b415e9869157c711fe11263c95d74eDavid Licase 56:
17131591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17141591693c7b415e9869157c711fe11263c95d74eDavid Li#line 205 "glsl_lexer.lpp"
17151591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(120, 120, MAT3X4);
17161591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17171591693c7b415e9869157c711fe11263c95d74eDavid Licase 57:
17181591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17191591693c7b415e9869157c711fe11263c95d74eDavid Li#line 206 "glsl_lexer.lpp"
17201591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(120, 120, MAT4X2);
17211591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17221591693c7b415e9869157c711fe11263c95d74eDavid Licase 58:
17231591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17241591693c7b415e9869157c711fe11263c95d74eDavid Li#line 207 "glsl_lexer.lpp"
17251591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(120, 120, MAT4X3);
17261591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17271591693c7b415e9869157c711fe11263c95d74eDavid Licase 59:
17281591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17291591693c7b415e9869157c711fe11263c95d74eDavid Li#line 208 "glsl_lexer.lpp"
17301591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(120, 120, MAT4X4);
17311591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17321591693c7b415e9869157c711fe11263c95d74eDavid Licase 60:
17331591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17341591693c7b415e9869157c711fe11263c95d74eDavid Li#line 210 "glsl_lexer.lpp"
17351591693c7b415e9869157c711fe11263c95d74eDavid Lireturn IN_TOK;
17361591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17371591693c7b415e9869157c711fe11263c95d74eDavid Licase 61:
17381591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17391591693c7b415e9869157c711fe11263c95d74eDavid Li#line 211 "glsl_lexer.lpp"
17401591693c7b415e9869157c711fe11263c95d74eDavid Lireturn OUT_TOK;
17411591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17421591693c7b415e9869157c711fe11263c95d74eDavid Licase 62:
17431591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17441591693c7b415e9869157c711fe11263c95d74eDavid Li#line 212 "glsl_lexer.lpp"
17451591693c7b415e9869157c711fe11263c95d74eDavid Lireturn INOUT_TOK;
17461591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17471591693c7b415e9869157c711fe11263c95d74eDavid Licase 63:
17481591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17491591693c7b415e9869157c711fe11263c95d74eDavid Li#line 213 "glsl_lexer.lpp"
17501591693c7b415e9869157c711fe11263c95d74eDavid Lireturn UNIFORM;
17511591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17521591693c7b415e9869157c711fe11263c95d74eDavid Licase 64:
17531591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17541591693c7b415e9869157c711fe11263c95d74eDavid Li#line 214 "glsl_lexer.lpp"
17551591693c7b415e9869157c711fe11263c95d74eDavid Lireturn VARYING;
17561591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17571591693c7b415e9869157c711fe11263c95d74eDavid Licase 65:
17581591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17591591693c7b415e9869157c711fe11263c95d74eDavid Li#line 215 "glsl_lexer.lpp"
17601591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(120, 120, CENTROID);
17611591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17621591693c7b415e9869157c711fe11263c95d74eDavid Licase 66:
17631591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17641591693c7b415e9869157c711fe11263c95d74eDavid Li#line 216 "glsl_lexer.lpp"
17651591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(120 || ES, 120 || ES, INVARIANT);
17661591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17671591693c7b415e9869157c711fe11263c95d74eDavid Licase 67:
17681591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17691591693c7b415e9869157c711fe11263c95d74eDavid Li#line 217 "glsl_lexer.lpp"
17701591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130 || ES, 130, FLAT);
17711591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17721591693c7b415e9869157c711fe11263c95d74eDavid Licase 68:
17731591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17741591693c7b415e9869157c711fe11263c95d74eDavid Li#line 218 "glsl_lexer.lpp"
17751591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, SMOOTH);
17761591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17771591693c7b415e9869157c711fe11263c95d74eDavid Licase 69:
17781591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17791591693c7b415e9869157c711fe11263c95d74eDavid Li#line 219 "glsl_lexer.lpp"
17801591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, NOPERSPECTIVE);
17811591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17821591693c7b415e9869157c711fe11263c95d74eDavid Licase 70:
17831591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17841591693c7b415e9869157c711fe11263c95d74eDavid Li#line 221 "glsl_lexer.lpp"
17851591693c7b415e9869157c711fe11263c95d74eDavid Lireturn SAMPLER1D;
17861591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17871591693c7b415e9869157c711fe11263c95d74eDavid Licase 71:
17881591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17891591693c7b415e9869157c711fe11263c95d74eDavid Li#line 222 "glsl_lexer.lpp"
17901591693c7b415e9869157c711fe11263c95d74eDavid Lireturn SAMPLER2D;
17911591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17921591693c7b415e9869157c711fe11263c95d74eDavid Licase 72:
17931591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17941591693c7b415e9869157c711fe11263c95d74eDavid Li#line 223 "glsl_lexer.lpp"
17951591693c7b415e9869157c711fe11263c95d74eDavid Lireturn SAMPLER3D;
17961591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
17971591693c7b415e9869157c711fe11263c95d74eDavid Licase 73:
17981591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
17991591693c7b415e9869157c711fe11263c95d74eDavid Li#line 224 "glsl_lexer.lpp"
18001591693c7b415e9869157c711fe11263c95d74eDavid Lireturn SAMPLERCUBE;
18011591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18021591693c7b415e9869157c711fe11263c95d74eDavid Licase 74:
18031591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18041591693c7b415e9869157c711fe11263c95d74eDavid Li#line 225 "glsl_lexer.lpp"
18051591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, SAMPLER1DARRAY);
18061591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18071591693c7b415e9869157c711fe11263c95d74eDavid Licase 75:
18081591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18091591693c7b415e9869157c711fe11263c95d74eDavid Li#line 226 "glsl_lexer.lpp"
18101591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, SAMPLER2DARRAY);
18111591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18121591693c7b415e9869157c711fe11263c95d74eDavid Licase 76:
18131591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18141591693c7b415e9869157c711fe11263c95d74eDavid Li#line 227 "glsl_lexer.lpp"
18151591693c7b415e9869157c711fe11263c95d74eDavid Lireturn SAMPLER1DSHADOW;
18161591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18171591693c7b415e9869157c711fe11263c95d74eDavid Licase 77:
18181591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18191591693c7b415e9869157c711fe11263c95d74eDavid Li#line 228 "glsl_lexer.lpp"
18201591693c7b415e9869157c711fe11263c95d74eDavid Lireturn SAMPLER2DSHADOW;
18211591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18221591693c7b415e9869157c711fe11263c95d74eDavid Licase 78:
18231591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18241591693c7b415e9869157c711fe11263c95d74eDavid Li#line 229 "glsl_lexer.lpp"
18251591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, SAMPLERCUBESHADOW);
18261591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18271591693c7b415e9869157c711fe11263c95d74eDavid Licase 79:
18281591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18291591693c7b415e9869157c711fe11263c95d74eDavid Li#line 230 "glsl_lexer.lpp"
18301591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, SAMPLER1DARRAYSHADOW);
18311591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18321591693c7b415e9869157c711fe11263c95d74eDavid Licase 80:
18331591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18341591693c7b415e9869157c711fe11263c95d74eDavid Li#line 231 "glsl_lexer.lpp"
18351591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, SAMPLER2DARRAYSHADOW);
18361591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18371591693c7b415e9869157c711fe11263c95d74eDavid Licase 81:
18381591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18391591693c7b415e9869157c711fe11263c95d74eDavid Li#line 232 "glsl_lexer.lpp"
18401591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, ISAMPLER1D);
18411591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18421591693c7b415e9869157c711fe11263c95d74eDavid Licase 82:
18431591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18441591693c7b415e9869157c711fe11263c95d74eDavid Li#line 233 "glsl_lexer.lpp"
18451591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, ISAMPLER2D);
18461591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18471591693c7b415e9869157c711fe11263c95d74eDavid Licase 83:
18481591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18491591693c7b415e9869157c711fe11263c95d74eDavid Li#line 234 "glsl_lexer.lpp"
18501591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, ISAMPLER3D);
18511591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18521591693c7b415e9869157c711fe11263c95d74eDavid Licase 84:
18531591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18541591693c7b415e9869157c711fe11263c95d74eDavid Li#line 235 "glsl_lexer.lpp"
18551591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, ISAMPLERCUBE);
18561591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18571591693c7b415e9869157c711fe11263c95d74eDavid Licase 85:
18581591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18591591693c7b415e9869157c711fe11263c95d74eDavid Li#line 236 "glsl_lexer.lpp"
18601591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, ISAMPLER1DARRAY);
18611591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18621591693c7b415e9869157c711fe11263c95d74eDavid Licase 86:
18631591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18641591693c7b415e9869157c711fe11263c95d74eDavid Li#line 237 "glsl_lexer.lpp"
18651591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, ISAMPLER2DARRAY);
18661591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18671591693c7b415e9869157c711fe11263c95d74eDavid Licase 87:
18681591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18691591693c7b415e9869157c711fe11263c95d74eDavid Li#line 238 "glsl_lexer.lpp"
18701591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, USAMPLER1D);
18711591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18721591693c7b415e9869157c711fe11263c95d74eDavid Licase 88:
18731591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18741591693c7b415e9869157c711fe11263c95d74eDavid Li#line 239 "glsl_lexer.lpp"
18751591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, USAMPLER2D);
18761591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18771591693c7b415e9869157c711fe11263c95d74eDavid Licase 89:
18781591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18791591693c7b415e9869157c711fe11263c95d74eDavid Li#line 240 "glsl_lexer.lpp"
18801591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, USAMPLER3D);
18811591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18821591693c7b415e9869157c711fe11263c95d74eDavid Licase 90:
18831591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18841591693c7b415e9869157c711fe11263c95d74eDavid Li#line 241 "glsl_lexer.lpp"
18851591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, USAMPLERCUBE);
18861591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18871591693c7b415e9869157c711fe11263c95d74eDavid Licase 91:
18881591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18891591693c7b415e9869157c711fe11263c95d74eDavid Li#line 242 "glsl_lexer.lpp"
18901591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, USAMPLER1DARRAY);
18911591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18921591693c7b415e9869157c711fe11263c95d74eDavid Licase 92:
18931591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18941591693c7b415e9869157c711fe11263c95d74eDavid Li#line 243 "glsl_lexer.lpp"
18951591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, USAMPLER2DARRAY);
18961591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
18971591693c7b415e9869157c711fe11263c95d74eDavid Licase 93:
18981591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
18991591693c7b415e9869157c711fe11263c95d74eDavid Li#line 246 "glsl_lexer.lpp"
19001591693c7b415e9869157c711fe11263c95d74eDavid Lireturn STRUCT;
19011591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
19021591693c7b415e9869157c711fe11263c95d74eDavid Licase 94:
19031591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
19041591693c7b415e9869157c711fe11263c95d74eDavid Li#line 247 "glsl_lexer.lpp"
19051591693c7b415e9869157c711fe11263c95d74eDavid Lireturn VOID_TOK;
19061591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
19071591693c7b415e9869157c711fe11263c95d74eDavid Licase 95:
19081591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
19091591693c7b415e9869157c711fe11263c95d74eDavid Li#line 249 "glsl_lexer.lpp"
19101591693c7b415e9869157c711fe11263c95d74eDavid Li{
19111591693c7b415e9869157c711fe11263c95d74eDavid Li		  if ((yyextra->language_version >= 140)
19121591693c7b415e9869157c711fe11263c95d74eDavid Li		      || yyextra->ARB_explicit_attrib_location_enable
19131591693c7b415e9869157c711fe11263c95d74eDavid Li		      || (yyextra->ARB_fragment_coord_conventions_enable)){
19141591693c7b415e9869157c711fe11263c95d74eDavid Li		      return LAYOUT_TOK;
19151591693c7b415e9869157c711fe11263c95d74eDavid Li		   } else {
19161591693c7b415e9869157c711fe11263c95d74eDavid Li		      yylval->identifier = strdup(yytext);
19171591693c7b415e9869157c711fe11263c95d74eDavid Li		      return IDENTIFIER;
19181591693c7b415e9869157c711fe11263c95d74eDavid Li		   }
19191591693c7b415e9869157c711fe11263c95d74eDavid Li		}
19201591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
19211591693c7b415e9869157c711fe11263c95d74eDavid Licase 96:
19221591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
19231591693c7b415e9869157c711fe11263c95d74eDavid Li#line 260 "glsl_lexer.lpp"
19241591693c7b415e9869157c711fe11263c95d74eDavid Lireturn INC_OP;
19251591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
19261591693c7b415e9869157c711fe11263c95d74eDavid Licase 97:
19271591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
19281591693c7b415e9869157c711fe11263c95d74eDavid Li#line 261 "glsl_lexer.lpp"
19291591693c7b415e9869157c711fe11263c95d74eDavid Lireturn DEC_OP;
19301591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
19311591693c7b415e9869157c711fe11263c95d74eDavid Licase 98:
19321591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
19331591693c7b415e9869157c711fe11263c95d74eDavid Li#line 262 "glsl_lexer.lpp"
19341591693c7b415e9869157c711fe11263c95d74eDavid Lireturn LE_OP;
19351591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
19361591693c7b415e9869157c711fe11263c95d74eDavid Licase 99:
19371591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
19381591693c7b415e9869157c711fe11263c95d74eDavid Li#line 263 "glsl_lexer.lpp"
19391591693c7b415e9869157c711fe11263c95d74eDavid Lireturn GE_OP;
19401591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
19411591693c7b415e9869157c711fe11263c95d74eDavid Licase 100:
19421591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
19431591693c7b415e9869157c711fe11263c95d74eDavid Li#line 264 "glsl_lexer.lpp"
19441591693c7b415e9869157c711fe11263c95d74eDavid Lireturn EQ_OP;
19451591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
19461591693c7b415e9869157c711fe11263c95d74eDavid Licase 101:
19471591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
19481591693c7b415e9869157c711fe11263c95d74eDavid Li#line 265 "glsl_lexer.lpp"
19491591693c7b415e9869157c711fe11263c95d74eDavid Lireturn NE_OP;
19501591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
19511591693c7b415e9869157c711fe11263c95d74eDavid Licase 102:
19521591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
19531591693c7b415e9869157c711fe11263c95d74eDavid Li#line 266 "glsl_lexer.lpp"
19541591693c7b415e9869157c711fe11263c95d74eDavid Lireturn AND_OP;
19551591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
19561591693c7b415e9869157c711fe11263c95d74eDavid Licase 103:
19571591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
19581591693c7b415e9869157c711fe11263c95d74eDavid Li#line 267 "glsl_lexer.lpp"
19591591693c7b415e9869157c711fe11263c95d74eDavid Lireturn OR_OP;
19601591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
19611591693c7b415e9869157c711fe11263c95d74eDavid Licase 104:
19621591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
19631591693c7b415e9869157c711fe11263c95d74eDavid Li#line 268 "glsl_lexer.lpp"
19641591693c7b415e9869157c711fe11263c95d74eDavid Lireturn XOR_OP;
19651591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
19661591693c7b415e9869157c711fe11263c95d74eDavid Licase 105:
19671591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
19681591693c7b415e9869157c711fe11263c95d74eDavid Li#line 269 "glsl_lexer.lpp"
19691591693c7b415e9869157c711fe11263c95d74eDavid Lireturn LEFT_OP;
19701591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
19711591693c7b415e9869157c711fe11263c95d74eDavid Licase 106:
19721591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
19731591693c7b415e9869157c711fe11263c95d74eDavid Li#line 270 "glsl_lexer.lpp"
19741591693c7b415e9869157c711fe11263c95d74eDavid Lireturn RIGHT_OP;
19751591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
19761591693c7b415e9869157c711fe11263c95d74eDavid Licase 107:
19771591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
19781591693c7b415e9869157c711fe11263c95d74eDavid Li#line 272 "glsl_lexer.lpp"
19791591693c7b415e9869157c711fe11263c95d74eDavid Lireturn MUL_ASSIGN;
19801591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
19811591693c7b415e9869157c711fe11263c95d74eDavid Licase 108:
19821591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
19831591693c7b415e9869157c711fe11263c95d74eDavid Li#line 273 "glsl_lexer.lpp"
19841591693c7b415e9869157c711fe11263c95d74eDavid Lireturn DIV_ASSIGN;
19851591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
19861591693c7b415e9869157c711fe11263c95d74eDavid Licase 109:
19871591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
19881591693c7b415e9869157c711fe11263c95d74eDavid Li#line 274 "glsl_lexer.lpp"
19891591693c7b415e9869157c711fe11263c95d74eDavid Lireturn ADD_ASSIGN;
19901591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
19911591693c7b415e9869157c711fe11263c95d74eDavid Licase 110:
19921591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
19931591693c7b415e9869157c711fe11263c95d74eDavid Li#line 275 "glsl_lexer.lpp"
19941591693c7b415e9869157c711fe11263c95d74eDavid Lireturn MOD_ASSIGN;
19951591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
19961591693c7b415e9869157c711fe11263c95d74eDavid Licase 111:
19971591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
19981591693c7b415e9869157c711fe11263c95d74eDavid Li#line 276 "glsl_lexer.lpp"
19991591693c7b415e9869157c711fe11263c95d74eDavid Lireturn LEFT_ASSIGN;
20001591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
20011591693c7b415e9869157c711fe11263c95d74eDavid Licase 112:
20021591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
20031591693c7b415e9869157c711fe11263c95d74eDavid Li#line 277 "glsl_lexer.lpp"
20041591693c7b415e9869157c711fe11263c95d74eDavid Lireturn RIGHT_ASSIGN;
20051591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
20061591693c7b415e9869157c711fe11263c95d74eDavid Licase 113:
20071591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
20081591693c7b415e9869157c711fe11263c95d74eDavid Li#line 278 "glsl_lexer.lpp"
20091591693c7b415e9869157c711fe11263c95d74eDavid Lireturn AND_ASSIGN;
20101591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
20111591693c7b415e9869157c711fe11263c95d74eDavid Licase 114:
20121591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
20131591693c7b415e9869157c711fe11263c95d74eDavid Li#line 279 "glsl_lexer.lpp"
20141591693c7b415e9869157c711fe11263c95d74eDavid Lireturn XOR_ASSIGN;
20151591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
20161591693c7b415e9869157c711fe11263c95d74eDavid Licase 115:
20171591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
20181591693c7b415e9869157c711fe11263c95d74eDavid Li#line 280 "glsl_lexer.lpp"
20191591693c7b415e9869157c711fe11263c95d74eDavid Lireturn OR_ASSIGN;
20201591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
20211591693c7b415e9869157c711fe11263c95d74eDavid Licase 116:
20221591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
20231591693c7b415e9869157c711fe11263c95d74eDavid Li#line 281 "glsl_lexer.lpp"
20241591693c7b415e9869157c711fe11263c95d74eDavid Lireturn SUB_ASSIGN;
20251591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
20261591693c7b415e9869157c711fe11263c95d74eDavid Licase 117:
20271591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
20281591693c7b415e9869157c711fe11263c95d74eDavid Li#line 283 "glsl_lexer.lpp"
20291591693c7b415e9869157c711fe11263c95d74eDavid Li{
20301591693c7b415e9869157c711fe11263c95d74eDavid Li			    yylval->n = strtol(yytext, NULL, 10);
20311591693c7b415e9869157c711fe11263c95d74eDavid Li			    return IS_UINT ? UINTCONSTANT : INTCONSTANT;
20321591693c7b415e9869157c711fe11263c95d74eDavid Li			}
20331591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
20341591693c7b415e9869157c711fe11263c95d74eDavid Licase 118:
20351591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
20361591693c7b415e9869157c711fe11263c95d74eDavid Li#line 287 "glsl_lexer.lpp"
20371591693c7b415e9869157c711fe11263c95d74eDavid Li{
20381591693c7b415e9869157c711fe11263c95d74eDavid Li			    yylval->n = strtol(yytext + 2, NULL, 16);
20391591693c7b415e9869157c711fe11263c95d74eDavid Li			    return IS_UINT ? UINTCONSTANT : INTCONSTANT;
20401591693c7b415e9869157c711fe11263c95d74eDavid Li			}
20411591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
20421591693c7b415e9869157c711fe11263c95d74eDavid Licase 119:
20431591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
20441591693c7b415e9869157c711fe11263c95d74eDavid Li#line 291 "glsl_lexer.lpp"
20451591693c7b415e9869157c711fe11263c95d74eDavid Li{
20461591693c7b415e9869157c711fe11263c95d74eDavid Li			    yylval->n = strtol(yytext, NULL, 8);
20471591693c7b415e9869157c711fe11263c95d74eDavid Li			    return IS_UINT ? UINTCONSTANT : INTCONSTANT;
20481591693c7b415e9869157c711fe11263c95d74eDavid Li			}
20491591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
20501591693c7b415e9869157c711fe11263c95d74eDavid Licase 120:
20511591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
20521591693c7b415e9869157c711fe11263c95d74eDavid Li#line 296 "glsl_lexer.lpp"
20531591693c7b415e9869157c711fe11263c95d74eDavid Li{
20541591693c7b415e9869157c711fe11263c95d74eDavid Li			    yylval->real = glsl_strtod(yytext, NULL);
20551591693c7b415e9869157c711fe11263c95d74eDavid Li			    return FLOATCONSTANT;
20561591693c7b415e9869157c711fe11263c95d74eDavid Li			}
20571591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
20581591693c7b415e9869157c711fe11263c95d74eDavid Licase 121:
20591591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
20601591693c7b415e9869157c711fe11263c95d74eDavid Li#line 300 "glsl_lexer.lpp"
20611591693c7b415e9869157c711fe11263c95d74eDavid Li{
20621591693c7b415e9869157c711fe11263c95d74eDavid Li			    yylval->real = glsl_strtod(yytext, NULL);
20631591693c7b415e9869157c711fe11263c95d74eDavid Li			    return FLOATCONSTANT;
20641591693c7b415e9869157c711fe11263c95d74eDavid Li			}
20651591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
20661591693c7b415e9869157c711fe11263c95d74eDavid Licase 122:
20671591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
20681591693c7b415e9869157c711fe11263c95d74eDavid Li#line 304 "glsl_lexer.lpp"
20691591693c7b415e9869157c711fe11263c95d74eDavid Li{
20701591693c7b415e9869157c711fe11263c95d74eDavid Li			    yylval->real = glsl_strtod(yytext, NULL);
20711591693c7b415e9869157c711fe11263c95d74eDavid Li			    return FLOATCONSTANT;
20721591693c7b415e9869157c711fe11263c95d74eDavid Li			}
20731591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
20741591693c7b415e9869157c711fe11263c95d74eDavid Licase 123:
20751591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
20761591693c7b415e9869157c711fe11263c95d74eDavid Li#line 308 "glsl_lexer.lpp"
20771591693c7b415e9869157c711fe11263c95d74eDavid Li{
20781591693c7b415e9869157c711fe11263c95d74eDavid Li			    yylval->real = glsl_strtod(yytext, NULL);
20791591693c7b415e9869157c711fe11263c95d74eDavid Li			    return FLOATCONSTANT;
20801591693c7b415e9869157c711fe11263c95d74eDavid Li			}
20811591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
20821591693c7b415e9869157c711fe11263c95d74eDavid Licase 124:
20831591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
20841591693c7b415e9869157c711fe11263c95d74eDavid Li#line 312 "glsl_lexer.lpp"
20851591693c7b415e9869157c711fe11263c95d74eDavid Li{
20861591693c7b415e9869157c711fe11263c95d74eDavid Li			    yylval->real = glsl_strtod(yytext, NULL);
20871591693c7b415e9869157c711fe11263c95d74eDavid Li			    return FLOATCONSTANT;
20881591693c7b415e9869157c711fe11263c95d74eDavid Li			}
20891591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
20901591693c7b415e9869157c711fe11263c95d74eDavid Licase 125:
20911591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
20921591693c7b415e9869157c711fe11263c95d74eDavid Li#line 317 "glsl_lexer.lpp"
20931591693c7b415e9869157c711fe11263c95d74eDavid Li{
20941591693c7b415e9869157c711fe11263c95d74eDavid Li			    yylval->n = 1;
20951591693c7b415e9869157c711fe11263c95d74eDavid Li			    return BOOLCONSTANT;
20961591693c7b415e9869157c711fe11263c95d74eDavid Li			}
20971591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
20981591693c7b415e9869157c711fe11263c95d74eDavid Licase 126:
20991591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21001591693c7b415e9869157c711fe11263c95d74eDavid Li#line 321 "glsl_lexer.lpp"
21011591693c7b415e9869157c711fe11263c95d74eDavid Li{
21021591693c7b415e9869157c711fe11263c95d74eDavid Li			    yylval->n = 0;
21031591693c7b415e9869157c711fe11263c95d74eDavid Li			    return BOOLCONSTANT;
21041591693c7b415e9869157c711fe11263c95d74eDavid Li			}
21051591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
21061591693c7b415e9869157c711fe11263c95d74eDavid Li/* Reserved words in GLSL 1.10. */
21071591693c7b415e9869157c711fe11263c95d74eDavid Licase 127:
21081591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21091591693c7b415e9869157c711fe11263c95d74eDavid Li#line 328 "glsl_lexer.lpp"
21101591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, ASM);
21111591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
21121591693c7b415e9869157c711fe11263c95d74eDavid Licase 128:
21131591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21141591693c7b415e9869157c711fe11263c95d74eDavid Li#line 329 "glsl_lexer.lpp"
21151591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, CLASS);
21161591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
21171591693c7b415e9869157c711fe11263c95d74eDavid Licase 129:
21181591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21191591693c7b415e9869157c711fe11263c95d74eDavid Li#line 330 "glsl_lexer.lpp"
21201591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, UNION);
21211591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
21221591693c7b415e9869157c711fe11263c95d74eDavid Licase 130:
21231591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21241591693c7b415e9869157c711fe11263c95d74eDavid Li#line 331 "glsl_lexer.lpp"
21251591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, ENUM);
21261591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
21271591693c7b415e9869157c711fe11263c95d74eDavid Licase 131:
21281591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21291591693c7b415e9869157c711fe11263c95d74eDavid Li#line 332 "glsl_lexer.lpp"
21301591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, TYPEDEF);
21311591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
21321591693c7b415e9869157c711fe11263c95d74eDavid Licase 132:
21331591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21341591693c7b415e9869157c711fe11263c95d74eDavid Li#line 333 "glsl_lexer.lpp"
21351591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, TEMPLATE);
21361591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
21371591693c7b415e9869157c711fe11263c95d74eDavid Licase 133:
21381591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21391591693c7b415e9869157c711fe11263c95d74eDavid Li#line 334 "glsl_lexer.lpp"
21401591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, THIS);
21411591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
21421591693c7b415e9869157c711fe11263c95d74eDavid Licase 134:
21431591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21441591693c7b415e9869157c711fe11263c95d74eDavid Li#line 335 "glsl_lexer.lpp"
21451591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, PACKED_TOK);
21461591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
21471591693c7b415e9869157c711fe11263c95d74eDavid Licase 135:
21481591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21491591693c7b415e9869157c711fe11263c95d74eDavid Li#line 336 "glsl_lexer.lpp"
21501591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, GOTO);
21511591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
21521591693c7b415e9869157c711fe11263c95d74eDavid Licase 136:
21531591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21541591693c7b415e9869157c711fe11263c95d74eDavid Li#line 337 "glsl_lexer.lpp"
21551591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 130, SWITCH);
21561591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
21571591693c7b415e9869157c711fe11263c95d74eDavid Licase 137:
21581591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21591591693c7b415e9869157c711fe11263c95d74eDavid Li#line 338 "glsl_lexer.lpp"
21601591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 130, DEFAULT);
21611591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
21621591693c7b415e9869157c711fe11263c95d74eDavid Licase 138:
21631591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21641591693c7b415e9869157c711fe11263c95d74eDavid Li#line 339 "glsl_lexer.lpp"
21651591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, INLINE_TOK);
21661591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
21671591693c7b415e9869157c711fe11263c95d74eDavid Licase 139:
21681591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21691591693c7b415e9869157c711fe11263c95d74eDavid Li#line 340 "glsl_lexer.lpp"
21701591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, NOINLINE);
21711591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
21721591693c7b415e9869157c711fe11263c95d74eDavid Licase 140:
21731591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21741591693c7b415e9869157c711fe11263c95d74eDavid Li#line 341 "glsl_lexer.lpp"
21751591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, VOLATILE);
21761591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
21771591693c7b415e9869157c711fe11263c95d74eDavid Licase 141:
21781591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21791591693c7b415e9869157c711fe11263c95d74eDavid Li#line 342 "glsl_lexer.lpp"
21801591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, PUBLIC_TOK);
21811591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
21821591693c7b415e9869157c711fe11263c95d74eDavid Licase 142:
21831591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21841591693c7b415e9869157c711fe11263c95d74eDavid Li#line 343 "glsl_lexer.lpp"
21851591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, STATIC);
21861591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
21871591693c7b415e9869157c711fe11263c95d74eDavid Licase 143:
21881591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21891591693c7b415e9869157c711fe11263c95d74eDavid Li#line 344 "glsl_lexer.lpp"
21901591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, EXTERN);
21911591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
21921591693c7b415e9869157c711fe11263c95d74eDavid Licase 144:
21931591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21941591693c7b415e9869157c711fe11263c95d74eDavid Li#line 345 "glsl_lexer.lpp"
21951591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, EXTERNAL);
21961591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
21971591693c7b415e9869157c711fe11263c95d74eDavid Licase 145:
21981591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
21991591693c7b415e9869157c711fe11263c95d74eDavid Li#line 346 "glsl_lexer.lpp"
22001591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, INTERFACE);
22011591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22021591693c7b415e9869157c711fe11263c95d74eDavid Licase 146:
22031591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22041591693c7b415e9869157c711fe11263c95d74eDavid Li#line 347 "glsl_lexer.lpp"
22051591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, LONG_TOK);
22061591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22071591693c7b415e9869157c711fe11263c95d74eDavid Licase 147:
22081591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22091591693c7b415e9869157c711fe11263c95d74eDavid Li#line 348 "glsl_lexer.lpp"
22101591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, SHORT_TOK);
22111591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22121591693c7b415e9869157c711fe11263c95d74eDavid Licase 148:
22131591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22141591693c7b415e9869157c711fe11263c95d74eDavid Li#line 349 "glsl_lexer.lpp"
22151591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 400, DOUBLE_TOK);
22161591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22171591693c7b415e9869157c711fe11263c95d74eDavid Licase 149:
22181591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22191591693c7b415e9869157c711fe11263c95d74eDavid Li#line 350 "glsl_lexer.lpp"
22201591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, HALF);
22211591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22221591693c7b415e9869157c711fe11263c95d74eDavid Licase 150:
22231591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22241591693c7b415e9869157c711fe11263c95d74eDavid Li#line 351 "glsl_lexer.lpp"
22251591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, FIXED_TOK);
22261591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22271591693c7b415e9869157c711fe11263c95d74eDavid Licase 151:
22281591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22291591693c7b415e9869157c711fe11263c95d74eDavid Li#line 352 "glsl_lexer.lpp"
22301591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, UNSIGNED);
22311591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22321591693c7b415e9869157c711fe11263c95d74eDavid Licase 152:
22331591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22341591693c7b415e9869157c711fe11263c95d74eDavid Li#line 353 "glsl_lexer.lpp"
22351591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, INPUT_TOK);
22361591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22371591693c7b415e9869157c711fe11263c95d74eDavid Licase 153:
22381591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22391591693c7b415e9869157c711fe11263c95d74eDavid Li#line 354 "glsl_lexer.lpp"
22401591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, OUTPUT);
22411591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22421591693c7b415e9869157c711fe11263c95d74eDavid Licase 154:
22431591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22441591693c7b415e9869157c711fe11263c95d74eDavid Li#line 355 "glsl_lexer.lpp"
22451591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, HVEC2);
22461591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22471591693c7b415e9869157c711fe11263c95d74eDavid Licase 155:
22481591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22491591693c7b415e9869157c711fe11263c95d74eDavid Li#line 356 "glsl_lexer.lpp"
22501591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, HVEC3);
22511591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22521591693c7b415e9869157c711fe11263c95d74eDavid Licase 156:
22531591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22541591693c7b415e9869157c711fe11263c95d74eDavid Li#line 357 "glsl_lexer.lpp"
22551591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, HVEC4);
22561591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22571591693c7b415e9869157c711fe11263c95d74eDavid Licase 157:
22581591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22591591693c7b415e9869157c711fe11263c95d74eDavid Li#line 358 "glsl_lexer.lpp"
22601591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 400, DVEC2);
22611591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22621591693c7b415e9869157c711fe11263c95d74eDavid Licase 158:
22631591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22641591693c7b415e9869157c711fe11263c95d74eDavid Li#line 359 "glsl_lexer.lpp"
22651591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 400, DVEC3);
22661591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22671591693c7b415e9869157c711fe11263c95d74eDavid Licase 159:
22681591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22691591693c7b415e9869157c711fe11263c95d74eDavid Li#line 360 "glsl_lexer.lpp"
22701591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 400, DVEC4);
22711591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22721591693c7b415e9869157c711fe11263c95d74eDavid Licase 160:
22731591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22741591693c7b415e9869157c711fe11263c95d74eDavid Li#line 361 "glsl_lexer.lpp"
22751591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, FVEC2);
22761591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22771591693c7b415e9869157c711fe11263c95d74eDavid Licase 161:
22781591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22791591693c7b415e9869157c711fe11263c95d74eDavid Li#line 362 "glsl_lexer.lpp"
22801591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, FVEC3);
22811591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22821591693c7b415e9869157c711fe11263c95d74eDavid Licase 162:
22831591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22841591693c7b415e9869157c711fe11263c95d74eDavid Li#line 363 "glsl_lexer.lpp"
22851591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, FVEC4);
22861591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22871591693c7b415e9869157c711fe11263c95d74eDavid Licase 163:
22881591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22891591693c7b415e9869157c711fe11263c95d74eDavid Li#line 364 "glsl_lexer.lpp"
22901591693c7b415e9869157c711fe11263c95d74eDavid Lireturn SAMPLER2DRECT;
22911591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22921591693c7b415e9869157c711fe11263c95d74eDavid Licase 164:
22931591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22941591693c7b415e9869157c711fe11263c95d74eDavid Li#line 365 "glsl_lexer.lpp"
22951591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, SAMPLER3DRECT);
22961591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
22971591693c7b415e9869157c711fe11263c95d74eDavid Licase 165:
22981591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
22991591693c7b415e9869157c711fe11263c95d74eDavid Li#line 366 "glsl_lexer.lpp"
23001591693c7b415e9869157c711fe11263c95d74eDavid Lireturn SAMPLER2DRECTSHADOW;
23011591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23021591693c7b415e9869157c711fe11263c95d74eDavid Licase 166:
23031591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
23041591693c7b415e9869157c711fe11263c95d74eDavid Li#line 367 "glsl_lexer.lpp"
23051591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, SIZEOF);
23061591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23071591693c7b415e9869157c711fe11263c95d74eDavid Licase 167:
23081591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
23091591693c7b415e9869157c711fe11263c95d74eDavid Li#line 368 "glsl_lexer.lpp"
23101591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, CAST);
23111591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23121591693c7b415e9869157c711fe11263c95d74eDavid Licase 168:
23131591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
23141591693c7b415e9869157c711fe11263c95d74eDavid Li#line 369 "glsl_lexer.lpp"
23151591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, NAMESPACE);
23161591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23171591693c7b415e9869157c711fe11263c95d74eDavid Licase 169:
23181591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
23191591693c7b415e9869157c711fe11263c95d74eDavid Li#line 370 "glsl_lexer.lpp"
23201591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(110 || ES, 999, USING);
23211591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23221591693c7b415e9869157c711fe11263c95d74eDavid Li/* Additional reserved words in GLSL 1.20. */
23231591693c7b415e9869157c711fe11263c95d74eDavid Licase 170:
23241591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
23251591693c7b415e9869157c711fe11263c95d74eDavid Li#line 373 "glsl_lexer.lpp"
23261591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(120, 130 || ES, LOWP);
23271591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23281591693c7b415e9869157c711fe11263c95d74eDavid Licase 171:
23291591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
23301591693c7b415e9869157c711fe11263c95d74eDavid Li#line 374 "glsl_lexer.lpp"
23311591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(120, 130 || ES, MEDIUMP);
23321591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23331591693c7b415e9869157c711fe11263c95d74eDavid Licase 172:
23341591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
23351591693c7b415e9869157c711fe11263c95d74eDavid Li#line 375 "glsl_lexer.lpp"
23361591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(120, 130 || ES, HIGHP);
23371591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23381591693c7b415e9869157c711fe11263c95d74eDavid Licase 173:
23391591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
23401591693c7b415e9869157c711fe11263c95d74eDavid Li#line 376 "glsl_lexer.lpp"
23411591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(120, 130 || ES, PRECISION);
23421591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23431591693c7b415e9869157c711fe11263c95d74eDavid Li/* Additional reserved words in GLSL 1.30. */
23441591693c7b415e9869157c711fe11263c95d74eDavid Licase 174:
23451591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
23461591693c7b415e9869157c711fe11263c95d74eDavid Li#line 379 "glsl_lexer.lpp"
23471591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 130, CASE);
23481591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23491591693c7b415e9869157c711fe11263c95d74eDavid Licase 175:
23501591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
23511591693c7b415e9869157c711fe11263c95d74eDavid Li#line 380 "glsl_lexer.lpp"
23521591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, COMMON);
23531591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23541591693c7b415e9869157c711fe11263c95d74eDavid Licase 176:
23551591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
23561591693c7b415e9869157c711fe11263c95d74eDavid Li#line 381 "glsl_lexer.lpp"
23571591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, PARTITION);
23581591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23591591693c7b415e9869157c711fe11263c95d74eDavid Licase 177:
23601591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
23611591693c7b415e9869157c711fe11263c95d74eDavid Li#line 382 "glsl_lexer.lpp"
23621591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, ACTIVE);
23631591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23641591693c7b415e9869157c711fe11263c95d74eDavid Licase 178:
23651591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
23661591693c7b415e9869157c711fe11263c95d74eDavid Li#line 383 "glsl_lexer.lpp"
23671591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130 || ES, 999, SUPERP);
23681591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23691591693c7b415e9869157c711fe11263c95d74eDavid Licase 179:
23701591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
23711591693c7b415e9869157c711fe11263c95d74eDavid Li#line 384 "glsl_lexer.lpp"
23721591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 140, SAMPLERBUFFER);
23731591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23741591693c7b415e9869157c711fe11263c95d74eDavid Licase 180:
23751591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
23761591693c7b415e9869157c711fe11263c95d74eDavid Li#line 385 "glsl_lexer.lpp"
23771591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, FILTER);
23781591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23791591693c7b415e9869157c711fe11263c95d74eDavid Licase 181:
23801591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
23811591693c7b415e9869157c711fe11263c95d74eDavid Li#line 386 "glsl_lexer.lpp"
23821591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, IMAGE1D);
23831591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23841591693c7b415e9869157c711fe11263c95d74eDavid Licase 182:
23851591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
23861591693c7b415e9869157c711fe11263c95d74eDavid Li#line 387 "glsl_lexer.lpp"
23871591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, IMAGE2D);
23881591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23891591693c7b415e9869157c711fe11263c95d74eDavid Licase 183:
23901591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
23911591693c7b415e9869157c711fe11263c95d74eDavid Li#line 388 "glsl_lexer.lpp"
23921591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, IMAGE3D);
23931591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23941591693c7b415e9869157c711fe11263c95d74eDavid Licase 184:
23951591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
23961591693c7b415e9869157c711fe11263c95d74eDavid Li#line 389 "glsl_lexer.lpp"
23971591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, IMAGECUBE);
23981591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
23991591693c7b415e9869157c711fe11263c95d74eDavid Licase 185:
24001591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24011591693c7b415e9869157c711fe11263c95d74eDavid Li#line 390 "glsl_lexer.lpp"
24021591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, IIMAGE1D);
24031591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24041591693c7b415e9869157c711fe11263c95d74eDavid Licase 186:
24051591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24061591693c7b415e9869157c711fe11263c95d74eDavid Li#line 391 "glsl_lexer.lpp"
24071591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, IIMAGE2D);
24081591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24091591693c7b415e9869157c711fe11263c95d74eDavid Licase 187:
24101591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24111591693c7b415e9869157c711fe11263c95d74eDavid Li#line 392 "glsl_lexer.lpp"
24121591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, IIMAGE3D);
24131591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24141591693c7b415e9869157c711fe11263c95d74eDavid Licase 188:
24151591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24161591693c7b415e9869157c711fe11263c95d74eDavid Li#line 393 "glsl_lexer.lpp"
24171591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, IIMAGECUBE);
24181591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24191591693c7b415e9869157c711fe11263c95d74eDavid Licase 189:
24201591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24211591693c7b415e9869157c711fe11263c95d74eDavid Li#line 394 "glsl_lexer.lpp"
24221591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, UIMAGE1D);
24231591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24241591693c7b415e9869157c711fe11263c95d74eDavid Licase 190:
24251591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24261591693c7b415e9869157c711fe11263c95d74eDavid Li#line 395 "glsl_lexer.lpp"
24271591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, UIMAGE2D);
24281591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24291591693c7b415e9869157c711fe11263c95d74eDavid Licase 191:
24301591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24311591693c7b415e9869157c711fe11263c95d74eDavid Li#line 396 "glsl_lexer.lpp"
24321591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, UIMAGE3D);
24331591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24341591693c7b415e9869157c711fe11263c95d74eDavid Licase 192:
24351591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24361591693c7b415e9869157c711fe11263c95d74eDavid Li#line 397 "glsl_lexer.lpp"
24371591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, UIMAGECUBE);
24381591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24391591693c7b415e9869157c711fe11263c95d74eDavid Licase 193:
24401591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24411591693c7b415e9869157c711fe11263c95d74eDavid Li#line 398 "glsl_lexer.lpp"
24421591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, IMAGE1DARRAY);
24431591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24441591693c7b415e9869157c711fe11263c95d74eDavid Licase 194:
24451591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24461591693c7b415e9869157c711fe11263c95d74eDavid Li#line 399 "glsl_lexer.lpp"
24471591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, IMAGE2DARRAY);
24481591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24491591693c7b415e9869157c711fe11263c95d74eDavid Licase 195:
24501591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24511591693c7b415e9869157c711fe11263c95d74eDavid Li#line 400 "glsl_lexer.lpp"
24521591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, IIMAGE1DARRAY);
24531591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24541591693c7b415e9869157c711fe11263c95d74eDavid Licase 196:
24551591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24561591693c7b415e9869157c711fe11263c95d74eDavid Li#line 401 "glsl_lexer.lpp"
24571591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, IIMAGE2DARRAY);
24581591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24591591693c7b415e9869157c711fe11263c95d74eDavid Licase 197:
24601591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24611591693c7b415e9869157c711fe11263c95d74eDavid Li#line 402 "glsl_lexer.lpp"
24621591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, UIMAGE1DARRAY);
24631591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24641591693c7b415e9869157c711fe11263c95d74eDavid Licase 198:
24651591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24661591693c7b415e9869157c711fe11263c95d74eDavid Li#line 403 "glsl_lexer.lpp"
24671591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, UIMAGE2DARRAY);
24681591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24691591693c7b415e9869157c711fe11263c95d74eDavid Licase 199:
24701591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24711591693c7b415e9869157c711fe11263c95d74eDavid Li#line 404 "glsl_lexer.lpp"
24721591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, IMAGE1DSHADOW);
24731591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24741591693c7b415e9869157c711fe11263c95d74eDavid Licase 200:
24751591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24761591693c7b415e9869157c711fe11263c95d74eDavid Li#line 405 "glsl_lexer.lpp"
24771591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, IMAGE2DSHADOW);
24781591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24791591693c7b415e9869157c711fe11263c95d74eDavid Licase 201:
24801591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24811591693c7b415e9869157c711fe11263c95d74eDavid Li#line 406 "glsl_lexer.lpp"
24821591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, IMAGE1DARRAYSHADOW);
24831591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24841591693c7b415e9869157c711fe11263c95d74eDavid Licase 202:
24851591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24861591693c7b415e9869157c711fe11263c95d74eDavid Li#line 407 "glsl_lexer.lpp"
24871591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, IMAGE2DARRAYSHADOW);
24881591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24891591693c7b415e9869157c711fe11263c95d74eDavid Licase 203:
24901591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24911591693c7b415e9869157c711fe11263c95d74eDavid Li#line 408 "glsl_lexer.lpp"
24921591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, IMAGEBUFFER);
24931591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24941591693c7b415e9869157c711fe11263c95d74eDavid Licase 204:
24951591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
24961591693c7b415e9869157c711fe11263c95d74eDavid Li#line 409 "glsl_lexer.lpp"
24971591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, IIMAGEBUFFER);
24981591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
24991591693c7b415e9869157c711fe11263c95d74eDavid Licase 205:
25001591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
25011591693c7b415e9869157c711fe11263c95d74eDavid Li#line 410 "glsl_lexer.lpp"
25021591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, UIMAGEBUFFER);
25031591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
25041591693c7b415e9869157c711fe11263c95d74eDavid Licase 206:
25051591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
25061591693c7b415e9869157c711fe11263c95d74eDavid Li#line 411 "glsl_lexer.lpp"
25071591693c7b415e9869157c711fe11263c95d74eDavid LiKEYWORD(130, 999, ROW_MAJOR);
25081591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
25091591693c7b415e9869157c711fe11263c95d74eDavid Licase 207:
25101591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
25111591693c7b415e9869157c711fe11263c95d74eDavid Li#line 413 "glsl_lexer.lpp"
25121591693c7b415e9869157c711fe11263c95d74eDavid Li{
25131591693c7b415e9869157c711fe11263c95d74eDavid Li			    struct _mesa_glsl_parse_state *state = yyextra;
25141591693c7b415e9869157c711fe11263c95d74eDavid Li			    void *ctx = state;
2515d50d9a90a0df4d706421850e17c0fbd85bf710eeDavid Li			    yylval->identifier = hieralloc_strdup(ctx, yytext);
25161591693c7b415e9869157c711fe11263c95d74eDavid Li			    return IDENTIFIER;
25171591693c7b415e9869157c711fe11263c95d74eDavid Li			}
25181591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
25191591693c7b415e9869157c711fe11263c95d74eDavid Licase 208:
25201591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
25211591693c7b415e9869157c711fe11263c95d74eDavid Li#line 420 "glsl_lexer.lpp"
25221591693c7b415e9869157c711fe11263c95d74eDavid Li{ return yytext[0]; }
25231591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
25241591693c7b415e9869157c711fe11263c95d74eDavid Licase 209:
25251591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP
25261591693c7b415e9869157c711fe11263c95d74eDavid Li#line 422 "glsl_lexer.lpp"
25271591693c7b415e9869157c711fe11263c95d74eDavid LiECHO;
25281591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BREAK
25291591693c7b415e9869157c711fe11263c95d74eDavid Li#line 2530 "glsl_lexer.cpp"
25301591693c7b415e9869157c711fe11263c95d74eDavid Licase YY_STATE_EOF(INITIAL):
25311591693c7b415e9869157c711fe11263c95d74eDavid Licase YY_STATE_EOF(PP):
25321591693c7b415e9869157c711fe11263c95d74eDavid Licase YY_STATE_EOF(PRAGMA):
25331591693c7b415e9869157c711fe11263c95d74eDavid Li	yyterminate();
25341591693c7b415e9869157c711fe11263c95d74eDavid Li
25351591693c7b415e9869157c711fe11263c95d74eDavid Li	case YY_END_OF_BUFFER:
25361591693c7b415e9869157c711fe11263c95d74eDavid Li		{
25371591693c7b415e9869157c711fe11263c95d74eDavid Li		/* Amount of text matched not including the EOB char. */
25381591693c7b415e9869157c711fe11263c95d74eDavid Li		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
25391591693c7b415e9869157c711fe11263c95d74eDavid Li
25401591693c7b415e9869157c711fe11263c95d74eDavid Li		/* Undo the effects of YY_DO_BEFORE_ACTION. */
25411591693c7b415e9869157c711fe11263c95d74eDavid Li		*yy_cp = yyg->yy_hold_char;
25421591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_RESTORE_YY_MORE_OFFSET
25431591693c7b415e9869157c711fe11263c95d74eDavid Li
25441591693c7b415e9869157c711fe11263c95d74eDavid Li		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
25451591693c7b415e9869157c711fe11263c95d74eDavid Li			{
25461591693c7b415e9869157c711fe11263c95d74eDavid Li			/* We're scanning a new file or input source.  It's
25471591693c7b415e9869157c711fe11263c95d74eDavid Li			 * possible that this happened because the user
25481591693c7b415e9869157c711fe11263c95d74eDavid Li			 * just pointed yyin at a new source and called
25491591693c7b415e9869157c711fe11263c95d74eDavid Li			 * _mesa_glsl_lex().  If so, then we have to assure
25501591693c7b415e9869157c711fe11263c95d74eDavid Li			 * consistency between YY_CURRENT_BUFFER and our
25511591693c7b415e9869157c711fe11263c95d74eDavid Li			 * globals.  Here is the right place to do so, because
25521591693c7b415e9869157c711fe11263c95d74eDavid Li			 * this is the first action (other than possibly a
25531591693c7b415e9869157c711fe11263c95d74eDavid Li			 * back-up) that will match for the new input source.
25541591693c7b415e9869157c711fe11263c95d74eDavid Li			 */
25551591693c7b415e9869157c711fe11263c95d74eDavid Li			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
25561591693c7b415e9869157c711fe11263c95d74eDavid Li			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
25571591693c7b415e9869157c711fe11263c95d74eDavid Li			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
25581591693c7b415e9869157c711fe11263c95d74eDavid Li			}
25591591693c7b415e9869157c711fe11263c95d74eDavid Li
25601591693c7b415e9869157c711fe11263c95d74eDavid Li		/* Note that here we test for yy_c_buf_p "<=" to the position
25611591693c7b415e9869157c711fe11263c95d74eDavid Li		 * of the first EOB in the buffer, since yy_c_buf_p will
25621591693c7b415e9869157c711fe11263c95d74eDavid Li		 * already have been incremented past the NUL character
25631591693c7b415e9869157c711fe11263c95d74eDavid Li		 * (since all states make transitions on EOB to the
25641591693c7b415e9869157c711fe11263c95d74eDavid Li		 * end-of-buffer state).  Contrast this with the test
25651591693c7b415e9869157c711fe11263c95d74eDavid Li		 * in input().
25661591693c7b415e9869157c711fe11263c95d74eDavid Li		 */
25671591693c7b415e9869157c711fe11263c95d74eDavid Li		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
25681591693c7b415e9869157c711fe11263c95d74eDavid Li			{ /* This was really a NUL. */
25691591693c7b415e9869157c711fe11263c95d74eDavid Li			yy_state_type yy_next_state;
25701591693c7b415e9869157c711fe11263c95d74eDavid Li
25711591693c7b415e9869157c711fe11263c95d74eDavid Li			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
25721591693c7b415e9869157c711fe11263c95d74eDavid Li
25731591693c7b415e9869157c711fe11263c95d74eDavid Li			yy_current_state = yy_get_previous_state( yyscanner );
25741591693c7b415e9869157c711fe11263c95d74eDavid Li
25751591693c7b415e9869157c711fe11263c95d74eDavid Li			/* Okay, we're now positioned to make the NUL
25761591693c7b415e9869157c711fe11263c95d74eDavid Li			 * transition.  We couldn't have
25771591693c7b415e9869157c711fe11263c95d74eDavid Li			 * yy_get_previous_state() go ahead and do it
25781591693c7b415e9869157c711fe11263c95d74eDavid Li			 * for us because it doesn't know how to deal
25791591693c7b415e9869157c711fe11263c95d74eDavid Li			 * with the possibility of jamming (and we don't
25801591693c7b415e9869157c711fe11263c95d74eDavid Li			 * want to build jamming into it because then it
25811591693c7b415e9869157c711fe11263c95d74eDavid Li			 * will run more slowly).
25821591693c7b415e9869157c711fe11263c95d74eDavid Li			 */
25831591693c7b415e9869157c711fe11263c95d74eDavid Li
25841591693c7b415e9869157c711fe11263c95d74eDavid Li			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
25851591693c7b415e9869157c711fe11263c95d74eDavid Li
25861591693c7b415e9869157c711fe11263c95d74eDavid Li			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
25871591693c7b415e9869157c711fe11263c95d74eDavid Li
25881591693c7b415e9869157c711fe11263c95d74eDavid Li			if ( yy_next_state )
25891591693c7b415e9869157c711fe11263c95d74eDavid Li				{
25901591693c7b415e9869157c711fe11263c95d74eDavid Li				/* Consume the NUL. */
25911591693c7b415e9869157c711fe11263c95d74eDavid Li				yy_cp = ++yyg->yy_c_buf_p;
25921591693c7b415e9869157c711fe11263c95d74eDavid Li				yy_current_state = yy_next_state;
25931591693c7b415e9869157c711fe11263c95d74eDavid Li				goto yy_match;
25941591693c7b415e9869157c711fe11263c95d74eDavid Li				}
25951591693c7b415e9869157c711fe11263c95d74eDavid Li
25961591693c7b415e9869157c711fe11263c95d74eDavid Li			else
25971591693c7b415e9869157c711fe11263c95d74eDavid Li				{
25981591693c7b415e9869157c711fe11263c95d74eDavid Li				yy_cp = yyg->yy_last_accepting_cpos;
25991591693c7b415e9869157c711fe11263c95d74eDavid Li				yy_current_state = yyg->yy_last_accepting_state;
26001591693c7b415e9869157c711fe11263c95d74eDavid Li				goto yy_find_action;
26011591693c7b415e9869157c711fe11263c95d74eDavid Li				}
26021591693c7b415e9869157c711fe11263c95d74eDavid Li			}
26031591693c7b415e9869157c711fe11263c95d74eDavid Li
26041591693c7b415e9869157c711fe11263c95d74eDavid Li		else switch ( yy_get_next_buffer( yyscanner ) )
26051591693c7b415e9869157c711fe11263c95d74eDavid Li			{
26061591693c7b415e9869157c711fe11263c95d74eDavid Li			case EOB_ACT_END_OF_FILE:
26071591693c7b415e9869157c711fe11263c95d74eDavid Li				{
26081591693c7b415e9869157c711fe11263c95d74eDavid Li				yyg->yy_did_buffer_switch_on_eof = 0;
26091591693c7b415e9869157c711fe11263c95d74eDavid Li
26101591693c7b415e9869157c711fe11263c95d74eDavid Li				if ( _mesa_glsl_wrap(yyscanner ) )
26111591693c7b415e9869157c711fe11263c95d74eDavid Li					{
26121591693c7b415e9869157c711fe11263c95d74eDavid Li					/* Note: because we've taken care in
26131591693c7b415e9869157c711fe11263c95d74eDavid Li					 * yy_get_next_buffer() to have set up
26141591693c7b415e9869157c711fe11263c95d74eDavid Li					 * yytext, we can now set up
26151591693c7b415e9869157c711fe11263c95d74eDavid Li					 * yy_c_buf_p so that if some total
26161591693c7b415e9869157c711fe11263c95d74eDavid Li					 * hoser (like flex itself) wants to
26171591693c7b415e9869157c711fe11263c95d74eDavid Li					 * call the scanner after we return the
26181591693c7b415e9869157c711fe11263c95d74eDavid Li					 * YY_NULL, it'll still work - another
26191591693c7b415e9869157c711fe11263c95d74eDavid Li					 * YY_NULL will get returned.
26201591693c7b415e9869157c711fe11263c95d74eDavid Li					 */
26211591693c7b415e9869157c711fe11263c95d74eDavid Li					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
26221591693c7b415e9869157c711fe11263c95d74eDavid Li
26231591693c7b415e9869157c711fe11263c95d74eDavid Li					yy_act = YY_STATE_EOF(YY_START);
26241591693c7b415e9869157c711fe11263c95d74eDavid Li					goto do_action;
26251591693c7b415e9869157c711fe11263c95d74eDavid Li					}
26261591693c7b415e9869157c711fe11263c95d74eDavid Li
26271591693c7b415e9869157c711fe11263c95d74eDavid Li				else
26281591693c7b415e9869157c711fe11263c95d74eDavid Li					{
26291591693c7b415e9869157c711fe11263c95d74eDavid Li					if ( ! yyg->yy_did_buffer_switch_on_eof )
26301591693c7b415e9869157c711fe11263c95d74eDavid Li						YY_NEW_FILE;
26311591693c7b415e9869157c711fe11263c95d74eDavid Li					}
26321591693c7b415e9869157c711fe11263c95d74eDavid Li				break;
26331591693c7b415e9869157c711fe11263c95d74eDavid Li				}
26341591693c7b415e9869157c711fe11263c95d74eDavid Li
26351591693c7b415e9869157c711fe11263c95d74eDavid Li			case EOB_ACT_CONTINUE_SCAN:
26361591693c7b415e9869157c711fe11263c95d74eDavid Li				yyg->yy_c_buf_p =
26371591693c7b415e9869157c711fe11263c95d74eDavid Li					yyg->yytext_ptr + yy_amount_of_matched_text;
26381591693c7b415e9869157c711fe11263c95d74eDavid Li
26391591693c7b415e9869157c711fe11263c95d74eDavid Li				yy_current_state = yy_get_previous_state( yyscanner );
26401591693c7b415e9869157c711fe11263c95d74eDavid Li
26411591693c7b415e9869157c711fe11263c95d74eDavid Li				yy_cp = yyg->yy_c_buf_p;
26421591693c7b415e9869157c711fe11263c95d74eDavid Li				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
26431591693c7b415e9869157c711fe11263c95d74eDavid Li				goto yy_match;
26441591693c7b415e9869157c711fe11263c95d74eDavid Li
26451591693c7b415e9869157c711fe11263c95d74eDavid Li			case EOB_ACT_LAST_MATCH:
26461591693c7b415e9869157c711fe11263c95d74eDavid Li				yyg->yy_c_buf_p =
26471591693c7b415e9869157c711fe11263c95d74eDavid Li				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
26481591693c7b415e9869157c711fe11263c95d74eDavid Li
26491591693c7b415e9869157c711fe11263c95d74eDavid Li				yy_current_state = yy_get_previous_state( yyscanner );
26501591693c7b415e9869157c711fe11263c95d74eDavid Li
26511591693c7b415e9869157c711fe11263c95d74eDavid Li				yy_cp = yyg->yy_c_buf_p;
26521591693c7b415e9869157c711fe11263c95d74eDavid Li				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
26531591693c7b415e9869157c711fe11263c95d74eDavid Li				goto yy_find_action;
26541591693c7b415e9869157c711fe11263c95d74eDavid Li			}
26551591693c7b415e9869157c711fe11263c95d74eDavid Li		break;
26561591693c7b415e9869157c711fe11263c95d74eDavid Li		}
26571591693c7b415e9869157c711fe11263c95d74eDavid Li
26581591693c7b415e9869157c711fe11263c95d74eDavid Li	default:
26591591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_FATAL_ERROR(
26601591693c7b415e9869157c711fe11263c95d74eDavid Li			"fatal flex scanner internal error--no action found" );
26611591693c7b415e9869157c711fe11263c95d74eDavid Li	} /* end of action switch */
26621591693c7b415e9869157c711fe11263c95d74eDavid Li		} /* end of scanning one token */
26631591693c7b415e9869157c711fe11263c95d74eDavid Li} /* end of _mesa_glsl_lex */
26641591693c7b415e9869157c711fe11263c95d74eDavid Li
26651591693c7b415e9869157c711fe11263c95d74eDavid Li/* yy_get_next_buffer - try to read in a new buffer
26661591693c7b415e9869157c711fe11263c95d74eDavid Li *
26671591693c7b415e9869157c711fe11263c95d74eDavid Li * Returns a code representing an action:
26681591693c7b415e9869157c711fe11263c95d74eDavid Li *	EOB_ACT_LAST_MATCH -
26691591693c7b415e9869157c711fe11263c95d74eDavid Li *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
26701591693c7b415e9869157c711fe11263c95d74eDavid Li *	EOB_ACT_END_OF_FILE - end of file
26711591693c7b415e9869157c711fe11263c95d74eDavid Li */
26721591693c7b415e9869157c711fe11263c95d74eDavid Listatic int yy_get_next_buffer (yyscan_t yyscanner)
26731591693c7b415e9869157c711fe11263c95d74eDavid Li{
26741591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
26751591693c7b415e9869157c711fe11263c95d74eDavid Li	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
26761591693c7b415e9869157c711fe11263c95d74eDavid Li	register char *source = yyg->yytext_ptr;
26771591693c7b415e9869157c711fe11263c95d74eDavid Li	register int number_to_move, i;
26781591693c7b415e9869157c711fe11263c95d74eDavid Li	int ret_val;
26791591693c7b415e9869157c711fe11263c95d74eDavid Li
26801591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
26811591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_FATAL_ERROR(
26821591693c7b415e9869157c711fe11263c95d74eDavid Li		"fatal flex scanner internal error--end of buffer missed" );
26831591693c7b415e9869157c711fe11263c95d74eDavid Li
26841591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
26851591693c7b415e9869157c711fe11263c95d74eDavid Li		{ /* Don't try to fill the buffer, so this is an EOF. */
26861591693c7b415e9869157c711fe11263c95d74eDavid Li		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
26871591693c7b415e9869157c711fe11263c95d74eDavid Li			{
26881591693c7b415e9869157c711fe11263c95d74eDavid Li			/* We matched a single character, the EOB, so
26891591693c7b415e9869157c711fe11263c95d74eDavid Li			 * treat this as a final EOF.
26901591693c7b415e9869157c711fe11263c95d74eDavid Li			 */
26911591693c7b415e9869157c711fe11263c95d74eDavid Li			return EOB_ACT_END_OF_FILE;
26921591693c7b415e9869157c711fe11263c95d74eDavid Li			}
26931591693c7b415e9869157c711fe11263c95d74eDavid Li
26941591693c7b415e9869157c711fe11263c95d74eDavid Li		else
26951591693c7b415e9869157c711fe11263c95d74eDavid Li			{
26961591693c7b415e9869157c711fe11263c95d74eDavid Li			/* We matched some text prior to the EOB, first
26971591693c7b415e9869157c711fe11263c95d74eDavid Li			 * process it.
26981591693c7b415e9869157c711fe11263c95d74eDavid Li			 */
26991591693c7b415e9869157c711fe11263c95d74eDavid Li			return EOB_ACT_LAST_MATCH;
27001591693c7b415e9869157c711fe11263c95d74eDavid Li			}
27011591693c7b415e9869157c711fe11263c95d74eDavid Li		}
27021591693c7b415e9869157c711fe11263c95d74eDavid Li
27031591693c7b415e9869157c711fe11263c95d74eDavid Li	/* Try to read more data. */
27041591693c7b415e9869157c711fe11263c95d74eDavid Li
27051591693c7b415e9869157c711fe11263c95d74eDavid Li	/* First move last chars to start of buffer. */
27061591693c7b415e9869157c711fe11263c95d74eDavid Li	number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
27071591693c7b415e9869157c711fe11263c95d74eDavid Li
27081591693c7b415e9869157c711fe11263c95d74eDavid Li	for ( i = 0; i < number_to_move; ++i )
27091591693c7b415e9869157c711fe11263c95d74eDavid Li		*(dest++) = *(source++);
27101591693c7b415e9869157c711fe11263c95d74eDavid Li
27111591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
27121591693c7b415e9869157c711fe11263c95d74eDavid Li		/* don't do the read, it's not guaranteed to return an EOF,
27131591693c7b415e9869157c711fe11263c95d74eDavid Li		 * just force an EOF
27141591693c7b415e9869157c711fe11263c95d74eDavid Li		 */
27151591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
27161591693c7b415e9869157c711fe11263c95d74eDavid Li
27171591693c7b415e9869157c711fe11263c95d74eDavid Li	else
27181591693c7b415e9869157c711fe11263c95d74eDavid Li		{
27191591693c7b415e9869157c711fe11263c95d74eDavid Li			int num_to_read =
27201591693c7b415e9869157c711fe11263c95d74eDavid Li			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
27211591693c7b415e9869157c711fe11263c95d74eDavid Li
27221591693c7b415e9869157c711fe11263c95d74eDavid Li		while ( num_to_read <= 0 )
27231591693c7b415e9869157c711fe11263c95d74eDavid Li			{ /* Not enough room in the buffer - grow it. */
27241591693c7b415e9869157c711fe11263c95d74eDavid Li
27251591693c7b415e9869157c711fe11263c95d74eDavid Li			/* just a shorter name for the current buffer */
27261591693c7b415e9869157c711fe11263c95d74eDavid Li			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
27271591693c7b415e9869157c711fe11263c95d74eDavid Li
27281591693c7b415e9869157c711fe11263c95d74eDavid Li			int yy_c_buf_p_offset =
27291591693c7b415e9869157c711fe11263c95d74eDavid Li				(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
27301591693c7b415e9869157c711fe11263c95d74eDavid Li
27311591693c7b415e9869157c711fe11263c95d74eDavid Li			if ( b->yy_is_our_buffer )
27321591693c7b415e9869157c711fe11263c95d74eDavid Li				{
27331591693c7b415e9869157c711fe11263c95d74eDavid Li				int new_size = b->yy_buf_size * 2;
27341591693c7b415e9869157c711fe11263c95d74eDavid Li
27351591693c7b415e9869157c711fe11263c95d74eDavid Li				if ( new_size <= 0 )
27361591693c7b415e9869157c711fe11263c95d74eDavid Li					b->yy_buf_size += b->yy_buf_size / 8;
27371591693c7b415e9869157c711fe11263c95d74eDavid Li				else
27381591693c7b415e9869157c711fe11263c95d74eDavid Li					b->yy_buf_size *= 2;
27391591693c7b415e9869157c711fe11263c95d74eDavid Li
27401591693c7b415e9869157c711fe11263c95d74eDavid Li				b->yy_ch_buf = (char *)
27411591693c7b415e9869157c711fe11263c95d74eDavid Li					/* Include room in for 2 EOB chars. */
27421591693c7b415e9869157c711fe11263c95d74eDavid Li					_mesa_glsl_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
27431591693c7b415e9869157c711fe11263c95d74eDavid Li				}
27441591693c7b415e9869157c711fe11263c95d74eDavid Li			else
27451591693c7b415e9869157c711fe11263c95d74eDavid Li				/* Can't grow it, we don't own it. */
27461591693c7b415e9869157c711fe11263c95d74eDavid Li				b->yy_ch_buf = 0;
27471591693c7b415e9869157c711fe11263c95d74eDavid Li
27481591693c7b415e9869157c711fe11263c95d74eDavid Li			if ( ! b->yy_ch_buf )
27491591693c7b415e9869157c711fe11263c95d74eDavid Li				YY_FATAL_ERROR(
27501591693c7b415e9869157c711fe11263c95d74eDavid Li				"fatal error - scanner input buffer overflow" );
27511591693c7b415e9869157c711fe11263c95d74eDavid Li
27521591693c7b415e9869157c711fe11263c95d74eDavid Li			yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
27531591693c7b415e9869157c711fe11263c95d74eDavid Li
27541591693c7b415e9869157c711fe11263c95d74eDavid Li			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
27551591693c7b415e9869157c711fe11263c95d74eDavid Li						number_to_move - 1;
27561591693c7b415e9869157c711fe11263c95d74eDavid Li
27571591693c7b415e9869157c711fe11263c95d74eDavid Li			}
27581591693c7b415e9869157c711fe11263c95d74eDavid Li
27591591693c7b415e9869157c711fe11263c95d74eDavid Li		if ( num_to_read > YY_READ_BUF_SIZE )
27601591693c7b415e9869157c711fe11263c95d74eDavid Li			num_to_read = YY_READ_BUF_SIZE;
27611591693c7b415e9869157c711fe11263c95d74eDavid Li
27621591693c7b415e9869157c711fe11263c95d74eDavid Li		/* Read in more data. */
27631591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
27641591693c7b415e9869157c711fe11263c95d74eDavid Li			yyg->yy_n_chars, (size_t) num_to_read );
27651591693c7b415e9869157c711fe11263c95d74eDavid Li
27661591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
27671591693c7b415e9869157c711fe11263c95d74eDavid Li		}
27681591693c7b415e9869157c711fe11263c95d74eDavid Li
27691591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( yyg->yy_n_chars == 0 )
27701591693c7b415e9869157c711fe11263c95d74eDavid Li		{
27711591693c7b415e9869157c711fe11263c95d74eDavid Li		if ( number_to_move == YY_MORE_ADJ )
27721591693c7b415e9869157c711fe11263c95d74eDavid Li			{
27731591693c7b415e9869157c711fe11263c95d74eDavid Li			ret_val = EOB_ACT_END_OF_FILE;
27741591693c7b415e9869157c711fe11263c95d74eDavid Li			_mesa_glsl_restart(yyin  ,yyscanner);
27751591693c7b415e9869157c711fe11263c95d74eDavid Li			}
27761591693c7b415e9869157c711fe11263c95d74eDavid Li
27771591693c7b415e9869157c711fe11263c95d74eDavid Li		else
27781591693c7b415e9869157c711fe11263c95d74eDavid Li			{
27791591693c7b415e9869157c711fe11263c95d74eDavid Li			ret_val = EOB_ACT_LAST_MATCH;
27801591693c7b415e9869157c711fe11263c95d74eDavid Li			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
27811591693c7b415e9869157c711fe11263c95d74eDavid Li				YY_BUFFER_EOF_PENDING;
27821591693c7b415e9869157c711fe11263c95d74eDavid Li			}
27831591693c7b415e9869157c711fe11263c95d74eDavid Li		}
27841591693c7b415e9869157c711fe11263c95d74eDavid Li
27851591693c7b415e9869157c711fe11263c95d74eDavid Li	else
27861591693c7b415e9869157c711fe11263c95d74eDavid Li		ret_val = EOB_ACT_CONTINUE_SCAN;
27871591693c7b415e9869157c711fe11263c95d74eDavid Li
27881591693c7b415e9869157c711fe11263c95d74eDavid Li	if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
27891591693c7b415e9869157c711fe11263c95d74eDavid Li		/* Extend the array by 50%, plus the number we really need. */
27901591693c7b415e9869157c711fe11263c95d74eDavid Li		yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
27911591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) _mesa_glsl_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
27921591693c7b415e9869157c711fe11263c95d74eDavid Li		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
27931591693c7b415e9869157c711fe11263c95d74eDavid Li			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
27941591693c7b415e9869157c711fe11263c95d74eDavid Li	}
27951591693c7b415e9869157c711fe11263c95d74eDavid Li
27961591693c7b415e9869157c711fe11263c95d74eDavid Li	yyg->yy_n_chars += number_to_move;
27971591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
27981591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
27991591693c7b415e9869157c711fe11263c95d74eDavid Li
28001591693c7b415e9869157c711fe11263c95d74eDavid Li	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
28011591693c7b415e9869157c711fe11263c95d74eDavid Li
28021591693c7b415e9869157c711fe11263c95d74eDavid Li	return ret_val;
28031591693c7b415e9869157c711fe11263c95d74eDavid Li}
28041591693c7b415e9869157c711fe11263c95d74eDavid Li
28051591693c7b415e9869157c711fe11263c95d74eDavid Li/* yy_get_previous_state - get the state just before the EOB char was reached */
28061591693c7b415e9869157c711fe11263c95d74eDavid Li
28071591693c7b415e9869157c711fe11263c95d74eDavid Li    static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
28081591693c7b415e9869157c711fe11263c95d74eDavid Li{
28091591693c7b415e9869157c711fe11263c95d74eDavid Li	register yy_state_type yy_current_state;
28101591693c7b415e9869157c711fe11263c95d74eDavid Li	register char *yy_cp;
28111591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
28121591693c7b415e9869157c711fe11263c95d74eDavid Li
28131591693c7b415e9869157c711fe11263c95d74eDavid Li	yy_current_state = yyg->yy_start;
28141591693c7b415e9869157c711fe11263c95d74eDavid Li	yy_current_state += YY_AT_BOL();
28151591693c7b415e9869157c711fe11263c95d74eDavid Li
28161591693c7b415e9869157c711fe11263c95d74eDavid Li	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
28171591693c7b415e9869157c711fe11263c95d74eDavid Li		{
28181591693c7b415e9869157c711fe11263c95d74eDavid Li		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
28191591693c7b415e9869157c711fe11263c95d74eDavid Li		if ( yy_accept[yy_current_state] )
28201591693c7b415e9869157c711fe11263c95d74eDavid Li			{
28211591693c7b415e9869157c711fe11263c95d74eDavid Li			yyg->yy_last_accepting_state = yy_current_state;
28221591693c7b415e9869157c711fe11263c95d74eDavid Li			yyg->yy_last_accepting_cpos = yy_cp;
28231591693c7b415e9869157c711fe11263c95d74eDavid Li			}
28241591693c7b415e9869157c711fe11263c95d74eDavid Li		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
28251591693c7b415e9869157c711fe11263c95d74eDavid Li			{
28261591693c7b415e9869157c711fe11263c95d74eDavid Li			yy_current_state = (int) yy_def[yy_current_state];
28271591693c7b415e9869157c711fe11263c95d74eDavid Li			if ( yy_current_state >= 813 )
28281591693c7b415e9869157c711fe11263c95d74eDavid Li				yy_c = yy_meta[(unsigned int) yy_c];
28291591693c7b415e9869157c711fe11263c95d74eDavid Li			}
28301591693c7b415e9869157c711fe11263c95d74eDavid Li		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
28311591693c7b415e9869157c711fe11263c95d74eDavid Li		}
28321591693c7b415e9869157c711fe11263c95d74eDavid Li
28331591693c7b415e9869157c711fe11263c95d74eDavid Li	return yy_current_state;
28341591693c7b415e9869157c711fe11263c95d74eDavid Li}
28351591693c7b415e9869157c711fe11263c95d74eDavid Li
28361591693c7b415e9869157c711fe11263c95d74eDavid Li/* yy_try_NUL_trans - try to make a transition on the NUL character
28371591693c7b415e9869157c711fe11263c95d74eDavid Li *
28381591693c7b415e9869157c711fe11263c95d74eDavid Li * synopsis
28391591693c7b415e9869157c711fe11263c95d74eDavid Li *	next_state = yy_try_NUL_trans( current_state );
28401591693c7b415e9869157c711fe11263c95d74eDavid Li */
28411591693c7b415e9869157c711fe11263c95d74eDavid Li    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
28421591693c7b415e9869157c711fe11263c95d74eDavid Li{
28431591693c7b415e9869157c711fe11263c95d74eDavid Li	register int yy_is_jam;
28441591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
28451591693c7b415e9869157c711fe11263c95d74eDavid Li	register char *yy_cp = yyg->yy_c_buf_p;
28461591693c7b415e9869157c711fe11263c95d74eDavid Li
28471591693c7b415e9869157c711fe11263c95d74eDavid Li	register YY_CHAR yy_c = 1;
28481591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( yy_accept[yy_current_state] )
28491591693c7b415e9869157c711fe11263c95d74eDavid Li		{
28501591693c7b415e9869157c711fe11263c95d74eDavid Li		yyg->yy_last_accepting_state = yy_current_state;
28511591693c7b415e9869157c711fe11263c95d74eDavid Li		yyg->yy_last_accepting_cpos = yy_cp;
28521591693c7b415e9869157c711fe11263c95d74eDavid Li		}
28531591693c7b415e9869157c711fe11263c95d74eDavid Li	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
28541591693c7b415e9869157c711fe11263c95d74eDavid Li		{
28551591693c7b415e9869157c711fe11263c95d74eDavid Li		yy_current_state = (int) yy_def[yy_current_state];
28561591693c7b415e9869157c711fe11263c95d74eDavid Li		if ( yy_current_state >= 813 )
28571591693c7b415e9869157c711fe11263c95d74eDavid Li			yy_c = yy_meta[(unsigned int) yy_c];
28581591693c7b415e9869157c711fe11263c95d74eDavid Li		}
28591591693c7b415e9869157c711fe11263c95d74eDavid Li	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
28601591693c7b415e9869157c711fe11263c95d74eDavid Li	yy_is_jam = (yy_current_state == 812);
28611591693c7b415e9869157c711fe11263c95d74eDavid Li
28621591693c7b415e9869157c711fe11263c95d74eDavid Li	return yy_is_jam ? 0 : yy_current_state;
28631591693c7b415e9869157c711fe11263c95d74eDavid Li}
28641591693c7b415e9869157c711fe11263c95d74eDavid Li
28651591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_NO_INPUT
28661591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef __cplusplus
28671591693c7b415e9869157c711fe11263c95d74eDavid Li    static int yyinput (yyscan_t yyscanner)
28681591693c7b415e9869157c711fe11263c95d74eDavid Li#else
28691591693c7b415e9869157c711fe11263c95d74eDavid Li    static int input  (yyscan_t yyscanner)
28701591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
28711591693c7b415e9869157c711fe11263c95d74eDavid Li
28721591693c7b415e9869157c711fe11263c95d74eDavid Li{
28731591693c7b415e9869157c711fe11263c95d74eDavid Li	int c;
28741591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
28751591693c7b415e9869157c711fe11263c95d74eDavid Li
28761591693c7b415e9869157c711fe11263c95d74eDavid Li	*yyg->yy_c_buf_p = yyg->yy_hold_char;
28771591693c7b415e9869157c711fe11263c95d74eDavid Li
28781591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
28791591693c7b415e9869157c711fe11263c95d74eDavid Li		{
28801591693c7b415e9869157c711fe11263c95d74eDavid Li		/* yy_c_buf_p now points to the character we want to return.
28811591693c7b415e9869157c711fe11263c95d74eDavid Li		 * If this occurs *before* the EOB characters, then it's a
28821591693c7b415e9869157c711fe11263c95d74eDavid Li		 * valid NUL; if not, then we've hit the end of the buffer.
28831591693c7b415e9869157c711fe11263c95d74eDavid Li		 */
28841591693c7b415e9869157c711fe11263c95d74eDavid Li		if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
28851591693c7b415e9869157c711fe11263c95d74eDavid Li			/* This was really a NUL. */
28861591693c7b415e9869157c711fe11263c95d74eDavid Li			*yyg->yy_c_buf_p = '\0';
28871591693c7b415e9869157c711fe11263c95d74eDavid Li
28881591693c7b415e9869157c711fe11263c95d74eDavid Li		else
28891591693c7b415e9869157c711fe11263c95d74eDavid Li			{ /* need more input */
28901591693c7b415e9869157c711fe11263c95d74eDavid Li			int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
28911591693c7b415e9869157c711fe11263c95d74eDavid Li			++yyg->yy_c_buf_p;
28921591693c7b415e9869157c711fe11263c95d74eDavid Li
28931591693c7b415e9869157c711fe11263c95d74eDavid Li			switch ( yy_get_next_buffer( yyscanner ) )
28941591693c7b415e9869157c711fe11263c95d74eDavid Li				{
28951591693c7b415e9869157c711fe11263c95d74eDavid Li				case EOB_ACT_LAST_MATCH:
28961591693c7b415e9869157c711fe11263c95d74eDavid Li					/* This happens because yy_g_n_b()
28971591693c7b415e9869157c711fe11263c95d74eDavid Li					 * sees that we've accumulated a
28981591693c7b415e9869157c711fe11263c95d74eDavid Li					 * token and flags that we need to
28991591693c7b415e9869157c711fe11263c95d74eDavid Li					 * try matching the token before
29001591693c7b415e9869157c711fe11263c95d74eDavid Li					 * proceeding.  But for input(),
29011591693c7b415e9869157c711fe11263c95d74eDavid Li					 * there's no matching to consider.
29021591693c7b415e9869157c711fe11263c95d74eDavid Li					 * So convert the EOB_ACT_LAST_MATCH
29031591693c7b415e9869157c711fe11263c95d74eDavid Li					 * to EOB_ACT_END_OF_FILE.
29041591693c7b415e9869157c711fe11263c95d74eDavid Li					 */
29051591693c7b415e9869157c711fe11263c95d74eDavid Li
29061591693c7b415e9869157c711fe11263c95d74eDavid Li					/* Reset buffer status. */
29071591693c7b415e9869157c711fe11263c95d74eDavid Li					_mesa_glsl_restart(yyin ,yyscanner);
29081591693c7b415e9869157c711fe11263c95d74eDavid Li
29091591693c7b415e9869157c711fe11263c95d74eDavid Li					/*FALLTHROUGH*/
29101591693c7b415e9869157c711fe11263c95d74eDavid Li
29111591693c7b415e9869157c711fe11263c95d74eDavid Li				case EOB_ACT_END_OF_FILE:
29121591693c7b415e9869157c711fe11263c95d74eDavid Li					{
29131591693c7b415e9869157c711fe11263c95d74eDavid Li					if ( _mesa_glsl_wrap(yyscanner ) )
29141591693c7b415e9869157c711fe11263c95d74eDavid Li						return EOF;
29151591693c7b415e9869157c711fe11263c95d74eDavid Li
29161591693c7b415e9869157c711fe11263c95d74eDavid Li					if ( ! yyg->yy_did_buffer_switch_on_eof )
29171591693c7b415e9869157c711fe11263c95d74eDavid Li						YY_NEW_FILE;
29181591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef __cplusplus
29191591693c7b415e9869157c711fe11263c95d74eDavid Li					return yyinput(yyscanner);
29201591693c7b415e9869157c711fe11263c95d74eDavid Li#else
29211591693c7b415e9869157c711fe11263c95d74eDavid Li					return input(yyscanner);
29221591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
29231591693c7b415e9869157c711fe11263c95d74eDavid Li					}
29241591693c7b415e9869157c711fe11263c95d74eDavid Li
29251591693c7b415e9869157c711fe11263c95d74eDavid Li				case EOB_ACT_CONTINUE_SCAN:
29261591693c7b415e9869157c711fe11263c95d74eDavid Li					yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
29271591693c7b415e9869157c711fe11263c95d74eDavid Li					break;
29281591693c7b415e9869157c711fe11263c95d74eDavid Li				}
29291591693c7b415e9869157c711fe11263c95d74eDavid Li			}
29301591693c7b415e9869157c711fe11263c95d74eDavid Li		}
29311591693c7b415e9869157c711fe11263c95d74eDavid Li
29321591693c7b415e9869157c711fe11263c95d74eDavid Li	c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
29331591693c7b415e9869157c711fe11263c95d74eDavid Li	*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
29341591693c7b415e9869157c711fe11263c95d74eDavid Li	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
29351591693c7b415e9869157c711fe11263c95d74eDavid Li
29361591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
29371591693c7b415e9869157c711fe11263c95d74eDavid Li
29381591693c7b415e9869157c711fe11263c95d74eDavid Li	return c;
29391591693c7b415e9869157c711fe11263c95d74eDavid Li}
29401591693c7b415e9869157c711fe11263c95d74eDavid Li#endif	/* ifndef YY_NO_INPUT */
29411591693c7b415e9869157c711fe11263c95d74eDavid Li
29421591693c7b415e9869157c711fe11263c95d74eDavid Li/** Immediately switch to a different input stream.
29431591693c7b415e9869157c711fe11263c95d74eDavid Li * @param input_file A readable stream.
29441591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object.
29451591693c7b415e9869157c711fe11263c95d74eDavid Li * @note This function does not reset the start condition to @c INITIAL .
29461591693c7b415e9869157c711fe11263c95d74eDavid Li */
29471591693c7b415e9869157c711fe11263c95d74eDavid Li    void _mesa_glsl_restart  (FILE * input_file , yyscan_t yyscanner)
29481591693c7b415e9869157c711fe11263c95d74eDavid Li{
29491591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
29501591693c7b415e9869157c711fe11263c95d74eDavid Li
29511591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( ! YY_CURRENT_BUFFER ){
29521591693c7b415e9869157c711fe11263c95d74eDavid Li        _mesa_glsl_ensure_buffer_stack (yyscanner);
29531591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_CURRENT_BUFFER_LVALUE =
29541591693c7b415e9869157c711fe11263c95d74eDavid Li            _mesa_glsl__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
29551591693c7b415e9869157c711fe11263c95d74eDavid Li	}
29561591693c7b415e9869157c711fe11263c95d74eDavid Li
29571591693c7b415e9869157c711fe11263c95d74eDavid Li	_mesa_glsl__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
29581591693c7b415e9869157c711fe11263c95d74eDavid Li	_mesa_glsl__load_buffer_state(yyscanner );
29591591693c7b415e9869157c711fe11263c95d74eDavid Li}
29601591693c7b415e9869157c711fe11263c95d74eDavid Li
29611591693c7b415e9869157c711fe11263c95d74eDavid Li/** Switch to a different input buffer.
29621591693c7b415e9869157c711fe11263c95d74eDavid Li * @param new_buffer The new input buffer.
29631591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object.
29641591693c7b415e9869157c711fe11263c95d74eDavid Li */
29651591693c7b415e9869157c711fe11263c95d74eDavid Li    void _mesa_glsl__switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
29661591693c7b415e9869157c711fe11263c95d74eDavid Li{
29671591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
29681591693c7b415e9869157c711fe11263c95d74eDavid Li
29691591693c7b415e9869157c711fe11263c95d74eDavid Li	/* TODO. We should be able to replace this entire function body
29701591693c7b415e9869157c711fe11263c95d74eDavid Li	 * with
29711591693c7b415e9869157c711fe11263c95d74eDavid Li	 *		_mesa_glsl_pop_buffer_state();
29721591693c7b415e9869157c711fe11263c95d74eDavid Li	 *		_mesa_glsl_push_buffer_state(new_buffer);
29731591693c7b415e9869157c711fe11263c95d74eDavid Li     */
29741591693c7b415e9869157c711fe11263c95d74eDavid Li	_mesa_glsl_ensure_buffer_stack (yyscanner);
29751591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( YY_CURRENT_BUFFER == new_buffer )
29761591693c7b415e9869157c711fe11263c95d74eDavid Li		return;
29771591693c7b415e9869157c711fe11263c95d74eDavid Li
29781591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( YY_CURRENT_BUFFER )
29791591693c7b415e9869157c711fe11263c95d74eDavid Li		{
29801591693c7b415e9869157c711fe11263c95d74eDavid Li		/* Flush out information for old buffer. */
29811591693c7b415e9869157c711fe11263c95d74eDavid Li		*yyg->yy_c_buf_p = yyg->yy_hold_char;
29821591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
29831591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
29841591693c7b415e9869157c711fe11263c95d74eDavid Li		}
29851591693c7b415e9869157c711fe11263c95d74eDavid Li
29861591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_CURRENT_BUFFER_LVALUE = new_buffer;
29871591693c7b415e9869157c711fe11263c95d74eDavid Li	_mesa_glsl__load_buffer_state(yyscanner );
29881591693c7b415e9869157c711fe11263c95d74eDavid Li
29891591693c7b415e9869157c711fe11263c95d74eDavid Li	/* We don't actually know whether we did this switch during
29901591693c7b415e9869157c711fe11263c95d74eDavid Li	 * EOF (_mesa_glsl_wrap()) processing, but the only time this flag
29911591693c7b415e9869157c711fe11263c95d74eDavid Li	 * is looked at is after _mesa_glsl_wrap() is called, so it's safe
29921591693c7b415e9869157c711fe11263c95d74eDavid Li	 * to go ahead and always set it.
29931591693c7b415e9869157c711fe11263c95d74eDavid Li	 */
29941591693c7b415e9869157c711fe11263c95d74eDavid Li	yyg->yy_did_buffer_switch_on_eof = 1;
29951591693c7b415e9869157c711fe11263c95d74eDavid Li}
29961591693c7b415e9869157c711fe11263c95d74eDavid Li
29971591693c7b415e9869157c711fe11263c95d74eDavid Listatic void _mesa_glsl__load_buffer_state  (yyscan_t yyscanner)
29981591693c7b415e9869157c711fe11263c95d74eDavid Li{
29991591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
30001591693c7b415e9869157c711fe11263c95d74eDavid Li	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
30011591693c7b415e9869157c711fe11263c95d74eDavid Li	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
30021591693c7b415e9869157c711fe11263c95d74eDavid Li	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
30031591693c7b415e9869157c711fe11263c95d74eDavid Li	yyg->yy_hold_char = *yyg->yy_c_buf_p;
30041591693c7b415e9869157c711fe11263c95d74eDavid Li}
30051591693c7b415e9869157c711fe11263c95d74eDavid Li
30061591693c7b415e9869157c711fe11263c95d74eDavid Li/** Allocate and initialize an input buffer state.
30071591693c7b415e9869157c711fe11263c95d74eDavid Li * @param file A readable stream.
30081591693c7b415e9869157c711fe11263c95d74eDavid Li * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
30091591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object.
30101591693c7b415e9869157c711fe11263c95d74eDavid Li * @return the allocated buffer state.
30111591693c7b415e9869157c711fe11263c95d74eDavid Li */
30121591693c7b415e9869157c711fe11263c95d74eDavid Li    YY_BUFFER_STATE _mesa_glsl__create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
30131591693c7b415e9869157c711fe11263c95d74eDavid Li{
30141591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BUFFER_STATE b;
30151591693c7b415e9869157c711fe11263c95d74eDavid Li
30161591693c7b415e9869157c711fe11263c95d74eDavid Li	b = (YY_BUFFER_STATE) _mesa_glsl_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
30171591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( ! b )
30181591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl__create_buffer()" );
30191591693c7b415e9869157c711fe11263c95d74eDavid Li
30201591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_buf_size = size;
30211591693c7b415e9869157c711fe11263c95d74eDavid Li
30221591693c7b415e9869157c711fe11263c95d74eDavid Li	/* yy_ch_buf has to be 2 characters longer than the size given because
30231591693c7b415e9869157c711fe11263c95d74eDavid Li	 * we need to put in 2 end-of-buffer characters.
30241591693c7b415e9869157c711fe11263c95d74eDavid Li	 */
30251591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_ch_buf = (char *) _mesa_glsl_alloc(b->yy_buf_size + 2 ,yyscanner );
30261591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( ! b->yy_ch_buf )
30271591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl__create_buffer()" );
30281591693c7b415e9869157c711fe11263c95d74eDavid Li
30291591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_is_our_buffer = 1;
30301591693c7b415e9869157c711fe11263c95d74eDavid Li
30311591693c7b415e9869157c711fe11263c95d74eDavid Li	_mesa_glsl__init_buffer(b,file ,yyscanner);
30321591693c7b415e9869157c711fe11263c95d74eDavid Li
30331591693c7b415e9869157c711fe11263c95d74eDavid Li	return b;
30341591693c7b415e9869157c711fe11263c95d74eDavid Li}
30351591693c7b415e9869157c711fe11263c95d74eDavid Li
30361591693c7b415e9869157c711fe11263c95d74eDavid Li/** Destroy the buffer.
30371591693c7b415e9869157c711fe11263c95d74eDavid Li * @param b a buffer created with _mesa_glsl__create_buffer()
30381591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object.
30391591693c7b415e9869157c711fe11263c95d74eDavid Li */
30401591693c7b415e9869157c711fe11263c95d74eDavid Li    void _mesa_glsl__delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
30411591693c7b415e9869157c711fe11263c95d74eDavid Li{
30421591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
30431591693c7b415e9869157c711fe11263c95d74eDavid Li
30441591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( ! b )
30451591693c7b415e9869157c711fe11263c95d74eDavid Li		return;
30461591693c7b415e9869157c711fe11263c95d74eDavid Li
30471591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
30481591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
30491591693c7b415e9869157c711fe11263c95d74eDavid Li
30501591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( b->yy_is_our_buffer )
30511591693c7b415e9869157c711fe11263c95d74eDavid Li		_mesa_glsl_free((void *) b->yy_ch_buf ,yyscanner );
30521591693c7b415e9869157c711fe11263c95d74eDavid Li
30531591693c7b415e9869157c711fe11263c95d74eDavid Li	_mesa_glsl_free((void *) b ,yyscanner );
30541591693c7b415e9869157c711fe11263c95d74eDavid Li}
30551591693c7b415e9869157c711fe11263c95d74eDavid Li
30561591693c7b415e9869157c711fe11263c95d74eDavid Li/* Initializes or reinitializes a buffer.
30571591693c7b415e9869157c711fe11263c95d74eDavid Li * This function is sometimes called more than once on the same buffer,
30581591693c7b415e9869157c711fe11263c95d74eDavid Li * such as during a _mesa_glsl_restart() or at EOF.
30591591693c7b415e9869157c711fe11263c95d74eDavid Li */
30601591693c7b415e9869157c711fe11263c95d74eDavid Li    static void _mesa_glsl__init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
30611591693c7b415e9869157c711fe11263c95d74eDavid Li
30621591693c7b415e9869157c711fe11263c95d74eDavid Li{
30631591693c7b415e9869157c711fe11263c95d74eDavid Li	int oerrno = errno;
30641591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
30651591693c7b415e9869157c711fe11263c95d74eDavid Li
30661591693c7b415e9869157c711fe11263c95d74eDavid Li	_mesa_glsl__flush_buffer(b ,yyscanner);
30671591693c7b415e9869157c711fe11263c95d74eDavid Li
30681591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_input_file = file;
30691591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_fill_buffer = 1;
30701591693c7b415e9869157c711fe11263c95d74eDavid Li
30711591693c7b415e9869157c711fe11263c95d74eDavid Li    /* If b is the current buffer, then _mesa_glsl__init_buffer was _probably_
30721591693c7b415e9869157c711fe11263c95d74eDavid Li     * called from _mesa_glsl_restart() or through yy_get_next_buffer.
30731591693c7b415e9869157c711fe11263c95d74eDavid Li     * In that case, we don't want to reset the lineno or column.
30741591693c7b415e9869157c711fe11263c95d74eDavid Li     */
30751591693c7b415e9869157c711fe11263c95d74eDavid Li    if (b != YY_CURRENT_BUFFER){
30761591693c7b415e9869157c711fe11263c95d74eDavid Li        b->yy_bs_lineno = 1;
30771591693c7b415e9869157c711fe11263c95d74eDavid Li        b->yy_bs_column = 0;
30781591693c7b415e9869157c711fe11263c95d74eDavid Li    }
30791591693c7b415e9869157c711fe11263c95d74eDavid Li
30801591693c7b415e9869157c711fe11263c95d74eDavid Li        b->yy_is_interactive = 0;
30811591693c7b415e9869157c711fe11263c95d74eDavid Li
30821591693c7b415e9869157c711fe11263c95d74eDavid Li	errno = oerrno;
30831591693c7b415e9869157c711fe11263c95d74eDavid Li}
30841591693c7b415e9869157c711fe11263c95d74eDavid Li
30851591693c7b415e9869157c711fe11263c95d74eDavid Li/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
30861591693c7b415e9869157c711fe11263c95d74eDavid Li * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
30871591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object.
30881591693c7b415e9869157c711fe11263c95d74eDavid Li */
30891591693c7b415e9869157c711fe11263c95d74eDavid Li    void _mesa_glsl__flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
30901591693c7b415e9869157c711fe11263c95d74eDavid Li{
30911591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
30921591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( ! b )
30931591693c7b415e9869157c711fe11263c95d74eDavid Li		return;
30941591693c7b415e9869157c711fe11263c95d74eDavid Li
30951591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_n_chars = 0;
30961591693c7b415e9869157c711fe11263c95d74eDavid Li
30971591693c7b415e9869157c711fe11263c95d74eDavid Li	/* We always need two end-of-buffer characters.  The first causes
30981591693c7b415e9869157c711fe11263c95d74eDavid Li	 * a transition to the end-of-buffer state.  The second causes
30991591693c7b415e9869157c711fe11263c95d74eDavid Li	 * a jam in that state.
31001591693c7b415e9869157c711fe11263c95d74eDavid Li	 */
31011591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
31021591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
31031591693c7b415e9869157c711fe11263c95d74eDavid Li
31041591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_buf_pos = &b->yy_ch_buf[0];
31051591693c7b415e9869157c711fe11263c95d74eDavid Li
31061591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_at_bol = 1;
31071591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_buffer_status = YY_BUFFER_NEW;
31081591693c7b415e9869157c711fe11263c95d74eDavid Li
31091591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( b == YY_CURRENT_BUFFER )
31101591693c7b415e9869157c711fe11263c95d74eDavid Li		_mesa_glsl__load_buffer_state(yyscanner );
31111591693c7b415e9869157c711fe11263c95d74eDavid Li}
31121591693c7b415e9869157c711fe11263c95d74eDavid Li
31131591693c7b415e9869157c711fe11263c95d74eDavid Li/** Pushes the new state onto the stack. The new state becomes
31141591693c7b415e9869157c711fe11263c95d74eDavid Li *  the current state. This function will allocate the stack
31151591693c7b415e9869157c711fe11263c95d74eDavid Li *  if necessary.
31161591693c7b415e9869157c711fe11263c95d74eDavid Li *  @param new_buffer The new state.
31171591693c7b415e9869157c711fe11263c95d74eDavid Li *  @param yyscanner The scanner object.
31181591693c7b415e9869157c711fe11263c95d74eDavid Li */
31191591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
31201591693c7b415e9869157c711fe11263c95d74eDavid Li{
31211591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
31221591693c7b415e9869157c711fe11263c95d74eDavid Li	if (new_buffer == NULL)
31231591693c7b415e9869157c711fe11263c95d74eDavid Li		return;
31241591693c7b415e9869157c711fe11263c95d74eDavid Li
31251591693c7b415e9869157c711fe11263c95d74eDavid Li	_mesa_glsl_ensure_buffer_stack(yyscanner);
31261591693c7b415e9869157c711fe11263c95d74eDavid Li
31271591693c7b415e9869157c711fe11263c95d74eDavid Li	/* This block is copied from _mesa_glsl__switch_to_buffer. */
31281591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( YY_CURRENT_BUFFER )
31291591693c7b415e9869157c711fe11263c95d74eDavid Li		{
31301591693c7b415e9869157c711fe11263c95d74eDavid Li		/* Flush out information for old buffer. */
31311591693c7b415e9869157c711fe11263c95d74eDavid Li		*yyg->yy_c_buf_p = yyg->yy_hold_char;
31321591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
31331591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
31341591693c7b415e9869157c711fe11263c95d74eDavid Li		}
31351591693c7b415e9869157c711fe11263c95d74eDavid Li
31361591693c7b415e9869157c711fe11263c95d74eDavid Li	/* Only push if top exists. Otherwise, replace top. */
31371591693c7b415e9869157c711fe11263c95d74eDavid Li	if (YY_CURRENT_BUFFER)
31381591693c7b415e9869157c711fe11263c95d74eDavid Li		yyg->yy_buffer_stack_top++;
31391591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_CURRENT_BUFFER_LVALUE = new_buffer;
31401591693c7b415e9869157c711fe11263c95d74eDavid Li
31411591693c7b415e9869157c711fe11263c95d74eDavid Li	/* copied from _mesa_glsl__switch_to_buffer. */
31421591693c7b415e9869157c711fe11263c95d74eDavid Li	_mesa_glsl__load_buffer_state(yyscanner );
31431591693c7b415e9869157c711fe11263c95d74eDavid Li	yyg->yy_did_buffer_switch_on_eof = 1;
31441591693c7b415e9869157c711fe11263c95d74eDavid Li}
31451591693c7b415e9869157c711fe11263c95d74eDavid Li
31461591693c7b415e9869157c711fe11263c95d74eDavid Li/** Removes and deletes the top of the stack, if present.
31471591693c7b415e9869157c711fe11263c95d74eDavid Li *  The next element becomes the new top.
31481591693c7b415e9869157c711fe11263c95d74eDavid Li *  @param yyscanner The scanner object.
31491591693c7b415e9869157c711fe11263c95d74eDavid Li */
31501591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_pop_buffer_state (yyscan_t yyscanner)
31511591693c7b415e9869157c711fe11263c95d74eDavid Li{
31521591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
31531591693c7b415e9869157c711fe11263c95d74eDavid Li	if (!YY_CURRENT_BUFFER)
31541591693c7b415e9869157c711fe11263c95d74eDavid Li		return;
31551591693c7b415e9869157c711fe11263c95d74eDavid Li
31561591693c7b415e9869157c711fe11263c95d74eDavid Li	_mesa_glsl__delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
31571591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_CURRENT_BUFFER_LVALUE = NULL;
31581591693c7b415e9869157c711fe11263c95d74eDavid Li	if (yyg->yy_buffer_stack_top > 0)
31591591693c7b415e9869157c711fe11263c95d74eDavid Li		--yyg->yy_buffer_stack_top;
31601591693c7b415e9869157c711fe11263c95d74eDavid Li
31611591693c7b415e9869157c711fe11263c95d74eDavid Li	if (YY_CURRENT_BUFFER) {
31621591693c7b415e9869157c711fe11263c95d74eDavid Li		_mesa_glsl__load_buffer_state(yyscanner );
31631591693c7b415e9869157c711fe11263c95d74eDavid Li		yyg->yy_did_buffer_switch_on_eof = 1;
31641591693c7b415e9869157c711fe11263c95d74eDavid Li	}
31651591693c7b415e9869157c711fe11263c95d74eDavid Li}
31661591693c7b415e9869157c711fe11263c95d74eDavid Li
31671591693c7b415e9869157c711fe11263c95d74eDavid Li/* Allocates the stack if it does not exist.
31681591693c7b415e9869157c711fe11263c95d74eDavid Li *  Guarantees space for at least one push.
31691591693c7b415e9869157c711fe11263c95d74eDavid Li */
31701591693c7b415e9869157c711fe11263c95d74eDavid Listatic void _mesa_glsl_ensure_buffer_stack (yyscan_t yyscanner)
31711591693c7b415e9869157c711fe11263c95d74eDavid Li{
31721591693c7b415e9869157c711fe11263c95d74eDavid Li	int num_to_alloc;
31731591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
31741591693c7b415e9869157c711fe11263c95d74eDavid Li
31751591693c7b415e9869157c711fe11263c95d74eDavid Li	if (!yyg->yy_buffer_stack) {
31761591693c7b415e9869157c711fe11263c95d74eDavid Li
31771591693c7b415e9869157c711fe11263c95d74eDavid Li		/* First allocation is just for 2 elements, since we don't know if this
31781591693c7b415e9869157c711fe11263c95d74eDavid Li		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
31791591693c7b415e9869157c711fe11263c95d74eDavid Li		 * immediate realloc on the next call.
31801591693c7b415e9869157c711fe11263c95d74eDavid Li         */
31811591693c7b415e9869157c711fe11263c95d74eDavid Li		num_to_alloc = 1;
31821591693c7b415e9869157c711fe11263c95d74eDavid Li		yyg->yy_buffer_stack = (struct yy_buffer_state**)_mesa_glsl_alloc
31831591693c7b415e9869157c711fe11263c95d74eDavid Li								(num_to_alloc * sizeof(struct yy_buffer_state*)
31841591693c7b415e9869157c711fe11263c95d74eDavid Li								, yyscanner);
31851591693c7b415e9869157c711fe11263c95d74eDavid Li		if ( ! yyg->yy_buffer_stack )
31861591693c7b415e9869157c711fe11263c95d74eDavid Li			YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl_ensure_buffer_stack()" );
31871591693c7b415e9869157c711fe11263c95d74eDavid Li
31881591693c7b415e9869157c711fe11263c95d74eDavid Li		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
31891591693c7b415e9869157c711fe11263c95d74eDavid Li
31901591693c7b415e9869157c711fe11263c95d74eDavid Li		yyg->yy_buffer_stack_max = num_to_alloc;
31911591693c7b415e9869157c711fe11263c95d74eDavid Li		yyg->yy_buffer_stack_top = 0;
31921591693c7b415e9869157c711fe11263c95d74eDavid Li		return;
31931591693c7b415e9869157c711fe11263c95d74eDavid Li	}
31941591693c7b415e9869157c711fe11263c95d74eDavid Li
31951591693c7b415e9869157c711fe11263c95d74eDavid Li	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
31961591693c7b415e9869157c711fe11263c95d74eDavid Li
31971591693c7b415e9869157c711fe11263c95d74eDavid Li		/* Increase the buffer to prepare for a possible push. */
31981591693c7b415e9869157c711fe11263c95d74eDavid Li		int grow_size = 8 /* arbitrary grow size */;
31991591693c7b415e9869157c711fe11263c95d74eDavid Li
32001591693c7b415e9869157c711fe11263c95d74eDavid Li		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
32011591693c7b415e9869157c711fe11263c95d74eDavid Li		yyg->yy_buffer_stack = (struct yy_buffer_state**)_mesa_glsl_realloc
32021591693c7b415e9869157c711fe11263c95d74eDavid Li								(yyg->yy_buffer_stack,
32031591693c7b415e9869157c711fe11263c95d74eDavid Li								num_to_alloc * sizeof(struct yy_buffer_state*)
32041591693c7b415e9869157c711fe11263c95d74eDavid Li								, yyscanner);
32051591693c7b415e9869157c711fe11263c95d74eDavid Li		if ( ! yyg->yy_buffer_stack )
32061591693c7b415e9869157c711fe11263c95d74eDavid Li			YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl_ensure_buffer_stack()" );
32071591693c7b415e9869157c711fe11263c95d74eDavid Li
32081591693c7b415e9869157c711fe11263c95d74eDavid Li		/* zero only the new slots.*/
32091591693c7b415e9869157c711fe11263c95d74eDavid Li		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
32101591693c7b415e9869157c711fe11263c95d74eDavid Li		yyg->yy_buffer_stack_max = num_to_alloc;
32111591693c7b415e9869157c711fe11263c95d74eDavid Li	}
32121591693c7b415e9869157c711fe11263c95d74eDavid Li}
32131591693c7b415e9869157c711fe11263c95d74eDavid Li
32141591693c7b415e9869157c711fe11263c95d74eDavid Li/** Setup the input buffer state to scan directly from a user-specified character buffer.
32151591693c7b415e9869157c711fe11263c95d74eDavid Li * @param base the character buffer
32161591693c7b415e9869157c711fe11263c95d74eDavid Li * @param size the size in bytes of the character buffer
32171591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object.
32181591693c7b415e9869157c711fe11263c95d74eDavid Li * @return the newly allocated buffer state object.
32191591693c7b415e9869157c711fe11263c95d74eDavid Li */
32201591693c7b415e9869157c711fe11263c95d74eDavid LiYY_BUFFER_STATE _mesa_glsl__scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
32211591693c7b415e9869157c711fe11263c95d74eDavid Li{
32221591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BUFFER_STATE b;
32231591693c7b415e9869157c711fe11263c95d74eDavid Li
32241591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( size < 2 ||
32251591693c7b415e9869157c711fe11263c95d74eDavid Li	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
32261591693c7b415e9869157c711fe11263c95d74eDavid Li	     base[size-1] != YY_END_OF_BUFFER_CHAR )
32271591693c7b415e9869157c711fe11263c95d74eDavid Li		/* They forgot to leave room for the EOB's. */
32281591693c7b415e9869157c711fe11263c95d74eDavid Li		return 0;
32291591693c7b415e9869157c711fe11263c95d74eDavid Li
32301591693c7b415e9869157c711fe11263c95d74eDavid Li	b = (YY_BUFFER_STATE) _mesa_glsl_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
32311591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( ! b )
32321591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl__scan_buffer()" );
32331591693c7b415e9869157c711fe11263c95d74eDavid Li
32341591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
32351591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_buf_pos = b->yy_ch_buf = base;
32361591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_is_our_buffer = 0;
32371591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_input_file = 0;
32381591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_n_chars = b->yy_buf_size;
32391591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_is_interactive = 0;
32401591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_at_bol = 1;
32411591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_fill_buffer = 0;
32421591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_buffer_status = YY_BUFFER_NEW;
32431591693c7b415e9869157c711fe11263c95d74eDavid Li
32441591693c7b415e9869157c711fe11263c95d74eDavid Li	_mesa_glsl__switch_to_buffer(b ,yyscanner );
32451591693c7b415e9869157c711fe11263c95d74eDavid Li
32461591693c7b415e9869157c711fe11263c95d74eDavid Li	return b;
32471591693c7b415e9869157c711fe11263c95d74eDavid Li}
32481591693c7b415e9869157c711fe11263c95d74eDavid Li
32491591693c7b415e9869157c711fe11263c95d74eDavid Li/** Setup the input buffer state to scan a string. The next call to _mesa_glsl_lex() will
32501591693c7b415e9869157c711fe11263c95d74eDavid Li * scan from a @e copy of @a str.
32511591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yystr a NUL-terminated string to scan
32521591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object.
32531591693c7b415e9869157c711fe11263c95d74eDavid Li * @return the newly allocated buffer state object.
32541591693c7b415e9869157c711fe11263c95d74eDavid Li * @note If you want to scan bytes that may contain NUL values, then use
32551591693c7b415e9869157c711fe11263c95d74eDavid Li *       _mesa_glsl__scan_bytes() instead.
32561591693c7b415e9869157c711fe11263c95d74eDavid Li */
32571591693c7b415e9869157c711fe11263c95d74eDavid LiYY_BUFFER_STATE _mesa_glsl__scan_string (yyconst char * yystr , yyscan_t yyscanner)
32581591693c7b415e9869157c711fe11263c95d74eDavid Li{
32591591693c7b415e9869157c711fe11263c95d74eDavid Li
32601591693c7b415e9869157c711fe11263c95d74eDavid Li	return _mesa_glsl__scan_bytes(yystr,strlen(yystr) ,yyscanner);
32611591693c7b415e9869157c711fe11263c95d74eDavid Li}
32621591693c7b415e9869157c711fe11263c95d74eDavid Li
32631591693c7b415e9869157c711fe11263c95d74eDavid Li/** Setup the input buffer state to scan the given bytes. The next call to _mesa_glsl_lex() will
32641591693c7b415e9869157c711fe11263c95d74eDavid Li * scan from a @e copy of @a bytes.
32651591693c7b415e9869157c711fe11263c95d74eDavid Li * @param bytes the byte buffer to scan
32661591693c7b415e9869157c711fe11263c95d74eDavid Li * @param len the number of bytes in the buffer pointed to by @a bytes.
32671591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object.
32681591693c7b415e9869157c711fe11263c95d74eDavid Li * @return the newly allocated buffer state object.
32691591693c7b415e9869157c711fe11263c95d74eDavid Li */
32701591693c7b415e9869157c711fe11263c95d74eDavid LiYY_BUFFER_STATE _mesa_glsl__scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
32711591693c7b415e9869157c711fe11263c95d74eDavid Li{
32721591693c7b415e9869157c711fe11263c95d74eDavid Li	YY_BUFFER_STATE b;
32731591693c7b415e9869157c711fe11263c95d74eDavid Li	char *buf;
32741591693c7b415e9869157c711fe11263c95d74eDavid Li	yy_size_t n;
32751591693c7b415e9869157c711fe11263c95d74eDavid Li	int i;
32761591693c7b415e9869157c711fe11263c95d74eDavid Li
32771591693c7b415e9869157c711fe11263c95d74eDavid Li	/* Get memory for full buffer, including space for trailing EOB's. */
32781591693c7b415e9869157c711fe11263c95d74eDavid Li	n = _yybytes_len + 2;
32791591693c7b415e9869157c711fe11263c95d74eDavid Li	buf = (char *) _mesa_glsl_alloc(n ,yyscanner );
32801591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( ! buf )
32811591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl__scan_bytes()" );
32821591693c7b415e9869157c711fe11263c95d74eDavid Li
32831591693c7b415e9869157c711fe11263c95d74eDavid Li	for ( i = 0; i < _yybytes_len; ++i )
32841591693c7b415e9869157c711fe11263c95d74eDavid Li		buf[i] = yybytes[i];
32851591693c7b415e9869157c711fe11263c95d74eDavid Li
32861591693c7b415e9869157c711fe11263c95d74eDavid Li	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
32871591693c7b415e9869157c711fe11263c95d74eDavid Li
32881591693c7b415e9869157c711fe11263c95d74eDavid Li	b = _mesa_glsl__scan_buffer(buf,n ,yyscanner);
32891591693c7b415e9869157c711fe11263c95d74eDavid Li	if ( ! b )
32901591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_FATAL_ERROR( "bad buffer in _mesa_glsl__scan_bytes()" );
32911591693c7b415e9869157c711fe11263c95d74eDavid Li
32921591693c7b415e9869157c711fe11263c95d74eDavid Li	/* It's okay to grow etc. this buffer, and we should throw it
32931591693c7b415e9869157c711fe11263c95d74eDavid Li	 * away when we're done.
32941591693c7b415e9869157c711fe11263c95d74eDavid Li	 */
32951591693c7b415e9869157c711fe11263c95d74eDavid Li	b->yy_is_our_buffer = 1;
32961591693c7b415e9869157c711fe11263c95d74eDavid Li
32971591693c7b415e9869157c711fe11263c95d74eDavid Li	return b;
32981591693c7b415e9869157c711fe11263c95d74eDavid Li}
32991591693c7b415e9869157c711fe11263c95d74eDavid Li
33001591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_EXIT_FAILURE
33011591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_EXIT_FAILURE 2
33021591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
33031591693c7b415e9869157c711fe11263c95d74eDavid Li
33041591693c7b415e9869157c711fe11263c95d74eDavid Listatic void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
33051591693c7b415e9869157c711fe11263c95d74eDavid Li{
33061591693c7b415e9869157c711fe11263c95d74eDavid Li    	(void) fprintf( stderr, "%s\n", msg );
33071591693c7b415e9869157c711fe11263c95d74eDavid Li	exit( YY_EXIT_FAILURE );
33081591693c7b415e9869157c711fe11263c95d74eDavid Li}
33091591693c7b415e9869157c711fe11263c95d74eDavid Li
33101591693c7b415e9869157c711fe11263c95d74eDavid Li/* Redefine yyless() so it works in section 3 code. */
33111591693c7b415e9869157c711fe11263c95d74eDavid Li
33121591693c7b415e9869157c711fe11263c95d74eDavid Li#undef yyless
33131591693c7b415e9869157c711fe11263c95d74eDavid Li#define yyless(n) \
33141591693c7b415e9869157c711fe11263c95d74eDavid Li	do \
33151591693c7b415e9869157c711fe11263c95d74eDavid Li		{ \
33161591693c7b415e9869157c711fe11263c95d74eDavid Li		/* Undo effects of setting up yytext. */ \
33171591693c7b415e9869157c711fe11263c95d74eDavid Li        int yyless_macro_arg = (n); \
33181591693c7b415e9869157c711fe11263c95d74eDavid Li        YY_LESS_LINENO(yyless_macro_arg);\
33191591693c7b415e9869157c711fe11263c95d74eDavid Li		yytext[yyleng] = yyg->yy_hold_char; \
33201591693c7b415e9869157c711fe11263c95d74eDavid Li		yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
33211591693c7b415e9869157c711fe11263c95d74eDavid Li		yyg->yy_hold_char = *yyg->yy_c_buf_p; \
33221591693c7b415e9869157c711fe11263c95d74eDavid Li		*yyg->yy_c_buf_p = '\0'; \
33231591693c7b415e9869157c711fe11263c95d74eDavid Li		yyleng = yyless_macro_arg; \
33241591693c7b415e9869157c711fe11263c95d74eDavid Li		} \
33251591693c7b415e9869157c711fe11263c95d74eDavid Li	while ( 0 )
33261591693c7b415e9869157c711fe11263c95d74eDavid Li
33271591693c7b415e9869157c711fe11263c95d74eDavid Li/* Accessor  methods (get/set functions) to struct members. */
33281591693c7b415e9869157c711fe11263c95d74eDavid Li
33291591693c7b415e9869157c711fe11263c95d74eDavid Li/** Get the user-defined data for this scanner.
33301591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object.
33311591693c7b415e9869157c711fe11263c95d74eDavid Li */
33321591693c7b415e9869157c711fe11263c95d74eDavid LiYY_EXTRA_TYPE _mesa_glsl_get_extra  (yyscan_t yyscanner)
33331591693c7b415e9869157c711fe11263c95d74eDavid Li{
33341591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
33351591693c7b415e9869157c711fe11263c95d74eDavid Li    return yyextra;
33361591693c7b415e9869157c711fe11263c95d74eDavid Li}
33371591693c7b415e9869157c711fe11263c95d74eDavid Li
33381591693c7b415e9869157c711fe11263c95d74eDavid Li/** Get the current line number.
33391591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object.
33401591693c7b415e9869157c711fe11263c95d74eDavid Li */
33411591693c7b415e9869157c711fe11263c95d74eDavid Liint _mesa_glsl_get_lineno  (yyscan_t yyscanner)
33421591693c7b415e9869157c711fe11263c95d74eDavid Li{
33431591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
33441591693c7b415e9869157c711fe11263c95d74eDavid Li
33451591693c7b415e9869157c711fe11263c95d74eDavid Li        if (! YY_CURRENT_BUFFER)
33461591693c7b415e9869157c711fe11263c95d74eDavid Li            return 0;
33471591693c7b415e9869157c711fe11263c95d74eDavid Li
33481591693c7b415e9869157c711fe11263c95d74eDavid Li    return yylineno;
33491591693c7b415e9869157c711fe11263c95d74eDavid Li}
33501591693c7b415e9869157c711fe11263c95d74eDavid Li
33511591693c7b415e9869157c711fe11263c95d74eDavid Li/** Get the current column number.
33521591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object.
33531591693c7b415e9869157c711fe11263c95d74eDavid Li */
33541591693c7b415e9869157c711fe11263c95d74eDavid Liint _mesa_glsl_get_column  (yyscan_t yyscanner)
33551591693c7b415e9869157c711fe11263c95d74eDavid Li{
33561591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
33571591693c7b415e9869157c711fe11263c95d74eDavid Li
33581591693c7b415e9869157c711fe11263c95d74eDavid Li        if (! YY_CURRENT_BUFFER)
33591591693c7b415e9869157c711fe11263c95d74eDavid Li            return 0;
33601591693c7b415e9869157c711fe11263c95d74eDavid Li
33611591693c7b415e9869157c711fe11263c95d74eDavid Li    return yycolumn;
33621591693c7b415e9869157c711fe11263c95d74eDavid Li}
33631591693c7b415e9869157c711fe11263c95d74eDavid Li
33641591693c7b415e9869157c711fe11263c95d74eDavid Li/** Get the input stream.
33651591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object.
33661591693c7b415e9869157c711fe11263c95d74eDavid Li */
33671591693c7b415e9869157c711fe11263c95d74eDavid LiFILE *_mesa_glsl_get_in  (yyscan_t yyscanner)
33681591693c7b415e9869157c711fe11263c95d74eDavid Li{
33691591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
33701591693c7b415e9869157c711fe11263c95d74eDavid Li    return yyin;
33711591693c7b415e9869157c711fe11263c95d74eDavid Li}
33721591693c7b415e9869157c711fe11263c95d74eDavid Li
33731591693c7b415e9869157c711fe11263c95d74eDavid Li/** Get the output stream.
33741591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object.
33751591693c7b415e9869157c711fe11263c95d74eDavid Li */
33761591693c7b415e9869157c711fe11263c95d74eDavid LiFILE *_mesa_glsl_get_out  (yyscan_t yyscanner)
33771591693c7b415e9869157c711fe11263c95d74eDavid Li{
33781591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
33791591693c7b415e9869157c711fe11263c95d74eDavid Li    return yyout;
33801591693c7b415e9869157c711fe11263c95d74eDavid Li}
33811591693c7b415e9869157c711fe11263c95d74eDavid Li
33821591693c7b415e9869157c711fe11263c95d74eDavid Li/** Get the length of the current token.
33831591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object.
33841591693c7b415e9869157c711fe11263c95d74eDavid Li */
33851591693c7b415e9869157c711fe11263c95d74eDavid Liint _mesa_glsl_get_leng  (yyscan_t yyscanner)
33861591693c7b415e9869157c711fe11263c95d74eDavid Li{
33871591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
33881591693c7b415e9869157c711fe11263c95d74eDavid Li    return yyleng;
33891591693c7b415e9869157c711fe11263c95d74eDavid Li}
33901591693c7b415e9869157c711fe11263c95d74eDavid Li
33911591693c7b415e9869157c711fe11263c95d74eDavid Li/** Get the current token.
33921591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object.
33931591693c7b415e9869157c711fe11263c95d74eDavid Li */
33941591693c7b415e9869157c711fe11263c95d74eDavid Li
33951591693c7b415e9869157c711fe11263c95d74eDavid Lichar *_mesa_glsl_get_text  (yyscan_t yyscanner)
33961591693c7b415e9869157c711fe11263c95d74eDavid Li{
33971591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
33981591693c7b415e9869157c711fe11263c95d74eDavid Li    return yytext;
33991591693c7b415e9869157c711fe11263c95d74eDavid Li}
34001591693c7b415e9869157c711fe11263c95d74eDavid Li
34011591693c7b415e9869157c711fe11263c95d74eDavid Li/** Set the user-defined data. This data is never touched by the scanner.
34021591693c7b415e9869157c711fe11263c95d74eDavid Li * @param user_defined The data to be associated with this scanner.
34031591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object.
34041591693c7b415e9869157c711fe11263c95d74eDavid Li */
34051591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_set_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
34061591693c7b415e9869157c711fe11263c95d74eDavid Li{
34071591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
34081591693c7b415e9869157c711fe11263c95d74eDavid Li    yyextra = user_defined ;
34091591693c7b415e9869157c711fe11263c95d74eDavid Li}
34101591693c7b415e9869157c711fe11263c95d74eDavid Li
34111591693c7b415e9869157c711fe11263c95d74eDavid Li/** Set the current line number.
34121591693c7b415e9869157c711fe11263c95d74eDavid Li * @param line_number
34131591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object.
34141591693c7b415e9869157c711fe11263c95d74eDavid Li */
34151591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_set_lineno (int  line_number , yyscan_t yyscanner)
34161591693c7b415e9869157c711fe11263c95d74eDavid Li{
34171591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
34181591693c7b415e9869157c711fe11263c95d74eDavid Li
34191591693c7b415e9869157c711fe11263c95d74eDavid Li        /* lineno is only valid if an input buffer exists. */
34201591693c7b415e9869157c711fe11263c95d74eDavid Li        if (! YY_CURRENT_BUFFER )
34211591693c7b415e9869157c711fe11263c95d74eDavid Li           yy_fatal_error( "_mesa_glsl_set_lineno called with no buffer" , yyscanner);
34221591693c7b415e9869157c711fe11263c95d74eDavid Li
34231591693c7b415e9869157c711fe11263c95d74eDavid Li    yylineno = line_number;
34241591693c7b415e9869157c711fe11263c95d74eDavid Li}
34251591693c7b415e9869157c711fe11263c95d74eDavid Li
34261591693c7b415e9869157c711fe11263c95d74eDavid Li/** Set the current column.
34271591693c7b415e9869157c711fe11263c95d74eDavid Li * @param line_number
34281591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object.
34291591693c7b415e9869157c711fe11263c95d74eDavid Li */
34301591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_set_column (int  column_no , yyscan_t yyscanner)
34311591693c7b415e9869157c711fe11263c95d74eDavid Li{
34321591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
34331591693c7b415e9869157c711fe11263c95d74eDavid Li
34341591693c7b415e9869157c711fe11263c95d74eDavid Li        /* column is only valid if an input buffer exists. */
34351591693c7b415e9869157c711fe11263c95d74eDavid Li        if (! YY_CURRENT_BUFFER )
34361591693c7b415e9869157c711fe11263c95d74eDavid Li           yy_fatal_error( "_mesa_glsl_set_column called with no buffer" , yyscanner);
34371591693c7b415e9869157c711fe11263c95d74eDavid Li
34381591693c7b415e9869157c711fe11263c95d74eDavid Li    yycolumn = column_no;
34391591693c7b415e9869157c711fe11263c95d74eDavid Li}
34401591693c7b415e9869157c711fe11263c95d74eDavid Li
34411591693c7b415e9869157c711fe11263c95d74eDavid Li/** Set the input stream. This does not discard the current
34421591693c7b415e9869157c711fe11263c95d74eDavid Li * input buffer.
34431591693c7b415e9869157c711fe11263c95d74eDavid Li * @param in_str A readable stream.
34441591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object.
34451591693c7b415e9869157c711fe11263c95d74eDavid Li * @see _mesa_glsl__switch_to_buffer
34461591693c7b415e9869157c711fe11263c95d74eDavid Li */
34471591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_set_in (FILE *  in_str , yyscan_t yyscanner)
34481591693c7b415e9869157c711fe11263c95d74eDavid Li{
34491591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
34501591693c7b415e9869157c711fe11263c95d74eDavid Li    yyin = in_str ;
34511591693c7b415e9869157c711fe11263c95d74eDavid Li}
34521591693c7b415e9869157c711fe11263c95d74eDavid Li
34531591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_set_out (FILE *  out_str , yyscan_t yyscanner)
34541591693c7b415e9869157c711fe11263c95d74eDavid Li{
34551591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
34561591693c7b415e9869157c711fe11263c95d74eDavid Li    yyout = out_str ;
34571591693c7b415e9869157c711fe11263c95d74eDavid Li}
34581591693c7b415e9869157c711fe11263c95d74eDavid Li
34591591693c7b415e9869157c711fe11263c95d74eDavid Liint _mesa_glsl_get_debug  (yyscan_t yyscanner)
34601591693c7b415e9869157c711fe11263c95d74eDavid Li{
34611591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
34621591693c7b415e9869157c711fe11263c95d74eDavid Li    return yy_flex_debug;
34631591693c7b415e9869157c711fe11263c95d74eDavid Li}
34641591693c7b415e9869157c711fe11263c95d74eDavid Li
34651591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_set_debug (int  bdebug , yyscan_t yyscanner)
34661591693c7b415e9869157c711fe11263c95d74eDavid Li{
34671591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
34681591693c7b415e9869157c711fe11263c95d74eDavid Li    yy_flex_debug = bdebug ;
34691591693c7b415e9869157c711fe11263c95d74eDavid Li}
34701591693c7b415e9869157c711fe11263c95d74eDavid Li
34711591693c7b415e9869157c711fe11263c95d74eDavid Li/* Accessor methods for yylval and yylloc */
34721591693c7b415e9869157c711fe11263c95d74eDavid Li
34731591693c7b415e9869157c711fe11263c95d74eDavid LiYYSTYPE * _mesa_glsl_get_lval  (yyscan_t yyscanner)
34741591693c7b415e9869157c711fe11263c95d74eDavid Li{
34751591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
34761591693c7b415e9869157c711fe11263c95d74eDavid Li    return yylval;
34771591693c7b415e9869157c711fe11263c95d74eDavid Li}
34781591693c7b415e9869157c711fe11263c95d74eDavid Li
34791591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_set_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
34801591693c7b415e9869157c711fe11263c95d74eDavid Li{
34811591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
34821591693c7b415e9869157c711fe11263c95d74eDavid Li    yylval = yylval_param;
34831591693c7b415e9869157c711fe11263c95d74eDavid Li}
34841591693c7b415e9869157c711fe11263c95d74eDavid Li
34851591693c7b415e9869157c711fe11263c95d74eDavid LiYYLTYPE *_mesa_glsl_get_lloc  (yyscan_t yyscanner)
34861591693c7b415e9869157c711fe11263c95d74eDavid Li{
34871591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
34881591693c7b415e9869157c711fe11263c95d74eDavid Li    return yylloc;
34891591693c7b415e9869157c711fe11263c95d74eDavid Li}
34901591693c7b415e9869157c711fe11263c95d74eDavid Li
34911591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_set_lloc (YYLTYPE *  yylloc_param , yyscan_t yyscanner)
34921591693c7b415e9869157c711fe11263c95d74eDavid Li{
34931591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
34941591693c7b415e9869157c711fe11263c95d74eDavid Li    yylloc = yylloc_param;
34951591693c7b415e9869157c711fe11263c95d74eDavid Li}
34961591693c7b415e9869157c711fe11263c95d74eDavid Li
34971591693c7b415e9869157c711fe11263c95d74eDavid Li/* User-visible API */
34981591693c7b415e9869157c711fe11263c95d74eDavid Li
34991591693c7b415e9869157c711fe11263c95d74eDavid Li/* _mesa_glsl_lex_init is special because it creates the scanner itself, so it is
35001591693c7b415e9869157c711fe11263c95d74eDavid Li * the ONLY reentrant function that doesn't take the scanner as the last argument.
35011591693c7b415e9869157c711fe11263c95d74eDavid Li * That's why we explicitly handle the declaration, instead of using our macros.
35021591693c7b415e9869157c711fe11263c95d74eDavid Li */
35031591693c7b415e9869157c711fe11263c95d74eDavid Li
35041591693c7b415e9869157c711fe11263c95d74eDavid Liint _mesa_glsl_lex_init(yyscan_t* ptr_yy_globals)
35051591693c7b415e9869157c711fe11263c95d74eDavid Li
35061591693c7b415e9869157c711fe11263c95d74eDavid Li{
35071591693c7b415e9869157c711fe11263c95d74eDavid Li    if (ptr_yy_globals == NULL){
35081591693c7b415e9869157c711fe11263c95d74eDavid Li        errno = EINVAL;
35091591693c7b415e9869157c711fe11263c95d74eDavid Li        return 1;
35101591693c7b415e9869157c711fe11263c95d74eDavid Li    }
35111591693c7b415e9869157c711fe11263c95d74eDavid Li
35121591693c7b415e9869157c711fe11263c95d74eDavid Li    *ptr_yy_globals = (yyscan_t) _mesa_glsl_alloc ( sizeof( struct yyguts_t ), NULL );
35131591693c7b415e9869157c711fe11263c95d74eDavid Li
35141591693c7b415e9869157c711fe11263c95d74eDavid Li    if (*ptr_yy_globals == NULL){
35151591693c7b415e9869157c711fe11263c95d74eDavid Li        errno = ENOMEM;
35161591693c7b415e9869157c711fe11263c95d74eDavid Li        return 1;
35171591693c7b415e9869157c711fe11263c95d74eDavid Li    }
35181591693c7b415e9869157c711fe11263c95d74eDavid Li
35191591693c7b415e9869157c711fe11263c95d74eDavid Li    /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
35201591693c7b415e9869157c711fe11263c95d74eDavid Li    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
35211591693c7b415e9869157c711fe11263c95d74eDavid Li
35221591693c7b415e9869157c711fe11263c95d74eDavid Li    return yy_init_globals ( *ptr_yy_globals );
35231591693c7b415e9869157c711fe11263c95d74eDavid Li}
35241591693c7b415e9869157c711fe11263c95d74eDavid Li
35251591693c7b415e9869157c711fe11263c95d74eDavid Li/* _mesa_glsl_lex_init_extra has the same functionality as _mesa_glsl_lex_init, but follows the
35261591693c7b415e9869157c711fe11263c95d74eDavid Li * convention of taking the scanner as the last argument. Note however, that
35271591693c7b415e9869157c711fe11263c95d74eDavid Li * this is a *pointer* to a scanner, as it will be allocated by this call (and
35281591693c7b415e9869157c711fe11263c95d74eDavid Li * is the reason, too, why this function also must handle its own declaration).
35291591693c7b415e9869157c711fe11263c95d74eDavid Li * The user defined value in the first argument will be available to _mesa_glsl_alloc in
35301591693c7b415e9869157c711fe11263c95d74eDavid Li * the yyextra field.
35311591693c7b415e9869157c711fe11263c95d74eDavid Li */
35321591693c7b415e9869157c711fe11263c95d74eDavid Li
35331591693c7b415e9869157c711fe11263c95d74eDavid Liint _mesa_glsl_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
35341591693c7b415e9869157c711fe11263c95d74eDavid Li
35351591693c7b415e9869157c711fe11263c95d74eDavid Li{
35361591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t dummy_yyguts;
35371591693c7b415e9869157c711fe11263c95d74eDavid Li
35381591693c7b415e9869157c711fe11263c95d74eDavid Li    _mesa_glsl_set_extra (yy_user_defined, &dummy_yyguts);
35391591693c7b415e9869157c711fe11263c95d74eDavid Li
35401591693c7b415e9869157c711fe11263c95d74eDavid Li    if (ptr_yy_globals == NULL){
35411591693c7b415e9869157c711fe11263c95d74eDavid Li        errno = EINVAL;
35421591693c7b415e9869157c711fe11263c95d74eDavid Li        return 1;
35431591693c7b415e9869157c711fe11263c95d74eDavid Li    }
35441591693c7b415e9869157c711fe11263c95d74eDavid Li
35451591693c7b415e9869157c711fe11263c95d74eDavid Li    *ptr_yy_globals = (yyscan_t) _mesa_glsl_alloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
35461591693c7b415e9869157c711fe11263c95d74eDavid Li
35471591693c7b415e9869157c711fe11263c95d74eDavid Li    if (*ptr_yy_globals == NULL){
35481591693c7b415e9869157c711fe11263c95d74eDavid Li        errno = ENOMEM;
35491591693c7b415e9869157c711fe11263c95d74eDavid Li        return 1;
35501591693c7b415e9869157c711fe11263c95d74eDavid Li    }
35511591693c7b415e9869157c711fe11263c95d74eDavid Li
35521591693c7b415e9869157c711fe11263c95d74eDavid Li    /* By setting to 0xAA, we expose bugs in
35531591693c7b415e9869157c711fe11263c95d74eDavid Li    yy_init_globals. Leave at 0x00 for releases. */
35541591693c7b415e9869157c711fe11263c95d74eDavid Li    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
35551591693c7b415e9869157c711fe11263c95d74eDavid Li
35561591693c7b415e9869157c711fe11263c95d74eDavid Li    _mesa_glsl_set_extra (yy_user_defined, *ptr_yy_globals);
35571591693c7b415e9869157c711fe11263c95d74eDavid Li
35581591693c7b415e9869157c711fe11263c95d74eDavid Li    return yy_init_globals ( *ptr_yy_globals );
35591591693c7b415e9869157c711fe11263c95d74eDavid Li}
35601591693c7b415e9869157c711fe11263c95d74eDavid Li
35611591693c7b415e9869157c711fe11263c95d74eDavid Listatic int yy_init_globals (yyscan_t yyscanner)
35621591693c7b415e9869157c711fe11263c95d74eDavid Li{
35631591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
35641591693c7b415e9869157c711fe11263c95d74eDavid Li    /* Initialization is the same as for the non-reentrant scanner.
35651591693c7b415e9869157c711fe11263c95d74eDavid Li     * This function is called from _mesa_glsl_lex_destroy(), so don't allocate here.
35661591693c7b415e9869157c711fe11263c95d74eDavid Li     */
35671591693c7b415e9869157c711fe11263c95d74eDavid Li
35681591693c7b415e9869157c711fe11263c95d74eDavid Li    yyg->yy_buffer_stack = 0;
35691591693c7b415e9869157c711fe11263c95d74eDavid Li    yyg->yy_buffer_stack_top = 0;
35701591693c7b415e9869157c711fe11263c95d74eDavid Li    yyg->yy_buffer_stack_max = 0;
35711591693c7b415e9869157c711fe11263c95d74eDavid Li    yyg->yy_c_buf_p = (char *) 0;
35721591693c7b415e9869157c711fe11263c95d74eDavid Li    yyg->yy_init = 0;
35731591693c7b415e9869157c711fe11263c95d74eDavid Li    yyg->yy_start = 0;
35741591693c7b415e9869157c711fe11263c95d74eDavid Li
35751591693c7b415e9869157c711fe11263c95d74eDavid Li    yyg->yy_start_stack_ptr = 0;
35761591693c7b415e9869157c711fe11263c95d74eDavid Li    yyg->yy_start_stack_depth = 0;
35771591693c7b415e9869157c711fe11263c95d74eDavid Li    yyg->yy_start_stack =  NULL;
35781591693c7b415e9869157c711fe11263c95d74eDavid Li
35791591693c7b415e9869157c711fe11263c95d74eDavid Li/* Defined in main.c */
35801591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef YY_STDINIT
35811591693c7b415e9869157c711fe11263c95d74eDavid Li    yyin = stdin;
35821591693c7b415e9869157c711fe11263c95d74eDavid Li    yyout = stdout;
35831591693c7b415e9869157c711fe11263c95d74eDavid Li#else
35841591693c7b415e9869157c711fe11263c95d74eDavid Li    yyin = (FILE *) 0;
35851591693c7b415e9869157c711fe11263c95d74eDavid Li    yyout = (FILE *) 0;
35861591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
35871591693c7b415e9869157c711fe11263c95d74eDavid Li
35881591693c7b415e9869157c711fe11263c95d74eDavid Li    /* For future reference: Set errno on error, since we are called by
35891591693c7b415e9869157c711fe11263c95d74eDavid Li     * _mesa_glsl_lex_init()
35901591693c7b415e9869157c711fe11263c95d74eDavid Li     */
35911591693c7b415e9869157c711fe11263c95d74eDavid Li    return 0;
35921591693c7b415e9869157c711fe11263c95d74eDavid Li}
35931591693c7b415e9869157c711fe11263c95d74eDavid Li
35941591693c7b415e9869157c711fe11263c95d74eDavid Li/* _mesa_glsl_lex_destroy is for both reentrant and non-reentrant scanners. */
35951591693c7b415e9869157c711fe11263c95d74eDavid Liint _mesa_glsl_lex_destroy  (yyscan_t yyscanner)
35961591693c7b415e9869157c711fe11263c95d74eDavid Li{
35971591693c7b415e9869157c711fe11263c95d74eDavid Li    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
35981591693c7b415e9869157c711fe11263c95d74eDavid Li
35991591693c7b415e9869157c711fe11263c95d74eDavid Li    /* Pop the buffer stack, destroying each element. */
36001591693c7b415e9869157c711fe11263c95d74eDavid Li	while(YY_CURRENT_BUFFER){
36011591693c7b415e9869157c711fe11263c95d74eDavid Li		_mesa_glsl__delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
36021591693c7b415e9869157c711fe11263c95d74eDavid Li		YY_CURRENT_BUFFER_LVALUE = NULL;
36031591693c7b415e9869157c711fe11263c95d74eDavid Li		_mesa_glsl_pop_buffer_state(yyscanner);
36041591693c7b415e9869157c711fe11263c95d74eDavid Li	}
36051591693c7b415e9869157c711fe11263c95d74eDavid Li
36061591693c7b415e9869157c711fe11263c95d74eDavid Li	/* Destroy the stack itself. */
36071591693c7b415e9869157c711fe11263c95d74eDavid Li	_mesa_glsl_free(yyg->yy_buffer_stack ,yyscanner);
36081591693c7b415e9869157c711fe11263c95d74eDavid Li	yyg->yy_buffer_stack = NULL;
36091591693c7b415e9869157c711fe11263c95d74eDavid Li
36101591693c7b415e9869157c711fe11263c95d74eDavid Li    /* Destroy the start condition stack. */
36111591693c7b415e9869157c711fe11263c95d74eDavid Li        _mesa_glsl_free(yyg->yy_start_stack ,yyscanner );
36121591693c7b415e9869157c711fe11263c95d74eDavid Li        yyg->yy_start_stack = NULL;
36131591693c7b415e9869157c711fe11263c95d74eDavid Li
36141591693c7b415e9869157c711fe11263c95d74eDavid Li    /* Reset the globals. This is important in a non-reentrant scanner so the next time
36151591693c7b415e9869157c711fe11263c95d74eDavid Li     * _mesa_glsl_lex() is called, initialization will occur. */
36161591693c7b415e9869157c711fe11263c95d74eDavid Li    yy_init_globals( yyscanner);
36171591693c7b415e9869157c711fe11263c95d74eDavid Li
36181591693c7b415e9869157c711fe11263c95d74eDavid Li    /* Destroy the main struct (reentrant only). */
36191591693c7b415e9869157c711fe11263c95d74eDavid Li    _mesa_glsl_free ( yyscanner , yyscanner );
36201591693c7b415e9869157c711fe11263c95d74eDavid Li    yyscanner = NULL;
36211591693c7b415e9869157c711fe11263c95d74eDavid Li    return 0;
36221591693c7b415e9869157c711fe11263c95d74eDavid Li}
36231591693c7b415e9869157c711fe11263c95d74eDavid Li
36241591693c7b415e9869157c711fe11263c95d74eDavid Li/*
36251591693c7b415e9869157c711fe11263c95d74eDavid Li * Internal utility routines.
36261591693c7b415e9869157c711fe11263c95d74eDavid Li */
36271591693c7b415e9869157c711fe11263c95d74eDavid Li
36281591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef yytext_ptr
36291591693c7b415e9869157c711fe11263c95d74eDavid Listatic void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
36301591693c7b415e9869157c711fe11263c95d74eDavid Li{
36311591693c7b415e9869157c711fe11263c95d74eDavid Li	register int i;
36321591693c7b415e9869157c711fe11263c95d74eDavid Li	for ( i = 0; i < n; ++i )
36331591693c7b415e9869157c711fe11263c95d74eDavid Li		s1[i] = s2[i];
36341591693c7b415e9869157c711fe11263c95d74eDavid Li}
36351591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
36361591693c7b415e9869157c711fe11263c95d74eDavid Li
36371591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef YY_NEED_STRLEN
36381591693c7b415e9869157c711fe11263c95d74eDavid Listatic int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
36391591693c7b415e9869157c711fe11263c95d74eDavid Li{
36401591693c7b415e9869157c711fe11263c95d74eDavid Li	register int n;
36411591693c7b415e9869157c711fe11263c95d74eDavid Li	for ( n = 0; s[n]; ++n )
36421591693c7b415e9869157c711fe11263c95d74eDavid Li		;
36431591693c7b415e9869157c711fe11263c95d74eDavid Li
36441591693c7b415e9869157c711fe11263c95d74eDavid Li	return n;
36451591693c7b415e9869157c711fe11263c95d74eDavid Li}
36461591693c7b415e9869157c711fe11263c95d74eDavid Li#endif
36471591693c7b415e9869157c711fe11263c95d74eDavid Li
36481591693c7b415e9869157c711fe11263c95d74eDavid Livoid *_mesa_glsl_alloc (yy_size_t  size , yyscan_t yyscanner)
36491591693c7b415e9869157c711fe11263c95d74eDavid Li{
36501591693c7b415e9869157c711fe11263c95d74eDavid Li	return (void *) malloc( size );
36511591693c7b415e9869157c711fe11263c95d74eDavid Li}
36521591693c7b415e9869157c711fe11263c95d74eDavid Li
36531591693c7b415e9869157c711fe11263c95d74eDavid Livoid *_mesa_glsl_realloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
36541591693c7b415e9869157c711fe11263c95d74eDavid Li{
36551591693c7b415e9869157c711fe11263c95d74eDavid Li	/* The cast to (char *) in the following accommodates both
36561591693c7b415e9869157c711fe11263c95d74eDavid Li	 * implementations that use char* generic pointers, and those
36571591693c7b415e9869157c711fe11263c95d74eDavid Li	 * that use void* generic pointers.  It works with the latter
36581591693c7b415e9869157c711fe11263c95d74eDavid Li	 * because both ANSI C and C++ allow castless assignment from
36591591693c7b415e9869157c711fe11263c95d74eDavid Li	 * any pointer type to void*, and deal with argument conversions
36601591693c7b415e9869157c711fe11263c95d74eDavid Li	 * as though doing an assignment.
36611591693c7b415e9869157c711fe11263c95d74eDavid Li	 */
36621591693c7b415e9869157c711fe11263c95d74eDavid Li	return (void *) realloc( (char *) ptr, size );
36631591693c7b415e9869157c711fe11263c95d74eDavid Li}
36641591693c7b415e9869157c711fe11263c95d74eDavid Li
36651591693c7b415e9869157c711fe11263c95d74eDavid Livoid _mesa_glsl_free (void * ptr , yyscan_t yyscanner)
36661591693c7b415e9869157c711fe11263c95d74eDavid Li{
36671591693c7b415e9869157c711fe11263c95d74eDavid Li	free( (char *) ptr );	/* see _mesa_glsl_realloc() for (char *) cast */
36681591693c7b415e9869157c711fe11263c95d74eDavid Li}
36691591693c7b415e9869157c711fe11263c95d74eDavid Li
36701591693c7b415e9869157c711fe11263c95d74eDavid Li#define YYTABLES_NAME "yytables"
36711591693c7b415e9869157c711fe11263c95d74eDavid Li
36721591693c7b415e9869157c711fe11263c95d74eDavid Li#line 422 "glsl_lexer.lpp"
36731591693c7b415e9869157c711fe11263c95d74eDavid Li
36741591693c7b415e9869157c711fe11263c95d74eDavid Li
36751591693c7b415e9869157c711fe11263c95d74eDavid Li
36761591693c7b415e9869157c711fe11263c95d74eDavid Livoid
36771591693c7b415e9869157c711fe11263c95d74eDavid Li_mesa_glsl_lexer_ctor(struct _mesa_glsl_parse_state *state, const char *string)
36781591693c7b415e9869157c711fe11263c95d74eDavid Li{
36791591693c7b415e9869157c711fe11263c95d74eDavid Li   _mesa_glsl_lex_init_extra(state,& state->scanner);
36801591693c7b415e9869157c711fe11263c95d74eDavid Li   _mesa_glsl__scan_string(string,state->scanner);
36811591693c7b415e9869157c711fe11263c95d74eDavid Li}
36821591693c7b415e9869157c711fe11263c95d74eDavid Li
36831591693c7b415e9869157c711fe11263c95d74eDavid Livoid
36841591693c7b415e9869157c711fe11263c95d74eDavid Li_mesa_glsl_lexer_dtor(struct _mesa_glsl_parse_state *state)
36851591693c7b415e9869157c711fe11263c95d74eDavid Li{
36861591693c7b415e9869157c711fe11263c95d74eDavid Li   _mesa_glsl_lex_destroy(state->scanner);
36871591693c7b415e9869157c711fe11263c95d74eDavid Li}
36881591693c7b415e9869157c711fe11263c95d74eDavid Li
3689