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