glsl_lexer.cpp revision 10e230b6
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
26410e230b6Smaya/*	$NetBSD: glsl_lexer.cpp,v 1.1 2019/09/24 19:21:11 maya 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;
58110e230b6Smaya#define YY_NUM_RULES 277
58210e230b6Smaya#define YY_END_OF_BUFFER 278
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	};
59010e230b6Smayastatic const flex_int16_t yy_accept[1096] =
59110e230b6Smaya    {   0,
59210e230b6Smaya        0,    0,   18,   18,    0,    0,  278,  276,    1,   25,
59310e230b6Smaya      276,  276,  276,  276,  276,  276,  275,  276,  182,  180,
59410e230b6Smaya      276,  276,  276,  274,  276,  274,  274,  274,  274,  274,
59510e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
59610e230b6Smaya      274,  274,  274,  274,  274,  276,    1,  276,   24,   18,
59710e230b6Smaya       23,   24,   22,   21,   19,   20,   16,   15,    1,  164,
59810e230b6Smaya      173,  165,  176,  170,  159,  172,  160,  179,  184,  171,
59910e230b6Smaya      185,  182,    0,    0,  182,  182,    0,  182,  180,  180,
60010e230b6Smaya      180,  180,  168,  161,  163,  162,  169,  274,  177,  167,
60110e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
60210e230b6Smaya
60310e230b6Smaya      274,  274,  274,  274,   34,  274,  274,  274,  274,  274,
60410e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,   38,
60510e230b6Smaya      274,  274,   65,  274,  274,  274,  274,  274,  274,  274,
60610e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
60710e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
60810e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  178,  166,
60910e230b6Smaya        1,    0,    0,    2,    0,    0,    0,    0,   18,   17,
61010e230b6Smaya       21,   20,    0,  184,    0,    0,  183,    0,  185,    0,
61110e230b6Smaya        0,    0,  186,  181,  174,  175,  274,  193,  274,  274,
61210e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
61310e230b6Smaya
61410e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
61510e230b6Smaya      274,  274,  274,   37,  274,  274,  274,  274,  274,  274,
61610e230b6Smaya      274,  274,  274,  274,  274,   30,  274,  274,  274,  274,
61710e230b6Smaya      274,  274,  274,  274,  274,  274,  274,   66,  274,  274,
61810e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
61910e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
62010e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
62110e230b6Smaya      274,  274,  274,  274,  274,    0,    0,    0,    0,   17,
62210e230b6Smaya        0,  184,  188,    0,  183,    0,    0,    0,  185,  189,
62310e230b6Smaya      186,    0,    0,  181,  181,  181,  274,  274,  274,   28,
62410e230b6Smaya
62510e230b6Smaya      274,  274,  274,  251,  244,  274,  274,  274,  274,  274,
62610e230b6Smaya      274,  274,  274,  274,  274,  274,   36,  196,  274,  274,
62710e230b6Smaya      274,  274,   73,  274,  274,  201,  214,  274,  274,  274,
62810e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
62910e230b6Smaya      274,  211,  247,   53,   54,   55,  274,  274,  274,  274,
63010e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
63110e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
63210e230b6Smaya      274,  274,  199,  191,  274,  274,  274,   31,  274,  274,
63310e230b6Smaya      274,  274,  274,  274,  274,   50,   51,   52,  157,  274,
63410e230b6Smaya      274,  274,    0,    0,    0,    0,    0,  183,  187,  190,
63510e230b6Smaya
63610e230b6Smaya      274,  274,  274,   32,  274,   41,   42,   43,  274,  194,
63710e230b6Smaya      274,  274,   27,  274,  274,  274,  225,  226,  227,  274,
63810e230b6Smaya      222,  223,  224,  274,  192,  274,  215,   29,  237,  238,
63910e230b6Smaya      239,  249,  219,  220,  221,  274,  274,  274,  274,   67,
64010e230b6Smaya      217,  274,  274,  274,  274,   44,   45,   46,  274,  274,
64110e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,   76,
64210e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,  212,
64310e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
64410e230b6Smaya      274,  274,  274,  195,  274,  274,  246,   47,   48,   49,
64510e230b6Smaya      274,  274,   35,  274,    0,    0,    0,    0,  254,  274,
64610e230b6Smaya
64710e230b6Smaya      274,   69,  274,  274,  252,  274,  274,  274,  274,  274,
64810e230b6Smaya      274,  213,  208,  257,  274,  274,  274,  274,  274,  274,
64910e230b6Smaya      274,  204,  274,  274,  274,  274,  158,   56,   57,   58,
65010e230b6Smaya       59,   60,   61,   62,   63,   64,  274,  274,  274,  274,
65110e230b6Smaya      218,  200,  274,  274,  206,  274,  274,  274,   40,  274,
65210e230b6Smaya      264,  155,  243,   74,  207,  156,  274,  255,  202,  274,
65310e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
65410e230b6Smaya        0,    0,    0,    0,  274,  274,  274,  274,  274,  203,
65510e230b6Smaya       39,  228,  229,  230,  231,  232,  233,  234,  235,  236,
65610e230b6Smaya      274,  267,  268,  269,  274,  274,  274,  274,  274,  112,
65710e230b6Smaya
65810e230b6Smaya      113,  114,  274,  274,  266,  274,  274,  274,  248,  274,
65910e230b6Smaya      274,  274,  274,  111,  274,  274,  274,  274,  274,  274,
66010e230b6Smaya      274,  274,  197,  271,  272,  273,  274,  274,  274,  274,
66110e230b6Smaya      274,  274,   68,  274,  274,   70,  274,  274,    0,    0,
66210e230b6Smaya        0,    0,    0,  274,  274,   71,  149,   33,  209,  123,
66310e230b6Smaya      124,  125,  274,  274,  274,  274,  274,  274,  274,  274,
66410e230b6Smaya      274,  274,  274,  274,  274,  274,  205,  274,  274,  274,
66510e230b6Smaya      152,  263,  151,  274,  274,  274,  274,  274,  274,  274,
66610e230b6Smaya      274,  198,  134,  135,  136,  274,  274,  270,  216,  274,
66710e230b6Smaya      150,  274,    0,    0,    6,    0,    0,    0,   14,    3,
66810e230b6Smaya
66910e230b6Smaya      274,   26,  274,  274,  274,  274,  274,  274,  274,  274,
67010e230b6Smaya      274,  121,  274,  274,  274,  116,  210,   72,  274,  274,
67110e230b6Smaya      274,  274,  274,  245,  274,  253,  250,  258,   77,   78,
67210e230b6Smaya       79,  274,  274,  274,  274,  274,  274,  274,  274,  274,
67310e230b6Smaya      274,  274,  274,  274,  274,  274,  153,    0,    0,    0,
67410e230b6Smaya        0,    0,    0,    0,    0,  274,  274,  274,  132,  274,
67510e230b6Smaya      274,  127,  274,  274,  274,  274,  274,  274,  274,  274,
67610e230b6Smaya       88,   89,   90,  274,  274,  274,  274,  274,  274,  274,
67710e230b6Smaya      274,  274,  274,  274,  274,  274,  265,  274,  274,  143,
67810e230b6Smaya      274,  274,  138,   94,   95,   96,  274,  274,    4,    0,
67910e230b6Smaya
68010e230b6Smaya        5,    0,    0,    0,    0,    0,    0,    0,  154,  274,
68110e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,  115,
68210e230b6Smaya      274,  117,  274,  274,  274,  274,  274,  274,  274,  274,
68310e230b6Smaya      274,  274,  274,  100,  274,  274,  274,  274,   80,  274,
68410e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
68510e230b6Smaya      274,  274,    0,    0,    0,    0,    0,  274,  274,  274,
68610e230b6Smaya      126,  128,  274,  118,  274,  119,  274,  274,  274,  274,
68710e230b6Smaya      274,  101,  274,  274,   91,  274,  274,  274,  274,  274,
68810e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
68910e230b6Smaya      137,  139,  274,  274,  274,  102,  274,  274,   97,    0,
69010e230b6Smaya
69110e230b6Smaya        0,    0,    0,  129,  130,  274,  274,  274,  145,  274,
69210e230b6Smaya      274,  146,  274,  274,  274,  274,  274,  274,  274,   75,
69310e230b6Smaya      274,  274,  274,  274,  240,  274,  241,  256,  274,  274,
69410e230b6Smaya      274,  140,  141,  274,  274,  274,  274,  274,  274,  274,
69510e230b6Smaya      274,    0,    0,    0,    0,  274,  274,  274,  274,  122,
69610e230b6Smaya      120,  274,  274,  274,  259,  261,  274,   81,  274,   82,
69710e230b6Smaya      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
69810e230b6Smaya      274,  260,  262,  274,    0,    0,    0,    0,    0,  133,
69910e230b6Smaya      131,  274,  274,   92,   93,  274,  274,  274,   83,  274,
70010e230b6Smaya      274,  274,   84,  274,  274,  274,  144,  142,   98,   99,
70110e230b6Smaya
70210e230b6Smaya      274,  274,    0,    0,    0,    0,    0,  274,  274,  274,
70310e230b6Smaya      274,  274,  274,  103,  274,  106,  274,  274,  274,  274,
70410e230b6Smaya        0,    0,    0,    0,    0,    0,  274,  274,  104,  107,
70510e230b6Smaya      274,  274,  274,  274,   85,  274,  105,  108,    0,    0,
70610e230b6Smaya        0,    7,    0,    0,    0,    0,  147,  148,  274,  274,
70710e230b6Smaya      274,  274,  110,    0,    0,    8,    0,    0,    0,    0,
70810e230b6Smaya      274,  274,  242,  274,    0,    0,    0,    0,    0,   11,
70910e230b6Smaya       86,   87,  274,    0,    0,    0,    9,    0,   12,  274,
71010e230b6Smaya        0,    0,   10,  109,    0,    0,    0,    0,    0,    0,
71110e230b6Smaya        0,    0,    0,   13,    0
71210e230b6Smaya
71310e230b6Smaya    } ;
71410e230b6Smaya
71510e230b6Smayastatic const YY_CHAR yy_ec[256] =
71610e230b6Smaya    {   0,
71710e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
71810e230b6Smaya        1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
71910e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
72010e230b6Smaya        1,    2,    5,    1,    6,    1,    7,    8,    1,    9,
72110e230b6Smaya       10,   11,   12,    1,   13,   14,   15,   16,   17,   18,
72210e230b6Smaya       19,   20,   21,   22,   21,   23,   23,   24,    1,   25,
72310e230b6Smaya       26,   27,    1,    1,   28,   29,   30,   31,   32,   33,
72410e230b6Smaya       34,   35,   35,   35,   35,   36,   37,   35,   38,   35,
72510e230b6Smaya       35,   39,   40,   41,   42,   35,   35,   43,   35,   35,
72610e230b6Smaya        1,    1,    1,   44,   45,    1,   46,   47,   48,   49,
72710e230b6Smaya
72810e230b6Smaya       50,   51,   52,   53,   54,   55,   56,   57,   58,   59,
72910e230b6Smaya       60,   61,   35,   62,   63,   64,   65,   66,   67,   68,
73010e230b6Smaya       69,   70,    1,   71,    1,    1,    1,    1,    1,    1,
73110e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
73210e230b6Smaya        1,    1,    1,    1,    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
73910e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
74010e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
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
74510e230b6Smaya    } ;
74610e230b6Smaya
74710e230b6Smayastatic const YY_CHAR yy_meta[72] =
74810e230b6Smaya    {   0,
74910e230b6Smaya        1,    2,    3,    1,    1,    1,    1,    1,    1,    1,
75010e230b6Smaya        1,    1,    1,    4,    1,    5,    5,    5,    5,    5,
75110e230b6Smaya        5,    5,    6,    1,    1,    1,    1,    7,    7,    7,
75210e230b6Smaya        7,    8,    9,   10,   10,   11,   10,   10,   10,   10,
75310e230b6Smaya       10,   10,   12,    1,   10,    7,    7,    7,    7,    8,
75410e230b6Smaya        9,   10,   10,   10,   10,   10,   11,   10,   10,   10,
75510e230b6Smaya       10,   10,   10,   10,   10,   10,   10,   12,   10,   10,
75610e230b6Smaya        1
75710e230b6Smaya    } ;
75810e230b6Smaya
75910e230b6Smayastatic const flex_int16_t yy_base[1110] =
76010e230b6Smaya    {   0,
76110e230b6Smaya        0,   70,   76,    0, 1543, 1542, 1544, 1547,   71, 1547,
76210e230b6Smaya     1517, 1516,  140, 1515,  137,  138,  136, 1514,  153,  208,
76310e230b6Smaya      135, 1513,  151,    0,  124,  117,  122,  133,  147,  141,
76410e230b6Smaya      188, 1478,  140,  198,  156,  158,  173, 1472,  197,  186,
76510e230b6Smaya      214,  213,  217,  191,  161,  206,  282,  267, 1547,  213,
76610e230b6Smaya     1547, 1521, 1547,  273, 1547,    0, 1547, 1547,  251, 1547,
76710e230b6Smaya     1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,  318, 1547,
76810e230b6Smaya      360,  231,  271,  288, 1547, 1499,    0, 1477,    0, 1547,
76910e230b6Smaya     1497, 1475, 1505, 1547, 1547, 1547, 1504,    0, 1547, 1547,
77010e230b6Smaya     1465, 1470,  238, 1467, 1476, 1474, 1474, 1460, 1463, 1475,
77110e230b6Smaya
77210e230b6Smaya      260, 1469, 1456, 1472, 1452, 1466, 1452, 1449, 1449, 1455,
77310e230b6Smaya      255,  269, 1449, 1460, 1445, 1451, 1455, 1456, 1485,    0,
77410e230b6Smaya     1446, 1457,  292, 1456, 1451, 1431,  132, 1435, 1449, 1439,
77510e230b6Smaya      266, 1432,  268, 1445, 1447,  279, 1426, 1434,  285, 1421,
77610e230b6Smaya     1430,  298,  300, 1435, 1430, 1433, 1421, 1424, 1464,  153,
77710e230b6Smaya      184,  268, 1433, 1420, 1433,  305, 1426, 1425, 1547, 1547,
77810e230b6Smaya      361,  368,  370, 1547, 1410, 1423, 1414, 1425,  344,    0,
77910e230b6Smaya      368,    0,  382, 1547, 1441, 1422,  390,  432, 1547, 1439,
78010e230b6Smaya     1420,  440,  373,  428, 1547, 1547, 1416,    0, 1411, 1406,
78110e230b6Smaya     1410, 1420, 1414, 1416,  357, 1399, 1399, 1411, 1402,  349,
78210e230b6Smaya
78310e230b6Smaya     1413, 1410, 1393, 1409, 1407, 1404, 1395, 1402, 1388, 1386,
78410e230b6Smaya     1399, 1384, 1401,    0, 1398, 1385, 1393, 1390, 1394, 1375,
78510e230b6Smaya     1394, 1387, 1384, 1372, 1371,  392, 1389, 1376, 1385, 1372,
78610e230b6Smaya     1379, 1369,  419, 1375, 1378, 1368, 1376, 1364, 1368, 1359,
78710e230b6Smaya     1374, 1373, 1363, 1370,  355, 1353, 1372, 1355, 1353, 1352,
78810e230b6Smaya     1363, 1352, 1347, 1345, 1347, 1358, 1343, 1345, 1342, 1354,
78910e230b6Smaya     1353, 1336, 1355, 1336,  304, 1345, 1340, 1338, 1348, 1326,
79010e230b6Smaya      447, 1345, 1347, 1335, 1327, 1326, 1330, 1342, 1325,    0,
79110e230b6Smaya      455,  446, 1547,  488, 1547, 1353, 1334,  496,  487, 1547,
79210e230b6Smaya     1547, 1351, 1332, 1547, 1346, 1324, 1314, 1325, 1324,    0,
79310e230b6Smaya
79410e230b6Smaya     1321, 1326,  468,    0,    0, 1313, 1311, 1311, 1312, 1307,
79510e230b6Smaya     1316, 1304, 1322,  471, 1310,  476,    0,    0, 1304, 1315,
79610e230b6Smaya     1314, 1314,    0, 1298,  506,    0,    0, 1300,  509, 1310,
79710e230b6Smaya     1307, 1308, 1298, 1292, 1291, 1334, 1291, 1290, 1290,  512,
79810e230b6Smaya     1285,    0,    0, 1281, 1280, 1279, 1281, 1282, 1287, 1281,
79910e230b6Smaya     1277, 1291, 1286, 1286, 1284, 1283, 1276, 1270, 1272, 1271,
80010e230b6Smaya     1274, 1274, 1280, 1265, 1268, 1263, 1272, 1277, 1264, 1261,
80110e230b6Smaya     1274, 1264,    0,    0, 1271, 1269, 1266, 1295, 1256, 1256,
80210e230b6Smaya     1262, 1252, 1260,  515, 1257,    0,    0,    0,    0, 1246,
80310e230b6Smaya     1259, 1258, 1257, 1256, 1253, 1241,  529,  503, 1547, 1547,
80410e230b6Smaya
80510e230b6Smaya     1253, 1254, 1254,    0, 1238,    0,    0,    0, 1239,    0,
80610e230b6Smaya     1248, 1238,    0, 1237, 1238, 1232, 1225, 1224, 1223, 1240,
80710e230b6Smaya        0,    0,    0, 1230,    0, 1226,    0,    0,    0,    0,
80810e230b6Smaya        0,    0,    0,    0,    0, 1239, 1236,  538, 1235,    0,
80910e230b6Smaya        0, 1239, 1232, 1228, 1224,    0,    0,    0, 1216,  522,
81010e230b6Smaya      543,  546, 1221, 1217, 1223, 1213, 1211, 1225, 1209,    0,
81110e230b6Smaya     1209, 1223, 1211, 1207, 1214, 1208, 1220, 1215, 1215,    0,
81210e230b6Smaya     1212, 1209, 1213, 1196, 1194, 1197, 1204, 1210, 1205, 1206,
81310e230b6Smaya     1203, 1232, 1189,    0, 1191, 1192,    0,    0,    0,    0,
81410e230b6Smaya     1189, 1193,    0, 1186, 1186, 1242, 1185, 1188,    0, 1196,
81510e230b6Smaya
81610e230b6Smaya     1175,    0, 1185, 1179,    0, 1172, 1172, 1186,  551,  554,
81710e230b6Smaya      557,    0, 1188,    0,  560,  564, 1202, 1201, 1200, 1165,
81810e230b6Smaya     1164,    0, 1164, 1181, 1180, 1175,    0,    0,    0,    0,
81910e230b6Smaya        0,    0,    0,    0,    0,    0, 1163, 1177, 1163, 1160,
82010e230b6Smaya        0,    0, 1166,  378,    0, 1162, 1170, 1169,    0, 1161,
82110e230b6Smaya     1153,    0,    0,    0,    0,    0, 1150,    0,    0, 1149,
82210e230b6Smaya     1161,  566,  570, 1166, 1152, 1159, 1158, 1155, 1149, 1146,
82310e230b6Smaya     1141,  588, 1157, 1142, 1136, 1136, 1150, 1134, 1147,    0,
82410e230b6Smaya        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
82510e230b6Smaya     1139,    0,    0,    0, 1164, 1163, 1162, 1127, 1126,  440,
82610e230b6Smaya
82710e230b6Smaya      575,    0, 1139, 1142,    0, 1140, 1128, 1124,    0, 1137,
82810e230b6Smaya     1134, 1133, 1122,    0, 1121, 1111, 1129, 1114, 1117,  599,
82910e230b6Smaya     1122, 1125,    0,    0,    0,    0, 1143, 1142, 1141, 1106,
83010e230b6Smaya     1105, 1105,    0, 1119, 1105,    0, 1116, 1108, 1110,  589,
83110e230b6Smaya      617, 1161, 1103, 1107, 1110,    0,    0,    0,    0, 1131,
83210e230b6Smaya      585,    0, 1107, 1110, 1094, 1102, 1092, 1113, 1102, 1098,
83310e230b6Smaya     1099, 1099, 1098, 1083,  624, 1096,    0, 1097, 1085, 1084,
83410e230b6Smaya        0,    0,    0, 1080, 1110, 1109, 1108, 1073, 1072, 1068,
83510e230b6Smaya     1076,    0, 1106,  619,    0, 1082, 1085,    0,    0,  631,
83610e230b6Smaya        0, 1062, 1070,  649, 1547,  660,    0,  671,  657, 1547,
83710e230b6Smaya
83810e230b6Smaya     1070,    0, 1066, 1065, 1086, 1075, 1073, 1073, 1060, 1075,
83910e230b6Smaya     1058, 1091, 1070, 1071, 1066, 1087,    0,    0, 1083, 1082,
84010e230b6Smaya     1081, 1046, 1045,    0, 1045,    0,    0,    0,  441,  668,
84110e230b6Smaya     1069, 1056, 1059, 1035, 1048, 1035, 1034, 1055, 1044, 1041,
84210e230b6Smaya     1033, 1051, 1050, 1049, 1014, 1013,    0, 1017,  642,  709,
84310e230b6Smaya      481, 1031, 1020, 1008, 1019,  999, 1000,  996, 1028, 1007,
84410e230b6Smaya     1001, 1021, 1002,  987,  981,  931,  928,  942,  928,  927,
84510e230b6Smaya      960,  647,    0,  936,  939,  931,  922,  930,  920,  941,
84610e230b6Smaya      930,  926,  928,  926,  926,  925,    0,  911,  910,  943,
84710e230b6Smaya      922,  919,  940,  939,  676,    0,  913,  916, 1547,  496,
84810e230b6Smaya
84910e230b6Smaya     1547,  717,    0,  738,  930,  913,   10,  100,    0,  146,
85010e230b6Smaya      189,  225,  233,  264,  295,  297,  314,  328,  346,    0,
85110e230b6Smaya      356,    0,  371,  373,  381,  406,  442,  451,  471,  456,
85210e230b6Smaya      475,  497,  491,  530,  511,  549,  548,  547,  655,  536,
85310e230b6Smaya      555,  556,  559,  559,  563,  564,  565,  568,  606,  605,
85410e230b6Smaya      613,  648,  697,  667,  637,  649,  650,  645,  647,  656,
85510e230b6Smaya        0,    0,  659,  682,  656,  702,  697,  677,  699,  684,
85610e230b6Smaya      685,  720,  701,  700,  723,  702,  707,  713,  717,  702,
85710e230b6Smaya      701,  717,  703,  706,  707,  717,  712,  703,  704,  712,
85810e230b6Smaya        0,    0,  713,  714,  715,  750,  731,  730,  753,  746,
85910e230b6Smaya
86010e230b6Smaya      731,  726,  731,    0,    0,  740,  741,  735,    0,  736,
86110e230b6Smaya      721,    0,  722,  746,  747,  732,  731,  734,  735,    0,
86210e230b6Smaya      729,  739,  731,  739,  762,  743,    0,    0,  742,  759,
86310e230b6Smaya      760,    0,    0,  761,  762,  763,  764,  749,  748,  751,
86410e230b6Smaya      752,  813,  814,  763,  759,  750,  751,  775,  776,    0,
86510e230b6Smaya        0,  755,  756,  764,    0,    0,  765,  788,  762,  790,
86610e230b6Smaya      785,  779,  766,  788,  786,  779,  768,  769,  770,  771,
86710e230b6Smaya      779,    0,    0,  780,  841,  842,  843,  776,  795,    0,
86810e230b6Smaya        0,  799,  800,    0,    0,  804,  806,  800,    0,  801,
86910e230b6Smaya      786,  810,    0,  788,  798,  821,    0,    0,    0,    0,
87010e230b6Smaya
87110e230b6Smaya      814,  815,  803,  861,  813,  815,  864,  807,  808,  800,
87210e230b6Smaya      801,  825,  828,    0,  826,  836,  810,  846,  810,  811,
87310e230b6Smaya      815,  831,  881,  883,  884,  882,  820,  821,    0,    0,
87410e230b6Smaya      840,  841,  834,  843,    0,  857,    0,    0,  852,  897,
87510e230b6Smaya      898, 1547,  900,  899,  902,  854,    0,    0,  846,  850,
87610e230b6Smaya      844,  866,    0,  852,  913, 1547,  914,  866,  867,  917,
87710e230b6Smaya      853,  855,    0,  875,  872,  877,  927,  928,  929, 1547,
87810e230b6Smaya        0,    0,  872,  887,  933,  934, 1547,  938, 1547,  867,
87910e230b6Smaya      882,  943, 1547,    0,  882,  945,  947,  948,  949,  895,
88010e230b6Smaya      898,  955,  956, 1547, 1547,  995, 1003, 1011, 1020, 1024,
88110e230b6Smaya
88210e230b6Smaya     1033, 1041, 1048, 1055, 1062, 1072, 1080, 1088, 1096
88310e230b6Smaya    } ;
88410e230b6Smaya
88510e230b6Smayastatic const flex_int16_t yy_def[1110] =
88610e230b6Smaya    {   0,
88710e230b6Smaya     1095,    1, 1095,    3, 1096, 1096, 1095, 1095, 1095, 1095,
88810e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
88910e230b6Smaya     1095, 1095, 1095, 1097, 1095, 1097, 1097, 1097, 1097, 1097,
89010e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
89110e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1095, 1095, 1095, 1095, 1095,
89210e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1098, 1095, 1095, 1095, 1095,
89310e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
89410e230b6Smaya     1095,   19, 1099, 1095, 1095, 1095, 1100, 1095,   20, 1095,
89510e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1097, 1095, 1095,
89610e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
89710e230b6Smaya
89810e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
89910e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
90010e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
90110e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
90210e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
90310e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1095, 1095,
90410e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1101,
90510e230b6Smaya     1095, 1098, 1095, 1095, 1095, 1095,   71, 1095, 1095, 1095,
90610e230b6Smaya     1095, 1095, 1102, 1100, 1095, 1095, 1097, 1097, 1097, 1097,
90710e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
90810e230b6Smaya
90910e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
91010e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
91110e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
91210e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
91310e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
91410e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
91510e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
91610e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1095, 1095, 1095, 1095, 1101,
91710e230b6Smaya     1095, 1103, 1095, 1095, 1095, 1095, 1095, 1095, 1104, 1095,
91810e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1097, 1097, 1097, 1097,
91910e230b6Smaya
92010e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
92110e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
92210e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
92310e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
92410e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
92510e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
92610e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
92710e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
92810e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
92910e230b6Smaya     1097, 1097, 1095, 1095, 1095, 1095, 1095, 1105, 1095, 1095,
93010e230b6Smaya
93110e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
93210e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
93310e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
93410e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
93510e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
93610e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
93710e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
93810e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
93910e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
94010e230b6Smaya     1097, 1097, 1097, 1097, 1095, 1095, 1095, 1095, 1097, 1097,
94110e230b6Smaya
94210e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
94310e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
94410e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
94510e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
94610e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
94710e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
94810e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
94910e230b6Smaya     1095, 1095, 1095, 1095, 1097, 1097, 1097, 1097, 1097, 1097,
95010e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
95110e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
95210e230b6Smaya
95310e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
95410e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
95510e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
95610e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1095, 1106,
95710e230b6Smaya     1095, 1095, 1095, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
95810e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
95910e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
96010e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
96110e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
96210e230b6Smaya     1097, 1097, 1095, 1095, 1095, 1095, 1107, 1095, 1095, 1095,
96310e230b6Smaya
96410e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
96510e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
96610e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
96710e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
96810e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1095, 1108, 1095,
96910e230b6Smaya     1107, 1095, 1095, 1095, 1095, 1097, 1097, 1097, 1097, 1097,
97010e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
97110e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
97210e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
97310e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1095, 1095,
97410e230b6Smaya
97510e230b6Smaya     1095, 1095, 1109, 1095, 1095, 1095, 1095, 1095, 1097, 1097,
97610e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
97710e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
97810e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
97910e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
98010e230b6Smaya     1097, 1097, 1109, 1095, 1095, 1095, 1095, 1097, 1097, 1097,
98110e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
98210e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
98310e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
98410e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1095,
98510e230b6Smaya
98610e230b6Smaya     1095, 1095, 1095, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
98710e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
98810e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
98910e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
99010e230b6Smaya     1097, 1095, 1095, 1095, 1095, 1097, 1097, 1097, 1097, 1097,
99110e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
99210e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
99310e230b6Smaya     1097, 1097, 1097, 1097, 1095, 1095, 1095, 1095, 1095, 1097,
99410e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
99510e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
99610e230b6Smaya
99710e230b6Smaya     1097, 1097, 1095, 1095, 1095, 1095, 1095, 1097, 1097, 1097,
99810e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
99910e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1097, 1097, 1097, 1097,
100010e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1095, 1095,
100110e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1097, 1097, 1097, 1097,
100210e230b6Smaya     1097, 1097, 1097, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
100310e230b6Smaya     1097, 1097, 1097, 1097, 1095, 1095, 1095, 1095, 1095, 1095,
100410e230b6Smaya     1097, 1097, 1097, 1095, 1095, 1095, 1095, 1095, 1095, 1097,
100510e230b6Smaya     1095, 1095, 1095, 1097, 1095, 1095, 1095, 1095, 1095, 1095,
100610e230b6Smaya     1095, 1095, 1095, 1095,    0, 1095, 1095, 1095, 1095, 1095,
100710e230b6Smaya
100810e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095
100910e230b6Smaya    } ;
101010e230b6Smaya
101110e230b6Smayastatic const flex_int16_t yy_nxt[1619] =
101210e230b6Smaya    {   0,
101310e230b6Smaya        8,    9,   10,    9,   11,    8,   12,   13,    8,    8,
101410e230b6Smaya       14,   15,   16,   17,   18,   19,   20,   20,   20,   20,
101510e230b6Smaya       20,   20,   20,    8,   21,   22,   23,   24,   24,   24,
101610e230b6Smaya       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
101710e230b6Smaya       24,   24,   24,   25,   24,   26,   27,   28,   29,   30,
101810e230b6Smaya       31,   32,   33,   34,   24,   24,   35,   36,   37,   38,
101910e230b6Smaya       39,   40,   41,   42,   43,   44,   45,   24,   24,   24,
102010e230b6Smaya       46,   47,   59,  856,   59,   48,   49,   50,   51,   50,
102110e230b6Smaya       49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
102210e230b6Smaya       52,   53,   54,   54,   54,   54,   54,   54,   54,   55,
102310e230b6Smaya
102410e230b6Smaya       49,   49,   49,   56,   56,   56,   56,   56,   56,   56,
102510e230b6Smaya       56,   56,   56,   56,   56,   56,   56,   56,   56,   49,
102610e230b6Smaya       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
102710e230b6Smaya       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
102810e230b6Smaya       56,   56,   56,   56,   56,   56,   49,   62,   65,   89,
102910e230b6Smaya       67,   69,   69,   69,   69,   69,   69,   69,   69,   83,
103010e230b6Smaya       84,  857,   66,   68,   91,   63,   71,   90,   72,   72,
103110e230b6Smaya       72,   72,   72,   72,   72,   73,   86,   87,   98,   92,
103210e230b6Smaya       93,   94,   99,   95,   74,  116,   96,   97,   75,  100,
103310e230b6Smaya      231,  858,  101,  117,   76,   77,  102,  107,  232,  108,
103410e230b6Smaya
103510e230b6Smaya      103,  126,   74,  128,  104,  118,  105,  129,  109,   75,
103610e230b6Smaya      263,  264,  106,  157,  169,  127,  169,   78,  130,  119,
103710e230b6Smaya       77,   71,  158,   79,   79,   79,   79,   79,   79,   79,
103810e230b6Smaya       79,  159,  131,  110,  859,  136,  154,  265,  149,   74,
103910e230b6Smaya      155,  111,  133,   80,  112,  137,  266,  113,  120,   81,
104010e230b6Smaya      156,  121,   59,  114,   59,  122,  123,   74,  134,  138,
104110e230b6Smaya      124,  135,  145,  125,   80,  146,  139,  140,  163,  164,
104210e230b6Smaya      150,  141,   82, 1095,  147,  151,  160,  142,  143,  152,
104310e230b6Smaya      144,  148,  153,  161,   71,   59,  860,  162,  171,  171,
104410e230b6Smaya      171,  171,  171,  171,  171,  171,  861,  189, 1095,  182,
104510e230b6Smaya
104610e230b6Smaya      182,  190,   74,  183,  183,  183,  183,  183,  183,  183,
104710e230b6Smaya      183,  210,  198,  267,  212,  239,  165,  199,  200,  236,
104810e230b6Smaya       74,  268,  211,  166,  244,  862,  237,  167,  213,  240,
104910e230b6Smaya      249,  241,  168,   69,   69,   69,   69,   69,   69,   69,
105010e230b6Smaya       69,  245,  246,  253,  250,  169,  255,  169,  223,  173,
105110e230b6Smaya      174,  224,  225,  175,  379,  226,  863,  227,  272,  254,
105210e230b6Smaya      256,  273,  161,  380,   59,  864,  162,  173,  174,  163,
105310e230b6Smaya      164,  163,  164,  865,  176,  177,  177,  177,  177,  177,
105410e230b6Smaya      177,  177,  177,  171,  171,  171,  171,  171,  171,  171,
105510e230b6Smaya      171,  178,  179,  281,  281,  180,  866,  282,  282,  282,
105610e230b6Smaya
105710e230b6Smaya      282,  282,  282,  282,  282,  291,  304,  867,  292,  178,
105810e230b6Smaya      179,  310,  311,  336,  358,  868,  181,  165,  359,  165,
105910e230b6Smaya      305,  284,  285,  291,  166,  286,  166,  614,  167,  293,
106010e230b6Smaya      167,  615,  869,  168,  870,  168,  344,  345,  346,  284,
106110e230b6Smaya      285,  337,  871,  288,  288,  872,  287,  289,  289,  289,
106210e230b6Smaya      289,  289,  289,  289,  289,  183,  183,  183,  183,  183,
106310e230b6Smaya      183,  183,  183,  294,  386,  387,  388,  655,  777,  295,
106410e230b6Smaya      282,  282,  282,  282,  282,  282,  282,  282,  174,  656,
106510e230b6Smaya      778,  175,  694,  695,  294,  406,  407,  408,  417,  418,
106610e230b6Smaya      419,  873,  296,  421,  422,  423,  174,  800,  801,  397,
106710e230b6Smaya
106810e230b6Smaya      397,  874,  176,  398,  398,  398,  398,  398,  398,  398,
106910e230b6Smaya      398,  289,  289,  289,  289,  289,  289,  289,  289,  179,
107010e230b6Smaya      875,  876,  180,  429,  430,  431,  433,  434,  435,  446,
107110e230b6Smaya      447,  448,  488,  489,  490,  285,  877,  179,  286,  528,
107210e230b6Smaya      529,  530,  878,  181,  398,  398,  398,  398,  398,  398,
107310e230b6Smaya      398,  398,  879,  285,  517,  518,  519,  880,  881,  287,
107410e230b6Smaya      531,  532,  533,  534,  535,  536,  520,  521,  582,  583,
107510e230b6Smaya      584,  585,  586,  587,  588,  589,  590,  592,  593,  594,
107610e230b6Smaya      595,  596,  597,  624,  625,  626,  627,  628,  629,  572,
107710e230b6Smaya      694,  695,  598,  599,  882,  883,  884,  887,  630,  631,
107810e230b6Smaya
107910e230b6Smaya      888,  889,  657,  640,  641,  641,  641,  641,  641,  641,
108010e230b6Smaya      641,  658,  704,  659,  660,  675,  676,  677,  694,  695,
108110e230b6Smaya      890,  705,  891,  706,  892,  893,  894,  678,  679,  895,
108210e230b6Smaya      680,  697,  698,  698,  698,  698,  698,  698,  698,  698,
108310e230b6Smaya      719,  720,  721,  800,  801,  896,  737,  742,  743,  744,
108410e230b6Smaya      694,  695,  722,  723,  897,  738,  697,  739,  699,  745,
108510e230b6Smaya      746,  694,  695,  898,  749,  750,  750,  750,  750,  750,
108610e230b6Smaya      750,  750,  694,  695,  825,  696,  696,  696,  696,  696,
108710e230b6Smaya      696,  696,  885,  826,  803,  827,  698,  698,  698,  698,
108810e230b6Smaya      698,  698,  698,  698,  886,  779,  752,  899,  800,  801,
108910e230b6Smaya
109010e230b6Smaya      900,  901,  902,  848,  780,  753,  781,  782,  903,  803,
109110e230b6Smaya      800,  801,  849,  904,  850,  905,  754,  906,  800,  801,
109210e230b6Smaya      907,  908,  909,  755,  804,  804,  804,  804,  804,  804,
109310e230b6Smaya      804,  804,  802,  802,  802,  802,  802,  802,  802,  800,
109410e230b6Smaya      801,  910,  911,  912,  913,  914,  915,  916,  917,  918,
109510e230b6Smaya      919,  920,  921,  804,  804,  804,  804,  804,  804,  804,
109610e230b6Smaya      804,  922,  923,  924,  925,  926,  927,  928,  929,  930,
109710e230b6Smaya      931,  932,  933,  934,  935,  936,  937,  938,  939,  940,
109810e230b6Smaya      941,  942,  943,  944,  945,  946,  947,  948,  949,  950,
109910e230b6Smaya      951,  952,  953,  954,  955,  956,  957,  958,  959,  960,
110010e230b6Smaya
110110e230b6Smaya      961,  962,  963,  964,  965,  966,  967,  968,  969,  970,
110210e230b6Smaya      971,  972,  973,  974,  975,  976,  978,  979,  980,  981,
110310e230b6Smaya      982,  983,  977,  984,  985,  986,  987,  988,  989,  990,
110410e230b6Smaya      991,  992,  993,  994,  995,  996,  997,  998,  999, 1000,
110510e230b6Smaya     1001, 1002,  975,  976, 1004, 1006, 1007, 1008, 1009, 1010,
110610e230b6Smaya      977, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019,
110710e230b6Smaya     1020, 1021, 1004, 1022, 1024, 1025, 1027, 1028, 1029, 1030,
110810e230b6Smaya     1031, 1023, 1026, 1032, 1033, 1034, 1035, 1036, 1037, 1038,
110910e230b6Smaya     1039, 1040, 1041, 1045, 1043, 1025, 1047, 1048, 1049, 1050,
111010e230b6Smaya     1042, 1044, 1026, 1051, 1003, 1052, 1053, 1054, 1055, 1041,
111110e230b6Smaya
111210e230b6Smaya     1057, 1043, 1005, 1045, 1059, 1061, 1056, 1042, 1044, 1062,
111310e230b6Smaya     1063, 1064, 1060, 1065, 1055, 1057, 1066, 1068, 1069, 1071,
111410e230b6Smaya     1005, 1072, 1056, 1073, 1067, 1074, 1070, 1075, 1076, 1078,
111510e230b6Smaya     1069, 1080, 1081, 1084, 1082, 1076, 1077, 1079, 1070, 1078,
111610e230b6Smaya     1085, 1046, 1083, 1077, 1082, 1086, 1087, 1079, 1087, 1089,
111710e230b6Smaya     1089, 1091, 1083, 1088, 1092, 1088, 1093, 1093, 1058,  855,
111810e230b6Smaya      854, 1046,  852,  851, 1094, 1094,  847,  846,  845,  844,
111910e230b6Smaya      843,  842,  841, 1058,  840,  839,  838,  837,  836,  835,
112010e230b6Smaya      834,  833,  832,  831,  830,  829,  828,  824,  823,  822,
112110e230b6Smaya      821,  820,  819, 1090, 1090,   57,   57,   57,   57,   57,
112210e230b6Smaya
112310e230b6Smaya       57,   57,   57,   57,   57,   57,   57,   88,   88,   88,
112410e230b6Smaya       88,   88,   88,   88,   88,  172,  172,  172,  172,  172,
112510e230b6Smaya      172,  172,  172,   73,   73,   73,  818,   73,  184,  184,
112610e230b6Smaya      184,  184,  184,  280,  280,  817,  280,  280,  280,  280,
112710e230b6Smaya      280,  280,  280,  280,  280,  183,  183,  816,  815,  183,
112810e230b6Smaya      814,  183,  282,  282,  813,  812,  282,  811,  282,  289,
112910e230b6Smaya      289,  810,  809,  289,  808,  289,  398,  398,  807,  806,
113010e230b6Smaya      398,  805,  398,  696,  696,  799,  696,  798,  797,  796,
113110e230b6Smaya      795,  794,  793,  696,  751,  751,  751,  751,  751,  802,
113210e230b6Smaya      802,  792,  802,  791,  790,  789,  788,  787,  786,  802,
113310e230b6Smaya
113410e230b6Smaya      853,  853,  853,  853,  853,  785,  784,  783,  776,  775,
113510e230b6Smaya      774,  773,  772,  771,  770,  769,  768,  767,  766,  765,
113610e230b6Smaya      764,  763,  762,  761,  760,  759,  758,  757,  756,  748,
113710e230b6Smaya      747,  741,  740,  736,  735,  734,  733,  732,  731,  730,
113810e230b6Smaya      729,  728,  727,  726,  725,  724,  718,  717,  716,  715,
113910e230b6Smaya      714,  713,  712,  711,  710,  709,  708,  707,  703,  702,
114010e230b6Smaya      701,  700,  699,  693,  692,  691,  690,  689,  688,  687,
114110e230b6Smaya      686,  685,  684,  683,  682,  681,  674,  673,  672,  671,
114210e230b6Smaya      670,  669,  668,  667,  666,  665,  664,  663,  662,  661,
114310e230b6Smaya      654,  653,  652,  651,  650,  649,  648,  647,  646,  645,
114410e230b6Smaya
114510e230b6Smaya      644,  643,  642,  639,  638,  637,  636,  635,  634,  633,
114610e230b6Smaya      632,  623,  622,  621,  620,  619,  618,  617,  616,  613,
114710e230b6Smaya      612,  611,  610,  609,  608,  607,  606,  605,  604,  603,
114810e230b6Smaya      602,  601,  600,  591,  581,  580,  579,  578,  577,  576,
114910e230b6Smaya      575,  574,  573,  572,  571,  570,  569,  568,  567,  566,
115010e230b6Smaya      565,  564,  563,  562,  561,  560,  559,  558,  557,  556,
115110e230b6Smaya      555,  554,  553,  552,  551,  550,  549,  548,  547,  546,
115210e230b6Smaya      545,  544,  543,  542,  541,  540,  539,  538,  537,  527,
115310e230b6Smaya      526,  525,  524,  523,  522,  516,  515,  514,  513,  512,
115410e230b6Smaya      511,  510,  509,  508,  507,  506,  505,  504,  503,  502,
115510e230b6Smaya
115610e230b6Smaya      501,  500,  499,  498,  497,  496,  495,  494,  493,  492,
115710e230b6Smaya      491,  487,  486,  485,  484,  483,  482,  481,  480,  479,
115810e230b6Smaya      478,  477,  476,  475,  474,  473,  472,  471,  470,  469,
115910e230b6Smaya      468,  467,  466,  465,  464,  463,  462,  461,  460,  459,
116010e230b6Smaya      458,  457,  456,  455,  454,  453,  452,  451,  450,  449,
116110e230b6Smaya      445,  444,  443,  442,  441,  440,  439,  438,  437,  436,
116210e230b6Smaya      432,  428,  427,  426,  425,  424,  420,  416,  415,  414,
116310e230b6Smaya      413,  412,  411,  410,  409,  405,  404,  403,  402,  401,
116410e230b6Smaya      294,  294,  400,  400,  399,  399,  396,  395,  394,  393,
116510e230b6Smaya      392,  391,  390,  389,  385,  384,  383,  382,  381,  378,
116610e230b6Smaya
116710e230b6Smaya      377,  376,  375,  374,  373,  372,  371,  370,  369,  368,
116810e230b6Smaya      367,  366,  365,  364,  363,  362,  361,  360,  357,  356,
116910e230b6Smaya      355,  354,  353,  352,  351,  350,  349,  348,  347,  343,
117010e230b6Smaya      342,  341,  340,  339,  338,  335,  334,  333,  332,  331,
117110e230b6Smaya      330,  329,  328,  327,  326,  325,  324,  323,  322,  321,
117210e230b6Smaya      320,  319,  318,  317,  316,  315,  314,  313,  312,  309,
117310e230b6Smaya      308,  307,  306,  303,  302,  301,  300,  299,  298,  297,
117410e230b6Smaya      290,  290,  283,  283,  279,  278,  277,  276,  275,  274,
117510e230b6Smaya      271,  270,  269,  262,  261,  260,  259,  258,  257,  252,
117610e230b6Smaya      251,  248,  247,  243,  242,  238,  235,  234,  233,  230,
117710e230b6Smaya
117810e230b6Smaya      229,  228,  222,  221,  220,  219,  218,  217,  216,  215,
117910e230b6Smaya      214,  209,  208,  207,  206,  205,  204,  203,  202,  201,
118010e230b6Smaya      197,  196,  195,  194,  193,  192,  191,  188,  187,  186,
118110e230b6Smaya      185,   80,   80,   75,   75,  170,  132,  115,   85,   70,
118210e230b6Smaya       64,   61,   60, 1095,   58,   58,    7, 1095, 1095, 1095,
118310e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
118410e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
118510e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
118610e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
118710e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
118810e230b6Smaya
118910e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
119010e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095
119110e230b6Smaya    } ;
119210e230b6Smaya
119310e230b6Smayastatic const flex_int16_t yy_chk[1619] =
119410e230b6Smaya    {   0,
119510e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
119610e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
119710e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
119810e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
119910e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
120010e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
120110e230b6Smaya        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
120210e230b6Smaya        1,    2,    9,  807,    9,    2,    3,    3,    3,    3,
120310e230b6Smaya        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
120410e230b6Smaya        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
120510e230b6Smaya
120610e230b6Smaya        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
120710e230b6Smaya        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
120810e230b6Smaya        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
120910e230b6Smaya        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
121010e230b6Smaya        3,    3,    3,    3,    3,    3,    3,   13,   15,   25,
121110e230b6Smaya       16,   17,   17,   17,   17,   17,   17,   17,   17,   21,
121210e230b6Smaya       21,  808,   15,   16,   26,   13,   19,   25,   19,   19,
121310e230b6Smaya       19,   19,   19,   19,   19,   19,   23,   23,   28,   26,
121410e230b6Smaya       26,   27,   28,   27,   19,   33,   27,   27,   19,   28,
121510e230b6Smaya      127,  810,   28,   33,   19,   19,   29,   30,  127,   30,
121610e230b6Smaya
121710e230b6Smaya       29,   35,   19,   36,   29,   33,   29,   36,   30,   19,
121810e230b6Smaya      150,  150,   29,   45,   50,   35,   50,   19,   37,   34,
121910e230b6Smaya       19,   20,   45,   20,   20,   20,   20,   20,   20,   20,
122010e230b6Smaya       20,   46,   37,   31,  811,   40,   44,  151,   43,   20,
122110e230b6Smaya       44,   31,   39,   20,   31,   40,  151,   31,   34,   20,
122210e230b6Smaya       44,   34,   59,   31,   59,   34,   34,   20,   39,   41,
122310e230b6Smaya       34,   39,   42,   34,   20,   42,   41,   41,   48,   48,
122410e230b6Smaya       43,   41,   20,   72,   42,   43,   46,   41,   41,   43,
122510e230b6Smaya       41,   42,   43,   47,   73,   47,  812,   47,   54,   54,
122610e230b6Smaya       54,   54,   54,   54,   54,   54,  813,   93,   72,   74,
122710e230b6Smaya
122810e230b6Smaya       74,   93,   73,   74,   74,   74,   74,   74,   74,   74,
122910e230b6Smaya       74,  111,  101,  152,  112,  133,   48,  101,  101,  131,
123010e230b6Smaya       73,  152,  111,   48,  136,  814,  131,   48,  112,  133,
123110e230b6Smaya      139,  133,   48,   69,   69,   69,   69,   69,   69,   69,
123210e230b6Smaya       69,  136,  136,  142,  139,  169,  143,  169,  123,   69,
123310e230b6Smaya       69,  123,  123,   69,  265,  123,  815,  123,  156,  142,
123410e230b6Smaya      143,  156,  161,  265,  161,  816,  161,   69,   69,  162,
123510e230b6Smaya      162,  163,  163,  817,   69,   71,   71,   71,   71,   71,
123610e230b6Smaya       71,   71,   71,  171,  171,  171,  171,  171,  171,  171,
123710e230b6Smaya      171,   71,   71,  173,  173,   71,  818,  173,  173,  173,
123810e230b6Smaya
123910e230b6Smaya      173,  173,  173,  173,  173,  183,  195,  819,  183,   71,
124010e230b6Smaya       71,  200,  200,  226,  245,  821,   71,  162,  245,  163,
124110e230b6Smaya      195,  177,  177,  183,  162,  177,  163,  544,  162,  183,
124210e230b6Smaya      163,  544,  823,  162,  824,  163,  233,  233,  233,  177,
124310e230b6Smaya      177,  226,  825,  178,  178,  826,  177,  178,  178,  178,
124410e230b6Smaya      178,  178,  178,  178,  178,  182,  182,  182,  182,  182,
124510e230b6Smaya      182,  182,  182,  184,  271,  271,  271,  600,  729,  184,
124610e230b6Smaya      281,  281,  281,  281,  281,  281,  281,  281,  282,  600,
124710e230b6Smaya      729,  282,  751,  751,  184,  303,  303,  303,  314,  314,
124810e230b6Smaya      314,  827,  184,  316,  316,  316,  282,  800,  800,  284,
124910e230b6Smaya
125010e230b6Smaya      284,  828,  282,  284,  284,  284,  284,  284,  284,  284,
125110e230b6Smaya      284,  288,  288,  288,  288,  288,  288,  288,  288,  289,
125210e230b6Smaya      829,  830,  289,  325,  325,  325,  329,  329,  329,  340,
125310e230b6Smaya      340,  340,  384,  384,  384,  398,  831,  289,  398,  450,
125410e230b6Smaya      450,  450,  832,  289,  397,  397,  397,  397,  397,  397,
125510e230b6Smaya      397,  397,  833,  398,  438,  438,  438,  834,  835,  398,
125610e230b6Smaya      451,  451,  451,  452,  452,  452,  438,  438,  509,  509,
125710e230b6Smaya      509,  510,  510,  510,  511,  511,  511,  515,  515,  515,
125810e230b6Smaya      516,  516,  516,  562,  562,  562,  563,  563,  563,  572,
125910e230b6Smaya      640,  640,  516,  516,  836,  837,  838,  840,  563,  563,
126010e230b6Smaya
126110e230b6Smaya      841,  842,  601,  572,  572,  572,  572,  572,  572,  572,
126210e230b6Smaya      572,  601,  651,  601,  601,  620,  620,  620,  641,  641,
126310e230b6Smaya      843,  651,  844,  651,  845,  846,  847,  620,  620,  848,
126410e230b6Smaya      620,  640,  641,  641,  641,  641,  641,  641,  641,  641,
126510e230b6Smaya      665,  665,  665,  749,  749,  849,  684,  690,  690,  690,
126610e230b6Smaya      694,  694,  665,  665,  850,  684,  640,  684,  699,  690,
126710e230b6Smaya      690,  696,  696,  851,  694,  694,  694,  694,  694,  694,
126810e230b6Smaya      694,  694,  698,  698,  772,  696,  696,  696,  696,  696,
126910e230b6Smaya      696,  696,  839,  772,  749,  772,  698,  698,  698,  698,
127010e230b6Smaya      698,  698,  698,  698,  839,  730,  699,  852,  853,  853,
127110e230b6Smaya
127210e230b6Smaya      854,  855,  856,  795,  730,  699,  730,  730,  857,  749,
127310e230b6Smaya      750,  750,  795,  858,  795,  859,  699,  860,  802,  802,
127410e230b6Smaya      863,  864,  865,  699,  750,  750,  750,  750,  750,  750,
127510e230b6Smaya      750,  750,  802,  802,  802,  802,  802,  802,  802,  804,
127610e230b6Smaya      804,  866,  867,  868,  869,  870,  871,  872,  873,  874,
127710e230b6Smaya      875,  876,  877,  804,  804,  804,  804,  804,  804,  804,
127810e230b6Smaya      804,  878,  879,  880,  881,  882,  883,  884,  885,  886,
127910e230b6Smaya      887,  888,  889,  890,  893,  894,  895,  896,  897,  898,
128010e230b6Smaya      899,  900,  901,  902,  903,  906,  907,  908,  910,  911,
128110e230b6Smaya      913,  914,  915,  916,  917,  918,  919,  921,  922,  923,
128210e230b6Smaya
128310e230b6Smaya      924,  925,  926,  929,  930,  931,  934,  935,  936,  937,
128410e230b6Smaya      938,  939,  940,  941,  942,  943,  944,  945,  946,  947,
128510e230b6Smaya      948,  949,  943,  952,  953,  954,  957,  958,  959,  960,
128610e230b6Smaya      961,  962,  963,  964,  965,  966,  967,  968,  969,  970,
128710e230b6Smaya      971,  974,  975,  976,  977,  978,  979,  982,  983,  986,
128810e230b6Smaya      976,  987,  988,  990,  991,  992,  994,  995,  996, 1001,
128910e230b6Smaya     1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011,
129010e230b6Smaya     1012, 1005, 1007, 1013, 1015, 1016, 1017, 1018, 1019, 1020,
129110e230b6Smaya     1021, 1022, 1023, 1026, 1024, 1025, 1027, 1028, 1031, 1032,
129210e230b6Smaya     1023, 1024, 1025, 1033,  975, 1034, 1036, 1039, 1040, 1041,
129310e230b6Smaya
129410e230b6Smaya     1044, 1043,  977, 1045, 1046, 1049, 1040, 1041, 1043, 1050,
129510e230b6Smaya     1051, 1052, 1046, 1054, 1055, 1057, 1058, 1059, 1060, 1061,
129610e230b6Smaya     1004, 1062, 1055, 1064, 1058, 1065, 1060, 1066, 1067, 1068,
129710e230b6Smaya     1069, 1073, 1074, 1080, 1075, 1076, 1067, 1068, 1069, 1078,
129810e230b6Smaya     1081, 1026, 1075, 1076, 1082, 1085, 1086, 1078, 1087, 1088,
129910e230b6Smaya     1089, 1090, 1082, 1086, 1091, 1087, 1092, 1093, 1044,  806,
130010e230b6Smaya      805, 1045,  798,  797, 1092, 1093,  794,  793,  792,  791,
130110e230b6Smaya      790,  789,  788, 1057,  786,  785,  784,  783,  782,  781,
130210e230b6Smaya      780,  779,  778,  777,  776,  775,  774,  771,  770,  769,
130310e230b6Smaya      768,  767,  766, 1088, 1089, 1096, 1096, 1096, 1096, 1096,
130410e230b6Smaya
130510e230b6Smaya     1096, 1096, 1096, 1096, 1096, 1096, 1096, 1097, 1097, 1097,
130610e230b6Smaya     1097, 1097, 1097, 1097, 1097, 1098, 1098, 1098, 1098, 1098,
130710e230b6Smaya     1098, 1098, 1098, 1099, 1099, 1099,  765, 1099, 1100, 1100,
130810e230b6Smaya     1100, 1100, 1100, 1101, 1101,  764, 1101, 1101, 1101, 1101,
130910e230b6Smaya     1101, 1101, 1101, 1101, 1101, 1102, 1102,  763,  762, 1102,
131010e230b6Smaya      761, 1102, 1103, 1103,  760,  759, 1103,  758, 1103, 1104,
131110e230b6Smaya     1104,  757,  756, 1104,  755, 1104, 1105, 1105,  754,  753,
131210e230b6Smaya     1105,  752, 1105, 1106, 1106,  748, 1106,  746,  745,  744,
131310e230b6Smaya      743,  742,  741, 1106, 1107, 1107, 1107, 1107, 1107, 1108,
131410e230b6Smaya     1108,  740, 1108,  739,  738,  737,  736,  735,  734, 1108,
131510e230b6Smaya
131610e230b6Smaya     1109, 1109, 1109, 1109, 1109,  733,  732,  731,  725,  723,
131710e230b6Smaya      722,  721,  720,  719,  716,  715,  714,  713,  712,  711,
131810e230b6Smaya      710,  709,  708,  707,  706,  705,  704,  703,  701,  693,
131910e230b6Smaya      692,  687,  686,  683,  681,  680,  679,  678,  677,  676,
132010e230b6Smaya      675,  674,  670,  669,  668,  666,  664,  663,  662,  661,
132110e230b6Smaya      660,  659,  658,  657,  656,  655,  654,  653,  650,  645,
132210e230b6Smaya      644,  643,  642,  639,  638,  637,  635,  634,  632,  631,
132310e230b6Smaya      630,  629,  628,  627,  622,  621,  619,  618,  617,  616,
132410e230b6Smaya      615,  613,  612,  611,  610,  608,  607,  606,  604,  603,
132510e230b6Smaya      599,  598,  597,  596,  595,  591,  579,  578,  577,  576,
132610e230b6Smaya
132710e230b6Smaya      575,  574,  573,  571,  570,  569,  568,  567,  566,  565,
132810e230b6Smaya      564,  561,  560,  557,  551,  550,  548,  547,  546,  543,
132910e230b6Smaya      540,  539,  538,  537,  526,  525,  524,  523,  521,  520,
133010e230b6Smaya      519,  518,  517,  513,  508,  507,  506,  504,  503,  501,
133110e230b6Smaya      500,  498,  497,  496,  495,  494,  492,  491,  486,  485,
133210e230b6Smaya      483,  482,  481,  480,  479,  478,  477,  476,  475,  474,
133310e230b6Smaya      473,  472,  471,  469,  468,  467,  466,  465,  464,  463,
133410e230b6Smaya      462,  461,  459,  458,  457,  456,  455,  454,  453,  449,
133510e230b6Smaya      445,  444,  443,  442,  439,  437,  436,  426,  424,  420,
133610e230b6Smaya      419,  418,  417,  416,  415,  414,  412,  411,  409,  405,
133710e230b6Smaya
133810e230b6Smaya      403,  402,  401,  396,  395,  394,  393,  392,  391,  390,
133910e230b6Smaya      385,  383,  382,  381,  380,  379,  378,  377,  376,  375,
134010e230b6Smaya      372,  371,  370,  369,  368,  367,  366,  365,  364,  363,
134110e230b6Smaya      362,  361,  360,  359,  358,  357,  356,  355,  354,  353,
134210e230b6Smaya      352,  351,  350,  349,  348,  347,  346,  345,  344,  341,
134310e230b6Smaya      339,  338,  337,  336,  335,  334,  333,  332,  331,  330,
134410e230b6Smaya      328,  324,  322,  321,  320,  319,  315,  313,  312,  311,
134510e230b6Smaya      310,  309,  308,  307,  306,  302,  301,  299,  298,  297,
134610e230b6Smaya      296,  295,  293,  292,  287,  286,  279,  278,  277,  276,
134710e230b6Smaya      275,  274,  273,  272,  270,  269,  268,  267,  266,  264,
134810e230b6Smaya
134910e230b6Smaya      263,  262,  261,  260,  259,  258,  257,  256,  255,  254,
135010e230b6Smaya      253,  252,  251,  250,  249,  248,  247,  246,  244,  243,
135110e230b6Smaya      242,  241,  240,  239,  238,  237,  236,  235,  234,  232,
135210e230b6Smaya      231,  230,  229,  228,  227,  225,  224,  223,  222,  221,
135310e230b6Smaya      220,  219,  218,  217,  216,  215,  213,  212,  211,  210,
135410e230b6Smaya      209,  208,  207,  206,  205,  204,  203,  202,  201,  199,
135510e230b6Smaya      198,  197,  196,  194,  193,  192,  191,  190,  189,  187,
135610e230b6Smaya      181,  180,  176,  175,  168,  167,  166,  165,  158,  157,
135710e230b6Smaya      155,  154,  153,  149,  148,  147,  146,  145,  144,  141,
135810e230b6Smaya      140,  138,  137,  135,  134,  132,  130,  129,  128,  126,
135910e230b6Smaya
136010e230b6Smaya      125,  124,  122,  121,  119,  118,  117,  116,  115,  114,
136110e230b6Smaya      113,  110,  109,  108,  107,  106,  105,  104,  103,  102,
136210e230b6Smaya      100,   99,   98,   97,   96,   95,   94,   92,   91,   87,
136310e230b6Smaya       83,   82,   81,   78,   76,   52,   38,   32,   22,   18,
136410e230b6Smaya       14,   12,   11,    7,    6,    5, 1095, 1095, 1095, 1095,
136510e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
136610e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
136710e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
136810e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
136910e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
137010e230b6Smaya
137110e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
137210e230b6Smaya     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095
137310e230b6Smaya    } ;
137410e230b6Smaya
137510e230b6Smaya/* The intent behind this definition is that it'll catch
137610e230b6Smaya * any uses of REJECT which flex missed.
137710e230b6Smaya */
137810e230b6Smaya#define REJECT reject_used_but_not_detected
137910e230b6Smaya#define yymore() yymore_used_but_not_detected
138010e230b6Smaya#define YY_MORE_ADJ 0
138110e230b6Smaya#define YY_RESTORE_YY_MORE_OFFSET
138210e230b6Smaya#line 1 "../src/compiler/glsl/glsl_lexer.ll"
138310e230b6Smaya#line 2 "../src/compiler/glsl/glsl_lexer.ll"
138410e230b6Smaya/*
138510e230b6Smaya * Copyright © 2008, 2009 Intel Corporation
138610e230b6Smaya *
138710e230b6Smaya * Permission is hereby granted, free of charge, to any person obtaining a
138810e230b6Smaya * copy of this software and associated documentation files (the "Software"),
138910e230b6Smaya * to deal in the Software without restriction, including without limitation
139010e230b6Smaya * the rights to use, copy, modify, merge, publish, distribute, sublicense,
139110e230b6Smaya * and/or sell copies of the Software, and to permit persons to whom the
139210e230b6Smaya * Software is furnished to do so, subject to the following conditions:
139310e230b6Smaya *
139410e230b6Smaya * The above copyright notice and this permission notice (including the next
139510e230b6Smaya * paragraph) shall be included in all copies or substantial portions of the
139610e230b6Smaya * Software.
139710e230b6Smaya *
139810e230b6Smaya * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
139910e230b6Smaya * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
140010e230b6Smaya * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
140110e230b6Smaya * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
140210e230b6Smaya * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
140310e230b6Smaya * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
140410e230b6Smaya * DEALINGS IN THE SOFTWARE.
140510e230b6Smaya */
140610e230b6Smaya#include <ctype.h>
140710e230b6Smaya#include <limits.h>
140810e230b6Smaya#include "util/strtod.h"
140910e230b6Smaya#include "ast.h"
141010e230b6Smaya#include "glsl_parser_extras.h"
141110e230b6Smaya#include "glsl_parser.h"
141210e230b6Smaya#include "main/mtypes.h"
141310e230b6Smaya
141410e230b6Smayastatic int classify_identifier(struct _mesa_glsl_parse_state *, const char *,
141510e230b6Smaya			       unsigned name_len, YYSTYPE *output);
141610e230b6Smaya
141710e230b6Smaya#ifdef _MSC_VER
141810e230b6Smaya#define YY_NO_UNISTD_H
141910e230b6Smaya#endif
142010e230b6Smaya
142110e230b6Smaya#define YY_NO_INPUT
142210e230b6Smaya#define YY_USER_ACTION						\
142310e230b6Smaya   do {								\
142410e230b6Smaya      yylloc->first_column = yycolumn + 1;			\
142510e230b6Smaya      yylloc->first_line = yylloc->last_line = yylineno + 1;	\
142610e230b6Smaya      yycolumn += yyleng;					\
142710e230b6Smaya      yylloc->last_column = yycolumn + 1;			\
142810e230b6Smaya   } while(0);
142910e230b6Smaya
143010e230b6Smaya#define YY_USER_INIT yylineno = 0; yycolumn = 0; yylloc->source = 0;
143110e230b6Smaya
143210e230b6Smaya/* A macro for handling reserved words and keywords across language versions.
143310e230b6Smaya *
143410e230b6Smaya * Certain words start out as identifiers, become reserved words in
143510e230b6Smaya * later language revisions, and finally become language keywords.
143610e230b6Smaya * This may happen at different times in desktop GLSL and GLSL ES.
143710e230b6Smaya *
143810e230b6Smaya * For example, consider the following lexer rule:
143910e230b6Smaya * samplerBuffer       KEYWORD(130, 0, 140, 0, SAMPLERBUFFER)
144010e230b6Smaya *
144110e230b6Smaya * This means that "samplerBuffer" will be treated as:
144210e230b6Smaya * - a keyword (SAMPLERBUFFER token)         ...in GLSL >= 1.40
144310e230b6Smaya * - a reserved word - error                 ...in GLSL >= 1.30
144410e230b6Smaya * - an identifier                           ...in GLSL <  1.30 or GLSL ES
144510e230b6Smaya */
144610e230b6Smaya#define KEYWORD(reserved_glsl, reserved_glsl_es,			\
144710e230b6Smaya                allowed_glsl, allowed_glsl_es, token)			\
144810e230b6Smaya   KEYWORD_WITH_ALT(reserved_glsl, reserved_glsl_es,			\
144910e230b6Smaya                    allowed_glsl, allowed_glsl_es, false, token)
145010e230b6Smaya
145110e230b6Smaya/**
145210e230b6Smaya * Like the KEYWORD macro, but the word is also treated as a keyword
145310e230b6Smaya * if the given boolean expression is true.
145410e230b6Smaya */
145510e230b6Smaya#define KEYWORD_WITH_ALT(reserved_glsl, reserved_glsl_es,		\
145610e230b6Smaya                         allowed_glsl, allowed_glsl_es,			\
145710e230b6Smaya                         alt_expr, token)				\
145810e230b6Smaya   do {									\
145910e230b6Smaya      if (yyextra->is_version(allowed_glsl, allowed_glsl_es)		\
146010e230b6Smaya          || (alt_expr)) {						\
146110e230b6Smaya	 return token;							\
146210e230b6Smaya      } else if (yyextra->is_version(reserved_glsl,			\
146310e230b6Smaya                                     reserved_glsl_es)) {		\
146410e230b6Smaya	 _mesa_glsl_error(yylloc, yyextra,				\
146510e230b6Smaya			  "illegal use of reserved word `%s'", yytext);	\
146610e230b6Smaya	 return ERROR_TOK;						\
146710e230b6Smaya      } else {								\
146810e230b6Smaya	 return classify_identifier(yyextra, yytext, yyleng, yylval);	\
146910e230b6Smaya      }									\
147010e230b6Smaya   } while (0)
147110e230b6Smaya
147210e230b6Smaya/**
147310e230b6Smaya * Like KEYWORD_WITH_ALT, but used for built-in GLSL types
147410e230b6Smaya */
147510e230b6Smaya#define TYPE_WITH_ALT(reserved_glsl, reserved_glsl_es,			\
147610e230b6Smaya		      allowed_glsl, allowed_glsl_es,			\
147710e230b6Smaya		      alt_expr, gtype)					\
147810e230b6Smaya   do {									\
147910e230b6Smaya      if (yyextra->is_version(allowed_glsl, allowed_glsl_es)		\
148010e230b6Smaya          || (alt_expr)) {						\
148110e230b6Smaya	 yylval->type = gtype; 						\
148210e230b6Smaya	 return BASIC_TYPE_TOK;						\
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#define TYPE(reserved_glsl, reserved_glsl_es,				\
149410e230b6Smaya             allowed_glsl, allowed_glsl_es,				\
149510e230b6Smaya             gtype)							\
149610e230b6Smaya   TYPE_WITH_ALT(reserved_glsl, reserved_glsl_es,			\
149710e230b6Smaya                 allowed_glsl, allowed_glsl_es,				\
149810e230b6Smaya                 false, gtype)
149910e230b6Smaya
150010e230b6Smaya/**
150110e230b6Smaya * A macro for handling keywords that have been present in GLSL since
150210e230b6Smaya * its origin, but were changed into reserved words in GLSL 3.00 ES.
150310e230b6Smaya */
150410e230b6Smaya#define DEPRECATED_ES_KEYWORD(token)					\
150510e230b6Smaya   do {									\
150610e230b6Smaya      if (yyextra->is_version(0, 300)) {				\
150710e230b6Smaya	 _mesa_glsl_error(yylloc, yyextra,				\
150810e230b6Smaya			  "illegal use of reserved word `%s'", yytext);	\
150910e230b6Smaya	 return ERROR_TOK;						\
151010e230b6Smaya      } else {								\
151110e230b6Smaya         return token;							\
151210e230b6Smaya      }									\
151310e230b6Smaya   } while (0)
151410e230b6Smaya
151510e230b6Smaya/**
151610e230b6Smaya * Like DEPRECATED_ES_KEYWORD, but for types
151710e230b6Smaya */
151810e230b6Smaya#define DEPRECATED_ES_TYPE_WITH_ALT(alt_expr, gtype)			\
151910e230b6Smaya   do {									\
152010e230b6Smaya      if (yyextra->is_version(0, 300)) {				\
152110e230b6Smaya         _mesa_glsl_error(yylloc, yyextra,				\
152210e230b6Smaya                          "illegal use of reserved word `%s'", yytext);	\
152310e230b6Smaya         return ERROR_TOK;						\
152410e230b6Smaya      } else if (alt_expr) {						\
152510e230b6Smaya         yylval->type = gtype;						\
152610e230b6Smaya         return BASIC_TYPE_TOK;						\
152710e230b6Smaya      } else {								\
152810e230b6Smaya         return classify_identifier(yyextra, yytext, yyleng, yylval);	\
152910e230b6Smaya      }									\
153010e230b6Smaya   } while (0)
153110e230b6Smaya
153210e230b6Smaya#define DEPRECATED_ES_TYPE(gtype)					\
153310e230b6Smaya   DEPRECATED_ES_TYPE_WITH_ALT(true, gtype)
153410e230b6Smaya
153510e230b6Smayastatic int
153610e230b6Smayaliteral_integer(char *text, int len, struct _mesa_glsl_parse_state *state,
153710e230b6Smaya		YYSTYPE *lval, YYLTYPE *lloc, int base)
153810e230b6Smaya{
153910e230b6Smaya   bool is_uint = (text[len - 1] == 'u' ||
154010e230b6Smaya		   text[len - 1] == 'U');
154110e230b6Smaya   bool is_long = (text[len - 1] == 'l' || text[len - 1] == 'L');
154210e230b6Smaya   const char *digits = text;
154310e230b6Smaya
154410e230b6Smaya   if (is_long)
154510e230b6Smaya      is_uint = (text[len - 2] == 'u' && text[len - 1] == 'l') ||
154610e230b6Smaya                (text[len - 2] == 'U' && text[len - 1] == 'L');
154710e230b6Smaya   /* Skip "0x" */
154810e230b6Smaya   if (base == 16)
154910e230b6Smaya      digits += 2;
155010e230b6Smaya
155110e230b6Smaya   unsigned long long value = strtoull(digits, NULL, base);
155210e230b6Smaya
155310e230b6Smaya   if (is_long)
155410e230b6Smaya      lval->n64 = (int64_t)value;
155510e230b6Smaya   else
155610e230b6Smaya      lval->n = (int)value;
155710e230b6Smaya
155810e230b6Smaya   if (is_long && !is_uint && base == 10 && value > (uint64_t)LLONG_MAX + 1) {
155910e230b6Smaya      /* Tries to catch unintentionally providing a negative value. */
156010e230b6Smaya      _mesa_glsl_warning(lloc, state,
156110e230b6Smaya                         "signed literal value `%s' is interpreted as %lld",
156210e230b6Smaya                         text, lval->n64);
156310e230b6Smaya   } else if (!is_long && value > UINT_MAX) {
156410e230b6Smaya      /* Note that signed 0xffffffff is valid, not out of range! */
156510e230b6Smaya      if (state->is_version(130, 300)) {
156610e230b6Smaya	 _mesa_glsl_error(lloc, state,
156710e230b6Smaya			  "literal value `%s' out of range", text);
156810e230b6Smaya      } else {
156910e230b6Smaya	 _mesa_glsl_warning(lloc, state,
157010e230b6Smaya			    "literal value `%s' out of range", text);
157110e230b6Smaya      }
157210e230b6Smaya   } else if (base == 10 && !is_uint && (unsigned)value > (unsigned)INT_MAX + 1) {
157310e230b6Smaya      /* Tries to catch unintentionally providing a negative value.
157410e230b6Smaya       * Note that -2147483648 is parsed as -(2147483648), so we don't
157510e230b6Smaya       * want to warn for INT_MAX.
157610e230b6Smaya       */
157710e230b6Smaya      _mesa_glsl_warning(lloc, state,
157810e230b6Smaya			 "signed literal value `%s' is interpreted as %d",
157910e230b6Smaya			 text, lval->n);
158010e230b6Smaya   }
158110e230b6Smaya   if (is_long)
158210e230b6Smaya      return is_uint ? UINT64CONSTANT : INT64CONSTANT;
158310e230b6Smaya   else
158410e230b6Smaya      return is_uint ? UINTCONSTANT : INTCONSTANT;
158510e230b6Smaya}
158610e230b6Smaya
158710e230b6Smaya#define LITERAL_INTEGER(base) \
158810e230b6Smaya   literal_integer(yytext, yyleng, yyextra, yylval, yylloc, base)
158910e230b6Smaya
159010e230b6Smaya#line 1590 "src/compiler/glsl/glsl_lexer.cpp"
159110e230b6Smaya#line 218 "../src/compiler/glsl/glsl_lexer.ll"
159210e230b6Smaya	/* Note: When adding any start conditions to this list, you must also
159310e230b6Smaya	 * update the "Internal compiler error" catch-all rule near the end of
159410e230b6Smaya	 * this file. */
159510e230b6Smaya
159610e230b6Smaya#line 1596 "src/compiler/glsl/glsl_lexer.cpp"
159710e230b6Smaya
159810e230b6Smaya#define INITIAL 0
159910e230b6Smaya#define PP 1
160010e230b6Smaya#define PRAGMA 2
160110e230b6Smaya
160210e230b6Smaya#ifndef YY_NO_UNISTD_H
160310e230b6Smaya/* Special case for "unistd.h", since it is non-ANSI. We include it way
160410e230b6Smaya * down here because we want the user's section 1 to have been scanned first.
160510e230b6Smaya * The user has a chance to override it with an option.
160610e230b6Smaya */
160710e230b6Smaya#include <unistd.h>
160810e230b6Smaya#endif
160910e230b6Smaya
161010e230b6Smaya#define YY_EXTRA_TYPE struct _mesa_glsl_parse_state *
161110e230b6Smaya
161210e230b6Smaya/* Holds the entire state of the reentrant scanner. */
161310e230b6Smayastruct yyguts_t
161410e230b6Smaya    {
161510e230b6Smaya
161610e230b6Smaya    /* User-defined. Not touched by flex. */
161710e230b6Smaya    YY_EXTRA_TYPE yyextra_r;
161810e230b6Smaya
161910e230b6Smaya    /* The rest are the same as the globals declared in the non-reentrant scanner. */
162010e230b6Smaya    FILE *yyin_r, *yyout_r;
162110e230b6Smaya    size_t yy_buffer_stack_top; /**< index of top of stack. */
162210e230b6Smaya    size_t yy_buffer_stack_max; /**< capacity of stack. */
162310e230b6Smaya    YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
162410e230b6Smaya    char yy_hold_char;
162510e230b6Smaya    yy_size_t yy_n_chars;
162610e230b6Smaya    yy_size_t yyleng_r;
162710e230b6Smaya    char *yy_c_buf_p;
162810e230b6Smaya    int yy_init;
162910e230b6Smaya    int yy_start;
163010e230b6Smaya    int yy_did_buffer_switch_on_eof;
163110e230b6Smaya    int yy_start_stack_ptr;
163210e230b6Smaya    int yy_start_stack_depth;
163310e230b6Smaya    int *yy_start_stack;
163410e230b6Smaya    yy_state_type yy_last_accepting_state;
163510e230b6Smaya    char* yy_last_accepting_cpos;
163610e230b6Smaya
163710e230b6Smaya    int yylineno_r;
163810e230b6Smaya    int yy_flex_debug_r;
163910e230b6Smaya
164010e230b6Smaya    char *yytext_r;
164110e230b6Smaya    int yy_more_flag;
164210e230b6Smaya    int yy_more_len;
164310e230b6Smaya
164410e230b6Smaya    YYSTYPE * yylval_r;
164510e230b6Smaya
164610e230b6Smaya    YYLTYPE * yylloc_r;
164710e230b6Smaya
164810e230b6Smaya    }; /* end struct yyguts_t */
164910e230b6Smaya
165010e230b6Smayastatic int yy_init_globals ( yyscan_t yyscanner );
165110e230b6Smaya
165210e230b6Smaya    /* This must go here because YYSTYPE and YYLTYPE are included
165310e230b6Smaya     * from bison output in section 1.*/
165410e230b6Smaya    #    define yylval yyg->yylval_r
165510e230b6Smaya
165610e230b6Smaya    #    define yylloc yyg->yylloc_r
165710e230b6Smaya
165810e230b6Smayaint yylex_init (yyscan_t* scanner);
165910e230b6Smaya
166010e230b6Smayaint yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);
166110e230b6Smaya
166210e230b6Smaya/* Accessor methods to globals.
166310e230b6Smaya   These are made visible to non-reentrant scanners for convenience. */
166410e230b6Smaya
166510e230b6Smayaint yylex_destroy ( yyscan_t yyscanner );
166610e230b6Smaya
166710e230b6Smayaint yyget_debug ( yyscan_t yyscanner );
166810e230b6Smaya
166910e230b6Smayavoid yyset_debug ( int debug_flag , yyscan_t yyscanner );
167010e230b6Smaya
167110e230b6SmayaYY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner );
167210e230b6Smaya
167310e230b6Smayavoid yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner );
167410e230b6Smaya
167510e230b6SmayaFILE *yyget_in ( yyscan_t yyscanner );
167610e230b6Smaya
167710e230b6Smayavoid yyset_in  ( FILE * _in_str , yyscan_t yyscanner );
167810e230b6Smaya
167910e230b6SmayaFILE *yyget_out ( yyscan_t yyscanner );
168010e230b6Smaya
168110e230b6Smayavoid yyset_out  ( FILE * _out_str , yyscan_t yyscanner );
168210e230b6Smaya
168310e230b6Smaya			yy_size_t yyget_leng ( yyscan_t yyscanner );
168410e230b6Smaya
168510e230b6Smayachar *yyget_text ( yyscan_t yyscanner );
168610e230b6Smaya
168710e230b6Smayaint yyget_lineno ( yyscan_t yyscanner );
168810e230b6Smaya
168910e230b6Smayavoid yyset_lineno ( int _line_number , yyscan_t yyscanner );
169010e230b6Smaya
169110e230b6Smayaint yyget_column  ( yyscan_t yyscanner );
169210e230b6Smaya
169310e230b6Smayavoid yyset_column ( int _column_no , yyscan_t yyscanner );
169410e230b6Smaya
169510e230b6SmayaYYSTYPE * yyget_lval ( yyscan_t yyscanner );
169610e230b6Smaya
169710e230b6Smayavoid yyset_lval ( YYSTYPE * yylval_param , yyscan_t yyscanner );
169810e230b6Smaya
169910e230b6Smaya       YYLTYPE *yyget_lloc ( yyscan_t yyscanner );
170010e230b6Smaya
170110e230b6Smaya        void yyset_lloc ( YYLTYPE * yylloc_param , yyscan_t yyscanner );
170210e230b6Smaya
170310e230b6Smaya/* Macros after this point can all be overridden by user definitions in
170410e230b6Smaya * section 1.
170510e230b6Smaya */
170610e230b6Smaya
170710e230b6Smaya#ifndef YY_SKIP_YYWRAP
170810e230b6Smaya#ifdef __cplusplus
170910e230b6Smayaextern "C" int yywrap ( yyscan_t yyscanner );
171010e230b6Smaya#else
171110e230b6Smayaextern int yywrap ( yyscan_t yyscanner );
171210e230b6Smaya#endif
171310e230b6Smaya#endif
171410e230b6Smaya
171510e230b6Smaya#ifndef YY_NO_UNPUT
171610e230b6Smaya
171710e230b6Smaya#endif
171810e230b6Smaya
171910e230b6Smaya#ifndef yytext_ptr
172010e230b6Smayastatic void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner);
172110e230b6Smaya#endif
172210e230b6Smaya
172310e230b6Smaya#ifdef YY_NEED_STRLEN
172410e230b6Smayastatic int yy_flex_strlen ( const char * , yyscan_t yyscanner);
172510e230b6Smaya#endif
172610e230b6Smaya
172710e230b6Smaya#ifndef YY_NO_INPUT
172810e230b6Smaya#ifdef __cplusplus
172910e230b6Smayastatic int yyinput ( yyscan_t yyscanner );
173010e230b6Smaya#else
173110e230b6Smayastatic int input ( yyscan_t yyscanner );
173210e230b6Smaya#endif
173310e230b6Smaya
173410e230b6Smaya#endif
173510e230b6Smaya
173610e230b6Smaya/* Amount of stuff to slurp up with each read. */
173710e230b6Smaya#ifndef YY_READ_BUF_SIZE
173810e230b6Smaya#ifdef __ia64__
173910e230b6Smaya/* On IA-64, the buffer size is 16k, not 8k */
174010e230b6Smaya#define YY_READ_BUF_SIZE 16384
174110e230b6Smaya#else
174210e230b6Smaya#define YY_READ_BUF_SIZE 8192
174310e230b6Smaya#endif /* __ia64__ */
174410e230b6Smaya#endif
174510e230b6Smaya
174610e230b6Smaya/* Copy whatever the last rule matched to the standard output. */
174710e230b6Smaya#ifndef ECHO
174810e230b6Smaya/* This used to be an fputs(), but since the string might contain NUL's,
174910e230b6Smaya * we now use fwrite().
175010e230b6Smaya */
175110e230b6Smaya#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
175210e230b6Smaya#endif
175310e230b6Smaya
175410e230b6Smaya/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
175510e230b6Smaya * is returned in "result".
175610e230b6Smaya */
175710e230b6Smaya#ifndef YY_INPUT
175810e230b6Smaya#define YY_INPUT(buf,result,max_size) \
175910e230b6Smaya	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
176010e230b6Smaya		{ \
176110e230b6Smaya		int c = '*'; \
176210e230b6Smaya		yy_size_t n; \
176310e230b6Smaya		for ( n = 0; n < max_size && \
176410e230b6Smaya			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
176510e230b6Smaya			buf[n] = (char) c; \
176610e230b6Smaya		if ( c == '\n' ) \
176710e230b6Smaya			buf[n++] = (char) c; \
176810e230b6Smaya		if ( c == EOF && ferror( yyin ) ) \
176910e230b6Smaya			YY_FATAL_ERROR( "input in flex scanner failed" ); \
177010e230b6Smaya		result = n; \
177110e230b6Smaya		} \
177210e230b6Smaya	else \
177310e230b6Smaya		{ \
177410e230b6Smaya		errno=0; \
177510e230b6Smaya		while ( (result = fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
177610e230b6Smaya			{ \
177710e230b6Smaya			if( errno != EINTR) \
177810e230b6Smaya				{ \
177910e230b6Smaya				YY_FATAL_ERROR( "input in flex scanner failed" ); \
178010e230b6Smaya				break; \
178110e230b6Smaya				} \
178210e230b6Smaya			errno=0; \
178310e230b6Smaya			clearerr(yyin); \
178410e230b6Smaya			} \
178510e230b6Smaya		}\
178610e230b6Smaya\
178710e230b6Smaya
178810e230b6Smaya#endif
178910e230b6Smaya
179010e230b6Smaya/* No semi-colon after return; correct usage is to write "yyterminate();" -
179110e230b6Smaya * we don't want an extra ';' after the "return" because that will cause
179210e230b6Smaya * some compilers to complain about unreachable statements.
179310e230b6Smaya */
179410e230b6Smaya#ifndef yyterminate
179510e230b6Smaya#define yyterminate() return YY_NULL
179610e230b6Smaya#endif
179710e230b6Smaya
179810e230b6Smaya/* Number of entries by which start-condition stack grows. */
179910e230b6Smaya#ifndef YY_START_STACK_INCR
180010e230b6Smaya#define YY_START_STACK_INCR 25
180110e230b6Smaya#endif
180210e230b6Smaya
180310e230b6Smaya/* Report a fatal error. */
180410e230b6Smaya#ifndef YY_FATAL_ERROR
180510e230b6Smaya#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
180610e230b6Smaya#endif
180710e230b6Smaya
180810e230b6Smaya/* end tables serialization structures and prototypes */
180910e230b6Smaya
181010e230b6Smaya/* Default declaration of generated scanner - a define so the user can
181110e230b6Smaya * easily add parameters.
181210e230b6Smaya */
181310e230b6Smaya#ifndef YY_DECL
181410e230b6Smaya#define YY_DECL_IS_OURS 1
181510e230b6Smaya
181610e230b6Smayaextern int yylex \
181710e230b6Smaya               (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner);
181810e230b6Smaya
181910e230b6Smaya#define YY_DECL int yylex \
182010e230b6Smaya               (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
182110e230b6Smaya#endif /* !YY_DECL */
182210e230b6Smaya
182310e230b6Smaya/* Code executed at the beginning of each rule, after yytext and yyleng
182410e230b6Smaya * have been set up.
182510e230b6Smaya */
182610e230b6Smaya#ifndef YY_USER_ACTION
182710e230b6Smaya#define YY_USER_ACTION
182810e230b6Smaya#endif
182910e230b6Smaya
183010e230b6Smaya/* Code executed at the end of each rule. */
183110e230b6Smaya#ifndef YY_BREAK
183210e230b6Smaya#define YY_BREAK /*LINTED*/break;
183310e230b6Smaya#endif
183410e230b6Smaya
183510e230b6Smaya#define YY_RULE_SETUP \
183610e230b6Smaya	if ( yyleng > 0 ) \
183710e230b6Smaya		YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
183810e230b6Smaya				(yytext[yyleng - 1] == '\n'); \
183910e230b6Smaya	YY_USER_ACTION
184010e230b6Smaya
184110e230b6Smaya/** The main scanner function which does all the work.
184210e230b6Smaya */
184310e230b6SmayaYY_DECL
184410e230b6Smaya{
184510e230b6Smaya	yy_state_type yy_current_state;
184610e230b6Smaya	char *yy_cp, *yy_bp;
184710e230b6Smaya	int yy_act;
184810e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
184910e230b6Smaya
185010e230b6Smaya    yylval = yylval_param;
185110e230b6Smaya
185210e230b6Smaya    yylloc = yylloc_param;
185310e230b6Smaya
185410e230b6Smaya	if ( !yyg->yy_init )
185510e230b6Smaya		{
185610e230b6Smaya		yyg->yy_init = 1;
185710e230b6Smaya
185810e230b6Smaya#ifdef YY_USER_INIT
185910e230b6Smaya		YY_USER_INIT;
186010e230b6Smaya#endif
186110e230b6Smaya
186210e230b6Smaya		if ( ! yyg->yy_start )
186310e230b6Smaya			yyg->yy_start = 1;	/* first start state */
186410e230b6Smaya
186510e230b6Smaya		if ( ! yyin )
186610e230b6Smaya			yyin = stdin;
186710e230b6Smaya
186810e230b6Smaya		if ( ! yyout )
186910e230b6Smaya			yyout = stdout;
187010e230b6Smaya
187110e230b6Smaya		if ( ! YY_CURRENT_BUFFER ) {
187210e230b6Smaya			yyensure_buffer_stack (yyscanner);
187310e230b6Smaya			YY_CURRENT_BUFFER_LVALUE =
187410e230b6Smaya				yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
187510e230b6Smaya		}
187610e230b6Smaya
187710e230b6Smaya		yy_load_buffer_state( yyscanner );
187810e230b6Smaya		}
187910e230b6Smaya
188010e230b6Smaya	{
188110e230b6Smaya#line 230 "../src/compiler/glsl/glsl_lexer.ll"
188210e230b6Smaya
188310e230b6Smaya
188410e230b6Smaya#line 1884 "src/compiler/glsl/glsl_lexer.cpp"
188510e230b6Smaya
188610e230b6Smaya	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
188710e230b6Smaya		{
188810e230b6Smaya		yy_cp = yyg->yy_c_buf_p;
188910e230b6Smaya
189010e230b6Smaya		/* Support of yytext. */
189110e230b6Smaya		*yy_cp = yyg->yy_hold_char;
189210e230b6Smaya
189310e230b6Smaya		/* yy_bp points to the position in yy_ch_buf of the start of
189410e230b6Smaya		 * the current run.
189510e230b6Smaya		 */
189610e230b6Smaya		yy_bp = yy_cp;
189710e230b6Smaya
189810e230b6Smaya		yy_current_state = yyg->yy_start;
189910e230b6Smaya		yy_current_state += YY_AT_BOL();
190010e230b6Smayayy_match:
190110e230b6Smaya		do
190210e230b6Smaya			{
190310e230b6Smaya			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
190410e230b6Smaya			if ( yy_accept[yy_current_state] )
190510e230b6Smaya				{
190610e230b6Smaya				yyg->yy_last_accepting_state = yy_current_state;
190710e230b6Smaya				yyg->yy_last_accepting_cpos = yy_cp;
190810e230b6Smaya				}
190910e230b6Smaya			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
191010e230b6Smaya				{
191110e230b6Smaya				yy_current_state = (int) yy_def[yy_current_state];
191210e230b6Smaya				if ( yy_current_state >= 1096 )
191310e230b6Smaya					yy_c = yy_meta[yy_c];
191410e230b6Smaya				}
191510e230b6Smaya			yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
191610e230b6Smaya			++yy_cp;
191710e230b6Smaya			}
191810e230b6Smaya		while ( yy_current_state != 1095 );
191910e230b6Smaya		yy_cp = yyg->yy_last_accepting_cpos;
192010e230b6Smaya		yy_current_state = yyg->yy_last_accepting_state;
192110e230b6Smaya
192210e230b6Smayayy_find_action:
192310e230b6Smaya		yy_act = yy_accept[yy_current_state];
192410e230b6Smaya
192510e230b6Smaya		YY_DO_BEFORE_ACTION;
192610e230b6Smaya
192710e230b6Smayado_action:	/* This label is used only to access EOF actions. */
192810e230b6Smaya
192910e230b6Smaya		switch ( yy_act )
193010e230b6Smaya	{ /* beginning of action switch */
193110e230b6Smaya			case 0: /* must back up */
193210e230b6Smaya			/* undo the effects of YY_DO_BEFORE_ACTION */
193310e230b6Smaya			*yy_cp = yyg->yy_hold_char;
193410e230b6Smaya			yy_cp = yyg->yy_last_accepting_cpos;
193510e230b6Smaya			yy_current_state = yyg->yy_last_accepting_state;
193610e230b6Smaya			goto yy_find_action;
193710e230b6Smaya
193810e230b6Smayacase 1:
193910e230b6SmayaYY_RULE_SETUP
194010e230b6Smaya#line 232 "../src/compiler/glsl/glsl_lexer.ll"
194110e230b6Smaya;
194210e230b6Smaya	YY_BREAK
194310e230b6Smaya/* Preprocessor tokens. */
194410e230b6Smayacase 2:
194510e230b6Smaya*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
194610e230b6Smayayyg->yy_c_buf_p = yy_cp -= 1;
194710e230b6SmayaYY_DO_BEFORE_ACTION; /* set up yytext again */
194810e230b6SmayaYY_RULE_SETUP
194910e230b6Smaya#line 235 "../src/compiler/glsl/glsl_lexer.ll"
195010e230b6Smaya;
195110e230b6Smaya	YY_BREAK
195210e230b6Smayacase 3:
195310e230b6SmayaYY_RULE_SETUP
195410e230b6Smaya#line 236 "../src/compiler/glsl/glsl_lexer.ll"
195510e230b6Smaya{ BEGIN PP; return VERSION_TOK; }
195610e230b6Smaya	YY_BREAK
195710e230b6Smayacase 4:
195810e230b6SmayaYY_RULE_SETUP
195910e230b6Smaya#line 237 "../src/compiler/glsl/glsl_lexer.ll"
196010e230b6Smaya{ BEGIN PP; return EXTENSION; }
196110e230b6Smaya	YY_BREAK
196210e230b6Smayacase 5:
196310e230b6Smaya*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
196410e230b6Smayayyg->yy_c_buf_p = yy_cp -= 1;
196510e230b6SmayaYY_DO_BEFORE_ACTION; /* set up yytext again */
196610e230b6SmayaYY_RULE_SETUP
196710e230b6Smaya#line 238 "../src/compiler/glsl/glsl_lexer.ll"
196810e230b6Smaya{
196910e230b6Smaya				   /* Eat characters until the first digit is
197010e230b6Smaya				    * encountered
197110e230b6Smaya				    */
197210e230b6Smaya				   char *ptr = yytext;
197310e230b6Smaya				   while (!isdigit(*ptr))
197410e230b6Smaya				      ptr++;
197510e230b6Smaya
197610e230b6Smaya				   /* Subtract one from the line number because
197710e230b6Smaya				    * yylineno is zero-based instead of
197810e230b6Smaya				    * one-based.
197910e230b6Smaya				    */
198010e230b6Smaya				   yylineno = strtol(ptr, &ptr, 0) - 1;
198110e230b6Smaya
198210e230b6Smaya                                   /* From GLSL 3.30 and GLSL ES on, after processing the
198310e230b6Smaya                                    * line directive (including its new-line), the implementation
198410e230b6Smaya                                    * will behave as if it is compiling at the line number passed
198510e230b6Smaya                                    * as argument. It was line number + 1 in older specifications.
198610e230b6Smaya                                    */
198710e230b6Smaya                                   if (yyextra->is_version(330, 100))
198810e230b6Smaya                                      yylineno--;
198910e230b6Smaya
199010e230b6Smaya				   yylloc->source = strtol(ptr, NULL, 0);
199110e230b6Smaya				}
199210e230b6Smaya	YY_BREAK
199310e230b6Smayacase 6:
199410e230b6Smaya*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
199510e230b6Smayayyg->yy_c_buf_p = yy_cp -= 1;
199610e230b6SmayaYY_DO_BEFORE_ACTION; /* set up yytext again */
199710e230b6SmayaYY_RULE_SETUP
199810e230b6Smaya#line 262 "../src/compiler/glsl/glsl_lexer.ll"
199910e230b6Smaya{
200010e230b6Smaya				   /* Eat characters until the first digit is
200110e230b6Smaya				    * encountered
200210e230b6Smaya				    */
200310e230b6Smaya				   char *ptr = yytext;
200410e230b6Smaya				   while (!isdigit(*ptr))
200510e230b6Smaya				      ptr++;
200610e230b6Smaya
200710e230b6Smaya				   /* Subtract one from the line number because
200810e230b6Smaya				    * yylineno is zero-based instead of
200910e230b6Smaya				    * one-based.
201010e230b6Smaya				    */
201110e230b6Smaya				   yylineno = strtol(ptr, &ptr, 0) - 1;
201210e230b6Smaya
201310e230b6Smaya                                   /* From GLSL 3.30 and GLSL ES on, after processing the
201410e230b6Smaya                                    * line directive (including its new-line), the implementation
201510e230b6Smaya                                    * will behave as if it is compiling at the line number passed
201610e230b6Smaya                                    * as argument. It was line number + 1 in older specifications.
201710e230b6Smaya                                    */
201810e230b6Smaya                                   if (yyextra->is_version(330, 100))
201910e230b6Smaya                                      yylineno--;
202010e230b6Smaya				}
202110e230b6Smaya	YY_BREAK
202210e230b6Smayacase 7:
202310e230b6SmayaYY_RULE_SETUP
202410e230b6Smaya#line 284 "../src/compiler/glsl/glsl_lexer.ll"
202510e230b6Smaya{
202610e230b6Smaya				  BEGIN PP;
202710e230b6Smaya				  return PRAGMA_DEBUG_ON;
202810e230b6Smaya				}
202910e230b6Smaya	YY_BREAK
203010e230b6Smayacase 8:
203110e230b6SmayaYY_RULE_SETUP
203210e230b6Smaya#line 288 "../src/compiler/glsl/glsl_lexer.ll"
203310e230b6Smaya{
203410e230b6Smaya				  BEGIN PP;
203510e230b6Smaya				  return PRAGMA_DEBUG_OFF;
203610e230b6Smaya				}
203710e230b6Smaya	YY_BREAK
203810e230b6Smayacase 9:
203910e230b6SmayaYY_RULE_SETUP
204010e230b6Smaya#line 292 "../src/compiler/glsl/glsl_lexer.ll"
204110e230b6Smaya{
204210e230b6Smaya				  BEGIN PP;
204310e230b6Smaya				  return PRAGMA_OPTIMIZE_ON;
204410e230b6Smaya				}
204510e230b6Smaya	YY_BREAK
204610e230b6Smayacase 10:
204710e230b6SmayaYY_RULE_SETUP
204810e230b6Smaya#line 296 "../src/compiler/glsl/glsl_lexer.ll"
204910e230b6Smaya{
205010e230b6Smaya				  BEGIN PP;
205110e230b6Smaya				  return PRAGMA_OPTIMIZE_OFF;
205210e230b6Smaya				}
205310e230b6Smaya	YY_BREAK
205410e230b6Smayacase 11:
205510e230b6SmayaYY_RULE_SETUP
205610e230b6Smaya#line 300 "../src/compiler/glsl/glsl_lexer.ll"
205710e230b6Smaya{
205810e230b6Smaya				  BEGIN PP;
205910e230b6Smaya				  return PRAGMA_WARNING_ON;
206010e230b6Smaya				}
206110e230b6Smaya	YY_BREAK
206210e230b6Smayacase 12:
206310e230b6SmayaYY_RULE_SETUP
206410e230b6Smaya#line 304 "../src/compiler/glsl/glsl_lexer.ll"
206510e230b6Smaya{
206610e230b6Smaya				  BEGIN PP;
206710e230b6Smaya				  return PRAGMA_WARNING_OFF;
206810e230b6Smaya				}
206910e230b6Smaya	YY_BREAK
207010e230b6Smayacase 13:
207110e230b6SmayaYY_RULE_SETUP
207210e230b6Smaya#line 308 "../src/compiler/glsl/glsl_lexer.ll"
207310e230b6Smaya{
207410e230b6Smaya				  BEGIN PP;
207510e230b6Smaya				  return PRAGMA_INVARIANT_ALL;
207610e230b6Smaya				}
207710e230b6Smaya	YY_BREAK
207810e230b6Smayacase 14:
207910e230b6SmayaYY_RULE_SETUP
208010e230b6Smaya#line 312 "../src/compiler/glsl/glsl_lexer.ll"
208110e230b6Smaya{ BEGIN PRAGMA; }
208210e230b6Smaya	YY_BREAK
208310e230b6Smayacase 15:
208410e230b6Smaya/* rule 15 can match eol */
208510e230b6SmayaYY_RULE_SETUP
208610e230b6Smaya#line 314 "../src/compiler/glsl/glsl_lexer.ll"
208710e230b6Smaya{ BEGIN 0; yylineno++; yycolumn = 0; }
208810e230b6Smaya	YY_BREAK
208910e230b6Smayacase 16:
209010e230b6SmayaYY_RULE_SETUP
209110e230b6Smaya#line 315 "../src/compiler/glsl/glsl_lexer.ll"
209210e230b6Smaya{ }
209310e230b6Smaya	YY_BREAK
209410e230b6Smayacase 17:
209510e230b6SmayaYY_RULE_SETUP
209610e230b6Smaya#line 317 "../src/compiler/glsl/glsl_lexer.ll"
209710e230b6Smaya{ }
209810e230b6Smaya	YY_BREAK
209910e230b6Smayacase 18:
210010e230b6SmayaYY_RULE_SETUP
210110e230b6Smaya#line 318 "../src/compiler/glsl/glsl_lexer.ll"
210210e230b6Smaya{ }
210310e230b6Smaya	YY_BREAK
210410e230b6Smayacase 19:
210510e230b6SmayaYY_RULE_SETUP
210610e230b6Smaya#line 319 "../src/compiler/glsl/glsl_lexer.ll"
210710e230b6Smayareturn COLON;
210810e230b6Smaya	YY_BREAK
210910e230b6Smayacase 20:
211010e230b6SmayaYY_RULE_SETUP
211110e230b6Smaya#line 320 "../src/compiler/glsl/glsl_lexer.ll"
211210e230b6Smaya{
211310e230b6Smaya				   /* We're not doing linear_strdup here, to avoid an implicit call
211410e230b6Smaya				    * on strlen() for the length of the string, as this is already
211510e230b6Smaya				    * found by flex and stored in yyleng
211610e230b6Smaya				    */
211710e230b6Smaya                                    void *mem_ctx = yyextra->linalloc;
211810e230b6Smaya                                    char *id = (char *) linear_alloc_child(mem_ctx, yyleng + 1);
211910e230b6Smaya                                    memcpy(id, yytext, yyleng + 1);
212010e230b6Smaya                                    yylval->identifier = id;
212110e230b6Smaya				   return IDENTIFIER;
212210e230b6Smaya				}
212310e230b6Smaya	YY_BREAK
212410e230b6Smayacase 21:
212510e230b6SmayaYY_RULE_SETUP
212610e230b6Smaya#line 331 "../src/compiler/glsl/glsl_lexer.ll"
212710e230b6Smaya{
212810e230b6Smaya				    yylval->n = strtol(yytext, NULL, 10);
212910e230b6Smaya				    return INTCONSTANT;
213010e230b6Smaya				}
213110e230b6Smaya	YY_BREAK
213210e230b6Smayacase 22:
213310e230b6SmayaYY_RULE_SETUP
213410e230b6Smaya#line 335 "../src/compiler/glsl/glsl_lexer.ll"
213510e230b6Smaya{
213610e230b6Smaya				    yylval->n = 0;
213710e230b6Smaya				    return INTCONSTANT;
213810e230b6Smaya				}
213910e230b6Smaya	YY_BREAK
214010e230b6Smayacase 23:
214110e230b6Smaya/* rule 23 can match eol */
214210e230b6SmayaYY_RULE_SETUP
214310e230b6Smaya#line 339 "../src/compiler/glsl/glsl_lexer.ll"
214410e230b6Smaya{ BEGIN 0; yylineno++; yycolumn = 0; return EOL; }
214510e230b6Smaya	YY_BREAK
214610e230b6Smayacase 24:
214710e230b6SmayaYY_RULE_SETUP
214810e230b6Smaya#line 340 "../src/compiler/glsl/glsl_lexer.ll"
214910e230b6Smaya{ return yytext[0]; }
215010e230b6Smaya	YY_BREAK
215110e230b6Smayacase 25:
215210e230b6Smaya/* rule 25 can match eol */
215310e230b6SmayaYY_RULE_SETUP
215410e230b6Smaya#line 342 "../src/compiler/glsl/glsl_lexer.ll"
215510e230b6Smaya{ yylineno++; yycolumn = 0; }
215610e230b6Smaya	YY_BREAK
215710e230b6Smayacase 26:
215810e230b6SmayaYY_RULE_SETUP
215910e230b6Smaya#line 344 "../src/compiler/glsl/glsl_lexer.ll"
216010e230b6SmayaDEPRECATED_ES_KEYWORD(ATTRIBUTE);
216110e230b6Smaya	YY_BREAK
216210e230b6Smayacase 27:
216310e230b6SmayaYY_RULE_SETUP
216410e230b6Smaya#line 345 "../src/compiler/glsl/glsl_lexer.ll"
216510e230b6Smayareturn CONST_TOK;
216610e230b6Smaya	YY_BREAK
216710e230b6Smayacase 28:
216810e230b6SmayaYY_RULE_SETUP
216910e230b6Smaya#line 346 "../src/compiler/glsl/glsl_lexer.ll"
217010e230b6Smaya{ yylval->type = glsl_type::bool_type; return BASIC_TYPE_TOK; }
217110e230b6Smaya	YY_BREAK
217210e230b6Smayacase 29:
217310e230b6SmayaYY_RULE_SETUP
217410e230b6Smaya#line 347 "../src/compiler/glsl/glsl_lexer.ll"
217510e230b6Smaya{ yylval->type = glsl_type::float_type; return BASIC_TYPE_TOK; }
217610e230b6Smaya	YY_BREAK
217710e230b6Smayacase 30:
217810e230b6SmayaYY_RULE_SETUP
217910e230b6Smaya#line 348 "../src/compiler/glsl/glsl_lexer.ll"
218010e230b6Smaya{ yylval->type = glsl_type::int_type; return BASIC_TYPE_TOK; }
218110e230b6Smaya	YY_BREAK
218210e230b6Smayacase 31:
218310e230b6SmayaYY_RULE_SETUP
218410e230b6Smaya#line 349 "../src/compiler/glsl/glsl_lexer.ll"
218510e230b6SmayaTYPE(130, 300, 130, 300, glsl_type::uint_type);
218610e230b6Smaya	YY_BREAK
218710e230b6Smayacase 32:
218810e230b6SmayaYY_RULE_SETUP
218910e230b6Smaya#line 351 "../src/compiler/glsl/glsl_lexer.ll"
219010e230b6Smayareturn BREAK;
219110e230b6Smaya	YY_BREAK
219210e230b6Smayacase 33:
219310e230b6SmayaYY_RULE_SETUP
219410e230b6Smaya#line 352 "../src/compiler/glsl/glsl_lexer.ll"
219510e230b6Smayareturn CONTINUE;
219610e230b6Smaya	YY_BREAK
219710e230b6Smayacase 34:
219810e230b6SmayaYY_RULE_SETUP
219910e230b6Smaya#line 353 "../src/compiler/glsl/glsl_lexer.ll"
220010e230b6Smayareturn DO;
220110e230b6Smaya	YY_BREAK
220210e230b6Smayacase 35:
220310e230b6SmayaYY_RULE_SETUP
220410e230b6Smaya#line 354 "../src/compiler/glsl/glsl_lexer.ll"
220510e230b6Smayareturn WHILE;
220610e230b6Smaya	YY_BREAK
220710e230b6Smayacase 36:
220810e230b6SmayaYY_RULE_SETUP
220910e230b6Smaya#line 355 "../src/compiler/glsl/glsl_lexer.ll"
221010e230b6Smayareturn ELSE;
221110e230b6Smaya	YY_BREAK
221210e230b6Smayacase 37:
221310e230b6SmayaYY_RULE_SETUP
221410e230b6Smaya#line 356 "../src/compiler/glsl/glsl_lexer.ll"
221510e230b6Smayareturn FOR;
221610e230b6Smaya	YY_BREAK
221710e230b6Smayacase 38:
221810e230b6SmayaYY_RULE_SETUP
221910e230b6Smaya#line 357 "../src/compiler/glsl/glsl_lexer.ll"
222010e230b6Smayareturn IF;
222110e230b6Smaya	YY_BREAK
222210e230b6Smayacase 39:
222310e230b6SmayaYY_RULE_SETUP
222410e230b6Smaya#line 358 "../src/compiler/glsl/glsl_lexer.ll"
222510e230b6Smayareturn DISCARD;
222610e230b6Smaya	YY_BREAK
222710e230b6Smayacase 40:
222810e230b6SmayaYY_RULE_SETUP
222910e230b6Smaya#line 359 "../src/compiler/glsl/glsl_lexer.ll"
223010e230b6Smayareturn RETURN;
223110e230b6Smaya	YY_BREAK
223210e230b6Smayacase 41:
223310e230b6SmayaYY_RULE_SETUP
223410e230b6Smaya#line 361 "../src/compiler/glsl/glsl_lexer.ll"
223510e230b6Smaya{ yylval->type = glsl_type::bvec2_type; return BASIC_TYPE_TOK; }
223610e230b6Smaya	YY_BREAK
223710e230b6Smayacase 42:
223810e230b6SmayaYY_RULE_SETUP
223910e230b6Smaya#line 362 "../src/compiler/glsl/glsl_lexer.ll"
224010e230b6Smaya{ yylval->type = glsl_type::bvec3_type; return BASIC_TYPE_TOK; }
224110e230b6Smaya	YY_BREAK
224210e230b6Smayacase 43:
224310e230b6SmayaYY_RULE_SETUP
224410e230b6Smaya#line 363 "../src/compiler/glsl/glsl_lexer.ll"
224510e230b6Smaya{ yylval->type = glsl_type::bvec4_type; return BASIC_TYPE_TOK; }
224610e230b6Smaya	YY_BREAK
224710e230b6Smayacase 44:
224810e230b6SmayaYY_RULE_SETUP
224910e230b6Smaya#line 364 "../src/compiler/glsl/glsl_lexer.ll"
225010e230b6Smaya{ yylval->type = glsl_type::ivec2_type; return BASIC_TYPE_TOK; }
225110e230b6Smaya	YY_BREAK
225210e230b6Smayacase 45:
225310e230b6SmayaYY_RULE_SETUP
225410e230b6Smaya#line 365 "../src/compiler/glsl/glsl_lexer.ll"
225510e230b6Smaya{ yylval->type = glsl_type::ivec3_type; return BASIC_TYPE_TOK; }
225610e230b6Smaya	YY_BREAK
225710e230b6Smayacase 46:
225810e230b6SmayaYY_RULE_SETUP
225910e230b6Smaya#line 366 "../src/compiler/glsl/glsl_lexer.ll"
226010e230b6Smaya{ yylval->type = glsl_type::ivec4_type; return BASIC_TYPE_TOK; }
226110e230b6Smaya	YY_BREAK
226210e230b6Smayacase 47:
226310e230b6SmayaYY_RULE_SETUP
226410e230b6Smaya#line 367 "../src/compiler/glsl/glsl_lexer.ll"
226510e230b6SmayaTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable, glsl_type::uvec2_type);
226610e230b6Smaya	YY_BREAK
226710e230b6Smayacase 48:
226810e230b6SmayaYY_RULE_SETUP
226910e230b6Smaya#line 368 "../src/compiler/glsl/glsl_lexer.ll"
227010e230b6SmayaTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable, glsl_type::uvec3_type);
227110e230b6Smaya	YY_BREAK
227210e230b6Smayacase 49:
227310e230b6SmayaYY_RULE_SETUP
227410e230b6Smaya#line 369 "../src/compiler/glsl/glsl_lexer.ll"
227510e230b6SmayaTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable, glsl_type::uvec4_type);
227610e230b6Smaya	YY_BREAK
227710e230b6Smayacase 50:
227810e230b6SmayaYY_RULE_SETUP
227910e230b6Smaya#line 370 "../src/compiler/glsl/glsl_lexer.ll"
228010e230b6Smaya{ yylval->type = glsl_type::vec2_type; return BASIC_TYPE_TOK; }
228110e230b6Smaya	YY_BREAK
228210e230b6Smayacase 51:
228310e230b6SmayaYY_RULE_SETUP
228410e230b6Smaya#line 371 "../src/compiler/glsl/glsl_lexer.ll"
228510e230b6Smaya{ yylval->type = glsl_type::vec3_type; return BASIC_TYPE_TOK; }
228610e230b6Smaya	YY_BREAK
228710e230b6Smayacase 52:
228810e230b6SmayaYY_RULE_SETUP
228910e230b6Smaya#line 372 "../src/compiler/glsl/glsl_lexer.ll"
229010e230b6Smaya{ yylval->type = glsl_type::vec4_type; return BASIC_TYPE_TOK; }
229110e230b6Smaya	YY_BREAK
229210e230b6Smayacase 53:
229310e230b6SmayaYY_RULE_SETUP
229410e230b6Smaya#line 373 "../src/compiler/glsl/glsl_lexer.ll"
229510e230b6Smaya{ yylval->type = glsl_type::mat2_type; return BASIC_TYPE_TOK; }
229610e230b6Smaya	YY_BREAK
229710e230b6Smayacase 54:
229810e230b6SmayaYY_RULE_SETUP
229910e230b6Smaya#line 374 "../src/compiler/glsl/glsl_lexer.ll"
230010e230b6Smaya{ yylval->type = glsl_type::mat3_type; return BASIC_TYPE_TOK; }
230110e230b6Smaya	YY_BREAK
230210e230b6Smayacase 55:
230310e230b6SmayaYY_RULE_SETUP
230410e230b6Smaya#line 375 "../src/compiler/glsl/glsl_lexer.ll"
230510e230b6Smaya{ yylval->type = glsl_type::mat4_type; return BASIC_TYPE_TOK; }
230610e230b6Smaya	YY_BREAK
230710e230b6Smayacase 56:
230810e230b6SmayaYY_RULE_SETUP
230910e230b6Smaya#line 376 "../src/compiler/glsl/glsl_lexer.ll"
231010e230b6SmayaTYPE(120, 300, 120, 300, glsl_type::mat2_type);
231110e230b6Smaya	YY_BREAK
231210e230b6Smayacase 57:
231310e230b6SmayaYY_RULE_SETUP
231410e230b6Smaya#line 377 "../src/compiler/glsl/glsl_lexer.ll"
231510e230b6SmayaTYPE(120, 300, 120, 300, glsl_type::mat2x3_type);
231610e230b6Smaya	YY_BREAK
231710e230b6Smayacase 58:
231810e230b6SmayaYY_RULE_SETUP
231910e230b6Smaya#line 378 "../src/compiler/glsl/glsl_lexer.ll"
232010e230b6SmayaTYPE(120, 300, 120, 300, glsl_type::mat2x4_type);
232110e230b6Smaya	YY_BREAK
232210e230b6Smayacase 59:
232310e230b6SmayaYY_RULE_SETUP
232410e230b6Smaya#line 379 "../src/compiler/glsl/glsl_lexer.ll"
232510e230b6SmayaTYPE(120, 300, 120, 300, glsl_type::mat3x2_type);
232610e230b6Smaya	YY_BREAK
232710e230b6Smayacase 60:
232810e230b6SmayaYY_RULE_SETUP
232910e230b6Smaya#line 380 "../src/compiler/glsl/glsl_lexer.ll"
233010e230b6SmayaTYPE(120, 300, 120, 300, glsl_type::mat3_type);
233110e230b6Smaya	YY_BREAK
233210e230b6Smayacase 61:
233310e230b6SmayaYY_RULE_SETUP
233410e230b6Smaya#line 381 "../src/compiler/glsl/glsl_lexer.ll"
233510e230b6SmayaTYPE(120, 300, 120, 300, glsl_type::mat3x4_type);
233610e230b6Smaya	YY_BREAK
233710e230b6Smayacase 62:
233810e230b6SmayaYY_RULE_SETUP
233910e230b6Smaya#line 382 "../src/compiler/glsl/glsl_lexer.ll"
234010e230b6SmayaTYPE(120, 300, 120, 300, glsl_type::mat4x2_type);
234110e230b6Smaya	YY_BREAK
234210e230b6Smayacase 63:
234310e230b6SmayaYY_RULE_SETUP
234410e230b6Smaya#line 383 "../src/compiler/glsl/glsl_lexer.ll"
234510e230b6SmayaTYPE(120, 300, 120, 300, glsl_type::mat4x3_type);
234610e230b6Smaya	YY_BREAK
234710e230b6Smayacase 64:
234810e230b6SmayaYY_RULE_SETUP
234910e230b6Smaya#line 384 "../src/compiler/glsl/glsl_lexer.ll"
235010e230b6SmayaTYPE(120, 300, 120, 300, glsl_type::mat4_type);
235110e230b6Smaya	YY_BREAK
235210e230b6Smayacase 65:
235310e230b6SmayaYY_RULE_SETUP
235410e230b6Smaya#line 386 "../src/compiler/glsl/glsl_lexer.ll"
235510e230b6Smayareturn IN_TOK;
235610e230b6Smaya	YY_BREAK
235710e230b6Smayacase 66:
235810e230b6SmayaYY_RULE_SETUP
235910e230b6Smaya#line 387 "../src/compiler/glsl/glsl_lexer.ll"
236010e230b6Smayareturn OUT_TOK;
236110e230b6Smaya	YY_BREAK
236210e230b6Smayacase 67:
236310e230b6SmayaYY_RULE_SETUP
236410e230b6Smaya#line 388 "../src/compiler/glsl/glsl_lexer.ll"
236510e230b6Smayareturn INOUT_TOK;
236610e230b6Smaya	YY_BREAK
236710e230b6Smayacase 68:
236810e230b6SmayaYY_RULE_SETUP
236910e230b6Smaya#line 389 "../src/compiler/glsl/glsl_lexer.ll"
237010e230b6Smayareturn UNIFORM;
237110e230b6Smaya	YY_BREAK
237210e230b6Smayacase 69:
237310e230b6SmayaYY_RULE_SETUP
237410e230b6Smaya#line 390 "../src/compiler/glsl/glsl_lexer.ll"
237510e230b6SmayaKEYWORD_WITH_ALT(0, 0, 430, 310, yyextra->ARB_shader_storage_buffer_object_enable, BUFFER);
237610e230b6Smaya	YY_BREAK
237710e230b6Smayacase 70:
237810e230b6SmayaYY_RULE_SETUP
237910e230b6Smaya#line 391 "../src/compiler/glsl/glsl_lexer.ll"
238010e230b6SmayaDEPRECATED_ES_KEYWORD(VARYING);
238110e230b6Smaya	YY_BREAK
238210e230b6Smayacase 71:
238310e230b6SmayaYY_RULE_SETUP
238410e230b6Smaya#line 392 "../src/compiler/glsl/glsl_lexer.ll"
238510e230b6SmayaKEYWORD_WITH_ALT(120, 300, 120, 300, yyextra->EXT_gpu_shader4_enable, CENTROID);
238610e230b6Smaya	YY_BREAK
238710e230b6Smayacase 72:
238810e230b6SmayaYY_RULE_SETUP
238910e230b6Smaya#line 393 "../src/compiler/glsl/glsl_lexer.ll"
239010e230b6SmayaKEYWORD(120, 100, 120, 100, INVARIANT);
239110e230b6Smaya	YY_BREAK
239210e230b6Smayacase 73:
239310e230b6SmayaYY_RULE_SETUP
239410e230b6Smaya#line 394 "../src/compiler/glsl/glsl_lexer.ll"
239510e230b6SmayaKEYWORD_WITH_ALT(130, 100, 130, 300, yyextra->EXT_gpu_shader4_enable, FLAT);
239610e230b6Smaya	YY_BREAK
239710e230b6Smayacase 74:
239810e230b6SmayaYY_RULE_SETUP
239910e230b6Smaya#line 395 "../src/compiler/glsl/glsl_lexer.ll"
240010e230b6SmayaKEYWORD(130, 300, 130, 300, SMOOTH);
240110e230b6Smaya	YY_BREAK
240210e230b6Smayacase 75:
240310e230b6SmayaYY_RULE_SETUP
240410e230b6Smaya#line 396 "../src/compiler/glsl/glsl_lexer.ll"
240510e230b6SmayaKEYWORD_WITH_ALT(130, 300, 130, 0, yyextra->EXT_gpu_shader4_enable, NOPERSPECTIVE);
240610e230b6Smaya	YY_BREAK
240710e230b6Smayacase 76:
240810e230b6SmayaYY_RULE_SETUP
240910e230b6Smaya#line 397 "../src/compiler/glsl/glsl_lexer.ll"
241010e230b6SmayaKEYWORD_WITH_ALT(0, 300, 400, 320, yyextra->has_tessellation_shader(), PATCH);
241110e230b6Smaya	YY_BREAK
241210e230b6Smayacase 77:
241310e230b6SmayaYY_RULE_SETUP
241410e230b6Smaya#line 399 "../src/compiler/glsl/glsl_lexer.ll"
241510e230b6SmayaDEPRECATED_ES_TYPE(glsl_type::sampler1D_type);
241610e230b6Smaya	YY_BREAK
241710e230b6Smayacase 78:
241810e230b6SmayaYY_RULE_SETUP
241910e230b6Smaya#line 400 "../src/compiler/glsl/glsl_lexer.ll"
242010e230b6Smaya{ yylval->type = glsl_type::sampler2D_type; return BASIC_TYPE_TOK; }
242110e230b6Smaya	YY_BREAK
242210e230b6Smayacase 79:
242310e230b6SmayaYY_RULE_SETUP
242410e230b6Smaya#line 401 "../src/compiler/glsl/glsl_lexer.ll"
242510e230b6Smaya{ yylval->type = glsl_type::sampler3D_type; return BASIC_TYPE_TOK; }
242610e230b6Smaya	YY_BREAK
242710e230b6Smayacase 80:
242810e230b6SmayaYY_RULE_SETUP
242910e230b6Smaya#line 402 "../src/compiler/glsl/glsl_lexer.ll"
243010e230b6Smaya{ yylval->type = glsl_type::samplerCube_type; return BASIC_TYPE_TOK; }
243110e230b6Smaya	YY_BREAK
243210e230b6Smayacase 81:
243310e230b6SmayaYY_RULE_SETUP
243410e230b6Smaya#line 403 "../src/compiler/glsl/glsl_lexer.ll"
243510e230b6SmayaTYPE_WITH_ALT(130, 300, 130, 0,   yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_array, glsl_type::sampler1DArray_type);
243610e230b6Smaya	YY_BREAK
243710e230b6Smayacase 82:
243810e230b6SmayaYY_RULE_SETUP
243910e230b6Smaya#line 404 "../src/compiler/glsl/glsl_lexer.ll"
244010e230b6SmayaTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_array, glsl_type::sampler2DArray_type);
244110e230b6Smaya	YY_BREAK
244210e230b6Smayacase 83:
244310e230b6SmayaYY_RULE_SETUP
244410e230b6Smaya#line 405 "../src/compiler/glsl/glsl_lexer.ll"
244510e230b6SmayaDEPRECATED_ES_TYPE(glsl_type::sampler1DShadow_type);
244610e230b6Smaya	YY_BREAK
244710e230b6Smayacase 84:
244810e230b6SmayaYY_RULE_SETUP
244910e230b6Smaya#line 406 "../src/compiler/glsl/glsl_lexer.ll"
245010e230b6Smaya{ yylval->type = glsl_type::sampler2DShadow_type; return BASIC_TYPE_TOK; }
245110e230b6Smaya	YY_BREAK
245210e230b6Smayacase 85:
245310e230b6SmayaYY_RULE_SETUP
245410e230b6Smaya#line 407 "../src/compiler/glsl/glsl_lexer.ll"
245510e230b6SmayaTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable, glsl_type::samplerCubeShadow_type);
245610e230b6Smaya	YY_BREAK
245710e230b6Smayacase 86:
245810e230b6SmayaYY_RULE_SETUP
245910e230b6Smaya#line 408 "../src/compiler/glsl/glsl_lexer.ll"
246010e230b6SmayaTYPE_WITH_ALT(130, 300, 130, 0,   yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_array, glsl_type::sampler1DArrayShadow_type);
246110e230b6Smaya	YY_BREAK
246210e230b6Smayacase 87:
246310e230b6SmayaYY_RULE_SETUP
246410e230b6Smaya#line 409 "../src/compiler/glsl/glsl_lexer.ll"
246510e230b6SmayaTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_array, glsl_type::sampler2DArrayShadow_type);
246610e230b6Smaya	YY_BREAK
246710e230b6Smayacase 88:
246810e230b6SmayaYY_RULE_SETUP
246910e230b6Smaya#line 410 "../src/compiler/glsl/glsl_lexer.ll"
247010e230b6SmayaTYPE_WITH_ALT(130, 300, 130, 0,   yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer, glsl_type::isampler1D_type);
247110e230b6Smaya	YY_BREAK
247210e230b6Smayacase 89:
247310e230b6SmayaYY_RULE_SETUP
247410e230b6Smaya#line 411 "../src/compiler/glsl/glsl_lexer.ll"
247510e230b6SmayaTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer, glsl_type::isampler2D_type);
247610e230b6Smaya	YY_BREAK
247710e230b6Smayacase 90:
247810e230b6SmayaYY_RULE_SETUP
247910e230b6Smaya#line 412 "../src/compiler/glsl/glsl_lexer.ll"
248010e230b6SmayaTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer, glsl_type::isampler3D_type);
248110e230b6Smaya	YY_BREAK
248210e230b6Smayacase 91:
248310e230b6SmayaYY_RULE_SETUP
248410e230b6Smaya#line 413 "../src/compiler/glsl/glsl_lexer.ll"
248510e230b6SmayaTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer, glsl_type::isamplerCube_type);
248610e230b6Smaya	YY_BREAK
248710e230b6Smayacase 92:
248810e230b6SmayaYY_RULE_SETUP
248910e230b6Smaya#line 414 "../src/compiler/glsl/glsl_lexer.ll"
249010e230b6SmayaTYPE_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);
249110e230b6Smaya	YY_BREAK
249210e230b6Smayacase 93:
249310e230b6SmayaYY_RULE_SETUP
249410e230b6Smaya#line 415 "../src/compiler/glsl/glsl_lexer.ll"
249510e230b6SmayaTYPE_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);
249610e230b6Smaya	YY_BREAK
249710e230b6Smayacase 94:
249810e230b6SmayaYY_RULE_SETUP
249910e230b6Smaya#line 416 "../src/compiler/glsl/glsl_lexer.ll"
250010e230b6SmayaTYPE_WITH_ALT(130, 300, 130, 0,   yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer, glsl_type::usampler1D_type);
250110e230b6Smaya	YY_BREAK
250210e230b6Smayacase 95:
250310e230b6SmayaYY_RULE_SETUP
250410e230b6Smaya#line 417 "../src/compiler/glsl/glsl_lexer.ll"
250510e230b6SmayaTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer, glsl_type::usampler2D_type);
250610e230b6Smaya	YY_BREAK
250710e230b6Smayacase 96:
250810e230b6SmayaYY_RULE_SETUP
250910e230b6Smaya#line 418 "../src/compiler/glsl/glsl_lexer.ll"
251010e230b6SmayaTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer, glsl_type::usampler3D_type);
251110e230b6Smaya	YY_BREAK
251210e230b6Smayacase 97:
251310e230b6SmayaYY_RULE_SETUP
251410e230b6Smaya#line 419 "../src/compiler/glsl/glsl_lexer.ll"
251510e230b6SmayaTYPE_WITH_ALT(130, 300, 130, 300, yyextra->EXT_gpu_shader4_enable && yyextra->ctx->Extensions.EXT_texture_integer, glsl_type::usamplerCube_type);
251610e230b6Smaya	YY_BREAK
251710e230b6Smayacase 98:
251810e230b6SmayaYY_RULE_SETUP
251910e230b6Smaya#line 420 "../src/compiler/glsl/glsl_lexer.ll"
252010e230b6SmayaTYPE_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);
252110e230b6Smaya	YY_BREAK
252210e230b6Smayacase 99:
252310e230b6SmayaYY_RULE_SETUP
252410e230b6Smaya#line 421 "../src/compiler/glsl/glsl_lexer.ll"
252510e230b6SmayaTYPE_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);
252610e230b6Smaya	YY_BREAK
252710e230b6Smaya/* additional keywords in ARB_texture_multisample, included in GLSL 1.50 */
252810e230b6Smaya/* these are reserved but not defined in GLSL 3.00 */
252910e230b6Smaya/* [iu]sampler2DMS are defined in GLSL ES 3.10 */
253010e230b6Smayacase 100:
253110e230b6SmayaYY_RULE_SETUP
253210e230b6Smaya#line 426 "../src/compiler/glsl/glsl_lexer.ll"
253310e230b6SmayaTYPE_WITH_ALT(150, 300, 150, 310, yyextra->ARB_texture_multisample_enable, glsl_type::sampler2DMS_type);
253410e230b6Smaya	YY_BREAK
253510e230b6Smayacase 101:
253610e230b6SmayaYY_RULE_SETUP
253710e230b6Smaya#line 427 "../src/compiler/glsl/glsl_lexer.ll"
253810e230b6SmayaTYPE_WITH_ALT(150, 300, 150, 310, yyextra->ARB_texture_multisample_enable, glsl_type::isampler2DMS_type);
253910e230b6Smaya	YY_BREAK
254010e230b6Smayacase 102:
254110e230b6SmayaYY_RULE_SETUP
254210e230b6Smaya#line 428 "../src/compiler/glsl/glsl_lexer.ll"
254310e230b6SmayaTYPE_WITH_ALT(150, 300, 150, 310, yyextra->ARB_texture_multisample_enable, glsl_type::usampler2DMS_type);
254410e230b6Smaya	YY_BREAK
254510e230b6Smayacase 103:
254610e230b6SmayaYY_RULE_SETUP
254710e230b6Smaya#line 429 "../src/compiler/glsl/glsl_lexer.ll"
254810e230b6SmayaTYPE_WITH_ALT(150, 300, 150, 320, yyextra->ARB_texture_multisample_enable || yyextra->OES_texture_storage_multisample_2d_array_enable, glsl_type::sampler2DMSArray_type);
254910e230b6Smaya	YY_BREAK
255010e230b6Smayacase 104:
255110e230b6SmayaYY_RULE_SETUP
255210e230b6Smaya#line 430 "../src/compiler/glsl/glsl_lexer.ll"
255310e230b6SmayaTYPE_WITH_ALT(150, 300, 150, 320, yyextra->ARB_texture_multisample_enable || yyextra->OES_texture_storage_multisample_2d_array_enable, glsl_type::isampler2DMSArray_type);
255410e230b6Smaya	YY_BREAK
255510e230b6Smayacase 105:
255610e230b6SmayaYY_RULE_SETUP
255710e230b6Smaya#line 431 "../src/compiler/glsl/glsl_lexer.ll"
255810e230b6SmayaTYPE_WITH_ALT(150, 300, 150, 320, yyextra->ARB_texture_multisample_enable || yyextra->OES_texture_storage_multisample_2d_array_enable, glsl_type::usampler2DMSArray_type);
255910e230b6Smaya	YY_BREAK
256010e230b6Smaya/* keywords available with ARB_texture_cube_map_array_enable extension on desktop GLSL */
256110e230b6Smayacase 106:
256210e230b6SmayaYY_RULE_SETUP
256310e230b6Smaya#line 434 "../src/compiler/glsl/glsl_lexer.ll"
256410e230b6SmayaTYPE_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);
256510e230b6Smaya	YY_BREAK
256610e230b6Smayacase 107:
256710e230b6SmayaYY_RULE_SETUP
256810e230b6Smaya#line 435 "../src/compiler/glsl/glsl_lexer.ll"
256910e230b6SmayaTYPE_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);
257010e230b6Smaya	YY_BREAK
257110e230b6Smayacase 108:
257210e230b6SmayaYY_RULE_SETUP
257310e230b6Smaya#line 436 "../src/compiler/glsl/glsl_lexer.ll"
257410e230b6SmayaTYPE_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);
257510e230b6Smaya	YY_BREAK
257610e230b6Smayacase 109:
257710e230b6SmayaYY_RULE_SETUP
257810e230b6Smaya#line 437 "../src/compiler/glsl/glsl_lexer.ll"
257910e230b6SmayaTYPE_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);
258010e230b6Smaya	YY_BREAK
258110e230b6Smayacase 110:
258210e230b6SmayaYY_RULE_SETUP
258310e230b6Smaya#line 439 "../src/compiler/glsl/glsl_lexer.ll"
258410e230b6Smaya{
258510e230b6Smaya			  if (yyextra->OES_EGL_image_external_enable || yyextra->OES_EGL_image_external_essl3_enable) {
258610e230b6Smaya			     yylval->type = glsl_type::samplerExternalOES_type;
258710e230b6Smaya			     return BASIC_TYPE_TOK;
258810e230b6Smaya			  } else
258910e230b6Smaya			     return IDENTIFIER;
259010e230b6Smaya		}
259110e230b6Smaya	YY_BREAK
259210e230b6Smaya/* keywords available with ARB_gpu_shader5 */
259310e230b6Smayacase 111:
259410e230b6SmayaYY_RULE_SETUP
259510e230b6Smaya#line 448 "../src/compiler/glsl/glsl_lexer.ll"
259610e230b6SmayaKEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_gpu_shader5_enable || yyextra->EXT_gpu_shader5_enable || yyextra->OES_gpu_shader5_enable, PRECISE);
259710e230b6Smaya	YY_BREAK
259810e230b6Smaya/* keywords available with ARB_shader_image_load_store */
259910e230b6Smayacase 112:
260010e230b6SmayaYY_RULE_SETUP
260110e230b6Smaya#line 451 "../src/compiler/glsl/glsl_lexer.ll"
260210e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, glsl_type::image1D_type);
260310e230b6Smaya	YY_BREAK
260410e230b6Smayacase 113:
260510e230b6SmayaYY_RULE_SETUP
260610e230b6Smaya#line 452 "../src/compiler/glsl/glsl_lexer.ll"
260710e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, glsl_type::image2D_type);
260810e230b6Smaya	YY_BREAK
260910e230b6Smayacase 114:
261010e230b6SmayaYY_RULE_SETUP
261110e230b6Smaya#line 453 "../src/compiler/glsl/glsl_lexer.ll"
261210e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, glsl_type::image3D_type);
261310e230b6Smaya	YY_BREAK
261410e230b6Smayacase 115:
261510e230b6SmayaYY_RULE_SETUP
261610e230b6Smaya#line 454 "../src/compiler/glsl/glsl_lexer.ll"
261710e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, glsl_type::image2DRect_type);
261810e230b6Smaya	YY_BREAK
261910e230b6Smayacase 116:
262010e230b6SmayaYY_RULE_SETUP
262110e230b6Smaya#line 455 "../src/compiler/glsl/glsl_lexer.ll"
262210e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, glsl_type::imageCube_type);
262310e230b6Smaya	YY_BREAK
262410e230b6Smayacase 117:
262510e230b6SmayaYY_RULE_SETUP
262610e230b6Smaya#line 456 "../src/compiler/glsl/glsl_lexer.ll"
262710e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, glsl_type::imageBuffer_type);
262810e230b6Smaya	YY_BREAK
262910e230b6Smayacase 118:
263010e230b6SmayaYY_RULE_SETUP
263110e230b6Smaya#line 457 "../src/compiler/glsl/glsl_lexer.ll"
263210e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, glsl_type::image1DArray_type);
263310e230b6Smaya	YY_BREAK
263410e230b6Smayacase 119:
263510e230b6SmayaYY_RULE_SETUP
263610e230b6Smaya#line 458 "../src/compiler/glsl/glsl_lexer.ll"
263710e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, glsl_type::image2DArray_type);
263810e230b6Smaya	YY_BREAK
263910e230b6Smayacase 120:
264010e230b6SmayaYY_RULE_SETUP
264110e230b6Smaya#line 459 "../src/compiler/glsl/glsl_lexer.ll"
264210e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, glsl_type::imageCubeArray_type);
264310e230b6Smaya	YY_BREAK
264410e230b6Smayacase 121:
264510e230b6SmayaYY_RULE_SETUP
264610e230b6Smaya#line 460 "../src/compiler/glsl/glsl_lexer.ll"
264710e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, glsl_type::image2DMS_type);
264810e230b6Smaya	YY_BREAK
264910e230b6Smayacase 122:
265010e230b6SmayaYY_RULE_SETUP
265110e230b6Smaya#line 461 "../src/compiler/glsl/glsl_lexer.ll"
265210e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, glsl_type::image2DMSArray_type);
265310e230b6Smaya	YY_BREAK
265410e230b6Smayacase 123:
265510e230b6SmayaYY_RULE_SETUP
265610e230b6Smaya#line 462 "../src/compiler/glsl/glsl_lexer.ll"
265710e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, glsl_type::iimage1D_type);
265810e230b6Smaya	YY_BREAK
265910e230b6Smayacase 124:
266010e230b6SmayaYY_RULE_SETUP
266110e230b6Smaya#line 463 "../src/compiler/glsl/glsl_lexer.ll"
266210e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, glsl_type::iimage2D_type);
266310e230b6Smaya	YY_BREAK
266410e230b6Smayacase 125:
266510e230b6SmayaYY_RULE_SETUP
266610e230b6Smaya#line 464 "../src/compiler/glsl/glsl_lexer.ll"
266710e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, glsl_type::iimage3D_type);
266810e230b6Smaya	YY_BREAK
266910e230b6Smayacase 126:
267010e230b6SmayaYY_RULE_SETUP
267110e230b6Smaya#line 465 "../src/compiler/glsl/glsl_lexer.ll"
267210e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, glsl_type::iimage2DRect_type);
267310e230b6Smaya	YY_BREAK
267410e230b6Smayacase 127:
267510e230b6SmayaYY_RULE_SETUP
267610e230b6Smaya#line 466 "../src/compiler/glsl/glsl_lexer.ll"
267710e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, glsl_type::iimageCube_type);
267810e230b6Smaya	YY_BREAK
267910e230b6Smayacase 128:
268010e230b6SmayaYY_RULE_SETUP
268110e230b6Smaya#line 467 "../src/compiler/glsl/glsl_lexer.ll"
268210e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, glsl_type::iimageBuffer_type);
268310e230b6Smaya	YY_BREAK
268410e230b6Smayacase 129:
268510e230b6SmayaYY_RULE_SETUP
268610e230b6Smaya#line 468 "../src/compiler/glsl/glsl_lexer.ll"
268710e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, glsl_type::iimage1DArray_type);
268810e230b6Smaya	YY_BREAK
268910e230b6Smayacase 130:
269010e230b6SmayaYY_RULE_SETUP
269110e230b6Smaya#line 469 "../src/compiler/glsl/glsl_lexer.ll"
269210e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, glsl_type::iimage2DArray_type);
269310e230b6Smaya	YY_BREAK
269410e230b6Smayacase 131:
269510e230b6SmayaYY_RULE_SETUP
269610e230b6Smaya#line 470 "../src/compiler/glsl/glsl_lexer.ll"
269710e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, glsl_type::iimageCubeArray_type);
269810e230b6Smaya	YY_BREAK
269910e230b6Smayacase 132:
270010e230b6SmayaYY_RULE_SETUP
270110e230b6Smaya#line 471 "../src/compiler/glsl/glsl_lexer.ll"
270210e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, glsl_type::iimage2DMS_type);
270310e230b6Smaya	YY_BREAK
270410e230b6Smayacase 133:
270510e230b6SmayaYY_RULE_SETUP
270610e230b6Smaya#line 472 "../src/compiler/glsl/glsl_lexer.ll"
270710e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, glsl_type::iimage2DMSArray_type);
270810e230b6Smaya	YY_BREAK
270910e230b6Smayacase 134:
271010e230b6SmayaYY_RULE_SETUP
271110e230b6Smaya#line 473 "../src/compiler/glsl/glsl_lexer.ll"
271210e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, glsl_type::uimage1D_type);
271310e230b6Smaya	YY_BREAK
271410e230b6Smayacase 135:
271510e230b6SmayaYY_RULE_SETUP
271610e230b6Smaya#line 474 "../src/compiler/glsl/glsl_lexer.ll"
271710e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, glsl_type::uimage2D_type);
271810e230b6Smaya	YY_BREAK
271910e230b6Smayacase 136:
272010e230b6SmayaYY_RULE_SETUP
272110e230b6Smaya#line 475 "../src/compiler/glsl/glsl_lexer.ll"
272210e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, glsl_type::uimage3D_type);
272310e230b6Smaya	YY_BREAK
272410e230b6Smayacase 137:
272510e230b6SmayaYY_RULE_SETUP
272610e230b6Smaya#line 476 "../src/compiler/glsl/glsl_lexer.ll"
272710e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, glsl_type::uimage2DRect_type);
272810e230b6Smaya	YY_BREAK
272910e230b6Smayacase 138:
273010e230b6SmayaYY_RULE_SETUP
273110e230b6Smaya#line 477 "../src/compiler/glsl/glsl_lexer.ll"
273210e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, glsl_type::uimageCube_type);
273310e230b6Smaya	YY_BREAK
273410e230b6Smayacase 139:
273510e230b6SmayaYY_RULE_SETUP
273610e230b6Smaya#line 478 "../src/compiler/glsl/glsl_lexer.ll"
273710e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, glsl_type::uimageBuffer_type);
273810e230b6Smaya	YY_BREAK
273910e230b6Smayacase 140:
274010e230b6SmayaYY_RULE_SETUP
274110e230b6Smaya#line 479 "../src/compiler/glsl/glsl_lexer.ll"
274210e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, glsl_type::uimage1DArray_type);
274310e230b6Smaya	YY_BREAK
274410e230b6Smayacase 141:
274510e230b6SmayaYY_RULE_SETUP
274610e230b6Smaya#line 480 "../src/compiler/glsl/glsl_lexer.ll"
274710e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, glsl_type::uimage2DArray_type);
274810e230b6Smaya	YY_BREAK
274910e230b6Smayacase 142:
275010e230b6SmayaYY_RULE_SETUP
275110e230b6Smaya#line 481 "../src/compiler/glsl/glsl_lexer.ll"
275210e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, glsl_type::uimageCubeArray_type);
275310e230b6Smaya	YY_BREAK
275410e230b6Smayacase 143:
275510e230b6SmayaYY_RULE_SETUP
275610e230b6Smaya#line 482 "../src/compiler/glsl/glsl_lexer.ll"
275710e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, glsl_type::uimage2DMS_type);
275810e230b6Smaya	YY_BREAK
275910e230b6Smayacase 144:
276010e230b6SmayaYY_RULE_SETUP
276110e230b6Smaya#line 483 "../src/compiler/glsl/glsl_lexer.ll"
276210e230b6SmayaTYPE_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, glsl_type::uimage2DMSArray_type);
276310e230b6Smaya	YY_BREAK
276410e230b6Smayacase 145:
276510e230b6SmayaYY_RULE_SETUP
276610e230b6Smaya#line 484 "../src/compiler/glsl/glsl_lexer.ll"
276710e230b6SmayaKEYWORD(130, 300, 0, 0, IMAGE1DSHADOW);
276810e230b6Smaya	YY_BREAK
276910e230b6Smayacase 146:
277010e230b6SmayaYY_RULE_SETUP
277110e230b6Smaya#line 485 "../src/compiler/glsl/glsl_lexer.ll"
277210e230b6SmayaKEYWORD(130, 300, 0, 0, IMAGE2DSHADOW);
277310e230b6Smaya	YY_BREAK
277410e230b6Smayacase 147:
277510e230b6SmayaYY_RULE_SETUP
277610e230b6Smaya#line 486 "../src/compiler/glsl/glsl_lexer.ll"
277710e230b6SmayaKEYWORD(130, 300, 0, 0, IMAGE1DARRAYSHADOW);
277810e230b6Smaya	YY_BREAK
277910e230b6Smayacase 148:
278010e230b6SmayaYY_RULE_SETUP
278110e230b6Smaya#line 487 "../src/compiler/glsl/glsl_lexer.ll"
278210e230b6SmayaKEYWORD(130, 300, 0, 0, IMAGE2DARRAYSHADOW);
278310e230b6Smaya	YY_BREAK
278410e230b6Smayacase 149:
278510e230b6SmayaYY_RULE_SETUP
278610e230b6Smaya#line 489 "../src/compiler/glsl/glsl_lexer.ll"
278710e230b6SmayaKEYWORD_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, COHERENT);
278810e230b6Smaya	YY_BREAK
278910e230b6Smayacase 150:
279010e230b6SmayaYY_RULE_SETUP
279110e230b6Smaya#line 490 "../src/compiler/glsl/glsl_lexer.ll"
279210e230b6SmayaKEYWORD_WITH_ALT(110, 100, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, VOLATILE);
279310e230b6Smaya	YY_BREAK
279410e230b6Smayacase 151:
279510e230b6SmayaYY_RULE_SETUP
279610e230b6Smaya#line 491 "../src/compiler/glsl/glsl_lexer.ll"
279710e230b6SmayaKEYWORD_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, RESTRICT);
279810e230b6Smaya	YY_BREAK
279910e230b6Smayacase 152:
280010e230b6SmayaYY_RULE_SETUP
280110e230b6Smaya#line 492 "../src/compiler/glsl/glsl_lexer.ll"
280210e230b6SmayaKEYWORD_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, READONLY);
280310e230b6Smaya	YY_BREAK
280410e230b6Smayacase 153:
280510e230b6SmayaYY_RULE_SETUP
280610e230b6Smaya#line 493 "../src/compiler/glsl/glsl_lexer.ll"
280710e230b6SmayaKEYWORD_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, WRITEONLY);
280810e230b6Smaya	YY_BREAK
280910e230b6Smayacase 154:
281010e230b6SmayaYY_RULE_SETUP
281110e230b6Smaya#line 495 "../src/compiler/glsl/glsl_lexer.ll"
281210e230b6SmayaTYPE_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_atomic_counters_enable, glsl_type::atomic_uint_type);
281310e230b6Smaya	YY_BREAK
281410e230b6Smayacase 155:
281510e230b6SmayaYY_RULE_SETUP
281610e230b6Smaya#line 497 "../src/compiler/glsl/glsl_lexer.ll"
281710e230b6SmayaKEYWORD_WITH_ALT(430, 310, 430, 310, yyextra->ARB_compute_shader_enable, SHARED);
281810e230b6Smaya	YY_BREAK
281910e230b6Smayacase 156:
282010e230b6SmayaYY_RULE_SETUP
282110e230b6Smaya#line 499 "../src/compiler/glsl/glsl_lexer.ll"
282210e230b6Smayareturn STRUCT;
282310e230b6Smaya	YY_BREAK
282410e230b6Smayacase 157:
282510e230b6SmayaYY_RULE_SETUP
282610e230b6Smaya#line 500 "../src/compiler/glsl/glsl_lexer.ll"
282710e230b6Smayareturn VOID_TOK;
282810e230b6Smaya	YY_BREAK
282910e230b6Smayacase 158:
283010e230b6SmayaYY_RULE_SETUP
283110e230b6Smaya#line 502 "../src/compiler/glsl/glsl_lexer.ll"
283210e230b6Smaya{
283310e230b6Smaya		  if ((yyextra->is_version(140, 300))
283410e230b6Smaya		      || yyextra->ARB_bindless_texture_enable
283510e230b6Smaya		      || yyextra->KHR_blend_equation_advanced_enable
283610e230b6Smaya		      || yyextra->AMD_conservative_depth_enable
283710e230b6Smaya		      || yyextra->ARB_conservative_depth_enable
283810e230b6Smaya		      || yyextra->ARB_explicit_attrib_location_enable
283910e230b6Smaya		      || yyextra->ARB_explicit_uniform_location_enable
284010e230b6Smaya                      || yyextra->ARB_post_depth_coverage_enable
284110e230b6Smaya                      || yyextra->has_separate_shader_objects()
284210e230b6Smaya		      || yyextra->ARB_uniform_buffer_object_enable
284310e230b6Smaya		      || yyextra->ARB_fragment_coord_conventions_enable
284410e230b6Smaya                      || yyextra->ARB_shading_language_420pack_enable
284510e230b6Smaya                      || yyextra->ARB_compute_shader_enable
284610e230b6Smaya                      || yyextra->ARB_tessellation_shader_enable
284710e230b6Smaya                      || yyextra->EXT_shader_framebuffer_fetch_non_coherent_enable) {
284810e230b6Smaya		      return LAYOUT_TOK;
284910e230b6Smaya		   } else {
285010e230b6Smaya		      return classify_identifier(yyextra, yytext, yyleng, yylval);
285110e230b6Smaya		   }
285210e230b6Smaya		}
285310e230b6Smaya	YY_BREAK
285410e230b6Smayacase 159:
285510e230b6SmayaYY_RULE_SETUP
285610e230b6Smaya#line 524 "../src/compiler/glsl/glsl_lexer.ll"
285710e230b6Smayareturn INC_OP;
285810e230b6Smaya	YY_BREAK
285910e230b6Smayacase 160:
286010e230b6SmayaYY_RULE_SETUP
286110e230b6Smaya#line 525 "../src/compiler/glsl/glsl_lexer.ll"
286210e230b6Smayareturn DEC_OP;
286310e230b6Smaya	YY_BREAK
286410e230b6Smayacase 161:
286510e230b6SmayaYY_RULE_SETUP
286610e230b6Smaya#line 526 "../src/compiler/glsl/glsl_lexer.ll"
286710e230b6Smayareturn LE_OP;
286810e230b6Smaya	YY_BREAK
286910e230b6Smayacase 162:
287010e230b6SmayaYY_RULE_SETUP
287110e230b6Smaya#line 527 "../src/compiler/glsl/glsl_lexer.ll"
287210e230b6Smayareturn GE_OP;
287310e230b6Smaya	YY_BREAK
287410e230b6Smayacase 163:
287510e230b6SmayaYY_RULE_SETUP
287610e230b6Smaya#line 528 "../src/compiler/glsl/glsl_lexer.ll"
287710e230b6Smayareturn EQ_OP;
287810e230b6Smaya	YY_BREAK
287910e230b6Smayacase 164:
288010e230b6SmayaYY_RULE_SETUP
288110e230b6Smaya#line 529 "../src/compiler/glsl/glsl_lexer.ll"
288210e230b6Smayareturn NE_OP;
288310e230b6Smaya	YY_BREAK
288410e230b6Smayacase 165:
288510e230b6SmayaYY_RULE_SETUP
288610e230b6Smaya#line 530 "../src/compiler/glsl/glsl_lexer.ll"
288710e230b6Smayareturn AND_OP;
288810e230b6Smaya	YY_BREAK
288910e230b6Smayacase 166:
289010e230b6SmayaYY_RULE_SETUP
289110e230b6Smaya#line 531 "../src/compiler/glsl/glsl_lexer.ll"
289210e230b6Smayareturn OR_OP;
289310e230b6Smaya	YY_BREAK
289410e230b6Smayacase 167:
289510e230b6SmayaYY_RULE_SETUP
289610e230b6Smaya#line 532 "../src/compiler/glsl/glsl_lexer.ll"
289710e230b6Smayareturn XOR_OP;
289810e230b6Smaya	YY_BREAK
289910e230b6Smayacase 168:
290010e230b6SmayaYY_RULE_SETUP
290110e230b6Smaya#line 533 "../src/compiler/glsl/glsl_lexer.ll"
290210e230b6Smayareturn LEFT_OP;
290310e230b6Smaya	YY_BREAK
290410e230b6Smayacase 169:
290510e230b6SmayaYY_RULE_SETUP
290610e230b6Smaya#line 534 "../src/compiler/glsl/glsl_lexer.ll"
290710e230b6Smayareturn RIGHT_OP;
290810e230b6Smaya	YY_BREAK
290910e230b6Smayacase 170:
291010e230b6SmayaYY_RULE_SETUP
291110e230b6Smaya#line 536 "../src/compiler/glsl/glsl_lexer.ll"
291210e230b6Smayareturn MUL_ASSIGN;
291310e230b6Smaya	YY_BREAK
291410e230b6Smayacase 171:
291510e230b6SmayaYY_RULE_SETUP
291610e230b6Smaya#line 537 "../src/compiler/glsl/glsl_lexer.ll"
291710e230b6Smayareturn DIV_ASSIGN;
291810e230b6Smaya	YY_BREAK
291910e230b6Smayacase 172:
292010e230b6SmayaYY_RULE_SETUP
292110e230b6Smaya#line 538 "../src/compiler/glsl/glsl_lexer.ll"
292210e230b6Smayareturn ADD_ASSIGN;
292310e230b6Smaya	YY_BREAK
292410e230b6Smayacase 173:
292510e230b6SmayaYY_RULE_SETUP
292610e230b6Smaya#line 539 "../src/compiler/glsl/glsl_lexer.ll"
292710e230b6Smayareturn MOD_ASSIGN;
292810e230b6Smaya	YY_BREAK
292910e230b6Smayacase 174:
293010e230b6SmayaYY_RULE_SETUP
293110e230b6Smaya#line 540 "../src/compiler/glsl/glsl_lexer.ll"
293210e230b6Smayareturn LEFT_ASSIGN;
293310e230b6Smaya	YY_BREAK
293410e230b6Smayacase 175:
293510e230b6SmayaYY_RULE_SETUP
293610e230b6Smaya#line 541 "../src/compiler/glsl/glsl_lexer.ll"
293710e230b6Smayareturn RIGHT_ASSIGN;
293810e230b6Smaya	YY_BREAK
293910e230b6Smayacase 176:
294010e230b6SmayaYY_RULE_SETUP
294110e230b6Smaya#line 542 "../src/compiler/glsl/glsl_lexer.ll"
294210e230b6Smayareturn AND_ASSIGN;
294310e230b6Smaya	YY_BREAK
294410e230b6Smayacase 177:
294510e230b6SmayaYY_RULE_SETUP
294610e230b6Smaya#line 543 "../src/compiler/glsl/glsl_lexer.ll"
294710e230b6Smayareturn XOR_ASSIGN;
294810e230b6Smaya	YY_BREAK
294910e230b6Smayacase 178:
295010e230b6SmayaYY_RULE_SETUP
295110e230b6Smaya#line 544 "../src/compiler/glsl/glsl_lexer.ll"
295210e230b6Smayareturn OR_ASSIGN;
295310e230b6Smaya	YY_BREAK
295410e230b6Smayacase 179:
295510e230b6SmayaYY_RULE_SETUP
295610e230b6Smaya#line 545 "../src/compiler/glsl/glsl_lexer.ll"
295710e230b6Smayareturn SUB_ASSIGN;
295810e230b6Smaya	YY_BREAK
295910e230b6Smayacase 180:
296010e230b6SmayaYY_RULE_SETUP
296110e230b6Smaya#line 547 "../src/compiler/glsl/glsl_lexer.ll"
296210e230b6Smaya{
296310e230b6Smaya			    return LITERAL_INTEGER(10);
296410e230b6Smaya			}
296510e230b6Smaya	YY_BREAK
296610e230b6Smayacase 181:
296710e230b6SmayaYY_RULE_SETUP
296810e230b6Smaya#line 550 "../src/compiler/glsl/glsl_lexer.ll"
296910e230b6Smaya{
297010e230b6Smaya			    return LITERAL_INTEGER(16);
297110e230b6Smaya			}
297210e230b6Smaya	YY_BREAK
297310e230b6Smayacase 182:
297410e230b6SmayaYY_RULE_SETUP
297510e230b6Smaya#line 553 "../src/compiler/glsl/glsl_lexer.ll"
297610e230b6Smaya{
297710e230b6Smaya			    return LITERAL_INTEGER(8);
297810e230b6Smaya			}
297910e230b6Smaya	YY_BREAK
298010e230b6Smayacase 183:
298110e230b6Smaya#line 558 "../src/compiler/glsl/glsl_lexer.ll"
298210e230b6Smayacase 184:
298310e230b6Smaya#line 559 "../src/compiler/glsl/glsl_lexer.ll"
298410e230b6Smayacase 185:
298510e230b6Smaya#line 560 "../src/compiler/glsl/glsl_lexer.ll"
298610e230b6Smayacase 186:
298710e230b6SmayaYY_RULE_SETUP
298810e230b6Smaya#line 560 "../src/compiler/glsl/glsl_lexer.ll"
298910e230b6Smaya{
299010e230b6Smaya			    struct _mesa_glsl_parse_state *state = yyextra;
299110e230b6Smaya			    char suffix = yytext[strlen(yytext) - 1];
299210e230b6Smaya			    if (!state->is_version(120, 300) &&
299310e230b6Smaya			        (suffix == 'f' || suffix == 'F')) {
299410e230b6Smaya			        _mesa_glsl_warning(yylloc, state,
299510e230b6Smaya			                           "Float suffixes are invalid in GLSL 1.10");
299610e230b6Smaya			    }
299710e230b6Smaya			    yylval->real = _mesa_strtof(yytext, NULL);
299810e230b6Smaya			    return FLOATCONSTANT;
299910e230b6Smaya			}
300010e230b6Smaya	YY_BREAK
300110e230b6Smayacase 187:
300210e230b6Smaya#line 573 "../src/compiler/glsl/glsl_lexer.ll"
300310e230b6Smayacase 188:
300410e230b6Smaya#line 574 "../src/compiler/glsl/glsl_lexer.ll"
300510e230b6Smayacase 189:
300610e230b6Smaya#line 575 "../src/compiler/glsl/glsl_lexer.ll"
300710e230b6Smayacase 190:
300810e230b6SmayaYY_RULE_SETUP
300910e230b6Smaya#line 575 "../src/compiler/glsl/glsl_lexer.ll"
301010e230b6Smaya{
301110e230b6Smaya			    if (!yyextra->is_version(400, 0) &&
301210e230b6Smaya			        !yyextra->ARB_gpu_shader_fp64_enable)
301310e230b6Smaya			        return ERROR_TOK;
301410e230b6Smaya			    yylval->dreal = _mesa_strtod(yytext, NULL);
301510e230b6Smaya			    return DOUBLECONSTANT;
301610e230b6Smaya			}
301710e230b6Smaya	YY_BREAK
301810e230b6Smayacase 191:
301910e230b6SmayaYY_RULE_SETUP
302010e230b6Smaya#line 583 "../src/compiler/glsl/glsl_lexer.ll"
302110e230b6Smaya{
302210e230b6Smaya			    yylval->n = 1;
302310e230b6Smaya			    return BOOLCONSTANT;
302410e230b6Smaya			}
302510e230b6Smaya	YY_BREAK
302610e230b6Smayacase 192:
302710e230b6SmayaYY_RULE_SETUP
302810e230b6Smaya#line 587 "../src/compiler/glsl/glsl_lexer.ll"
302910e230b6Smaya{
303010e230b6Smaya			    yylval->n = 0;
303110e230b6Smaya			    return BOOLCONSTANT;
303210e230b6Smaya			}
303310e230b6Smaya	YY_BREAK
303410e230b6Smaya/* Reserved words in GLSL 1.10. */
303510e230b6Smayacase 193:
303610e230b6SmayaYY_RULE_SETUP
303710e230b6Smaya#line 594 "../src/compiler/glsl/glsl_lexer.ll"
303810e230b6SmayaKEYWORD(110, 100, 0, 0, ASM);
303910e230b6Smaya	YY_BREAK
304010e230b6Smayacase 194:
304110e230b6SmayaYY_RULE_SETUP
304210e230b6Smaya#line 595 "../src/compiler/glsl/glsl_lexer.ll"
304310e230b6SmayaKEYWORD(110, 100, 0, 0, CLASS);
304410e230b6Smaya	YY_BREAK
304510e230b6Smayacase 195:
304610e230b6SmayaYY_RULE_SETUP
304710e230b6Smaya#line 596 "../src/compiler/glsl/glsl_lexer.ll"
304810e230b6SmayaKEYWORD(110, 100, 0, 0, UNION);
304910e230b6Smaya	YY_BREAK
305010e230b6Smayacase 196:
305110e230b6SmayaYY_RULE_SETUP
305210e230b6Smaya#line 597 "../src/compiler/glsl/glsl_lexer.ll"
305310e230b6SmayaKEYWORD(110, 100, 0, 0, ENUM);
305410e230b6Smaya	YY_BREAK
305510e230b6Smayacase 197:
305610e230b6SmayaYY_RULE_SETUP
305710e230b6Smaya#line 598 "../src/compiler/glsl/glsl_lexer.ll"
305810e230b6SmayaKEYWORD(110, 100, 0, 0, TYPEDEF);
305910e230b6Smaya	YY_BREAK
306010e230b6Smayacase 198:
306110e230b6SmayaYY_RULE_SETUP
306210e230b6Smaya#line 599 "../src/compiler/glsl/glsl_lexer.ll"
306310e230b6SmayaKEYWORD(110, 100, 0, 0, TEMPLATE);
306410e230b6Smaya	YY_BREAK
306510e230b6Smayacase 199:
306610e230b6SmayaYY_RULE_SETUP
306710e230b6Smaya#line 600 "../src/compiler/glsl/glsl_lexer.ll"
306810e230b6SmayaKEYWORD(110, 100, 0, 0, THIS);
306910e230b6Smaya	YY_BREAK
307010e230b6Smayacase 200:
307110e230b6SmayaYY_RULE_SETUP
307210e230b6Smaya#line 601 "../src/compiler/glsl/glsl_lexer.ll"
307310e230b6SmayaKEYWORD_WITH_ALT(110, 100, 140, 300, yyextra->ARB_uniform_buffer_object_enable, PACKED_TOK);
307410e230b6Smaya	YY_BREAK
307510e230b6Smayacase 201:
307610e230b6SmayaYY_RULE_SETUP
307710e230b6Smaya#line 602 "../src/compiler/glsl/glsl_lexer.ll"
307810e230b6SmayaKEYWORD(110, 100, 0, 0, GOTO);
307910e230b6Smaya	YY_BREAK
308010e230b6Smayacase 202:
308110e230b6SmayaYY_RULE_SETUP
308210e230b6Smaya#line 603 "../src/compiler/glsl/glsl_lexer.ll"
308310e230b6SmayaKEYWORD(110, 100, 130, 300, SWITCH);
308410e230b6Smaya	YY_BREAK
308510e230b6Smayacase 203:
308610e230b6SmayaYY_RULE_SETUP
308710e230b6Smaya#line 604 "../src/compiler/glsl/glsl_lexer.ll"
308810e230b6SmayaKEYWORD(110, 100, 130, 300, DEFAULT);
308910e230b6Smaya	YY_BREAK
309010e230b6Smayacase 204:
309110e230b6SmayaYY_RULE_SETUP
309210e230b6Smaya#line 605 "../src/compiler/glsl/glsl_lexer.ll"
309310e230b6SmayaKEYWORD(110, 100, 0, 0, INLINE_TOK);
309410e230b6Smaya	YY_BREAK
309510e230b6Smayacase 205:
309610e230b6SmayaYY_RULE_SETUP
309710e230b6Smaya#line 606 "../src/compiler/glsl/glsl_lexer.ll"
309810e230b6SmayaKEYWORD(110, 100, 0, 0, NOINLINE);
309910e230b6Smaya	YY_BREAK
310010e230b6Smayacase 206:
310110e230b6SmayaYY_RULE_SETUP
310210e230b6Smaya#line 607 "../src/compiler/glsl/glsl_lexer.ll"
310310e230b6SmayaKEYWORD(110, 100, 0, 0, PUBLIC_TOK);
310410e230b6Smaya	YY_BREAK
310510e230b6Smayacase 207:
310610e230b6SmayaYY_RULE_SETUP
310710e230b6Smaya#line 608 "../src/compiler/glsl/glsl_lexer.ll"
310810e230b6SmayaKEYWORD(110, 100, 0, 0, STATIC);
310910e230b6Smaya	YY_BREAK
311010e230b6Smayacase 208:
311110e230b6SmayaYY_RULE_SETUP
311210e230b6Smaya#line 609 "../src/compiler/glsl/glsl_lexer.ll"
311310e230b6SmayaKEYWORD(110, 100, 0, 0, EXTERN);
311410e230b6Smaya	YY_BREAK
311510e230b6Smayacase 209:
311610e230b6SmayaYY_RULE_SETUP
311710e230b6Smaya#line 610 "../src/compiler/glsl/glsl_lexer.ll"
311810e230b6SmayaKEYWORD(110, 100, 0, 0, EXTERNAL);
311910e230b6Smaya	YY_BREAK
312010e230b6Smayacase 210:
312110e230b6SmayaYY_RULE_SETUP
312210e230b6Smaya#line 611 "../src/compiler/glsl/glsl_lexer.ll"
312310e230b6SmayaKEYWORD(110, 100, 0, 0, INTERFACE);
312410e230b6Smaya	YY_BREAK
312510e230b6Smayacase 211:
312610e230b6SmayaYY_RULE_SETUP
312710e230b6Smaya#line 612 "../src/compiler/glsl/glsl_lexer.ll"
312810e230b6SmayaKEYWORD(110, 100, 0, 0, LONG_TOK);
312910e230b6Smaya	YY_BREAK
313010e230b6Smayacase 212:
313110e230b6SmayaYY_RULE_SETUP
313210e230b6Smaya#line 613 "../src/compiler/glsl/glsl_lexer.ll"
313310e230b6SmayaKEYWORD(110, 100, 0, 0, SHORT_TOK);
313410e230b6Smaya	YY_BREAK
313510e230b6Smayacase 213:
313610e230b6SmayaYY_RULE_SETUP
313710e230b6Smaya#line 614 "../src/compiler/glsl/glsl_lexer.ll"
313810e230b6SmayaTYPE_WITH_ALT(130, 100, 130, 300, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::double_type);
313910e230b6Smaya	YY_BREAK
314010e230b6Smayacase 214:
314110e230b6SmayaYY_RULE_SETUP
314210e230b6Smaya#line 615 "../src/compiler/glsl/glsl_lexer.ll"
314310e230b6SmayaKEYWORD(110, 100, 0, 0, HALF);
314410e230b6Smaya	YY_BREAK
314510e230b6Smayacase 215:
314610e230b6SmayaYY_RULE_SETUP
314710e230b6Smaya#line 616 "../src/compiler/glsl/glsl_lexer.ll"
314810e230b6SmayaKEYWORD(110, 100, 0, 0, FIXED_TOK);
314910e230b6Smaya	YY_BREAK
315010e230b6Smayacase 216:
315110e230b6SmayaYY_RULE_SETUP
315210e230b6Smaya#line 617 "../src/compiler/glsl/glsl_lexer.ll"
315310e230b6SmayaKEYWORD_WITH_ALT(110, 100, 0, 0, yyextra->EXT_gpu_shader4_enable, UNSIGNED);
315410e230b6Smaya	YY_BREAK
315510e230b6Smayacase 217:
315610e230b6SmayaYY_RULE_SETUP
315710e230b6Smaya#line 618 "../src/compiler/glsl/glsl_lexer.ll"
315810e230b6SmayaKEYWORD(110, 100, 0, 0, INPUT_TOK);
315910e230b6Smaya	YY_BREAK
316010e230b6Smayacase 218:
316110e230b6SmayaYY_RULE_SETUP
316210e230b6Smaya#line 619 "../src/compiler/glsl/glsl_lexer.ll"
316310e230b6SmayaKEYWORD(110, 100, 0, 0, OUTPUT);
316410e230b6Smaya	YY_BREAK
316510e230b6Smayacase 219:
316610e230b6SmayaYY_RULE_SETUP
316710e230b6Smaya#line 620 "../src/compiler/glsl/glsl_lexer.ll"
316810e230b6SmayaKEYWORD(110, 100, 0, 0, HVEC2);
316910e230b6Smaya	YY_BREAK
317010e230b6Smayacase 220:
317110e230b6SmayaYY_RULE_SETUP
317210e230b6Smaya#line 621 "../src/compiler/glsl/glsl_lexer.ll"
317310e230b6SmayaKEYWORD(110, 100, 0, 0, HVEC3);
317410e230b6Smaya	YY_BREAK
317510e230b6Smayacase 221:
317610e230b6SmayaYY_RULE_SETUP
317710e230b6Smaya#line 622 "../src/compiler/glsl/glsl_lexer.ll"
317810e230b6SmayaKEYWORD(110, 100, 0, 0, HVEC4);
317910e230b6Smaya	YY_BREAK
318010e230b6Smayacase 222:
318110e230b6SmayaYY_RULE_SETUP
318210e230b6Smaya#line 623 "../src/compiler/glsl/glsl_lexer.ll"
318310e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dvec2_type);
318410e230b6Smaya	YY_BREAK
318510e230b6Smayacase 223:
318610e230b6SmayaYY_RULE_SETUP
318710e230b6Smaya#line 624 "../src/compiler/glsl/glsl_lexer.ll"
318810e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dvec3_type);
318910e230b6Smaya	YY_BREAK
319010e230b6Smayacase 224:
319110e230b6SmayaYY_RULE_SETUP
319210e230b6Smaya#line 625 "../src/compiler/glsl/glsl_lexer.ll"
319310e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dvec4_type);
319410e230b6Smaya	YY_BREAK
319510e230b6Smayacase 225:
319610e230b6SmayaYY_RULE_SETUP
319710e230b6Smaya#line 626 "../src/compiler/glsl/glsl_lexer.ll"
319810e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat2_type);
319910e230b6Smaya	YY_BREAK
320010e230b6Smayacase 226:
320110e230b6SmayaYY_RULE_SETUP
320210e230b6Smaya#line 627 "../src/compiler/glsl/glsl_lexer.ll"
320310e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat3_type);
320410e230b6Smaya	YY_BREAK
320510e230b6Smayacase 227:
320610e230b6SmayaYY_RULE_SETUP
320710e230b6Smaya#line 628 "../src/compiler/glsl/glsl_lexer.ll"
320810e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat4_type);
320910e230b6Smaya	YY_BREAK
321010e230b6Smayacase 228:
321110e230b6SmayaYY_RULE_SETUP
321210e230b6Smaya#line 629 "../src/compiler/glsl/glsl_lexer.ll"
321310e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat2_type);
321410e230b6Smaya	YY_BREAK
321510e230b6Smayacase 229:
321610e230b6SmayaYY_RULE_SETUP
321710e230b6Smaya#line 630 "../src/compiler/glsl/glsl_lexer.ll"
321810e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat2x3_type);
321910e230b6Smaya	YY_BREAK
322010e230b6Smayacase 230:
322110e230b6SmayaYY_RULE_SETUP
322210e230b6Smaya#line 631 "../src/compiler/glsl/glsl_lexer.ll"
322310e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat2x4_type);
322410e230b6Smaya	YY_BREAK
322510e230b6Smayacase 231:
322610e230b6SmayaYY_RULE_SETUP
322710e230b6Smaya#line 632 "../src/compiler/glsl/glsl_lexer.ll"
322810e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat3x2_type);
322910e230b6Smaya	YY_BREAK
323010e230b6Smayacase 232:
323110e230b6SmayaYY_RULE_SETUP
323210e230b6Smaya#line 633 "../src/compiler/glsl/glsl_lexer.ll"
323310e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat3_type);
323410e230b6Smaya	YY_BREAK
323510e230b6Smayacase 233:
323610e230b6SmayaYY_RULE_SETUP
323710e230b6Smaya#line 634 "../src/compiler/glsl/glsl_lexer.ll"
323810e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat3x4_type);
323910e230b6Smaya	YY_BREAK
324010e230b6Smayacase 234:
324110e230b6SmayaYY_RULE_SETUP
324210e230b6Smaya#line 635 "../src/compiler/glsl/glsl_lexer.ll"
324310e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat4x2_type);
324410e230b6Smaya	YY_BREAK
324510e230b6Smayacase 235:
324610e230b6SmayaYY_RULE_SETUP
324710e230b6Smaya#line 636 "../src/compiler/glsl/glsl_lexer.ll"
324810e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat4x3_type);
324910e230b6Smaya	YY_BREAK
325010e230b6Smayacase 236:
325110e230b6SmayaYY_RULE_SETUP
325210e230b6Smaya#line 637 "../src/compiler/glsl/glsl_lexer.ll"
325310e230b6SmayaTYPE_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::dmat4_type);
325410e230b6Smaya	YY_BREAK
325510e230b6Smayacase 237:
325610e230b6SmayaYY_RULE_SETUP
325710e230b6Smaya#line 638 "../src/compiler/glsl/glsl_lexer.ll"
325810e230b6SmayaKEYWORD(110, 100, 0, 0, FVEC2);
325910e230b6Smaya	YY_BREAK
326010e230b6Smayacase 238:
326110e230b6SmayaYY_RULE_SETUP
326210e230b6Smaya#line 639 "../src/compiler/glsl/glsl_lexer.ll"
326310e230b6SmayaKEYWORD(110, 100, 0, 0, FVEC3);
326410e230b6Smaya	YY_BREAK
326510e230b6Smayacase 239:
326610e230b6SmayaYY_RULE_SETUP
326710e230b6Smaya#line 640 "../src/compiler/glsl/glsl_lexer.ll"
326810e230b6SmayaKEYWORD(110, 100, 0, 0, FVEC4);
326910e230b6Smaya	YY_BREAK
327010e230b6Smayacase 240:
327110e230b6SmayaYY_RULE_SETUP
327210e230b6Smaya#line 641 "../src/compiler/glsl/glsl_lexer.ll"
327310e230b6SmayaTYPE_WITH_ALT(110, 100, 0, 0, yyextra->ARB_texture_rectangle_enable, glsl_type::sampler2DRect_type);
327410e230b6Smaya	YY_BREAK
327510e230b6Smayacase 241:
327610e230b6SmayaYY_RULE_SETUP
327710e230b6Smaya#line 642 "../src/compiler/glsl/glsl_lexer.ll"
327810e230b6SmayaKEYWORD(110, 100, 0, 0, SAMPLER3DRECT);
327910e230b6Smaya	YY_BREAK
328010e230b6Smayacase 242:
328110e230b6SmayaYY_RULE_SETUP
328210e230b6Smaya#line 643 "../src/compiler/glsl/glsl_lexer.ll"
328310e230b6SmayaTYPE_WITH_ALT(110, 100, 0, 0, yyextra->ARB_texture_rectangle_enable, glsl_type::sampler2DRectShadow_type);
328410e230b6Smaya	YY_BREAK
328510e230b6Smayacase 243:
328610e230b6SmayaYY_RULE_SETUP
328710e230b6Smaya#line 644 "../src/compiler/glsl/glsl_lexer.ll"
328810e230b6SmayaKEYWORD(110, 100, 0, 0, SIZEOF);
328910e230b6Smaya	YY_BREAK
329010e230b6Smayacase 244:
329110e230b6SmayaYY_RULE_SETUP
329210e230b6Smaya#line 645 "../src/compiler/glsl/glsl_lexer.ll"
329310e230b6SmayaKEYWORD(110, 100, 0, 0, CAST);
329410e230b6Smaya	YY_BREAK
329510e230b6Smayacase 245:
329610e230b6SmayaYY_RULE_SETUP
329710e230b6Smaya#line 646 "../src/compiler/glsl/glsl_lexer.ll"
329810e230b6SmayaKEYWORD(110, 100, 0, 0, NAMESPACE);
329910e230b6Smaya	YY_BREAK
330010e230b6Smayacase 246:
330110e230b6SmayaYY_RULE_SETUP
330210e230b6Smaya#line 647 "../src/compiler/glsl/glsl_lexer.ll"
330310e230b6SmayaKEYWORD(110, 100, 0, 0, USING);
330410e230b6Smaya	YY_BREAK
330510e230b6Smaya/* Additional reserved words in GLSL 1.20. */
330610e230b6Smayacase 247:
330710e230b6SmayaYY_RULE_SETUP
330810e230b6Smaya#line 650 "../src/compiler/glsl/glsl_lexer.ll"
330910e230b6SmayaKEYWORD(120, 100, 130, 100, LOWP);
331010e230b6Smaya	YY_BREAK
331110e230b6Smayacase 248:
331210e230b6SmayaYY_RULE_SETUP
331310e230b6Smaya#line 651 "../src/compiler/glsl/glsl_lexer.ll"
331410e230b6SmayaKEYWORD(120, 100, 130, 100, MEDIUMP);
331510e230b6Smaya	YY_BREAK
331610e230b6Smayacase 249:
331710e230b6SmayaYY_RULE_SETUP
331810e230b6Smaya#line 652 "../src/compiler/glsl/glsl_lexer.ll"
331910e230b6SmayaKEYWORD(120, 100, 130, 100, HIGHP);
332010e230b6Smaya	YY_BREAK
332110e230b6Smayacase 250:
332210e230b6SmayaYY_RULE_SETUP
332310e230b6Smaya#line 653 "../src/compiler/glsl/glsl_lexer.ll"
332410e230b6SmayaKEYWORD(120, 100, 130, 100, PRECISION);
332510e230b6Smaya	YY_BREAK
332610e230b6Smaya/* Additional reserved words in GLSL 1.30. */
332710e230b6Smayacase 251:
332810e230b6SmayaYY_RULE_SETUP
332910e230b6Smaya#line 656 "../src/compiler/glsl/glsl_lexer.ll"
333010e230b6SmayaKEYWORD(130, 300, 130, 300, CASE);
333110e230b6Smaya	YY_BREAK
333210e230b6Smayacase 252:
333310e230b6SmayaYY_RULE_SETUP
333410e230b6Smaya#line 657 "../src/compiler/glsl/glsl_lexer.ll"
333510e230b6SmayaKEYWORD(130, 300, 0, 0, COMMON);
333610e230b6Smaya	YY_BREAK
333710e230b6Smayacase 253:
333810e230b6SmayaYY_RULE_SETUP
333910e230b6Smaya#line 658 "../src/compiler/glsl/glsl_lexer.ll"
334010e230b6SmayaKEYWORD(130, 300, 0, 0, PARTITION);
334110e230b6Smaya	YY_BREAK
334210e230b6Smayacase 254:
334310e230b6SmayaYY_RULE_SETUP
334410e230b6Smaya#line 659 "../src/compiler/glsl/glsl_lexer.ll"
334510e230b6SmayaKEYWORD(130, 300, 0, 0, ACTIVE);
334610e230b6Smaya	YY_BREAK
334710e230b6Smayacase 255:
334810e230b6SmayaYY_RULE_SETUP
334910e230b6Smaya#line 660 "../src/compiler/glsl/glsl_lexer.ll"
335010e230b6SmayaKEYWORD(130, 100, 0, 0, SUPERP);
335110e230b6Smaya	YY_BREAK
335210e230b6Smayacase 256:
335310e230b6SmayaYY_RULE_SETUP
335410e230b6Smaya#line 661 "../src/compiler/glsl/glsl_lexer.ll"
335510e230b6SmayaTYPE_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);
335610e230b6Smaya	YY_BREAK
335710e230b6Smayacase 257:
335810e230b6SmayaYY_RULE_SETUP
335910e230b6Smaya#line 662 "../src/compiler/glsl/glsl_lexer.ll"
336010e230b6SmayaKEYWORD(130, 300, 0, 0, FILTER);
336110e230b6Smaya	YY_BREAK
336210e230b6Smayacase 258:
336310e230b6SmayaYY_RULE_SETUP
336410e230b6Smaya#line 663 "../src/compiler/glsl/glsl_lexer.ll"
336510e230b6SmayaKEYWORD_WITH_ALT(130, 0, 140, 0, yyextra->ARB_uniform_buffer_object_enable && !yyextra->es_shader, ROW_MAJOR);
336610e230b6Smaya	YY_BREAK
336710e230b6Smaya/* Additional reserved words in GLSL 1.40 */
336810e230b6Smayacase 259:
336910e230b6SmayaYY_RULE_SETUP
337010e230b6Smaya#line 666 "../src/compiler/glsl/glsl_lexer.ll"
337110e230b6SmayaTYPE_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);
337210e230b6Smaya	YY_BREAK
337310e230b6Smayacase 260:
337410e230b6SmayaYY_RULE_SETUP
337510e230b6Smaya#line 667 "../src/compiler/glsl/glsl_lexer.ll"
337610e230b6SmayaTYPE_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);
337710e230b6Smaya	YY_BREAK
337810e230b6Smayacase 261:
337910e230b6SmayaYY_RULE_SETUP
338010e230b6Smaya#line 668 "../src/compiler/glsl/glsl_lexer.ll"
338110e230b6SmayaTYPE_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);
338210e230b6Smaya	YY_BREAK
338310e230b6Smayacase 262:
338410e230b6SmayaYY_RULE_SETUP
338510e230b6Smaya#line 669 "../src/compiler/glsl/glsl_lexer.ll"
338610e230b6SmayaTYPE_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);
338710e230b6Smaya	YY_BREAK
338810e230b6Smaya/* Additional reserved words in GLSL ES 3.00 */
338910e230b6Smayacase 263:
339010e230b6SmayaYY_RULE_SETUP
339110e230b6Smaya#line 672 "../src/compiler/glsl/glsl_lexer.ll"
339210e230b6SmayaKEYWORD(420, 300, 0, 0, RESOURCE);
339310e230b6Smaya	YY_BREAK
339410e230b6Smayacase 264:
339510e230b6SmayaYY_RULE_SETUP
339610e230b6Smaya#line 673 "../src/compiler/glsl/glsl_lexer.ll"
339710e230b6SmayaKEYWORD_WITH_ALT(400, 300, 400, 320, yyextra->ARB_gpu_shader5_enable || yyextra->OES_shader_multisample_interpolation_enable, SAMPLE);
339810e230b6Smaya	YY_BREAK
339910e230b6Smayacase 265:
340010e230b6SmayaYY_RULE_SETUP
340110e230b6Smaya#line 674 "../src/compiler/glsl/glsl_lexer.ll"
340210e230b6SmayaKEYWORD_WITH_ALT(400, 300, 400, 0, yyextra->ARB_shader_subroutine_enable, SUBROUTINE);
340310e230b6Smaya	YY_BREAK
340410e230b6Smaya/* Additional words for ARB_gpu_shader_int64 */
340510e230b6Smayacase 266:
340610e230b6SmayaYY_RULE_SETUP
340710e230b6Smaya#line 677 "../src/compiler/glsl/glsl_lexer.ll"
340810e230b6SmayaTYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::int64_t_type);
340910e230b6Smaya	YY_BREAK
341010e230b6Smayacase 267:
341110e230b6SmayaYY_RULE_SETUP
341210e230b6Smaya#line 678 "../src/compiler/glsl/glsl_lexer.ll"
341310e230b6SmayaTYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::i64vec2_type);
341410e230b6Smaya	YY_BREAK
341510e230b6Smayacase 268:
341610e230b6SmayaYY_RULE_SETUP
341710e230b6Smaya#line 679 "../src/compiler/glsl/glsl_lexer.ll"
341810e230b6SmayaTYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::i64vec3_type);
341910e230b6Smaya	YY_BREAK
342010e230b6Smayacase 269:
342110e230b6SmayaYY_RULE_SETUP
342210e230b6Smaya#line 680 "../src/compiler/glsl/glsl_lexer.ll"
342310e230b6SmayaTYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::i64vec4_type);
342410e230b6Smaya	YY_BREAK
342510e230b6Smayacase 270:
342610e230b6SmayaYY_RULE_SETUP
342710e230b6Smaya#line 682 "../src/compiler/glsl/glsl_lexer.ll"
342810e230b6SmayaTYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::uint64_t_type);
342910e230b6Smaya	YY_BREAK
343010e230b6Smayacase 271:
343110e230b6SmayaYY_RULE_SETUP
343210e230b6Smaya#line 683 "../src/compiler/glsl/glsl_lexer.ll"
343310e230b6SmayaTYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::u64vec2_type);
343410e230b6Smaya	YY_BREAK
343510e230b6Smayacase 272:
343610e230b6SmayaYY_RULE_SETUP
343710e230b6Smaya#line 684 "../src/compiler/glsl/glsl_lexer.ll"
343810e230b6SmayaTYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::u64vec3_type);
343910e230b6Smaya	YY_BREAK
344010e230b6Smayacase 273:
344110e230b6SmayaYY_RULE_SETUP
344210e230b6Smaya#line 685 "../src/compiler/glsl/glsl_lexer.ll"
344310e230b6SmayaTYPE_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable || yyextra->AMD_gpu_shader_int64_enable, glsl_type::u64vec4_type);
344410e230b6Smaya	YY_BREAK
344510e230b6Smayacase 274:
344610e230b6SmayaYY_RULE_SETUP
344710e230b6Smaya#line 687 "../src/compiler/glsl/glsl_lexer.ll"
344810e230b6Smaya{
344910e230b6Smaya			    struct _mesa_glsl_parse_state *state = yyextra;
345010e230b6Smaya			    if (state->es_shader && yyleng > 1024) {
345110e230b6Smaya			       _mesa_glsl_error(yylloc, state,
345210e230b6Smaya			                        "Identifier `%s' exceeds 1024 characters",
345310e230b6Smaya			                        yytext);
345410e230b6Smaya			    }
345510e230b6Smaya			    return classify_identifier(state, yytext, yyleng, yylval);
345610e230b6Smaya			}
345710e230b6Smaya	YY_BREAK
345810e230b6Smayacase 275:
345910e230b6SmayaYY_RULE_SETUP
346010e230b6Smaya#line 697 "../src/compiler/glsl/glsl_lexer.ll"
346110e230b6Smaya{ struct _mesa_glsl_parse_state *state = yyextra;
346210e230b6Smaya			  state->is_field = true;
346310e230b6Smaya			  return DOT_TOK; }
346410e230b6Smaya	YY_BREAK
346510e230b6Smayacase 276:
346610e230b6SmayaYY_RULE_SETUP
346710e230b6Smaya#line 701 "../src/compiler/glsl/glsl_lexer.ll"
346810e230b6Smaya{ return yytext[0]; }
346910e230b6Smaya	YY_BREAK
347010e230b6Smayacase 277:
347110e230b6SmayaYY_RULE_SETUP
347210e230b6Smaya#line 703 "../src/compiler/glsl/glsl_lexer.ll"
347310e230b6SmayaYY_FATAL_ERROR( "flex scanner jammed" );
347410e230b6Smaya	YY_BREAK
347510e230b6Smaya#line 3475 "src/compiler/glsl/glsl_lexer.cpp"
347610e230b6Smayacase YY_STATE_EOF(INITIAL):
347710e230b6Smayacase YY_STATE_EOF(PP):
347810e230b6Smayacase YY_STATE_EOF(PRAGMA):
347910e230b6Smaya	yyterminate();
348010e230b6Smaya
348110e230b6Smaya	case YY_END_OF_BUFFER:
348210e230b6Smaya		{
348310e230b6Smaya		/* Amount of text matched not including the EOB char. */
348410e230b6Smaya		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
348510e230b6Smaya
348610e230b6Smaya		/* Undo the effects of YY_DO_BEFORE_ACTION. */
348710e230b6Smaya		*yy_cp = yyg->yy_hold_char;
348810e230b6Smaya		YY_RESTORE_YY_MORE_OFFSET
348910e230b6Smaya
349010e230b6Smaya		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
349110e230b6Smaya			{
349210e230b6Smaya			/* We're scanning a new file or input source.  It's
349310e230b6Smaya			 * possible that this happened because the user
349410e230b6Smaya			 * just pointed yyin at a new source and called
349510e230b6Smaya			 * yylex().  If so, then we have to assure
349610e230b6Smaya			 * consistency between YY_CURRENT_BUFFER and our
349710e230b6Smaya			 * globals.  Here is the right place to do so, because
349810e230b6Smaya			 * this is the first action (other than possibly a
349910e230b6Smaya			 * back-up) that will match for the new input source.
350010e230b6Smaya			 */
350110e230b6Smaya			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
350210e230b6Smaya			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
350310e230b6Smaya			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
350410e230b6Smaya			}
350510e230b6Smaya
350610e230b6Smaya		/* Note that here we test for yy_c_buf_p "<=" to the position
350710e230b6Smaya		 * of the first EOB in the buffer, since yy_c_buf_p will
350810e230b6Smaya		 * already have been incremented past the NUL character
350910e230b6Smaya		 * (since all states make transitions on EOB to the
351010e230b6Smaya		 * end-of-buffer state).  Contrast this with the test
351110e230b6Smaya		 * in input().
351210e230b6Smaya		 */
351310e230b6Smaya		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
351410e230b6Smaya			{ /* This was really a NUL. */
351510e230b6Smaya			yy_state_type yy_next_state;
351610e230b6Smaya
351710e230b6Smaya			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
351810e230b6Smaya
351910e230b6Smaya			yy_current_state = yy_get_previous_state( yyscanner );
352010e230b6Smaya
352110e230b6Smaya			/* Okay, we're now positioned to make the NUL
352210e230b6Smaya			 * transition.  We couldn't have
352310e230b6Smaya			 * yy_get_previous_state() go ahead and do it
352410e230b6Smaya			 * for us because it doesn't know how to deal
352510e230b6Smaya			 * with the possibility of jamming (and we don't
352610e230b6Smaya			 * want to build jamming into it because then it
352710e230b6Smaya			 * will run more slowly).
352810e230b6Smaya			 */
352910e230b6Smaya
353010e230b6Smaya			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
353110e230b6Smaya
353210e230b6Smaya			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
353310e230b6Smaya
353410e230b6Smaya			if ( yy_next_state )
353510e230b6Smaya				{
353610e230b6Smaya				/* Consume the NUL. */
353710e230b6Smaya				yy_cp = ++yyg->yy_c_buf_p;
353810e230b6Smaya				yy_current_state = yy_next_state;
353910e230b6Smaya				goto yy_match;
354010e230b6Smaya				}
354110e230b6Smaya
354210e230b6Smaya			else
354310e230b6Smaya				{
354410e230b6Smaya				yy_cp = yyg->yy_last_accepting_cpos;
354510e230b6Smaya				yy_current_state = yyg->yy_last_accepting_state;
354610e230b6Smaya				goto yy_find_action;
354710e230b6Smaya				}
354810e230b6Smaya			}
354910e230b6Smaya
355010e230b6Smaya		else switch ( yy_get_next_buffer( yyscanner ) )
355110e230b6Smaya			{
355210e230b6Smaya			case EOB_ACT_END_OF_FILE:
355310e230b6Smaya				{
355410e230b6Smaya				yyg->yy_did_buffer_switch_on_eof = 0;
355510e230b6Smaya
355610e230b6Smaya				if ( yywrap( yyscanner ) )
355710e230b6Smaya					{
355810e230b6Smaya					/* Note: because we've taken care in
355910e230b6Smaya					 * yy_get_next_buffer() to have set up
356010e230b6Smaya					 * yytext, we can now set up
356110e230b6Smaya					 * yy_c_buf_p so that if some total
356210e230b6Smaya					 * hoser (like flex itself) wants to
356310e230b6Smaya					 * call the scanner after we return the
356410e230b6Smaya					 * YY_NULL, it'll still work - another
356510e230b6Smaya					 * YY_NULL will get returned.
356610e230b6Smaya					 */
356710e230b6Smaya					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
356810e230b6Smaya
356910e230b6Smaya					yy_act = YY_STATE_EOF(YY_START);
357010e230b6Smaya					goto do_action;
357110e230b6Smaya					}
357210e230b6Smaya
357310e230b6Smaya				else
357410e230b6Smaya					{
357510e230b6Smaya					if ( ! yyg->yy_did_buffer_switch_on_eof )
357610e230b6Smaya						YY_NEW_FILE;
357710e230b6Smaya					}
357810e230b6Smaya				break;
357910e230b6Smaya				}
358010e230b6Smaya
358110e230b6Smaya			case EOB_ACT_CONTINUE_SCAN:
358210e230b6Smaya				yyg->yy_c_buf_p =
358310e230b6Smaya					yyg->yytext_ptr + yy_amount_of_matched_text;
358410e230b6Smaya
358510e230b6Smaya				yy_current_state = yy_get_previous_state( yyscanner );
358610e230b6Smaya
358710e230b6Smaya				yy_cp = yyg->yy_c_buf_p;
358810e230b6Smaya				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
358910e230b6Smaya				goto yy_match;
359010e230b6Smaya
359110e230b6Smaya			case EOB_ACT_LAST_MATCH:
359210e230b6Smaya				yyg->yy_c_buf_p =
359310e230b6Smaya				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
359410e230b6Smaya
359510e230b6Smaya				yy_current_state = yy_get_previous_state( yyscanner );
359610e230b6Smaya
359710e230b6Smaya				yy_cp = yyg->yy_c_buf_p;
359810e230b6Smaya				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
359910e230b6Smaya				goto yy_find_action;
360010e230b6Smaya			}
360110e230b6Smaya		break;
360210e230b6Smaya		}
360310e230b6Smaya
360410e230b6Smaya	default:
360510e230b6Smaya		YY_FATAL_ERROR(
360610e230b6Smaya			"fatal flex scanner internal error--no action found" );
360710e230b6Smaya	} /* end of action switch */
360810e230b6Smaya		} /* end of scanning one token */
360910e230b6Smaya	} /* end of user's declarations */
361010e230b6Smaya} /* end of yylex */
361110e230b6Smaya
361210e230b6Smaya/* yy_get_next_buffer - try to read in a new buffer
361310e230b6Smaya *
361410e230b6Smaya * Returns a code representing an action:
361510e230b6Smaya *	EOB_ACT_LAST_MATCH -
361610e230b6Smaya *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
361710e230b6Smaya *	EOB_ACT_END_OF_FILE - end of file
361810e230b6Smaya */
361910e230b6Smayastatic int yy_get_next_buffer (yyscan_t yyscanner)
362010e230b6Smaya{
362110e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
362210e230b6Smaya	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
362310e230b6Smaya	char *source = yyg->yytext_ptr;
362410e230b6Smaya	yy_size_t number_to_move, i;
362510e230b6Smaya	int ret_val;
362610e230b6Smaya
362710e230b6Smaya	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
362810e230b6Smaya		YY_FATAL_ERROR(
362910e230b6Smaya		"fatal flex scanner internal error--end of buffer missed" );
363010e230b6Smaya
363110e230b6Smaya	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
363210e230b6Smaya		{ /* Don't try to fill the buffer, so this is an EOF. */
363310e230b6Smaya		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
363410e230b6Smaya			{
363510e230b6Smaya			/* We matched a single character, the EOB, so
363610e230b6Smaya			 * treat this as a final EOF.
363710e230b6Smaya			 */
363810e230b6Smaya			return EOB_ACT_END_OF_FILE;
363910e230b6Smaya			}
364010e230b6Smaya
364110e230b6Smaya		else
364210e230b6Smaya			{
364310e230b6Smaya			/* We matched some text prior to the EOB, first
364410e230b6Smaya			 * process it.
364510e230b6Smaya			 */
364610e230b6Smaya			return EOB_ACT_LAST_MATCH;
364710e230b6Smaya			}
364810e230b6Smaya		}
364910e230b6Smaya
365010e230b6Smaya	/* Try to read more data. */
365110e230b6Smaya
365210e230b6Smaya	/* First move last chars to start of buffer. */
365310e230b6Smaya	number_to_move = (yy_size_t) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1);
365410e230b6Smaya
365510e230b6Smaya	for ( i = 0; i < number_to_move; ++i )
365610e230b6Smaya		*(dest++) = *(source++);
365710e230b6Smaya
365810e230b6Smaya	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
365910e230b6Smaya		/* don't do the read, it's not guaranteed to return an EOF,
366010e230b6Smaya		 * just force an EOF
366110e230b6Smaya		 */
366210e230b6Smaya		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
366310e230b6Smaya
366410e230b6Smaya	else
366510e230b6Smaya		{
366610e230b6Smaya			yy_size_t num_to_read =
366710e230b6Smaya			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
366810e230b6Smaya
366910e230b6Smaya		while ( num_to_read <= 0 )
367010e230b6Smaya			{ /* Not enough room in the buffer - grow it. */
367110e230b6Smaya
367210e230b6Smaya			/* just a shorter name for the current buffer */
367310e230b6Smaya			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
367410e230b6Smaya
367510e230b6Smaya			int yy_c_buf_p_offset =
367610e230b6Smaya				(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
367710e230b6Smaya
367810e230b6Smaya			if ( b->yy_is_our_buffer )
367910e230b6Smaya				{
368010e230b6Smaya				yy_size_t new_size = b->yy_buf_size * 2;
368110e230b6Smaya
368210e230b6Smaya				if ( new_size <= 0 )
368310e230b6Smaya					b->yy_buf_size += b->yy_buf_size / 8;
368410e230b6Smaya				else
368510e230b6Smaya					b->yy_buf_size *= 2;
368610e230b6Smaya
368710e230b6Smaya				b->yy_ch_buf = (char *)
368810e230b6Smaya					/* Include room in for 2 EOB chars. */
368910e230b6Smaya					yyrealloc( (void *) b->yy_ch_buf,
369010e230b6Smaya							 (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
369110e230b6Smaya				}
369210e230b6Smaya			else
369310e230b6Smaya				/* Can't grow it, we don't own it. */
369410e230b6Smaya				b->yy_ch_buf = NULL;
369510e230b6Smaya
369610e230b6Smaya			if ( ! b->yy_ch_buf )
369710e230b6Smaya				YY_FATAL_ERROR(
369810e230b6Smaya				"fatal error - scanner input buffer overflow" );
369910e230b6Smaya
370010e230b6Smaya			yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
370110e230b6Smaya
370210e230b6Smaya			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
370310e230b6Smaya						number_to_move - 1;
370410e230b6Smaya
370510e230b6Smaya			}
370610e230b6Smaya
370710e230b6Smaya		if ( num_to_read > YY_READ_BUF_SIZE )
370810e230b6Smaya			num_to_read = YY_READ_BUF_SIZE;
370910e230b6Smaya
371010e230b6Smaya		/* Read in more data. */
371110e230b6Smaya		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
371210e230b6Smaya			yyg->yy_n_chars, num_to_read );
371310e230b6Smaya
371410e230b6Smaya		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
371510e230b6Smaya		}
371610e230b6Smaya
371710e230b6Smaya	if ( yyg->yy_n_chars == 0 )
371810e230b6Smaya		{
371910e230b6Smaya		if ( number_to_move == YY_MORE_ADJ )
372010e230b6Smaya			{
372110e230b6Smaya			ret_val = EOB_ACT_END_OF_FILE;
372210e230b6Smaya			yyrestart( yyin  , yyscanner);
372310e230b6Smaya			}
372410e230b6Smaya
372510e230b6Smaya		else
372610e230b6Smaya			{
372710e230b6Smaya			ret_val = EOB_ACT_LAST_MATCH;
372810e230b6Smaya			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
372910e230b6Smaya				YY_BUFFER_EOF_PENDING;
373010e230b6Smaya			}
373110e230b6Smaya		}
373210e230b6Smaya
373310e230b6Smaya	else
373410e230b6Smaya		ret_val = EOB_ACT_CONTINUE_SCAN;
373510e230b6Smaya
373610e230b6Smaya	if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
373710e230b6Smaya		/* Extend the array by 50%, plus the number we really need. */
373810e230b6Smaya		yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
373910e230b6Smaya		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
374010e230b6Smaya			(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner );
374110e230b6Smaya		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
374210e230b6Smaya			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
374310e230b6Smaya		/* "- 2" to take care of EOB's */
374410e230b6Smaya		YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (yy_size_t) (new_size - 2);
374510e230b6Smaya	}
374610e230b6Smaya
374710e230b6Smaya	yyg->yy_n_chars += number_to_move;
374810e230b6Smaya	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
374910e230b6Smaya	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
375010e230b6Smaya
375110e230b6Smaya	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
375210e230b6Smaya
375310e230b6Smaya	return ret_val;
375410e230b6Smaya}
375510e230b6Smaya
375610e230b6Smaya/* yy_get_previous_state - get the state just before the EOB char was reached */
375710e230b6Smaya
375810e230b6Smaya    static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
375910e230b6Smaya{
376010e230b6Smaya	yy_state_type yy_current_state;
376110e230b6Smaya	char *yy_cp;
376210e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
376310e230b6Smaya
376410e230b6Smaya	yy_current_state = yyg->yy_start;
376510e230b6Smaya	yy_current_state += YY_AT_BOL();
376610e230b6Smaya
376710e230b6Smaya	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
376810e230b6Smaya		{
376910e230b6Smaya		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
377010e230b6Smaya		if ( yy_accept[yy_current_state] )
377110e230b6Smaya			{
377210e230b6Smaya			yyg->yy_last_accepting_state = yy_current_state;
377310e230b6Smaya			yyg->yy_last_accepting_cpos = yy_cp;
377410e230b6Smaya			}
377510e230b6Smaya		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
377610e230b6Smaya			{
377710e230b6Smaya			yy_current_state = (int) yy_def[yy_current_state];
377810e230b6Smaya			if ( yy_current_state >= 1096 )
377910e230b6Smaya				yy_c = yy_meta[yy_c];
378010e230b6Smaya			}
378110e230b6Smaya		yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
378210e230b6Smaya		}
378310e230b6Smaya
378410e230b6Smaya	return yy_current_state;
378510e230b6Smaya}
378610e230b6Smaya
378710e230b6Smaya/* yy_try_NUL_trans - try to make a transition on the NUL character
378810e230b6Smaya *
378910e230b6Smaya * synopsis
379010e230b6Smaya *	next_state = yy_try_NUL_trans( current_state );
379110e230b6Smaya */
379210e230b6Smaya    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
379310e230b6Smaya{
379410e230b6Smaya	int yy_is_jam;
379510e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
379610e230b6Smaya	char *yy_cp = yyg->yy_c_buf_p;
379710e230b6Smaya
379810e230b6Smaya	YY_CHAR yy_c = 1;
379910e230b6Smaya	if ( yy_accept[yy_current_state] )
380010e230b6Smaya		{
380110e230b6Smaya		yyg->yy_last_accepting_state = yy_current_state;
380210e230b6Smaya		yyg->yy_last_accepting_cpos = yy_cp;
380310e230b6Smaya		}
380410e230b6Smaya	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
380510e230b6Smaya		{
380610e230b6Smaya		yy_current_state = (int) yy_def[yy_current_state];
380710e230b6Smaya		if ( yy_current_state >= 1096 )
380810e230b6Smaya			yy_c = yy_meta[yy_c];
380910e230b6Smaya		}
381010e230b6Smaya	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
381110e230b6Smaya	yy_is_jam = (yy_current_state == 1095);
381210e230b6Smaya
381310e230b6Smaya	(void)yyg;
381410e230b6Smaya	return yy_is_jam ? 0 : yy_current_state;
381510e230b6Smaya}
381610e230b6Smaya
381710e230b6Smaya#ifndef YY_NO_UNPUT
381810e230b6Smaya
381910e230b6Smaya#endif
382010e230b6Smaya
382110e230b6Smaya#ifndef YY_NO_INPUT
382210e230b6Smaya#ifdef __cplusplus
382310e230b6Smaya    static int yyinput (yyscan_t yyscanner)
382410e230b6Smaya#else
382510e230b6Smaya    static int input  (yyscan_t yyscanner)
382610e230b6Smaya#endif
382710e230b6Smaya
382810e230b6Smaya{
382910e230b6Smaya	int c;
383010e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
383110e230b6Smaya
383210e230b6Smaya	*yyg->yy_c_buf_p = yyg->yy_hold_char;
383310e230b6Smaya
383410e230b6Smaya	if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
383510e230b6Smaya		{
383610e230b6Smaya		/* yy_c_buf_p now points to the character we want to return.
383710e230b6Smaya		 * If this occurs *before* the EOB characters, then it's a
383810e230b6Smaya		 * valid NUL; if not, then we've hit the end of the buffer.
383910e230b6Smaya		 */
384010e230b6Smaya		if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
384110e230b6Smaya			/* This was really a NUL. */
384210e230b6Smaya			*yyg->yy_c_buf_p = '\0';
384310e230b6Smaya
384410e230b6Smaya		else
384510e230b6Smaya			{ /* need more input */
384610e230b6Smaya			yy_size_t offset = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr);
384710e230b6Smaya			++yyg->yy_c_buf_p;
384810e230b6Smaya
384910e230b6Smaya			switch ( yy_get_next_buffer( yyscanner ) )
385010e230b6Smaya				{
385110e230b6Smaya				case EOB_ACT_LAST_MATCH:
385210e230b6Smaya					/* This happens because yy_g_n_b()
385310e230b6Smaya					 * sees that we've accumulated a
385410e230b6Smaya					 * token and flags that we need to
385510e230b6Smaya					 * try matching the token before
385610e230b6Smaya					 * proceeding.  But for input(),
385710e230b6Smaya					 * there's no matching to consider.
385810e230b6Smaya					 * So convert the EOB_ACT_LAST_MATCH
385910e230b6Smaya					 * to EOB_ACT_END_OF_FILE.
386010e230b6Smaya					 */
386110e230b6Smaya
386210e230b6Smaya					/* Reset buffer status. */
386310e230b6Smaya					yyrestart( yyin , yyscanner);
386410e230b6Smaya
386510e230b6Smaya					/*FALLTHROUGH*/
386610e230b6Smaya
386710e230b6Smaya				case EOB_ACT_END_OF_FILE:
386810e230b6Smaya					{
386910e230b6Smaya					if ( yywrap( yyscanner ) )
387010e230b6Smaya						return 0;
387110e230b6Smaya
387210e230b6Smaya					if ( ! yyg->yy_did_buffer_switch_on_eof )
387310e230b6Smaya						YY_NEW_FILE;
387410e230b6Smaya#ifdef __cplusplus
387510e230b6Smaya					return yyinput(yyscanner);
387610e230b6Smaya#else
387710e230b6Smaya					return input(yyscanner);
387810e230b6Smaya#endif
387910e230b6Smaya					}
388010e230b6Smaya
388110e230b6Smaya				case EOB_ACT_CONTINUE_SCAN:
388210e230b6Smaya					yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
388310e230b6Smaya					break;
388410e230b6Smaya				}
388510e230b6Smaya			}
388610e230b6Smaya		}
388710e230b6Smaya
388810e230b6Smaya	c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
388910e230b6Smaya	*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
389010e230b6Smaya	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
389110e230b6Smaya
389210e230b6Smaya	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
389310e230b6Smaya
389410e230b6Smaya	return c;
389510e230b6Smaya}
389610e230b6Smaya#endif	/* ifndef YY_NO_INPUT */
389710e230b6Smaya
389810e230b6Smaya/** Immediately switch to a different input stream.
389910e230b6Smaya * @param input_file A readable stream.
390010e230b6Smaya * @param yyscanner The scanner object.
390110e230b6Smaya * @note This function does not reset the start condition to @c INITIAL .
390210e230b6Smaya */
390310e230b6Smaya    void yyrestart  (FILE * input_file , yyscan_t yyscanner)
390410e230b6Smaya{
390510e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
390610e230b6Smaya
390710e230b6Smaya	if ( ! YY_CURRENT_BUFFER ){
390810e230b6Smaya        yyensure_buffer_stack (yyscanner);
390910e230b6Smaya		YY_CURRENT_BUFFER_LVALUE =
391010e230b6Smaya            yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
391110e230b6Smaya	}
391210e230b6Smaya
391310e230b6Smaya	yy_init_buffer( YY_CURRENT_BUFFER, input_file , yyscanner);
391410e230b6Smaya	yy_load_buffer_state( yyscanner );
391510e230b6Smaya}
391610e230b6Smaya
391710e230b6Smaya/** Switch to a different input buffer.
391810e230b6Smaya * @param new_buffer The new input buffer.
391910e230b6Smaya * @param yyscanner The scanner object.
392010e230b6Smaya */
392110e230b6Smaya    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
392210e230b6Smaya{
392310e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
392410e230b6Smaya
392510e230b6Smaya	/* TODO. We should be able to replace this entire function body
392610e230b6Smaya	 * with
392710e230b6Smaya	 *		yypop_buffer_state();
392810e230b6Smaya	 *		yypush_buffer_state(new_buffer);
392910e230b6Smaya     */
393010e230b6Smaya	yyensure_buffer_stack (yyscanner);
393110e230b6Smaya	if ( YY_CURRENT_BUFFER == new_buffer )
393210e230b6Smaya		return;
393310e230b6Smaya
393410e230b6Smaya	if ( YY_CURRENT_BUFFER )
393510e230b6Smaya		{
393610e230b6Smaya		/* Flush out information for old buffer. */
393710e230b6Smaya		*yyg->yy_c_buf_p = yyg->yy_hold_char;
393810e230b6Smaya		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
393910e230b6Smaya		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
394010e230b6Smaya		}
394110e230b6Smaya
394210e230b6Smaya	YY_CURRENT_BUFFER_LVALUE = new_buffer;
394310e230b6Smaya	yy_load_buffer_state( yyscanner );
394410e230b6Smaya
394510e230b6Smaya	/* We don't actually know whether we did this switch during
394610e230b6Smaya	 * EOF (yywrap()) processing, but the only time this flag
394710e230b6Smaya	 * is looked at is after yywrap() is called, so it's safe
394810e230b6Smaya	 * to go ahead and always set it.
394910e230b6Smaya	 */
395010e230b6Smaya	yyg->yy_did_buffer_switch_on_eof = 1;
395110e230b6Smaya}
395210e230b6Smaya
395310e230b6Smayastatic void yy_load_buffer_state  (yyscan_t yyscanner)
395410e230b6Smaya{
395510e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
395610e230b6Smaya	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
395710e230b6Smaya	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
395810e230b6Smaya	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
395910e230b6Smaya	yyg->yy_hold_char = *yyg->yy_c_buf_p;
396010e230b6Smaya}
396110e230b6Smaya
396210e230b6Smaya/** Allocate and initialize an input buffer state.
396310e230b6Smaya * @param file A readable stream.
396410e230b6Smaya * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
396510e230b6Smaya * @param yyscanner The scanner object.
396610e230b6Smaya * @return the allocated buffer state.
396710e230b6Smaya */
396810e230b6Smaya    YY_BUFFER_STATE yy_create_buffer  (FILE * file, yy_size_t  size , yyscan_t yyscanner)
396910e230b6Smaya{
397010e230b6Smaya	YY_BUFFER_STATE b;
397110e230b6Smaya
397210e230b6Smaya	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
397310e230b6Smaya	if ( ! b )
397410e230b6Smaya		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
397510e230b6Smaya
397610e230b6Smaya	b->yy_buf_size = size;
397710e230b6Smaya
397810e230b6Smaya	/* yy_ch_buf has to be 2 characters longer than the size given because
397910e230b6Smaya	 * we need to put in 2 end-of-buffer characters.
398010e230b6Smaya	 */
398110e230b6Smaya	b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
398210e230b6Smaya	if ( ! b->yy_ch_buf )
398310e230b6Smaya		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
398410e230b6Smaya
398510e230b6Smaya	b->yy_is_our_buffer = 1;
398610e230b6Smaya
398710e230b6Smaya	yy_init_buffer( b, file , yyscanner);
398810e230b6Smaya
398910e230b6Smaya	return b;
399010e230b6Smaya}
399110e230b6Smaya
399210e230b6Smaya/** Destroy the buffer.
399310e230b6Smaya * @param b a buffer created with yy_create_buffer()
399410e230b6Smaya * @param yyscanner The scanner object.
399510e230b6Smaya */
399610e230b6Smaya    void yy_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
399710e230b6Smaya{
399810e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
399910e230b6Smaya
400010e230b6Smaya	if ( ! b )
400110e230b6Smaya		return;
400210e230b6Smaya
400310e230b6Smaya	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
400410e230b6Smaya		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
400510e230b6Smaya
400610e230b6Smaya	if ( b->yy_is_our_buffer )
400710e230b6Smaya		yyfree( (void *) b->yy_ch_buf , yyscanner );
400810e230b6Smaya
400910e230b6Smaya	yyfree( (void *) b , yyscanner );
401010e230b6Smaya}
401110e230b6Smaya
401210e230b6Smaya/* Initializes or reinitializes a buffer.
401310e230b6Smaya * This function is sometimes called more than once on the same buffer,
401410e230b6Smaya * such as during a yyrestart() or at EOF.
401510e230b6Smaya */
401610e230b6Smaya    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
401710e230b6Smaya
401810e230b6Smaya{
401910e230b6Smaya	int oerrno = errno;
402010e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
402110e230b6Smaya
402210e230b6Smaya	yy_flush_buffer( b , yyscanner);
402310e230b6Smaya
402410e230b6Smaya	b->yy_input_file = file;
402510e230b6Smaya	b->yy_fill_buffer = 1;
402610e230b6Smaya
402710e230b6Smaya    /* If b is the current buffer, then yy_init_buffer was _probably_
402810e230b6Smaya     * called from yyrestart() or through yy_get_next_buffer.
402910e230b6Smaya     * In that case, we don't want to reset the lineno or column.
403010e230b6Smaya     */
403110e230b6Smaya    if (b != YY_CURRENT_BUFFER){
403210e230b6Smaya        b->yy_bs_lineno = 1;
403310e230b6Smaya        b->yy_bs_column = 0;
403410e230b6Smaya    }
403510e230b6Smaya
403610e230b6Smaya        b->yy_is_interactive = 0;
403710e230b6Smaya
403810e230b6Smaya	errno = oerrno;
403910e230b6Smaya}
404010e230b6Smaya
404110e230b6Smaya/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
404210e230b6Smaya * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
404310e230b6Smaya * @param yyscanner The scanner object.
404410e230b6Smaya */
404510e230b6Smaya    void yy_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
404610e230b6Smaya{
404710e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
404810e230b6Smaya	if ( ! b )
404910e230b6Smaya		return;
405010e230b6Smaya
405110e230b6Smaya	b->yy_n_chars = 0;
405210e230b6Smaya
405310e230b6Smaya	/* We always need two end-of-buffer characters.  The first causes
405410e230b6Smaya	 * a transition to the end-of-buffer state.  The second causes
405510e230b6Smaya	 * a jam in that state.
405610e230b6Smaya	 */
405710e230b6Smaya	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
405810e230b6Smaya	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
405910e230b6Smaya
406010e230b6Smaya	b->yy_buf_pos = &b->yy_ch_buf[0];
406110e230b6Smaya
406210e230b6Smaya	b->yy_at_bol = 1;
406310e230b6Smaya	b->yy_buffer_status = YY_BUFFER_NEW;
406410e230b6Smaya
406510e230b6Smaya	if ( b == YY_CURRENT_BUFFER )
406610e230b6Smaya		yy_load_buffer_state( yyscanner );
406710e230b6Smaya}
406810e230b6Smaya
406910e230b6Smaya/** Pushes the new state onto the stack. The new state becomes
407010e230b6Smaya *  the current state. This function will allocate the stack
407110e230b6Smaya *  if necessary.
407210e230b6Smaya *  @param new_buffer The new state.
407310e230b6Smaya *  @param yyscanner The scanner object.
407410e230b6Smaya */
407510e230b6Smayavoid yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
407610e230b6Smaya{
407710e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
407810e230b6Smaya	if (new_buffer == NULL)
407910e230b6Smaya		return;
408010e230b6Smaya
408110e230b6Smaya	yyensure_buffer_stack(yyscanner);
408210e230b6Smaya
408310e230b6Smaya	/* This block is copied from yy_switch_to_buffer. */
408410e230b6Smaya	if ( YY_CURRENT_BUFFER )
408510e230b6Smaya		{
408610e230b6Smaya		/* Flush out information for old buffer. */
408710e230b6Smaya		*yyg->yy_c_buf_p = yyg->yy_hold_char;
408810e230b6Smaya		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
408910e230b6Smaya		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
409010e230b6Smaya		}
409110e230b6Smaya
409210e230b6Smaya	/* Only push if top exists. Otherwise, replace top. */
409310e230b6Smaya	if (YY_CURRENT_BUFFER)
409410e230b6Smaya		yyg->yy_buffer_stack_top++;
409510e230b6Smaya	YY_CURRENT_BUFFER_LVALUE = new_buffer;
409610e230b6Smaya
409710e230b6Smaya	/* copied from yy_switch_to_buffer. */
409810e230b6Smaya	yy_load_buffer_state( yyscanner );
409910e230b6Smaya	yyg->yy_did_buffer_switch_on_eof = 1;
410010e230b6Smaya}
410110e230b6Smaya
410210e230b6Smaya/** Removes and deletes the top of the stack, if present.
410310e230b6Smaya *  The next element becomes the new top.
410410e230b6Smaya *  @param yyscanner The scanner object.
410510e230b6Smaya */
410610e230b6Smayavoid yypop_buffer_state (yyscan_t yyscanner)
410710e230b6Smaya{
410810e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
410910e230b6Smaya	if (!YY_CURRENT_BUFFER)
411010e230b6Smaya		return;
411110e230b6Smaya
411210e230b6Smaya	yy_delete_buffer(YY_CURRENT_BUFFER , yyscanner);
411310e230b6Smaya	YY_CURRENT_BUFFER_LVALUE = NULL;
411410e230b6Smaya	if (yyg->yy_buffer_stack_top > 0)
411510e230b6Smaya		--yyg->yy_buffer_stack_top;
411610e230b6Smaya
411710e230b6Smaya	if (YY_CURRENT_BUFFER) {
411810e230b6Smaya		yy_load_buffer_state( yyscanner );
411910e230b6Smaya		yyg->yy_did_buffer_switch_on_eof = 1;
412010e230b6Smaya	}
412110e230b6Smaya}
412210e230b6Smaya
412310e230b6Smaya/* Allocates the stack if it does not exist.
412410e230b6Smaya *  Guarantees space for at least one push.
412510e230b6Smaya */
412610e230b6Smayastatic void yyensure_buffer_stack (yyscan_t yyscanner)
412710e230b6Smaya{
412810e230b6Smaya	yy_size_t num_to_alloc;
412910e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
413010e230b6Smaya
413110e230b6Smaya	if (!yyg->yy_buffer_stack) {
413210e230b6Smaya
413310e230b6Smaya		/* First allocation is just for 2 elements, since we don't know if this
413410e230b6Smaya		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
413510e230b6Smaya		 * immediate realloc on the next call.
413610e230b6Smaya         */
413710e230b6Smaya      num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
413810e230b6Smaya		yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc
413910e230b6Smaya								(num_to_alloc * sizeof(struct yy_buffer_state*)
414010e230b6Smaya								, yyscanner);
414110e230b6Smaya		if ( ! yyg->yy_buffer_stack )
414210e230b6Smaya			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
414310e230b6Smaya
414410e230b6Smaya		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
414510e230b6Smaya
414610e230b6Smaya		yyg->yy_buffer_stack_max = num_to_alloc;
414710e230b6Smaya		yyg->yy_buffer_stack_top = 0;
414810e230b6Smaya		return;
414910e230b6Smaya	}
415010e230b6Smaya
415110e230b6Smaya	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
415210e230b6Smaya
415310e230b6Smaya		/* Increase the buffer to prepare for a possible push. */
415410e230b6Smaya		yy_size_t grow_size = 8 /* arbitrary grow size */;
415510e230b6Smaya
415610e230b6Smaya		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
415710e230b6Smaya		yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc
415810e230b6Smaya								(yyg->yy_buffer_stack,
415910e230b6Smaya								num_to_alloc * sizeof(struct yy_buffer_state*)
416010e230b6Smaya								, yyscanner);
416110e230b6Smaya		if ( ! yyg->yy_buffer_stack )
416210e230b6Smaya			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
416310e230b6Smaya
416410e230b6Smaya		/* zero only the new slots.*/
416510e230b6Smaya		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
416610e230b6Smaya		yyg->yy_buffer_stack_max = num_to_alloc;
416710e230b6Smaya	}
416810e230b6Smaya}
416910e230b6Smaya
417010e230b6Smaya/** Setup the input buffer state to scan directly from a user-specified character buffer.
417110e230b6Smaya * @param base the character buffer
417210e230b6Smaya * @param size the size in bytes of the character buffer
417310e230b6Smaya * @param yyscanner The scanner object.
417410e230b6Smaya * @return the newly allocated buffer state object.
417510e230b6Smaya */
417610e230b6SmayaYY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
417710e230b6Smaya{
417810e230b6Smaya	YY_BUFFER_STATE b;
417910e230b6Smaya
418010e230b6Smaya	if ( size < 2 ||
418110e230b6Smaya	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
418210e230b6Smaya	     base[size-1] != YY_END_OF_BUFFER_CHAR )
418310e230b6Smaya		/* They forgot to leave room for the EOB's. */
418410e230b6Smaya		return NULL;
418510e230b6Smaya
418610e230b6Smaya	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
418710e230b6Smaya	if ( ! b )
418810e230b6Smaya		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
418910e230b6Smaya
419010e230b6Smaya	b->yy_buf_size = (size - 2);	/* "- 2" to take care of EOB's */
419110e230b6Smaya	b->yy_buf_pos = b->yy_ch_buf = base;
419210e230b6Smaya	b->yy_is_our_buffer = 0;
419310e230b6Smaya	b->yy_input_file = NULL;
419410e230b6Smaya	b->yy_n_chars = b->yy_buf_size;
419510e230b6Smaya	b->yy_is_interactive = 0;
419610e230b6Smaya	b->yy_at_bol = 1;
419710e230b6Smaya	b->yy_fill_buffer = 0;
419810e230b6Smaya	b->yy_buffer_status = YY_BUFFER_NEW;
419910e230b6Smaya
420010e230b6Smaya	yy_switch_to_buffer( b , yyscanner );
420110e230b6Smaya
420210e230b6Smaya	return b;
420310e230b6Smaya}
420410e230b6Smaya
420510e230b6Smaya/** Setup the input buffer state to scan a string. The next call to yylex() will
420610e230b6Smaya * scan from a @e copy of @a str.
420710e230b6Smaya * @param yystr a NUL-terminated string to scan
420810e230b6Smaya * @param yyscanner The scanner object.
420910e230b6Smaya * @return the newly allocated buffer state object.
421010e230b6Smaya * @note If you want to scan bytes that may contain NUL values, then use
421110e230b6Smaya *       yy_scan_bytes() instead.
421210e230b6Smaya */
421310e230b6SmayaYY_BUFFER_STATE yy_scan_string (const char * yystr , yyscan_t yyscanner)
421410e230b6Smaya{
421510e230b6Smaya
421610e230b6Smaya	return yy_scan_bytes( yystr, strlen(yystr) , yyscanner);
421710e230b6Smaya}
421810e230b6Smaya
421910e230b6Smaya/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
422010e230b6Smaya * scan from a @e copy of @a bytes.
422110e230b6Smaya * @param yybytes the byte buffer to scan
422210e230b6Smaya * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
422310e230b6Smaya * @param yyscanner The scanner object.
422410e230b6Smaya * @return the newly allocated buffer state object.
422510e230b6Smaya */
422610e230b6SmayaYY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, yy_size_t  _yybytes_len , yyscan_t yyscanner)
422710e230b6Smaya{
422810e230b6Smaya	YY_BUFFER_STATE b;
422910e230b6Smaya	char *buf;
423010e230b6Smaya	yy_size_t n;
423110e230b6Smaya	yy_size_t i;
423210e230b6Smaya
423310e230b6Smaya	/* Get memory for full buffer, including space for trailing EOB's. */
423410e230b6Smaya	n = (yy_size_t) (_yybytes_len + 2);
423510e230b6Smaya	buf = (char *) yyalloc( n , yyscanner );
423610e230b6Smaya	if ( ! buf )
423710e230b6Smaya		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
423810e230b6Smaya
423910e230b6Smaya	for ( i = 0; i < _yybytes_len; ++i )
424010e230b6Smaya		buf[i] = yybytes[i];
424110e230b6Smaya
424210e230b6Smaya	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
424310e230b6Smaya
424410e230b6Smaya	b = yy_scan_buffer( buf, n , yyscanner);
424510e230b6Smaya	if ( ! b )
424610e230b6Smaya		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
424710e230b6Smaya
424810e230b6Smaya	/* It's okay to grow etc. this buffer, and we should throw it
424910e230b6Smaya	 * away when we're done.
425010e230b6Smaya	 */
425110e230b6Smaya	b->yy_is_our_buffer = 1;
425210e230b6Smaya
425310e230b6Smaya	return b;
425410e230b6Smaya}
425510e230b6Smaya
425610e230b6Smaya#ifndef YY_EXIT_FAILURE
425710e230b6Smaya#define YY_EXIT_FAILURE 2
425810e230b6Smaya#endif
425910e230b6Smaya
426010e230b6Smayastatic void yynoreturn yy_fatal_error (const char* msg , yyscan_t yyscanner)
426110e230b6Smaya{
426210e230b6Smaya	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
426310e230b6Smaya	(void)yyg;
426410e230b6Smaya	fprintf( stderr, "%s\n", msg );
426510e230b6Smaya	exit( YY_EXIT_FAILURE );
426610e230b6Smaya}
426710e230b6Smaya
426810e230b6Smaya/* Redefine yyless() so it works in section 3 code. */
426910e230b6Smaya
427010e230b6Smaya#undef yyless
427110e230b6Smaya#define yyless(n) \
427210e230b6Smaya	do \
427310e230b6Smaya		{ \
427410e230b6Smaya		/* Undo effects of setting up yytext. */ \
427510e230b6Smaya        int yyless_macro_arg = (n); \
427610e230b6Smaya        YY_LESS_LINENO(yyless_macro_arg);\
427710e230b6Smaya		yytext[yyleng] = yyg->yy_hold_char; \
427810e230b6Smaya		yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
427910e230b6Smaya		yyg->yy_hold_char = *yyg->yy_c_buf_p; \
428010e230b6Smaya		*yyg->yy_c_buf_p = '\0'; \
428110e230b6Smaya		yyleng = yyless_macro_arg; \
428210e230b6Smaya		} \
428310e230b6Smaya	while ( 0 )
428410e230b6Smaya
428510e230b6Smaya/* Accessor  methods (get/set functions) to struct members. */
428610e230b6Smaya
428710e230b6Smaya/** Get the user-defined data for this scanner.
428810e230b6Smaya * @param yyscanner The scanner object.
428910e230b6Smaya */
429010e230b6SmayaYY_EXTRA_TYPE yyget_extra  (yyscan_t yyscanner)
429110e230b6Smaya{
429210e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
429310e230b6Smaya    return yyextra;
429410e230b6Smaya}
429510e230b6Smaya
429610e230b6Smaya/** Get the current line number.
429710e230b6Smaya * @param yyscanner The scanner object.
429810e230b6Smaya */
429910e230b6Smayaint yyget_lineno  (yyscan_t yyscanner)
430010e230b6Smaya{
430110e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
430210e230b6Smaya
430310e230b6Smaya        if (! YY_CURRENT_BUFFER)
430410e230b6Smaya            return 0;
430510e230b6Smaya
430610e230b6Smaya    return yylineno;
430710e230b6Smaya}
430810e230b6Smaya
430910e230b6Smaya/** Get the current column number.
431010e230b6Smaya * @param yyscanner The scanner object.
431110e230b6Smaya */
431210e230b6Smayaint yyget_column  (yyscan_t yyscanner)
431310e230b6Smaya{
431410e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
431510e230b6Smaya
431610e230b6Smaya        if (! YY_CURRENT_BUFFER)
431710e230b6Smaya            return 0;
431810e230b6Smaya
431910e230b6Smaya    return yycolumn;
432010e230b6Smaya}
432110e230b6Smaya
432210e230b6Smaya/** Get the input stream.
432310e230b6Smaya * @param yyscanner The scanner object.
432410e230b6Smaya */
432510e230b6SmayaFILE *yyget_in  (yyscan_t yyscanner)
432610e230b6Smaya{
432710e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
432810e230b6Smaya    return yyin;
432910e230b6Smaya}
433010e230b6Smaya
433110e230b6Smaya/** Get the output stream.
433210e230b6Smaya * @param yyscanner The scanner object.
433310e230b6Smaya */
433410e230b6SmayaFILE *yyget_out  (yyscan_t yyscanner)
433510e230b6Smaya{
433610e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
433710e230b6Smaya    return yyout;
433810e230b6Smaya}
433910e230b6Smaya
434010e230b6Smaya/** Get the length of the current token.
434110e230b6Smaya * @param yyscanner The scanner object.
434210e230b6Smaya */
434310e230b6Smayayy_size_t yyget_leng  (yyscan_t yyscanner)
434410e230b6Smaya{
434510e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
434610e230b6Smaya    return yyleng;
434710e230b6Smaya}
434810e230b6Smaya
434910e230b6Smaya/** Get the current token.
435010e230b6Smaya * @param yyscanner The scanner object.
435110e230b6Smaya */
435210e230b6Smaya
435310e230b6Smayachar *yyget_text  (yyscan_t yyscanner)
435410e230b6Smaya{
435510e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
435610e230b6Smaya    return yytext;
435710e230b6Smaya}
435810e230b6Smaya
435910e230b6Smaya/** Set the user-defined data. This data is never touched by the scanner.
436010e230b6Smaya * @param user_defined The data to be associated with this scanner.
436110e230b6Smaya * @param yyscanner The scanner object.
436210e230b6Smaya */
436310e230b6Smayavoid yyset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
436410e230b6Smaya{
436510e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
436610e230b6Smaya    yyextra = user_defined ;
436710e230b6Smaya}
436810e230b6Smaya
436910e230b6Smaya/** Set the current line number.
437010e230b6Smaya * @param _line_number line number
437110e230b6Smaya * @param yyscanner The scanner object.
437210e230b6Smaya */
437310e230b6Smayavoid yyset_lineno (int  _line_number , yyscan_t yyscanner)
437410e230b6Smaya{
437510e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
437610e230b6Smaya
437710e230b6Smaya        /* lineno is only valid if an input buffer exists. */
437810e230b6Smaya        if (! YY_CURRENT_BUFFER )
437910e230b6Smaya           YY_FATAL_ERROR( "yyset_lineno called with no buffer" );
438010e230b6Smaya
438110e230b6Smaya    yylineno = _line_number;
438210e230b6Smaya}
438310e230b6Smaya
438410e230b6Smaya/** Set the current column.
438510e230b6Smaya * @param _column_no column number
438610e230b6Smaya * @param yyscanner The scanner object.
438710e230b6Smaya */
438810e230b6Smayavoid yyset_column (int  _column_no , yyscan_t yyscanner)
438910e230b6Smaya{
439010e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
439110e230b6Smaya
439210e230b6Smaya        /* column is only valid if an input buffer exists. */
439310e230b6Smaya        if (! YY_CURRENT_BUFFER )
439410e230b6Smaya           YY_FATAL_ERROR( "yyset_column called with no buffer" );
439510e230b6Smaya
439610e230b6Smaya    yycolumn = _column_no;
439710e230b6Smaya}
439810e230b6Smaya
439910e230b6Smaya/** Set the input stream. This does not discard the current
440010e230b6Smaya * input buffer.
440110e230b6Smaya * @param _in_str A readable stream.
440210e230b6Smaya * @param yyscanner The scanner object.
440310e230b6Smaya * @see yy_switch_to_buffer
440410e230b6Smaya */
440510e230b6Smayavoid yyset_in (FILE *  _in_str , yyscan_t yyscanner)
440610e230b6Smaya{
440710e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
440810e230b6Smaya    yyin = _in_str ;
440910e230b6Smaya}
441010e230b6Smaya
441110e230b6Smayavoid yyset_out (FILE *  _out_str , yyscan_t yyscanner)
441210e230b6Smaya{
441310e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
441410e230b6Smaya    yyout = _out_str ;
441510e230b6Smaya}
441610e230b6Smaya
441710e230b6Smayaint yyget_debug  (yyscan_t yyscanner)
441810e230b6Smaya{
441910e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
442010e230b6Smaya    return yy_flex_debug;
442110e230b6Smaya}
442210e230b6Smaya
442310e230b6Smayavoid yyset_debug (int  _bdebug , yyscan_t yyscanner)
442410e230b6Smaya{
442510e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
442610e230b6Smaya    yy_flex_debug = _bdebug ;
442710e230b6Smaya}
442810e230b6Smaya
442910e230b6Smaya/* Accessor methods for yylval and yylloc */
443010e230b6Smaya
443110e230b6SmayaYYSTYPE * yyget_lval  (yyscan_t yyscanner)
443210e230b6Smaya{
443310e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
443410e230b6Smaya    return yylval;
443510e230b6Smaya}
443610e230b6Smaya
443710e230b6Smayavoid yyset_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
443810e230b6Smaya{
443910e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
444010e230b6Smaya    yylval = yylval_param;
444110e230b6Smaya}
444210e230b6Smaya
444310e230b6SmayaYYLTYPE *yyget_lloc  (yyscan_t yyscanner)
444410e230b6Smaya{
444510e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
444610e230b6Smaya    return yylloc;
444710e230b6Smaya}
444810e230b6Smaya
444910e230b6Smayavoid yyset_lloc (YYLTYPE *  yylloc_param , yyscan_t yyscanner)
445010e230b6Smaya{
445110e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
445210e230b6Smaya    yylloc = yylloc_param;
445310e230b6Smaya}
445410e230b6Smaya
445510e230b6Smaya/* User-visible API */
445610e230b6Smaya
445710e230b6Smaya/* yylex_init is special because it creates the scanner itself, so it is
445810e230b6Smaya * the ONLY reentrant function that doesn't take the scanner as the last argument.
445910e230b6Smaya * That's why we explicitly handle the declaration, instead of using our macros.
446010e230b6Smaya */
446110e230b6Smayaint yylex_init(yyscan_t* ptr_yy_globals)
446210e230b6Smaya{
446310e230b6Smaya    if (ptr_yy_globals == NULL){
446410e230b6Smaya        errno = EINVAL;
446510e230b6Smaya        return 1;
446610e230b6Smaya    }
446710e230b6Smaya
446810e230b6Smaya    *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL );
446910e230b6Smaya
447010e230b6Smaya    if (*ptr_yy_globals == NULL){
447110e230b6Smaya        errno = ENOMEM;
447210e230b6Smaya        return 1;
447310e230b6Smaya    }
447410e230b6Smaya
447510e230b6Smaya    /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
447610e230b6Smaya    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
447710e230b6Smaya
447810e230b6Smaya    return yy_init_globals ( *ptr_yy_globals );
447910e230b6Smaya}
448010e230b6Smaya
448110e230b6Smaya/* yylex_init_extra has the same functionality as yylex_init, but follows the
448210e230b6Smaya * convention of taking the scanner as the last argument. Note however, that
448310e230b6Smaya * this is a *pointer* to a scanner, as it will be allocated by this call (and
448410e230b6Smaya * is the reason, too, why this function also must handle its own declaration).
448510e230b6Smaya * The user defined value in the first argument will be available to yyalloc in
448610e230b6Smaya * the yyextra field.
448710e230b6Smaya */
448810e230b6Smayaint yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals )
448910e230b6Smaya{
449010e230b6Smaya    struct yyguts_t dummy_yyguts;
449110e230b6Smaya
449210e230b6Smaya    yyset_extra (yy_user_defined, &dummy_yyguts);
449310e230b6Smaya
449410e230b6Smaya    if (ptr_yy_globals == NULL){
449510e230b6Smaya        errno = EINVAL;
449610e230b6Smaya        return 1;
449710e230b6Smaya    }
449810e230b6Smaya
449910e230b6Smaya    *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
450010e230b6Smaya
450110e230b6Smaya    if (*ptr_yy_globals == NULL){
450210e230b6Smaya        errno = ENOMEM;
450310e230b6Smaya        return 1;
450410e230b6Smaya    }
450510e230b6Smaya
450610e230b6Smaya    /* By setting to 0xAA, we expose bugs in
450710e230b6Smaya    yy_init_globals. Leave at 0x00 for releases. */
450810e230b6Smaya    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
450910e230b6Smaya
451010e230b6Smaya    yyset_extra (yy_user_defined, *ptr_yy_globals);
451110e230b6Smaya
451210e230b6Smaya    return yy_init_globals ( *ptr_yy_globals );
451310e230b6Smaya}
451410e230b6Smaya
451510e230b6Smayastatic int yy_init_globals (yyscan_t yyscanner)
451610e230b6Smaya{
451710e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
451810e230b6Smaya    /* Initialization is the same as for the non-reentrant scanner.
451910e230b6Smaya     * This function is called from yylex_destroy(), so don't allocate here.
452010e230b6Smaya     */
452110e230b6Smaya
452210e230b6Smaya    yyg->yy_buffer_stack = NULL;
452310e230b6Smaya    yyg->yy_buffer_stack_top = 0;
452410e230b6Smaya    yyg->yy_buffer_stack_max = 0;
452510e230b6Smaya    yyg->yy_c_buf_p = NULL;
452610e230b6Smaya    yyg->yy_init = 0;
452710e230b6Smaya    yyg->yy_start = 0;
452810e230b6Smaya
452910e230b6Smaya    yyg->yy_start_stack_ptr = 0;
453010e230b6Smaya    yyg->yy_start_stack_depth = 0;
453110e230b6Smaya    yyg->yy_start_stack =  NULL;
453210e230b6Smaya
453310e230b6Smaya/* Defined in main.c */
453410e230b6Smaya#ifdef YY_STDINIT
453510e230b6Smaya    yyin = stdin;
453610e230b6Smaya    yyout = stdout;
453710e230b6Smaya#else
453810e230b6Smaya    yyin = NULL;
453910e230b6Smaya    yyout = NULL;
454010e230b6Smaya#endif
454110e230b6Smaya
454210e230b6Smaya    /* For future reference: Set errno on error, since we are called by
454310e230b6Smaya     * yylex_init()
454410e230b6Smaya     */
454510e230b6Smaya    return 0;
454610e230b6Smaya}
454710e230b6Smaya
454810e230b6Smaya/* yylex_destroy is for both reentrant and non-reentrant scanners. */
454910e230b6Smayaint yylex_destroy  (yyscan_t yyscanner)
455010e230b6Smaya{
455110e230b6Smaya    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
455210e230b6Smaya
455310e230b6Smaya    /* Pop the buffer stack, destroying each element. */
455410e230b6Smaya	while(YY_CURRENT_BUFFER){
455510e230b6Smaya		yy_delete_buffer( YY_CURRENT_BUFFER , yyscanner );
455610e230b6Smaya		YY_CURRENT_BUFFER_LVALUE = NULL;
455710e230b6Smaya		yypop_buffer_state(yyscanner);
455810e230b6Smaya	}
455910e230b6Smaya
456010e230b6Smaya	/* Destroy the stack itself. */
456110e230b6Smaya	yyfree(yyg->yy_buffer_stack , yyscanner);
456210e230b6Smaya	yyg->yy_buffer_stack = NULL;
456310e230b6Smaya
456410e230b6Smaya    /* Destroy the start condition stack. */
456510e230b6Smaya        yyfree( yyg->yy_start_stack , yyscanner );
456610e230b6Smaya        yyg->yy_start_stack = NULL;
456710e230b6Smaya
456810e230b6Smaya    /* Reset the globals. This is important in a non-reentrant scanner so the next time
456910e230b6Smaya     * yylex() is called, initialization will occur. */
457010e230b6Smaya    yy_init_globals( yyscanner);
457110e230b6Smaya
457210e230b6Smaya    /* Destroy the main struct (reentrant only). */
457310e230b6Smaya    yyfree ( yyscanner , yyscanner );
457410e230b6Smaya    yyscanner = NULL;
457510e230b6Smaya    return 0;
457610e230b6Smaya}
457710e230b6Smaya
457810e230b6Smaya/*
457910e230b6Smaya * Internal utility routines.
458010e230b6Smaya */
458110e230b6Smaya
458210e230b6Smaya#ifndef yytext_ptr
458310e230b6Smayastatic void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner)
458410e230b6Smaya{
458510e230b6Smaya	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
458610e230b6Smaya	(void)yyg;
458710e230b6Smaya
458810e230b6Smaya	int i;
458910e230b6Smaya	for ( i = 0; i < n; ++i )
459010e230b6Smaya		s1[i] = s2[i];
459110e230b6Smaya}
459210e230b6Smaya#endif
459310e230b6Smaya
459410e230b6Smaya#ifdef YY_NEED_STRLEN
459510e230b6Smayastatic int yy_flex_strlen (const char * s , yyscan_t yyscanner)
459610e230b6Smaya{
459710e230b6Smaya	int n;
459810e230b6Smaya	for ( n = 0; s[n]; ++n )
459910e230b6Smaya		;
460010e230b6Smaya
460110e230b6Smaya	return n;
460210e230b6Smaya}
460310e230b6Smaya#endif
460410e230b6Smaya
460510e230b6Smayavoid *yyalloc (yy_size_t  size , yyscan_t yyscanner)
460610e230b6Smaya{
460710e230b6Smaya	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
460810e230b6Smaya	(void)yyg;
460910e230b6Smaya	return malloc(size);
461010e230b6Smaya}
461110e230b6Smaya
461210e230b6Smayavoid *yyrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
461310e230b6Smaya{
461410e230b6Smaya	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
461510e230b6Smaya	(void)yyg;
461610e230b6Smaya
461710e230b6Smaya	/* The cast to (char *) in the following accommodates both
461810e230b6Smaya	 * implementations that use char* generic pointers, and those
461910e230b6Smaya	 * that use void* generic pointers.  It works with the latter
462010e230b6Smaya	 * because both ANSI C and C++ allow castless assignment from
462110e230b6Smaya	 * any pointer type to void*, and deal with argument conversions
462210e230b6Smaya	 * as though doing an assignment.
462310e230b6Smaya	 */
462410e230b6Smaya	return realloc(ptr, size);
462510e230b6Smaya}
462610e230b6Smaya
462710e230b6Smayavoid yyfree (void * ptr , yyscan_t yyscanner)
462810e230b6Smaya{
462910e230b6Smaya	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
463010e230b6Smaya	(void)yyg;
463110e230b6Smaya	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
463210e230b6Smaya}
463310e230b6Smaya
463410e230b6Smaya#define YYTABLES_NAME "yytables"
463510e230b6Smaya
463610e230b6Smaya#line 703 "../src/compiler/glsl/glsl_lexer.ll"
463710e230b6Smaya
463810e230b6Smaya
463910e230b6Smayaint
464010e230b6Smayaclassify_identifier(struct _mesa_glsl_parse_state *state, const char *name,
464110e230b6Smaya                    unsigned name_len, YYSTYPE *output)
464210e230b6Smaya{
464310e230b6Smaya   /* We're not doing linear_strdup here, to avoid an implicit call on
464410e230b6Smaya    * strlen() for the length of the string, as this is already found by flex
464510e230b6Smaya    * and stored in yyleng
464610e230b6Smaya    */
464710e230b6Smaya   char *id = (char *) linear_alloc_child(state->linalloc, name_len + 1);
464810e230b6Smaya   memcpy(id, name, name_len + 1);
464910e230b6Smaya   output->identifier = id;
465010e230b6Smaya
465110e230b6Smaya   if (state->is_field) {
465210e230b6Smaya      state->is_field = false;
465310e230b6Smaya      return FIELD_SELECTION;
465410e230b6Smaya   }
465510e230b6Smaya   if (state->symbols->get_variable(name) || state->symbols->get_function(name))
465610e230b6Smaya      return IDENTIFIER;
465710e230b6Smaya   else if (state->symbols->get_type(name))
465810e230b6Smaya      return TYPE_IDENTIFIER;
465910e230b6Smaya   else
466010e230b6Smaya      return NEW_IDENTIFIER;
466110e230b6Smaya}
466210e230b6Smaya
466310e230b6Smayavoid
466410e230b6Smaya_mesa_glsl_lexer_ctor(struct _mesa_glsl_parse_state *state, const char *string)
466510e230b6Smaya{
466610e230b6Smaya   yylex_init_extra(state, & state->scanner);
466710e230b6Smaya   yy_scan_string(string, state->scanner);
466810e230b6Smaya}
466910e230b6Smaya
467010e230b6Smayavoid
467110e230b6Smaya_mesa_glsl_lexer_dtor(struct _mesa_glsl_parse_state *state)
467210e230b6Smaya{
467310e230b6Smaya   yylex_destroy(state->scanner);
467410e230b6Smaya}
467510e230b6Smaya
4676