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