110e230b6Smaya#line 1 "src/compiler/glsl/glsl_lexer.cpp"
210e230b6Smaya
310e230b6Smaya#line 3 "src/compiler/glsl/glsl_lexer.cpp"
410e230b6Smaya
510e230b6Smaya#define  YY_INT_ALIGNED short int
610e230b6Smaya
710e230b6Smaya/* A lexical scanner generated by flex */
810e230b6Smaya
910e230b6Smaya#define FLEX_SCANNER
1010e230b6Smaya#define YY_FLEX_MAJOR_VERSION 2
1110e230b6Smaya#define YY_FLEX_MINOR_VERSION 6
1210e230b6Smaya#define YY_FLEX_SUBMINOR_VERSION 4
1310e230b6Smaya#if YY_FLEX_SUBMINOR_VERSION > 0
1410e230b6Smaya#define FLEX_BETA
1510e230b6Smaya#endif
1610e230b6Smaya
1710e230b6Smaya#ifdef yy_create_buffer
1810e230b6Smaya#define _mesa_glsl_lexer__create_buffer_ALREADY_DEFINED
1910e230b6Smaya#else
2010e230b6Smaya#define yy_create_buffer _mesa_glsl_lexer__create_buffer
2110e230b6Smaya#endif
2210e230b6Smaya
2310e230b6Smaya#ifdef yy_delete_buffer
2410e230b6Smaya#define _mesa_glsl_lexer__delete_buffer_ALREADY_DEFINED
2510e230b6Smaya#else
2610e230b6Smaya#define yy_delete_buffer _mesa_glsl_lexer__delete_buffer
2710e230b6Smaya#endif
2810e230b6Smaya
2910e230b6Smaya#ifdef yy_scan_buffer
3010e230b6Smaya#define _mesa_glsl_lexer__scan_buffer_ALREADY_DEFINED
3110e230b6Smaya#else
3210e230b6Smaya#define yy_scan_buffer _mesa_glsl_lexer__scan_buffer
3310e230b6Smaya#endif
3410e230b6Smaya
3510e230b6Smaya#ifdef yy_scan_string
3610e230b6Smaya#define _mesa_glsl_lexer__scan_string_ALREADY_DEFINED
3710e230b6Smaya#else
3810e230b6Smaya#define yy_scan_string _mesa_glsl_lexer__scan_string
3910e230b6Smaya#endif
4010e230b6Smaya
4110e230b6Smaya#ifdef yy_scan_bytes
4210e230b6Smaya#define _mesa_glsl_lexer__scan_bytes_ALREADY_DEFINED
4310e230b6Smaya#else
4410e230b6Smaya#define yy_scan_bytes _mesa_glsl_lexer__scan_bytes
4510e230b6Smaya#endif
4610e230b6Smaya
4710e230b6Smaya#ifdef yy_init_buffer
4810e230b6Smaya#define _mesa_glsl_lexer__init_buffer_ALREADY_DEFINED
4910e230b6Smaya#else
5010e230b6Smaya#define yy_init_buffer _mesa_glsl_lexer__init_buffer
5110e230b6Smaya#endif
5210e230b6Smaya
5310e230b6Smaya#ifdef yy_flush_buffer
5410e230b6Smaya#define _mesa_glsl_lexer__flush_buffer_ALREADY_DEFINED
5510e230b6Smaya#else
5610e230b6Smaya#define yy_flush_buffer _mesa_glsl_lexer__flush_buffer
5710e230b6Smaya#endif
5810e230b6Smaya
5910e230b6Smaya#ifdef yy_load_buffer_state
6010e230b6Smaya#define _mesa_glsl_lexer__load_buffer_state_ALREADY_DEFINED
6110e230b6Smaya#else
6210e230b6Smaya#define yy_load_buffer_state _mesa_glsl_lexer__load_buffer_state
6310e230b6Smaya#endif
6410e230b6Smaya
6510e230b6Smaya#ifdef yy_switch_to_buffer
6610e230b6Smaya#define _mesa_glsl_lexer__switch_to_buffer_ALREADY_DEFINED
6710e230b6Smaya#else
6810e230b6Smaya#define yy_switch_to_buffer _mesa_glsl_lexer__switch_to_buffer
6910e230b6Smaya#endif
7010e230b6Smaya
7110e230b6Smaya#ifdef yypush_buffer_state
7210e230b6Smaya#define _mesa_glsl_lexer_push_buffer_state_ALREADY_DEFINED
7310e230b6Smaya#else
7410e230b6Smaya#define yypush_buffer_state _mesa_glsl_lexer_push_buffer_state
7510e230b6Smaya#endif
7610e230b6Smaya
7710e230b6Smaya#ifdef yypop_buffer_state
7810e230b6Smaya#define _mesa_glsl_lexer_pop_buffer_state_ALREADY_DEFINED
7910e230b6Smaya#else
8010e230b6Smaya#define yypop_buffer_state _mesa_glsl_lexer_pop_buffer_state
8110e230b6Smaya#endif
8210e230b6Smaya
8310e230b6Smaya#ifdef yyensure_buffer_stack
8410e230b6Smaya#define _mesa_glsl_lexer_ensure_buffer_stack_ALREADY_DEFINED
8510e230b6Smaya#else
8610e230b6Smaya#define yyensure_buffer_stack _mesa_glsl_lexer_ensure_buffer_stack
8710e230b6Smaya#endif
8810e230b6Smaya
8910e230b6Smaya#ifdef yylex
9010e230b6Smaya#define _mesa_glsl_lexer_lex_ALREADY_DEFINED
9110e230b6Smaya#else
9210e230b6Smaya#define yylex _mesa_glsl_lexer_lex
9310e230b6Smaya#endif
9410e230b6Smaya
9510e230b6Smaya#ifdef yyrestart
9610e230b6Smaya#define _mesa_glsl_lexer_restart_ALREADY_DEFINED
9710e230b6Smaya#else
9810e230b6Smaya#define yyrestart _mesa_glsl_lexer_restart
9910e230b6Smaya#endif
10010e230b6Smaya
10110e230b6Smaya#ifdef yylex_init
10210e230b6Smaya#define _mesa_glsl_lexer_lex_init_ALREADY_DEFINED
10310e230b6Smaya#else
10410e230b6Smaya#define yylex_init _mesa_glsl_lexer_lex_init
10510e230b6Smaya#endif
10610e230b6Smaya
10710e230b6Smaya#ifdef yylex_init_extra
10810e230b6Smaya#define _mesa_glsl_lexer_lex_init_extra_ALREADY_DEFINED
10910e230b6Smaya#else
11010e230b6Smaya#define yylex_init_extra _mesa_glsl_lexer_lex_init_extra
11110e230b6Smaya#endif
11210e230b6Smaya
11310e230b6Smaya#ifdef yylex_destroy
11410e230b6Smaya#define _mesa_glsl_lexer_lex_destroy_ALREADY_DEFINED
11510e230b6Smaya#else
11610e230b6Smaya#define yylex_destroy _mesa_glsl_lexer_lex_destroy
11710e230b6Smaya#endif
11810e230b6Smaya
11910e230b6Smaya#ifdef yyget_debug
12010e230b6Smaya#define _mesa_glsl_lexer_get_debug_ALREADY_DEFINED
12110e230b6Smaya#else
12210e230b6Smaya#define yyget_debug _mesa_glsl_lexer_get_debug
12310e230b6Smaya#endif
12410e230b6Smaya
12510e230b6Smaya#ifdef yyset_debug
12610e230b6Smaya#define _mesa_glsl_lexer_set_debug_ALREADY_DEFINED
12710e230b6Smaya#else
12810e230b6Smaya#define yyset_debug _mesa_glsl_lexer_set_debug
12910e230b6Smaya#endif
13010e230b6Smaya
13110e230b6Smaya#ifdef yyget_extra
13210e230b6Smaya#define _mesa_glsl_lexer_get_extra_ALREADY_DEFINED
13310e230b6Smaya#else
13410e230b6Smaya#define yyget_extra _mesa_glsl_lexer_get_extra
13510e230b6Smaya#endif
13610e230b6Smaya
13710e230b6Smaya#ifdef yyset_extra
13810e230b6Smaya#define _mesa_glsl_lexer_set_extra_ALREADY_DEFINED
13910e230b6Smaya#else
14010e230b6Smaya#define yyset_extra _mesa_glsl_lexer_set_extra
14110e230b6Smaya#endif
14210e230b6Smaya
14310e230b6Smaya#ifdef yyget_in
14410e230b6Smaya#define _mesa_glsl_lexer_get_in_ALREADY_DEFINED
14510e230b6Smaya#else
14610e230b6Smaya#define yyget_in _mesa_glsl_lexer_get_in
14710e230b6Smaya#endif
14810e230b6Smaya
14910e230b6Smaya#ifdef yyset_in
15010e230b6Smaya#define _mesa_glsl_lexer_set_in_ALREADY_DEFINED
15110e230b6Smaya#else
15210e230b6Smaya#define yyset_in _mesa_glsl_lexer_set_in
15310e230b6Smaya#endif
15410e230b6Smaya
15510e230b6Smaya#ifdef yyget_out
15610e230b6Smaya#define _mesa_glsl_lexer_get_out_ALREADY_DEFINED
15710e230b6Smaya#else
15810e230b6Smaya#define yyget_out _mesa_glsl_lexer_get_out
15910e230b6Smaya#endif
16010e230b6Smaya
16110e230b6Smaya#ifdef yyset_out
16210e230b6Smaya#define _mesa_glsl_lexer_set_out_ALREADY_DEFINED
16310e230b6Smaya#else
16410e230b6Smaya#define yyset_out _mesa_glsl_lexer_set_out
16510e230b6Smaya#endif
16610e230b6Smaya
16710e230b6Smaya#ifdef yyget_leng
16810e230b6Smaya#define _mesa_glsl_lexer_get_leng_ALREADY_DEFINED
16910e230b6Smaya#else
17010e230b6Smaya#define yyget_leng _mesa_glsl_lexer_get_leng
17110e230b6Smaya#endif
17210e230b6Smaya
17310e230b6Smaya#ifdef yyget_text
17410e230b6Smaya#define _mesa_glsl_lexer_get_text_ALREADY_DEFINED
17510e230b6Smaya#else
17610e230b6Smaya#define yyget_text _mesa_glsl_lexer_get_text
17710e230b6Smaya#endif
17810e230b6Smaya
17910e230b6Smaya#ifdef yyget_lineno
18010e230b6Smaya#define _mesa_glsl_lexer_get_lineno_ALREADY_DEFINED
18110e230b6Smaya#else
18210e230b6Smaya#define yyget_lineno _mesa_glsl_lexer_get_lineno
18310e230b6Smaya#endif
18410e230b6Smaya
18510e230b6Smaya#ifdef yyset_lineno
18610e230b6Smaya#define _mesa_glsl_lexer_set_lineno_ALREADY_DEFINED
18710e230b6Smaya#else
18810e230b6Smaya#define yyset_lineno _mesa_glsl_lexer_set_lineno
18910e230b6Smaya#endif
19010e230b6Smaya
19110e230b6Smaya#ifdef yyget_column
19210e230b6Smaya#define _mesa_glsl_lexer_get_column_ALREADY_DEFINED
19310e230b6Smaya#else
19410e230b6Smaya#define yyget_column _mesa_glsl_lexer_get_column
19510e230b6Smaya#endif
19610e230b6Smaya
19710e230b6Smaya#ifdef yyset_column
19810e230b6Smaya#define _mesa_glsl_lexer_set_column_ALREADY_DEFINED
19910e230b6Smaya#else
20010e230b6Smaya#define yyset_column _mesa_glsl_lexer_set_column
20110e230b6Smaya#endif
20210e230b6Smaya
20310e230b6Smaya#ifdef yywrap
20410e230b6Smaya#define _mesa_glsl_lexer_wrap_ALREADY_DEFINED
20510e230b6Smaya#else
20610e230b6Smaya#define yywrap _mesa_glsl_lexer_wrap
20710e230b6Smaya#endif
20810e230b6Smaya
20910e230b6Smaya#ifdef yyget_lval
21010e230b6Smaya#define _mesa_glsl_lexer_get_lval_ALREADY_DEFINED
21110e230b6Smaya#else
21210e230b6Smaya#define yyget_lval _mesa_glsl_lexer_get_lval
21310e230b6Smaya#endif
21410e230b6Smaya
21510e230b6Smaya#ifdef yyset_lval
21610e230b6Smaya#define _mesa_glsl_lexer_set_lval_ALREADY_DEFINED
21710e230b6Smaya#else
21810e230b6Smaya#define yyset_lval _mesa_glsl_lexer_set_lval
21910e230b6Smaya#endif
22010e230b6Smaya
22110e230b6Smaya#ifdef yyget_lloc
22210e230b6Smaya#define _mesa_glsl_lexer_get_lloc_ALREADY_DEFINED
22310e230b6Smaya#else
22410e230b6Smaya#define yyget_lloc _mesa_glsl_lexer_get_lloc
22510e230b6Smaya#endif
22610e230b6Smaya
22710e230b6Smaya#ifdef yyset_lloc
22810e230b6Smaya#define _mesa_glsl_lexer_set_lloc_ALREADY_DEFINED
22910e230b6Smaya#else
23010e230b6Smaya#define yyset_lloc _mesa_glsl_lexer_set_lloc
23110e230b6Smaya#endif
23210e230b6Smaya
23310e230b6Smaya#ifdef yyalloc
23410e230b6Smaya#define _mesa_glsl_lexer_alloc_ALREADY_DEFINED
23510e230b6Smaya#else
23610e230b6Smaya#define yyalloc _mesa_glsl_lexer_alloc
23710e230b6Smaya#endif
23810e230b6Smaya
23910e230b6Smaya#ifdef yyrealloc
24010e230b6Smaya#define _mesa_glsl_lexer_realloc_ALREADY_DEFINED
24110e230b6Smaya#else
24210e230b6Smaya#define yyrealloc _mesa_glsl_lexer_realloc
24310e230b6Smaya#endif
24410e230b6Smaya
24510e230b6Smaya#ifdef yyfree
24610e230b6Smaya#define _mesa_glsl_lexer_free_ALREADY_DEFINED
24710e230b6Smaya#else
24810e230b6Smaya#define yyfree _mesa_glsl_lexer_free
24910e230b6Smaya#endif
25010e230b6Smaya
25110e230b6Smaya/* First, we deal with  platform-specific or compiler-specific issues. */
25210e230b6Smaya
25310e230b6Smaya/* begin standard C headers. */
25410e230b6Smaya#ifdef _LIBC
25510e230b6Smaya#include "namespace.h"
25610e230b6Smaya#endif
25710e230b6Smaya#include <stdio.h>
25810e230b6Smaya#include <string.h>
25910e230b6Smaya#include <errno.h>
26010e230b6Smaya#include <stdlib.h>
26110e230b6Smaya
26210e230b6Smaya/* end standard C headers. */
26310e230b6Smaya
26496c5ddc4Srjs/*	$NetBSD: glsl_lexer.cpp,v 1.2 2023/07/16 21:41:49 rjs Exp $	*/
26510e230b6Smaya
26610e230b6Smaya/* flex integer type definitions */
26710e230b6Smaya
26810e230b6Smaya#ifndef FLEXINT_H
26910e230b6Smaya#define FLEXINT_H
27010e230b6Smaya
27110e230b6Smaya/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
27210e230b6Smaya
27310e230b6Smaya#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
27410e230b6Smaya
27510e230b6Smaya/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
27610e230b6Smaya * if you want the limit (max/min) macros for int types.
27710e230b6Smaya */
27810e230b6Smaya#ifndef __STDC_LIMIT_MACROS
27910e230b6Smaya#define __STDC_LIMIT_MACROS 1
28010e230b6Smaya#endif
28110e230b6Smaya
28210e230b6Smaya#include <inttypes.h>
28310e230b6Smayatypedef int8_t flex_int8_t;
28410e230b6Smayatypedef uint8_t flex_uint8_t;
28510e230b6Smayatypedef int16_t flex_int16_t;
28610e230b6Smayatypedef uint16_t flex_uint16_t;
28710e230b6Smayatypedef int32_t flex_int32_t;
28810e230b6Smayatypedef uint32_t flex_uint32_t;
28910e230b6Smaya#else
29010e230b6Smayatypedef signed char flex_int8_t;
29110e230b6Smayatypedef short int flex_int16_t;
29210e230b6Smayatypedef int flex_int32_t;
29310e230b6Smayatypedef unsigned char flex_uint8_t;
29410e230b6Smayatypedef unsigned short int flex_uint16_t;
29510e230b6Smayatypedef unsigned int flex_uint32_t;
29610e230b6Smaya
29710e230b6Smaya/* Limits of integral types. */
29810e230b6Smaya#ifndef INT8_MIN
29910e230b6Smaya#define INT8_MIN               (-128)
30010e230b6Smaya#endif
30110e230b6Smaya#ifndef INT16_MIN
30210e230b6Smaya#define INT16_MIN              (-32767-1)
30310e230b6Smaya#endif
30410e230b6Smaya#ifndef INT32_MIN
30510e230b6Smaya#define INT32_MIN              (-2147483647-1)
30610e230b6Smaya#endif
30710e230b6Smaya#ifndef INT8_MAX
30810e230b6Smaya#define INT8_MAX               (127)
30910e230b6Smaya#endif
31010e230b6Smaya#ifndef INT16_MAX
31110e230b6Smaya#define INT16_MAX              (32767)
31210e230b6Smaya#endif
31310e230b6Smaya#ifndef INT32_MAX
31410e230b6Smaya#define INT32_MAX              (2147483647)
31510e230b6Smaya#endif
31610e230b6Smaya#ifndef UINT8_MAX
31710e230b6Smaya#define UINT8_MAX              (255U)
31810e230b6Smaya#endif
31910e230b6Smaya#ifndef UINT16_MAX
32010e230b6Smaya#define UINT16_MAX             (65535U)
32110e230b6Smaya#endif
32210e230b6Smaya#ifndef UINT32_MAX
32310e230b6Smaya#define UINT32_MAX             (4294967295U)
32410e230b6Smaya#endif
32510e230b6Smaya
32610e230b6Smaya#ifndef SIZE_MAX
32710e230b6Smaya#define SIZE_MAX               (~(size_t)0)
32810e230b6Smaya#endif
32910e230b6Smaya
33010e230b6Smaya#endif /* ! C99 */
33110e230b6Smaya
33210e230b6Smaya#endif /* ! FLEXINT_H */
33310e230b6Smaya
33410e230b6Smaya/* begin standard C++ headers. */
33510e230b6Smaya
33610e230b6Smaya/* TODO: this is always defined, so inline it */
33710e230b6Smaya#define yyconst const
33810e230b6Smaya
33910e230b6Smaya#if defined(__GNUC__) && __GNUC__ >= 3
34010e230b6Smaya#define yynoreturn __attribute__((__noreturn__))
34110e230b6Smaya#else
34210e230b6Smaya#define yynoreturn
34310e230b6Smaya#endif
34410e230b6Smaya
34510e230b6Smaya/* Returned upon end-of-file. */
34610e230b6Smaya#define YY_NULL 0
34710e230b6Smaya
34810e230b6Smaya/* Promotes a possibly negative, possibly signed char to an
34910e230b6Smaya *   integer in range [0..255] for use as an array index.
35010e230b6Smaya */
35110e230b6Smaya#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
35210e230b6Smaya
35310e230b6Smaya/* An opaque pointer. */
35410e230b6Smaya#ifndef YY_TYPEDEF_YY_SCANNER_T
35510e230b6Smaya#define YY_TYPEDEF_YY_SCANNER_T
35610e230b6Smayatypedef void* yyscan_t;
35710e230b6Smaya#endif
35810e230b6Smaya
35910e230b6Smaya/* For convenience, these vars (plus the bison vars far below)
36010e230b6Smaya   are macros in the reentrant scanner. */
36110e230b6Smaya#define yyin yyg->yyin_r
36210e230b6Smaya#define yyout yyg->yyout_r
36310e230b6Smaya#define yyextra yyg->yyextra_r
36410e230b6Smaya#define yyleng yyg->yyleng_r
36510e230b6Smaya#define yytext yyg->yytext_r
36610e230b6Smaya#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
36710e230b6Smaya#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
36810e230b6Smaya#define yy_flex_debug yyg->yy_flex_debug_r
36910e230b6Smaya
37010e230b6Smaya/* Enter a start condition.  This macro really ought to take a parameter,
37110e230b6Smaya * but we do it the disgusting crufty way forced on us by the ()-less
37210e230b6Smaya * definition of BEGIN.
37310e230b6Smaya */
37410e230b6Smaya#define BEGIN yyg->yy_start = 1 + 2 *
37510e230b6Smaya/* Translate the current start state into a value that can be later handed
37610e230b6Smaya * to BEGIN to return to the state.  The YYSTATE alias is for lex
37710e230b6Smaya * compatibility.
37810e230b6Smaya */
37910e230b6Smaya#define YY_START ((yyg->yy_start - 1) / 2)
38010e230b6Smaya#define YYSTATE YY_START
38110e230b6Smaya/* Action number for EOF rule of a given start state. */
38210e230b6Smaya#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
38310e230b6Smaya/* Special action meaning "start processing a new file". */
38410e230b6Smaya#define YY_NEW_FILE yyrestart( yyin , yyscanner )
38510e230b6Smaya#define YY_END_OF_BUFFER_CHAR 0
38610e230b6Smaya
38710e230b6Smaya/* Size of default input buffer. */
38810e230b6Smaya#ifndef YY_BUF_SIZE
38910e230b6Smaya#ifdef __ia64__
39010e230b6Smaya/* On IA-64, the buffer size is 16k, not 8k.
39110e230b6Smaya * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
39210e230b6Smaya * Ditto for the __ia64__ case accordingly.
39310e230b6Smaya */
39410e230b6Smaya#define YY_BUF_SIZE 32768
39510e230b6Smaya#else
39610e230b6Smaya#define YY_BUF_SIZE 16384
39710e230b6Smaya#endif /* __ia64__ */
39810e230b6Smaya#endif
39910e230b6Smaya
40010e230b6Smaya/* The state buf must be large enough to hold one state per character in the main buffer.
40110e230b6Smaya */
40210e230b6Smaya#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
40310e230b6Smaya
40410e230b6Smaya#ifndef YY_TYPEDEF_YY_BUFFER_STATE
40510e230b6Smaya#define YY_TYPEDEF_YY_BUFFER_STATE
40610e230b6Smayatypedef struct yy_buffer_state *YY_BUFFER_STATE;
40710e230b6Smaya#endif
40810e230b6Smaya
40910e230b6Smaya#ifndef YY_TYPEDEF_YY_SIZE_T
41010e230b6Smaya#define YY_TYPEDEF_YY_SIZE_T
41110e230b6Smayatypedef size_t yy_size_t;
41210e230b6Smaya#endif
41310e230b6Smaya
41410e230b6Smaya#define EOB_ACT_CONTINUE_SCAN 0
41510e230b6Smaya#define EOB_ACT_END_OF_FILE 1
41610e230b6Smaya#define EOB_ACT_LAST_MATCH 2
41710e230b6Smaya
41810e230b6Smaya    #define YY_LESS_LINENO(n)
41910e230b6Smaya    #define YY_LINENO_REWIND_TO(ptr)
42010e230b6Smaya
42110e230b6Smaya/* Return all but the first "n" matched characters back to the input stream. */
42210e230b6Smaya#define yyless(n) \
42310e230b6Smaya	do \
42410e230b6Smaya		{ \
42510e230b6Smaya		/* Undo effects of setting up yytext. */ \
42610e230b6Smaya        int yyless_macro_arg = (n); \
42710e230b6Smaya        YY_LESS_LINENO(yyless_macro_arg);\
42810e230b6Smaya		*yy_cp = yyg->yy_hold_char; \
42910e230b6Smaya		YY_RESTORE_YY_MORE_OFFSET \
43010e230b6Smaya		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
43110e230b6Smaya		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
43210e230b6Smaya		} \
43310e230b6Smaya	while ( 0 )
43410e230b6Smaya#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
43510e230b6Smaya
43610e230b6Smaya#ifndef YY_STRUCT_YY_BUFFER_STATE
43710e230b6Smaya#define YY_STRUCT_YY_BUFFER_STATE
43810e230b6Smayastruct yy_buffer_state
43910e230b6Smaya	{
44010e230b6Smaya	FILE *yy_input_file;
44110e230b6Smaya
44210e230b6Smaya	char *yy_ch_buf;		/* input buffer */
44310e230b6Smaya	char *yy_buf_pos;		/* current position in input buffer */
44410e230b6Smaya
44510e230b6Smaya	/* Size of input buffer in bytes, not including room for EOB
44610e230b6Smaya	 * characters.
44710e230b6Smaya	 */
44810e230b6Smaya	size_t yy_buf_size;
44910e230b6Smaya
45010e230b6Smaya	/* Number of characters read into yy_ch_buf, not including EOB
45110e230b6Smaya	 * characters.
45210e230b6Smaya	 */
45310e230b6Smaya	size_t yy_n_chars;
45410e230b6Smaya
45510e230b6Smaya	/* Whether we "own" the buffer - i.e., we know we created it,
45610e230b6Smaya	 * and can realloc() it to grow it, and should free() it to
45710e230b6Smaya	 * delete it.
45810e230b6Smaya	 */
45910e230b6Smaya	int yy_is_our_buffer;
46010e230b6Smaya
46110e230b6Smaya	/* Whether this is an "interactive" input source; if so, and
46210e230b6Smaya	 * if we're using stdio for input, then we want to use getc()
46310e230b6Smaya	 * instead of fread(), to make sure we stop fetching input after
46410e230b6Smaya	 * each newline.
46510e230b6Smaya	 */
46610e230b6Smaya	int yy_is_interactive;
46710e230b6Smaya
46810e230b6Smaya	/* Whether we're considered to be at the beginning of a line.
46910e230b6Smaya	 * If so, '^' rules will be active on the next match, otherwise
47010e230b6Smaya	 * not.
47110e230b6Smaya	 */
47210e230b6Smaya	int yy_at_bol;
47310e230b6Smaya
47410e230b6Smaya    int yy_bs_lineno; /**< The line count. */
47510e230b6Smaya    int yy_bs_column; /**< The column count. */
47610e230b6Smaya
47710e230b6Smaya	/* Whether to try to fill the input buffer when we reach the
47810e230b6Smaya	 * end of it.
47910e230b6Smaya	 */
48010e230b6Smaya	int yy_fill_buffer;
48110e230b6Smaya
48210e230b6Smaya	int yy_buffer_status;
48310e230b6Smaya
48410e230b6Smaya#define YY_BUFFER_NEW 0
48510e230b6Smaya#define YY_BUFFER_NORMAL 1
48610e230b6Smaya	/* When an EOF's been seen but there's still some text to process
48710e230b6Smaya	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
48810e230b6Smaya	 * shouldn't try reading from the input source any more.  We might
48910e230b6Smaya	 * still have a bunch of tokens to match, though, because of
49010e230b6Smaya	 * possible backing-up.
49110e230b6Smaya	 *
49210e230b6Smaya	 * When we actually see the EOF, we change the status to "new"
49310e230b6Smaya	 * (via yyrestart()), so that the user can continue scanning by
49410e230b6Smaya	 * just pointing yyin at a new input file.
49510e230b6Smaya	 */
49610e230b6Smaya#define YY_BUFFER_EOF_PENDING 2
49710e230b6Smaya
49810e230b6Smaya	};
49910e230b6Smaya#endif /* !YY_STRUCT_YY_BUFFER_STATE */
50010e230b6Smaya
50110e230b6Smaya/* We provide macros for accessing buffer states in case in the
50210e230b6Smaya * future we want to put the buffer states in a more general
50310e230b6Smaya * "scanner state".
50410e230b6Smaya *
50510e230b6Smaya * Returns the top of the stack, or NULL.
50610e230b6Smaya */
50710e230b6Smaya#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
50810e230b6Smaya                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
50910e230b6Smaya                          : NULL)
51010e230b6Smaya/* Same as previous macro, but useful when we know that the buffer stack is not
51110e230b6Smaya * NULL or when we need an lvalue. For internal use only.
51210e230b6Smaya */
51310e230b6Smaya#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
51410e230b6Smaya
51510e230b6Smayavoid yyrestart ( FILE *input_file , yyscan_t yyscanner );
51610e230b6Smayavoid yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
51710e230b6SmayaYY_BUFFER_STATE yy_create_buffer ( FILE *file, yy_size_t size , yyscan_t yyscanner );
51810e230b6Smayavoid yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
51910e230b6Smayavoid yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
52010e230b6Smayavoid yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
52110e230b6Smayavoid yypop_buffer_state ( yyscan_t yyscanner );
52210e230b6Smaya
52310e230b6Smayastatic void yyensure_buffer_stack ( yyscan_t yyscanner );
52410e230b6Smayastatic void yy_load_buffer_state ( yyscan_t yyscanner );
52510e230b6Smayastatic void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file , yyscan_t yyscanner );
52610e230b6Smaya#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER , yyscanner)
52710e230b6Smaya
52810e230b6SmayaYY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner );
52910e230b6SmayaYY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner );
53010e230b6SmayaYY_BUFFER_STATE yy_scan_bytes ( const char *bytes, yy_size_t len , yyscan_t yyscanner );
53110e230b6Smaya
53210e230b6Smayavoid *yyalloc ( yy_size_t , yyscan_t yyscanner );
53310e230b6Smayavoid *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner );
53410e230b6Smayavoid yyfree ( void * , yyscan_t yyscanner );
53510e230b6Smaya
53610e230b6Smaya#define yy_new_buffer yy_create_buffer
53710e230b6Smaya#define yy_set_interactive(is_interactive) \
53810e230b6Smaya	{ \
53910e230b6Smaya	if ( ! YY_CURRENT_BUFFER ){ \
54010e230b6Smaya        yyensure_buffer_stack (yyscanner); \
54110e230b6Smaya		YY_CURRENT_BUFFER_LVALUE =    \
54210e230b6Smaya            yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
54310e230b6Smaya	} \
54410e230b6Smaya	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
54510e230b6Smaya	}
54610e230b6Smaya#define yy_set_bol(at_bol) \
54710e230b6Smaya	{ \
54810e230b6Smaya	if ( ! YY_CURRENT_BUFFER ){\
54910e230b6Smaya        yyensure_buffer_stack (yyscanner); \
55010e230b6Smaya		YY_CURRENT_BUFFER_LVALUE =    \
55110e230b6Smaya            yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
55210e230b6Smaya	} \
55310e230b6Smaya	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
55410e230b6Smaya	}
55510e230b6Smaya#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
55610e230b6Smaya
55710e230b6Smaya/* Begin user sect3 */
55810e230b6Smaya
55910e230b6Smaya#define _mesa_glsl_lexer_wrap(yyscanner) (/*CONSTCOND*/1)
56010e230b6Smaya#define YY_SKIP_YYWRAP
56110e230b6Smayatypedef flex_uint8_t YY_CHAR;
56210e230b6Smaya
56310e230b6Smayatypedef int yy_state_type;
56410e230b6Smaya
56510e230b6Smaya#define yytext_ptr yytext_r
56610e230b6Smaya
56710e230b6Smayastatic yy_state_type yy_get_previous_state ( yyscan_t yyscanner );
56810e230b6Smayastatic yy_state_type yy_try_NUL_trans ( yy_state_type current_state  , yyscan_t yyscanner);
56910e230b6Smayastatic int yy_get_next_buffer ( yyscan_t yyscanner );
57010e230b6Smayastatic void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner );
57110e230b6Smaya
57210e230b6Smaya/* Done after the current pattern has been matched and before the
57310e230b6Smaya * corresponding action - sets up yytext.
57410e230b6Smaya */
57510e230b6Smaya#define YY_DO_BEFORE_ACTION \
57610e230b6Smaya	yyg->yytext_ptr = yy_bp; \
57710e230b6Smaya	yyleng = (yy_size_t)(yy_cp - yy_bp); \
57810e230b6Smaya	yyg->yy_hold_char = *yy_cp; \
57910e230b6Smaya	*yy_cp = '\0'; \
58010e230b6Smaya	yyg->yy_c_buf_p = yy_cp;
58196c5ddc4Srjs#define YY_NUM_RULES 280
58296c5ddc4Srjs#define YY_END_OF_BUFFER 281
58310e230b6Smaya/* This struct is not used in this scanner,
58410e230b6Smaya   but its presence is necessary. */
58510e230b6Smayastruct yy_trans_info
58610e230b6Smaya	{
58710e230b6Smaya	flex_int32_t yy_verify;
58810e230b6Smaya	flex_int32_t yy_nxt;
58910e230b6Smaya	};
59096c5ddc4Srjsstatic const flex_int16_t yy_accept[1112] =
59110e230b6Smaya    {   0,
59296c5ddc4Srjs        0,    0,   20,   20,    0,    0,  281,  279,    1,   27,
59396c5ddc4Srjs      279,  279,  279,  279,  279,  279,  278,  279,  185,  183,
59496c5ddc4Srjs      279,  279,  279,  277,  279,  277,  277,  277,  277,  277,
59596c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
59696c5ddc4Srjs      277,  277,  277,  277,  277,  279,    1,  279,   26,   20,
59796c5ddc4Srjs       25,   26,   24,   23,   21,   22,   18,   17,    1,  167,
59896c5ddc4Srjs      176,  168,  179,  173,  162,  175,  163,  182,  187,  174,
59996c5ddc4Srjs      188,  185,    0,    0,  185,  185,    0,  185,  183,  183,
60096c5ddc4Srjs      183,  183,  171,  164,  166,  165,  172,  277,  180,  170,
60196c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
60296c5ddc4Srjs
60396c5ddc4Srjs      277,  277,  277,  277,   36,  277,  277,  277,  277,  277,
60496c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  277,  277,   40,
60596c5ddc4Srjs      277,  277,   68,  277,  277,  277,  277,  277,  277,  277,
60696c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
60796c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
60896c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  277,  181,  169,
60996c5ddc4Srjs        1,    0,    0,    2,    0,    0,    0,    0,    0,   20,
61096c5ddc4Srjs       19,   23,   22,    0,  187,    0,    0,  186,    0,  188,
61196c5ddc4Srjs        0,    0,    0,  189,  184,  177,  178,  277,  196,  277,
61296c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
61396c5ddc4Srjs
61496c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
61596c5ddc4Srjs      277,  277,  277,  277,  277,   39,  277,  277,  277,  277,
61696c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,   32,  277,  277,
61796c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  277,  277,   69,
61896c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
61996c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
62096c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
62196c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,    0,    0,    0,
62296c5ddc4Srjs        0,    0,   19,    0,  187,  191,    0,  186,    0,    0,
62396c5ddc4Srjs        0,  188,  192,  189,    0,    0,  184,  184,  184,  277,
62496c5ddc4Srjs
62596c5ddc4Srjs      277,  277,   30,  277,  277,  277,  254,  247,  277,  277,
62696c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
62796c5ddc4Srjs       38,  199,  277,  277,  277,  277,   76,  277,  277,  204,
62896c5ddc4Srjs      217,  277,  277,  277,  277,  277,  277,  277,  277,  277,
62996c5ddc4Srjs      277,  277,  277,  277,  277,  214,  250,   56,   57,   58,
63096c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
63196c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
63296c5ddc4Srjs      277,  277,  277,  277,  277,  277,  202,  194,  277,  277,
63396c5ddc4Srjs      277,   33,  277,  277,  277,  277,  277,  277,  277,   53,
63496c5ddc4Srjs       54,   55,  160,  277,  277,  277,    0,    0,    0,    0,
63596c5ddc4Srjs
63696c5ddc4Srjs        0,    0,  186,  190,  193,  277,  277,  277,   34,  277,
63796c5ddc4Srjs       44,   45,   46,  277,  197,  277,  277,   29,  277,  277,
63896c5ddc4Srjs      277,  277,  228,  229,  230,  277,  225,  226,  227,  277,
63996c5ddc4Srjs      195,  277,  218,   31,  240,  241,  242,  252,  222,  223,
64096c5ddc4Srjs      224,  277,  277,  277,  277,   70,  220,  277,  277,  277,
64196c5ddc4Srjs      277,   47,   48,   49,  277,  277,  277,  277,  277,  277,
64296c5ddc4Srjs      277,  277,  277,  277,  277,   79,  277,  277,  277,  277,
64396c5ddc4Srjs      277,  277,  277,  277,  277,  215,  277,  277,  277,  277,
64496c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  277,  277,  198,
64596c5ddc4Srjs      277,  277,  249,   50,   51,   52,  277,  277,   37,  277,
64696c5ddc4Srjs
64796c5ddc4Srjs        0,    0,    0,    0,    0,  257,  277,  277,   72,  277,
64896c5ddc4Srjs      277,  255,  277,  277,   43,  277,  277,  277,  277,  216,
64996c5ddc4Srjs      211,  260,  277,  277,  277,  277,  277,  277,  277,  207,
65096c5ddc4Srjs      277,  277,  277,  277,  161,   59,   60,   61,   62,   63,
65196c5ddc4Srjs       64,   65,   66,   67,  277,  277,  277,  277,  221,  203,
65296c5ddc4Srjs      277,  277,  209,  277,  277,  277,   42,  277,  267,  158,
65396c5ddc4Srjs      246,   77,  210,  159,  277,  258,  205,  277,  277,  277,
65496c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  277,    0,    0,
65596c5ddc4Srjs        0,    0,    0,  277,  277,  277,  277,  277,  206,   41,
65696c5ddc4Srjs      231,  232,  233,  234,  235,  236,  237,  238,  239,  277,
65796c5ddc4Srjs
65896c5ddc4Srjs      270,  271,  272,  277,  277,  277,  277,  277,  115,  116,
65996c5ddc4Srjs      117,  277,  277,  269,  277,  277,  277,  251,  277,  277,
66096c5ddc4Srjs      277,  277,  114,  277,  277,  277,  277,  277,  277,  277,
66196c5ddc4Srjs      277,  200,  274,  275,  276,  277,  277,  277,  277,  277,
66296c5ddc4Srjs      277,   71,  277,  277,   73,  277,  277,    0,    0,    0,
66396c5ddc4Srjs        0,    0,    0,  277,  277,   74,  152,   35,  212,  126,
66496c5ddc4Srjs      127,  128,  277,  277,  277,  277,  277,  277,  277,  277,
66596c5ddc4Srjs      277,  277,  277,  277,  277,  277,  208,  277,  277,  277,
66696c5ddc4Srjs      155,  266,  154,  277,  277,  277,  277,  277,  277,  277,
66796c5ddc4Srjs      277,  201,  137,  138,  139,  277,  277,  273,  219,  277,
66896c5ddc4Srjs
66996c5ddc4Srjs      153,  277,    0,    5,    0,    8,    0,    0,    0,   16,
67096c5ddc4Srjs        3,  277,   28,  277,  277,  277,  277,  277,  277,  277,
67196c5ddc4Srjs      277,  277,  124,  277,  277,  277,  119,  213,   75,  277,
67296c5ddc4Srjs      277,  277,  277,  277,  248,  277,  256,  253,  261,   80,
67396c5ddc4Srjs       81,   82,  277,  277,  277,  277,  277,  277,  277,  277,
67496c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  156,    0,    0,
67596c5ddc4Srjs        0,    0,    0,    0,    0,    0,    0,  277,  277,  277,
67696c5ddc4Srjs      135,  277,  277,  130,  277,  277,  277,  277,  277,  277,
67796c5ddc4Srjs      277,  277,   91,   92,   93,  277,  277,  277,  277,  277,
67896c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  277,  268,  277,
67996c5ddc4Srjs
68096c5ddc4Srjs      277,  146,  277,  277,  141,   97,   98,   99,  277,  277,
68196c5ddc4Srjs        4,    0,    0,    0,    6,    0,    0,    0,    0,    0,
68296c5ddc4Srjs        0,    0,  157,  277,  277,  277,  277,  277,  277,  277,
68396c5ddc4Srjs      277,  277,  277,  118,  277,  120,  277,  277,  277,  277,
68496c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  103,  277,  277,
68596c5ddc4Srjs      277,  277,   83,  277,  277,  277,  277,  277,  277,  277,
68696c5ddc4Srjs      277,  277,  277,  277,  277,  277,    0,    7,    0,    0,
68796c5ddc4Srjs        0,    0,    0,  277,  277,  277,  129,  131,  277,  121,
68896c5ddc4Srjs      277,  122,  277,  277,  277,  277,  277,  104,  277,  277,
68996c5ddc4Srjs       94,  277,  277,  277,  277,  277,  277,  277,  277,  277,
69096c5ddc4Srjs
69196c5ddc4Srjs      277,  277,  277,  277,  277,  277,  140,  142,  277,  277,
69296c5ddc4Srjs      277,  105,  277,  277,  100,    0,    0,    0,    0,  132,
69396c5ddc4Srjs      133,  277,  277,  277,  148,  277,  277,  149,  277,  277,
69496c5ddc4Srjs      277,  277,  277,  277,  277,   78,  277,  277,  277,  277,
69596c5ddc4Srjs      243,  277,  244,  259,  277,  277,  277,  143,  144,  277,
69696c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,    0,    0,    0,
69796c5ddc4Srjs        0,  277,  277,  277,  277,  125,  123,  277,  277,  277,
69896c5ddc4Srjs      262,  264,  277,   84,  277,   85,  277,  277,  277,  277,
69996c5ddc4Srjs      277,  277,  277,  277,  277,  277,  277,  263,  265,  277,
70096c5ddc4Srjs        0,    0,    0,    0,    0,  136,  134,  277,  277,   95,
70196c5ddc4Srjs
70296c5ddc4Srjs       96,  277,  277,  277,   86,  277,  277,  277,   87,  277,
70396c5ddc4Srjs      277,  277,  147,  145,  101,  102,  277,  277,    0,    0,
70496c5ddc4Srjs        0,    0,    0,  277,  277,  277,  277,  277,  277,  106,
70596c5ddc4Srjs      277,  109,  277,  277,  277,  277,    0,    0,    0,    0,
70696c5ddc4Srjs        0,    0,  277,  277,  107,  110,  277,  277,  277,  277,
70796c5ddc4Srjs       88,  277,  108,  111,    0,    0,    0,    9,    0,    0,
70896c5ddc4Srjs        0,    0,  150,  151,  277,  277,  277,  277,  113,    0,
70996c5ddc4Srjs        0,   10,    0,    0,    0,    0,  277,  277,  245,  277,
71096c5ddc4Srjs        0,    0,    0,    0,    0,   13,   89,   90,  277,    0,
71196c5ddc4Srjs        0,    0,   11,    0,   14,  277,    0,    0,   12,  112,
71296c5ddc4Srjs
71396c5ddc4Srjs        0,    0,    0,    0,    0,    0,    0,    0,    0,   15,
71496c5ddc4Srjs        0
71510e230b6Smaya    } ;
71610e230b6Smaya
71710e230b6Smayastatic const YY_CHAR yy_ec[256] =
71810e230b6Smaya    {   0,
71910e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
72010e230b6Smaya        1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
72110e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
72296c5ddc4Srjs        1,    5,    6,    7,    8,    1,    9,   10,    1,   11,
72396c5ddc4Srjs       12,   13,   14,    1,   15,   16,   17,   18,   19,   20,
72496c5ddc4Srjs       21,   22,   23,   24,   23,   25,   25,   26,    1,   27,
72596c5ddc4Srjs       28,   29,    1,    1,   30,   31,   32,   33,   34,   35,
72696c5ddc4Srjs       36,   37,   37,   37,   37,   38,   39,   37,   40,   37,
72796c5ddc4Srjs       37,   41,   42,   43,   44,   37,   37,   45,   37,   37,
72896c5ddc4Srjs        1,    1,    1,   46,   47,    1,   48,   49,   50,   51,
72996c5ddc4Srjs
73096c5ddc4Srjs       52,   53,   54,   55,   56,   57,   58,   59,   60,   61,
73196c5ddc4Srjs       62,   63,   37,   64,   65,   66,   67,   68,   69,   70,
73296c5ddc4Srjs       71,   72,    1,   73,    1,    1,    1,    1,    1,    1,
73310e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
73410e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
73510e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
73610e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
73710e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
73810e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
73910e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
74010e230b6Smaya
74110e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
74210e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
74310e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
74410e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
74510e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
74610e230b6Smaya        1,    1,    1,    1,    1
74710e230b6Smaya    } ;
74810e230b6Smaya
74996c5ddc4Srjsstatic const YY_CHAR yy_meta[74] =
75010e230b6Smaya    {   0,
75196c5ddc4Srjs        1,    2,    3,    1,    4,    1,    5,    1,    1,    1,
75296c5ddc4Srjs        1,    1,    1,    1,    1,    6,    5,    7,    7,    7,
75396c5ddc4Srjs        7,    7,    7,    7,    7,    1,    1,    1,    1,    8,
75496c5ddc4Srjs        8,    8,    8,    9,   10,   11,   11,   12,   11,   11,
75596c5ddc4Srjs       11,   11,   11,   11,   11,    1,   11,    8,    8,    8,
75696c5ddc4Srjs        8,    9,   10,   11,   11,   11,   11,   11,   12,   11,
75796c5ddc4Srjs       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
75896c5ddc4Srjs       11,   11,    1
75910e230b6Smaya    } ;
76010e230b6Smaya
76196c5ddc4Srjsstatic const flex_int16_t yy_base[1127] =
76210e230b6Smaya    {   0,
76396c5ddc4Srjs        0,   72,   80,    0, 1606, 1605, 1607, 1610,   74, 1610,
76496c5ddc4Srjs     1578, 1577,  144, 1576,  141,  142,  140, 1575,  157,  212,
76596c5ddc4Srjs      139, 1574,  155,    0,  128,  121,  126,  137,  151,  145,
76696c5ddc4Srjs      192, 1539,  144,  202,  160,  162,  177, 1533,  201,  190,
76796c5ddc4Srjs      218,  217,  221,  195,  165,  210,  288,  292, 1610,  296,
76896c5ddc4Srjs     1610, 1582, 1610,  284, 1610,    0, 1610, 1610,  308, 1610,
76996c5ddc4Srjs     1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,  343, 1610,
77096c5ddc4Srjs      385,  153,  283,  300, 1610, 1560,    0, 1538,    0, 1610,
77196c5ddc4Srjs     1558, 1536, 1566, 1610, 1610, 1610, 1565,    0, 1610, 1610,
77296c5ddc4Srjs     1526, 1531,  155, 1528, 1537, 1535, 1535, 1521, 1524, 1536,
77396c5ddc4Srjs
77496c5ddc4Srjs      271,  274, 1518, 1534, 1514, 1528, 1514, 1511, 1511, 1517,
77596c5ddc4Srjs      221,  213, 1511, 1522, 1507, 1513, 1517, 1518, 1547,    0,
77696c5ddc4Srjs     1508, 1519,  274, 1518, 1513, 1493,  136, 1497, 1511, 1501,
77796c5ddc4Srjs      282, 1494,  293, 1507, 1509,  263, 1488, 1496,  268, 1483,
77896c5ddc4Srjs     1492,  305,  307, 1497, 1492, 1495, 1483, 1486, 1526,  286,
77996c5ddc4Srjs      188,  293, 1495, 1482, 1495,  315, 1488, 1487, 1610, 1610,
78096c5ddc4Srjs      371,  380,  395, 1610, 1472, 1480, 1484, 1475, 1486,  382,
78196c5ddc4Srjs        0,  393,    0,  446, 1610, 1502, 1483,  393,  458, 1610,
78296c5ddc4Srjs     1500, 1481,  466,  457,  455, 1610, 1610, 1477,    0, 1472,
78396c5ddc4Srjs     1467, 1471, 1481, 1475, 1477,  306, 1460, 1460, 1472, 1463,
78496c5ddc4Srjs
78596c5ddc4Srjs      323, 1474, 1459, 1470, 1453, 1469, 1467, 1464, 1455, 1462,
78696c5ddc4Srjs     1448, 1446, 1459, 1444, 1461,    0, 1458, 1445, 1453, 1450,
78796c5ddc4Srjs     1454, 1435, 1454, 1447, 1444, 1432, 1431,  328, 1449, 1436,
78896c5ddc4Srjs     1445, 1432, 1439, 1429,  370, 1435, 1438, 1428, 1436, 1424,
78996c5ddc4Srjs     1428, 1419, 1434, 1433, 1423, 1430,  288, 1413, 1432, 1415,
79096c5ddc4Srjs     1413, 1412, 1423, 1412, 1407, 1405, 1407, 1418, 1403, 1405,
79196c5ddc4Srjs     1402, 1414, 1413, 1396, 1415, 1396,  368, 1405, 1400, 1398,
79296c5ddc4Srjs     1408, 1386,  404, 1405, 1407, 1395, 1387, 1386, 1401, 1389,
79396c5ddc4Srjs     1401, 1384,    0,  482,  459, 1610,  505, 1610, 1412, 1393,
79496c5ddc4Srjs      513,  504, 1610, 1610, 1410, 1391, 1610, 1405, 1383, 1373,
79596c5ddc4Srjs
79696c5ddc4Srjs     1384, 1383,    0, 1380, 1385,  413,    0,    0, 1372, 1370,
79796c5ddc4Srjs     1370, 1371, 1366, 1375, 1363, 1363, 1380,  420, 1368,  435,
79896c5ddc4Srjs        0,    0, 1362, 1373, 1372, 1372,    0, 1356,  523,    0,
79996c5ddc4Srjs        0, 1358,  526, 1368, 1365, 1366, 1356, 1350, 1349, 1392,
80096c5ddc4Srjs     1349, 1348, 1348,  529, 1343,    0,    0, 1339, 1338, 1337,
80196c5ddc4Srjs     1339, 1340, 1345, 1339, 1335, 1349, 1344, 1344, 1342, 1341,
80296c5ddc4Srjs     1334, 1328, 1330, 1329, 1332, 1332, 1338, 1323, 1326, 1321,
80396c5ddc4Srjs     1330, 1335, 1322, 1319, 1332, 1322,    0,    0, 1329, 1327,
80496c5ddc4Srjs     1324, 1353, 1314, 1314, 1320, 1310, 1318,  532, 1315,    0,
80596c5ddc4Srjs        0,    0,    0, 1304, 1317, 1316, 1315, 1307, 1313, 1310,
80696c5ddc4Srjs
80796c5ddc4Srjs     1298,  546,  520, 1610, 1610, 1310, 1311, 1311,    0, 1295,
80896c5ddc4Srjs        0,    0,    0, 1296,    0, 1305, 1295,    0, 1294, 1295,
80996c5ddc4Srjs     1301, 1288, 1281, 1280, 1279, 1296,    0,    0,    0, 1286,
81096c5ddc4Srjs        0, 1282,    0,    0,    0,    0,    0,    0,    0,    0,
81196c5ddc4Srjs        0, 1295, 1292,  555, 1291,    0,    0, 1295, 1288, 1284,
81296c5ddc4Srjs     1280,    0,    0,    0, 1272,  539,  560,  563, 1277, 1273,
81396c5ddc4Srjs     1279, 1269, 1267, 1281, 1265,    0, 1265, 1279, 1267, 1263,
81496c5ddc4Srjs     1270, 1264, 1276, 1271, 1271,    0, 1268, 1265, 1269, 1252,
81596c5ddc4Srjs     1250, 1253, 1260, 1266, 1261, 1262, 1259, 1288, 1245,    0,
81696c5ddc4Srjs     1247, 1248,    0,    0,    0,    0, 1245, 1249,    0, 1242,
81796c5ddc4Srjs
81896c5ddc4Srjs     1242, 1235,  448, 1241, 1244,    0, 1252, 1231,    0, 1241,
81996c5ddc4Srjs     1235,    0, 1228, 1228,    0, 1242,  568,  571,  574,    0,
82096c5ddc4Srjs     1244,    0,  577,  581, 1258, 1257, 1256, 1221, 1220,    0,
82196c5ddc4Srjs     1220, 1237, 1236, 1231,    0,    0,    0,    0,    0,    0,
82296c5ddc4Srjs        0,    0,    0,    0, 1219, 1233, 1219, 1216,    0,    0,
82396c5ddc4Srjs     1222,  457,    0, 1218, 1226, 1225,    0, 1217, 1209,    0,
82496c5ddc4Srjs        0,    0,    0,    0, 1206,    0,    0, 1205, 1217,  583,
82596c5ddc4Srjs      587, 1222, 1208, 1215, 1214, 1211, 1205, 1202, 1197, 1210,
82696c5ddc4Srjs      609, 1212, 1197, 1191, 1191, 1205, 1189, 1202,    0,    0,
82796c5ddc4Srjs        0,    0,    0,    0,    0,    0,    0,    0,    0, 1194,
82896c5ddc4Srjs
82996c5ddc4Srjs        0,    0,    0, 1219, 1218, 1217, 1182, 1181,  432,  596,
83096c5ddc4Srjs        0, 1194, 1197,    0, 1195, 1183, 1179,    0, 1192, 1189,
83196c5ddc4Srjs     1188, 1177,    0, 1176, 1166, 1184, 1169, 1172,  620, 1177,
83296c5ddc4Srjs     1180,    0,    0,    0,    0, 1198, 1197, 1196, 1161, 1160,
83396c5ddc4Srjs     1160,    0, 1174, 1160,    0, 1171, 1163, 1165, 1168,  653,
83496c5ddc4Srjs      618,  506, 1158, 1162, 1165,    0,    0,    0,    0, 1186,
83596c5ddc4Srjs      606,    0, 1162, 1165, 1149, 1157, 1147, 1168, 1157, 1153,
83696c5ddc4Srjs     1154, 1154, 1153, 1138,  629, 1151,    0, 1152, 1140, 1139,
83796c5ddc4Srjs        0,    0,    0, 1135, 1165, 1164, 1163, 1128, 1127, 1123,
83896c5ddc4Srjs     1131,    0, 1161,  623,    0, 1137, 1140,    0,    0,  647,
83996c5ddc4Srjs
84096c5ddc4Srjs        0, 1117, 1125, 1610,  722, 1610,  681,    0,  641,  686,
84196c5ddc4Srjs     1610, 1125,    0, 1121, 1120, 1141, 1130, 1128, 1128, 1115,
84296c5ddc4Srjs     1130, 1113, 1146, 1125, 1126, 1121, 1142,    0,    0, 1138,
84396c5ddc4Srjs     1137, 1136, 1096, 1095,    0, 1078,    0,    0,    0,  580,
84496c5ddc4Srjs      651, 1102, 1085, 1087, 1069, 1080, 1066, 1065, 1084, 1072,
84596c5ddc4Srjs     1070, 1068, 1085, 1084, 1073, 1031, 1003,    0, 1008, 1061,
84696c5ddc4Srjs      754,  692,  704, 1024, 1013, 1001, 1015,  996,  997,  996,
84796c5ddc4Srjs     1029, 1008, 1005, 1026, 1007, 1003, 1005,  988,  985,  999,
84896c5ddc4Srjs      985,  984, 1017,  678,    0,  993,  996,  988,  979,  987,
84996c5ddc4Srjs      977,  997,  986,  982,  983,  981,  980,  979,    0,  960,
85096c5ddc4Srjs
85196c5ddc4Srjs      955,  988,  958,   23,  138,  188,  681,    0,  188,  210,
85296c5ddc4Srjs     1610,  269,  710,  728, 1610,  747,    0,  733,  306,  344,
85396c5ddc4Srjs      328,  335,    0,  353,  374,  365,  383,  395,  411,  425,
85496c5ddc4Srjs      436,  444,  453,    0,  459,    0,  476,  477,  492,  520,
85596c5ddc4Srjs      520,  524,  526,  541,  551,  568,  553,  594,  575,  594,
85696c5ddc4Srjs      607,  607,  640,  599,  617,  621,  616,  619,  623,  625,
85796c5ddc4Srjs      632,  646,  672,  664,  665,  669,  758, 1610,  777,  690,
85896c5ddc4Srjs      665,  678,  678,  680,  682,  690,    0,    0,  694,  720,
85996c5ddc4Srjs      695,  739,  735,  715,  737,  722,  723,  758,  739,  738,
86096c5ddc4Srjs      761,  740,  745,  743,  747,  732,  731,  747,  734,  737,
86196c5ddc4Srjs
86296c5ddc4Srjs      738,  748,  743,  734,  735,  743,    0,    0,  744,  745,
86396c5ddc4Srjs      746,  781,  762,  761,  784,  777,  762,  757,  762,    0,
86496c5ddc4Srjs        0,  771,  772,  766,    0,  767,  752,    0,  754,  778,
86596c5ddc4Srjs      779,  764,  763,  766,  767,    0,  761,  771,  763,  771,
86696c5ddc4Srjs      794,  775,    0,    0,  774,  791,  792,    0,    0,  793,
86796c5ddc4Srjs      794,  795,  796,  781,  780,  783,  784,  847,  848,  795,
86896c5ddc4Srjs      793,  784,  785,  809,  810,    0,    0,  789,  790,  798,
86996c5ddc4Srjs        0,    0,  799,  822,  796,  824,  819,  813,  800,  822,
87096c5ddc4Srjs      820,  813,  802,  803,  804,  805,  813,    0,    0,  814,
87196c5ddc4Srjs      877,  878,  879,  813,  832,    0,    0,  836,  837,    0,
87296c5ddc4Srjs
87396c5ddc4Srjs        0,  842,  843,  837,    0,  838,  823,  847,    0,  825,
87496c5ddc4Srjs      835,  858,    0,    0,    0,    0,  851,  852,  840,  900,
87596c5ddc4Srjs      850,  852,  904,  845,  846,  839,  841,  865,  866,    0,
87696c5ddc4Srjs      865,  875,  849,  885,  849,  850,  854,  870,  922,  924,
87796c5ddc4Srjs      926,  934,  856,  861,    0,    0,  881,  887,  878,  887,
87896c5ddc4Srjs        0,  901,    0,    0,  896,  943,  944, 1610,  948,  949,
87996c5ddc4Srjs      955,  905,    0,    0,  885,  890,  892,  915,    0,  900,
88096c5ddc4Srjs      963, 1610,  965,  916,  918,  971,  903,  905,    0,  927,
88196c5ddc4Srjs      923,  927,  979,  980,  985, 1610,    0,    0,  924,  940,
88296c5ddc4Srjs      993,  997, 1610,  998, 1610,  920,  932, 1002, 1610,    0,
88396c5ddc4Srjs
88496c5ddc4Srjs      928, 1010, 1011, 1018, 1023,  942,  947, 1024, 1028, 1610,
88596c5ddc4Srjs     1610, 1071, 1077, 1083, 1090, 1093, 1103, 1109, 1115, 1121,
88696c5ddc4Srjs     1127, 1138, 1139, 1146, 1157, 1158
88710e230b6Smaya    } ;
88810e230b6Smaya
88996c5ddc4Srjsstatic const flex_int16_t yy_def[1127] =
89010e230b6Smaya    {   0,
89196c5ddc4Srjs     1111,    1, 1111,    3, 1112, 1112, 1111, 1111, 1111, 1111,
89296c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
89396c5ddc4Srjs     1111, 1111, 1111, 1113, 1111, 1113, 1113, 1113, 1113, 1113,
89496c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
89596c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1111, 1111, 1111, 1111, 1111,
89696c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1114, 1111, 1111, 1111, 1111,
89796c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
89896c5ddc4Srjs     1111,   19, 1115, 1111, 1111, 1111, 1116, 1111,   20, 1111,
89996c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1113, 1111, 1111,
90096c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
90196c5ddc4Srjs
90296c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
90396c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
90496c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
90596c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
90696c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
90796c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1111, 1111,
90896c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
90996c5ddc4Srjs     1117, 1111, 1114, 1111, 1111, 1111, 1111,   71, 1111, 1111,
91096c5ddc4Srjs     1111, 1111, 1111, 1118, 1116, 1111, 1111, 1113, 1113, 1113,
91196c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
91296c5ddc4Srjs
91396c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
91496c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
91596c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
91696c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
91796c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
91896c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
91996c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
92096c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1111, 1111, 1111,
92196c5ddc4Srjs     1111, 1111, 1117, 1111, 1119, 1111, 1111, 1111, 1111, 1111,
92296c5ddc4Srjs     1111, 1120, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1113,
92396c5ddc4Srjs
92496c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
92596c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
92696c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
92796c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
92896c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
92996c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
93096c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
93196c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
93296c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
93396c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1111, 1111, 1111, 1111,
93496c5ddc4Srjs
93596c5ddc4Srjs     1111, 1111, 1121, 1111, 1111, 1113, 1113, 1113, 1113, 1113,
93696c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
93796c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
93896c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
93996c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
94096c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
94196c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
94296c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
94396c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
94496c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
94596c5ddc4Srjs
94696c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1113, 1113, 1113, 1113, 1113,
94796c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
94896c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
94996c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
95096c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
95196c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
95296c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
95396c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1111, 1111,
95496c5ddc4Srjs     1111, 1111, 1111, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
95596c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
95696c5ddc4Srjs
95796c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
95896c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
95996c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
96096c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
96196c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1111, 1111, 1111,
96296c5ddc4Srjs     1122, 1111, 1111, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
96396c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
96496c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
96596c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
96696c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
96796c5ddc4Srjs
96896c5ddc4Srjs     1113, 1113, 1111, 1111, 1111, 1111, 1111, 1123, 1122, 1111,
96996c5ddc4Srjs     1111, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
97096c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
97196c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
97296c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
97396c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1111, 1124,
97496c5ddc4Srjs     1111, 1125, 1123, 1111, 1111, 1111, 1111, 1113, 1113, 1113,
97596c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
97696c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
97796c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
97896c5ddc4Srjs
97996c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
98096c5ddc4Srjs     1111, 1124, 1111, 1111, 1111, 1111, 1126, 1125, 1111, 1111,
98196c5ddc4Srjs     1111, 1111, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
98296c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
98396c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
98496c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
98596c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1111, 1111, 1126, 1111,
98696c5ddc4Srjs     1111, 1111, 1111, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
98796c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
98896c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
98996c5ddc4Srjs
99096c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
99196c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1111, 1111, 1111, 1111, 1113,
99296c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
99396c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
99496c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
99596c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1111, 1111, 1111,
99696c5ddc4Srjs     1111, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
99796c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
99896c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
99996c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1113, 1113, 1113, 1113, 1113,
100096c5ddc4Srjs
100196c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
100296c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1111, 1111,
100396c5ddc4Srjs     1111, 1111, 1111, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
100496c5ddc4Srjs     1113, 1113, 1113, 1113, 1113, 1113, 1111, 1111, 1111, 1111,
100596c5ddc4Srjs     1111, 1111, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
100696c5ddc4Srjs     1113, 1113, 1113, 1113, 1111, 1111, 1111, 1111, 1111, 1111,
100796c5ddc4Srjs     1111, 1111, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1111,
100896c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1113, 1113, 1113, 1113,
100996c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1113, 1113, 1113, 1111,
101096c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1113, 1111, 1111, 1111, 1113,
101196c5ddc4Srjs
101296c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
101396c5ddc4Srjs        0, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
101496c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111
101510e230b6Smaya    } ;
101610e230b6Smaya
101796c5ddc4Srjsstatic const flex_int16_t yy_nxt[1684] =
101810e230b6Smaya    {   0,
101996c5ddc4Srjs        8,    9,   10,    9,    9,   11,    8,    8,   12,   13,
102096c5ddc4Srjs        8,    8,   14,   15,   16,   17,   18,   19,   20,   20,
102196c5ddc4Srjs       20,   20,   20,   20,   20,    8,   21,   22,   23,   24,
102210e230b6Smaya       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
102396c5ddc4Srjs       24,   24,   24,   24,   24,   25,   24,   26,   27,   28,
102496c5ddc4Srjs       29,   30,   31,   32,   33,   34,   24,   24,   35,   36,
102596c5ddc4Srjs       37,   38,   39,   40,   41,   42,   43,   44,   45,   24,
102696c5ddc4Srjs       24,   24,   46,   47,  859,   59,   47,   59,   59,   48,
102796c5ddc4Srjs       49,   50,   51,   50,   50,   49,   49,   49,   49,   49,
102896c5ddc4Srjs       49,   49,   49,   49,   49,   49,   52,   53,   54,   54,
102996c5ddc4Srjs
103096c5ddc4Srjs       54,   54,   54,   54,   54,   55,   49,   49,   49,   56,
103196c5ddc4Srjs       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
103296c5ddc4Srjs       56,   56,   56,   56,   56,   49,   56,   56,   56,   56,
103310e230b6Smaya       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
103410e230b6Smaya       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
103596c5ddc4Srjs       56,   56,   49,   62,   65,   89,   67,   69,   69,   69,
103696c5ddc4Srjs       69,   69,   69,   69,   69,   83,   84,  860,   66,   68,
103796c5ddc4Srjs       91,   63,   71,   90,   72,   72,   72,   72,   72,   72,
103896c5ddc4Srjs       72,   73,   86,   87,   98,   92,   93,   94,   99,   95,
103996c5ddc4Srjs       74,  116,   96,   97,   75,  100,  233, 1111,  101,  117,
104096c5ddc4Srjs
104196c5ddc4Srjs       76,   77,  102,  107,  234,  108,  103,  126,   74,  128,
104296c5ddc4Srjs      104,  118,  105,  129,  109,   75,  190,  861,  106,  157,
104396c5ddc4Srjs      191,  127, 1111,   78,  130,  119,   77,   71,  158,   79,
104496c5ddc4Srjs       79,   79,   79,   79,   79,   79,   79,  159,  131,  110,
104596c5ddc4Srjs      865,  136,  154,  267,  149,   74,  155,  111,  133,   80,
104696c5ddc4Srjs      112,  137,  268,  113,  120,   81,  156,  121,  866,  114,
104796c5ddc4Srjs      214,  122,  123,   74,  134,  138,  124,  135,  145,  125,
104896c5ddc4Srjs       80,  146,  139,  140,  215,  813,  150,  141,   82,  212,
104996c5ddc4Srjs      147,  151,  160,  142,  143,  152,  144,  148,  153,  161,
105096c5ddc4Srjs      213,   59,  161,  163,  164,  162,  163,  170,   71,  170,
105196c5ddc4Srjs
105296c5ddc4Srjs      170,  172,  172,  172,  172,  172,  172,  172,  172,   59,
105396c5ddc4Srjs      246,   59,   59,  183,  183,  251,   74,  184,  184,  184,
105496c5ddc4Srjs      184,  184,  184,  184,  184,  199,  202,  247,  248,  252,
105596c5ddc4Srjs      200,  201,  225,  203,   74,  226,  227,  238,  870,  228,
105696c5ddc4Srjs      269,  229,  241,  165,  239,  265,  266,  166,  270,  362,
105796c5ddc4Srjs      167,  340,  255,  363,  168,  257,  242,  307,  243,  169,
105896c5ddc4Srjs       69,   69,   69,   69,   69,   69,   69,   69,  256,  258,
105996c5ddc4Srjs      274,  308,  161,  275,   59,  161,  174,  175,  162,  341,
106096c5ddc4Srjs      176,  163,  164,  170,  163,  170,  170,  313,  314,  348,
106196c5ddc4Srjs      349,  350,  871,  872,  174,  175,  163,  164,  873,  163,
106296c5ddc4Srjs
106396c5ddc4Srjs      874,  177,  178,  178,  178,  178,  178,  178,  178,  178,
106496c5ddc4Srjs      172,  172,  172,  172,  172,  172,  172,  172,  179,  180,
106596c5ddc4Srjs      383,  875,  181,  390,  391,  392,  287,  288,  876,  384,
106696c5ddc4Srjs      289,  165,  411,  412,  413,  166,  179,  180,  167,  423,
106796c5ddc4Srjs      424,  425,  168,  182,  287,  288,  165,  169,  877,  581,
106896c5ddc4Srjs      166,  290,  581,  167,  427,  428,  429,  168,  878,  284,
106996c5ddc4Srjs      284,  665,  169,  285,  285,  285,  285,  285,  285,  285,
107096c5ddc4Srjs      285,  291,  291,  666,  879,  292,  292,  292,  292,  292,
107196c5ddc4Srjs      292,  292,  292,  184,  184,  184,  184,  184,  184,  184,
107296c5ddc4Srjs      184,  294,  297,  175,  295,  880,  176,  881,  298,  285,
107396c5ddc4Srjs
107496c5ddc4Srjs      285,  285,  285,  285,  285,  285,  285,  710,  623,  294,
107596c5ddc4Srjs      710,  175,  624,  297,  882,  296,  883,  177,  402,  402,
107696c5ddc4Srjs      884,  299,  403,  403,  403,  403,  403,  403,  403,  403,
107796c5ddc4Srjs      292,  292,  292,  292,  292,  292,  292,  292,  180,  885,
107896c5ddc4Srjs      886,  181,  435,  436,  437,  439,  440,  441,  452,  453,
107996c5ddc4Srjs      454,  494,  495,  496,  288,  887,  180,  289,  536,  537,
108096c5ddc4Srjs      538,  888,  182,  403,  403,  403,  403,  403,  403,  403,
108196c5ddc4Srjs      403,  889,  288,  525,  526,  527,  890,  891,  290,  539,
108296c5ddc4Srjs      540,  541,  542,  543,  544,  528,  529,  591,  592,  593,
108396c5ddc4Srjs      594,  595,  596,  597,  598,  599,  601,  602,  603,  604,
108496c5ddc4Srjs
108596c5ddc4Srjs      605,  606,  633,  634,  635,  636,  637,  638,  892,  789,
108696c5ddc4Srjs      581,  607,  608,  581,  893,  894,  895,  639,  640,  705,
108796c5ddc4Srjs      706,  790,  705,  896,  897,  667,  650,  651,  651,  651,
108896c5ddc4Srjs      651,  651,  651,  651,  668,  715,  669,  670,  685,  686,
108996c5ddc4Srjs      687,  898,  705,  706,  716,  705,  717,  730,  731,  732,
109096c5ddc4Srjs      688,  689,  748,  690,  705,  706,  899,  705,  900,  733,
109196c5ddc4Srjs      734,  749,  903,  750,  904,  753,  754,  755,  905,  901,
109296c5ddc4Srjs      707,  707,  707,  707,  707,  707,  707,  756,  757,  906,
109396c5ddc4Srjs      791,  902,  705,  706,  907,  705,  908,  710,  909,  792,
109496c5ddc4Srjs      710,  793,  794,  814,  815,  910,  814,  708,  707,  707,
109596c5ddc4Srjs
109696c5ddc4Srjs      707,  707,  707,  707,  707,  705,  706,  839,  705,  911,
109796c5ddc4Srjs      862,  867,  868,  912,  867,  913,  840,  914,  841,  863,
109896c5ddc4Srjs      915,  864,  708,  705,  706,  916,  705,  764,  760,  814,
109996c5ddc4Srjs      815,  917,  814,  918,  814,  815,  765,  814,  919,  761,
110096c5ddc4Srjs      762,  762,  762,  762,  762,  762,  762,  766,  814,  815,
110196c5ddc4Srjs      920,  814,  921,  922,  767,  814,  815,  923,  814,  867,
110296c5ddc4Srjs      868,  924,  867,  925,  816,  816,  816,  816,  816,  816,
110396c5ddc4Srjs      816,  816,  816,  816,  816,  816,  816,  816,  814,  815,
110496c5ddc4Srjs      926,  814,  927,  928,  929,  930,  931,  932,  933,  934,
110596c5ddc4Srjs      935,  936,  937,  938,  939,  940,  941,  942,  817,  943,
110696c5ddc4Srjs
110796c5ddc4Srjs      944,  945,  946,  947,  948,  949,  950,  951,  952,  953,
110896c5ddc4Srjs      954,  955,  956,  957,  958,  959,  960,  961,  962,  963,
110996c5ddc4Srjs      964,  965,  966,  817,  967,  968,  969,  970,  971,  972,
111096c5ddc4Srjs      973,  974,  975,  976,  977,  978,  979,  980,  981,  982,
111196c5ddc4Srjs      983,  984,  985,  986,  987,  988,  989,  990,  991,  992,
111296c5ddc4Srjs      994,  991,  992,  995,  996,  997,  998,  999,  993, 1000,
111396c5ddc4Srjs     1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010,
111496c5ddc4Srjs     1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018,  991,  992,
111596c5ddc4Srjs     1020,  991,  992, 1020, 1022, 1023, 1024, 1025,  993, 1026,
111696c5ddc4Srjs     1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036,
111796c5ddc4Srjs
111896c5ddc4Srjs     1037, 1020, 1038, 1040, 1020, 1041, 1043, 1044, 1041, 1045,
111996c5ddc4Srjs     1039, 1046, 1047, 1048, 1042, 1049, 1050, 1051, 1052, 1053,
112096c5ddc4Srjs     1054, 1055, 1056, 1057, 1063, 1059, 1057, 1041, 1059, 1064,
112196c5ddc4Srjs     1041, 1065, 1019, 1058, 1060, 1061, 1042, 1066, 1061, 1067,
112296c5ddc4Srjs     1021, 1068, 1069, 1070, 1071, 1057, 1077, 1071, 1057, 1059,
112396c5ddc4Srjs     1073, 1078, 1059, 1073, 1072, 1058, 1061, 1075, 1060, 1061,
112496c5ddc4Srjs     1079, 1021, 1080, 1081, 1071, 1076, 1073, 1071, 1082, 1073,
112596c5ddc4Srjs     1084, 1087, 1085, 1088, 1072, 1085, 1083, 1089, 1090, 1091,
112696c5ddc4Srjs     1092, 1094, 1086, 1092, 1094, 1096, 1085, 1097, 1100, 1085,
112796c5ddc4Srjs     1093, 1095, 1101, 1102, 1098, 1062, 1086, 1098, 1092, 1094,
112896c5ddc4Srjs
112996c5ddc4Srjs     1107, 1092, 1094, 1098, 1099, 1108, 1098,  858, 1093, 1095,
113096c5ddc4Srjs     1074, 1103, 1103, 1099, 1103, 1103, 1062,  857,  856, 1105,
113196c5ddc4Srjs     1104, 1104, 1105,  855, 1105, 1109, 1074, 1105, 1109, 1109,
113296c5ddc4Srjs      854,  853, 1109,  852,  851, 1110,  850,  849,  848, 1110,
113396c5ddc4Srjs      847,  846,  845,  844,  843,  842,  838,  837,  836,  835,
113496c5ddc4Srjs      834,  833,  832,  831,  830,  829,  828,  827,  826,  825,
113596c5ddc4Srjs      824,  823,  822,  821,  820, 1106,  819,  813,  811,  810,
113696c5ddc4Srjs     1106,   57,   57,   57,   57,   57,   57,   57,   57,   57,
113796c5ddc4Srjs       57,   57,   57,   88,   88,   88,   88,   88,   88,  173,
113896c5ddc4Srjs      173,  173,  173,  173,  173,   73,   73,  809,   73,  185,
113996c5ddc4Srjs
114096c5ddc4Srjs      185,  185,  185,  283,  283,  808,  283,  283,  283,  283,
114196c5ddc4Srjs      283,  283,  283,  283,  283,  184,  807,  806,  184,  805,
114296c5ddc4Srjs      184,  285,  804,  803,  285,  802,  285,  292,  801,  800,
114396c5ddc4Srjs      292,  799,  292,  403,  798,  797,  403,  796,  403,  709,
114496c5ddc4Srjs      709,  709,  795,  788,  709,  763,  763,  763,  763,  812,
114596c5ddc4Srjs      812,  812,  812,  812,  812,  812,  812,  812,  818,  818,
114696c5ddc4Srjs      818,  787,  786,  818,  869,  869,  869,  869,  785,  784,
114796c5ddc4Srjs      783,  782,  781,  780,  779,  778,  777,  776,  775,  774,
114896c5ddc4Srjs      773,  772,  771,  770,  769,  768,  759,  758,  752,  751,
114996c5ddc4Srjs      747,  746,  745,  744,  743,  742,  741,  740,  739,  738,
115096c5ddc4Srjs
115196c5ddc4Srjs      737,  736,  735,  729,  728,  727,  726,  725,  724,  723,
115296c5ddc4Srjs      722,  721,  720,  719,  718,  714,  713,  712,  711,  704,
115396c5ddc4Srjs      703,  702,  701,  700,  699,  698,  697,  696,  695,  694,
115496c5ddc4Srjs      693,  692,  691,  684,  683,  682,  681,  680,  679,  678,
115596c5ddc4Srjs      677,  676,  675,  674,  673,  672,  671,  664,  663,  662,
115696c5ddc4Srjs      661,  660,  659,  658,  657,  656,  655,  654,  653,  652,
115796c5ddc4Srjs      649,  648,  647,  646,  645,  644,  643,  642,  641,  632,
115896c5ddc4Srjs      631,  630,  629,  628,  627,  626,  625,  622,  621,  620,
115996c5ddc4Srjs      619,  618,  617,  616,  615,  614,  613,  612,  611,  610,
116096c5ddc4Srjs      609,  600,  590,  589,  588,  587,  586,  585,  584,  583,
116196c5ddc4Srjs
116296c5ddc4Srjs      582,  580,  579,  578,  577,  576,  575,  574,  573,  572,
116396c5ddc4Srjs      571,  570,  569,  568,  567,  566,  565,  564,  563,  562,
116496c5ddc4Srjs      561,  560,  559,  558,  557,  556,  555,  554,  553,  552,
116596c5ddc4Srjs      551,  550,  549,  548,  547,  546,  545,  535,  534,  533,
116696c5ddc4Srjs      532,  531,  530,  524,  523,  522,  521,  520,  519,  518,
116796c5ddc4Srjs      517,  516,  515,  514,  513,  512,  511,  510,  509,  508,
116896c5ddc4Srjs      507,  506,  505,  504,  503,  502,  501,  500,  499,  498,
116996c5ddc4Srjs      497,  493,  492,  491,  490,  489,  488,  487,  486,  485,
117096c5ddc4Srjs      484,  483,  482,  481,  480,  479,  478,  477,  476,  475,
117196c5ddc4Srjs      474,  473,  472,  471,  470,  469,  468,  467,  466,  465,
117296c5ddc4Srjs
117396c5ddc4Srjs      464,  463,  462,  461,  460,  459,  458,  457,  456,  455,
117496c5ddc4Srjs      451,  450,  449,  448,  447,  446,  445,  444,  443,  442,
117596c5ddc4Srjs      438,  434,  433,  432,  431,  430,  426,  422,  421,  420,
117696c5ddc4Srjs      419,  418,  417,  416,  415,  414,  410,  409,  408,  407,
117796c5ddc4Srjs      406,  297,  297,  405,  405,  404,  404,  401,  400,  399,
117896c5ddc4Srjs      398,  397,  396,  395,  394,  393,  389,  388,  387,  386,
117996c5ddc4Srjs      385,  382,  381,  380,  379,  378,  377,  376,  375,  374,
118096c5ddc4Srjs      373,  372,  371,  370,  369,  368,  367,  366,  365,  364,
118196c5ddc4Srjs      361,  360,  359,  358,  357,  356,  355,  354,  353,  352,
118296c5ddc4Srjs      351,  347,  346,  345,  344,  343,  342,  339,  338,  337,
118396c5ddc4Srjs
118496c5ddc4Srjs      336,  335,  334,  333,  332,  331,  330,  329,  328,  327,
118596c5ddc4Srjs      326,  325,  324,  323,  322,  321,  320,  319,  318,  317,
118696c5ddc4Srjs      316,  315,  312,  311,  310,  309,  306,  305,  304,  303,
118796c5ddc4Srjs      302,  301,  300,  293,  293,  286,  286,  282,  281,  280,
118896c5ddc4Srjs      279,  278,  277,  276,  273,  272,  271,  264,  263,  262,
118996c5ddc4Srjs      261,  260,  259,  254,  253,  250,  249,  245,  244,  240,
119096c5ddc4Srjs      237,  236,  235,  232,  231,  230,  224,  223,  222,  221,
119196c5ddc4Srjs      220,  219,  218,  217,  216,  211,  210,  209,  208,  207,
119296c5ddc4Srjs      206,  205,  204,  198,  197,  196,  195,  194,  193,  192,
119396c5ddc4Srjs      189,  188,  187,  186,   80,   80,   75,   75,  171,  132,
119496c5ddc4Srjs
119596c5ddc4Srjs      115,   85,   70,   64,   61,   60, 1111,   58,   58,    7,
119696c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
119796c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
119896c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
119996c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
120096c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
120196c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
120296c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
120396c5ddc4Srjs     1111, 1111, 1111
120410e230b6Smaya    } ;
120510e230b6Smaya
120696c5ddc4Srjsstatic const flex_int16_t yy_chk[1684] =
120710e230b6Smaya    {   0,
120810e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
120910e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
121010e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
121110e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
121210e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
121310e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
121410e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
121596c5ddc4Srjs        1,    1,    1,    2,  804,    9,    2,    9,    9,    2,
121610e230b6Smaya        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
121710e230b6Smaya        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
121810e230b6Smaya
121910e230b6Smaya        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
122010e230b6Smaya        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
122110e230b6Smaya        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
122210e230b6Smaya        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
122396c5ddc4Srjs        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
122496c5ddc4Srjs        3,    3,    3,   13,   15,   25,   16,   17,   17,   17,
122596c5ddc4Srjs       17,   17,   17,   17,   17,   21,   21,  805,   15,   16,
122696c5ddc4Srjs       26,   13,   19,   25,   19,   19,   19,   19,   19,   19,
122796c5ddc4Srjs       19,   19,   23,   23,   28,   26,   26,   27,   28,   27,
122896c5ddc4Srjs       19,   33,   27,   27,   19,   28,  127,   72,   28,   33,
122996c5ddc4Srjs
123096c5ddc4Srjs       19,   19,   29,   30,  127,   30,   29,   35,   19,   36,
123196c5ddc4Srjs       29,   33,   29,   36,   30,   19,   93,  806,   29,   45,
123296c5ddc4Srjs       93,   35,   72,   19,   37,   34,   19,   20,   45,   20,
123396c5ddc4Srjs       20,   20,   20,   20,   20,   20,   20,   46,   37,   31,
123496c5ddc4Srjs      809,   40,   44,  151,   43,   20,   44,   31,   39,   20,
123596c5ddc4Srjs       31,   40,  151,   31,   34,   20,   44,   34,  810,   31,
123696c5ddc4Srjs      112,   34,   34,   20,   39,   41,   34,   39,   42,   34,
123796c5ddc4Srjs       20,   42,   41,   41,  112,  812,   43,   41,   20,  111,
123896c5ddc4Srjs       42,   43,   46,   41,   41,   43,   41,   42,   43,   47,
123996c5ddc4Srjs      111,   47,   47,   48,   48,   47,   48,   50,   73,   50,
124096c5ddc4Srjs
124196c5ddc4Srjs       50,   54,   54,   54,   54,   54,   54,   54,   54,   59,
124296c5ddc4Srjs      136,   59,   59,   74,   74,  139,   73,   74,   74,   74,
124396c5ddc4Srjs       74,   74,   74,   74,   74,  101,  102,  136,  136,  139,
124496c5ddc4Srjs      101,  101,  123,  102,   73,  123,  123,  131,  819,  123,
124596c5ddc4Srjs      152,  123,  133,   48,  131,  150,  150,   48,  152,  247,
124696c5ddc4Srjs       48,  228,  142,  247,   48,  143,  133,  196,  133,   48,
124796c5ddc4Srjs       69,   69,   69,   69,   69,   69,   69,   69,  142,  143,
124896c5ddc4Srjs      156,  196,  161,  156,  161,  161,   69,   69,  161,  228,
124996c5ddc4Srjs       69,  162,  162,  170,  162,  170,  170,  201,  201,  235,
125096c5ddc4Srjs      235,  235,  820,  821,   69,   69,  163,  163,  822,  163,
125196c5ddc4Srjs
125296c5ddc4Srjs      824,   69,   71,   71,   71,   71,   71,   71,   71,   71,
125396c5ddc4Srjs      172,  172,  172,  172,  172,  172,  172,  172,   71,   71,
125496c5ddc4Srjs      267,  825,   71,  273,  273,  273,  178,  178,  826,  267,
125596c5ddc4Srjs      178,  162,  306,  306,  306,  162,   71,   71,  162,  318,
125696c5ddc4Srjs      318,  318,  162,   71,  178,  178,  163,  162,  827,  503,
125796c5ddc4Srjs      163,  178,  503,  163,  320,  320,  320,  163,  828,  174,
125896c5ddc4Srjs      174,  609,  163,  174,  174,  174,  174,  174,  174,  174,
125996c5ddc4Srjs      174,  179,  179,  609,  829,  179,  179,  179,  179,  179,
126096c5ddc4Srjs      179,  179,  179,  183,  183,  183,  183,  183,  183,  183,
126196c5ddc4Srjs      183,  184,  185,  285,  184,  830,  285,  831,  185,  284,
126296c5ddc4Srjs
126396c5ddc4Srjs      284,  284,  284,  284,  284,  284,  284,  652,  552,  184,
126496c5ddc4Srjs      652,  285,  552,  185,  832,  184,  833,  285,  287,  287,
126596c5ddc4Srjs      835,  185,  287,  287,  287,  287,  287,  287,  287,  287,
126696c5ddc4Srjs      291,  291,  291,  291,  291,  291,  291,  291,  292,  837,
126796c5ddc4Srjs      838,  292,  329,  329,  329,  333,  333,  333,  344,  344,
126896c5ddc4Srjs      344,  388,  388,  388,  403,  839,  292,  403,  456,  456,
126996c5ddc4Srjs      456,  840,  292,  402,  402,  402,  402,  402,  402,  402,
127096c5ddc4Srjs      402,  841,  403,  444,  444,  444,  842,  843,  403,  457,
127196c5ddc4Srjs      457,  457,  458,  458,  458,  444,  444,  517,  517,  517,
127296c5ddc4Srjs      518,  518,  518,  519,  519,  519,  523,  523,  523,  524,
127396c5ddc4Srjs
127496c5ddc4Srjs      524,  524,  570,  570,  570,  571,  571,  571,  844,  740,
127596c5ddc4Srjs      581,  524,  524,  581,  845,  846,  847,  571,  571,  651,
127696c5ddc4Srjs      651,  740,  651,  848,  849,  610,  581,  581,  581,  581,
127796c5ddc4Srjs      581,  581,  581,  581,  610,  661,  610,  610,  629,  629,
127896c5ddc4Srjs      629,  850,  709,  709,  661,  709,  661,  675,  675,  675,
127996c5ddc4Srjs      629,  629,  694,  629,  650,  650,  851,  650,  852,  675,
128096c5ddc4Srjs      675,  694,  854,  694,  855,  700,  700,  700,  856,  853,
128196c5ddc4Srjs      650,  650,  650,  650,  650,  650,  650,  700,  700,  857,
128296c5ddc4Srjs      741,  853,  707,  707,  858,  707,  859,  710,  860,  741,
128396c5ddc4Srjs      710,  741,  741,  762,  762,  861,  762,  650,  707,  707,
128496c5ddc4Srjs
128596c5ddc4Srjs      707,  707,  707,  707,  707,  763,  763,  784,  763,  862,
128696c5ddc4Srjs      807,  813,  813,  863,  813,  864,  784,  865,  784,  807,
128796c5ddc4Srjs      866,  807,  650,  705,  705,  870,  705,  710,  705,  814,
128896c5ddc4Srjs      814,  871,  814,  872,  818,  818,  710,  818,  873,  705,
128996c5ddc4Srjs      705,  705,  705,  705,  705,  705,  705,  710,  816,  816,
129096c5ddc4Srjs      874,  816,  875,  876,  710,  761,  761,  879,  761,  867,
129196c5ddc4Srjs      867,  880,  867,  881,  816,  816,  816,  816,  816,  816,
129296c5ddc4Srjs      816,  761,  761,  761,  761,  761,  761,  761,  869,  869,
129396c5ddc4Srjs      882,  869,  883,  884,  885,  886,  887,  888,  889,  890,
129496c5ddc4Srjs      891,  892,  893,  894,  895,  896,  897,  898,  761,  899,
129596c5ddc4Srjs
129696c5ddc4Srjs      900,  901,  902,  903,  904,  905,  906,  909,  910,  911,
129796c5ddc4Srjs      912,  913,  914,  915,  916,  917,  918,  919,  922,  923,
129896c5ddc4Srjs      924,  926,  927,  761,  929,  930,  931,  932,  933,  934,
129996c5ddc4Srjs      935,  937,  938,  939,  940,  941,  942,  945,  946,  947,
130096c5ddc4Srjs      950,  951,  952,  953,  954,  955,  956,  957,  958,  959,
130196c5ddc4Srjs      960,  958,  959,  961,  962,  963,  964,  965,  959,  968,
130296c5ddc4Srjs      969,  970,  973,  974,  975,  976,  977,  978,  979,  980,
130396c5ddc4Srjs      981,  982,  983,  984,  985,  986,  987,  990,  991,  992,
130496c5ddc4Srjs      993,  991,  992,  993,  994,  995,  998,  999,  992, 1002,
130596c5ddc4Srjs     1003, 1004, 1006, 1007, 1008, 1010, 1011, 1012, 1017, 1018,
130696c5ddc4Srjs
130796c5ddc4Srjs     1019, 1020, 1021, 1022, 1020, 1023, 1024, 1025, 1023, 1026,
130896c5ddc4Srjs     1021, 1027, 1028, 1029, 1023, 1031, 1032, 1033, 1034, 1035,
130996c5ddc4Srjs     1036, 1037, 1038, 1039, 1043, 1040, 1039, 1041, 1040, 1044,
131096c5ddc4Srjs     1041, 1047,  991, 1039, 1040, 1042, 1041, 1048, 1042, 1049,
131196c5ddc4Srjs      993, 1050, 1052, 1055, 1056, 1057, 1065, 1056, 1057, 1059,
131296c5ddc4Srjs     1060, 1066, 1059, 1060, 1056, 1057, 1061, 1062, 1059, 1061,
131396c5ddc4Srjs     1067, 1020, 1068, 1070, 1071, 1062, 1073, 1071, 1074, 1073,
131496c5ddc4Srjs     1075, 1077, 1076, 1078, 1071, 1076, 1074, 1080, 1081, 1082,
131596c5ddc4Srjs     1083, 1084, 1076, 1083, 1084, 1089, 1085, 1090, 1096, 1085,
131696c5ddc4Srjs     1083, 1084, 1097, 1101, 1091, 1042, 1085, 1091, 1092, 1094,
131796c5ddc4Srjs
131896c5ddc4Srjs     1106, 1092, 1094, 1098, 1091, 1107, 1098,  803, 1092, 1094,
131996c5ddc4Srjs     1060, 1102, 1103, 1098, 1102, 1103, 1061,  802,  801, 1104,
132096c5ddc4Srjs     1102, 1103, 1104,  800, 1105, 1108, 1073, 1105, 1108, 1109,
132196c5ddc4Srjs      798,  797, 1109,  796,  795, 1108,  794,  793,  792, 1109,
132296c5ddc4Srjs      791,  790,  789,  788,  787,  786,  783,  782,  781,  780,
132396c5ddc4Srjs      779,  778,  777,  776,  775,  774,  773,  772,  771,  770,
132496c5ddc4Srjs      769,  768,  767,  766,  765, 1104,  764,  760,  759,  757,
132596c5ddc4Srjs     1105, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112,
132696c5ddc4Srjs     1112, 1112, 1112, 1113, 1113, 1113, 1113, 1113, 1113, 1114,
132796c5ddc4Srjs     1114, 1114, 1114, 1114, 1114, 1115, 1115,  756, 1115, 1116,
132896c5ddc4Srjs
132996c5ddc4Srjs     1116, 1116, 1116, 1117, 1117,  755, 1117, 1117, 1117, 1117,
133096c5ddc4Srjs     1117, 1117, 1117, 1117, 1117, 1118,  754,  753, 1118,  752,
133196c5ddc4Srjs     1118, 1119,  751,  750, 1119,  749, 1119, 1120,  748,  747,
133296c5ddc4Srjs     1120,  746, 1120, 1121,  745,  744, 1121,  743, 1121, 1122,
133396c5ddc4Srjs     1122, 1122,  742,  736, 1122, 1123, 1123, 1123, 1123, 1124,
133496c5ddc4Srjs     1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1125, 1125,
133596c5ddc4Srjs     1125,  734,  733, 1125, 1126, 1126, 1126, 1126,  732,  731,
133696c5ddc4Srjs      730,  727,  726,  725,  724,  723,  722,  721,  720,  719,
133796c5ddc4Srjs      718,  717,  716,  715,  714,  712,  703,  702,  697,  696,
133896c5ddc4Srjs      693,  691,  690,  689,  688,  687,  686,  685,  684,  680,
133996c5ddc4Srjs
134096c5ddc4Srjs      679,  678,  676,  674,  673,  672,  671,  670,  669,  668,
134196c5ddc4Srjs      667,  666,  665,  664,  663,  660,  655,  654,  653,  649,
134296c5ddc4Srjs      648,  647,  646,  644,  643,  641,  640,  639,  638,  637,
134396c5ddc4Srjs      636,  631,  630,  628,  627,  626,  625,  624,  622,  621,
134496c5ddc4Srjs      620,  619,  617,  616,  615,  613,  612,  608,  607,  606,
134596c5ddc4Srjs      605,  604,  600,  588,  587,  586,  585,  584,  583,  582,
134696c5ddc4Srjs      580,  579,  578,  577,  576,  575,  574,  573,  572,  569,
134796c5ddc4Srjs      568,  565,  559,  558,  556,  555,  554,  551,  548,  547,
134896c5ddc4Srjs      546,  545,  534,  533,  532,  531,  529,  528,  527,  526,
134996c5ddc4Srjs      525,  521,  516,  514,  513,  511,  510,  508,  507,  505,
135096c5ddc4Srjs
135196c5ddc4Srjs      504,  502,  501,  500,  498,  497,  492,  491,  489,  488,
135296c5ddc4Srjs      487,  486,  485,  484,  483,  482,  481,  480,  479,  478,
135396c5ddc4Srjs      477,  475,  474,  473,  472,  471,  470,  469,  468,  467,
135496c5ddc4Srjs      465,  464,  463,  462,  461,  460,  459,  455,  451,  450,
135596c5ddc4Srjs      449,  448,  445,  443,  442,  432,  430,  426,  425,  424,
135696c5ddc4Srjs      423,  422,  421,  420,  419,  417,  416,  414,  410,  408,
135796c5ddc4Srjs      407,  406,  401,  400,  399,  398,  397,  396,  395,  394,
135896c5ddc4Srjs      389,  387,  386,  385,  384,  383,  382,  381,  380,  379,
135996c5ddc4Srjs      376,  375,  374,  373,  372,  371,  370,  369,  368,  367,
136096c5ddc4Srjs      366,  365,  364,  363,  362,  361,  360,  359,  358,  357,
136196c5ddc4Srjs
136296c5ddc4Srjs      356,  355,  354,  353,  352,  351,  350,  349,  348,  345,
136396c5ddc4Srjs      343,  342,  341,  340,  339,  338,  337,  336,  335,  334,
136496c5ddc4Srjs      332,  328,  326,  325,  324,  323,  319,  317,  316,  315,
136596c5ddc4Srjs      314,  313,  312,  311,  310,  309,  305,  304,  302,  301,
136696c5ddc4Srjs      300,  299,  298,  296,  295,  290,  289,  282,  281,  280,
136796c5ddc4Srjs      279,  278,  277,  276,  275,  274,  272,  271,  270,  269,
136896c5ddc4Srjs      268,  266,  265,  264,  263,  262,  261,  260,  259,  258,
136996c5ddc4Srjs      257,  256,  255,  254,  253,  252,  251,  250,  249,  248,
137096c5ddc4Srjs      246,  245,  244,  243,  242,  241,  240,  239,  238,  237,
137196c5ddc4Srjs      236,  234,  233,  232,  231,  230,  229,  227,  226,  225,
137296c5ddc4Srjs
137396c5ddc4Srjs      224,  223,  222,  221,  220,  219,  218,  217,  215,  214,
137496c5ddc4Srjs      213,  212,  211,  210,  209,  208,  207,  206,  205,  204,
137596c5ddc4Srjs      203,  202,  200,  199,  198,  197,  195,  194,  193,  192,
137696c5ddc4Srjs      191,  190,  188,  182,  181,  177,  176,  169,  168,  167,
137796c5ddc4Srjs      166,  165,  158,  157,  155,  154,  153,  149,  148,  147,
137896c5ddc4Srjs      146,  145,  144,  141,  140,  138,  137,  135,  134,  132,
137996c5ddc4Srjs      130,  129,  128,  126,  125,  124,  122,  121,  119,  118,
138096c5ddc4Srjs      117,  116,  115,  114,  113,  110,  109,  108,  107,  106,
138196c5ddc4Srjs      105,  104,  103,  100,   99,   98,   97,   96,   95,   94,
138296c5ddc4Srjs       92,   91,   87,   83,   82,   81,   78,   76,   52,   38,
138396c5ddc4Srjs
138496c5ddc4Srjs       32,   22,   18,   14,   12,   11,    7,    6,    5, 1111,
138596c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
138696c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
138796c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
138896c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
138996c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
139096c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
139196c5ddc4Srjs     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
139296c5ddc4Srjs     1111, 1111, 1111
139310e230b6Smaya    } ;
139410e230b6Smaya
139510e230b6Smaya/* The intent behind this definition is that it'll catch
139610e230b6Smaya * any uses of REJECT which flex missed.
139710e230b6Smaya */
139810e230b6Smaya#define REJECT reject_used_but_not_detected
139910e230b6Smaya#define yymore() yymore_used_but_not_detected
140010e230b6Smaya#define YY_MORE_ADJ 0
140110e230b6Smaya#define YY_RESTORE_YY_MORE_OFFSET
140210e230b6Smaya#line 1 "../src/compiler/glsl/glsl_lexer.ll"
140310e230b6Smaya#line 2 "../src/compiler/glsl/glsl_lexer.ll"
140410e230b6Smaya/*
140510e230b6Smaya * Copyright © 2008, 2009 Intel Corporation
140610e230b6Smaya *
140710e230b6Smaya * Permission is hereby granted, free of charge, to any person obtaining a
140810e230b6Smaya * copy of this software and associated documentation files (the "Software"),
140910e230b6Smaya * to deal in the Software without restriction, including without limitation
141010e230b6Smaya * the rights to use, copy, modify, merge, publish, distribute, sublicense,
141110e230b6Smaya * and/or sell copies of the Software, and to permit persons to whom the
141210e230b6Smaya * Software is furnished to do so, subject to the following conditions:
141310e230b6Smaya *
141410e230b6Smaya * The above copyright notice and this permission notice (including the next
141510e230b6Smaya * paragraph) shall be included in all copies or substantial portions of the
141610e230b6Smaya * Software.
141710e230b6Smaya *
141810e230b6Smaya * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
141910e230b6Smaya * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
142010e230b6Smaya * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
142110e230b6Smaya * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
142210e230b6Smaya * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
142310e230b6Smaya * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
142410e230b6Smaya * DEALINGS IN THE SOFTWARE.
142510e230b6Smaya */
142610e230b6Smaya#include <ctype.h>
142710e230b6Smaya#include <limits.h>
142810e230b6Smaya#include "util/strtod.h"
142910e230b6Smaya#include "ast.h"
143010e230b6Smaya#include "glsl_parser_extras.h"
143110e230b6Smaya#include "glsl_parser.h"
143210e230b6Smaya#include "main/mtypes.h"
143310e230b6Smaya
143410e230b6Smayastatic int classify_identifier(struct _mesa_glsl_parse_state *, const char *,
143510e230b6Smaya			       unsigned name_len, YYSTYPE *output);
143610e230b6Smaya
143710e230b6Smaya#ifdef _MSC_VER
143810e230b6Smaya#define YY_NO_UNISTD_H
143910e230b6Smaya#endif
144010e230b6Smaya
144110e230b6Smaya#define YY_NO_INPUT
144210e230b6Smaya#define YY_USER_ACTION						\
144310e230b6Smaya   do {								\
144410e230b6Smaya      yylloc->first_column = yycolumn + 1;			\
144510e230b6Smaya      yylloc->first_line = yylloc->last_line = yylineno + 1;	\
144610e230b6Smaya      yycolumn += yyleng;					\
144710e230b6Smaya      yylloc->last_column = yycolumn + 1;			\
144810e230b6Smaya   } while(0);
144910e230b6Smaya
145096c5ddc4Srjs#define YY_USER_INIT yylineno = 0; yycolumn = 0; yylloc->source = 0; \
145196c5ddc4Srjs   yylloc->path = NULL;
145210e230b6Smaya
145310e230b6Smaya/* A macro for handling reserved words and keywords across language versions.
145410e230b6Smaya *
145510e230b6Smaya * Certain words start out as identifiers, become reserved words in
145610e230b6Smaya * later language revisions, and finally become language keywords.
145710e230b6Smaya * This may happen at different times in desktop GLSL and GLSL ES.
145810e230b6Smaya *
145910e230b6Smaya * For example, consider the following lexer rule:
146010e230b6Smaya * samplerBuffer       KEYWORD(130, 0, 140, 0, SAMPLERBUFFER)
146110e230b6Smaya *
146210e230b6Smaya * This means that "samplerBuffer" will be treated as:
146310e230b6Smaya * - a keyword (SAMPLERBUFFER token)         ...in GLSL >= 1.40
146410e230b6Smaya * - a reserved word - error                 ...in GLSL >= 1.30
146510e230b6Smaya * - an identifier                           ...in GLSL <  1.30 or GLSL ES
146610e230b6Smaya */
146710e230b6Smaya#define KEYWORD(reserved_glsl, reserved_glsl_es,			\
146810e230b6Smaya                allowed_glsl, allowed_glsl_es, token)			\
146910e230b6Smaya   KEYWORD_WITH_ALT(reserved_glsl, reserved_glsl_es,			\
147010e230b6Smaya                    allowed_glsl, allowed_glsl_es, false, token)
147110e230b6Smaya
147210e230b6Smaya/**
147310e230b6Smaya * Like the KEYWORD macro, but the word is also treated as a keyword
147410e230b6Smaya * if the given boolean expression is true.
147510e230b6Smaya */
147610e230b6Smaya#define KEYWORD_WITH_ALT(reserved_glsl, reserved_glsl_es,		\
147710e230b6Smaya                         allowed_glsl, allowed_glsl_es,			\
147810e230b6Smaya                         alt_expr, token)				\
147910e230b6Smaya   do {									\
148010e230b6Smaya      if (yyextra->is_version(allowed_glsl, allowed_glsl_es)		\
148110e230b6Smaya          || (alt_expr)) {						\
148210e230b6Smaya	 return token;							\
148310e230b6Smaya      } else if (yyextra->is_version(reserved_glsl,			\
148410e230b6Smaya                                     reserved_glsl_es)) {		\
148510e230b6Smaya	 _mesa_glsl_error(yylloc, yyextra,				\
148610e230b6Smaya			  "illegal use of reserved word `%s'", yytext);	\
148710e230b6Smaya	 return ERROR_TOK;						\
148810e230b6Smaya      } else {								\
148910e230b6Smaya	 return classify_identifier(yyextra, yytext, yyleng, yylval);	\
149010e230b6Smaya      }									\
149110e230b6Smaya   } while (0)
149210e230b6Smaya
149310e230b6Smaya/**
149410e230b6Smaya * Like KEYWORD_WITH_ALT, but used for built-in GLSL types
149510e230b6Smaya */
149610e230b6Smaya#define TYPE_WITH_ALT(reserved_glsl, reserved_glsl_es,			\
149710e230b6Smaya		      allowed_glsl, allowed_glsl_es,			\
149810e230b6Smaya		      alt_expr, gtype)					\
149910e230b6Smaya   do {									\
150010e230b6Smaya      if (yyextra->is_version(allowed_glsl, allowed_glsl_es)		\
150110e230b6Smaya          || (alt_expr)) {						\
150210e230b6Smaya	 yylval->type = gtype; 						\
150310e230b6Smaya	 return BASIC_TYPE_TOK;						\
150410e230b6Smaya      } else if (yyextra->is_version(reserved_glsl,			\
150510e230b6Smaya                                     reserved_glsl_es)) {		\
150610e230b6Smaya	 _mesa_glsl_error(yylloc, yyextra,				\
150710e230b6Smaya			  "illegal use of reserved word `%s'", yytext);	\
150810e230b6Smaya	 return ERROR_TOK;						\
150910e230b6Smaya      } else {								\
151010e230b6Smaya	 return classify_identifier(yyextra, yytext, yyleng, yylval);	\
151110e230b6Smaya      }									\
151210e230b6Smaya   } while (0)
151310e230b6Smaya
151410e230b6Smaya#define TYPE(reserved_glsl, reserved_glsl_es,				\
151510e230b6Smaya             allowed_glsl, allowed_glsl_es,				\
151610e230b6Smaya             gtype)							\
151710e230b6Smaya   TYPE_WITH_ALT(reserved_glsl, reserved_glsl_es,			\
151810e230b6Smaya                 allowed_glsl, allowed_glsl_es,				\
151910e230b6Smaya                 false, gtype)
152010e230b6Smaya
152110e230b6Smaya/**
152210e230b6Smaya * A macro for handling keywords that have been present in GLSL since
152396c5ddc4Srjs * its origin, but were changed into reserved words in later versions.
152410e230b6Smaya */
152596c5ddc4Srjs#define DEPRECATED_KEYWORD(token, state, reserved_glsl,			\
152696c5ddc4Srjs                           reserved_glsl_es)				\
152710e230b6Smaya   do {									\
152896c5ddc4Srjs      if (yyextra->is_version(reserved_glsl, reserved_glsl_es) &&	\
152996c5ddc4Srjs          !state->compat_shader) {					\
153010e230b6Smaya	 _mesa_glsl_error(yylloc, yyextra,				\
153110e230b6Smaya			  "illegal use of reserved word `%s'", yytext);	\
153210e230b6Smaya	 return ERROR_TOK;						\
153310e230b6Smaya      } else {								\
153410e230b6Smaya         return token;							\
153510e230b6Smaya      }									\
153610e230b6Smaya   } while (0)
153710e230b6Smaya
153810e230b6Smaya/**
153996c5ddc4Srjs * Like DEPRECATED_KEYWORD, but for types
154010e230b6Smaya */
154110e230b6Smaya#define DEPRECATED_ES_TYPE_WITH_ALT(alt_expr, gtype)			\
154210e230b6Smaya   do {									\
154310e230b6Smaya      if (yyextra->is_version(0, 300)) {				\
154410e230b6Smaya         _mesa_glsl_error(yylloc, yyextra,				\
154510e230b6Smaya                          "illegal use of reserved word `%s'", yytext);	\
154610e230b6Smaya         return ERROR_TOK;						\
154710e230b6Smaya      } else if (alt_expr) {						\
154810e230b6Smaya         yylval->type = gtype;						\
154910e230b6Smaya         return BASIC_TYPE_TOK;						\
155010e230b6Smaya      } else {								\
155110e230b6Smaya         return classify_identifier(yyextra, yytext, yyleng, yylval);	\
155210e230b6Smaya      }									\
155310e230b6Smaya   } while (0)
155410e230b6Smaya
155510e230b6Smaya#define DEPRECATED_ES_TYPE(gtype)					\
155610e230b6Smaya   DEPRECATED_ES_TYPE_WITH_ALT(true, gtype)
155710e230b6Smaya
155810e230b6Smayastatic int
155910e230b6Smayaliteral_integer(char *text, int len, struct _mesa_glsl_parse_state *state,
156010e230b6Smaya		YYSTYPE *lval, YYLTYPE *lloc, int base)
156110e230b6Smaya{
156210e230b6Smaya   bool is_uint = (text[len - 1] == 'u' ||
156310e230b6Smaya		   text[len - 1] == 'U');
156410e230b6Smaya   bool is_long = (text[len - 1] == 'l' || text[len - 1] == 'L');
156510e230b6Smaya   const char *digits = text;
156610e230b6Smaya
156710e230b6Smaya   if (is_long)
156810e230b6Smaya      is_uint = (text[len - 2] == 'u' && text[len - 1] == 'l') ||
156910e230b6Smaya                (text[len - 2] == 'U' && text[len - 1] == 'L');
157010e230b6Smaya   /* Skip "0x" */
157110e230b6Smaya   if (base == 16)
157210e230b6Smaya      digits += 2;
157310e230b6Smaya
157410e230b6Smaya   unsigned long long value = strtoull(digits, NULL, base);
157510e230b6Smaya
157610e230b6Smaya   if (is_long)
157710e230b6Smaya      lval->n64 = (int64_t)value;
157810e230b6Smaya   else
157910e230b6Smaya      lval->n = (int)value;
158010e230b6Smaya
158110e230b6Smaya   if (is_long && !is_uint && base == 10 && value > (uint64_t)LLONG_MAX + 1) {
158210e230b6Smaya      /* Tries to catch unintentionally providing a negative value. */
158310e230b6Smaya      _mesa_glsl_warning(lloc, state,
158410e230b6Smaya                         "signed literal value `%s' is interpreted as %lld",
158510e230b6Smaya                         text, lval->n64);
158610e230b6Smaya   } else if (!is_long && value > UINT_MAX) {
158710e230b6Smaya      /* Note that signed 0xffffffff is valid, not out of range! */
158810e230b6Smaya      if (state->is_version(130, 300)) {
158910e230b6Smaya	 _mesa_glsl_error(lloc, state,
159010e230b6Smaya			  "literal value `%s' out of range", text);
159110e230b6Smaya      } else {
159210e230b6Smaya	 _mesa_glsl_warning(lloc, state,
159310e230b6Smaya			    "literal value `%s' out of range", text);
159410e230b6Smaya      }
159510e230b6Smaya   } else if (base == 10 && !is_uint && (unsigned)value > (unsigned)INT_MAX + 1) {
159610e230b6Smaya      /* Tries to catch unintentionally providing a negative value.
159710e230b6Smaya       * Note that -2147483648 is parsed as -(2147483648), so we don't
159810e230b6Smaya       * want to warn for INT_MAX.
159910e230b6Smaya       */
160010e230b6Smaya      _mesa_glsl_warning(lloc, state,
160110e230b6Smaya			 "signed literal value `%s' is interpreted as %d",
160210e230b6Smaya			 text, lval->n);
160310e230b6Smaya   }
160410e230b6Smaya   if (is_long)
160510e230b6Smaya      return is_uint ? UINT64CONSTANT : INT64CONSTANT;
160610e230b6Smaya   else
160710e230b6Smaya      return is_uint ? UINTCONSTANT : INTCONSTANT;
160810e230b6Smaya}
160910e230b6Smaya
161010e230b6Smaya#define LITERAL_INTEGER(base) \
161110e230b6Smaya   literal_integer(yytext, yyleng, yyextra, yylval, yylloc, base)
161210e230b6Smaya
161396c5ddc4Srjs#line 1613 "src/compiler/glsl/glsl_lexer.cpp"
161496c5ddc4Srjs#line 221 "../src/compiler/glsl/glsl_lexer.ll"
161510e230b6Smaya	/* Note: When adding any start conditions to this list, you must also
161610e230b6Smaya	 * update the "Internal compiler error" catch-all rule near the end of
161710e230b6Smaya	 * this file. */
161810e230b6Smaya
161996c5ddc4Srjs#line 1619 "src/compiler/glsl/glsl_lexer.cpp"
162010e230b6Smaya
162110e230b6Smaya#define INITIAL 0
162210e230b6Smaya#define PP 1
162310e230b6Smaya#define PRAGMA 2
162410e230b6Smaya
162510e230b6Smaya#ifndef YY_NO_UNISTD_H
162610e230b6Smaya/* Special case for "unistd.h", since it is non-ANSI. We include it way
162710e230b6Smaya * down here because we want the user's section 1 to have been scanned first.
162810e230b6Smaya * The user has a chance to override it with an option.
162910e230b6Smaya */
163010e230b6Smaya#include <unistd.h>
163110e230b6Smaya#endif
163210e230b6Smaya
163310e230b6Smaya#define YY_EXTRA_TYPE struct _mesa_glsl_parse_state *
163410e230b6Smaya
163510e230b6Smaya/* Holds the entire state of the reentrant scanner. */
163610e230b6Smayastruct yyguts_t
163710e230b6Smaya    {
163810e230b6Smaya
163910e230b6Smaya    /* User-defined. Not touched by flex. */
164010e230b6Smaya    YY_EXTRA_TYPE yyextra_r;
164110e230b6Smaya
164210e230b6Smaya    /* The rest are the same as the globals declared in the non-reentrant scanner. */
164310e230b6Smaya    FILE *yyin_r, *yyout_r;
164410e230b6Smaya    size_t yy_buffer_stack_top; /**< index of top of stack. */
164510e230b6Smaya    size_t yy_buffer_stack_max; /**< capacity of stack. */
164610e230b6Smaya    YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
164710e230b6Smaya    char yy_hold_char;
164810e230b6Smaya    yy_size_t yy_n_chars;
164910e230b6Smaya    yy_size_t yyleng_r;
165010e230b6Smaya    char *yy_c_buf_p;
165110e230b6Smaya    int yy_init;
165210e230b6Smaya    int yy_start;
165310e230b6Smaya    int yy_did_buffer_switch_on_eof;
165410e230b6Smaya    int yy_start_stack_ptr;
165510e230b6Smaya    int yy_start_stack_depth;
165610e230b6Smaya    int *yy_start_stack;
165710e230b6Smaya    yy_state_type yy_last_accepting_state;
165810e230b6Smaya    char* yy_last_accepting_cpos;
165910e230b6Smaya
166010e230b6Smaya    int yylineno_r;
166110e230b6Smaya    int yy_flex_debug_r;
166210e230b6Smaya
166310e230b6Smaya    char *yytext_r;
166410e230b6Smaya    int yy_more_flag;
166510e230b6Smaya    int yy_more_len;
166610e230b6Smaya
166710e230b6Smaya    YYSTYPE * yylval_r;
166810e230b6Smaya
166910e230b6Smaya    YYLTYPE * yylloc_r;
167010e230b6Smaya
167110e230b6Smaya    }; /* end struct yyguts_t */
167210e230b6Smaya
167310e230b6Smayastatic int yy_init_globals ( yyscan_t yyscanner );
167410e230b6Smaya
167510e230b6Smaya    /* This must go here because YYSTYPE and YYLTYPE are included
167610e230b6Smaya     * from bison output in section 1.*/
167710e230b6Smaya    #    define yylval yyg->yylval_r
167810e230b6Smaya
167910e230b6Smaya    #    define yylloc yyg->yylloc_r
168010e230b6Smaya
168110e230b6Smayaint yylex_init (yyscan_t* scanner);
168210e230b6Smaya
168310e230b6Smayaint yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);
168410e230b6Smaya
168510e230b6Smaya/* Accessor methods to globals.
168610e230b6Smaya   These are made visible to non-reentrant scanners for convenience. */
168710e230b6Smaya
168810e230b6Smayaint yylex_destroy ( yyscan_t yyscanner );
168910e230b6Smaya
169010e230b6Smayaint yyget_debug ( yyscan_t yyscanner );
169110e230b6Smaya
169210e230b6Smayavoid yyset_debug ( int debug_flag , yyscan_t yyscanner );
169310e230b6Smaya
169410e230b6SmayaYY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner );
169510e230b6Smaya
169610e230b6Smayavoid yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner );
169710e230b6Smaya
169810e230b6SmayaFILE *yyget_in ( yyscan_t yyscanner );
169910e230b6Smaya
170010e230b6Smayavoid yyset_in  ( FILE * _in_str , yyscan_t yyscanner );
170110e230b6Smaya
170210e230b6SmayaFILE *yyget_out ( yyscan_t yyscanner );
170310e230b6Smaya
170410e230b6Smayavoid yyset_out  ( FILE * _out_str , yyscan_t yyscanner );
170510e230b6Smaya
170610e230b6Smaya			yy_size_t yyget_leng ( yyscan_t yyscanner );
170710e230b6Smaya
170810e230b6Smayachar *yyget_text ( yyscan_t yyscanner );
170910e230b6Smaya
171010e230b6Smayaint yyget_lineno ( yyscan_t yyscanner );
171110e230b6Smaya
171210e230b6Smayavoid yyset_lineno ( int _line_number , yyscan_t yyscanner );
171310e230b6Smaya
171410e230b6Smayaint yyget_column  ( yyscan_t yyscanner );
171510e230b6Smaya
171610e230b6Smayavoid yyset_column ( int _column_no , yyscan_t yyscanner );
171710e230b6Smaya
171810e230b6SmayaYYSTYPE * yyget_lval ( yyscan_t yyscanner );
171910e230b6Smaya
172010e230b6Smayavoid yyset_lval ( YYSTYPE * yylval_param , yyscan_t yyscanner );
172110e230b6Smaya
172210e230b6Smaya       YYLTYPE *yyget_lloc ( yyscan_t yyscanner );
172310e230b6Smaya
172410e230b6Smaya        void yyset_lloc ( YYLTYPE * yylloc_param , yyscan_t yyscanner );
172510e230b6Smaya
172610e230b6Smaya/* Macros after this point can all be overridden by user definitions in
172710e230b6Smaya * section 1.
172810e230b6Smaya */
172910e230b6Smaya
173010e230b6Smaya#ifndef YY_SKIP_YYWRAP
173110e230b6Smaya#ifdef __cplusplus
173210e230b6Smayaextern "C" int yywrap ( yyscan_t yyscanner );
173310e230b6Smaya#else
173410e230b6Smayaextern int yywrap ( yyscan_t yyscanner );
173510e230b6Smaya#endif
173610e230b6Smaya#endif
173710e230b6Smaya
173810e230b6Smaya#ifndef YY_NO_UNPUT
173910e230b6Smaya
174010e230b6Smaya#endif
174110e230b6Smaya
174210e230b6Smaya#ifndef yytext_ptr
174310e230b6Smayastatic void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner);
174410e230b6Smaya#endif
174510e230b6Smaya
174610e230b6Smaya#ifdef YY_NEED_STRLEN
174710e230b6Smayastatic int yy_flex_strlen ( const char * , yyscan_t yyscanner);
174810e230b6Smaya#endif
174910e230b6Smaya
175010e230b6Smaya#ifndef YY_NO_INPUT
175110e230b6Smaya#ifdef __cplusplus
175210e230b6Smayastatic int yyinput ( yyscan_t yyscanner );
175310e230b6Smaya#else
175410e230b6Smayastatic int input ( yyscan_t yyscanner );
175510e230b6Smaya#endif
175610e230b6Smaya
175710e230b6Smaya#endif
175810e230b6Smaya
175910e230b6Smaya/* Amount of stuff to slurp up with each read. */
176010e230b6Smaya#ifndef YY_READ_BUF_SIZE
176110e230b6Smaya#ifdef __ia64__
176210e230b6Smaya/* On IA-64, the buffer size is 16k, not 8k */
176310e230b6Smaya#define YY_READ_BUF_SIZE 16384
176410e230b6Smaya#else
176510e230b6Smaya#define YY_READ_BUF_SIZE 8192
176610e230b6Smaya#endif /* __ia64__ */
176710e230b6Smaya#endif
176810e230b6Smaya
176910e230b6Smaya/* Copy whatever the last rule matched to the standard output. */
177010e230b6Smaya#ifndef ECHO
177110e230b6Smaya/* This used to be an fputs(), but since the string might contain NUL's,
177210e230b6Smaya * we now use fwrite().
177310e230b6Smaya */
177410e230b6Smaya#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
177510e230b6Smaya#endif
177610e230b6Smaya
177710e230b6Smaya/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
177810e230b6Smaya * is returned in "result".
177910e230b6Smaya */
178010e230b6Smaya#ifndef YY_INPUT
178110e230b6Smaya#define YY_INPUT(buf,result,max_size) \
178210e230b6Smaya	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
178310e230b6Smaya		{ \
178410e230b6Smaya		int c = '*'; \
178510e230b6Smaya		yy_size_t n; \
178610e230b6Smaya		for ( n = 0; n < max_size && \
178710e230b6Smaya			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
178810e230b6Smaya			buf[n] = (char) c; \
178910e230b6Smaya		if ( c == '\n' ) \
179010e230b6Smaya			buf[n++] = (char) c; \
179110e230b6Smaya		if ( c == EOF && ferror( yyin ) ) \
179210e230b6Smaya			YY_FATAL_ERROR( "input in flex scanner failed" ); \
179310e230b6Smaya		result = n; \
179410e230b6Smaya		} \
179510e230b6Smaya	else \
179610e230b6Smaya		{ \
179710e230b6Smaya		errno=0; \
179810e230b6Smaya		while ( (result = fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
179910e230b6Smaya			{ \
180010e230b6Smaya			if( errno != EINTR) \
180110e230b6Smaya				{ \
180210e230b6Smaya				YY_FATAL_ERROR( "input in flex scanner failed" ); \
180310e230b6Smaya				break; \
180410e230b6Smaya				} \
180510e230b6Smaya			errno=0; \
180610e230b6Smaya			clearerr(yyin); \
180710e230b6Smaya			} \
180810e230b6Smaya		}\
180910e230b6Smaya\
181010e230b6Smaya
181110e230b6Smaya#endif
181210e230b6Smaya
181310e230b6Smaya/* No semi-colon after return; correct usage is to write "yyterminate();" -
181410e230b6Smaya * we don't want an extra ';' after the "return" because that will cause
181510e230b6Smaya * some compilers to complain about unreachable statements.
181610e230b6Smaya */
181710e230b6Smaya#ifndef yyterminate
181810e230b6Smaya#define yyterminate() return YY_NULL
181910e230b6Smaya#endif
182010e230b6Smaya
182110e230b6Smaya/* Number of entries by which start-condition stack grows. */
182210e230b6Smaya#ifndef YY_START_STACK_INCR
182310e230b6Smaya#define YY_START_STACK_INCR 25
182410e230b6Smaya#endif
182510e230b6Smaya
182610e230b6Smaya/* Report a fatal error. */
182710e230b6Smaya#ifndef YY_FATAL_ERROR
182810e230b6Smaya#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
182910e230b6Smaya#endif
183010e230b6Smaya
183110e230b6Smaya/* end tables serialization structures and prototypes */
183210e230b6Smaya
183310e230b6Smaya/* Default declaration of generated scanner - a define so the user can
183410e230b6Smaya * easily add parameters.
183510e230b6Smaya */
183610e230b6Smaya#ifndef YY_DECL
183710e230b6Smaya#define YY_DECL_IS_OURS 1
183810e230b6Smaya
183910e230b6Smayaextern int yylex \
184010e230b6Smaya               (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner);
184110e230b6Smaya
184210e230b6Smaya#define YY_DECL int yylex \
184310e230b6Smaya               (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
184410e230b6Smaya#endif /* !YY_DECL */
184510e230b6Smaya
184610e230b6Smaya/* Code executed at the beginning of each rule, after yytext and yyleng
184710e230b6Smaya * have been set up.
184810e230b6Smaya */
184910e230b6Smaya#ifndef YY_USER_ACTION
185010e230b6Smaya#define YY_USER_ACTION
185110e230b6Smaya#endif
185210e230b6Smaya
185310e230b6Smaya/* Code executed at the end of each rule. */
185410e230b6Smaya#ifndef YY_BREAK
185510e230b6Smaya#define YY_BREAK /*LINTED*/break;
185610e230b6Smaya#endif
185710e230b6Smaya
185810e230b6Smaya#define YY_RULE_SETUP \
185910e230b6Smaya	if ( yyleng > 0 ) \
186010e230b6Smaya		YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
186110e230b6Smaya				(yytext[yyleng - 1] == '\n'); \
186210e230b6Smaya	YY_USER_ACTION
186310e230b6Smaya
186410e230b6Smaya/** The main scanner function which does all the work.
186510e230b6Smaya */
186610e230b6SmayaYY_DECL
186710e230b6Smaya{
186810e230b6Smaya	yy_state_type yy_current_state;
186910e230b6Smaya	char *yy_cp, *yy_bp;
187010e230b6Smaya	int yy_act;
187110e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
187210e230b6Smaya
187310e230b6Smaya    yylval = yylval_param;
187410e230b6Smaya
187510e230b6Smaya    yylloc = yylloc_param;
187610e230b6Smaya
187710e230b6Smaya	if ( !yyg->yy_init )
187810e230b6Smaya		{
187910e230b6Smaya		yyg->yy_init = 1;
188010e230b6Smaya
188110e230b6Smaya#ifdef YY_USER_INIT
188210e230b6Smaya		YY_USER_INIT;
188310e230b6Smaya#endif
188410e230b6Smaya
188510e230b6Smaya		if ( ! yyg->yy_start )
188610e230b6Smaya			yyg->yy_start = 1;	/* first start state */
188710e230b6Smaya
188810e230b6Smaya		if ( ! yyin )
188910e230b6Smaya			yyin = stdin;
189010e230b6Smaya
189110e230b6Smaya		if ( ! yyout )
189210e230b6Smaya			yyout = stdout;
189310e230b6Smaya
189410e230b6Smaya		if ( ! YY_CURRENT_BUFFER ) {
189510e230b6Smaya			yyensure_buffer_stack (yyscanner);
189610e230b6Smaya			YY_CURRENT_BUFFER_LVALUE =
189710e230b6Smaya				yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
189810e230b6Smaya		}
189910e230b6Smaya
190010e230b6Smaya		yy_load_buffer_state( yyscanner );
190110e230b6Smaya		}
190210e230b6Smaya
190310e230b6Smaya	{
190496c5ddc4Srjs#line 234 "../src/compiler/glsl/glsl_lexer.ll"
190510e230b6Smaya
190610e230b6Smaya
190796c5ddc4Srjs#line 1907 "src/compiler/glsl/glsl_lexer.cpp"
190810e230b6Smaya
190910e230b6Smaya	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
191010e230b6Smaya		{
191110e230b6Smaya		yy_cp = yyg->yy_c_buf_p;
191210e230b6Smaya
191310e230b6Smaya		/* Support of yytext. */
191410e230b6Smaya		*yy_cp = yyg->yy_hold_char;
191510e230b6Smaya
191610e230b6Smaya		/* yy_bp points to the position in yy_ch_buf of the start of
191710e230b6Smaya		 * the current run.
191810e230b6Smaya		 */
191910e230b6Smaya		yy_bp = yy_cp;
192010e230b6Smaya
192110e230b6Smaya		yy_current_state = yyg->yy_start;
192210e230b6Smaya		yy_current_state += YY_AT_BOL();
192310e230b6Smayayy_match:
192410e230b6Smaya		do
192510e230b6Smaya			{
192610e230b6Smaya			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
192710e230b6Smaya			if ( yy_accept[yy_current_state] )
192810e230b6Smaya				{
192910e230b6Smaya				yyg->yy_last_accepting_state = yy_current_state;
193010e230b6Smaya				yyg->yy_last_accepting_cpos = yy_cp;
193110e230b6Smaya				}
193210e230b6Smaya			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
193310e230b6Smaya				{
193410e230b6Smaya				yy_current_state = (int) yy_def[yy_current_state];
193596c5ddc4Srjs				if ( yy_current_state >= 1112 )
193610e230b6Smaya					yy_c = yy_meta[yy_c];
193710e230b6Smaya				}
193810e230b6Smaya			yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
193910e230b6Smaya			++yy_cp;
194010e230b6Smaya			}
194196c5ddc4Srjs		while ( yy_current_state != 1111 );
194210e230b6Smaya		yy_cp = yyg->yy_last_accepting_cpos;
194310e230b6Smaya		yy_current_state = yyg->yy_last_accepting_state;
194410e230b6Smaya
194510e230b6Smayayy_find_action:
194610e230b6Smaya		yy_act = yy_accept[yy_current_state];
194710e230b6Smaya
194810e230b6Smaya		YY_DO_BEFORE_ACTION;
194910e230b6Smaya
195010e230b6Smayado_action:	/* This label is used only to access EOF actions. */
195110e230b6Smaya
195210e230b6Smaya		switch ( yy_act )
195310e230b6Smaya	{ /* beginning of action switch */
195410e230b6Smaya			case 0: /* must back up */
195510e230b6Smaya			/* undo the effects of YY_DO_BEFORE_ACTION */
195610e230b6Smaya			*yy_cp = yyg->yy_hold_char;
195710e230b6Smaya			yy_cp = yyg->yy_last_accepting_cpos;
195810e230b6Smaya			yy_current_state = yyg->yy_last_accepting_state;
195910e230b6Smaya			goto yy_find_action;
196010e230b6Smaya
196110e230b6Smayacase 1:
196210e230b6SmayaYY_RULE_SETUP
196396c5ddc4Srjs#line 236 "../src/compiler/glsl/glsl_lexer.ll"
196410e230b6Smaya;
196510e230b6Smaya	YY_BREAK
196610e230b6Smaya/* Preprocessor tokens. */
196710e230b6Smayacase 2:
196810e230b6Smaya*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
196910e230b6Smayayyg->yy_c_buf_p = yy_cp -= 1;
197010e230b6SmayaYY_DO_BEFORE_ACTION; /* set up yytext again */
197110e230b6SmayaYY_RULE_SETUP
197296c5ddc4Srjs#line 239 "../src/compiler/glsl/glsl_lexer.ll"
197310e230b6Smaya;
197410e230b6Smaya	YY_BREAK
197510e230b6Smayacase 3:
197610e230b6SmayaYY_RULE_SETUP
197796c5ddc4Srjs#line 240 "../src/compiler/glsl/glsl_lexer.ll"
197810e230b6Smaya{ BEGIN PP; return VERSION_TOK; }
197910e230b6Smaya	YY_BREAK
198010e230b6Smayacase 4:
198110e230b6SmayaYY_RULE_SETUP
198296c5ddc4Srjs#line 241 "../src/compiler/glsl/glsl_lexer.ll"
198310e230b6Smaya{ BEGIN PP; return EXTENSION; }
198410e230b6Smaya	YY_BREAK
198510e230b6Smayacase 5:
198696c5ddc4SrjsYY_RULE_SETUP
198796c5ddc4Srjs#line 242 "../src/compiler/glsl/glsl_lexer.ll"
198896c5ddc4Srjs{
198996c5ddc4Srjs                                  if (!yyextra->ARB_shading_language_include_enable) {
199096c5ddc4Srjs                                     struct _mesa_glsl_parse_state *state = yyextra;
199196c5ddc4Srjs                                     _mesa_glsl_error(yylloc, state,
199296c5ddc4Srjs                                                      "ARB_shading_language_include required "
199396c5ddc4Srjs                                                      "to use #include");
199496c5ddc4Srjs                                   }
199596c5ddc4Srjs}
199696c5ddc4Srjs	YY_BREAK
199796c5ddc4Srjscase 6:
199810e230b6Smaya*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
199910e230b6Smayayyg->yy_c_buf_p = yy_cp -= 1;
200010e230b6SmayaYY_DO_BEFORE_ACTION; /* set up yytext again */
200110e230b6SmayaYY_RULE_SETUP
200296c5ddc4Srjs#line 250 "../src/compiler/glsl/glsl_lexer.ll"
200310e230b6Smaya{
200410e230b6Smaya				   /* Eat characters until the first digit is
200510e230b6Smaya				    * encountered
200610e230b6Smaya				    */
200710e230b6Smaya				   char *ptr = yytext;
200810e230b6Smaya				   while (!isdigit(*ptr))
200910e230b6Smaya				      ptr++;
201010e230b6Smaya
201110e230b6Smaya				   /* Subtract one from the line number because
201210e230b6Smaya				    * yylineno is zero-based instead of
201310e230b6Smaya				    * one-based.
201410e230b6Smaya				    */
201510e230b6Smaya				   yylineno = strtol(ptr, &ptr, 0) - 1;
201610e230b6Smaya
201710e230b6Smaya                                   /* From GLSL 3.30 and GLSL ES on, after processing the
201810e230b6Smaya                                    * line directive (including its new-line), the implementation
201910e230b6Smaya                                    * will behave as if it is compiling at the line number passed
202010e230b6Smaya                                    * as argument. It was line number + 1 in older specifications.
202110e230b6Smaya                                    */
202210e230b6Smaya                                   if (yyextra->is_version(330, 100))
202310e230b6Smaya                                      yylineno--;
202410e230b6Smaya
202510e230b6Smaya				   yylloc->source = strtol(ptr, NULL, 0);
202696c5ddc4Srjs                                   yylloc->path = NULL;
202710e230b6Smaya				}
202810e230b6Smaya	YY_BREAK
202996c5ddc4Srjscase 7:
203096c5ddc4Srjs*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
203196c5ddc4Srjsyyg->yy_c_buf_p = yy_cp -= 1;
203296c5ddc4SrjsYY_DO_BEFORE_ACTION; /* set up yytext again */
203396c5ddc4SrjsYY_RULE_SETUP
203496c5ddc4Srjs#line 275 "../src/compiler/glsl/glsl_lexer.ll"
203596c5ddc4Srjs{
203696c5ddc4Srjs                                   if (!yyextra->ARB_shading_language_include_enable) {
203796c5ddc4Srjs                                      struct _mesa_glsl_parse_state *state = yyextra;
203896c5ddc4Srjs                                      _mesa_glsl_error(yylloc, state,
203996c5ddc4Srjs                                                       "ARB_shading_language_include required "
204096c5ddc4Srjs                                                       "to use #line <line> \"<path>\"");
204196c5ddc4Srjs                                   }
204296c5ddc4Srjs
204396c5ddc4Srjs                                   /* Eat characters until the first digit is
204496c5ddc4Srjs                                    * encountered
204596c5ddc4Srjs                                    */
204696c5ddc4Srjs                                   char *ptr = yytext;
204796c5ddc4Srjs                                   while (!isdigit(*ptr))
204896c5ddc4Srjs                                      ptr++;
204996c5ddc4Srjs
205096c5ddc4Srjs                                   /* Subtract one from the line number because
205196c5ddc4Srjs                                    * yylineno is zero-based instead of
205296c5ddc4Srjs                                    * one-based.
205396c5ddc4Srjs                                    */
205496c5ddc4Srjs                                   yylineno = strtol(ptr, &ptr, 0) - 1;
205596c5ddc4Srjs
205696c5ddc4Srjs                                   /* From GLSL 3.30 and GLSL ES on, after processing the
205796c5ddc4Srjs                                    * line directive (including its new-line), the implementation
205896c5ddc4Srjs                                    * will behave as if it is compiling at the line number passed
205996c5ddc4Srjs                                    * as argument. It was line number + 1 in older specifications.
206096c5ddc4Srjs                                    */
206196c5ddc4Srjs                                   if (yyextra->is_version(330, 100))
206296c5ddc4Srjs                                      yylineno--;
206396c5ddc4Srjs
206496c5ddc4Srjs                                   while (isspace(*ptr))
206596c5ddc4Srjs                                      ptr++;
206696c5ddc4Srjs
206796c5ddc4Srjs                                   /* Skip over leading " */
206896c5ddc4Srjs                                   ptr++;
206996c5ddc4Srjs
207096c5ddc4Srjs                                   char *end = strrchr(ptr, '"');
207196c5ddc4Srjs                                   int path_len = (end - ptr) + 1;
207296c5ddc4Srjs                                   void *mem_ctx = yyextra->linalloc;
207396c5ddc4Srjs                                   yylloc->path = (char *) linear_alloc_child(mem_ctx, path_len);
207496c5ddc4Srjs                                   memcpy(yylloc->path, ptr, path_len);
207596c5ddc4Srjs                                   yylloc->path[path_len - 1] = '\0';
207696c5ddc4Srjs                                }
207796c5ddc4Srjs	YY_BREAK
207896c5ddc4Srjscase 8:
207910e230b6Smaya*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
208010e230b6Smayayyg->yy_c_buf_p = yy_cp -= 1;
208110e230b6SmayaYY_DO_BEFORE_ACTION; /* set up yytext again */
208210e230b6SmayaYY_RULE_SETUP
208396c5ddc4Srjs#line 317 "../src/compiler/glsl/glsl_lexer.ll"
208410e230b6Smaya{
208510e230b6Smaya				   /* Eat characters until the first digit is
208610e230b6Smaya				    * encountered
208710e230b6Smaya				    */
208810e230b6Smaya				   char *ptr = yytext;
208910e230b6Smaya				   while (!isdigit(*ptr))
209010e230b6Smaya				      ptr++;
209110e230b6Smaya
209210e230b6Smaya				   /* Subtract one from the line number because
209310e230b6Smaya				    * yylineno is zero-based instead of
209410e230b6Smaya				    * one-based.
209510e230b6Smaya				    */
209610e230b6Smaya				   yylineno = strtol(ptr, &ptr, 0) - 1;
209710e230b6Smaya
209810e230b6Smaya                                   /* From GLSL 3.30 and GLSL ES on, after processing the
209910e230b6Smaya                                    * line directive (including its new-line), the implementation
210010e230b6Smaya                                    * will behave as if it is compiling at the line number passed
210110e230b6Smaya                                    * as argument. It was line number + 1 in older specifications.
210210e230b6Smaya                                    */
210310e230b6Smaya                                   if (yyextra->is_version(330, 100))
210410e230b6Smaya                                      yylineno--;
210510e230b6Smaya				}
210610e230b6Smaya	YY_BREAK
210796c5ddc4Srjscase 9:
210810e230b6SmayaYY_RULE_SETUP
210996c5ddc4Srjs#line 339 "../src/compiler/glsl/glsl_lexer.ll"
211010e230b6Smaya{
211110e230b6Smaya				  BEGIN PP;
211210e230b6Smaya				  return PRAGMA_DEBUG_ON;
211310e230b6Smaya				}
211410e230b6Smaya	YY_BREAK
211596c5ddc4Srjscase 10:
211610e230b6SmayaYY_RULE_SETUP
211796c5ddc4Srjs#line 343 "../src/compiler/glsl/glsl_lexer.ll"
211810e230b6Smaya{
211910e230b6Smaya				  BEGIN PP;
212010e230b6Smaya				  return PRAGMA_DEBUG_OFF;
212110e230b6Smaya				}
212210e230b6Smaya	YY_BREAK
212396c5ddc4Srjscase 11:
212410e230b6SmayaYY_RULE_SETUP
212596c5ddc4Srjs#line 347 "../src/compiler/glsl/glsl_lexer.ll"
212610e230b6Smaya{
212710e230b6Smaya				  BEGIN PP;
212810e230b6Smaya				  return PRAGMA_OPTIMIZE_ON;
212910e230b6Smaya				}
213010e230b6Smaya	YY_BREAK
213196c5ddc4Srjscase 12:
213210e230b6SmayaYY_RULE_SETUP
213396c5ddc4Srjs#line 351 "../src/compiler/glsl/glsl_lexer.ll"
213410e230b6Smaya{
213510e230b6Smaya				  BEGIN PP;
213610e230b6Smaya				  return PRAGMA_OPTIMIZE_OFF;
213710e230b6Smaya				}
213810e230b6Smaya	YY_BREAK
213996c5ddc4Srjscase 13:
214010e230b6SmayaYY_RULE_SETUP
214196c5ddc4Srjs#line 355 "../src/compiler/glsl/glsl_lexer.ll"
214210e230b6Smaya{
214310e230b6Smaya				  BEGIN PP;
214410e230b6Smaya				  return PRAGMA_WARNING_ON;
214510e230b6Smaya				}
214610e230b6Smaya	YY_BREAK
214796c5ddc4Srjscase 14:
214810e230b6SmayaYY_RULE_SETUP
214996c5ddc4Srjs#line 359 "../src/compiler/glsl/glsl_lexer.ll"
215010e230b6Smaya{
215110e230b6Smaya				  BEGIN PP;
215210e230b6Smaya				  return PRAGMA_WARNING_OFF;
215310e230b6Smaya				}
215410e230b6Smaya	YY_BREAK
215596c5ddc4Srjscase 15:
215610e230b6SmayaYY_RULE_SETUP
215796c5ddc4Srjs#line 363 "../src/compiler/glsl/glsl_lexer.ll"
215810e230b6Smaya{
215910e230b6Smaya				  BEGIN PP;
216010e230b6Smaya				  return PRAGMA_INVARIANT_ALL;
216110e230b6Smaya				}
216210e230b6Smaya	YY_BREAK
216396c5ddc4Srjscase 16:
216410e230b6SmayaYY_RULE_SETUP
216596c5ddc4Srjs#line 367 "../src/compiler/glsl/glsl_lexer.ll"
216610e230b6Smaya{ BEGIN PRAGMA; }
216710e230b6Smaya	YY_BREAK
216896c5ddc4Srjscase 17:
216996c5ddc4Srjs/* rule 17 can match eol */
217010e230b6SmayaYY_RULE_SETUP
217196c5ddc4Srjs#line 369 "../src/compiler/glsl/glsl_lexer.ll"
217210e230b6Smaya{ BEGIN 0; yylineno++; yycolumn = 0; }
217310e230b6Smaya	YY_BREAK
217496c5ddc4Srjscase 18:
217510e230b6SmayaYY_RULE_SETUP
217696c5ddc4Srjs#line 370 "../src/compiler/glsl/glsl_lexer.ll"
217710e230b6Smaya{ }
217810e230b6Smaya	YY_BREAK
217996c5ddc4Srjscase 19:
218010e230b6SmayaYY_RULE_SETUP
218196c5ddc4Srjs#line 372 "../src/compiler/glsl/glsl_lexer.ll"
218210e230b6Smaya{ }
218310e230b6Smaya	YY_BREAK
218496c5ddc4Srjscase 20:
218510e230b6SmayaYY_RULE_SETUP
218696c5ddc4Srjs#line 373 "../src/compiler/glsl/glsl_lexer.ll"
218710e230b6Smaya{ }
218810e230b6Smaya	YY_BREAK
218996c5ddc4Srjscase 21:
219010e230b6SmayaYY_RULE_SETUP
219196c5ddc4Srjs#line 374 "../src/compiler/glsl/glsl_lexer.ll"
219210e230b6Smayareturn COLON;
219310e230b6Smaya	YY_BREAK
219496c5ddc4Srjscase 22:
219510e230b6SmayaYY_RULE_SETUP
219696c5ddc4Srjs#line 375 "../src/compiler/glsl/glsl_lexer.ll"
219710e230b6Smaya{
219810e230b6Smaya				   /* We're not doing linear_strdup here, to avoid an implicit call
219910e230b6Smaya				    * on strlen() for the length of the string, as this is already
220010e230b6Smaya				    * found by flex and stored in yyleng
220110e230b6Smaya				    */
220210e230b6Smaya                                    void *mem_ctx = yyextra->linalloc;
220310e230b6Smaya                                    char *id = (char *) linear_alloc_child(mem_ctx, yyleng + 1);
220410e230b6Smaya                                    memcpy(id, yytext, yyleng + 1);
220510e230b6Smaya                                    yylval->identifier = id;
220610e230b6Smaya				   return IDENTIFIER;
220710e230b6Smaya				}
220810e230b6Smaya	YY_BREAK
220996c5ddc4Srjscase 23:
221010e230b6SmayaYY_RULE_SETUP
221196c5ddc4Srjs#line 386 "../src/compiler/glsl/glsl_lexer.ll"
221210e230b6Smaya{
221310e230b6Smaya				    yylval->n = strtol(yytext, NULL, 10);
221410e230b6Smaya				    return INTCONSTANT;
221510e230b6Smaya				}
221610e230b6Smaya	YY_BREAK
221796c5ddc4Srjscase 24:
221810e230b6SmayaYY_RULE_SETUP
221996c5ddc4Srjs#line 390 "../src/compiler/glsl/glsl_lexer.ll"
222010e230b6Smaya{
222110e230b6Smaya				    yylval->n = 0;
222210e230b6Smaya				    return INTCONSTANT;
222310e230b6Smaya				}
222410e230b6Smaya	YY_BREAK
222510e230b6Smayacase 25:
222610e230b6Smaya/* rule 25 can match eol */
222710e230b6SmayaYY_RULE_SETUP
222896c5ddc4Srjs#line 394 "../src/compiler/glsl/glsl_lexer.ll"
222996c5ddc4Srjs{ BEGIN 0; yylineno++; yycolumn = 0; return EOL; }
223010e230b6Smaya	YY_BREAK
223110e230b6Smayacase 26:
223210e230b6SmayaYY_RULE_SETUP
223396c5ddc4Srjs#line 395 "../src/compiler/glsl/glsl_lexer.ll"
223496c5ddc4Srjs{ return yytext[0]; }
223510e230b6Smaya	YY_BREAK
223610e230b6Smayacase 27:
223796c5ddc4Srjs/* rule 27 can match eol */
223810e230b6SmayaYY_RULE_SETUP
223996c5ddc4Srjs#line 397 "../src/compiler/glsl/glsl_lexer.ll"
224096c5ddc4Srjs{ yylineno++; yycolumn = 0; }
224110e230b6Smaya	YY_BREAK
224210e230b6Smayacase 28:
224310e230b6SmayaYY_RULE_SETUP
224496c5ddc4Srjs#line 399 "../src/compiler/glsl/glsl_lexer.ll"
224596c5ddc4SrjsDEPRECATED_KEYWORD(ATTRIBUTE, yyextra, 420, 300);
224610e230b6Smaya	YY_BREAK
224710e230b6Smayacase 29:
224810e230b6SmayaYY_RULE_SETUP
224996c5ddc4Srjs#line 400 "../src/compiler/glsl/glsl_lexer.ll"
225096c5ddc4Srjsreturn CONST_TOK;
225110e230b6Smaya	YY_BREAK
225210e230b6Smayacase 30:
225310e230b6SmayaYY_RULE_SETUP
225496c5ddc4Srjs#line 401 "../src/compiler/glsl/glsl_lexer.ll"
225596c5ddc4Srjs{ yylval->type = glsl_type::bool_type; return BASIC_TYPE_TOK; }
225610e230b6Smaya	YY_BREAK
225710e230b6Smayacase 31:
225810e230b6SmayaYY_RULE_SETUP
225996c5ddc4Srjs#line 402 "../src/compiler/glsl/glsl_lexer.ll"
226096c5ddc4Srjs{ yylval->type = glsl_type::float_type; return BASIC_TYPE_TOK; }
226110e230b6Smaya	YY_BREAK
226210e230b6Smayacase 32:
226310e230b6SmayaYY_RULE_SETUP
226496c5ddc4Srjs#line 403 "../src/compiler/glsl/glsl_lexer.ll"
226596c5ddc4Srjs{ yylval->type = glsl_type::int_type; return BASIC_TYPE_TOK; }
226610e230b6Smaya	YY_BREAK
226710e230b6Smayacase 33:
226810e230b6SmayaYY_RULE_SETUP
226996c5ddc4Srjs#line 404 "../src/compiler/glsl/glsl_lexer.ll"
227096c5ddc4SrjsTYPE(130, 300, 130, 300, glsl_type::uint_type);
227110e230b6Smaya	YY_BREAK
227210e230b6Smayacase 34:
227310e230b6SmayaYY_RULE_SETUP
227496c5ddc4Srjs#line 406 "../src/compiler/glsl/glsl_lexer.ll"
227596c5ddc4Srjsreturn BREAK;
227610e230b6Smaya	YY_BREAK
227710e230b6Smayacase 35:
227810e230b6SmayaYY_RULE_SETUP
227996c5ddc4Srjs#line 407 "../src/compiler/glsl/glsl_lexer.ll"
228096c5ddc4Srjsreturn CONTINUE;
228110e230b6Smaya	YY_BREAK
228210e230b6Smayacase 36:
228310e230b6SmayaYY_RULE_SETUP
228496c5ddc4Srjs#line 408 "../src/compiler/glsl/glsl_lexer.ll"
228596c5ddc4Srjsreturn DO;
228610e230b6Smaya	YY_BREAK
228710e230b6Smayacase 37:
228810e230b6SmayaYY_RULE_SETUP
228996c5ddc4Srjs#line 409 "../src/compiler/glsl/glsl_lexer.ll"
229096c5ddc4Srjsreturn WHILE;
229110e230b6Smaya	YY_BREAK
229210e230b6Smayacase 38:
229310e230b6SmayaYY_RULE_SETUP
229496c5ddc4Srjs#line 410 "../src/compiler/glsl/glsl_lexer.ll"
229596c5ddc4Srjsreturn ELSE;
229610e230b6Smaya	YY_BREAK
229710e230b6Smayacase 39:
229810e230b6SmayaYY_RULE_SETUP
229996c5ddc4Srjs#line 411 "../src/compiler/glsl/glsl_lexer.ll"
230096c5ddc4Srjsreturn FOR;
230110e230b6Smaya	YY_BREAK
230210e230b6Smayacase 40:
230310e230b6SmayaYY_RULE_SETUP
230496c5ddc4Srjs#line 412 "../src/compiler/glsl/glsl_lexer.ll"
230596c5ddc4Srjsreturn IF;
230610e230b6Smaya	YY_BREAK
230710e230b6Smayacase 41:
230810e230b6SmayaYY_RULE_SETUP
230996c5ddc4Srjs#line 413 "../src/compiler/glsl/glsl_lexer.ll"
231096c5ddc4Srjsreturn DISCARD;
231110e230b6Smaya	YY_BREAK
231210e230b6Smayacase 42:
231310e230b6SmayaYY_RULE_SETUP
231496c5ddc4Srjs#line 414 "../src/compiler/glsl/glsl_lexer.ll"
231596c5ddc4Srjsreturn RETURN;
231610e230b6Smaya	YY_BREAK
231710e230b6Smayacase 43:
231810e230b6SmayaYY_RULE_SETUP
231996c5ddc4Srjs#line 415 "../src/compiler/glsl/glsl_lexer.ll"
232096c5ddc4SrjsKEYWORD_WITH_ALT(0, 0, 0, 0, yyextra->EXT_demote_to_helper_invocation_enable, DEMOTE);
232110e230b6Smaya	YY_BREAK
232210e230b6Smayacase 44:
232310e230b6SmayaYY_RULE_SETUP
232496c5ddc4Srjs#line 417 "../src/compiler/glsl/glsl_lexer.ll"
232596c5ddc4Srjs{ yylval->type = glsl_type::bvec2_type; return BASIC_TYPE_TOK; }
232610e230b6Smaya	YY_BREAK
232710e230b6Smayacase 45:
232810e230b6SmayaYY_RULE_SETUP
232996c5ddc4Srjs#line 418 "../src/compiler/glsl/glsl_lexer.ll"
233096c5ddc4Srjs{ yylval->type = glsl_type::bvec3_type; return BASIC_TYPE_TOK; }
233110e230b6Smaya	YY_BREAK
233210e230b6Smayacase 46:
233310e230b6SmayaYY_RULE_SETUP
233496c5ddc4Srjs#line 419 "../src/compiler/glsl/glsl_lexer.ll"
233596c5ddc4Srjs{ yylval->type = glsl_type::bvec4_type; return BASIC_TYPE_TOK; }
233610e230b6Smaya	YY_BREAK
233710e230b6Smayacase 47:
233810e230b6SmayaYY_RULE_SETUP
233996c5ddc4Srjs#line 420 "../src/compiler/glsl/glsl_lexer.ll"
234096c5ddc4Srjs{ yylval->type = glsl_type::ivec2_type; return BASIC_TYPE_TOK; }
234110e230b6Smaya	YY_BREAK
234210e230b6Smayacase 48:
234310e230b6SmayaYY_RULE_SETUP
234496c5ddc4Srjs#line 421 "../src/compiler/glsl/glsl_lexer.ll"
234596c5ddc4Srjs{ yylval->type = glsl_type::ivec3_type; return BASIC_TYPE_TOK; }
234610e230b6Smaya	YY_BREAK
234710e230b6Smayacase 49:
234810e230b6SmayaYY_RULE_SETUP
234996c5ddc4Srjs#line 422 "../src/compiler/glsl/glsl_lexer.ll"
235096c5ddc4Srjs{ yylval->type = glsl_type::ivec4_type; return BASIC_TYPE_TOK; }
235110e230b6Smaya	YY_BREAK
235210e230b6Smayacase 50:
235310e230b6SmayaYY_RULE_SETUP
235496c5ddc4Srjs#line 423 "../src/compiler/glsl/glsl_lexer.ll"
235596c5ddc4SrjsTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable, glsl_type::uvec2_type);
235610e230b6Smaya	YY_BREAK
235710e230b6Smayacase 51:
235810e230b6SmayaYY_RULE_SETUP
235996c5ddc4Srjs#line 424 "../src/compiler/glsl/glsl_lexer.ll"
236096c5ddc4SrjsTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable, glsl_type::uvec3_type);
236110e230b6Smaya	YY_BREAK
236210e230b6Smayacase 52:
236310e230b6SmayaYY_RULE_SETUP
236496c5ddc4Srjs#line 425 "../src/compiler/glsl/glsl_lexer.ll"
236596c5ddc4SrjsTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable, glsl_type::uvec4_type);
236610e230b6Smaya	YY_BREAK
236710e230b6Smayacase 53:
236810e230b6SmayaYY_RULE_SETUP
236996c5ddc4Srjs#line 426 "../src/compiler/glsl/glsl_lexer.ll"
237096c5ddc4Srjs{ yylval->type = glsl_type::vec2_type; return BASIC_TYPE_TOK; }
237110e230b6Smaya	YY_BREAK
237210e230b6Smayacase 54:
237310e230b6SmayaYY_RULE_SETUP
237496c5ddc4Srjs#line 427 "../src/compiler/glsl/glsl_lexer.ll"
237596c5ddc4Srjs{ yylval->type = glsl_type::vec3_type; return BASIC_TYPE_TOK; }
237610e230b6Smaya	YY_BREAK
237710e230b6Smayacase 55:
237810e230b6SmayaYY_RULE_SETUP
237996c5ddc4Srjs#line 428 "../src/compiler/glsl/glsl_lexer.ll"
238096c5ddc4Srjs{ yylval->type = glsl_type::vec4_type; return BASIC_TYPE_TOK; }
238110e230b6Smaya	YY_BREAK
238210e230b6Smayacase 56:
238310e230b6SmayaYY_RULE_SETUP
238496c5ddc4Srjs#line 429 "../src/compiler/glsl/glsl_lexer.ll"
238596c5ddc4Srjs{ yylval->type = glsl_type::mat2_type; return BASIC_TYPE_TOK; }
238610e230b6Smaya	YY_BREAK
238710e230b6Smayacase 57:
238810e230b6SmayaYY_RULE_SETUP
238996c5ddc4Srjs#line 430 "../src/compiler/glsl/glsl_lexer.ll"
239096c5ddc4Srjs{ yylval->type = glsl_type::mat3_type; return BASIC_TYPE_TOK; }
239110e230b6Smaya	YY_BREAK
239210e230b6Smayacase 58:
239310e230b6SmayaYY_RULE_SETUP
239496c5ddc4Srjs#line 431 "../src/compiler/glsl/glsl_lexer.ll"
239596c5ddc4Srjs{ yylval->type = glsl_type::mat4_type; return BASIC_TYPE_TOK; }
239610e230b6Smaya	YY_BREAK
239710e230b6Smayacase 59:
239810e230b6SmayaYY_RULE_SETUP
239996c5ddc4Srjs#line 432 "../src/compiler/glsl/glsl_lexer.ll"
240096c5ddc4SrjsTYPE(120, 300, 120, 300, glsl_type::mat2_type);
240110e230b6Smaya	YY_BREAK
240210e230b6Smayacase 60:
240310e230b6SmayaYY_RULE_SETUP
240496c5ddc4Srjs#line 433 "../src/compiler/glsl/glsl_lexer.ll"
240596c5ddc4SrjsTYPE(120, 300, 120, 300, glsl_type::mat2x3_type);
240610e230b6Smaya	YY_BREAK
240710e230b6Smayacase 61:
240810e230b6SmayaYY_RULE_SETUP
240996c5ddc4Srjs#line 434 "../src/compiler/glsl/glsl_lexer.ll"
241096c5ddc4SrjsTYPE(120, 300, 120, 300, glsl_type::mat2x4_type);
241110e230b6Smaya	YY_BREAK
241210e230b6Smayacase 62:
241310e230b6SmayaYY_RULE_SETUP
241496c5ddc4Srjs#line 435 "../src/compiler/glsl/glsl_lexer.ll"
241596c5ddc4SrjsTYPE(120, 300, 120, 300, glsl_type::mat3x2_type);
241610e230b6Smaya	YY_BREAK
241710e230b6Smayacase 63:
241810e230b6SmayaYY_RULE_SETUP
241996c5ddc4Srjs#line 436 "../src/compiler/glsl/glsl_lexer.ll"
242096c5ddc4SrjsTYPE(120, 300, 120, 300, glsl_type::mat3_type);
242110e230b6Smaya	YY_BREAK
242210e230b6Smayacase 64:
242310e230b6SmayaYY_RULE_SETUP
242496c5ddc4Srjs#line 437 "../src/compiler/glsl/glsl_lexer.ll"
242596c5ddc4SrjsTYPE(120, 300, 120, 300, glsl_type::mat3x4_type);
242610e230b6Smaya	YY_BREAK
242710e230b6Smayacase 65:
242810e230b6SmayaYY_RULE_SETUP
242996c5ddc4Srjs#line 438 "../src/compiler/glsl/glsl_lexer.ll"
243096c5ddc4SrjsTYPE(120, 300, 120, 300, glsl_type::mat4x2_type);
243110e230b6Smaya	YY_BREAK
243210e230b6Smayacase 66:
243310e230b6SmayaYY_RULE_SETUP
243496c5ddc4Srjs#line 439 "../src/compiler/glsl/glsl_lexer.ll"
243596c5ddc4SrjsTYPE(120, 300, 120, 300, glsl_type::mat4x3_type);
243610e230b6Smaya	YY_BREAK
243710e230b6Smayacase 67:
243810e230b6SmayaYY_RULE_SETUP
243996c5ddc4Srjs#line 440 "../src/compiler/glsl/glsl_lexer.ll"
244096c5ddc4SrjsTYPE(120, 300, 120, 300, glsl_type::mat4_type);
244110e230b6Smaya	YY_BREAK
244210e230b6Smayacase 68:
244310e230b6SmayaYY_RULE_SETUP
244496c5ddc4Srjs#line 442 "../src/compiler/glsl/glsl_lexer.ll"
244596c5ddc4Srjsreturn IN_TOK;
244610e230b6Smaya	YY_BREAK
244710e230b6Smayacase 69:
244810e230b6SmayaYY_RULE_SETUP
244996c5ddc4Srjs#line 443 "../src/compiler/glsl/glsl_lexer.ll"
245096c5ddc4Srjsreturn OUT_TOK;
245110e230b6Smaya	YY_BREAK
245210e230b6Smayacase 70:
245310e230b6SmayaYY_RULE_SETUP
245496c5ddc4Srjs#line 444 "../src/compiler/glsl/glsl_lexer.ll"
245596c5ddc4Srjsreturn INOUT_TOK;
245610e230b6Smaya	YY_BREAK
245710e230b6Smayacase 71:
245810e230b6SmayaYY_RULE_SETUP
245996c5ddc4Srjs#line 445 "../src/compiler/glsl/glsl_lexer.ll"
246096c5ddc4Srjsreturn UNIFORM;
246110e230b6Smaya	YY_BREAK
246210e230b6Smayacase 72:
246310e230b6SmayaYY_RULE_SETUP
246496c5ddc4Srjs#line 446 "../src/compiler/glsl/glsl_lexer.ll"
246596c5ddc4SrjsKEYWORD_WITH_ALT(0, 0, 430, 310, yyextra->ARB_shader_storage_buffer_object_enable, BUFFER);
246610e230b6Smaya	YY_BREAK
246710e230b6Smayacase 73:
246810e230b6SmayaYY_RULE_SETUP
246996c5ddc4Srjs#line 447 "../src/compiler/glsl/glsl_lexer.ll"
247096c5ddc4SrjsDEPRECATED_KEYWORD(VARYING, yyextra, 420, 300);
247110e230b6Smaya	YY_BREAK
247210e230b6Smayacase 74:
247310e230b6SmayaYY_RULE_SETUP
247496c5ddc4Srjs#line 448 "../src/compiler/glsl/glsl_lexer.ll"
247596c5ddc4SrjsKEYWORD_WITH_ALT(120, 300, 120, 300, yyextra->EXT_gpu_shader4_enable, CENTROID);
247610e230b6Smaya	YY_BREAK
247710e230b6Smayacase 75:
247810e230b6SmayaYY_RULE_SETUP
247996c5ddc4Srjs#line 449 "../src/compiler/glsl/glsl_lexer.ll"
248096c5ddc4SrjsKEYWORD(120, 100, 120, 100, INVARIANT);
248110e230b6Smaya	YY_BREAK
248210e230b6Smayacase 76:
248310e230b6SmayaYY_RULE_SETUP
248496c5ddc4Srjs#line 450 "../src/compiler/glsl/glsl_lexer.ll"
248596c5ddc4SrjsKEYWORD_WITH_ALT(130, 100, 130, 300, yyextra->EXT_gpu_shader4_enable, FLAT);
248610e230b6Smaya	YY_BREAK
248710e230b6Smayacase 77:
248810e230b6SmayaYY_RULE_SETUP
248996c5ddc4Srjs#line 451 "../src/compiler/glsl/glsl_lexer.ll"
249096c5ddc4SrjsKEYWORD(130, 300, 130, 300, SMOOTH);
249110e230b6Smaya	YY_BREAK
249210e230b6Smayacase 78:
249310e230b6SmayaYY_RULE_SETUP
249496c5ddc4Srjs#line 452 "../src/compiler/glsl/glsl_lexer.ll"
249596c5ddc4SrjsKEYWORD_WITH_ALT(130, 300, 130, 0, yyextra->EXT_gpu_shader4_enable, NOPERSPECTIVE);
249610e230b6Smaya	YY_BREAK
249710e230b6Smayacase 79:
249810e230b6SmayaYY_RULE_SETUP
249996c5ddc4Srjs#line 453 "../src/compiler/glsl/glsl_lexer.ll"
250096c5ddc4SrjsKEYWORD_WITH_ALT(0, 300, 400, 320, yyextra->has_tessellation_shader(), PATCH);
250110e230b6Smaya	YY_BREAK
250210e230b6Smayacase 80:
250310e230b6SmayaYY_RULE_SETUP
250496c5ddc4Srjs#line 455 "../src/compiler/glsl/glsl_lexer.ll"
250596c5ddc4SrjsDEPRECATED_ES_TYPE(glsl_type::sampler1D_type);
250610e230b6Smaya	YY_BREAK
250710e230b6Smayacase 81:
250810e230b6SmayaYY_RULE_SETUP
250996c5ddc4Srjs#line 456 "../src/compiler/glsl/glsl_lexer.ll"
251096c5ddc4Srjs{ yylval->type = glsl_type::sampler2D_type; return BASIC_TYPE_TOK; }
251110e230b6Smaya	YY_BREAK
251210e230b6Smayacase 82:
251310e230b6SmayaYY_RULE_SETUP
251496c5ddc4Srjs#line 457 "../src/compiler/glsl/glsl_lexer.ll"
251596c5ddc4Srjs{ yylval->type = glsl_type::sampler3D_type; return BASIC_TYPE_TOK; }
251610e230b6Smaya	YY_BREAK
251710e230b6Smayacase 83:
251810e230b6SmayaYY_RULE_SETUP
251996c5ddc4Srjs#line 458 "../src/compiler/glsl/glsl_lexer.ll"
252096c5ddc4Srjs{ yylval->type = glsl_type::samplerCube_type; return BASIC_TYPE_TOK; }
252110e230b6Smaya	YY_BREAK
252210e230b6Smayacase 84:
252310e230b6SmayaYY_RULE_SETUP
252496c5ddc4Srjs#line 459 "../src/compiler/glsl/glsl_lexer.ll"
252596c5ddc4SrjsTYPE_WITH_ALT(130, 300, 130, 0,   yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_array, glsl_type::sampler1DArray_type);
252610e230b6Smaya	YY_BREAK
252710e230b6Smayacase 85:
252810e230b6SmayaYY_RULE_SETUP
252996c5ddc4Srjs#line 460 "../src/compiler/glsl/glsl_lexer.ll"
253096c5ddc4SrjsTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_array, glsl_type::sampler2DArray_type);
253110e230b6Smaya	YY_BREAK
253210e230b6Smayacase 86:
253310e230b6SmayaYY_RULE_SETUP
253496c5ddc4Srjs#line 461 "../src/compiler/glsl/glsl_lexer.ll"
253596c5ddc4SrjsDEPRECATED_ES_TYPE(glsl_type::sampler1DShadow_type);
253610e230b6Smaya	YY_BREAK
253710e230b6Smayacase 87:
253810e230b6SmayaYY_RULE_SETUP
253996c5ddc4Srjs#line 462 "../src/compiler/glsl/glsl_lexer.ll"
254096c5ddc4Srjs{ yylval->type = glsl_type::sampler2DShadow_type; return BASIC_TYPE_TOK; }
254110e230b6Smaya	YY_BREAK
254210e230b6Smayacase 88:
254310e230b6SmayaYY_RULE_SETUP
254496c5ddc4Srjs#line 463 "../src/compiler/glsl/glsl_lexer.ll"
254596c5ddc4SrjsTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable, glsl_type::samplerCubeShadow_type);
254610e230b6Smaya	YY_BREAK
254710e230b6Smayacase 89:
254810e230b6SmayaYY_RULE_SETUP
254996c5ddc4Srjs#line 464 "../src/compiler/glsl/glsl_lexer.ll"
255096c5ddc4SrjsTYPE_WITH_ALT(130, 300, 130, 0,   yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_array, glsl_type::sampler1DArrayShadow_type);
255110e230b6Smaya	YY_BREAK
255210e230b6Smayacase 90:
255310e230b6SmayaYY_RULE_SETUP
255496c5ddc4Srjs#line 465 "../src/compiler/glsl/glsl_lexer.ll"
255596c5ddc4SrjsTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_array, glsl_type::sampler2DArrayShadow_type);
255610e230b6Smaya	YY_BREAK
255710e230b6Smayacase 91:
255810e230b6SmayaYY_RULE_SETUP
255996c5ddc4Srjs#line 466 "../src/compiler/glsl/glsl_lexer.ll"
256096c5ddc4SrjsTYPE_WITH_ALT(130, 300, 130, 0,   yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer, glsl_type::isampler1D_type);
256110e230b6Smaya	YY_BREAK
256210e230b6Smayacase 92:
256310e230b6SmayaYY_RULE_SETUP
256496c5ddc4Srjs#line 467 "../src/compiler/glsl/glsl_lexer.ll"
256596c5ddc4SrjsTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer, glsl_type::isampler2D_type);
256610e230b6Smaya	YY_BREAK
256710e230b6Smayacase 93:
256810e230b6SmayaYY_RULE_SETUP
256996c5ddc4Srjs#line 468 "../src/compiler/glsl/glsl_lexer.ll"
257096c5ddc4SrjsTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer, glsl_type::isampler3D_type);
257110e230b6Smaya	YY_BREAK
257210e230b6Smayacase 94:
257310e230b6SmayaYY_RULE_SETUP
257496c5ddc4Srjs#line 469 "../src/compiler/glsl/glsl_lexer.ll"
257596c5ddc4SrjsTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer, glsl_type::isamplerCube_type);
257610e230b6Smaya	YY_BREAK
257710e230b6Smayacase 95:
257810e230b6SmayaYY_RULE_SETUP
257996c5ddc4Srjs#line 470 "../src/compiler/glsl/glsl_lexer.ll"
258096c5ddc4SrjsTYPE_WITH_ALT(130, 300, 130, 0,   yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer && yyextra->ctx->Extensions.EXT_texture_array, glsl_type::isampler1DArray_type);
258110e230b6Smaya	YY_BREAK
258210e230b6Smayacase 96:
258310e230b6SmayaYY_RULE_SETUP
258496c5ddc4Srjs#line 471 "../src/compiler/glsl/glsl_lexer.ll"
258596c5ddc4SrjsTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer && yyextra->ctx->Extensions.EXT_texture_array, glsl_type::isampler2DArray_type);
258610e230b6Smaya	YY_BREAK
258710e230b6Smayacase 97:
258810e230b6SmayaYY_RULE_SETUP
258996c5ddc4Srjs#line 472 "../src/compiler/glsl/glsl_lexer.ll"
259096c5ddc4SrjsTYPE_WITH_ALT(130, 300, 130, 0,   yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer, glsl_type::usampler1D_type);
259110e230b6Smaya	YY_BREAK
259210e230b6Smayacase 98:
259310e230b6SmayaYY_RULE_SETUP
259496c5ddc4Srjs#line 473 "../src/compiler/glsl/glsl_lexer.ll"
259596c5ddc4SrjsTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer, glsl_type::usampler2D_type);
259610e230b6Smaya	YY_BREAK
259710e230b6Smayacase 99:
259810e230b6SmayaYY_RULE_SETUP
259996c5ddc4Srjs#line 474 "../src/compiler/glsl/glsl_lexer.ll"
260096c5ddc4SrjsTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer, glsl_type::usampler3D_type);
260196c5ddc4Srjs	YY_BREAK
260296c5ddc4Srjscase 100:
260396c5ddc4SrjsYY_RULE_SETUP
260496c5ddc4Srjs#line 475 "../src/compiler/glsl/glsl_lexer.ll"
260596c5ddc4SrjsTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer, glsl_type::usamplerCube_type);
260696c5ddc4Srjs	YY_BREAK
260796c5ddc4Srjscase 101:
260896c5ddc4SrjsYY_RULE_SETUP
260996c5ddc4Srjs#line 476 "../src/compiler/glsl/glsl_lexer.ll"
261096c5ddc4SrjsTYPE_WITH_ALT(130, 300, 130, 0,   yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer && yyextra->ctx->Extensions.EXT_texture_array, glsl_type::usampler1DArray_type);
261196c5ddc4Srjs	YY_BREAK
261296c5ddc4Srjscase 102:
261396c5ddc4SrjsYY_RULE_SETUP
261496c5ddc4Srjs#line 477 "../src/compiler/glsl/glsl_lexer.ll"
261510e230b6SmayaTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer && yyextra->ctx->Extensions.EXT_texture_array, glsl_type::usampler2DArray_type);
261610e230b6Smaya	YY_BREAK
261710e230b6Smaya/* additional keywords in ARB_texture_multisample, included in GLSL 1.50 */
261810e230b6Smaya/* these are reserved but not defined in GLSL 3.00 */
261910e230b6Smaya/* [iu]sampler2DMS are defined in GLSL ES 3.10 */
262096c5ddc4Srjscase 103:
262110e230b6SmayaYY_RULE_SETUP
262296c5ddc4Srjs#line 482 "../src/compiler/glsl/glsl_lexer.ll"
262310e230b6SmayaTYPE_WITH_ALT(150, 300, 150, 310, yyextra->ARB_texture_multisample_enable, glsl_type::sampler2DMS_type);
262410e230b6Smaya	YY_BREAK
262596c5ddc4Srjscase 104:
262610e230b6SmayaYY_RULE_SETUP
262796c5ddc4Srjs#line 483 "../src/compiler/glsl/glsl_lexer.ll"
262810e230b6SmayaTYPE_WITH_ALT(150, 300, 150, 310, yyextra->ARB_texture_multisample_enable, glsl_type::isampler2DMS_type);
262910e230b6Smaya	YY_BREAK
263096c5ddc4Srjscase 105:
263110e230b6SmayaYY_RULE_SETUP
263296c5ddc4Srjs#line 484 "../src/compiler/glsl/glsl_lexer.ll"
263310e230b6SmayaTYPE_WITH_ALT(150, 300, 150, 310, yyextra->ARB_texture_multisample_enable, glsl_type::usampler2DMS_type);
263410e230b6Smaya	YY_BREAK
263596c5ddc4Srjscase 106:
263610e230b6SmayaYY_RULE_SETUP
263796c5ddc4Srjs#line 485 "../src/compiler/glsl/glsl_lexer.ll"
263810e230b6SmayaTYPE_WITH_ALT(150, 300, 150, 320, yyextra->ARB_texture_multisample_enable || yyextra->OES_texture_storage_multisample_2d_array_enable, glsl_type::sampler2DMSArray_type);
263910e230b6Smaya	YY_BREAK
264096c5ddc4Srjscase 107:
264110e230b6SmayaYY_RULE_SETUP
264296c5ddc4Srjs#line 486 "../src/compiler/glsl/glsl_lexer.ll"
264310e230b6SmayaTYPE_WITH_ALT(150, 300, 150, 320, yyextra->ARB_texture_multisample_enable || yyextra->OES_texture_storage_multisample_2d_array_enable, glsl_type::isampler2DMSArray_type);
264410e230b6Smaya	YY_BREAK
264596c5ddc4Srjscase 108:
264610e230b6SmayaYY_RULE_SETUP
264796c5ddc4Srjs#line 487 "../src/compiler/glsl/glsl_lexer.ll"
264810e230b6SmayaTYPE_WITH_ALT(150, 300, 150, 320, yyextra->ARB_texture_multisample_enable || yyextra->OES_texture_storage_multisample_2d_array_enable, glsl_type::usampler2DMSArray_type);
264910e230b6Smaya	YY_BREAK
265010e230b6Smaya/* keywords available with ARB_texture_cube_map_array_enable extension on desktop GLSL */
265196c5ddc4Srjscase 109:
265210e230b6SmayaYY_RULE_SETUP
265396c5ddc4Srjs#line 490 "../src/compiler/glsl/glsl_lexer.ll"
265410e230b6SmayaTYPE_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, glsl_type::samplerCubeArray_type);
265510e230b6Smaya	YY_BREAK
265696c5ddc4Srjscase 110:
265710e230b6SmayaYY_RULE_SETUP
265896c5ddc4Srjs#line 491 "../src/compiler/glsl/glsl_lexer.ll"
265910e230b6SmayaTYPE_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, glsl_type::isamplerCubeArray_type);
266010e230b6Smaya	YY_BREAK
266196c5ddc4Srjscase 111:
266210e230b6SmayaYY_RULE_SETUP
266396c5ddc4Srjs#line 492 "../src/compiler/glsl/glsl_lexer.ll"
266410e230b6SmayaTYPE_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, glsl_type::usamplerCubeArray_type);
266510e230b6Smaya	YY_BREAK
266696c5ddc4Srjscase 112:
266710e230b6SmayaYY_RULE_SETUP
266896c5ddc4Srjs#line 493 "../src/compiler/glsl/glsl_lexer.ll"
266910e230b6SmayaTYPE_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, glsl_type::samplerCubeArrayShadow_type);
267010e230b6Smaya	YY_BREAK
267196c5ddc4Srjscase 113:
267210e230b6SmayaYY_RULE_SETUP
267396c5ddc4Srjs#line 495 "../src/compiler/glsl/glsl_lexer.ll"
267410e230b6Smaya{
267510e230b6Smaya			  if (yyextra->OES_EGL_image_external_enable || yyextra->OES_EGL_image_external_essl3_enable) {
267610e230b6Smaya			     yylval->type = glsl_type::samplerExternalOES_type;
267710e230b6Smaya			     return BASIC_TYPE_TOK;
267810e230b6Smaya			  } else
267910e230b6Smaya			     return IDENTIFIER;
268010e230b6Smaya		}
268110e230b6Smaya	YY_BREAK
268210e230b6Smaya/* keywords available with ARB_gpu_shader5 */
268396c5ddc4Srjscase 114:
268410e230b6SmayaYY_RULE_SETUP
268596c5ddc4Srjs#line 504 "../src/compiler/glsl/glsl_lexer.ll"
268610e230b6SmayaKEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_gpu_shader5_enable || yyextra->EXT_gpu_shader5_enable || yyextra->OES_gpu_shader5_enable, PRECISE);
268710e230b6Smaya	YY_BREAK
268810e230b6Smaya/* keywords available with ARB_shader_image_load_store */
268910e230b6Smayacase 115:
269010e230b6SmayaYY_RULE_SETUP
269196c5ddc4Srjs#line 507 "../src/compiler/glsl/glsl_lexer.ll"
269296c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::image1D_type);
269310e230b6Smaya	YY_BREAK
269410e230b6Smayacase 116:
269510e230b6SmayaYY_RULE_SETUP
269696c5ddc4Srjs#line 508 "../src/compiler/glsl/glsl_lexer.ll"
269796c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::image2D_type);
269810e230b6Smaya	YY_BREAK
269910e230b6Smayacase 117:
270010e230b6SmayaYY_RULE_SETUP
270196c5ddc4Srjs#line 509 "../src/compiler/glsl/glsl_lexer.ll"
270296c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::image3D_type);
270310e230b6Smaya	YY_BREAK
270410e230b6Smayacase 118:
270510e230b6SmayaYY_RULE_SETUP
270696c5ddc4Srjs#line 510 "../src/compiler/glsl/glsl_lexer.ll"
270796c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::image2DRect_type);
270810e230b6Smaya	YY_BREAK
270910e230b6Smayacase 119:
271010e230b6SmayaYY_RULE_SETUP
271196c5ddc4Srjs#line 511 "../src/compiler/glsl/glsl_lexer.ll"
271296c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::imageCube_type);
271310e230b6Smaya	YY_BREAK
271410e230b6Smayacase 120:
271510e230b6SmayaYY_RULE_SETUP
271696c5ddc4Srjs#line 512 "../src/compiler/glsl/glsl_lexer.ll"
271796c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable || yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, glsl_type::imageBuffer_type);
271810e230b6Smaya	YY_BREAK
271910e230b6Smayacase 121:
272010e230b6SmayaYY_RULE_SETUP
272196c5ddc4Srjs#line 513 "../src/compiler/glsl/glsl_lexer.ll"
272296c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::image1DArray_type);
272310e230b6Smaya	YY_BREAK
272410e230b6Smayacase 122:
272510e230b6SmayaYY_RULE_SETUP
272696c5ddc4Srjs#line 514 "../src/compiler/glsl/glsl_lexer.ll"
272796c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::image2DArray_type);
272810e230b6Smaya	YY_BREAK
272910e230b6Smayacase 123:
273010e230b6SmayaYY_RULE_SETUP
273196c5ddc4Srjs#line 515 "../src/compiler/glsl/glsl_lexer.ll"
273296c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, glsl_type::imageCubeArray_type);
273310e230b6Smaya	YY_BREAK
273410e230b6Smayacase 124:
273510e230b6SmayaYY_RULE_SETUP
273696c5ddc4Srjs#line 516 "../src/compiler/glsl/glsl_lexer.ll"
273796c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::image2DMS_type);
273810e230b6Smaya	YY_BREAK
273910e230b6Smayacase 125:
274010e230b6SmayaYY_RULE_SETUP
274196c5ddc4Srjs#line 517 "../src/compiler/glsl/glsl_lexer.ll"
274296c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::image2DMSArray_type);
274310e230b6Smaya	YY_BREAK
274410e230b6Smayacase 126:
274510e230b6SmayaYY_RULE_SETUP
274696c5ddc4Srjs#line 518 "../src/compiler/glsl/glsl_lexer.ll"
274796c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::iimage1D_type);
274810e230b6Smaya	YY_BREAK
274910e230b6Smayacase 127:
275010e230b6SmayaYY_RULE_SETUP
275196c5ddc4Srjs#line 519 "../src/compiler/glsl/glsl_lexer.ll"
275296c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::iimage2D_type);
275310e230b6Smaya	YY_BREAK
275410e230b6Smayacase 128:
275510e230b6SmayaYY_RULE_SETUP
275696c5ddc4Srjs#line 520 "../src/compiler/glsl/glsl_lexer.ll"
275796c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::iimage3D_type);
275810e230b6Smaya	YY_BREAK
275910e230b6Smayacase 129:
276010e230b6SmayaYY_RULE_SETUP
276196c5ddc4Srjs#line 521 "../src/compiler/glsl/glsl_lexer.ll"
276296c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::iimage2DRect_type);
276310e230b6Smaya	YY_BREAK
276410e230b6Smayacase 130:
276510e230b6SmayaYY_RULE_SETUP
276696c5ddc4Srjs#line 522 "../src/compiler/glsl/glsl_lexer.ll"
276796c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::iimageCube_type);
276810e230b6Smaya	YY_BREAK
276910e230b6Smayacase 131:
277010e230b6SmayaYY_RULE_SETUP
277196c5ddc4Srjs#line 523 "../src/compiler/glsl/glsl_lexer.ll"
277296c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable || yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, glsl_type::iimageBuffer_type);
277310e230b6Smaya	YY_BREAK
277410e230b6Smayacase 132:
277510e230b6SmayaYY_RULE_SETUP
277696c5ddc4Srjs#line 524 "../src/compiler/glsl/glsl_lexer.ll"
277796c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::iimage1DArray_type);
277810e230b6Smaya	YY_BREAK
277910e230b6Smayacase 133:
278010e230b6SmayaYY_RULE_SETUP
278196c5ddc4Srjs#line 525 "../src/compiler/glsl/glsl_lexer.ll"
278296c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::iimage2DArray_type);
278310e230b6Smaya	YY_BREAK
278410e230b6Smayacase 134:
278510e230b6SmayaYY_RULE_SETUP
278696c5ddc4Srjs#line 526 "../src/compiler/glsl/glsl_lexer.ll"
278796c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, glsl_type::iimageCubeArray_type);
278810e230b6Smaya	YY_BREAK
278910e230b6Smayacase 135:
279010e230b6SmayaYY_RULE_SETUP
279196c5ddc4Srjs#line 527 "../src/compiler/glsl/glsl_lexer.ll"
279296c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::iimage2DMS_type);
279310e230b6Smaya	YY_BREAK
279410e230b6Smayacase 136:
279510e230b6SmayaYY_RULE_SETUP
279696c5ddc4Srjs#line 528 "../src/compiler/glsl/glsl_lexer.ll"
279796c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::iimage2DMSArray_type);
279810e230b6Smaya	YY_BREAK
279910e230b6Smayacase 137:
280010e230b6SmayaYY_RULE_SETUP
280196c5ddc4Srjs#line 529 "../src/compiler/glsl/glsl_lexer.ll"
280296c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::uimage1D_type);
280310e230b6Smaya	YY_BREAK
280410e230b6Smayacase 138:
280510e230b6SmayaYY_RULE_SETUP
280696c5ddc4Srjs#line 530 "../src/compiler/glsl/glsl_lexer.ll"
280796c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::uimage2D_type);
280810e230b6Smaya	YY_BREAK
280910e230b6Smayacase 139:
281010e230b6SmayaYY_RULE_SETUP
281196c5ddc4Srjs#line 531 "../src/compiler/glsl/glsl_lexer.ll"
281296c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::uimage3D_type);
281310e230b6Smaya	YY_BREAK
281410e230b6Smayacase 140:
281510e230b6SmayaYY_RULE_SETUP
281696c5ddc4Srjs#line 532 "../src/compiler/glsl/glsl_lexer.ll"
281796c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::uimage2DRect_type);
281810e230b6Smaya	YY_BREAK
281910e230b6Smayacase 141:
282010e230b6SmayaYY_RULE_SETUP
282196c5ddc4Srjs#line 533 "../src/compiler/glsl/glsl_lexer.ll"
282296c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::uimageCube_type);
282310e230b6Smaya	YY_BREAK
282410e230b6Smayacase 142:
282510e230b6SmayaYY_RULE_SETUP
282696c5ddc4Srjs#line 534 "../src/compiler/glsl/glsl_lexer.ll"
282796c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable || yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, glsl_type::uimageBuffer_type);
282810e230b6Smaya	YY_BREAK
282910e230b6Smayacase 143:
283010e230b6SmayaYY_RULE_SETUP
283196c5ddc4Srjs#line 535 "../src/compiler/glsl/glsl_lexer.ll"
283296c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::uimage1DArray_type);
283310e230b6Smaya	YY_BREAK
283410e230b6Smayacase 144:
283510e230b6SmayaYY_RULE_SETUP
283696c5ddc4Srjs#line 536 "../src/compiler/glsl/glsl_lexer.ll"
283796c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::uimage2DArray_type);
283810e230b6Smaya	YY_BREAK
283910e230b6Smayacase 145:
284010e230b6SmayaYY_RULE_SETUP
284196c5ddc4Srjs#line 537 "../src/compiler/glsl/glsl_lexer.ll"
284296c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, glsl_type::uimageCubeArray_type);
284310e230b6Smaya	YY_BREAK
284410e230b6Smayacase 146:
284510e230b6SmayaYY_RULE_SETUP
284696c5ddc4Srjs#line 538 "../src/compiler/glsl/glsl_lexer.ll"
284796c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::uimage2DMS_type);
284810e230b6Smaya	YY_BREAK
284910e230b6Smayacase 147:
285010e230b6SmayaYY_RULE_SETUP
285196c5ddc4Srjs#line 539 "../src/compiler/glsl/glsl_lexer.ll"
285296c5ddc4SrjsTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable, glsl_type::uimage2DMSArray_type);
285310e230b6Smaya	YY_BREAK
285410e230b6Smayacase 148:
285510e230b6SmayaYY_RULE_SETUP
285696c5ddc4Srjs#line 540 "../src/compiler/glsl/glsl_lexer.ll"
285796c5ddc4SrjsKEYWORD(130, 300, 0, 0, IMAGE1DSHADOW);
285810e230b6Smaya	YY_BREAK
285910e230b6Smayacase 149:
286010e230b6SmayaYY_RULE_SETUP
286196c5ddc4Srjs#line 541 "../src/compiler/glsl/glsl_lexer.ll"
286296c5ddc4SrjsKEYWORD(130, 300, 0, 0, IMAGE2DSHADOW);
286310e230b6Smaya	YY_BREAK
286410e230b6Smayacase 150:
286510e230b6SmayaYY_RULE_SETUP
286696c5ddc4Srjs#line 542 "../src/compiler/glsl/glsl_lexer.ll"
286796c5ddc4SrjsKEYWORD(130, 300, 0, 0, IMAGE1DARRAYSHADOW);
286810e230b6Smaya	YY_BREAK
286910e230b6Smayacase 151:
287010e230b6SmayaYY_RULE_SETUP
287196c5ddc4Srjs#line 543 "../src/compiler/glsl/glsl_lexer.ll"
287296c5ddc4SrjsKEYWORD(130, 300, 0, 0, IMAGE2DARRAYSHADOW);
287310e230b6Smaya	YY_BREAK
287410e230b6Smayacase 152:
287510e230b6SmayaYY_RULE_SETUP
287696c5ddc4Srjs#line 545 "../src/compiler/glsl/glsl_lexer.ll"
287796c5ddc4SrjsKEYWORD_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, COHERENT);
287810e230b6Smaya	YY_BREAK
287910e230b6Smayacase 153:
288010e230b6SmayaYY_RULE_SETUP
288196c5ddc4Srjs#line 546 "../src/compiler/glsl/glsl_lexer.ll"
288296c5ddc4SrjsKEYWORD_WITH_ALT(110, 100, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, VOLATILE);
288310e230b6Smaya	YY_BREAK
288410e230b6Smayacase 154:
288510e230b6SmayaYY_RULE_SETUP
288696c5ddc4Srjs#line 547 "../src/compiler/glsl/glsl_lexer.ll"
288796c5ddc4SrjsKEYWORD_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, RESTRICT);
288810e230b6Smaya	YY_BREAK
288910e230b6Smayacase 155:
289010e230b6SmayaYY_RULE_SETUP
289196c5ddc4Srjs#line 548 "../src/compiler/glsl/glsl_lexer.ll"
289296c5ddc4SrjsKEYWORD_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, READONLY);
289310e230b6Smaya	YY_BREAK
289410e230b6Smayacase 156:
289510e230b6SmayaYY_RULE_SETUP
289696c5ddc4Srjs#line 549 "../src/compiler/glsl/glsl_lexer.ll"
289796c5ddc4SrjsKEYWORD_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, WRITEONLY);
289810e230b6Smaya	YY_BREAK
289910e230b6Smayacase 157:
290010e230b6SmayaYY_RULE_SETUP
290196c5ddc4Srjs#line 551 "../src/compiler/glsl/glsl_lexer.ll"
290296c5ddc4SrjsTYPE_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_atomic_counters_enable, glsl_type::atomic_uint_type);
290310e230b6Smaya	YY_BREAK
290410e230b6Smayacase 158:
290510e230b6SmayaYY_RULE_SETUP
290696c5ddc4Srjs#line 553 "../src/compiler/glsl/glsl_lexer.ll"
290796c5ddc4SrjsKEYWORD_WITH_ALT(430, 310, 430, 310, yyextra->ARB_compute_shader_enable, SHARED);
290896c5ddc4Srjs	YY_BREAK
290996c5ddc4Srjscase 159:
291096c5ddc4SrjsYY_RULE_SETUP
291196c5ddc4Srjs#line 555 "../src/compiler/glsl/glsl_lexer.ll"
291296c5ddc4Srjsreturn STRUCT;
291396c5ddc4Srjs	YY_BREAK
291496c5ddc4Srjscase 160:
291596c5ddc4SrjsYY_RULE_SETUP
291696c5ddc4Srjs#line 556 "../src/compiler/glsl/glsl_lexer.ll"
291796c5ddc4Srjsreturn VOID_TOK;
291896c5ddc4Srjs	YY_BREAK
291996c5ddc4Srjscase 161:
292096c5ddc4SrjsYY_RULE_SETUP
292196c5ddc4Srjs#line 558 "../src/compiler/glsl/glsl_lexer.ll"
292210e230b6Smaya{
292310e230b6Smaya		  if ((yyextra->is_version(140, 300))
292410e230b6Smaya		      || yyextra->ARB_bindless_texture_enable
292510e230b6Smaya		      || yyextra->KHR_blend_equation_advanced_enable
292610e230b6Smaya		      || yyextra->AMD_conservative_depth_enable
292710e230b6Smaya		      || yyextra->ARB_conservative_depth_enable
292810e230b6Smaya		      || yyextra->ARB_explicit_attrib_location_enable
292910e230b6Smaya		      || yyextra->ARB_explicit_uniform_location_enable
293010e230b6Smaya                      || yyextra->ARB_post_depth_coverage_enable
293110e230b6Smaya                      || yyextra->has_separate_shader_objects()
293210e230b6Smaya		      || yyextra->ARB_uniform_buffer_object_enable
293310e230b6Smaya		      || yyextra->ARB_fragment_coord_conventions_enable
293410e230b6Smaya                      || yyextra->ARB_shading_language_420pack_enable
293510e230b6Smaya                      || yyextra->ARB_compute_shader_enable
293610e230b6Smaya                      || yyextra->ARB_tessellation_shader_enable
293710e230b6Smaya                      || yyextra->EXT_shader_framebuffer_fetch_non_coherent_enable) {
293810e230b6Smaya		      return LAYOUT_TOK;
293910e230b6Smaya		   } else {
294010e230b6Smaya		      return classify_identifier(yyextra, yytext, yyleng, yylval);
294110e230b6Smaya		   }
294210e230b6Smaya		}
294310e230b6Smaya	YY_BREAK
294496c5ddc4Srjscase 162:
294510e230b6SmayaYY_RULE_SETUP
294696c5ddc4Srjs#line 580 "../src/compiler/glsl/glsl_lexer.ll"
294710e230b6Smayareturn INC_OP;
294810e230b6Smaya	YY_BREAK
294996c5ddc4Srjscase 163:
295010e230b6SmayaYY_RULE_SETUP
295196c5ddc4Srjs#line 581 "../src/compiler/glsl/glsl_lexer.ll"
295210e230b6Smayareturn DEC_OP;
295310e230b6Smaya	YY_BREAK
295496c5ddc4Srjscase 164:
295510e230b6SmayaYY_RULE_SETUP
295696c5ddc4Srjs#line 582 "../src/compiler/glsl/glsl_lexer.ll"
295710e230b6Smayareturn LE_OP;
295810e230b6Smaya	YY_BREAK
295996c5ddc4Srjscase 165:
296010e230b6SmayaYY_RULE_SETUP
296196c5ddc4Srjs#line 583 "../src/compiler/glsl/glsl_lexer.ll"
296210e230b6Smayareturn GE_OP;
296310e230b6Smaya	YY_BREAK
296496c5ddc4Srjscase 166:
296510e230b6SmayaYY_RULE_SETUP
296696c5ddc4Srjs#line 584 "../src/compiler/glsl/glsl_lexer.ll"
296710e230b6Smayareturn EQ_OP;
296810e230b6Smaya	YY_BREAK
296996c5ddc4Srjscase 167:
297010e230b6SmayaYY_RULE_SETUP
297196c5ddc4Srjs#line 585 "../src/compiler/glsl/glsl_lexer.ll"
297210e230b6Smayareturn NE_OP;
297310e230b6Smaya	YY_BREAK
297496c5ddc4Srjscase 168:
297510e230b6SmayaYY_RULE_SETUP
297696c5ddc4Srjs#line 586 "../src/compiler/glsl/glsl_lexer.ll"
297710e230b6Smayareturn AND_OP;
297810e230b6Smaya	YY_BREAK
297996c5ddc4Srjscase 169:
298010e230b6SmayaYY_RULE_SETUP
298196c5ddc4Srjs#line 587 "../src/compiler/glsl/glsl_lexer.ll"
298210e230b6Smayareturn OR_OP;
298310e230b6Smaya	YY_BREAK
298496c5ddc4Srjscase 170:
298510e230b6SmayaYY_RULE_SETUP
298696c5ddc4Srjs#line 588 "../src/compiler/glsl/glsl_lexer.ll"
298710e230b6Smayareturn XOR_OP;
298810e230b6Smaya	YY_BREAK
298996c5ddc4Srjscase 171:
299010e230b6SmayaYY_RULE_SETUP
299196c5ddc4Srjs#line 589 "../src/compiler/glsl/glsl_lexer.ll"
299210e230b6Smayareturn LEFT_OP;
299310e230b6Smaya	YY_BREAK
299496c5ddc4Srjscase 172:
299510e230b6SmayaYY_RULE_SETUP
299696c5ddc4Srjs#line 590 "../src/compiler/glsl/glsl_lexer.ll"
299710e230b6Smayareturn RIGHT_OP;
299810e230b6Smaya	YY_BREAK
299996c5ddc4Srjscase 173:
300010e230b6SmayaYY_RULE_SETUP
300196c5ddc4Srjs#line 592 "../src/compiler/glsl/glsl_lexer.ll"
300210e230b6Smayareturn MUL_ASSIGN;
300310e230b6Smaya	YY_BREAK
300496c5ddc4Srjscase 174:
300510e230b6SmayaYY_RULE_SETUP
300696c5ddc4Srjs#line 593 "../src/compiler/glsl/glsl_lexer.ll"
300710e230b6Smayareturn DIV_ASSIGN;
300810e230b6Smaya	YY_BREAK
300996c5ddc4Srjscase 175:
301010e230b6SmayaYY_RULE_SETUP
301196c5ddc4Srjs#line 594 "../src/compiler/glsl/glsl_lexer.ll"
301210e230b6Smayareturn ADD_ASSIGN;
301310e230b6Smaya	YY_BREAK
301496c5ddc4Srjscase 176:
301510e230b6SmayaYY_RULE_SETUP
301696c5ddc4Srjs#line 595 "../src/compiler/glsl/glsl_lexer.ll"
301710e230b6Smayareturn MOD_ASSIGN;
301810e230b6Smaya	YY_BREAK
301996c5ddc4Srjscase 177:
302010e230b6SmayaYY_RULE_SETUP
302196c5ddc4Srjs#line 596 "../src/compiler/glsl/glsl_lexer.ll"
302210e230b6Smayareturn LEFT_ASSIGN;
302310e230b6Smaya	YY_BREAK
302496c5ddc4Srjscase 178:
302510e230b6SmayaYY_RULE_SETUP
302696c5ddc4Srjs#line 597 "../src/compiler/glsl/glsl_lexer.ll"
302710e230b6Smayareturn RIGHT_ASSIGN;
302810e230b6Smaya	YY_BREAK
302996c5ddc4Srjscase 179:
303010e230b6SmayaYY_RULE_SETUP
303196c5ddc4Srjs#line 598 "../src/compiler/glsl/glsl_lexer.ll"
303210e230b6Smayareturn AND_ASSIGN;
303310e230b6Smaya	YY_BREAK
303496c5ddc4Srjscase 180:
303510e230b6SmayaYY_RULE_SETUP
303696c5ddc4Srjs#line 599 "../src/compiler/glsl/glsl_lexer.ll"
303710e230b6Smayareturn XOR_ASSIGN;
303810e230b6Smaya	YY_BREAK
303996c5ddc4Srjscase 181:
304010e230b6SmayaYY_RULE_SETUP
304196c5ddc4Srjs#line 600 "../src/compiler/glsl/glsl_lexer.ll"
304210e230b6Smayareturn OR_ASSIGN;
304310e230b6Smaya	YY_BREAK
304496c5ddc4Srjscase 182:
304510e230b6SmayaYY_RULE_SETUP
304696c5ddc4Srjs#line 601 "../src/compiler/glsl/glsl_lexer.ll"
304710e230b6Smayareturn SUB_ASSIGN;
304810e230b6Smaya	YY_BREAK
304996c5ddc4Srjscase 183:
305010e230b6SmayaYY_RULE_SETUP
305196c5ddc4Srjs#line 603 "../src/compiler/glsl/glsl_lexer.ll"
305210e230b6Smaya{
305310e230b6Smaya			    return LITERAL_INTEGER(10);
305410e230b6Smaya			}
305510e230b6Smaya	YY_BREAK
305696c5ddc4Srjscase 184:
305710e230b6SmayaYY_RULE_SETUP
305896c5ddc4Srjs#line 606 "../src/compiler/glsl/glsl_lexer.ll"
305910e230b6Smaya{
306010e230b6Smaya			    return LITERAL_INTEGER(16);
306110e230b6Smaya			}
306210e230b6Smaya	YY_BREAK
306396c5ddc4Srjscase 185:
306410e230b6SmayaYY_RULE_SETUP
306596c5ddc4Srjs#line 609 "../src/compiler/glsl/glsl_lexer.ll"
306610e230b6Smaya{
306710e230b6Smaya			    return LITERAL_INTEGER(8);
306810e230b6Smaya			}
306910e230b6Smaya	YY_BREAK
307010e230b6Smayacase 186:
307196c5ddc4Srjs#line 614 "../src/compiler/glsl/glsl_lexer.ll"
307296c5ddc4Srjscase 187:
307396c5ddc4Srjs#line 615 "../src/compiler/glsl/glsl_lexer.ll"
307496c5ddc4Srjscase 188:
307596c5ddc4Srjs#line 616 "../src/compiler/glsl/glsl_lexer.ll"
307696c5ddc4Srjscase 189:
307710e230b6SmayaYY_RULE_SETUP
307896c5ddc4Srjs#line 616 "../src/compiler/glsl/glsl_lexer.ll"
307910e230b6Smaya{
308010e230b6Smaya			    struct _mesa_glsl_parse_state *state = yyextra;
308110e230b6Smaya			    char suffix = yytext[strlen(yytext) - 1];
308210e230b6Smaya			    if (!state->is_version(120, 300) &&
308310e230b6Smaya			        (suffix == 'f' || suffix == 'F')) {
308410e230b6Smaya			        _mesa_glsl_warning(yylloc, state,
308510e230b6Smaya			                           "Float suffixes are invalid in GLSL 1.10");
308610e230b6Smaya			    }
308710e230b6Smaya			    yylval->real = _mesa_strtof(yytext, NULL);
308810e230b6Smaya			    return FLOATCONSTANT;
308910e230b6Smaya			}
309010e230b6Smaya	YY_BREAK
309110e230b6Smayacase 190:
309296c5ddc4Srjs#line 629 "../src/compiler/glsl/glsl_lexer.ll"
309396c5ddc4Srjscase 191:
309496c5ddc4Srjs#line 630 "../src/compiler/glsl/glsl_lexer.ll"
309596c5ddc4Srjscase 192:
309696c5ddc4Srjs#line 631 "../src/compiler/glsl/glsl_lexer.ll"
309796c5ddc4Srjscase 193:
309810e230b6SmayaYY_RULE_SETUP
309996c5ddc4Srjs#line 631 "../src/compiler/glsl/glsl_lexer.ll"
310010e230b6Smaya{
310110e230b6Smaya			    if (!yyextra->is_version(400, 0) &&
310210e230b6Smaya			        !yyextra->ARB_gpu_shader_fp64_enable)
310310e230b6Smaya			        return ERROR_TOK;
310410e230b6Smaya			    yylval->dreal = _mesa_strtod(yytext, NULL);
310510e230b6Smaya			    return DOUBLECONSTANT;
310610e230b6Smaya			}
310710e230b6Smaya	YY_BREAK
310896c5ddc4Srjscase 194:
310910e230b6SmayaYY_RULE_SETUP
311096c5ddc4Srjs#line 639 "../src/compiler/glsl/glsl_lexer.ll"
311110e230b6Smaya{
311210e230b6Smaya			    yylval->n = 1;
311310e230b6Smaya			    return BOOLCONSTANT;
311410e230b6Smaya			}
311510e230b6Smaya	YY_BREAK
311696c5ddc4Srjscase 195:
311710e230b6SmayaYY_RULE_SETUP
311896c5ddc4Srjs#line 643 "../src/compiler/glsl/glsl_lexer.ll"
311910e230b6Smaya{
312010e230b6Smaya			    yylval->n = 0;
312110e230b6Smaya			    return BOOLCONSTANT;
312210e230b6Smaya			}
312310e230b6Smaya	YY_BREAK
312410e230b6Smaya/* Reserved words in GLSL 1.10. */
312596c5ddc4Srjscase 196:
312610e230b6SmayaYY_RULE_SETUP
312796c5ddc4Srjs#line 650 "../src/compiler/glsl/glsl_lexer.ll"
312810e230b6SmayaKEYWORD(110, 100, 0, 0, ASM);
312910e230b6Smaya	YY_BREAK
313096c5ddc4Srjscase 197:
313110e230b6SmayaYY_RULE_SETUP
313296c5ddc4Srjs#line 651 "../src/compiler/glsl/glsl_lexer.ll"
313310e230b6SmayaKEYWORD(110, 100, 0, 0, CLASS);
313410e230b6Smaya	YY_BREAK
313596c5ddc4Srjscase 198:
313610e230b6SmayaYY_RULE_SETUP
313796c5ddc4Srjs#line 652 "../src/compiler/glsl/glsl_lexer.ll"
313810e230b6SmayaKEYWORD(110, 100, 0, 0, UNION);
313910e230b6Smaya	YY_BREAK
314096c5ddc4Srjscase 199:
314110e230b6SmayaYY_RULE_SETUP
314296c5ddc4Srjs#line 653 "../src/compiler/glsl/glsl_lexer.ll"
314310e230b6SmayaKEYWORD(110, 100, 0, 0, ENUM);
314410e230b6Smaya	YY_BREAK
314596c5ddc4Srjscase 200:
314610e230b6SmayaYY_RULE_SETUP
314796c5ddc4Srjs#line 654 "../src/compiler/glsl/glsl_lexer.ll"
314810e230b6SmayaKEYWORD(110, 100, 0, 0, TYPEDEF);
314910e230b6Smaya	YY_BREAK
315096c5ddc4Srjscase 201:
315110e230b6SmayaYY_RULE_SETUP
315296c5ddc4Srjs#line 655 "../src/compiler/glsl/glsl_lexer.ll"
315310e230b6SmayaKEYWORD(110, 100, 0, 0, TEMPLATE);
315410e230b6Smaya	YY_BREAK
315596c5ddc4Srjscase 202:
315610e230b6SmayaYY_RULE_SETUP
315796c5ddc4Srjs#line 656 "../src/compiler/glsl/glsl_lexer.ll"
315810e230b6SmayaKEYWORD(110, 100, 0, 0, THIS);
315910e230b6Smaya	YY_BREAK
316096c5ddc4Srjscase 203:
316110e230b6SmayaYY_RULE_SETUP
316296c5ddc4Srjs#line 657 "../src/compiler/glsl/glsl_lexer.ll"
316310e230b6SmayaKEYWORD_WITH_ALT(110, 100, 140, 300, yyextra->ARB_uniform_buffer_object_enable, PACKED_TOK);
316410e230b6Smaya	YY_BREAK
316596c5ddc4Srjscase 204:
316610e230b6SmayaYY_RULE_SETUP
316796c5ddc4Srjs#line 658 "../src/compiler/glsl/glsl_lexer.ll"
316810e230b6SmayaKEYWORD(110, 100, 0, 0, GOTO);
316910e230b6Smaya	YY_BREAK
317096c5ddc4Srjscase 205:
317110e230b6SmayaYY_RULE_SETUP
317296c5ddc4Srjs#line 659 "../src/compiler/glsl/glsl_lexer.ll"
317310e230b6SmayaKEYWORD(110, 100, 130, 300, SWITCH);
317410e230b6Smaya	YY_BREAK
317596c5ddc4Srjscase 206:
317610e230b6SmayaYY_RULE_SETUP
317796c5ddc4Srjs#line 660 "../src/compiler/glsl/glsl_lexer.ll"
317810e230b6SmayaKEYWORD(110, 100, 130, 300, DEFAULT);
317910e230b6Smaya	YY_BREAK
318096c5ddc4Srjscase 207:
318110e230b6SmayaYY_RULE_SETUP
318296c5ddc4Srjs#line 661 "../src/compiler/glsl/glsl_lexer.ll"
318310e230b6SmayaKEYWORD(110, 100, 0, 0, INLINE_TOK);
318410e230b6Smaya	YY_BREAK
318596c5ddc4Srjscase 208:
318610e230b6SmayaYY_RULE_SETUP
318796c5ddc4Srjs#line 662 "../src/compiler/glsl/glsl_lexer.ll"
318810e230b6SmayaKEYWORD(110, 100, 0, 0, NOINLINE);
318910e230b6Smaya	YY_BREAK
319096c5ddc4Srjscase 209:
319110e230b6SmayaYY_RULE_SETUP
319296c5ddc4Srjs#line 663 "../src/compiler/glsl/glsl_lexer.ll"
319310e230b6SmayaKEYWORD(110, 100, 0, 0, PUBLIC_TOK);
319410e230b6Smaya	YY_BREAK
319596c5ddc4Srjscase 210:
319610e230b6SmayaYY_RULE_SETUP
319796c5ddc4Srjs#line 664 "../src/compiler/glsl/glsl_lexer.ll"
319810e230b6SmayaKEYWORD(110, 100, 0, 0, STATIC);
319910e230b6Smaya	YY_BREAK
320096c5ddc4Srjscase 211:
320110e230b6SmayaYY_RULE_SETUP
320296c5ddc4Srjs#line 665 "../src/compiler/glsl/glsl_lexer.ll"
320310e230b6SmayaKEYWORD(110, 100, 0, 0, EXTERN);
320410e230b6Smaya	YY_BREAK
320596c5ddc4Srjscase 212:
320610e230b6SmayaYY_RULE_SETUP
320796c5ddc4Srjs#line 666 "../src/compiler/glsl/glsl_lexer.ll"
320810e230b6SmayaKEYWORD(110, 100, 0, 0, EXTERNAL);
320910e230b6Smaya	YY_BREAK
321096c5ddc4Srjscase 213:
321110e230b6SmayaYY_RULE_SETUP
321296c5ddc4Srjs#line 667 "../src/compiler/glsl/glsl_lexer.ll"
321396c5ddc4SrjsKEYWORD(110, 100, 0, 0, INTERFACE_TOK);
321410e230b6Smaya	YY_BREAK
321596c5ddc4Srjscase 214:
321610e230b6SmayaYY_RULE_SETUP
321796c5ddc4Srjs#line 668 "../src/compiler/glsl/glsl_lexer.ll"
321810e230b6SmayaKEYWORD(110, 100, 0, 0, LONG_TOK);
321910e230b6Smaya	YY_BREAK
322096c5ddc4Srjscase 215:
322110e230b6SmayaYY_RULE_SETUP
322296c5ddc4Srjs#line 669 "../src/compiler/glsl/glsl_lexer.ll"
322310e230b6SmayaKEYWORD(110, 100, 0, 0, SHORT_TOK);
322410e230b6Smaya	YY_BREAK
322596c5ddc4Srjscase 216:
322610e230b6SmayaYY_RULE_SETUP
322796c5ddc4Srjs#line 670 "../src/compiler/glsl/glsl_lexer.ll"
322810e230b6SmayaTYPE_WITH_ALT(130, 100, 130, 300, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::double_type);
322910e230b6Smaya	YY_BREAK
323096c5ddc4Srjscase 217:
323110e230b6SmayaYY_RULE_SETUP
323296c5ddc4Srjs#line 671 "../src/compiler/glsl/glsl_lexer.ll"
323310e230b6SmayaKEYWORD(110, 100, 0, 0, HALF);
323410e230b6Smaya	YY_BREAK
323596c5ddc4Srjscase 218:
323610e230b6SmayaYY_RULE_SETUP
323796c5ddc4Srjs#line 672 "../src/compiler/glsl/glsl_lexer.ll"
323810e230b6SmayaKEYWORD(110, 100, 0, 0, FIXED_TOK);
323910e230b6Smaya	YY_BREAK
324096c5ddc4Srjscase 219:
324110e230b6SmayaYY_RULE_SETUP
324296c5ddc4Srjs#line 673 "../src/compiler/glsl/glsl_lexer.ll"
324310e230b6SmayaKEYWORD_WITH_ALT(110, 100, 0, 0, yyextra->EXT_gpu_shader4_enable, UNSIGNED);
324410e230b6Smaya	YY_BREAK
324596c5ddc4Srjscase 220:
324610e230b6SmayaYY_RULE_SETUP
324796c5ddc4Srjs#line 674 "../src/compiler/glsl/glsl_lexer.ll"
324810e230b6SmayaKEYWORD(110, 100, 0, 0, INPUT_TOK);
324910e230b6Smaya	YY_BREAK
325096c5ddc4Srjscase 221:
325110e230b6SmayaYY_RULE_SETUP
325296c5ddc4Srjs#line 675 "../src/compiler/glsl/glsl_lexer.ll"
325310e230b6SmayaKEYWORD(110, 100, 0, 0, OUTPUT);
325410e230b6Smaya	YY_BREAK
325596c5ddc4Srjscase 222:
325610e230b6SmayaYY_RULE_SETUP
325796c5ddc4Srjs#line 676 "../src/compiler/glsl/glsl_lexer.ll"
325810e230b6SmayaKEYWORD(110, 100, 0, 0, HVEC2);
325910e230b6Smaya	YY_BREAK
326096c5ddc4Srjscase 223:
326110e230b6SmayaYY_RULE_SETUP
326296c5ddc4Srjs#line 677 "../src/compiler/glsl/glsl_lexer.ll"
326310e230b6SmayaKEYWORD(110, 100, 0, 0, HVEC3);
326410e230b6Smaya	YY_BREAK
326596c5ddc4Srjscase 224:
326610e230b6SmayaYY_RULE_SETUP
326796c5ddc4Srjs#line 678 "../src/compiler/glsl/glsl_lexer.ll"
326810e230b6SmayaKEYWORD(110, 100, 0, 0, HVEC4);
326910e230b6Smaya	YY_BREAK
327096c5ddc4Srjscase 225:
327110e230b6SmayaYY_RULE_SETUP
327296c5ddc4Srjs#line 679 "../src/compiler/glsl/glsl_lexer.ll"
327310e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dvec2_type);
327410e230b6Smaya	YY_BREAK
327596c5ddc4Srjscase 226:
327610e230b6SmayaYY_RULE_SETUP
327796c5ddc4Srjs#line 680 "../src/compiler/glsl/glsl_lexer.ll"
327810e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dvec3_type);
327910e230b6Smaya	YY_BREAK
328096c5ddc4Srjscase 227:
328110e230b6SmayaYY_RULE_SETUP
328296c5ddc4Srjs#line 681 "../src/compiler/glsl/glsl_lexer.ll"
328310e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dvec4_type);
328410e230b6Smaya	YY_BREAK
328596c5ddc4Srjscase 228:
328610e230b6SmayaYY_RULE_SETUP
328796c5ddc4Srjs#line 682 "../src/compiler/glsl/glsl_lexer.ll"
328810e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat2_type);
328910e230b6Smaya	YY_BREAK
329096c5ddc4Srjscase 229:
329110e230b6SmayaYY_RULE_SETUP
329296c5ddc4Srjs#line 683 "../src/compiler/glsl/glsl_lexer.ll"
329310e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat3_type);
329410e230b6Smaya	YY_BREAK
329596c5ddc4Srjscase 230:
329610e230b6SmayaYY_RULE_SETUP
329796c5ddc4Srjs#line 684 "../src/compiler/glsl/glsl_lexer.ll"
329810e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat4_type);
329910e230b6Smaya	YY_BREAK
330096c5ddc4Srjscase 231:
330110e230b6SmayaYY_RULE_SETUP
330296c5ddc4Srjs#line 685 "../src/compiler/glsl/glsl_lexer.ll"
330310e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat2_type);
330410e230b6Smaya	YY_BREAK
330596c5ddc4Srjscase 232:
330610e230b6SmayaYY_RULE_SETUP
330796c5ddc4Srjs#line 686 "../src/compiler/glsl/glsl_lexer.ll"
330810e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat2x3_type);
330910e230b6Smaya	YY_BREAK
331096c5ddc4Srjscase 233:
331110e230b6SmayaYY_RULE_SETUP
331296c5ddc4Srjs#line 687 "../src/compiler/glsl/glsl_lexer.ll"
331310e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat2x4_type);
331410e230b6Smaya	YY_BREAK
331596c5ddc4Srjscase 234:
331610e230b6SmayaYY_RULE_SETUP
331796c5ddc4Srjs#line 688 "../src/compiler/glsl/glsl_lexer.ll"
331810e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat3x2_type);
331910e230b6Smaya	YY_BREAK
332096c5ddc4Srjscase 235:
332110e230b6SmayaYY_RULE_SETUP
332296c5ddc4Srjs#line 689 "../src/compiler/glsl/glsl_lexer.ll"
332310e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat3_type);
332410e230b6Smaya	YY_BREAK
332596c5ddc4Srjscase 236:
332610e230b6SmayaYY_RULE_SETUP
332796c5ddc4Srjs#line 690 "../src/compiler/glsl/glsl_lexer.ll"
332810e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat3x4_type);
332910e230b6Smaya	YY_BREAK
333096c5ddc4Srjscase 237:
333110e230b6SmayaYY_RULE_SETUP
333296c5ddc4Srjs#line 691 "../src/compiler/glsl/glsl_lexer.ll"
333310e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat4x2_type);
333410e230b6Smaya	YY_BREAK
333596c5ddc4Srjscase 238:
333610e230b6SmayaYY_RULE_SETUP
333796c5ddc4Srjs#line 692 "../src/compiler/glsl/glsl_lexer.ll"
333810e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat4x3_type);
333910e230b6Smaya	YY_BREAK
334096c5ddc4Srjscase 239:
334110e230b6SmayaYY_RULE_SETUP
334296c5ddc4Srjs#line 693 "../src/compiler/glsl/glsl_lexer.ll"
334310e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat4_type);
334410e230b6Smaya	YY_BREAK
334596c5ddc4Srjscase 240:
334610e230b6SmayaYY_RULE_SETUP
334796c5ddc4Srjs#line 694 "../src/compiler/glsl/glsl_lexer.ll"
334810e230b6SmayaKEYWORD(110, 100, 0, 0, FVEC2);
334910e230b6Smaya	YY_BREAK
335096c5ddc4Srjscase 241:
335110e230b6SmayaYY_RULE_SETUP
335296c5ddc4Srjs#line 695 "../src/compiler/glsl/glsl_lexer.ll"
335310e230b6SmayaKEYWORD(110, 100, 0, 0, FVEC3);
335410e230b6Smaya	YY_BREAK
335596c5ddc4Srjscase 242:
335610e230b6SmayaYY_RULE_SETUP
335796c5ddc4Srjs#line 696 "../src/compiler/glsl/glsl_lexer.ll"
335810e230b6SmayaKEYWORD(110, 100, 0, 0, FVEC4);
335910e230b6Smaya	YY_BREAK
336096c5ddc4Srjscase 243:
336110e230b6SmayaYY_RULE_SETUP
336296c5ddc4Srjs#line 697 "../src/compiler/glsl/glsl_lexer.ll"
336310e230b6SmayaTYPE_WITH_ALT(110, 100, 0, 0, yyextra->ARB_texture_rectangle_enable, glsl_type::sampler2DRect_type);
336410e230b6Smaya	YY_BREAK
336596c5ddc4Srjscase 244:
336610e230b6SmayaYY_RULE_SETUP
336796c5ddc4Srjs#line 698 "../src/compiler/glsl/glsl_lexer.ll"
336810e230b6SmayaKEYWORD(110, 100, 0, 0, SAMPLER3DRECT);
336910e230b6Smaya	YY_BREAK
337096c5ddc4Srjscase 245:
337110e230b6SmayaYY_RULE_SETUP
337296c5ddc4Srjs#line 699 "../src/compiler/glsl/glsl_lexer.ll"
337310e230b6SmayaTYPE_WITH_ALT(110, 100, 0, 0, yyextra->ARB_texture_rectangle_enable, glsl_type::sampler2DRectShadow_type);
337410e230b6Smaya	YY_BREAK
337596c5ddc4Srjscase 246:
337610e230b6SmayaYY_RULE_SETUP
337796c5ddc4Srjs#line 700 "../src/compiler/glsl/glsl_lexer.ll"
337810e230b6SmayaKEYWORD(110, 100, 0, 0, SIZEOF);
337910e230b6Smaya	YY_BREAK
338096c5ddc4Srjscase 247:
338110e230b6SmayaYY_RULE_SETUP
338296c5ddc4Srjs#line 701 "../src/compiler/glsl/glsl_lexer.ll"
338310e230b6SmayaKEYWORD(110, 100, 0, 0, CAST);
338410e230b6Smaya	YY_BREAK
338596c5ddc4Srjscase 248:
338610e230b6SmayaYY_RULE_SETUP
338796c5ddc4Srjs#line 702 "../src/compiler/glsl/glsl_lexer.ll"
338810e230b6SmayaKEYWORD(110, 100, 0, 0, NAMESPACE);
338910e230b6Smaya	YY_BREAK
339096c5ddc4Srjscase 249:
339110e230b6SmayaYY_RULE_SETUP
339296c5ddc4Srjs#line 703 "../src/compiler/glsl/glsl_lexer.ll"
339310e230b6SmayaKEYWORD(110, 100, 0, 0, USING);
339410e230b6Smaya	YY_BREAK
339510e230b6Smaya/* Additional reserved words in GLSL 1.20. */
339696c5ddc4Srjscase 250:
339710e230b6SmayaYY_RULE_SETUP
339896c5ddc4Srjs#line 706 "../src/compiler/glsl/glsl_lexer.ll"
339910e230b6SmayaKEYWORD(120, 100, 130, 100, LOWP);
340010e230b6Smaya	YY_BREAK
340196c5ddc4Srjscase 251:
340210e230b6SmayaYY_RULE_SETUP
340396c5ddc4Srjs#line 707 "../src/compiler/glsl/glsl_lexer.ll"
340410e230b6SmayaKEYWORD(120, 100, 130, 100, MEDIUMP);
340510e230b6Smaya	YY_BREAK
340696c5ddc4Srjscase 252:
340710e230b6SmayaYY_RULE_SETUP
340896c5ddc4Srjs#line 708 "../src/compiler/glsl/glsl_lexer.ll"
340910e230b6SmayaKEYWORD(120, 100, 130, 100, HIGHP);
341010e230b6Smaya	YY_BREAK
341196c5ddc4Srjscase 253:
341210e230b6SmayaYY_RULE_SETUP
341396c5ddc4Srjs#line 709 "../src/compiler/glsl/glsl_lexer.ll"
341410e230b6SmayaKEYWORD(120, 100, 130, 100, PRECISION);
341510e230b6Smaya	YY_BREAK
341610e230b6Smaya/* Additional reserved words in GLSL 1.30. */
341796c5ddc4Srjscase 254:
341810e230b6SmayaYY_RULE_SETUP
341996c5ddc4Srjs#line 712 "../src/compiler/glsl/glsl_lexer.ll"
342010e230b6SmayaKEYWORD(130, 300, 130, 300, CASE);
342110e230b6Smaya	YY_BREAK
342296c5ddc4Srjscase 255:
342310e230b6SmayaYY_RULE_SETUP
342496c5ddc4Srjs#line 713 "../src/compiler/glsl/glsl_lexer.ll"
342510e230b6SmayaKEYWORD(130, 300, 0, 0, COMMON);
342610e230b6Smaya	YY_BREAK
342796c5ddc4Srjscase 256:
342810e230b6SmayaYY_RULE_SETUP
342996c5ddc4Srjs#line 714 "../src/compiler/glsl/glsl_lexer.ll"
343010e230b6SmayaKEYWORD(130, 300, 0, 0, PARTITION);
343110e230b6Smaya	YY_BREAK
343296c5ddc4Srjscase 257:
343310e230b6SmayaYY_RULE_SETUP
343496c5ddc4Srjs#line 715 "../src/compiler/glsl/glsl_lexer.ll"
343510e230b6SmayaKEYWORD(130, 300, 0, 0, ACTIVE);
343610e230b6Smaya	YY_BREAK
343796c5ddc4Srjscase 258:
343810e230b6SmayaYY_RULE_SETUP
343996c5ddc4Srjs#line 716 "../src/compiler/glsl/glsl_lexer.ll"
344010e230b6SmayaKEYWORD(130, 100, 0, 0, SUPERP);
344110e230b6Smaya	YY_BREAK
344296c5ddc4Srjscase 259:
344310e230b6SmayaYY_RULE_SETUP
344496c5ddc4Srjs#line 717 "../src/compiler/glsl/glsl_lexer.ll"
344510e230b6SmayaTYPE_WITH_ALT(130, 300, 140, 320, yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable || (yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_buffer_object), glsl_type::samplerBuffer_type);
344610e230b6Smaya	YY_BREAK
344796c5ddc4Srjscase 260:
344810e230b6SmayaYY_RULE_SETUP
344996c5ddc4Srjs#line 718 "../src/compiler/glsl/glsl_lexer.ll"
345010e230b6SmayaKEYWORD(130, 300, 0, 0, FILTER);
345110e230b6Smaya	YY_BREAK
345296c5ddc4Srjscase 261:
345310e230b6SmayaYY_RULE_SETUP
345496c5ddc4Srjs#line 719 "../src/compiler/glsl/glsl_lexer.ll"
345510e230b6SmayaKEYWORD_WITH_ALT(130, 0, 140, 0, yyextra->ARB_uniform_buffer_object_enable && !yyextra->es_shader, ROW_MAJOR);
345610e230b6Smaya	YY_BREAK
345710e230b6Smaya/* Additional reserved words in GLSL 1.40 */
345896c5ddc4Srjscase 262:
345910e230b6SmayaYY_RULE_SETUP
346096c5ddc4Srjs#line 722 "../src/compiler/glsl/glsl_lexer.ll"
346110e230b6SmayaTYPE_WITH_ALT(140, 300, 140, 0, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.NV_texture_rectangle && yyextra->ctx->Extensions.EXT_texture_integer, glsl_type::isampler2DRect_type);
346210e230b6Smaya	YY_BREAK
346396c5ddc4Srjscase 263:
346410e230b6SmayaYY_RULE_SETUP
346596c5ddc4Srjs#line 723 "../src/compiler/glsl/glsl_lexer.ll"
346610e230b6SmayaTYPE_WITH_ALT(140, 300, 140, 0, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.NV_texture_rectangle && yyextra->ctx->Extensions.EXT_texture_integer, glsl_type::usampler2DRect_type);
346710e230b6Smaya	YY_BREAK
346896c5ddc4Srjscase 264:
346910e230b6SmayaYY_RULE_SETUP
347096c5ddc4Srjs#line 724 "../src/compiler/glsl/glsl_lexer.ll"
347110e230b6SmayaTYPE_WITH_ALT(140, 300, 140, 320, yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable || (yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_buffer_object && yyextra->ctx->Extensions.EXT_texture_integer), glsl_type::isamplerBuffer_type);
347210e230b6Smaya	YY_BREAK
347396c5ddc4Srjscase 265:
347410e230b6SmayaYY_RULE_SETUP
347596c5ddc4Srjs#line 725 "../src/compiler/glsl/glsl_lexer.ll"
347610e230b6SmayaTYPE_WITH_ALT(140, 300, 140, 320, yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable || (yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_buffer_object && yyextra->ctx->Extensions.EXT_texture_integer), glsl_type::usamplerBuffer_type);
347710e230b6Smaya	YY_BREAK
347810e230b6Smaya/* Additional reserved words in GLSL ES 3.00 */
347996c5ddc4Srjscase 266:
348010e230b6SmayaYY_RULE_SETUP
348196c5ddc4Srjs#line 728 "../src/compiler/glsl/glsl_lexer.ll"
348210e230b6SmayaKEYWORD(420, 300, 0, 0, RESOURCE);
348310e230b6Smaya	YY_BREAK
348496c5ddc4Srjscase 267:
348510e230b6SmayaYY_RULE_SETUP
348696c5ddc4Srjs#line 729 "../src/compiler/glsl/glsl_lexer.ll"
348710e230b6SmayaKEYWORD_WITH_ALT(400, 300, 400, 320, yyextra->ARB_gpu_shader5_enable || yyextra->OES_shader_multisample_interpolation_enable, SAMPLE);
348810e230b6Smaya	YY_BREAK
348996c5ddc4Srjscase 268:
349010e230b6SmayaYY_RULE_SETUP
349196c5ddc4Srjs#line 730 "../src/compiler/glsl/glsl_lexer.ll"
349210e230b6SmayaKEYWORD_WITH_ALT(400, 300, 400, 0, yyextra->ARB_shader_subroutine_enable, SUBROUTINE);
349310e230b6Smaya	YY_BREAK
349410e230b6Smaya/* Additional words for ARB_gpu_shader_int64 */
349596c5ddc4Srjscase 269:
349610e230b6SmayaYY_RULE_SETUP
349796c5ddc4Srjs#line 733 "../src/compiler/glsl/glsl_lexer.ll"
349810e230b6SmayaTYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::int64_t_type);
349910e230b6Smaya	YY_BREAK
350096c5ddc4Srjscase 270:
350110e230b6SmayaYY_RULE_SETUP
350296c5ddc4Srjs#line 734 "../src/compiler/glsl/glsl_lexer.ll"
350310e230b6SmayaTYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::i64vec2_type);
350410e230b6Smaya	YY_BREAK
350596c5ddc4Srjscase 271:
350610e230b6SmayaYY_RULE_SETUP
350796c5ddc4Srjs#line 735 "../src/compiler/glsl/glsl_lexer.ll"
350810e230b6SmayaTYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::i64vec3_type);
350910e230b6Smaya	YY_BREAK
351096c5ddc4Srjscase 272:
351110e230b6SmayaYY_RULE_SETUP
351296c5ddc4Srjs#line 736 "../src/compiler/glsl/glsl_lexer.ll"
351310e230b6SmayaTYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::i64vec4_type);
351410e230b6Smaya	YY_BREAK
351596c5ddc4Srjscase 273:
351610e230b6SmayaYY_RULE_SETUP
351796c5ddc4Srjs#line 738 "../src/compiler/glsl/glsl_lexer.ll"
351810e230b6SmayaTYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::uint64_t_type);
351910e230b6Smaya	YY_BREAK
352096c5ddc4Srjscase 274:
352110e230b6SmayaYY_RULE_SETUP
352296c5ddc4Srjs#line 739 "../src/compiler/glsl/glsl_lexer.ll"
352310e230b6SmayaTYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::u64vec2_type);
352410e230b6Smaya	YY_BREAK
352596c5ddc4Srjscase 275:
352610e230b6SmayaYY_RULE_SETUP
352796c5ddc4Srjs#line 740 "../src/compiler/glsl/glsl_lexer.ll"
352810e230b6SmayaTYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::u64vec3_type);
352910e230b6Smaya	YY_BREAK
353096c5ddc4Srjscase 276:
353110e230b6SmayaYY_RULE_SETUP
353296c5ddc4Srjs#line 741 "../src/compiler/glsl/glsl_lexer.ll"
353310e230b6SmayaTYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::u64vec4_type);
353410e230b6Smaya	YY_BREAK
353596c5ddc4Srjscase 277:
353610e230b6SmayaYY_RULE_SETUP
353796c5ddc4Srjs#line 743 "../src/compiler/glsl/glsl_lexer.ll"
353810e230b6Smaya{
353910e230b6Smaya			    struct _mesa_glsl_parse_state *state = yyextra;
354010e230b6Smaya			    if (state->es_shader && yyleng > 1024) {
354110e230b6Smaya			       _mesa_glsl_error(yylloc, state,
354210e230b6Smaya			                        "Identifier `%s' exceeds 1024 characters",
354310e230b6Smaya			                        yytext);
354410e230b6Smaya			    }
354510e230b6Smaya			    return classify_identifier(state, yytext, yyleng, yylval);
354610e230b6Smaya			}
354710e230b6Smaya	YY_BREAK
354896c5ddc4Srjscase 278:
354910e230b6SmayaYY_RULE_SETUP
355096c5ddc4Srjs#line 753 "../src/compiler/glsl/glsl_lexer.ll"
355110e230b6Smaya{ struct _mesa_glsl_parse_state *state = yyextra;
355210e230b6Smaya			  state->is_field = true;
355310e230b6Smaya			  return DOT_TOK; }
355410e230b6Smaya	YY_BREAK
355596c5ddc4Srjscase 279:
355610e230b6SmayaYY_RULE_SETUP
355796c5ddc4Srjs#line 757 "../src/compiler/glsl/glsl_lexer.ll"
355810e230b6Smaya{ return yytext[0]; }
355910e230b6Smaya	YY_BREAK
356096c5ddc4Srjscase 280:
356110e230b6SmayaYY_RULE_SETUP
356296c5ddc4Srjs#line 759 "../src/compiler/glsl/glsl_lexer.ll"
356310e230b6SmayaYY_FATAL_ERROR( "flex scanner jammed" );
356410e230b6Smaya	YY_BREAK
356596c5ddc4Srjs#line 3565 "src/compiler/glsl/glsl_lexer.cpp"
356610e230b6Smayacase YY_STATE_EOF(INITIAL):
356710e230b6Smayacase YY_STATE_EOF(PP):
356810e230b6Smayacase YY_STATE_EOF(PRAGMA):
356910e230b6Smaya	yyterminate();
357010e230b6Smaya
357110e230b6Smaya	case YY_END_OF_BUFFER:
357210e230b6Smaya		{
357310e230b6Smaya		/* Amount of text matched not including the EOB char. */
357410e230b6Smaya		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
357510e230b6Smaya
357610e230b6Smaya		/* Undo the effects of YY_DO_BEFORE_ACTION. */
357710e230b6Smaya		*yy_cp = yyg->yy_hold_char;
357810e230b6Smaya		YY_RESTORE_YY_MORE_OFFSET
357910e230b6Smaya
358010e230b6Smaya		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
358110e230b6Smaya			{
358210e230b6Smaya			/* We're scanning a new file or input source.  It's
358310e230b6Smaya			 * possible that this happened because the user
358410e230b6Smaya			 * just pointed yyin at a new source and called
358510e230b6Smaya			 * yylex().  If so, then we have to assure
358610e230b6Smaya			 * consistency between YY_CURRENT_BUFFER and our
358710e230b6Smaya			 * globals.  Here is the right place to do so, because
358810e230b6Smaya			 * this is the first action (other than possibly a
358910e230b6Smaya			 * back-up) that will match for the new input source.
359010e230b6Smaya			 */
359110e230b6Smaya			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
359210e230b6Smaya			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
359310e230b6Smaya			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
359410e230b6Smaya			}
359510e230b6Smaya
359610e230b6Smaya		/* Note that here we test for yy_c_buf_p "<=" to the position
359710e230b6Smaya		 * of the first EOB in the buffer, since yy_c_buf_p will
359810e230b6Smaya		 * already have been incremented past the NUL character
359910e230b6Smaya		 * (since all states make transitions on EOB to the
360010e230b6Smaya		 * end-of-buffer state).  Contrast this with the test
360110e230b6Smaya		 * in input().
360210e230b6Smaya		 */
360310e230b6Smaya		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
360410e230b6Smaya			{ /* This was really a NUL. */
360510e230b6Smaya			yy_state_type yy_next_state;
360610e230b6Smaya
360710e230b6Smaya			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
360810e230b6Smaya
360910e230b6Smaya			yy_current_state = yy_get_previous_state( yyscanner );
361010e230b6Smaya
361110e230b6Smaya			/* Okay, we're now positioned to make the NUL
361210e230b6Smaya			 * transition.  We couldn't have
361310e230b6Smaya			 * yy_get_previous_state() go ahead and do it
361410e230b6Smaya			 * for us because it doesn't know how to deal
361510e230b6Smaya			 * with the possibility of jamming (and we don't
361610e230b6Smaya			 * want to build jamming into it because then it
361710e230b6Smaya			 * will run more slowly).
361810e230b6Smaya			 */
361910e230b6Smaya
362010e230b6Smaya			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
362110e230b6Smaya
362210e230b6Smaya			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
362310e230b6Smaya
362410e230b6Smaya			if ( yy_next_state )
362510e230b6Smaya				{
362610e230b6Smaya				/* Consume the NUL. */
362710e230b6Smaya				yy_cp = ++yyg->yy_c_buf_p;
362810e230b6Smaya				yy_current_state = yy_next_state;
362910e230b6Smaya				goto yy_match;
363010e230b6Smaya				}
363110e230b6Smaya
363210e230b6Smaya			else
363310e230b6Smaya				{
363410e230b6Smaya				yy_cp = yyg->yy_last_accepting_cpos;
363510e230b6Smaya				yy_current_state = yyg->yy_last_accepting_state;
363610e230b6Smaya				goto yy_find_action;
363710e230b6Smaya				}
363810e230b6Smaya			}
363910e230b6Smaya
364010e230b6Smaya		else switch ( yy_get_next_buffer( yyscanner ) )
364110e230b6Smaya			{
364210e230b6Smaya			case EOB_ACT_END_OF_FILE:
364310e230b6Smaya				{
364410e230b6Smaya				yyg->yy_did_buffer_switch_on_eof = 0;
364510e230b6Smaya
364610e230b6Smaya				if ( yywrap( yyscanner ) )
364710e230b6Smaya					{
364810e230b6Smaya					/* Note: because we've taken care in
364910e230b6Smaya					 * yy_get_next_buffer() to have set up
365010e230b6Smaya					 * yytext, we can now set up
365110e230b6Smaya					 * yy_c_buf_p so that if some total
365210e230b6Smaya					 * hoser (like flex itself) wants to
365310e230b6Smaya					 * call the scanner after we return the
365410e230b6Smaya					 * YY_NULL, it'll still work - another
365510e230b6Smaya					 * YY_NULL will get returned.
365610e230b6Smaya					 */
365710e230b6Smaya					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
365810e230b6Smaya
365910e230b6Smaya					yy_act = YY_STATE_EOF(YY_START);
366010e230b6Smaya					goto do_action;
366110e230b6Smaya					}
366210e230b6Smaya
366310e230b6Smaya				else
366410e230b6Smaya					{
366510e230b6Smaya					if ( ! yyg->yy_did_buffer_switch_on_eof )
366610e230b6Smaya						YY_NEW_FILE;
366710e230b6Smaya					}
366810e230b6Smaya				break;
366910e230b6Smaya				}
367010e230b6Smaya
367110e230b6Smaya			case EOB_ACT_CONTINUE_SCAN:
367210e230b6Smaya				yyg->yy_c_buf_p =
367310e230b6Smaya					yyg->yytext_ptr + yy_amount_of_matched_text;
367410e230b6Smaya
367510e230b6Smaya				yy_current_state = yy_get_previous_state( yyscanner );
367610e230b6Smaya
367710e230b6Smaya				yy_cp = yyg->yy_c_buf_p;
367810e230b6Smaya				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
367910e230b6Smaya				goto yy_match;
368010e230b6Smaya
368110e230b6Smaya			case EOB_ACT_LAST_MATCH:
368210e230b6Smaya				yyg->yy_c_buf_p =
368310e230b6Smaya				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
368410e230b6Smaya
368510e230b6Smaya				yy_current_state = yy_get_previous_state( yyscanner );
368610e230b6Smaya
368710e230b6Smaya				yy_cp = yyg->yy_c_buf_p;
368810e230b6Smaya				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
368910e230b6Smaya				goto yy_find_action;
369010e230b6Smaya			}
369110e230b6Smaya		break;
369210e230b6Smaya		}
369310e230b6Smaya
369410e230b6Smaya	default:
369510e230b6Smaya		YY_FATAL_ERROR(
369610e230b6Smaya			"fatal flex scanner internal error--no action found" );
369710e230b6Smaya	} /* end of action switch */
369810e230b6Smaya		} /* end of scanning one token */
369910e230b6Smaya	} /* end of user's declarations */
370010e230b6Smaya} /* end of yylex */
370110e230b6Smaya
370210e230b6Smaya/* yy_get_next_buffer - try to read in a new buffer
370310e230b6Smaya *
370410e230b6Smaya * Returns a code representing an action:
370510e230b6Smaya *	EOB_ACT_LAST_MATCH -
370610e230b6Smaya *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
370710e230b6Smaya *	EOB_ACT_END_OF_FILE - end of file
370810e230b6Smaya */
370910e230b6Smayastatic int yy_get_next_buffer (yyscan_t yyscanner)
371010e230b6Smaya{
371110e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
371210e230b6Smaya	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
371310e230b6Smaya	char *source = yyg->yytext_ptr;
371410e230b6Smaya	yy_size_t number_to_move, i;
371510e230b6Smaya	int ret_val;
371610e230b6Smaya
371710e230b6Smaya	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
371810e230b6Smaya		YY_FATAL_ERROR(
371910e230b6Smaya		"fatal flex scanner internal error--end of buffer missed" );
372010e230b6Smaya
372110e230b6Smaya	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
372210e230b6Smaya		{ /* Don't try to fill the buffer, so this is an EOF. */
372310e230b6Smaya		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
372410e230b6Smaya			{
372510e230b6Smaya			/* We matched a single character, the EOB, so
372610e230b6Smaya			 * treat this as a final EOF.
372710e230b6Smaya			 */
372810e230b6Smaya			return EOB_ACT_END_OF_FILE;
372910e230b6Smaya			}
373010e230b6Smaya
373110e230b6Smaya		else
373210e230b6Smaya			{
373310e230b6Smaya			/* We matched some text prior to the EOB, first
373410e230b6Smaya			 * process it.
373510e230b6Smaya			 */
373610e230b6Smaya			return EOB_ACT_LAST_MATCH;
373710e230b6Smaya			}
373810e230b6Smaya		}
373910e230b6Smaya
374010e230b6Smaya	/* Try to read more data. */
374110e230b6Smaya
374210e230b6Smaya	/* First move last chars to start of buffer. */
374310e230b6Smaya	number_to_move = (yy_size_t) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1);
374410e230b6Smaya
374510e230b6Smaya	for ( i = 0; i < number_to_move; ++i )
374610e230b6Smaya		*(dest++) = *(source++);
374710e230b6Smaya
374810e230b6Smaya	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
374910e230b6Smaya		/* don't do the read, it's not guaranteed to return an EOF,
375010e230b6Smaya		 * just force an EOF
375110e230b6Smaya		 */
375210e230b6Smaya		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
375310e230b6Smaya
375410e230b6Smaya	else
375510e230b6Smaya		{
375610e230b6Smaya			yy_size_t num_to_read =
375710e230b6Smaya			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
375810e230b6Smaya
375910e230b6Smaya		while ( num_to_read <= 0 )
376010e230b6Smaya			{ /* Not enough room in the buffer - grow it. */
376110e230b6Smaya
376210e230b6Smaya			/* just a shorter name for the current buffer */
376310e230b6Smaya			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
376410e230b6Smaya
376510e230b6Smaya			int yy_c_buf_p_offset =
376610e230b6Smaya				(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
376710e230b6Smaya
376810e230b6Smaya			if ( b->yy_is_our_buffer )
376910e230b6Smaya				{
377010e230b6Smaya				yy_size_t new_size = b->yy_buf_size * 2;
377110e230b6Smaya
377210e230b6Smaya				if ( new_size <= 0 )
377310e230b6Smaya					b->yy_buf_size += b->yy_buf_size / 8;
377410e230b6Smaya				else
377510e230b6Smaya					b->yy_buf_size *= 2;
377610e230b6Smaya
377710e230b6Smaya				b->yy_ch_buf = (char *)
377810e230b6Smaya					/* Include room in for 2 EOB chars. */
377910e230b6Smaya					yyrealloc( (void *) b->yy_ch_buf,
378010e230b6Smaya							 (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
378110e230b6Smaya				}
378210e230b6Smaya			else
378310e230b6Smaya				/* Can't grow it, we don't own it. */
378410e230b6Smaya				b->yy_ch_buf = NULL;
378510e230b6Smaya
378610e230b6Smaya			if ( ! b->yy_ch_buf )
378710e230b6Smaya				YY_FATAL_ERROR(
378810e230b6Smaya				"fatal error - scanner input buffer overflow" );
378910e230b6Smaya
379010e230b6Smaya			yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
379110e230b6Smaya
379210e230b6Smaya			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
379310e230b6Smaya						number_to_move - 1;
379410e230b6Smaya
379510e230b6Smaya			}
379610e230b6Smaya
379710e230b6Smaya		if ( num_to_read > YY_READ_BUF_SIZE )
379810e230b6Smaya			num_to_read = YY_READ_BUF_SIZE;
379910e230b6Smaya
380010e230b6Smaya		/* Read in more data. */
380110e230b6Smaya		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
380210e230b6Smaya			yyg->yy_n_chars, num_to_read );
380310e230b6Smaya
380410e230b6Smaya		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
380510e230b6Smaya		}
380610e230b6Smaya
380710e230b6Smaya	if ( yyg->yy_n_chars == 0 )
380810e230b6Smaya		{
380910e230b6Smaya		if ( number_to_move == YY_MORE_ADJ )
381010e230b6Smaya			{
381110e230b6Smaya			ret_val = EOB_ACT_END_OF_FILE;
381210e230b6Smaya			yyrestart( yyin  , yyscanner);
381310e230b6Smaya			}
381410e230b6Smaya
381510e230b6Smaya		else
381610e230b6Smaya			{
381710e230b6Smaya			ret_val = EOB_ACT_LAST_MATCH;
381810e230b6Smaya			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
381910e230b6Smaya				YY_BUFFER_EOF_PENDING;
382010e230b6Smaya			}
382110e230b6Smaya		}
382210e230b6Smaya
382310e230b6Smaya	else
382410e230b6Smaya		ret_val = EOB_ACT_CONTINUE_SCAN;
382510e230b6Smaya
382610e230b6Smaya	if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
382710e230b6Smaya		/* Extend the array by 50%, plus the number we really need. */
382810e230b6Smaya		yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
382910e230b6Smaya		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
383010e230b6Smaya			(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner );
383110e230b6Smaya		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
383210e230b6Smaya			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
383310e230b6Smaya		/* "- 2" to take care of EOB's */
383410e230b6Smaya		YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (yy_size_t) (new_size - 2);
383510e230b6Smaya	}
383610e230b6Smaya
383710e230b6Smaya	yyg->yy_n_chars += number_to_move;
383810e230b6Smaya	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
383910e230b6Smaya	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
384010e230b6Smaya
384110e230b6Smaya	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
384210e230b6Smaya
384310e230b6Smaya	return ret_val;
384410e230b6Smaya}
384510e230b6Smaya
384610e230b6Smaya/* yy_get_previous_state - get the state just before the EOB char was reached */
384710e230b6Smaya
384810e230b6Smaya    static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
384910e230b6Smaya{
385010e230b6Smaya	yy_state_type yy_current_state;
385110e230b6Smaya	char *yy_cp;
385210e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
385310e230b6Smaya
385410e230b6Smaya	yy_current_state = yyg->yy_start;
385510e230b6Smaya	yy_current_state += YY_AT_BOL();
385610e230b6Smaya
385710e230b6Smaya	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
385810e230b6Smaya		{
385910e230b6Smaya		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
386010e230b6Smaya		if ( yy_accept[yy_current_state] )
386110e230b6Smaya			{
386210e230b6Smaya			yyg->yy_last_accepting_state = yy_current_state;
386310e230b6Smaya			yyg->yy_last_accepting_cpos = yy_cp;
386410e230b6Smaya			}
386510e230b6Smaya		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
386610e230b6Smaya			{
386710e230b6Smaya			yy_current_state = (int) yy_def[yy_current_state];
386896c5ddc4Srjs			if ( yy_current_state >= 1112 )
386910e230b6Smaya				yy_c = yy_meta[yy_c];
387010e230b6Smaya			}
387110e230b6Smaya		yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
387210e230b6Smaya		}
387310e230b6Smaya
387410e230b6Smaya	return yy_current_state;
387510e230b6Smaya}
387610e230b6Smaya
387710e230b6Smaya/* yy_try_NUL_trans - try to make a transition on the NUL character
387810e230b6Smaya *
387910e230b6Smaya * synopsis
388010e230b6Smaya *	next_state = yy_try_NUL_trans( current_state );
388110e230b6Smaya */
388210e230b6Smaya    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
388310e230b6Smaya{
388410e230b6Smaya	int yy_is_jam;
388510e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
388610e230b6Smaya	char *yy_cp = yyg->yy_c_buf_p;
388710e230b6Smaya
388810e230b6Smaya	YY_CHAR yy_c = 1;
388910e230b6Smaya	if ( yy_accept[yy_current_state] )
389010e230b6Smaya		{
389110e230b6Smaya		yyg->yy_last_accepting_state = yy_current_state;
389210e230b6Smaya		yyg->yy_last_accepting_cpos = yy_cp;
389310e230b6Smaya		}
389410e230b6Smaya	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
389510e230b6Smaya		{
389610e230b6Smaya		yy_current_state = (int) yy_def[yy_current_state];
389796c5ddc4Srjs		if ( yy_current_state >= 1112 )
389810e230b6Smaya			yy_c = yy_meta[yy_c];
389910e230b6Smaya		}
390010e230b6Smaya	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
390196c5ddc4Srjs	yy_is_jam = (yy_current_state == 1111);
390210e230b6Smaya
390310e230b6Smaya	(void)yyg;
390496c5ddc4Srjsreturn yy_is_jam ? 0 : yy_current_state;
390510e230b6Smaya}
390610e230b6Smaya
390710e230b6Smaya#ifndef YY_NO_UNPUT
390810e230b6Smaya
390910e230b6Smaya#endif
391010e230b6Smaya
391110e230b6Smaya#ifndef YY_NO_INPUT
391210e230b6Smaya#ifdef __cplusplus
391310e230b6Smaya    static int yyinput (yyscan_t yyscanner)
391410e230b6Smaya#else
391510e230b6Smaya    static int input  (yyscan_t yyscanner)
391610e230b6Smaya#endif
391710e230b6Smaya
391810e230b6Smaya{
391910e230b6Smaya	int c;
392010e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
392110e230b6Smaya
392210e230b6Smaya	*yyg->yy_c_buf_p = yyg->yy_hold_char;
392310e230b6Smaya
392410e230b6Smaya	if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
392510e230b6Smaya		{
392610e230b6Smaya		/* yy_c_buf_p now points to the character we want to return.
392710e230b6Smaya		 * If this occurs *before* the EOB characters, then it's a
392810e230b6Smaya		 * valid NUL; if not, then we've hit the end of the buffer.
392910e230b6Smaya		 */
393010e230b6Smaya		if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
393110e230b6Smaya			/* This was really a NUL. */
393210e230b6Smaya			*yyg->yy_c_buf_p = '\0';
393310e230b6Smaya
393410e230b6Smaya		else
393510e230b6Smaya			{ /* need more input */
393610e230b6Smaya			yy_size_t offset = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr);
393710e230b6Smaya			++yyg->yy_c_buf_p;
393810e230b6Smaya
393910e230b6Smaya			switch ( yy_get_next_buffer( yyscanner ) )
394010e230b6Smaya				{
394110e230b6Smaya				case EOB_ACT_LAST_MATCH:
394210e230b6Smaya					/* This happens because yy_g_n_b()
394310e230b6Smaya					 * sees that we've accumulated a
394410e230b6Smaya					 * token and flags that we need to
394510e230b6Smaya					 * try matching the token before
394610e230b6Smaya					 * proceeding.  But for input(),
394710e230b6Smaya					 * there's no matching to consider.
394810e230b6Smaya					 * So convert the EOB_ACT_LAST_MATCH
394910e230b6Smaya					 * to EOB_ACT_END_OF_FILE.
395010e230b6Smaya					 */
395110e230b6Smaya
395210e230b6Smaya					/* Reset buffer status. */
395310e230b6Smaya					yyrestart( yyin , yyscanner);
395410e230b6Smaya
395510e230b6Smaya					/*FALLTHROUGH*/
395610e230b6Smaya
395710e230b6Smaya				case EOB_ACT_END_OF_FILE:
395810e230b6Smaya					{
395910e230b6Smaya					if ( yywrap( yyscanner ) )
396010e230b6Smaya						return 0;
396110e230b6Smaya
396210e230b6Smaya					if ( ! yyg->yy_did_buffer_switch_on_eof )
396310e230b6Smaya						YY_NEW_FILE;
396410e230b6Smaya#ifdef __cplusplus
396510e230b6Smaya					return yyinput(yyscanner);
396610e230b6Smaya#else
396710e230b6Smaya					return input(yyscanner);
396810e230b6Smaya#endif
396910e230b6Smaya					}
397010e230b6Smaya
397110e230b6Smaya				case EOB_ACT_CONTINUE_SCAN:
397210e230b6Smaya					yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
397310e230b6Smaya					break;
397410e230b6Smaya				}
397510e230b6Smaya			}
397610e230b6Smaya		}
397710e230b6Smaya
397810e230b6Smaya	c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
397910e230b6Smaya	*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
398010e230b6Smaya	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
398110e230b6Smaya
398210e230b6Smaya	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
398310e230b6Smaya
398410e230b6Smaya	return c;
398510e230b6Smaya}
398610e230b6Smaya#endif	/* ifndef YY_NO_INPUT */
398710e230b6Smaya
398810e230b6Smaya/** Immediately switch to a different input stream.
398910e230b6Smaya * @param input_file A readable stream.
399010e230b6Smaya * @param yyscanner The scanner object.
399110e230b6Smaya * @note This function does not reset the start condition to @c INITIAL .
399210e230b6Smaya */
399310e230b6Smaya    void yyrestart  (FILE * input_file , yyscan_t yyscanner)
399410e230b6Smaya{
399510e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
399610e230b6Smaya
399710e230b6Smaya	if ( ! YY_CURRENT_BUFFER ){
399810e230b6Smaya        yyensure_buffer_stack (yyscanner);
399910e230b6Smaya		YY_CURRENT_BUFFER_LVALUE =
400010e230b6Smaya            yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
400110e230b6Smaya	}
400210e230b6Smaya
400310e230b6Smaya	yy_init_buffer( YY_CURRENT_BUFFER, input_file , yyscanner);
400410e230b6Smaya	yy_load_buffer_state( yyscanner );
400510e230b6Smaya}
400610e230b6Smaya
400710e230b6Smaya/** Switch to a different input buffer.
400810e230b6Smaya * @param new_buffer The new input buffer.
400910e230b6Smaya * @param yyscanner The scanner object.
401010e230b6Smaya */
401110e230b6Smaya    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
401210e230b6Smaya{
401310e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
401410e230b6Smaya
401510e230b6Smaya	/* TODO. We should be able to replace this entire function body
401610e230b6Smaya	 * with
401710e230b6Smaya	 *		yypop_buffer_state();
401810e230b6Smaya	 *		yypush_buffer_state(new_buffer);
401910e230b6Smaya     */
402010e230b6Smaya	yyensure_buffer_stack (yyscanner);
402110e230b6Smaya	if ( YY_CURRENT_BUFFER == new_buffer )
402210e230b6Smaya		return;
402310e230b6Smaya
402410e230b6Smaya	if ( YY_CURRENT_BUFFER )
402510e230b6Smaya		{
402610e230b6Smaya		/* Flush out information for old buffer. */
402710e230b6Smaya		*yyg->yy_c_buf_p = yyg->yy_hold_char;
402810e230b6Smaya		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
402910e230b6Smaya		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
403010e230b6Smaya		}
403110e230b6Smaya
403210e230b6Smaya	YY_CURRENT_BUFFER_LVALUE = new_buffer;
403310e230b6Smaya	yy_load_buffer_state( yyscanner );
403410e230b6Smaya
403510e230b6Smaya	/* We don't actually know whether we did this switch during
403610e230b6Smaya	 * EOF (yywrap()) processing, but the only time this flag
403710e230b6Smaya	 * is looked at is after yywrap() is called, so it's safe
403810e230b6Smaya	 * to go ahead and always set it.
403910e230b6Smaya	 */
404010e230b6Smaya	yyg->yy_did_buffer_switch_on_eof = 1;
404110e230b6Smaya}
404210e230b6Smaya
404310e230b6Smayastatic void yy_load_buffer_state  (yyscan_t yyscanner)
404410e230b6Smaya{
404510e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
404610e230b6Smaya	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
404710e230b6Smaya	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
404810e230b6Smaya	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
404910e230b6Smaya	yyg->yy_hold_char = *yyg->yy_c_buf_p;
405010e230b6Smaya}
405110e230b6Smaya
405210e230b6Smaya/** Allocate and initialize an input buffer state.
405310e230b6Smaya * @param file A readable stream.
405410e230b6Smaya * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
405510e230b6Smaya * @param yyscanner The scanner object.
405610e230b6Smaya * @return the allocated buffer state.
405710e230b6Smaya */
405810e230b6Smaya    YY_BUFFER_STATE yy_create_buffer  (FILE * file, yy_size_t  size , yyscan_t yyscanner)
405910e230b6Smaya{
406010e230b6Smaya	YY_BUFFER_STATE b;
406110e230b6Smaya
406210e230b6Smaya	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
406310e230b6Smaya	if ( ! b )
406410e230b6Smaya		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
406510e230b6Smaya
406610e230b6Smaya	b->yy_buf_size = size;
406710e230b6Smaya
406810e230b6Smaya	/* yy_ch_buf has to be 2 characters longer than the size given because
406910e230b6Smaya	 * we need to put in 2 end-of-buffer characters.
407010e230b6Smaya	 */
407110e230b6Smaya	b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
407210e230b6Smaya	if ( ! b->yy_ch_buf )
407310e230b6Smaya		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
407410e230b6Smaya
407510e230b6Smaya	b->yy_is_our_buffer = 1;
407610e230b6Smaya
407710e230b6Smaya	yy_init_buffer( b, file , yyscanner);
407810e230b6Smaya
407910e230b6Smaya	return b;
408010e230b6Smaya}
408110e230b6Smaya
408210e230b6Smaya/** Destroy the buffer.
408310e230b6Smaya * @param b a buffer created with yy_create_buffer()
408410e230b6Smaya * @param yyscanner The scanner object.
408510e230b6Smaya */
408610e230b6Smaya    void yy_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
408710e230b6Smaya{
408810e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
408910e230b6Smaya
409010e230b6Smaya	if ( ! b )
409110e230b6Smaya		return;
409210e230b6Smaya
409310e230b6Smaya	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
409410e230b6Smaya		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
409510e230b6Smaya
409610e230b6Smaya	if ( b->yy_is_our_buffer )
409710e230b6Smaya		yyfree( (void *) b->yy_ch_buf , yyscanner );
409810e230b6Smaya
409910e230b6Smaya	yyfree( (void *) b , yyscanner );
410010e230b6Smaya}
410110e230b6Smaya
410210e230b6Smaya/* Initializes or reinitializes a buffer.
410310e230b6Smaya * This function is sometimes called more than once on the same buffer,
410410e230b6Smaya * such as during a yyrestart() or at EOF.
410510e230b6Smaya */
410610e230b6Smaya    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
410710e230b6Smaya
410810e230b6Smaya{
410910e230b6Smaya	int oerrno = errno;
411010e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
411110e230b6Smaya
411210e230b6Smaya	yy_flush_buffer( b , yyscanner);
411310e230b6Smaya
411410e230b6Smaya	b->yy_input_file = file;
411510e230b6Smaya	b->yy_fill_buffer = 1;
411610e230b6Smaya
411710e230b6Smaya    /* If b is the current buffer, then yy_init_buffer was _probably_
411810e230b6Smaya     * called from yyrestart() or through yy_get_next_buffer.
411910e230b6Smaya     * In that case, we don't want to reset the lineno or column.
412010e230b6Smaya     */
412110e230b6Smaya    if (b != YY_CURRENT_BUFFER){
412210e230b6Smaya        b->yy_bs_lineno = 1;
412310e230b6Smaya        b->yy_bs_column = 0;
412410e230b6Smaya    }
412510e230b6Smaya
412610e230b6Smaya        b->yy_is_interactive = 0;
412710e230b6Smaya
412810e230b6Smaya	errno = oerrno;
412910e230b6Smaya}
413010e230b6Smaya
413110e230b6Smaya/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
413210e230b6Smaya * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
413310e230b6Smaya * @param yyscanner The scanner object.
413410e230b6Smaya */
413510e230b6Smaya    void yy_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
413610e230b6Smaya{
413710e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
413810e230b6Smaya	if ( ! b )
413910e230b6Smaya		return;
414010e230b6Smaya
414110e230b6Smaya	b->yy_n_chars = 0;
414210e230b6Smaya
414310e230b6Smaya	/* We always need two end-of-buffer characters.  The first causes
414410e230b6Smaya	 * a transition to the end-of-buffer state.  The second causes
414510e230b6Smaya	 * a jam in that state.
414610e230b6Smaya	 */
414710e230b6Smaya	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
414810e230b6Smaya	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
414910e230b6Smaya
415010e230b6Smaya	b->yy_buf_pos = &b->yy_ch_buf[0];
415110e230b6Smaya
415210e230b6Smaya	b->yy_at_bol = 1;
415310e230b6Smaya	b->yy_buffer_status = YY_BUFFER_NEW;
415410e230b6Smaya
415510e230b6Smaya	if ( b == YY_CURRENT_BUFFER )
415610e230b6Smaya		yy_load_buffer_state( yyscanner );
415710e230b6Smaya}
415810e230b6Smaya
415910e230b6Smaya/** Pushes the new state onto the stack. The new state becomes
416010e230b6Smaya *  the current state. This function will allocate the stack
416110e230b6Smaya *  if necessary.
416210e230b6Smaya *  @param new_buffer The new state.
416310e230b6Smaya *  @param yyscanner The scanner object.
416410e230b6Smaya */
416510e230b6Smayavoid yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
416610e230b6Smaya{
416710e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
416810e230b6Smaya	if (new_buffer == NULL)
416910e230b6Smaya		return;
417010e230b6Smaya
417110e230b6Smaya	yyensure_buffer_stack(yyscanner);
417210e230b6Smaya
417310e230b6Smaya	/* This block is copied from yy_switch_to_buffer. */
417410e230b6Smaya	if ( YY_CURRENT_BUFFER )
417510e230b6Smaya		{
417610e230b6Smaya		/* Flush out information for old buffer. */
417710e230b6Smaya		*yyg->yy_c_buf_p = yyg->yy_hold_char;
417810e230b6Smaya		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
417910e230b6Smaya		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
418010e230b6Smaya		}
418110e230b6Smaya
418210e230b6Smaya	/* Only push if top exists. Otherwise, replace top. */
418310e230b6Smaya	if (YY_CURRENT_BUFFER)
418410e230b6Smaya		yyg->yy_buffer_stack_top++;
418510e230b6Smaya	YY_CURRENT_BUFFER_LVALUE = new_buffer;
418610e230b6Smaya
418710e230b6Smaya	/* copied from yy_switch_to_buffer. */
418810e230b6Smaya	yy_load_buffer_state( yyscanner );
418910e230b6Smaya	yyg->yy_did_buffer_switch_on_eof = 1;
419010e230b6Smaya}
419110e230b6Smaya
419210e230b6Smaya/** Removes and deletes the top of the stack, if present.
419310e230b6Smaya *  The next element becomes the new top.
419410e230b6Smaya *  @param yyscanner The scanner object.
419510e230b6Smaya */
419610e230b6Smayavoid yypop_buffer_state (yyscan_t yyscanner)
419710e230b6Smaya{
419810e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
419910e230b6Smaya	if (!YY_CURRENT_BUFFER)
420010e230b6Smaya		return;
420110e230b6Smaya
420210e230b6Smaya	yy_delete_buffer(YY_CURRENT_BUFFER , yyscanner);
420310e230b6Smaya	YY_CURRENT_BUFFER_LVALUE = NULL;
420410e230b6Smaya	if (yyg->yy_buffer_stack_top > 0)
420510e230b6Smaya		--yyg->yy_buffer_stack_top;
420610e230b6Smaya
420710e230b6Smaya	if (YY_CURRENT_BUFFER) {
420810e230b6Smaya		yy_load_buffer_state( yyscanner );
420910e230b6Smaya		yyg->yy_did_buffer_switch_on_eof = 1;
421010e230b6Smaya	}
421110e230b6Smaya}
421210e230b6Smaya
421310e230b6Smaya/* Allocates the stack if it does not exist.
421410e230b6Smaya *  Guarantees space for at least one push.
421510e230b6Smaya */
421610e230b6Smayastatic void yyensure_buffer_stack (yyscan_t yyscanner)
421710e230b6Smaya{
421810e230b6Smaya	yy_size_t num_to_alloc;
421910e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
422010e230b6Smaya
422110e230b6Smaya	if (!yyg->yy_buffer_stack) {
422210e230b6Smaya
422310e230b6Smaya		/* First allocation is just for 2 elements, since we don't know if this
422410e230b6Smaya		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
422510e230b6Smaya		 * immediate realloc on the next call.
422610e230b6Smaya         */
422710e230b6Smaya      num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
422810e230b6Smaya		yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc
422910e230b6Smaya								(num_to_alloc * sizeof(struct yy_buffer_state*)
423010e230b6Smaya								, yyscanner);
423110e230b6Smaya		if ( ! yyg->yy_buffer_stack )
423210e230b6Smaya			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
423310e230b6Smaya
423410e230b6Smaya		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
423510e230b6Smaya
423610e230b6Smaya		yyg->yy_buffer_stack_max = num_to_alloc;
423710e230b6Smaya		yyg->yy_buffer_stack_top = 0;
423810e230b6Smaya		return;
423910e230b6Smaya	}
424010e230b6Smaya
424110e230b6Smaya	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
424210e230b6Smaya
424310e230b6Smaya		/* Increase the buffer to prepare for a possible push. */
424410e230b6Smaya		yy_size_t grow_size = 8 /* arbitrary grow size */;
424510e230b6Smaya
424610e230b6Smaya		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
424710e230b6Smaya		yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc
424810e230b6Smaya								(yyg->yy_buffer_stack,
424910e230b6Smaya								num_to_alloc * sizeof(struct yy_buffer_state*)
425010e230b6Smaya								, yyscanner);
425110e230b6Smaya		if ( ! yyg->yy_buffer_stack )
425210e230b6Smaya			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
425310e230b6Smaya
425410e230b6Smaya		/* zero only the new slots.*/
425510e230b6Smaya		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
425610e230b6Smaya		yyg->yy_buffer_stack_max = num_to_alloc;
425710e230b6Smaya	}
425810e230b6Smaya}
425910e230b6Smaya
426010e230b6Smaya/** Setup the input buffer state to scan directly from a user-specified character buffer.
426110e230b6Smaya * @param base the character buffer
426210e230b6Smaya * @param size the size in bytes of the character buffer
426310e230b6Smaya * @param yyscanner The scanner object.
426410e230b6Smaya * @return the newly allocated buffer state object.
426510e230b6Smaya */
426610e230b6SmayaYY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
426710e230b6Smaya{
426810e230b6Smaya	YY_BUFFER_STATE b;
426910e230b6Smaya
427010e230b6Smaya	if ( size < 2 ||
427110e230b6Smaya	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
427210e230b6Smaya	     base[size-1] != YY_END_OF_BUFFER_CHAR )
427310e230b6Smaya		/* They forgot to leave room for the EOB's. */
427410e230b6Smaya		return NULL;
427510e230b6Smaya
427610e230b6Smaya	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
427710e230b6Smaya	if ( ! b )
427810e230b6Smaya		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
427910e230b6Smaya
428010e230b6Smaya	b->yy_buf_size = (size - 2);	/* "- 2" to take care of EOB's */
428110e230b6Smaya	b->yy_buf_pos = b->yy_ch_buf = base;
428210e230b6Smaya	b->yy_is_our_buffer = 0;
428310e230b6Smaya	b->yy_input_file = NULL;
428410e230b6Smaya	b->yy_n_chars = b->yy_buf_size;
428510e230b6Smaya	b->yy_is_interactive = 0;
428610e230b6Smaya	b->yy_at_bol = 1;
428710e230b6Smaya	b->yy_fill_buffer = 0;
428810e230b6Smaya	b->yy_buffer_status = YY_BUFFER_NEW;
428910e230b6Smaya
429010e230b6Smaya	yy_switch_to_buffer( b , yyscanner );
429110e230b6Smaya
429210e230b6Smaya	return b;
429310e230b6Smaya}
429410e230b6Smaya
429510e230b6Smaya/** Setup the input buffer state to scan a string. The next call to yylex() will
429610e230b6Smaya * scan from a @e copy of @a str.
429710e230b6Smaya * @param yystr a NUL-terminated string to scan
429810e230b6Smaya * @param yyscanner The scanner object.
429910e230b6Smaya * @return the newly allocated buffer state object.
430010e230b6Smaya * @note If you want to scan bytes that may contain NUL values, then use
430110e230b6Smaya *       yy_scan_bytes() instead.
430210e230b6Smaya */
430310e230b6SmayaYY_BUFFER_STATE yy_scan_string (const char * yystr , yyscan_t yyscanner)
430410e230b6Smaya{
430510e230b6Smaya
430610e230b6Smaya	return yy_scan_bytes( yystr, strlen(yystr) , yyscanner);
430710e230b6Smaya}
430810e230b6Smaya
430910e230b6Smaya/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
431010e230b6Smaya * scan from a @e copy of @a bytes.
431110e230b6Smaya * @param yybytes the byte buffer to scan
431210e230b6Smaya * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
431310e230b6Smaya * @param yyscanner The scanner object.
431410e230b6Smaya * @return the newly allocated buffer state object.
431510e230b6Smaya */
431610e230b6SmayaYY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, yy_size_t  _yybytes_len , yyscan_t yyscanner)
431710e230b6Smaya{
431810e230b6Smaya	YY_BUFFER_STATE b;
431910e230b6Smaya	char *buf;
432010e230b6Smaya	yy_size_t n;
432110e230b6Smaya	yy_size_t i;
432210e230b6Smaya
432310e230b6Smaya	/* Get memory for full buffer, including space for trailing EOB's. */
432410e230b6Smaya	n = (yy_size_t) (_yybytes_len + 2);
432510e230b6Smaya	buf = (char *) yyalloc( n , yyscanner );
432610e230b6Smaya	if ( ! buf )
432710e230b6Smaya		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
432810e230b6Smaya
432910e230b6Smaya	for ( i = 0; i < _yybytes_len; ++i )
433010e230b6Smaya		buf[i] = yybytes[i];
433110e230b6Smaya
433210e230b6Smaya	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
433310e230b6Smaya
433410e230b6Smaya	b = yy_scan_buffer( buf, n , yyscanner);
433510e230b6Smaya	if ( ! b )
433610e230b6Smaya		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
433710e230b6Smaya
433810e230b6Smaya	/* It's okay to grow etc. this buffer, and we should throw it
433910e230b6Smaya	 * away when we're done.
434010e230b6Smaya	 */
434110e230b6Smaya	b->yy_is_our_buffer = 1;
434210e230b6Smaya
434310e230b6Smaya	return b;
434410e230b6Smaya}
434510e230b6Smaya
434610e230b6Smaya#ifndef YY_EXIT_FAILURE
434710e230b6Smaya#define YY_EXIT_FAILURE 2
434810e230b6Smaya#endif
434910e230b6Smaya
435010e230b6Smayastatic void yynoreturn yy_fatal_error (const char* msg , yyscan_t yyscanner)
435110e230b6Smaya{
435210e230b6Smaya	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
435310e230b6Smaya	(void)yyg;
435410e230b6Smaya	fprintf( stderr, "%s\n", msg );
435510e230b6Smaya	exit( YY_EXIT_FAILURE );
435610e230b6Smaya}
435710e230b6Smaya
435810e230b6Smaya/* Redefine yyless() so it works in section 3 code. */
435910e230b6Smaya
436010e230b6Smaya#undef yyless
436110e230b6Smaya#define yyless(n) \
436210e230b6Smaya	do \
436310e230b6Smaya		{ \
436410e230b6Smaya		/* Undo effects of setting up yytext. */ \
436510e230b6Smaya        int yyless_macro_arg = (n); \
436610e230b6Smaya        YY_LESS_LINENO(yyless_macro_arg);\
436710e230b6Smaya		yytext[yyleng] = yyg->yy_hold_char; \
436810e230b6Smaya		yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
436910e230b6Smaya		yyg->yy_hold_char = *yyg->yy_c_buf_p; \
437010e230b6Smaya		*yyg->yy_c_buf_p = '\0'; \
437110e230b6Smaya		yyleng = yyless_macro_arg; \
437210e230b6Smaya		} \
437310e230b6Smaya	while ( 0 )
437410e230b6Smaya
437510e230b6Smaya/* Accessor  methods (get/set functions) to struct members. */
437610e230b6Smaya
437710e230b6Smaya/** Get the user-defined data for this scanner.
437810e230b6Smaya * @param yyscanner The scanner object.
437910e230b6Smaya */
438010e230b6SmayaYY_EXTRA_TYPE yyget_extra  (yyscan_t yyscanner)
438110e230b6Smaya{
438210e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
438310e230b6Smaya    return yyextra;
438410e230b6Smaya}
438510e230b6Smaya
438610e230b6Smaya/** Get the current line number.
438710e230b6Smaya * @param yyscanner The scanner object.
438810e230b6Smaya */
438910e230b6Smayaint yyget_lineno  (yyscan_t yyscanner)
439010e230b6Smaya{
439110e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
439210e230b6Smaya
439310e230b6Smaya        if (! YY_CURRENT_BUFFER)
439410e230b6Smaya            return 0;
439510e230b6Smaya
439610e230b6Smaya    return yylineno;
439710e230b6Smaya}
439810e230b6Smaya
439910e230b6Smaya/** Get the current column number.
440010e230b6Smaya * @param yyscanner The scanner object.
440110e230b6Smaya */
440210e230b6Smayaint yyget_column  (yyscan_t yyscanner)
440310e230b6Smaya{
440410e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
440510e230b6Smaya
440610e230b6Smaya        if (! YY_CURRENT_BUFFER)
440710e230b6Smaya            return 0;
440810e230b6Smaya
440910e230b6Smaya    return yycolumn;
441010e230b6Smaya}
441110e230b6Smaya
441210e230b6Smaya/** Get the input stream.
441310e230b6Smaya * @param yyscanner The scanner object.
441410e230b6Smaya */
441510e230b6SmayaFILE *yyget_in  (yyscan_t yyscanner)
441610e230b6Smaya{
441710e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
441810e230b6Smaya    return yyin;
441910e230b6Smaya}
442010e230b6Smaya
442110e230b6Smaya/** Get the output stream.
442210e230b6Smaya * @param yyscanner The scanner object.
442310e230b6Smaya */
442410e230b6SmayaFILE *yyget_out  (yyscan_t yyscanner)
442510e230b6Smaya{
442610e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
442710e230b6Smaya    return yyout;
442810e230b6Smaya}
442910e230b6Smaya
443010e230b6Smaya/** Get the length of the current token.
443110e230b6Smaya * @param yyscanner The scanner object.
443210e230b6Smaya */
443310e230b6Smayayy_size_t yyget_leng  (yyscan_t yyscanner)
443410e230b6Smaya{
443510e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
443610e230b6Smaya    return yyleng;
443710e230b6Smaya}
443810e230b6Smaya
443910e230b6Smaya/** Get the current token.
444010e230b6Smaya * @param yyscanner The scanner object.
444110e230b6Smaya */
444210e230b6Smaya
444310e230b6Smayachar *yyget_text  (yyscan_t yyscanner)
444410e230b6Smaya{
444510e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
444610e230b6Smaya    return yytext;
444710e230b6Smaya}
444810e230b6Smaya
444910e230b6Smaya/** Set the user-defined data. This data is never touched by the scanner.
445010e230b6Smaya * @param user_defined The data to be associated with this scanner.
445110e230b6Smaya * @param yyscanner The scanner object.
445210e230b6Smaya */
445310e230b6Smayavoid yyset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
445410e230b6Smaya{
445510e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
445610e230b6Smaya    yyextra = user_defined ;
445710e230b6Smaya}
445810e230b6Smaya
445910e230b6Smaya/** Set the current line number.
446010e230b6Smaya * @param _line_number line number
446110e230b6Smaya * @param yyscanner The scanner object.
446210e230b6Smaya */
446310e230b6Smayavoid yyset_lineno (int  _line_number , yyscan_t yyscanner)
446410e230b6Smaya{
446510e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
446610e230b6Smaya
446710e230b6Smaya        /* lineno is only valid if an input buffer exists. */
446810e230b6Smaya        if (! YY_CURRENT_BUFFER )
446910e230b6Smaya           YY_FATAL_ERROR( "yyset_lineno called with no buffer" );
447010e230b6Smaya
447110e230b6Smaya    yylineno = _line_number;
447210e230b6Smaya}
447310e230b6Smaya
447410e230b6Smaya/** Set the current column.
447510e230b6Smaya * @param _column_no column number
447610e230b6Smaya * @param yyscanner The scanner object.
447710e230b6Smaya */
447810e230b6Smayavoid yyset_column (int  _column_no , yyscan_t yyscanner)
447910e230b6Smaya{
448010e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
448110e230b6Smaya
448210e230b6Smaya        /* column is only valid if an input buffer exists. */
448310e230b6Smaya        if (! YY_CURRENT_BUFFER )
448410e230b6Smaya           YY_FATAL_ERROR( "yyset_column called with no buffer" );
448510e230b6Smaya
448610e230b6Smaya    yycolumn = _column_no;
448710e230b6Smaya}
448810e230b6Smaya
448910e230b6Smaya/** Set the input stream. This does not discard the current
449010e230b6Smaya * input buffer.
449110e230b6Smaya * @param _in_str A readable stream.
449210e230b6Smaya * @param yyscanner The scanner object.
449310e230b6Smaya * @see yy_switch_to_buffer
449410e230b6Smaya */
449510e230b6Smayavoid yyset_in (FILE *  _in_str , yyscan_t yyscanner)
449610e230b6Smaya{
449710e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
449810e230b6Smaya    yyin = _in_str ;
449910e230b6Smaya}
450010e230b6Smaya
450110e230b6Smayavoid yyset_out (FILE *  _out_str , yyscan_t yyscanner)
450210e230b6Smaya{
450310e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
450410e230b6Smaya    yyout = _out_str ;
450510e230b6Smaya}
450610e230b6Smaya
450710e230b6Smayaint yyget_debug  (yyscan_t yyscanner)
450810e230b6Smaya{
450910e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
451010e230b6Smaya    return yy_flex_debug;
451110e230b6Smaya}
451210e230b6Smaya
451310e230b6Smayavoid yyset_debug (int  _bdebug , yyscan_t yyscanner)
451410e230b6Smaya{
451510e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
451610e230b6Smaya    yy_flex_debug = _bdebug ;
451710e230b6Smaya}
451810e230b6Smaya
451910e230b6Smaya/* Accessor methods for yylval and yylloc */
452010e230b6Smaya
452110e230b6SmayaYYSTYPE * yyget_lval  (yyscan_t yyscanner)
452210e230b6Smaya{
452310e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
452410e230b6Smaya    return yylval;
452510e230b6Smaya}
452610e230b6Smaya
452710e230b6Smayavoid yyset_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
452810e230b6Smaya{
452910e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
453010e230b6Smaya    yylval = yylval_param;
453110e230b6Smaya}
453210e230b6Smaya
453310e230b6SmayaYYLTYPE *yyget_lloc  (yyscan_t yyscanner)
453410e230b6Smaya{
453510e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
453610e230b6Smaya    return yylloc;
453710e230b6Smaya}
453810e230b6Smaya
453910e230b6Smayavoid yyset_lloc (YYLTYPE *  yylloc_param , yyscan_t yyscanner)
454010e230b6Smaya{
454110e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
454210e230b6Smaya    yylloc = yylloc_param;
454310e230b6Smaya}
454410e230b6Smaya
454510e230b6Smaya/* User-visible API */
454610e230b6Smaya
454710e230b6Smaya/* yylex_init is special because it creates the scanner itself, so it is
454810e230b6Smaya * the ONLY reentrant function that doesn't take the scanner as the last argument.
454910e230b6Smaya * That's why we explicitly handle the declaration, instead of using our macros.
455010e230b6Smaya */
455110e230b6Smayaint yylex_init(yyscan_t* ptr_yy_globals)
455210e230b6Smaya{
455310e230b6Smaya    if (ptr_yy_globals == NULL){
455410e230b6Smaya        errno = EINVAL;
455510e230b6Smaya        return 1;
455610e230b6Smaya    }
455710e230b6Smaya
455810e230b6Smaya    *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL );
455910e230b6Smaya
456010e230b6Smaya    if (*ptr_yy_globals == NULL){
456110e230b6Smaya        errno = ENOMEM;
456210e230b6Smaya        return 1;
456310e230b6Smaya    }
456410e230b6Smaya
456510e230b6Smaya    /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
456610e230b6Smaya    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
456710e230b6Smaya
456810e230b6Smaya    return yy_init_globals ( *ptr_yy_globals );
456910e230b6Smaya}
457010e230b6Smaya
457110e230b6Smaya/* yylex_init_extra has the same functionality as yylex_init, but follows the
457210e230b6Smaya * convention of taking the scanner as the last argument. Note however, that
457310e230b6Smaya * this is a *pointer* to a scanner, as it will be allocated by this call (and
457410e230b6Smaya * is the reason, too, why this function also must handle its own declaration).
457510e230b6Smaya * The user defined value in the first argument will be available to yyalloc in
457610e230b6Smaya * the yyextra field.
457710e230b6Smaya */
457810e230b6Smayaint yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals )
457910e230b6Smaya{
458010e230b6Smaya    struct yyguts_t dummy_yyguts;
458110e230b6Smaya
458210e230b6Smaya    yyset_extra (yy_user_defined, &dummy_yyguts);
458310e230b6Smaya
458410e230b6Smaya    if (ptr_yy_globals == NULL){
458510e230b6Smaya        errno = EINVAL;
458610e230b6Smaya        return 1;
458710e230b6Smaya    }
458810e230b6Smaya
458910e230b6Smaya    *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
459010e230b6Smaya
459110e230b6Smaya    if (*ptr_yy_globals == NULL){
459210e230b6Smaya        errno = ENOMEM;
459310e230b6Smaya        return 1;
459410e230b6Smaya    }
459510e230b6Smaya
459610e230b6Smaya    /* By setting to 0xAA, we expose bugs in
459710e230b6Smaya    yy_init_globals. Leave at 0x00 for releases. */
459810e230b6Smaya    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
459910e230b6Smaya
460010e230b6Smaya    yyset_extra (yy_user_defined, *ptr_yy_globals);
460110e230b6Smaya
460210e230b6Smaya    return yy_init_globals ( *ptr_yy_globals );
460310e230b6Smaya}
460410e230b6Smaya
460510e230b6Smayastatic int yy_init_globals (yyscan_t yyscanner)
460610e230b6Smaya{
460710e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
460810e230b6Smaya    /* Initialization is the same as for the non-reentrant scanner.
460910e230b6Smaya     * This function is called from yylex_destroy(), so don't allocate here.
461010e230b6Smaya     */
461110e230b6Smaya
461210e230b6Smaya    yyg->yy_buffer_stack = NULL;
461310e230b6Smaya    yyg->yy_buffer_stack_top = 0;
461410e230b6Smaya    yyg->yy_buffer_stack_max = 0;
461510e230b6Smaya    yyg->yy_c_buf_p = NULL;
461610e230b6Smaya    yyg->yy_init = 0;
461710e230b6Smaya    yyg->yy_start = 0;
461810e230b6Smaya
461910e230b6Smaya    yyg->yy_start_stack_ptr = 0;
462010e230b6Smaya    yyg->yy_start_stack_depth = 0;
462110e230b6Smaya    yyg->yy_start_stack =  NULL;
462210e230b6Smaya
462310e230b6Smaya/* Defined in main.c */
462410e230b6Smaya#ifdef YY_STDINIT
462510e230b6Smaya    yyin = stdin;
462610e230b6Smaya    yyout = stdout;
462710e230b6Smaya#else
462810e230b6Smaya    yyin = NULL;
462910e230b6Smaya    yyout = NULL;
463010e230b6Smaya#endif
463110e230b6Smaya
463210e230b6Smaya    /* For future reference: Set errno on error, since we are called by
463310e230b6Smaya     * yylex_init()
463410e230b6Smaya     */
463510e230b6Smaya    return 0;
463610e230b6Smaya}
463710e230b6Smaya
463810e230b6Smaya/* yylex_destroy is for both reentrant and non-reentrant scanners. */
463910e230b6Smayaint yylex_destroy  (yyscan_t yyscanner)
464010e230b6Smaya{
464110e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
464210e230b6Smaya
464310e230b6Smaya    /* Pop the buffer stack, destroying each element. */
464410e230b6Smaya	while(YY_CURRENT_BUFFER){
464510e230b6Smaya		yy_delete_buffer( YY_CURRENT_BUFFER , yyscanner );
464610e230b6Smaya		YY_CURRENT_BUFFER_LVALUE = NULL;
464710e230b6Smaya		yypop_buffer_state(yyscanner);
464810e230b6Smaya	}
464910e230b6Smaya
465010e230b6Smaya	/* Destroy the stack itself. */
465110e230b6Smaya	yyfree(yyg->yy_buffer_stack , yyscanner);
465210e230b6Smaya	yyg->yy_buffer_stack = NULL;
465310e230b6Smaya
465410e230b6Smaya    /* Destroy the start condition stack. */
465510e230b6Smaya        yyfree( yyg->yy_start_stack , yyscanner );
465610e230b6Smaya        yyg->yy_start_stack = NULL;
465710e230b6Smaya
465810e230b6Smaya    /* Reset the globals. This is important in a non-reentrant scanner so the next time
465910e230b6Smaya     * yylex() is called, initialization will occur. */
466010e230b6Smaya    yy_init_globals( yyscanner);
466110e230b6Smaya
466210e230b6Smaya    /* Destroy the main struct (reentrant only). */
466310e230b6Smaya    yyfree ( yyscanner , yyscanner );
466410e230b6Smaya    yyscanner = NULL;
466510e230b6Smaya    return 0;
466610e230b6Smaya}
466710e230b6Smaya
466810e230b6Smaya/*
466910e230b6Smaya * Internal utility routines.
467010e230b6Smaya */
467110e230b6Smaya
467210e230b6Smaya#ifndef yytext_ptr
467310e230b6Smayastatic void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner)
467410e230b6Smaya{
467510e230b6Smaya	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
467610e230b6Smaya	(void)yyg;
467710e230b6Smaya
467810e230b6Smaya	int i;
467910e230b6Smaya	for ( i = 0; i < n; ++i )
468010e230b6Smaya		s1[i] = s2[i];
468110e230b6Smaya}
468210e230b6Smaya#endif
468310e230b6Smaya
468410e230b6Smaya#ifdef YY_NEED_STRLEN
468510e230b6Smayastatic int yy_flex_strlen (const char * s , yyscan_t yyscanner)
468610e230b6Smaya{
468710e230b6Smaya	int n;
468810e230b6Smaya	for ( n = 0; s[n]; ++n )
468910e230b6Smaya		;
469010e230b6Smaya
469110e230b6Smaya	return n;
469210e230b6Smaya}
469310e230b6Smaya#endif
469410e230b6Smaya
469510e230b6Smayavoid *yyalloc (yy_size_t  size , yyscan_t yyscanner)
469610e230b6Smaya{
469710e230b6Smaya	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
469810e230b6Smaya	(void)yyg;
469910e230b6Smaya	return malloc(size);
470010e230b6Smaya}
470110e230b6Smaya
470210e230b6Smayavoid *yyrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
470310e230b6Smaya{
470410e230b6Smaya	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
470510e230b6Smaya	(void)yyg;
470610e230b6Smaya
470710e230b6Smaya	/* The cast to (char *) in the following accommodates both
470810e230b6Smaya	 * implementations that use char* generic pointers, and those
470910e230b6Smaya	 * that use void* generic pointers.  It works with the latter
471010e230b6Smaya	 * because both ANSI C and C++ allow castless assignment from
471110e230b6Smaya	 * any pointer type to void*, and deal with argument conversions
471210e230b6Smaya	 * as though doing an assignment.
471310e230b6Smaya	 */
471410e230b6Smaya	return realloc(ptr, size);
471510e230b6Smaya}
471610e230b6Smaya
471710e230b6Smayavoid yyfree (void * ptr , yyscan_t yyscanner)
471810e230b6Smaya{
471910e230b6Smaya	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
472010e230b6Smaya	(void)yyg;
472110e230b6Smaya	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
472210e230b6Smaya}
472310e230b6Smaya
472410e230b6Smaya#define YYTABLES_NAME "yytables"
472510e230b6Smaya
472696c5ddc4Srjs#line 759 "../src/compiler/glsl/glsl_lexer.ll"
472710e230b6Smaya
472810e230b6Smaya
472910e230b6Smayaint
473010e230b6Smayaclassify_identifier(struct _mesa_glsl_parse_state *state, const char *name,
473110e230b6Smaya                    unsigned name_len, YYSTYPE *output)
473210e230b6Smaya{
473310e230b6Smaya   /* We're not doing linear_strdup here, to avoid an implicit call on
473410e230b6Smaya    * strlen() for the length of the string, as this is already found by flex
473510e230b6Smaya    * and stored in yyleng
473610e230b6Smaya    */
473710e230b6Smaya   char *id = (char *) linear_alloc_child(state->linalloc, name_len + 1);
473810e230b6Smaya   memcpy(id, name, name_len + 1);
473910e230b6Smaya   output->identifier = id;
474010e230b6Smaya
474110e230b6Smaya   if (state->is_field) {
474210e230b6Smaya      state->is_field = false;
474310e230b6Smaya      return FIELD_SELECTION;
474410e230b6Smaya   }
474510e230b6Smaya   if (state->symbols->get_variable(name) || state->symbols->get_function(name))
474610e230b6Smaya      return IDENTIFIER;
474710e230b6Smaya   else if (state->symbols->get_type(name))
474810e230b6Smaya      return TYPE_IDENTIFIER;
474910e230b6Smaya   else
475010e230b6Smaya      return NEW_IDENTIFIER;
475110e230b6Smaya}
475210e230b6Smaya
475310e230b6Smayavoid
475410e230b6Smaya_mesa_glsl_lexer_ctor(struct _mesa_glsl_parse_state *state, const char *string)
475510e230b6Smaya{
475610e230b6Smaya   yylex_init_extra(state, & state->scanner);
475710e230b6Smaya   yy_scan_string(string, state->scanner);
475810e230b6Smaya}
475910e230b6Smaya
476010e230b6Smayavoid
476110e230b6Smaya_mesa_glsl_lexer_dtor(struct _mesa_glsl_parse_state *state)
476210e230b6Smaya{
476310e230b6Smaya   yylex_destroy(state->scanner);
476410e230b6Smaya}
476510e230b6Smaya
4766