11591693c7b415e9869157c711fe11263c95d74eDavid Li#line 2 "glcpp/glcpp-lex.c" 21591693c7b415e9869157c711fe11263c95d74eDavid Li 31591693c7b415e9869157c711fe11263c95d74eDavid Li#line 4 "glcpp/glcpp-lex.c" 41591693c7b415e9869157c711fe11263c95d74eDavid Li 51591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_INT_ALIGNED short int 61591693c7b415e9869157c711fe11263c95d74eDavid Li 71591693c7b415e9869157c711fe11263c95d74eDavid Li/* A lexical scanner generated by flex */ 81591693c7b415e9869157c711fe11263c95d74eDavid Li 91591693c7b415e9869157c711fe11263c95d74eDavid Li#define FLEX_SCANNER 101591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_FLEX_MAJOR_VERSION 2 111591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_FLEX_MINOR_VERSION 5 121591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_FLEX_SUBMINOR_VERSION 35 131591693c7b415e9869157c711fe11263c95d74eDavid Li#if YY_FLEX_SUBMINOR_VERSION > 0 141591693c7b415e9869157c711fe11263c95d74eDavid Li#define FLEX_BETA 151591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 161591693c7b415e9869157c711fe11263c95d74eDavid Li 171591693c7b415e9869157c711fe11263c95d74eDavid Li/* First, we deal with platform-specific or compiler-specific issues. */ 181591693c7b415e9869157c711fe11263c95d74eDavid Li 191591693c7b415e9869157c711fe11263c95d74eDavid Li/* begin standard C headers. */ 201591693c7b415e9869157c711fe11263c95d74eDavid Li#include <stdio.h> 211591693c7b415e9869157c711fe11263c95d74eDavid Li#include <string.h> 221591693c7b415e9869157c711fe11263c95d74eDavid Li#include <errno.h> 231591693c7b415e9869157c711fe11263c95d74eDavid Li#include <stdlib.h> 241591693c7b415e9869157c711fe11263c95d74eDavid Li 251591693c7b415e9869157c711fe11263c95d74eDavid Li/* end standard C headers. */ 261591693c7b415e9869157c711fe11263c95d74eDavid Li 271591693c7b415e9869157c711fe11263c95d74eDavid Li/* flex integer type definitions */ 281591693c7b415e9869157c711fe11263c95d74eDavid Li 291591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef FLEXINT_H 301591693c7b415e9869157c711fe11263c95d74eDavid Li#define FLEXINT_H 311591693c7b415e9869157c711fe11263c95d74eDavid Li 321591693c7b415e9869157c711fe11263c95d74eDavid Li/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ 331591693c7b415e9869157c711fe11263c95d74eDavid Li 341591693c7b415e9869157c711fe11263c95d74eDavid Li#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 351591693c7b415e9869157c711fe11263c95d74eDavid Li 361591693c7b415e9869157c711fe11263c95d74eDavid Li/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, 371591693c7b415e9869157c711fe11263c95d74eDavid Li * if you want the limit (max/min) macros for int types. 381591693c7b415e9869157c711fe11263c95d74eDavid Li */ 391591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef __STDC_LIMIT_MACROS 401591693c7b415e9869157c711fe11263c95d74eDavid Li#define __STDC_LIMIT_MACROS 1 411591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 421591693c7b415e9869157c711fe11263c95d74eDavid Li 431591693c7b415e9869157c711fe11263c95d74eDavid Li#include <inttypes.h> 441591693c7b415e9869157c711fe11263c95d74eDavid Litypedef int8_t flex_int8_t; 451591693c7b415e9869157c711fe11263c95d74eDavid Litypedef uint8_t flex_uint8_t; 461591693c7b415e9869157c711fe11263c95d74eDavid Litypedef int16_t flex_int16_t; 471591693c7b415e9869157c711fe11263c95d74eDavid Litypedef uint16_t flex_uint16_t; 481591693c7b415e9869157c711fe11263c95d74eDavid Litypedef int32_t flex_int32_t; 491591693c7b415e9869157c711fe11263c95d74eDavid Litypedef uint32_t flex_uint32_t; 501591693c7b415e9869157c711fe11263c95d74eDavid Li#else 511591693c7b415e9869157c711fe11263c95d74eDavid Litypedef signed char flex_int8_t; 521591693c7b415e9869157c711fe11263c95d74eDavid Litypedef short int flex_int16_t; 531591693c7b415e9869157c711fe11263c95d74eDavid Litypedef int flex_int32_t; 541591693c7b415e9869157c711fe11263c95d74eDavid Litypedef unsigned char flex_uint8_t; 551591693c7b415e9869157c711fe11263c95d74eDavid Litypedef unsigned short int flex_uint16_t; 561591693c7b415e9869157c711fe11263c95d74eDavid Litypedef unsigned int flex_uint32_t; 571591693c7b415e9869157c711fe11263c95d74eDavid Li#endif /* ! C99 */ 581591693c7b415e9869157c711fe11263c95d74eDavid Li 591591693c7b415e9869157c711fe11263c95d74eDavid Li/* Limits of integral types. */ 601591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef INT8_MIN 611591693c7b415e9869157c711fe11263c95d74eDavid Li#define INT8_MIN (-128) 621591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 631591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef INT16_MIN 641591693c7b415e9869157c711fe11263c95d74eDavid Li#define INT16_MIN (-32767-1) 651591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 661591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef INT32_MIN 671591693c7b415e9869157c711fe11263c95d74eDavid Li#define INT32_MIN (-2147483647-1) 681591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 691591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef INT8_MAX 701591693c7b415e9869157c711fe11263c95d74eDavid Li#define INT8_MAX (127) 711591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 721591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef INT16_MAX 731591693c7b415e9869157c711fe11263c95d74eDavid Li#define INT16_MAX (32767) 741591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 751591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef INT32_MAX 761591693c7b415e9869157c711fe11263c95d74eDavid Li#define INT32_MAX (2147483647) 771591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 781591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef UINT8_MAX 791591693c7b415e9869157c711fe11263c95d74eDavid Li#define UINT8_MAX (255U) 801591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 811591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef UINT16_MAX 821591693c7b415e9869157c711fe11263c95d74eDavid Li#define UINT16_MAX (65535U) 831591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 841591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef UINT32_MAX 851591693c7b415e9869157c711fe11263c95d74eDavid Li#define UINT32_MAX (4294967295U) 861591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 871591693c7b415e9869157c711fe11263c95d74eDavid Li 881591693c7b415e9869157c711fe11263c95d74eDavid Li#endif /* ! FLEXINT_H */ 891591693c7b415e9869157c711fe11263c95d74eDavid Li 901591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef __cplusplus 911591693c7b415e9869157c711fe11263c95d74eDavid Li 921591693c7b415e9869157c711fe11263c95d74eDavid Li/* The "const" storage-class-modifier is valid. */ 931591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_USE_CONST 941591693c7b415e9869157c711fe11263c95d74eDavid Li 951591693c7b415e9869157c711fe11263c95d74eDavid Li#else /* ! __cplusplus */ 961591693c7b415e9869157c711fe11263c95d74eDavid Li 971591693c7b415e9869157c711fe11263c95d74eDavid Li/* C99 requires __STDC__ to be defined as 1. */ 981591693c7b415e9869157c711fe11263c95d74eDavid Li#if defined (__STDC__) 991591693c7b415e9869157c711fe11263c95d74eDavid Li 1001591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_USE_CONST 1011591693c7b415e9869157c711fe11263c95d74eDavid Li 1021591693c7b415e9869157c711fe11263c95d74eDavid Li#endif /* defined (__STDC__) */ 1031591693c7b415e9869157c711fe11263c95d74eDavid Li#endif /* ! __cplusplus */ 1041591693c7b415e9869157c711fe11263c95d74eDavid Li 1051591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef YY_USE_CONST 1061591693c7b415e9869157c711fe11263c95d74eDavid Li#define yyconst const 1071591693c7b415e9869157c711fe11263c95d74eDavid Li#else 1081591693c7b415e9869157c711fe11263c95d74eDavid Li#define yyconst 1091591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 1101591693c7b415e9869157c711fe11263c95d74eDavid Li 1111591693c7b415e9869157c711fe11263c95d74eDavid Li/* Returned upon end-of-file. */ 1121591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_NULL 0 1131591693c7b415e9869157c711fe11263c95d74eDavid Li 1141591693c7b415e9869157c711fe11263c95d74eDavid Li/* Promotes a possibly negative, possibly signed char to an unsigned 1151591693c7b415e9869157c711fe11263c95d74eDavid Li * integer for use as an array index. If the signed char is negative, 1161591693c7b415e9869157c711fe11263c95d74eDavid Li * we want to instead treat it as an 8-bit unsigned char, hence the 1171591693c7b415e9869157c711fe11263c95d74eDavid Li * double cast. 1181591693c7b415e9869157c711fe11263c95d74eDavid Li */ 1191591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) 1201591693c7b415e9869157c711fe11263c95d74eDavid Li 1211591693c7b415e9869157c711fe11263c95d74eDavid Li/* An opaque pointer. */ 1221591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_TYPEDEF_YY_SCANNER_T 1231591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_TYPEDEF_YY_SCANNER_T 1241591693c7b415e9869157c711fe11263c95d74eDavid Litypedef void* yyscan_t; 1251591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 1261591693c7b415e9869157c711fe11263c95d74eDavid Li 1271591693c7b415e9869157c711fe11263c95d74eDavid Li/* For convenience, these vars (plus the bison vars far below) 1281591693c7b415e9869157c711fe11263c95d74eDavid Li are macros in the reentrant scanner. */ 1291591693c7b415e9869157c711fe11263c95d74eDavid Li#define yyin yyg->yyin_r 1301591693c7b415e9869157c711fe11263c95d74eDavid Li#define yyout yyg->yyout_r 1311591693c7b415e9869157c711fe11263c95d74eDavid Li#define yyextra yyg->yyextra_r 1321591693c7b415e9869157c711fe11263c95d74eDavid Li#define yyleng yyg->yyleng_r 1331591693c7b415e9869157c711fe11263c95d74eDavid Li#define yytext yyg->yytext_r 1341591693c7b415e9869157c711fe11263c95d74eDavid Li#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) 1351591693c7b415e9869157c711fe11263c95d74eDavid Li#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) 1361591693c7b415e9869157c711fe11263c95d74eDavid Li#define yy_flex_debug yyg->yy_flex_debug_r 1371591693c7b415e9869157c711fe11263c95d74eDavid Li 1381591693c7b415e9869157c711fe11263c95d74eDavid Li/* Enter a start condition. This macro really ought to take a parameter, 1391591693c7b415e9869157c711fe11263c95d74eDavid Li * but we do it the disgusting crufty way forced on us by the ()-less 1401591693c7b415e9869157c711fe11263c95d74eDavid Li * definition of BEGIN. 1411591693c7b415e9869157c711fe11263c95d74eDavid Li */ 1421591693c7b415e9869157c711fe11263c95d74eDavid Li#define BEGIN yyg->yy_start = 1 + 2 * 1431591693c7b415e9869157c711fe11263c95d74eDavid Li 1441591693c7b415e9869157c711fe11263c95d74eDavid Li/* Translate the current start state into a value that can be later handed 1451591693c7b415e9869157c711fe11263c95d74eDavid Li * to BEGIN to return to the state. The YYSTATE alias is for lex 1461591693c7b415e9869157c711fe11263c95d74eDavid Li * compatibility. 1471591693c7b415e9869157c711fe11263c95d74eDavid Li */ 1481591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_START ((yyg->yy_start - 1) / 2) 1491591693c7b415e9869157c711fe11263c95d74eDavid Li#define YYSTATE YY_START 1501591693c7b415e9869157c711fe11263c95d74eDavid Li 1511591693c7b415e9869157c711fe11263c95d74eDavid Li/* Action number for EOF rule of a given start state. */ 1521591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) 1531591693c7b415e9869157c711fe11263c95d74eDavid Li 1541591693c7b415e9869157c711fe11263c95d74eDavid Li/* Special action meaning "start processing a new file". */ 1551591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_NEW_FILE glcpp_restart(yyin ,yyscanner ) 1561591693c7b415e9869157c711fe11263c95d74eDavid Li 1571591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_END_OF_BUFFER_CHAR 0 1581591693c7b415e9869157c711fe11263c95d74eDavid Li 1591591693c7b415e9869157c711fe11263c95d74eDavid Li/* Size of default input buffer. */ 1601591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_BUF_SIZE 1611591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_BUF_SIZE 16384 1621591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 1631591693c7b415e9869157c711fe11263c95d74eDavid Li 1641591693c7b415e9869157c711fe11263c95d74eDavid Li/* The state buf must be large enough to hold one state per character in the main buffer. 1651591693c7b415e9869157c711fe11263c95d74eDavid Li */ 1661591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) 1671591693c7b415e9869157c711fe11263c95d74eDavid Li 1681591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_TYPEDEF_YY_BUFFER_STATE 1691591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_TYPEDEF_YY_BUFFER_STATE 1701591693c7b415e9869157c711fe11263c95d74eDavid Litypedef struct yy_buffer_state *YY_BUFFER_STATE; 1711591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 1721591693c7b415e9869157c711fe11263c95d74eDavid Li 1731591693c7b415e9869157c711fe11263c95d74eDavid Li#define EOB_ACT_CONTINUE_SCAN 0 1741591693c7b415e9869157c711fe11263c95d74eDavid Li#define EOB_ACT_END_OF_FILE 1 1751591693c7b415e9869157c711fe11263c95d74eDavid Li#define EOB_ACT_LAST_MATCH 2 1761591693c7b415e9869157c711fe11263c95d74eDavid Li 1771591693c7b415e9869157c711fe11263c95d74eDavid Li #define YY_LESS_LINENO(n) 1781591693c7b415e9869157c711fe11263c95d74eDavid Li 1791591693c7b415e9869157c711fe11263c95d74eDavid Li/* Return all but the first "n" matched characters back to the input stream. */ 1801591693c7b415e9869157c711fe11263c95d74eDavid Li#define yyless(n) \ 1811591693c7b415e9869157c711fe11263c95d74eDavid Li do \ 1821591693c7b415e9869157c711fe11263c95d74eDavid Li { \ 1831591693c7b415e9869157c711fe11263c95d74eDavid Li /* Undo effects of setting up yytext. */ \ 1841591693c7b415e9869157c711fe11263c95d74eDavid Li int yyless_macro_arg = (n); \ 1851591693c7b415e9869157c711fe11263c95d74eDavid Li YY_LESS_LINENO(yyless_macro_arg);\ 1861591693c7b415e9869157c711fe11263c95d74eDavid Li *yy_cp = yyg->yy_hold_char; \ 1871591693c7b415e9869157c711fe11263c95d74eDavid Li YY_RESTORE_YY_MORE_OFFSET \ 1881591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ 1891591693c7b415e9869157c711fe11263c95d74eDavid Li YY_DO_BEFORE_ACTION; /* set up yytext again */ \ 1901591693c7b415e9869157c711fe11263c95d74eDavid Li } \ 1911591693c7b415e9869157c711fe11263c95d74eDavid Li while ( 0 ) 1921591693c7b415e9869157c711fe11263c95d74eDavid Li 1931591693c7b415e9869157c711fe11263c95d74eDavid Li#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) 1941591693c7b415e9869157c711fe11263c95d74eDavid Li 1951591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_TYPEDEF_YY_SIZE_T 1961591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_TYPEDEF_YY_SIZE_T 1971591693c7b415e9869157c711fe11263c95d74eDavid Litypedef size_t yy_size_t; 1981591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 1991591693c7b415e9869157c711fe11263c95d74eDavid Li 2001591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_STRUCT_YY_BUFFER_STATE 2011591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_STRUCT_YY_BUFFER_STATE 2021591693c7b415e9869157c711fe11263c95d74eDavid Listruct yy_buffer_state 2031591693c7b415e9869157c711fe11263c95d74eDavid Li { 2041591693c7b415e9869157c711fe11263c95d74eDavid Li FILE *yy_input_file; 2051591693c7b415e9869157c711fe11263c95d74eDavid Li 2061591693c7b415e9869157c711fe11263c95d74eDavid Li char *yy_ch_buf; /* input buffer */ 2071591693c7b415e9869157c711fe11263c95d74eDavid Li char *yy_buf_pos; /* current position in input buffer */ 2081591693c7b415e9869157c711fe11263c95d74eDavid Li 2091591693c7b415e9869157c711fe11263c95d74eDavid Li /* Size of input buffer in bytes, not including room for EOB 2101591693c7b415e9869157c711fe11263c95d74eDavid Li * characters. 2111591693c7b415e9869157c711fe11263c95d74eDavid Li */ 2121591693c7b415e9869157c711fe11263c95d74eDavid Li yy_size_t yy_buf_size; 2131591693c7b415e9869157c711fe11263c95d74eDavid Li 2141591693c7b415e9869157c711fe11263c95d74eDavid Li /* Number of characters read into yy_ch_buf, not including EOB 2151591693c7b415e9869157c711fe11263c95d74eDavid Li * characters. 2161591693c7b415e9869157c711fe11263c95d74eDavid Li */ 2171591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_n_chars; 2181591693c7b415e9869157c711fe11263c95d74eDavid Li 2191591693c7b415e9869157c711fe11263c95d74eDavid Li /* Whether we "own" the buffer - i.e., we know we created it, 2201591693c7b415e9869157c711fe11263c95d74eDavid Li * and can realloc() it to grow it, and should free() it to 2211591693c7b415e9869157c711fe11263c95d74eDavid Li * delete it. 2221591693c7b415e9869157c711fe11263c95d74eDavid Li */ 2231591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_is_our_buffer; 2241591693c7b415e9869157c711fe11263c95d74eDavid Li 2251591693c7b415e9869157c711fe11263c95d74eDavid Li /* Whether this is an "interactive" input source; if so, and 2261591693c7b415e9869157c711fe11263c95d74eDavid Li * if we're using stdio for input, then we want to use getc() 2271591693c7b415e9869157c711fe11263c95d74eDavid Li * instead of fread(), to make sure we stop fetching input after 2281591693c7b415e9869157c711fe11263c95d74eDavid Li * each newline. 2291591693c7b415e9869157c711fe11263c95d74eDavid Li */ 2301591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_is_interactive; 2311591693c7b415e9869157c711fe11263c95d74eDavid Li 2321591693c7b415e9869157c711fe11263c95d74eDavid Li /* Whether we're considered to be at the beginning of a line. 2331591693c7b415e9869157c711fe11263c95d74eDavid Li * If so, '^' rules will be active on the next match, otherwise 2341591693c7b415e9869157c711fe11263c95d74eDavid Li * not. 2351591693c7b415e9869157c711fe11263c95d74eDavid Li */ 2361591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_at_bol; 2371591693c7b415e9869157c711fe11263c95d74eDavid Li 2381591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_bs_lineno; /**< The line count. */ 2391591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_bs_column; /**< The column count. */ 2401591693c7b415e9869157c711fe11263c95d74eDavid Li 2411591693c7b415e9869157c711fe11263c95d74eDavid Li /* Whether to try to fill the input buffer when we reach the 2421591693c7b415e9869157c711fe11263c95d74eDavid Li * end of it. 2431591693c7b415e9869157c711fe11263c95d74eDavid Li */ 2441591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_fill_buffer; 2451591693c7b415e9869157c711fe11263c95d74eDavid Li 2461591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_buffer_status; 2471591693c7b415e9869157c711fe11263c95d74eDavid Li 2481591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_BUFFER_NEW 0 2491591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_BUFFER_NORMAL 1 2501591693c7b415e9869157c711fe11263c95d74eDavid Li /* When an EOF's been seen but there's still some text to process 2511591693c7b415e9869157c711fe11263c95d74eDavid Li * then we mark the buffer as YY_EOF_PENDING, to indicate that we 2521591693c7b415e9869157c711fe11263c95d74eDavid Li * shouldn't try reading from the input source any more. We might 2531591693c7b415e9869157c711fe11263c95d74eDavid Li * still have a bunch of tokens to match, though, because of 2541591693c7b415e9869157c711fe11263c95d74eDavid Li * possible backing-up. 2551591693c7b415e9869157c711fe11263c95d74eDavid Li * 2561591693c7b415e9869157c711fe11263c95d74eDavid Li * When we actually see the EOF, we change the status to "new" 2571591693c7b415e9869157c711fe11263c95d74eDavid Li * (via glcpp_restart()), so that the user can continue scanning by 2581591693c7b415e9869157c711fe11263c95d74eDavid Li * just pointing yyin at a new input file. 2591591693c7b415e9869157c711fe11263c95d74eDavid Li */ 2601591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_BUFFER_EOF_PENDING 2 2611591693c7b415e9869157c711fe11263c95d74eDavid Li 2621591693c7b415e9869157c711fe11263c95d74eDavid Li }; 2631591693c7b415e9869157c711fe11263c95d74eDavid Li#endif /* !YY_STRUCT_YY_BUFFER_STATE */ 2641591693c7b415e9869157c711fe11263c95d74eDavid Li 2651591693c7b415e9869157c711fe11263c95d74eDavid Li/* We provide macros for accessing buffer states in case in the 2661591693c7b415e9869157c711fe11263c95d74eDavid Li * future we want to put the buffer states in a more general 2671591693c7b415e9869157c711fe11263c95d74eDavid Li * "scanner state". 2681591693c7b415e9869157c711fe11263c95d74eDavid Li * 2691591693c7b415e9869157c711fe11263c95d74eDavid Li * Returns the top of the stack, or NULL. 2701591693c7b415e9869157c711fe11263c95d74eDavid Li */ 2711591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ 2721591693c7b415e9869157c711fe11263c95d74eDavid Li ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ 2731591693c7b415e9869157c711fe11263c95d74eDavid Li : NULL) 2741591693c7b415e9869157c711fe11263c95d74eDavid Li 2751591693c7b415e9869157c711fe11263c95d74eDavid Li/* Same as previous macro, but useful when we know that the buffer stack is not 2761591693c7b415e9869157c711fe11263c95d74eDavid Li * NULL or when we need an lvalue. For internal use only. 2771591693c7b415e9869157c711fe11263c95d74eDavid Li */ 2781591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] 2791591693c7b415e9869157c711fe11263c95d74eDavid Li 2801591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_restart (FILE *input_file ,yyscan_t yyscanner ); 2811591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); 2821591693c7b415e9869157c711fe11263c95d74eDavid LiYY_BUFFER_STATE glcpp__create_buffer (FILE *file,int size ,yyscan_t yyscanner ); 2831591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); 2841591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); 2851591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); 2861591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_pop_buffer_state (yyscan_t yyscanner ); 2871591693c7b415e9869157c711fe11263c95d74eDavid Li 2881591693c7b415e9869157c711fe11263c95d74eDavid Listatic void glcpp_ensure_buffer_stack (yyscan_t yyscanner ); 2891591693c7b415e9869157c711fe11263c95d74eDavid Listatic void glcpp__load_buffer_state (yyscan_t yyscanner ); 2901591693c7b415e9869157c711fe11263c95d74eDavid Listatic void glcpp__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner ); 2911591693c7b415e9869157c711fe11263c95d74eDavid Li 2921591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_FLUSH_BUFFER glcpp__flush_buffer(YY_CURRENT_BUFFER ,yyscanner) 2931591693c7b415e9869157c711fe11263c95d74eDavid Li 2941591693c7b415e9869157c711fe11263c95d74eDavid LiYY_BUFFER_STATE glcpp__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); 2951591693c7b415e9869157c711fe11263c95d74eDavid LiYY_BUFFER_STATE glcpp__scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); 2961591693c7b415e9869157c711fe11263c95d74eDavid LiYY_BUFFER_STATE glcpp__scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); 2971591693c7b415e9869157c711fe11263c95d74eDavid Li 2981591693c7b415e9869157c711fe11263c95d74eDavid Livoid *glcpp_alloc (yy_size_t ,yyscan_t yyscanner ); 2991591693c7b415e9869157c711fe11263c95d74eDavid Livoid *glcpp_realloc (void *,yy_size_t ,yyscan_t yyscanner ); 3001591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_free (void * ,yyscan_t yyscanner ); 3011591693c7b415e9869157c711fe11263c95d74eDavid Li 3021591693c7b415e9869157c711fe11263c95d74eDavid Li#define yy_new_buffer glcpp__create_buffer 3031591693c7b415e9869157c711fe11263c95d74eDavid Li 3041591693c7b415e9869157c711fe11263c95d74eDavid Li#define yy_set_interactive(is_interactive) \ 3051591693c7b415e9869157c711fe11263c95d74eDavid Li { \ 3061591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! YY_CURRENT_BUFFER ){ \ 3071591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp_ensure_buffer_stack (yyscanner); \ 3081591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE = \ 3091591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ 3101591693c7b415e9869157c711fe11263c95d74eDavid Li } \ 3111591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ 3121591693c7b415e9869157c711fe11263c95d74eDavid Li } 3131591693c7b415e9869157c711fe11263c95d74eDavid Li 3141591693c7b415e9869157c711fe11263c95d74eDavid Li#define yy_set_bol(at_bol) \ 3151591693c7b415e9869157c711fe11263c95d74eDavid Li { \ 3161591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! YY_CURRENT_BUFFER ){\ 3171591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp_ensure_buffer_stack (yyscanner); \ 3181591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE = \ 3191591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ 3201591693c7b415e9869157c711fe11263c95d74eDavid Li } \ 3211591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ 3221591693c7b415e9869157c711fe11263c95d74eDavid Li } 3231591693c7b415e9869157c711fe11263c95d74eDavid Li 3241591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) 3251591693c7b415e9869157c711fe11263c95d74eDavid Li 3261591693c7b415e9869157c711fe11263c95d74eDavid Li/* Begin user sect3 */ 3271591693c7b415e9869157c711fe11263c95d74eDavid Li 3281591693c7b415e9869157c711fe11263c95d74eDavid Li#define glcpp_wrap(n) 1 3291591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_SKIP_YYWRAP 3301591693c7b415e9869157c711fe11263c95d74eDavid Li 3311591693c7b415e9869157c711fe11263c95d74eDavid Litypedef unsigned char YY_CHAR; 3321591693c7b415e9869157c711fe11263c95d74eDavid Li 3331591693c7b415e9869157c711fe11263c95d74eDavid Litypedef int yy_state_type; 3341591693c7b415e9869157c711fe11263c95d74eDavid Li 3351591693c7b415e9869157c711fe11263c95d74eDavid Li#define yytext_ptr yytext_r 3361591693c7b415e9869157c711fe11263c95d74eDavid Li 3371591693c7b415e9869157c711fe11263c95d74eDavid Listatic yy_state_type yy_get_previous_state (yyscan_t yyscanner ); 3381591693c7b415e9869157c711fe11263c95d74eDavid Listatic yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner); 3391591693c7b415e9869157c711fe11263c95d74eDavid Listatic int yy_get_next_buffer (yyscan_t yyscanner ); 3401591693c7b415e9869157c711fe11263c95d74eDavid Listatic void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); 3411591693c7b415e9869157c711fe11263c95d74eDavid Li 3421591693c7b415e9869157c711fe11263c95d74eDavid Li/* Done after the current pattern has been matched and before the 3431591693c7b415e9869157c711fe11263c95d74eDavid Li * corresponding action - sets up yytext. 3441591693c7b415e9869157c711fe11263c95d74eDavid Li */ 3451591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_DO_BEFORE_ACTION \ 3461591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yytext_ptr = yy_bp; \ 3471591693c7b415e9869157c711fe11263c95d74eDavid Li yyleng = (size_t) (yy_cp - yy_bp); \ 3481591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_hold_char = *yy_cp; \ 3491591693c7b415e9869157c711fe11263c95d74eDavid Li *yy_cp = '\0'; \ 3501591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_c_buf_p = yy_cp; 3511591693c7b415e9869157c711fe11263c95d74eDavid Li 3521591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_NUM_RULES 43 3531591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_END_OF_BUFFER 44 3541591693c7b415e9869157c711fe11263c95d74eDavid Li/* This struct is not used in this scanner, 3551591693c7b415e9869157c711fe11263c95d74eDavid Li but its presence is necessary. */ 3561591693c7b415e9869157c711fe11263c95d74eDavid Listruct yy_trans_info 3571591693c7b415e9869157c711fe11263c95d74eDavid Li { 3581591693c7b415e9869157c711fe11263c95d74eDavid Li flex_int32_t yy_verify; 3591591693c7b415e9869157c711fe11263c95d74eDavid Li flex_int32_t yy_nxt; 3601591693c7b415e9869157c711fe11263c95d74eDavid Li }; 3611591693c7b415e9869157c711fe11263c95d74eDavid Listatic yyconst flex_int16_t yy_acclist[137] = 3621591693c7b415e9869157c711fe11263c95d74eDavid Li { 0, 3631591693c7b415e9869157c711fe11263c95d74eDavid Li 3, 3, 44, 39, 43, 40, 43, 41, 43, 43, 3641591693c7b415e9869157c711fe11263c95d74eDavid Li 38, 43, 43, 38, 43, 38, 43, 38, 43, 25, 3651591693c7b415e9869157c711fe11263c95d74eDavid Li 39, 43, 24, 39, 43, 38, 43, 38, 43, 38, 3661591693c7b415e9869157c711fe11263c95d74eDavid Li 43, 37, 39, 43, 37, 39, 43, 38, 43, 40, 3671591693c7b415e9869157c711fe11263c95d74eDavid Li 43, 23, 43, 43, 3, 43, 4, 43, 5, 43, 3681591693c7b415e9869157c711fe11263c95d74eDavid Li 42, 43, 39, 18, 40, 32, 35, 33, 2, 1, 3691591693c7b415e9869157c711fe11263c95d74eDavid Li 25, 39, 25, 39, 39, 24, 39, 24, 39, 27, 3701591693c7b415e9869157c711fe11263c95d74eDavid Li 29, 31, 30, 28, 37, 39, 37, 39, 34, 40, 3711591693c7b415e9869157c711fe11263c95d74eDavid Li 23, 23, 3, 4, 5, 6, 5, 7, 1, 26, 3721591693c7b415e9869157c711fe11263c95d74eDavid Li 39, 37, 39,16398, 26, 39, 37, 39, 18, 37, 3731591693c7b415e9869157c711fe11263c95d74eDavid Li 3741591693c7b415e9869157c711fe11263c95d74eDavid Li 39,16399,16400, 8206, 18, 8206, 37, 39, 8207, 18, 3751591693c7b415e9869157c711fe11263c95d74eDavid Li 8208, 18,16401, 19,16396, 22, 36, 37, 39, 21, 3761591693c7b415e9869157c711fe11263c95d74eDavid Li 8209, 18, 19, 8204, 18,16397,16404, 8205, 18, 11, 3771591693c7b415e9869157c711fe11263c95d74eDavid Li 18, 9, 8, 8212, 10, 18 3781591693c7b415e9869157c711fe11263c95d74eDavid Li } ; 3791591693c7b415e9869157c711fe11263c95d74eDavid Li 3801591693c7b415e9869157c711fe11263c95d74eDavid Listatic yyconst flex_int16_t yy_accept[164] = 3811591693c7b415e9869157c711fe11263c95d74eDavid Li { 0, 3821591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 2, 3, 3, 3, 4, 3831591693c7b415e9869157c711fe11263c95d74eDavid Li 6, 8, 10, 11, 13, 14, 16, 18, 20, 23, 3841591693c7b415e9869157c711fe11263c95d74eDavid Li 26, 28, 30, 32, 35, 38, 40, 42, 44, 45, 3851591693c7b415e9869157c711fe11263c95d74eDavid Li 47, 49, 51, 53, 54, 54, 55, 56, 57, 58, 3861591693c7b415e9869157c711fe11263c95d74eDavid Li 59, 60, 61, 63, 65, 66, 68, 70, 71, 72, 3871591693c7b415e9869157c711fe11263c95d74eDavid Li 73, 74, 75, 77, 79, 80, 81, 82, 83, 83, 3881591693c7b415e9869157c711fe11263c95d74eDavid Li 83, 83, 83, 83, 83, 83, 84, 85, 86, 87, 3891591693c7b415e9869157c711fe11263c95d74eDavid Li 88, 89, 90, 92, 94, 94, 94, 94, 94, 94, 3901591693c7b415e9869157c711fe11263c95d74eDavid Li 95, 95, 95, 95, 95, 97, 99, 99, 99, 99, 3911591693c7b415e9869157c711fe11263c95d74eDavid Li 99, 99, 99, 99, 100, 100, 100, 100, 100, 100, 3921591693c7b415e9869157c711fe11263c95d74eDavid Li 3931591693c7b415e9869157c711fe11263c95d74eDavid Li 100, 102, 102, 103, 104, 104, 104, 104, 104, 106, 3941591693c7b415e9869157c711fe11263c95d74eDavid Li 106, 107, 107, 107, 107, 107, 107, 107, 109, 109, 3951591693c7b415e9869157c711fe11263c95d74eDavid Li 109, 111, 111, 113, 114, 115, 115, 116, 116, 116, 3961591693c7b415e9869157c711fe11263c95d74eDavid Li 116, 117, 117, 120, 121, 121, 123, 124, 124, 124, 3971591693c7b415e9869157c711fe11263c95d74eDavid Li 126, 127, 127, 127, 127, 128, 128, 128, 130, 130, 3981591693c7b415e9869157c711fe11263c95d74eDavid Li 132, 132, 133, 134, 134, 134, 134, 135, 135, 135, 3991591693c7b415e9869157c711fe11263c95d74eDavid Li 137, 137, 137 4001591693c7b415e9869157c711fe11263c95d74eDavid Li } ; 4011591693c7b415e9869157c711fe11263c95d74eDavid Li 4021591693c7b415e9869157c711fe11263c95d74eDavid Listatic yyconst flex_int32_t yy_ec[256] = 4031591693c7b415e9869157c711fe11263c95d74eDavid Li { 0, 4041591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4051591693c7b415e9869157c711fe11263c95d74eDavid Li 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 4061591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4071591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 2, 5, 1, 6, 1, 7, 8, 1, 9, 4081591693c7b415e9869157c711fe11263c95d74eDavid Li 7, 10, 7, 7, 7, 7, 11, 12, 13, 13, 4091591693c7b415e9869157c711fe11263c95d74eDavid Li 13, 13, 13, 13, 13, 14, 14, 1, 7, 15, 4101591693c7b415e9869157c711fe11263c95d74eDavid Li 16, 17, 1, 1, 18, 18, 18, 18, 18, 18, 4111591693c7b415e9869157c711fe11263c95d74eDavid Li 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 4121591693c7b415e9869157c711fe11263c95d74eDavid Li 19, 19, 19, 19, 20, 19, 19, 21, 19, 19, 4131591693c7b415e9869157c711fe11263c95d74eDavid Li 7, 1, 7, 7, 19, 1, 22, 18, 18, 23, 4141591693c7b415e9869157c711fe11263c95d74eDavid Li 4151591693c7b415e9869157c711fe11263c95d74eDavid Li 24, 25, 26, 19, 27, 19, 19, 28, 29, 30, 4161591693c7b415e9869157c711fe11263c95d74eDavid Li 31, 32, 19, 33, 34, 35, 36, 37, 19, 38, 4171591693c7b415e9869157c711fe11263c95d74eDavid Li 19, 19, 7, 39, 7, 7, 1, 1, 1, 1, 4181591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4191591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4201591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4211591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4221591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4231591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4241591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4251591693c7b415e9869157c711fe11263c95d74eDavid Li 4261591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4271591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4281591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4291591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4301591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4311591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1 4321591693c7b415e9869157c711fe11263c95d74eDavid Li } ; 4331591693c7b415e9869157c711fe11263c95d74eDavid Li 4341591693c7b415e9869157c711fe11263c95d74eDavid Listatic yyconst flex_int32_t yy_meta[40] = 4351591693c7b415e9869157c711fe11263c95d74eDavid Li { 0, 4361591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4371591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4381591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4391591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1 4401591693c7b415e9869157c711fe11263c95d74eDavid Li } ; 4411591693c7b415e9869157c711fe11263c95d74eDavid Li 4421591693c7b415e9869157c711fe11263c95d74eDavid Listatic yyconst flex_int16_t yy_base[182] = 4431591693c7b415e9869157c711fe11263c95d74eDavid Li { 0, 4441591693c7b415e9869157c711fe11263c95d74eDavid Li 0, 38, 0, 0, 38, 39, 499, 498, 500, 48, 4451591693c7b415e9869157c711fe11263c95d74eDavid Li 43, 552, 496, 44, 63, 495, 59, 65, 87, 125, 4461591693c7b415e9869157c711fe11263c95d74eDavid Li 58, 67, 68, 164, 203, 40, 75, 241, 552, 494, 4471591693c7b415e9869157c711fe11263c95d74eDavid Li 552, 140, 552, 140, 493, 552, 144, 492, 491, 487, 4481591693c7b415e9869157c711fe11263c95d74eDavid Li 486, 485, 156, 179, 267, 0, 209, 472, 471, 470, 4491591693c7b415e9869157c711fe11263c95d74eDavid Li 469, 468, 446, 124, 466, 153, 462, 458, 154, 198, 4501591693c7b415e9869157c711fe11263c95d74eDavid Li 159, 155, 183, 160, 193, 460, 552, 222, 552, 227, 4511591693c7b415e9869157c711fe11263c95d74eDavid Li 552, 459, 204, 161, 231, 232, 238, 243, 236, 303, 4521591693c7b415e9869157c711fe11263c95d74eDavid Li 245, 180, 247, 249, 281, 56, 257, 271, 248, 259, 4531591693c7b415e9869157c711fe11263c95d74eDavid Li 252, 264, 455, 454, 297, 299, 312, 313, 320, 294, 4541591693c7b415e9869157c711fe11263c95d74eDavid Li 4551591693c7b415e9869157c711fe11263c95d74eDavid Li 407, 295, 427, 426, 321, 296, 324, 425, 552, 424, 4561591693c7b415e9869157c711fe11263c95d74eDavid Li 552, 327, 329, 195, 328, 331, 332, 230, 334, 378, 4571591693c7b415e9869157c711fe11263c95d74eDavid Li 552, 377, 552, 371, 370, 335, 365, 337, 358, 342, 4581591693c7b415e9869157c711fe11263c95d74eDavid Li 360, 344, 326, 255, 340, 552, 260, 338, 246, 552, 4591591693c7b415e9869157c711fe11263c95d74eDavid Li 197, 364, 192, 352, 382, 348, 186, 552, 420, 552, 4601591693c7b415e9869157c711fe11263c95d74eDavid Li 423, 184, 141, 437, 421, 447, 79, 476, 346, 552, 4611591693c7b415e9869157c711fe11263c95d74eDavid Li 453, 552, 515, 517, 519, 521, 523, 525, 71, 527, 4621591693c7b415e9869157c711fe11263c95d74eDavid Li 529, 531, 533, 535, 537, 539, 541, 543, 545, 547, 4631591693c7b415e9869157c711fe11263c95d74eDavid Li 549 4641591693c7b415e9869157c711fe11263c95d74eDavid Li } ; 4651591693c7b415e9869157c711fe11263c95d74eDavid Li 4661591693c7b415e9869157c711fe11263c95d74eDavid Listatic yyconst flex_int16_t yy_def[182] = 4671591693c7b415e9869157c711fe11263c95d74eDavid Li { 0, 4681591693c7b415e9869157c711fe11263c95d74eDavid Li 162, 1, 163, 163, 164, 164, 165, 165, 162, 166, 4691591693c7b415e9869157c711fe11263c95d74eDavid Li 167, 162, 167, 167, 167, 167, 167, 167, 162, 166, 4701591693c7b415e9869157c711fe11263c95d74eDavid Li 167, 167, 167, 168, 168, 167, 167, 167, 162, 169, 4711591693c7b415e9869157c711fe11263c95d74eDavid Li 162, 170, 162, 20, 167, 162, 167, 167, 167, 167, 4721591693c7b415e9869157c711fe11263c95d74eDavid Li 167, 171, 19, 20, 20, 20, 20, 167, 167, 167, 4731591693c7b415e9869157c711fe11263c95d74eDavid Li 167, 167, 25, 25, 167, 167, 28, 28, 167, 167, 4741591693c7b415e9869157c711fe11263c95d74eDavid Li 167, 167, 167, 167, 167, 169, 162, 170, 162, 170, 4751591693c7b415e9869157c711fe11263c95d74eDavid Li 162, 171, 45, 25, 167, 167, 167, 167, 167, 167, 4761591693c7b415e9869157c711fe11263c95d74eDavid Li 167, 167, 167, 167, 20, 25, 167, 167, 167, 167, 4771591693c7b415e9869157c711fe11263c95d74eDavid Li 167, 167, 172, 173, 167, 167, 167, 167, 167, 167, 4781591693c7b415e9869157c711fe11263c95d74eDavid Li 4791591693c7b415e9869157c711fe11263c95d74eDavid Li 25, 167, 174, 175, 167, 167, 167, 172, 162, 173, 4801591693c7b415e9869157c711fe11263c95d74eDavid Li 162, 167, 167, 167, 167, 167, 167, 25, 167, 174, 4811591693c7b415e9869157c711fe11263c95d74eDavid Li 162, 175, 162, 176, 177, 167, 178, 167, 167, 167, 4821591693c7b415e9869157c711fe11263c95d74eDavid Li 167, 167, 25, 167, 176, 162, 177, 167, 178, 162, 4831591693c7b415e9869157c711fe11263c95d74eDavid Li 179, 167, 180, 167, 162, 167, 179, 162, 167, 162, 4841591693c7b415e9869157c711fe11263c95d74eDavid Li 167, 180, 167, 181, 167, 167, 167, 181, 167, 162, 4851591693c7b415e9869157c711fe11263c95d74eDavid Li 167, 0, 162, 162, 162, 162, 162, 162, 162, 162, 4861591693c7b415e9869157c711fe11263c95d74eDavid Li 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 4871591693c7b415e9869157c711fe11263c95d74eDavid Li 162 4881591693c7b415e9869157c711fe11263c95d74eDavid Li } ; 4891591693c7b415e9869157c711fe11263c95d74eDavid Li 4901591693c7b415e9869157c711fe11263c95d74eDavid Listatic yyconst flex_int16_t yy_nxt[592] = 4911591693c7b415e9869157c711fe11263c95d74eDavid Li { 0, 4921591693c7b415e9869157c711fe11263c95d74eDavid Li 10, 11, 12, 13, 14, 15, 16, 17, 16, 16, 4931591693c7b415e9869157c711fe11263c95d74eDavid Li 18, 19, 20, 20, 21, 22, 23, 24, 24, 24, 4941591693c7b415e9869157c711fe11263c95d74eDavid Li 24, 24, 25, 24, 24, 24, 24, 24, 24, 24, 4951591693c7b415e9869157c711fe11263c95d74eDavid Li 24, 24, 24, 24, 24, 24, 24, 24, 26, 27, 4961591693c7b415e9869157c711fe11263c95d74eDavid Li 31, 31, 36, 28, 37, 36, 36, 32, 32, 35, 4971591693c7b415e9869157c711fe11263c95d74eDavid Li 36, 35, 35, 35, 35, 35, 35, 35, 35, 38, 4981591693c7b415e9869157c711fe11263c95d74eDavid Li 36, 36, 35, 35, 35, 36, 40, 36, 39, 36, 4991591693c7b415e9869157c711fe11263c95d74eDavid Li 36, 66, 48, 49, 41, 42, 56, 36, 55, 53, 5001591693c7b415e9869157c711fe11263c95d74eDavid Li 57, 36, 50, 51, 52, 101, 35, 34, 35, 36, 5011591693c7b415e9869157c711fe11263c95d74eDavid Li 35, 35, 35, 35, 35, 35, 35, 35, 43, 43, 5021591693c7b415e9869157c711fe11263c95d74eDavid Li 5031591693c7b415e9869157c711fe11263c95d74eDavid Li 34, 35, 35, 35, 34, 34, 44, 45, 34, 34, 5041591693c7b415e9869157c711fe11263c95d74eDavid Li 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 5051591693c7b415e9869157c711fe11263c95d74eDavid Li 34, 34, 44, 34, 45, 35, 35, 36, 35, 35, 5061591693c7b415e9869157c711fe11263c95d74eDavid Li 35, 35, 35, 35, 35, 35, 46, 46, 46, 35, 5071591693c7b415e9869157c711fe11263c95d74eDavid Li 35, 35, 69, 36, 47, 37, 36, 53, 74, 70, 5081591693c7b415e9869157c711fe11263c95d74eDavid Li 71, 34, 34, 34, 56, 36, 36, 36, 57, 34, 5091591693c7b415e9869157c711fe11263c95d74eDavid Li 47, 36, 36, 35, 34, 35, 36, 35, 35, 35, 5101591693c7b415e9869157c711fe11263c95d74eDavid Li 35, 35, 35, 35, 35, 34, 34, 75, 35, 35, 5111591693c7b415e9869157c711fe11263c95d74eDavid Li 35, 81, 36, 80, 53, 36, 36, 86, 148, 83, 5121591693c7b415e9869157c711fe11263c95d74eDavid Li 34, 34, 34, 34, 36, 36, 129, 36, 34, 148, 5131591693c7b415e9869157c711fe11263c95d74eDavid Li 5141591693c7b415e9869157c711fe11263c95d74eDavid Li 36, 98, 35, 34, 35, 36, 35, 35, 35, 35, 5151591693c7b415e9869157c711fe11263c95d74eDavid Li 35, 35, 35, 35, 34, 82, 84, 35, 35, 35, 5161591693c7b415e9869157c711fe11263c95d74eDavid Li 34, 34, 34, 85, 69, 76, 54, 77, 34, 69, 5171591693c7b415e9869157c711fe11263c95d74eDavid Li 78, 162, 162, 36, 36, 79, 70, 71, 36, 85, 5181591693c7b415e9869157c711fe11263c95d74eDavid Li 36, 35, 58, 36, 34, 36, 39, 36, 140, 36, 5191591693c7b415e9869157c711fe11263c95d74eDavid Li 36, 36, 133, 53, 36, 87, 145, 36, 88, 36, 5201591693c7b415e9869157c711fe11263c95d74eDavid Li 90, 36, 36, 59, 60, 89, 36, 61, 62, 99, 5211591693c7b415e9869157c711fe11263c95d74eDavid Li 92, 104, 63, 36, 97, 91, 64, 65, 73, 73, 5221591693c7b415e9869157c711fe11263c95d74eDavid Li 73, 100, 106, 102, 73, 105, 34, 107, 73, 73, 5231591693c7b415e9869157c711fe11263c95d74eDavid Li 73, 73, 34, 34, 34, 103, 36, 36, 36, 36, 5241591693c7b415e9869157c711fe11263c95d74eDavid Li 5251591693c7b415e9869157c711fe11263c95d74eDavid Li 34, 36, 34, 93, 93, 94, 93, 93, 93, 93, 5261591693c7b415e9869157c711fe11263c95d74eDavid Li 93, 93, 93, 93, 36, 36, 34, 93, 93, 93, 5271591693c7b415e9869157c711fe11263c95d74eDavid Li 112, 113, 36, 36, 119, 95, 36, 117, 125, 36, 5281591693c7b415e9869157c711fe11263c95d74eDavid Li 36, 36, 96, 36, 36, 114, 36, 36, 115, 36, 5291591693c7b415e9869157c711fe11263c95d74eDavid Li 36, 93, 136, 116, 36, 124, 36, 159, 160, 53, 5301591693c7b415e9869157c711fe11263c95d74eDavid Li 36, 127, 128, 126, 36, 131, 130, 134, 132, 129, 5311591693c7b415e9869157c711fe11263c95d74eDavid Li 36, 141, 36, 143, 146, 149, 150, 140, 138, 142, 5321591693c7b415e9869157c711fe11263c95d74eDavid Li 142, 142, 36, 136, 144, 151, 151, 151, 155, 123, 5331591693c7b415e9869157c711fe11263c95d74eDavid Li 121, 153, 35, 145, 36, 35, 35, 35, 35, 35, 5341591693c7b415e9869157c711fe11263c95d74eDavid Li 35, 35, 35, 35, 35, 35, 35, 35, 35, 154, 5351591693c7b415e9869157c711fe11263c95d74eDavid Li 5361591693c7b415e9869157c711fe11263c95d74eDavid Li 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 5371591693c7b415e9869157c711fe11263c95d74eDavid Li 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 5381591693c7b415e9869157c711fe11263c95d74eDavid Li 35, 149, 150, 36, 149, 150, 111, 109, 123, 121, 5391591693c7b415e9869157c711fe11263c95d74eDavid Li 118, 156, 156, 156, 151, 151, 151, 35, 35, 36, 5401591693c7b415e9869157c711fe11263c95d74eDavid Li 35, 35, 35, 35, 35, 157, 35, 35, 159, 160, 5411591693c7b415e9869157c711fe11263c95d74eDavid Li 143, 35, 35, 35, 159, 160, 111, 109, 161, 161, 5421591693c7b415e9869157c711fe11263c95d74eDavid Li 161, 36, 67, 35, 161, 161, 161, 35, 36, 53, 5431591693c7b415e9869157c711fe11263c95d74eDavid Li 36, 36, 36, 36, 36, 35, 35, 35, 36, 35, 5441591693c7b415e9869157c711fe11263c95d74eDavid Li 35, 35, 35, 35, 157, 35, 35, 36, 36, 36, 5451591693c7b415e9869157c711fe11263c95d74eDavid Li 35, 35, 35, 36, 36, 36, 67, 36, 36, 162, 5461591693c7b415e9869157c711fe11263c95d74eDavid Li 5471591693c7b415e9869157c711fe11263c95d74eDavid Li 29, 29, 162, 162, 162, 162, 162, 162, 162, 162, 5481591693c7b415e9869157c711fe11263c95d74eDavid Li 162, 162, 162, 162, 35, 29, 29, 30, 30, 33, 5491591693c7b415e9869157c711fe11263c95d74eDavid Li 33, 34, 34, 35, 35, 53, 53, 68, 68, 72, 5501591693c7b415e9869157c711fe11263c95d74eDavid Li 72, 108, 108, 110, 110, 120, 120, 122, 122, 135, 5511591693c7b415e9869157c711fe11263c95d74eDavid Li 135, 137, 137, 139, 139, 147, 147, 152, 152, 158, 5521591693c7b415e9869157c711fe11263c95d74eDavid Li 158, 9, 162, 162, 162, 162, 162, 162, 162, 162, 5531591693c7b415e9869157c711fe11263c95d74eDavid Li 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 5541591693c7b415e9869157c711fe11263c95d74eDavid Li 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 5551591693c7b415e9869157c711fe11263c95d74eDavid Li 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 5561591693c7b415e9869157c711fe11263c95d74eDavid Li 162 5571591693c7b415e9869157c711fe11263c95d74eDavid Li 5581591693c7b415e9869157c711fe11263c95d74eDavid Li } ; 5591591693c7b415e9869157c711fe11263c95d74eDavid Li 5601591693c7b415e9869157c711fe11263c95d74eDavid Listatic yyconst flex_int16_t yy_chk[592] = 5611591693c7b415e9869157c711fe11263c95d74eDavid Li { 0, 5621591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5631591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5641591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5651591693c7b415e9869157c711fe11263c95d74eDavid Li 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 5661591693c7b415e9869157c711fe11263c95d74eDavid Li 5, 6, 26, 2, 11, 11, 14, 5, 6, 10, 5671591693c7b415e9869157c711fe11263c95d74eDavid Li 10, 10, 10, 10, 10, 10, 10, 10, 10, 14, 5681591693c7b415e9869157c711fe11263c95d74eDavid Li 21, 17, 10, 10, 10, 15, 17, 18, 15, 22, 5691591693c7b415e9869157c711fe11263c95d74eDavid Li 23, 169, 21, 21, 18, 18, 27, 27, 26, 86, 5701591693c7b415e9869157c711fe11263c95d74eDavid Li 27, 157, 22, 23, 23, 86, 10, 19, 19, 19, 5711591693c7b415e9869157c711fe11263c95d74eDavid Li 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 5721591693c7b415e9869157c711fe11263c95d74eDavid Li 5731591693c7b415e9869157c711fe11263c95d74eDavid Li 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 5741591693c7b415e9869157c711fe11263c95d74eDavid Li 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 5751591693c7b415e9869157c711fe11263c95d74eDavid Li 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 5761591693c7b415e9869157c711fe11263c95d74eDavid Li 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 5771591693c7b415e9869157c711fe11263c95d74eDavid Li 20, 20, 32, 153, 20, 37, 37, 54, 54, 32, 5781591693c7b415e9869157c711fe11263c95d74eDavid Li 32, 34, 34, 34, 56, 56, 59, 62, 56, 34, 5791591693c7b415e9869157c711fe11263c95d74eDavid Li 20, 61, 64, 20, 24, 24, 24, 24, 24, 24, 5801591693c7b415e9869157c711fe11263c95d74eDavid Li 24, 24, 24, 24, 24, 34, 43, 59, 24, 24, 5811591693c7b415e9869157c711fe11263c95d74eDavid Li 24, 62, 82, 61, 74, 63, 152, 74, 147, 64, 5821591693c7b415e9869157c711fe11263c95d74eDavid Li 44, 44, 44, 43, 143, 65, 114, 114, 44, 141, 5831591693c7b415e9869157c711fe11263c95d74eDavid Li 5841591693c7b415e9869157c711fe11263c95d74eDavid Li 60, 82, 24, 25, 25, 25, 25, 25, 25, 25, 5851591693c7b415e9869157c711fe11263c95d74eDavid Li 25, 25, 25, 25, 44, 63, 65, 25, 25, 25, 5861591693c7b415e9869157c711fe11263c95d74eDavid Li 47, 47, 47, 73, 68, 60, 25, 60, 47, 70, 5871591693c7b415e9869157c711fe11263c95d74eDavid Li 60, 68, 68, 75, 76, 60, 70, 70, 79, 73, 5881591693c7b415e9869157c711fe11263c95d74eDavid Li 77, 25, 28, 28, 47, 78, 28, 81, 139, 83, 5891591693c7b415e9869157c711fe11263c95d74eDavid Li 89, 84, 118, 118, 91, 75, 134, 134, 76, 87, 5901591693c7b415e9869157c711fe11263c95d74eDavid Li 77, 90, 137, 28, 28, 76, 92, 28, 28, 83, 5911591693c7b415e9869157c711fe11263c95d74eDavid Li 79, 89, 28, 88, 81, 78, 28, 28, 45, 45, 5921591693c7b415e9869157c711fe11263c95d74eDavid Li 45, 84, 91, 87, 45, 90, 45, 92, 45, 45, 5931591693c7b415e9869157c711fe11263c95d74eDavid Li 45, 45, 85, 85, 85, 88, 100, 102, 106, 95, 5941591693c7b415e9869157c711fe11263c95d74eDavid Li 5951591693c7b415e9869157c711fe11263c95d74eDavid Li 85, 96, 45, 80, 80, 80, 80, 80, 80, 80, 5961591693c7b415e9869157c711fe11263c95d74eDavid Li 80, 80, 80, 80, 97, 98, 85, 80, 80, 80, 5971591693c7b415e9869157c711fe11263c95d74eDavid Li 95, 96, 99, 105, 102, 80, 107, 100, 106, 112, 5981591693c7b415e9869157c711fe11263c95d74eDavid Li 115, 113, 80, 116, 117, 97, 119, 126, 98, 128, 5991591693c7b415e9869157c711fe11263c95d74eDavid Li 138, 80, 135, 99, 130, 105, 132, 159, 159, 133, 6001591693c7b415e9869157c711fe11263c95d74eDavid Li 146, 112, 113, 107, 144, 116, 115, 119, 117, 129, 6011591693c7b415e9869157c711fe11263c95d74eDavid Li 129, 128, 131, 130, 138, 142, 142, 127, 126, 129, 6021591693c7b415e9869157c711fe11263c95d74eDavid Li 129, 129, 125, 124, 132, 142, 142, 142, 146, 122, 6031591693c7b415e9869157c711fe11263c95d74eDavid Li 120, 144, 145, 145, 145, 145, 145, 145, 145, 145, 6041591693c7b415e9869157c711fe11263c95d74eDavid Li 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 6051591693c7b415e9869157c711fe11263c95d74eDavid Li 6061591693c7b415e9869157c711fe11263c95d74eDavid Li 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 6071591693c7b415e9869157c711fe11263c95d74eDavid Li 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 6081591693c7b415e9869157c711fe11263c95d74eDavid Li 145, 149, 149, 155, 151, 151, 110, 108, 104, 103, 6091591693c7b415e9869157c711fe11263c95d74eDavid Li 101, 149, 149, 149, 151, 151, 151, 154, 154, 154, 6101591693c7b415e9869157c711fe11263c95d74eDavid Li 154, 154, 154, 154, 154, 154, 154, 154, 156, 156, 6111591693c7b415e9869157c711fe11263c95d74eDavid Li 155, 154, 154, 154, 161, 161, 94, 93, 156, 156, 6121591693c7b415e9869157c711fe11263c95d74eDavid Li 156, 72, 66, 58, 161, 161, 161, 57, 55, 53, 6131591693c7b415e9869157c711fe11263c95d74eDavid Li 52, 51, 50, 49, 48, 154, 158, 158, 158, 158, 6141591693c7b415e9869157c711fe11263c95d74eDavid Li 158, 158, 158, 158, 158, 158, 158, 42, 41, 40, 6151591693c7b415e9869157c711fe11263c95d74eDavid Li 158, 158, 158, 39, 38, 35, 30, 16, 13, 9, 6161591693c7b415e9869157c711fe11263c95d74eDavid Li 6171591693c7b415e9869157c711fe11263c95d74eDavid Li 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 6181591693c7b415e9869157c711fe11263c95d74eDavid Li 0, 0, 0, 0, 158, 163, 163, 164, 164, 165, 6191591693c7b415e9869157c711fe11263c95d74eDavid Li 165, 166, 166, 167, 167, 168, 168, 170, 170, 171, 6201591693c7b415e9869157c711fe11263c95d74eDavid Li 171, 172, 172, 173, 173, 174, 174, 175, 175, 176, 6211591693c7b415e9869157c711fe11263c95d74eDavid Li 176, 177, 177, 178, 178, 179, 179, 180, 180, 181, 6221591693c7b415e9869157c711fe11263c95d74eDavid Li 181, 162, 162, 162, 162, 162, 162, 162, 162, 162, 6231591693c7b415e9869157c711fe11263c95d74eDavid Li 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 6241591693c7b415e9869157c711fe11263c95d74eDavid Li 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 6251591693c7b415e9869157c711fe11263c95d74eDavid Li 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 6261591693c7b415e9869157c711fe11263c95d74eDavid Li 162 6271591693c7b415e9869157c711fe11263c95d74eDavid Li 6281591693c7b415e9869157c711fe11263c95d74eDavid Li } ; 6291591693c7b415e9869157c711fe11263c95d74eDavid Li 6301591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_TRAILING_MASK 0x2000 6311591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_TRAILING_HEAD_MASK 0x4000 6321591693c7b415e9869157c711fe11263c95d74eDavid Li#define REJECT \ 6331591693c7b415e9869157c711fe11263c95d74eDavid Li{ \ 6341591693c7b415e9869157c711fe11263c95d74eDavid Li*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ \ 6351591693c7b415e9869157c711fe11263c95d74eDavid Liyy_cp = yyg->yy_full_match; /* restore poss. backed-over text */ \ 6361591693c7b415e9869157c711fe11263c95d74eDavid Liyyg->yy_lp = yyg->yy_full_lp; /* restore orig. accepting pos. */ \ 6371591693c7b415e9869157c711fe11263c95d74eDavid Liyyg->yy_state_ptr = yyg->yy_full_state; /* restore orig. state */ \ 6381591693c7b415e9869157c711fe11263c95d74eDavid Liyy_current_state = *yyg->yy_state_ptr; /* restore curr. state */ \ 6391591693c7b415e9869157c711fe11263c95d74eDavid Li++yyg->yy_lp; \ 6401591693c7b415e9869157c711fe11263c95d74eDavid Ligoto find_rule; \ 6411591693c7b415e9869157c711fe11263c95d74eDavid Li} 6421591693c7b415e9869157c711fe11263c95d74eDavid Li 6431591693c7b415e9869157c711fe11263c95d74eDavid Li#define yymore() yymore_used_but_not_detected 6441591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_MORE_ADJ 0 6451591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_RESTORE_YY_MORE_OFFSET 6461591693c7b415e9869157c711fe11263c95d74eDavid Li#line 1 "glcpp/glcpp-lex.l" 6471591693c7b415e9869157c711fe11263c95d74eDavid Li#line 2 "glcpp/glcpp-lex.l" 6481591693c7b415e9869157c711fe11263c95d74eDavid Li/* 6491591693c7b415e9869157c711fe11263c95d74eDavid Li * Copyright © 2010 Intel Corporation 6501591693c7b415e9869157c711fe11263c95d74eDavid Li * 6511591693c7b415e9869157c711fe11263c95d74eDavid Li * Permission is hereby granted, free of charge, to any person obtaining a 6521591693c7b415e9869157c711fe11263c95d74eDavid Li * copy of this software and associated documentation files (the "Software"), 6531591693c7b415e9869157c711fe11263c95d74eDavid Li * to deal in the Software without restriction, including without limitation 6541591693c7b415e9869157c711fe11263c95d74eDavid Li * the rights to use, copy, modify, merge, publish, distribute, sublicense, 6551591693c7b415e9869157c711fe11263c95d74eDavid Li * and/or sell copies of the Software, and to permit persons to whom the 6561591693c7b415e9869157c711fe11263c95d74eDavid Li * Software is furnished to do so, subject to the following conditions: 6571591693c7b415e9869157c711fe11263c95d74eDavid Li * 6581591693c7b415e9869157c711fe11263c95d74eDavid Li * The above copyright notice and this permission notice (including the next 6591591693c7b415e9869157c711fe11263c95d74eDavid Li * paragraph) shall be included in all copies or substantial portions of the 6601591693c7b415e9869157c711fe11263c95d74eDavid Li * Software. 6611591693c7b415e9869157c711fe11263c95d74eDavid Li * 6621591693c7b415e9869157c711fe11263c95d74eDavid Li * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 6631591693c7b415e9869157c711fe11263c95d74eDavid Li * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 6641591693c7b415e9869157c711fe11263c95d74eDavid Li * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 6651591693c7b415e9869157c711fe11263c95d74eDavid Li * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 6661591693c7b415e9869157c711fe11263c95d74eDavid Li * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 6671591693c7b415e9869157c711fe11263c95d74eDavid Li * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 6681591693c7b415e9869157c711fe11263c95d74eDavid Li * DEALINGS IN THE SOFTWARE. 6691591693c7b415e9869157c711fe11263c95d74eDavid Li */ 6701591693c7b415e9869157c711fe11263c95d74eDavid Li 6711591693c7b415e9869157c711fe11263c95d74eDavid Li#include <stdio.h> 6721591693c7b415e9869157c711fe11263c95d74eDavid Li#include <string.h> 6731591693c7b415e9869157c711fe11263c95d74eDavid Li#include <ctype.h> 6741591693c7b415e9869157c711fe11263c95d74eDavid Li 6751591693c7b415e9869157c711fe11263c95d74eDavid Li#include "glcpp.h" 6761591693c7b415e9869157c711fe11263c95d74eDavid Li#include "glcpp-parse.h" 6771591693c7b415e9869157c711fe11263c95d74eDavid Li 6781591693c7b415e9869157c711fe11263c95d74eDavid Li/* Flex annoyingly generates some functions without making them 6791591693c7b415e9869157c711fe11263c95d74eDavid Li * static. Let's declare them here. */ 6801591693c7b415e9869157c711fe11263c95d74eDavid Liint glcpp_get_column (yyscan_t yyscanner); 6811591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_set_column (int column_no , yyscan_t yyscanner); 6821591693c7b415e9869157c711fe11263c95d74eDavid Li 6831591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_NO_INPUT 6841591693c7b415e9869157c711fe11263c95d74eDavid Li 6851591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_USER_ACTION \ 6861591693c7b415e9869157c711fe11263c95d74eDavid Li do { \ 6871591693c7b415e9869157c711fe11263c95d74eDavid Li yylloc->first_column = yycolumn + 1; \ 6881591693c7b415e9869157c711fe11263c95d74eDavid Li yylloc->first_line = yylineno; \ 6891591693c7b415e9869157c711fe11263c95d74eDavid Li yycolumn += yyleng; \ 6901591693c7b415e9869157c711fe11263c95d74eDavid Li } while(0); 6911591693c7b415e9869157c711fe11263c95d74eDavid Li 6921591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_USER_INIT \ 6931591693c7b415e9869157c711fe11263c95d74eDavid Li do { \ 6941591693c7b415e9869157c711fe11263c95d74eDavid Li yylineno = 1; \ 6951591693c7b415e9869157c711fe11263c95d74eDavid Li yycolumn = 1; \ 6961591693c7b415e9869157c711fe11263c95d74eDavid Li yylloc->source = 0; \ 6971591693c7b415e9869157c711fe11263c95d74eDavid Li } while(0) 6981591693c7b415e9869157c711fe11263c95d74eDavid Li 6991591693c7b415e9869157c711fe11263c95d74eDavid Li#line 700 "glcpp/glcpp-lex.c" 7001591693c7b415e9869157c711fe11263c95d74eDavid Li 7011591693c7b415e9869157c711fe11263c95d74eDavid Li#define INITIAL 0 7021591693c7b415e9869157c711fe11263c95d74eDavid Li#define DONE 1 7031591693c7b415e9869157c711fe11263c95d74eDavid Li#define COMMENT 2 7041591693c7b415e9869157c711fe11263c95d74eDavid Li#define UNREACHABLE 3 7051591693c7b415e9869157c711fe11263c95d74eDavid Li 7061591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_EXTRA_TYPE glcpp_parser_t * 7071591693c7b415e9869157c711fe11263c95d74eDavid Li 7081591693c7b415e9869157c711fe11263c95d74eDavid Li/* Holds the entire state of the reentrant scanner. */ 7091591693c7b415e9869157c711fe11263c95d74eDavid Listruct yyguts_t 7101591693c7b415e9869157c711fe11263c95d74eDavid Li { 7111591693c7b415e9869157c711fe11263c95d74eDavid Li 7121591693c7b415e9869157c711fe11263c95d74eDavid Li /* User-defined. Not touched by flex. */ 7131591693c7b415e9869157c711fe11263c95d74eDavid Li YY_EXTRA_TYPE yyextra_r; 7141591693c7b415e9869157c711fe11263c95d74eDavid Li 7151591693c7b415e9869157c711fe11263c95d74eDavid Li /* The rest are the same as the globals declared in the non-reentrant scanner. */ 7161591693c7b415e9869157c711fe11263c95d74eDavid Li FILE *yyin_r, *yyout_r; 7171591693c7b415e9869157c711fe11263c95d74eDavid Li size_t yy_buffer_stack_top; /**< index of top of stack. */ 7181591693c7b415e9869157c711fe11263c95d74eDavid Li size_t yy_buffer_stack_max; /**< capacity of stack. */ 7191591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ 7201591693c7b415e9869157c711fe11263c95d74eDavid Li char yy_hold_char; 7211591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_n_chars; 7221591693c7b415e9869157c711fe11263c95d74eDavid Li int yyleng_r; 7231591693c7b415e9869157c711fe11263c95d74eDavid Li char *yy_c_buf_p; 7241591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_init; 7251591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_start; 7261591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_did_buffer_switch_on_eof; 7271591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_start_stack_ptr; 7281591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_start_stack_depth; 7291591693c7b415e9869157c711fe11263c95d74eDavid Li int *yy_start_stack; 7301591693c7b415e9869157c711fe11263c95d74eDavid Li yy_state_type yy_last_accepting_state; 7311591693c7b415e9869157c711fe11263c95d74eDavid Li char* yy_last_accepting_cpos; 7321591693c7b415e9869157c711fe11263c95d74eDavid Li 7331591693c7b415e9869157c711fe11263c95d74eDavid Li int yylineno_r; 7341591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_flex_debug_r; 7351591693c7b415e9869157c711fe11263c95d74eDavid Li 7361591693c7b415e9869157c711fe11263c95d74eDavid Li yy_state_type *yy_state_buf; 7371591693c7b415e9869157c711fe11263c95d74eDavid Li yy_state_type *yy_state_ptr; 7381591693c7b415e9869157c711fe11263c95d74eDavid Li char *yy_full_match; 7391591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_lp; 7401591693c7b415e9869157c711fe11263c95d74eDavid Li 7411591693c7b415e9869157c711fe11263c95d74eDavid Li /* These are only needed for trailing context rules, 7421591693c7b415e9869157c711fe11263c95d74eDavid Li * but there's no conditional variable for that yet. */ 7431591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_looking_for_trail_begin; 7441591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_full_lp; 7451591693c7b415e9869157c711fe11263c95d74eDavid Li int *yy_full_state; 7461591693c7b415e9869157c711fe11263c95d74eDavid Li 7471591693c7b415e9869157c711fe11263c95d74eDavid Li char *yytext_r; 7481591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_more_flag; 7491591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_more_len; 7501591693c7b415e9869157c711fe11263c95d74eDavid Li 7511591693c7b415e9869157c711fe11263c95d74eDavid Li YYSTYPE * yylval_r; 7521591693c7b415e9869157c711fe11263c95d74eDavid Li 7531591693c7b415e9869157c711fe11263c95d74eDavid Li YYLTYPE * yylloc_r; 7541591693c7b415e9869157c711fe11263c95d74eDavid Li 7551591693c7b415e9869157c711fe11263c95d74eDavid Li }; /* end struct yyguts_t */ 7561591693c7b415e9869157c711fe11263c95d74eDavid Li 7571591693c7b415e9869157c711fe11263c95d74eDavid Listatic int yy_init_globals (yyscan_t yyscanner ); 7581591693c7b415e9869157c711fe11263c95d74eDavid Li 7591591693c7b415e9869157c711fe11263c95d74eDavid Li /* This must go here because YYSTYPE and YYLTYPE are included 7601591693c7b415e9869157c711fe11263c95d74eDavid Li * from bison output in section 1.*/ 7611591693c7b415e9869157c711fe11263c95d74eDavid Li # define yylval yyg->yylval_r 7621591693c7b415e9869157c711fe11263c95d74eDavid Li 7631591693c7b415e9869157c711fe11263c95d74eDavid Li # define yylloc yyg->yylloc_r 7641591693c7b415e9869157c711fe11263c95d74eDavid Li 7651591693c7b415e9869157c711fe11263c95d74eDavid Liint glcpp_lex_init (yyscan_t* scanner); 7661591693c7b415e9869157c711fe11263c95d74eDavid Li 7671591693c7b415e9869157c711fe11263c95d74eDavid Liint glcpp_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner); 7681591693c7b415e9869157c711fe11263c95d74eDavid Li 7691591693c7b415e9869157c711fe11263c95d74eDavid Li/* Accessor methods to globals. 7701591693c7b415e9869157c711fe11263c95d74eDavid Li These are made visible to non-reentrant scanners for convenience. */ 7711591693c7b415e9869157c711fe11263c95d74eDavid Li 7721591693c7b415e9869157c711fe11263c95d74eDavid Liint glcpp_lex_destroy (yyscan_t yyscanner ); 7731591693c7b415e9869157c711fe11263c95d74eDavid Li 7741591693c7b415e9869157c711fe11263c95d74eDavid Liint glcpp_get_debug (yyscan_t yyscanner ); 7751591693c7b415e9869157c711fe11263c95d74eDavid Li 7761591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_set_debug (int debug_flag ,yyscan_t yyscanner ); 7771591693c7b415e9869157c711fe11263c95d74eDavid Li 7781591693c7b415e9869157c711fe11263c95d74eDavid LiYY_EXTRA_TYPE glcpp_get_extra (yyscan_t yyscanner ); 7791591693c7b415e9869157c711fe11263c95d74eDavid Li 7801591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); 7811591693c7b415e9869157c711fe11263c95d74eDavid Li 7821591693c7b415e9869157c711fe11263c95d74eDavid LiFILE *glcpp_get_in (yyscan_t yyscanner ); 7831591693c7b415e9869157c711fe11263c95d74eDavid Li 7841591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_set_in (FILE * in_str ,yyscan_t yyscanner ); 7851591693c7b415e9869157c711fe11263c95d74eDavid Li 7861591693c7b415e9869157c711fe11263c95d74eDavid LiFILE *glcpp_get_out (yyscan_t yyscanner ); 7871591693c7b415e9869157c711fe11263c95d74eDavid Li 7881591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_set_out (FILE * out_str ,yyscan_t yyscanner ); 7891591693c7b415e9869157c711fe11263c95d74eDavid Li 7901591693c7b415e9869157c711fe11263c95d74eDavid Liint glcpp_get_leng (yyscan_t yyscanner ); 7911591693c7b415e9869157c711fe11263c95d74eDavid Li 7921591693c7b415e9869157c711fe11263c95d74eDavid Lichar *glcpp_get_text (yyscan_t yyscanner ); 7931591693c7b415e9869157c711fe11263c95d74eDavid Li 7941591693c7b415e9869157c711fe11263c95d74eDavid Liint glcpp_get_lineno (yyscan_t yyscanner ); 7951591693c7b415e9869157c711fe11263c95d74eDavid Li 7961591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_set_lineno (int line_number ,yyscan_t yyscanner ); 7971591693c7b415e9869157c711fe11263c95d74eDavid Li 7981591693c7b415e9869157c711fe11263c95d74eDavid LiYYSTYPE * glcpp_get_lval (yyscan_t yyscanner ); 7991591693c7b415e9869157c711fe11263c95d74eDavid Li 8001591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner ); 8011591693c7b415e9869157c711fe11263c95d74eDavid Li 8021591693c7b415e9869157c711fe11263c95d74eDavid Li YYLTYPE *glcpp_get_lloc (yyscan_t yyscanner ); 8031591693c7b415e9869157c711fe11263c95d74eDavid Li 8041591693c7b415e9869157c711fe11263c95d74eDavid Li void glcpp_set_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner ); 8051591693c7b415e9869157c711fe11263c95d74eDavid Li 8061591693c7b415e9869157c711fe11263c95d74eDavid Li/* Macros after this point can all be overridden by user definitions in 8071591693c7b415e9869157c711fe11263c95d74eDavid Li * section 1. 8081591693c7b415e9869157c711fe11263c95d74eDavid Li */ 8091591693c7b415e9869157c711fe11263c95d74eDavid Li 8101591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_SKIP_YYWRAP 8111591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef __cplusplus 8121591693c7b415e9869157c711fe11263c95d74eDavid Liextern "C" int glcpp_wrap (yyscan_t yyscanner ); 8131591693c7b415e9869157c711fe11263c95d74eDavid Li#else 8141591693c7b415e9869157c711fe11263c95d74eDavid Liextern int glcpp_wrap (yyscan_t yyscanner ); 8151591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 8161591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 8171591693c7b415e9869157c711fe11263c95d74eDavid Li 8181591693c7b415e9869157c711fe11263c95d74eDavid Li static void yyunput (int c,char *buf_ptr ,yyscan_t yyscanner); 8191591693c7b415e9869157c711fe11263c95d74eDavid Li 8201591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef yytext_ptr 8211591693c7b415e9869157c711fe11263c95d74eDavid Listatic void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); 8221591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 8231591693c7b415e9869157c711fe11263c95d74eDavid Li 8241591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef YY_NEED_STRLEN 8251591693c7b415e9869157c711fe11263c95d74eDavid Listatic int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); 8261591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 8271591693c7b415e9869157c711fe11263c95d74eDavid Li 8281591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_NO_INPUT 8291591693c7b415e9869157c711fe11263c95d74eDavid Li 8301591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef __cplusplus 8311591693c7b415e9869157c711fe11263c95d74eDavid Listatic int yyinput (yyscan_t yyscanner ); 8321591693c7b415e9869157c711fe11263c95d74eDavid Li#else 8331591693c7b415e9869157c711fe11263c95d74eDavid Listatic int input (yyscan_t yyscanner ); 8341591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 8351591693c7b415e9869157c711fe11263c95d74eDavid Li 8361591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 8371591693c7b415e9869157c711fe11263c95d74eDavid Li 8381591693c7b415e9869157c711fe11263c95d74eDavid Li static void yy_push_state (int new_state ,yyscan_t yyscanner); 8391591693c7b415e9869157c711fe11263c95d74eDavid Li 8401591693c7b415e9869157c711fe11263c95d74eDavid Li static void yy_pop_state (yyscan_t yyscanner ); 8411591693c7b415e9869157c711fe11263c95d74eDavid Li 8421591693c7b415e9869157c711fe11263c95d74eDavid Li static int yy_top_state (yyscan_t yyscanner ); 8431591693c7b415e9869157c711fe11263c95d74eDavid Li 8441591693c7b415e9869157c711fe11263c95d74eDavid Li/* Amount of stuff to slurp up with each read. */ 8451591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_READ_BUF_SIZE 8461591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_READ_BUF_SIZE 8192 8471591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 8481591693c7b415e9869157c711fe11263c95d74eDavid Li 8491591693c7b415e9869157c711fe11263c95d74eDavid Li/* Copy whatever the last rule matched to the standard output. */ 8501591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef ECHO 8511591693c7b415e9869157c711fe11263c95d74eDavid Li/* This used to be an fputs(), but since the string might contain NUL's, 8521591693c7b415e9869157c711fe11263c95d74eDavid Li * we now use fwrite(). 8531591693c7b415e9869157c711fe11263c95d74eDavid Li */ 8541591693c7b415e9869157c711fe11263c95d74eDavid Li#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) 8551591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 8561591693c7b415e9869157c711fe11263c95d74eDavid Li 8571591693c7b415e9869157c711fe11263c95d74eDavid Li/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, 8581591693c7b415e9869157c711fe11263c95d74eDavid Li * is returned in "result". 8591591693c7b415e9869157c711fe11263c95d74eDavid Li */ 8601591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_INPUT 8611591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_INPUT(buf,result,max_size) \ 8621591693c7b415e9869157c711fe11263c95d74eDavid Li if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ 8631591693c7b415e9869157c711fe11263c95d74eDavid Li { \ 8641591693c7b415e9869157c711fe11263c95d74eDavid Li int c = '*'; \ 8651591693c7b415e9869157c711fe11263c95d74eDavid Li unsigned n; \ 8661591693c7b415e9869157c711fe11263c95d74eDavid Li for ( n = 0; n < max_size && \ 8671591693c7b415e9869157c711fe11263c95d74eDavid Li (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ 8681591693c7b415e9869157c711fe11263c95d74eDavid Li buf[n] = (char) c; \ 8691591693c7b415e9869157c711fe11263c95d74eDavid Li if ( c == '\n' ) \ 8701591693c7b415e9869157c711fe11263c95d74eDavid Li buf[n++] = (char) c; \ 8711591693c7b415e9869157c711fe11263c95d74eDavid Li if ( c == EOF && ferror( yyin ) ) \ 8721591693c7b415e9869157c711fe11263c95d74eDavid Li YY_FATAL_ERROR( "input in flex scanner failed" ); \ 8731591693c7b415e9869157c711fe11263c95d74eDavid Li result = n; \ 8741591693c7b415e9869157c711fe11263c95d74eDavid Li } \ 8751591693c7b415e9869157c711fe11263c95d74eDavid Li else \ 8761591693c7b415e9869157c711fe11263c95d74eDavid Li { \ 8771591693c7b415e9869157c711fe11263c95d74eDavid Li errno=0; \ 8781591693c7b415e9869157c711fe11263c95d74eDavid Li while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ 8791591693c7b415e9869157c711fe11263c95d74eDavid Li { \ 8801591693c7b415e9869157c711fe11263c95d74eDavid Li if( errno != EINTR) \ 8811591693c7b415e9869157c711fe11263c95d74eDavid Li { \ 8821591693c7b415e9869157c711fe11263c95d74eDavid Li YY_FATAL_ERROR( "input in flex scanner failed" ); \ 8831591693c7b415e9869157c711fe11263c95d74eDavid Li break; \ 8841591693c7b415e9869157c711fe11263c95d74eDavid Li } \ 8851591693c7b415e9869157c711fe11263c95d74eDavid Li errno=0; \ 8861591693c7b415e9869157c711fe11263c95d74eDavid Li clearerr(yyin); \ 8871591693c7b415e9869157c711fe11263c95d74eDavid Li } \ 8881591693c7b415e9869157c711fe11263c95d74eDavid Li }\ 8891591693c7b415e9869157c711fe11263c95d74eDavid Li\ 8901591693c7b415e9869157c711fe11263c95d74eDavid Li 8911591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 8921591693c7b415e9869157c711fe11263c95d74eDavid Li 8931591693c7b415e9869157c711fe11263c95d74eDavid Li/* No semi-colon after return; correct usage is to write "yyterminate();" - 8941591693c7b415e9869157c711fe11263c95d74eDavid Li * we don't want an extra ';' after the "return" because that will cause 8951591693c7b415e9869157c711fe11263c95d74eDavid Li * some compilers to complain about unreachable statements. 8961591693c7b415e9869157c711fe11263c95d74eDavid Li */ 8971591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef yyterminate 8981591693c7b415e9869157c711fe11263c95d74eDavid Li#define yyterminate() return YY_NULL 8991591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 9001591693c7b415e9869157c711fe11263c95d74eDavid Li 9011591693c7b415e9869157c711fe11263c95d74eDavid Li/* Number of entries by which start-condition stack grows. */ 9021591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_START_STACK_INCR 9031591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_START_STACK_INCR 25 9041591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 9051591693c7b415e9869157c711fe11263c95d74eDavid Li 9061591693c7b415e9869157c711fe11263c95d74eDavid Li/* Report a fatal error. */ 9071591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_FATAL_ERROR 9081591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) 9091591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 9101591693c7b415e9869157c711fe11263c95d74eDavid Li 9111591693c7b415e9869157c711fe11263c95d74eDavid Li/* end tables serialization structures and prototypes */ 9121591693c7b415e9869157c711fe11263c95d74eDavid Li 9131591693c7b415e9869157c711fe11263c95d74eDavid Li/* Default declaration of generated scanner - a define so the user can 9141591693c7b415e9869157c711fe11263c95d74eDavid Li * easily add parameters. 9151591693c7b415e9869157c711fe11263c95d74eDavid Li */ 9161591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_DECL 9171591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_DECL_IS_OURS 1 9181591693c7b415e9869157c711fe11263c95d74eDavid Li 9191591693c7b415e9869157c711fe11263c95d74eDavid Liextern int glcpp_lex \ 9201591693c7b415e9869157c711fe11263c95d74eDavid Li (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner); 9211591693c7b415e9869157c711fe11263c95d74eDavid Li 9221591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_DECL int glcpp_lex \ 9231591693c7b415e9869157c711fe11263c95d74eDavid Li (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner) 9241591693c7b415e9869157c711fe11263c95d74eDavid Li#endif /* !YY_DECL */ 9251591693c7b415e9869157c711fe11263c95d74eDavid Li 9261591693c7b415e9869157c711fe11263c95d74eDavid Li/* Code executed at the beginning of each rule, after yytext and yyleng 9271591693c7b415e9869157c711fe11263c95d74eDavid Li * have been set up. 9281591693c7b415e9869157c711fe11263c95d74eDavid Li */ 9291591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_USER_ACTION 9301591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_USER_ACTION 9311591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 9321591693c7b415e9869157c711fe11263c95d74eDavid Li 9331591693c7b415e9869157c711fe11263c95d74eDavid Li/* Code executed at the end of each rule. */ 9341591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_BREAK 9351591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_BREAK break; 9361591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 9371591693c7b415e9869157c711fe11263c95d74eDavid Li 9381591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_RULE_SETUP \ 9391591693c7b415e9869157c711fe11263c95d74eDavid Li if ( yyleng > 0 ) \ 9401591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ 9411591693c7b415e9869157c711fe11263c95d74eDavid Li (yytext[yyleng - 1] == '\n'); \ 9421591693c7b415e9869157c711fe11263c95d74eDavid Li YY_USER_ACTION 9431591693c7b415e9869157c711fe11263c95d74eDavid Li 9441591693c7b415e9869157c711fe11263c95d74eDavid Li/** The main scanner function which does all the work. 9451591693c7b415e9869157c711fe11263c95d74eDavid Li */ 9461591693c7b415e9869157c711fe11263c95d74eDavid LiYY_DECL 9471591693c7b415e9869157c711fe11263c95d74eDavid Li{ 9481591693c7b415e9869157c711fe11263c95d74eDavid Li register yy_state_type yy_current_state; 9491591693c7b415e9869157c711fe11263c95d74eDavid Li register char *yy_cp, *yy_bp; 9501591693c7b415e9869157c711fe11263c95d74eDavid Li register int yy_act; 9511591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 9521591693c7b415e9869157c711fe11263c95d74eDavid Li 9531591693c7b415e9869157c711fe11263c95d74eDavid Li#line 76 "glcpp/glcpp-lex.l" 9541591693c7b415e9869157c711fe11263c95d74eDavid Li 9551591693c7b415e9869157c711fe11263c95d74eDavid Li 9561591693c7b415e9869157c711fe11263c95d74eDavid Li /* Single-line comments */ 9571591693c7b415e9869157c711fe11263c95d74eDavid Li#line 958 "glcpp/glcpp-lex.c" 9581591693c7b415e9869157c711fe11263c95d74eDavid Li 9591591693c7b415e9869157c711fe11263c95d74eDavid Li yylval = yylval_param; 9601591693c7b415e9869157c711fe11263c95d74eDavid Li 9611591693c7b415e9869157c711fe11263c95d74eDavid Li yylloc = yylloc_param; 9621591693c7b415e9869157c711fe11263c95d74eDavid Li 9631591693c7b415e9869157c711fe11263c95d74eDavid Li if ( !yyg->yy_init ) 9641591693c7b415e9869157c711fe11263c95d74eDavid Li { 9651591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_init = 1; 9661591693c7b415e9869157c711fe11263c95d74eDavid Li 9671591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef YY_USER_INIT 9681591693c7b415e9869157c711fe11263c95d74eDavid Li YY_USER_INIT; 9691591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 9701591693c7b415e9869157c711fe11263c95d74eDavid Li 9711591693c7b415e9869157c711fe11263c95d74eDavid Li /* Create the reject buffer large enough to save one state per allowed character. */ 9721591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! yyg->yy_state_buf ) 9731591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_state_buf = (yy_state_type *)glcpp_alloc(YY_STATE_BUF_SIZE ,yyscanner); 9741591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! yyg->yy_state_buf ) 9751591693c7b415e9869157c711fe11263c95d74eDavid Li YY_FATAL_ERROR( "out of dynamic memory in glcpp_lex()" ); 9761591693c7b415e9869157c711fe11263c95d74eDavid Li 9771591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! yyg->yy_start ) 9781591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_start = 1; /* first start state */ 9791591693c7b415e9869157c711fe11263c95d74eDavid Li 9801591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! yyin ) 9811591693c7b415e9869157c711fe11263c95d74eDavid Li yyin = stdin; 9821591693c7b415e9869157c711fe11263c95d74eDavid Li 9831591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! yyout ) 9841591693c7b415e9869157c711fe11263c95d74eDavid Li yyout = stdout; 9851591693c7b415e9869157c711fe11263c95d74eDavid Li 9861591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! YY_CURRENT_BUFFER ) { 9871591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp_ensure_buffer_stack (yyscanner); 9881591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE = 9891591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); 9901591693c7b415e9869157c711fe11263c95d74eDavid Li } 9911591693c7b415e9869157c711fe11263c95d74eDavid Li 9921591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp__load_buffer_state(yyscanner ); 9931591693c7b415e9869157c711fe11263c95d74eDavid Li } 9941591693c7b415e9869157c711fe11263c95d74eDavid Li 9951591693c7b415e9869157c711fe11263c95d74eDavid Li while ( 1 ) /* loops until end-of-file is reached */ 9961591693c7b415e9869157c711fe11263c95d74eDavid Li { 9971591693c7b415e9869157c711fe11263c95d74eDavid Li yy_cp = yyg->yy_c_buf_p; 9981591693c7b415e9869157c711fe11263c95d74eDavid Li 9991591693c7b415e9869157c711fe11263c95d74eDavid Li /* Support of yytext. */ 10001591693c7b415e9869157c711fe11263c95d74eDavid Li *yy_cp = yyg->yy_hold_char; 10011591693c7b415e9869157c711fe11263c95d74eDavid Li 10021591693c7b415e9869157c711fe11263c95d74eDavid Li /* yy_bp points to the position in yy_ch_buf of the start of 10031591693c7b415e9869157c711fe11263c95d74eDavid Li * the current run. 10041591693c7b415e9869157c711fe11263c95d74eDavid Li */ 10051591693c7b415e9869157c711fe11263c95d74eDavid Li yy_bp = yy_cp; 10061591693c7b415e9869157c711fe11263c95d74eDavid Li 10071591693c7b415e9869157c711fe11263c95d74eDavid Li yy_current_state = yyg->yy_start; 10081591693c7b415e9869157c711fe11263c95d74eDavid Li yy_current_state += YY_AT_BOL(); 10091591693c7b415e9869157c711fe11263c95d74eDavid Li 10101591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_state_ptr = yyg->yy_state_buf; 10111591693c7b415e9869157c711fe11263c95d74eDavid Li *yyg->yy_state_ptr++ = yy_current_state; 10121591693c7b415e9869157c711fe11263c95d74eDavid Li 10131591693c7b415e9869157c711fe11263c95d74eDavid Liyy_match: 10141591693c7b415e9869157c711fe11263c95d74eDavid Li do 10151591693c7b415e9869157c711fe11263c95d74eDavid Li { 10161591693c7b415e9869157c711fe11263c95d74eDavid Li register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; 10171591693c7b415e9869157c711fe11263c95d74eDavid Li while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 10181591693c7b415e9869157c711fe11263c95d74eDavid Li { 10191591693c7b415e9869157c711fe11263c95d74eDavid Li yy_current_state = (int) yy_def[yy_current_state]; 10201591693c7b415e9869157c711fe11263c95d74eDavid Li if ( yy_current_state >= 163 ) 10211591693c7b415e9869157c711fe11263c95d74eDavid Li yy_c = yy_meta[(unsigned int) yy_c]; 10221591693c7b415e9869157c711fe11263c95d74eDavid Li } 10231591693c7b415e9869157c711fe11263c95d74eDavid Li yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 10241591693c7b415e9869157c711fe11263c95d74eDavid Li *yyg->yy_state_ptr++ = yy_current_state; 10251591693c7b415e9869157c711fe11263c95d74eDavid Li ++yy_cp; 10261591693c7b415e9869157c711fe11263c95d74eDavid Li } 10271591693c7b415e9869157c711fe11263c95d74eDavid Li while ( yy_current_state != 162 ); 10281591693c7b415e9869157c711fe11263c95d74eDavid Li 10291591693c7b415e9869157c711fe11263c95d74eDavid Liyy_find_action: 10301591693c7b415e9869157c711fe11263c95d74eDavid Li yy_current_state = *--yyg->yy_state_ptr; 10311591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_lp = yy_accept[yy_current_state]; 10321591693c7b415e9869157c711fe11263c95d74eDavid Lifind_rule: /* we branch to this label when backing up */ 10331591693c7b415e9869157c711fe11263c95d74eDavid Li for ( ; ; ) /* until we find what rule we matched */ 10341591693c7b415e9869157c711fe11263c95d74eDavid Li { 10351591693c7b415e9869157c711fe11263c95d74eDavid Li if ( yyg->yy_lp && yyg->yy_lp < yy_accept[yy_current_state + 1] ) 10361591693c7b415e9869157c711fe11263c95d74eDavid Li { 10371591693c7b415e9869157c711fe11263c95d74eDavid Li yy_act = yy_acclist[yyg->yy_lp]; 10381591693c7b415e9869157c711fe11263c95d74eDavid Li if ( yy_act & YY_TRAILING_HEAD_MASK || 10391591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_looking_for_trail_begin ) 10401591693c7b415e9869157c711fe11263c95d74eDavid Li { 10411591693c7b415e9869157c711fe11263c95d74eDavid Li if ( yy_act == yyg->yy_looking_for_trail_begin ) 10421591693c7b415e9869157c711fe11263c95d74eDavid Li { 10431591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_looking_for_trail_begin = 0; 10441591693c7b415e9869157c711fe11263c95d74eDavid Li yy_act &= ~YY_TRAILING_HEAD_MASK; 10451591693c7b415e9869157c711fe11263c95d74eDavid Li break; 10461591693c7b415e9869157c711fe11263c95d74eDavid Li } 10471591693c7b415e9869157c711fe11263c95d74eDavid Li } 10481591693c7b415e9869157c711fe11263c95d74eDavid Li else if ( yy_act & YY_TRAILING_MASK ) 10491591693c7b415e9869157c711fe11263c95d74eDavid Li { 10501591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK; 10511591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK; 10521591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_full_match = yy_cp; 10531591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_full_state = yyg->yy_state_ptr; 10541591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_full_lp = yyg->yy_lp; 10551591693c7b415e9869157c711fe11263c95d74eDavid Li } 10561591693c7b415e9869157c711fe11263c95d74eDavid Li else 10571591693c7b415e9869157c711fe11263c95d74eDavid Li { 10581591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_full_match = yy_cp; 10591591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_full_state = yyg->yy_state_ptr; 10601591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_full_lp = yyg->yy_lp; 10611591693c7b415e9869157c711fe11263c95d74eDavid Li break; 10621591693c7b415e9869157c711fe11263c95d74eDavid Li } 10631591693c7b415e9869157c711fe11263c95d74eDavid Li ++yyg->yy_lp; 10641591693c7b415e9869157c711fe11263c95d74eDavid Li goto find_rule; 10651591693c7b415e9869157c711fe11263c95d74eDavid Li } 10661591693c7b415e9869157c711fe11263c95d74eDavid Li --yy_cp; 10671591693c7b415e9869157c711fe11263c95d74eDavid Li yy_current_state = *--yyg->yy_state_ptr; 10681591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_lp = yy_accept[yy_current_state]; 10691591693c7b415e9869157c711fe11263c95d74eDavid Li } 10701591693c7b415e9869157c711fe11263c95d74eDavid Li 10711591693c7b415e9869157c711fe11263c95d74eDavid Li YY_DO_BEFORE_ACTION; 10721591693c7b415e9869157c711fe11263c95d74eDavid Li 10731591693c7b415e9869157c711fe11263c95d74eDavid Lido_action: /* This label is used only to access EOF actions. */ 10741591693c7b415e9869157c711fe11263c95d74eDavid Li 10751591693c7b415e9869157c711fe11263c95d74eDavid Li switch ( yy_act ) 10761591693c7b415e9869157c711fe11263c95d74eDavid Li { /* beginning of action switch */ 10771591693c7b415e9869157c711fe11263c95d74eDavid Licase 1: 10781591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 10791591693c7b415e9869157c711fe11263c95d74eDavid Li#line 79 "glcpp/glcpp-lex.l" 10801591693c7b415e9869157c711fe11263c95d74eDavid Li{ 10811591693c7b415e9869157c711fe11263c95d74eDavid Li} 10821591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 10831591693c7b415e9869157c711fe11263c95d74eDavid Li/* Multi-line comments */ 10841591693c7b415e9869157c711fe11263c95d74eDavid Licase 2: 10851591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 10861591693c7b415e9869157c711fe11263c95d74eDavid Li#line 83 "glcpp/glcpp-lex.l" 10871591693c7b415e9869157c711fe11263c95d74eDavid Li{ yy_push_state(COMMENT, yyscanner); } 10881591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 10891591693c7b415e9869157c711fe11263c95d74eDavid Licase 3: 10901591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 10911591693c7b415e9869157c711fe11263c95d74eDavid Li#line 84 "glcpp/glcpp-lex.l" 10921591693c7b415e9869157c711fe11263c95d74eDavid Li 10931591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 10941591693c7b415e9869157c711fe11263c95d74eDavid Licase 4: 10951591693c7b415e9869157c711fe11263c95d74eDavid Li/* rule 4 can match eol */ 10961591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 10971591693c7b415e9869157c711fe11263c95d74eDavid Li#line 85 "glcpp/glcpp-lex.l" 10981591693c7b415e9869157c711fe11263c95d74eDavid Li{ yylineno++; yycolumn = 0; return NEWLINE; } 10991591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 11001591693c7b415e9869157c711fe11263c95d74eDavid Licase 5: 11011591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 11021591693c7b415e9869157c711fe11263c95d74eDavid Li#line 86 "glcpp/glcpp-lex.l" 11031591693c7b415e9869157c711fe11263c95d74eDavid Li 11041591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 11051591693c7b415e9869157c711fe11263c95d74eDavid Licase 6: 11061591693c7b415e9869157c711fe11263c95d74eDavid Li/* rule 6 can match eol */ 11071591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 11081591693c7b415e9869157c711fe11263c95d74eDavid Li#line 87 "glcpp/glcpp-lex.l" 11091591693c7b415e9869157c711fe11263c95d74eDavid Li{ yylineno++; yycolumn = 0; return NEWLINE; } 11101591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 11111591693c7b415e9869157c711fe11263c95d74eDavid Licase 7: 11121591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 11131591693c7b415e9869157c711fe11263c95d74eDavid Li#line 88 "glcpp/glcpp-lex.l" 11141591693c7b415e9869157c711fe11263c95d74eDavid Li{ 11151591693c7b415e9869157c711fe11263c95d74eDavid Li yy_pop_state(yyscanner); 11161591693c7b415e9869157c711fe11263c95d74eDavid Li if (yyextra->space_tokens) 11171591693c7b415e9869157c711fe11263c95d74eDavid Li return SPACE; 11181591693c7b415e9869157c711fe11263c95d74eDavid Li} 11191591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 11201591693c7b415e9869157c711fe11263c95d74eDavid Licase 8: 11211591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 11221591693c7b415e9869157c711fe11263c95d74eDavid Li#line 94 "glcpp/glcpp-lex.l" 11231591693c7b415e9869157c711fe11263c95d74eDavid Li{ 1124d50d9a90a0df4d706421850e17c0fbd85bf710eeDavid Li yylval->str = hieralloc_strdup (yyextra, yytext); 11251591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra->space_tokens = 0; 11261591693c7b415e9869157c711fe11263c95d74eDavid Li return HASH_VERSION; 11271591693c7b415e9869157c711fe11263c95d74eDavid Li} 11281591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 11291591693c7b415e9869157c711fe11263c95d74eDavid Li/* glcpp doesn't handle #extension, #version, or #pragma directives. 11301591693c7b415e9869157c711fe11263c95d74eDavid Li * Simply pass them through to the main compiler's lexer/parser. */ 11311591693c7b415e9869157c711fe11263c95d74eDavid Licase 9: 11321591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 11331591693c7b415e9869157c711fe11263c95d74eDavid Li#line 102 "glcpp/glcpp-lex.l" 11341591693c7b415e9869157c711fe11263c95d74eDavid Li{ 1135d50d9a90a0df4d706421850e17c0fbd85bf710eeDavid Li yylval->str = hieralloc_strdup (yyextra, yytext); 11361591693c7b415e9869157c711fe11263c95d74eDavid Li yylineno++; 11371591693c7b415e9869157c711fe11263c95d74eDavid Li yycolumn = 0; 11381591693c7b415e9869157c711fe11263c95d74eDavid Li return OTHER; 11391591693c7b415e9869157c711fe11263c95d74eDavid Li} 11401591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 11411591693c7b415e9869157c711fe11263c95d74eDavid Licase 10: 11421591693c7b415e9869157c711fe11263c95d74eDavid Li*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ 11431591693c7b415e9869157c711fe11263c95d74eDavid Liyyg->yy_c_buf_p = yy_cp -= 1; 11441591693c7b415e9869157c711fe11263c95d74eDavid LiYY_DO_BEFORE_ACTION; /* set up yytext again */ 11451591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 11461591693c7b415e9869157c711fe11263c95d74eDavid Li#line 109 "glcpp/glcpp-lex.l" 11471591693c7b415e9869157c711fe11263c95d74eDavid Li{ 11481591693c7b415e9869157c711fe11263c95d74eDavid Li /* Eat characters until the first digit is 11491591693c7b415e9869157c711fe11263c95d74eDavid Li * encountered 11501591693c7b415e9869157c711fe11263c95d74eDavid Li */ 11511591693c7b415e9869157c711fe11263c95d74eDavid Li char *ptr = yytext; 11521591693c7b415e9869157c711fe11263c95d74eDavid Li while (!isdigit(*ptr)) 11531591693c7b415e9869157c711fe11263c95d74eDavid Li ptr++; 11541591693c7b415e9869157c711fe11263c95d74eDavid Li 11551591693c7b415e9869157c711fe11263c95d74eDavid Li /* Subtract one from the line number because 11561591693c7b415e9869157c711fe11263c95d74eDavid Li * yylineno is zero-based instead of 11571591693c7b415e9869157c711fe11263c95d74eDavid Li * one-based. 11581591693c7b415e9869157c711fe11263c95d74eDavid Li */ 11591591693c7b415e9869157c711fe11263c95d74eDavid Li yylineno = strtol(ptr, &ptr, 0) - 1; 11601591693c7b415e9869157c711fe11263c95d74eDavid Li yylloc->source = strtol(ptr, NULL, 0); 11611591693c7b415e9869157c711fe11263c95d74eDavid Li} 11621591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 11631591693c7b415e9869157c711fe11263c95d74eDavid Licase 11: 11641591693c7b415e9869157c711fe11263c95d74eDavid Li*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ 11651591693c7b415e9869157c711fe11263c95d74eDavid Liyyg->yy_c_buf_p = yy_cp -= 1; 11661591693c7b415e9869157c711fe11263c95d74eDavid LiYY_DO_BEFORE_ACTION; /* set up yytext again */ 11671591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 11681591693c7b415e9869157c711fe11263c95d74eDavid Li#line 125 "glcpp/glcpp-lex.l" 11691591693c7b415e9869157c711fe11263c95d74eDavid Li{ 11701591693c7b415e9869157c711fe11263c95d74eDavid Li /* Eat characters until the first digit is 11711591693c7b415e9869157c711fe11263c95d74eDavid Li * encountered 11721591693c7b415e9869157c711fe11263c95d74eDavid Li */ 11731591693c7b415e9869157c711fe11263c95d74eDavid Li char *ptr = yytext; 11741591693c7b415e9869157c711fe11263c95d74eDavid Li while (!isdigit(*ptr)) 11751591693c7b415e9869157c711fe11263c95d74eDavid Li ptr++; 11761591693c7b415e9869157c711fe11263c95d74eDavid Li 11771591693c7b415e9869157c711fe11263c95d74eDavid Li /* Subtract one from the line number because 11781591693c7b415e9869157c711fe11263c95d74eDavid Li * yylineno is zero-based instead of 11791591693c7b415e9869157c711fe11263c95d74eDavid Li * one-based. 11801591693c7b415e9869157c711fe11263c95d74eDavid Li */ 11811591693c7b415e9869157c711fe11263c95d74eDavid Li yylineno = strtol(ptr, &ptr, 0) - 1; 11821591693c7b415e9869157c711fe11263c95d74eDavid Li} 11831591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 11841591693c7b415e9869157c711fe11263c95d74eDavid Licase 12: 11851591693c7b415e9869157c711fe11263c95d74eDavid Li/* rule 12 can match eol */ 11861591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 11871591693c7b415e9869157c711fe11263c95d74eDavid Li#line 140 "glcpp/glcpp-lex.l" 11881591693c7b415e9869157c711fe11263c95d74eDavid Li{ 11891591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra->lexing_if = 1; 11901591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra->space_tokens = 0; 11911591693c7b415e9869157c711fe11263c95d74eDavid Li return HASH_IFDEF; 11921591693c7b415e9869157c711fe11263c95d74eDavid Li} 11931591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 11941591693c7b415e9869157c711fe11263c95d74eDavid Licase 13: 11951591693c7b415e9869157c711fe11263c95d74eDavid Li/* rule 13 can match eol */ 11961591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 11971591693c7b415e9869157c711fe11263c95d74eDavid Li#line 146 "glcpp/glcpp-lex.l" 11981591693c7b415e9869157c711fe11263c95d74eDavid Li{ 11991591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra->lexing_if = 1; 12001591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra->space_tokens = 0; 12011591693c7b415e9869157c711fe11263c95d74eDavid Li return HASH_IFNDEF; 12021591693c7b415e9869157c711fe11263c95d74eDavid Li} 12031591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 12041591693c7b415e9869157c711fe11263c95d74eDavid Licase 14: 12051591693c7b415e9869157c711fe11263c95d74eDavid Li/* rule 14 can match eol */ 12061591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 12071591693c7b415e9869157c711fe11263c95d74eDavid Li#line 152 "glcpp/glcpp-lex.l" 12081591693c7b415e9869157c711fe11263c95d74eDavid Li{ 12091591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra->lexing_if = 1; 12101591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra->space_tokens = 0; 12111591693c7b415e9869157c711fe11263c95d74eDavid Li return HASH_IF; 12121591693c7b415e9869157c711fe11263c95d74eDavid Li} 12131591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 12141591693c7b415e9869157c711fe11263c95d74eDavid Licase 15: 12151591693c7b415e9869157c711fe11263c95d74eDavid Li/* rule 15 can match eol */ 12161591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 12171591693c7b415e9869157c711fe11263c95d74eDavid Li#line 158 "glcpp/glcpp-lex.l" 12181591693c7b415e9869157c711fe11263c95d74eDavid Li{ 12191591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra->lexing_if = 1; 12201591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra->space_tokens = 0; 12211591693c7b415e9869157c711fe11263c95d74eDavid Li return HASH_ELIF; 12221591693c7b415e9869157c711fe11263c95d74eDavid Li} 12231591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 12241591693c7b415e9869157c711fe11263c95d74eDavid Licase 16: 12251591693c7b415e9869157c711fe11263c95d74eDavid Li/* rule 16 can match eol */ 12261591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 12271591693c7b415e9869157c711fe11263c95d74eDavid Li#line 164 "glcpp/glcpp-lex.l" 12281591693c7b415e9869157c711fe11263c95d74eDavid Li{ 12291591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra->space_tokens = 0; 12301591693c7b415e9869157c711fe11263c95d74eDavid Li return HASH_ELSE; 12311591693c7b415e9869157c711fe11263c95d74eDavid Li} 12321591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 12331591693c7b415e9869157c711fe11263c95d74eDavid Licase 17: 12341591693c7b415e9869157c711fe11263c95d74eDavid Li/* rule 17 can match eol */ 12351591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 12361591693c7b415e9869157c711fe11263c95d74eDavid Li#line 169 "glcpp/glcpp-lex.l" 12371591693c7b415e9869157c711fe11263c95d74eDavid Li{ 12381591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra->space_tokens = 0; 12391591693c7b415e9869157c711fe11263c95d74eDavid Li return HASH_ENDIF; 12401591693c7b415e9869157c711fe11263c95d74eDavid Li} 12411591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 12421591693c7b415e9869157c711fe11263c95d74eDavid Li/* When skipping (due to an #if 0 or similar) consume anything 12431591693c7b415e9869157c711fe11263c95d74eDavid Li * up to a newline. We do this with less priority than any 12441591693c7b415e9869157c711fe11263c95d74eDavid Li * #if-related directive (#if, #elif, #else, #endif), but with 12451591693c7b415e9869157c711fe11263c95d74eDavid Li * more priority than any other directive or token to avoid 12461591693c7b415e9869157c711fe11263c95d74eDavid Li * any side-effects from skipped content. 12471591693c7b415e9869157c711fe11263c95d74eDavid Li * 12481591693c7b415e9869157c711fe11263c95d74eDavid Li * We use the lexing_if flag to avoid skipping any part of an 12491591693c7b415e9869157c711fe11263c95d74eDavid Li * if conditional expression. */ 12501591693c7b415e9869157c711fe11263c95d74eDavid Licase 18: 12511591693c7b415e9869157c711fe11263c95d74eDavid Li/* rule 18 can match eol */ 12521591693c7b415e9869157c711fe11263c95d74eDavid Li*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ 12531591693c7b415e9869157c711fe11263c95d74eDavid Liyyg->yy_c_buf_p = yy_cp -= 1; 12541591693c7b415e9869157c711fe11263c95d74eDavid LiYY_DO_BEFORE_ACTION; /* set up yytext again */ 12551591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 12561591693c7b415e9869157c711fe11263c95d74eDavid Li#line 182 "glcpp/glcpp-lex.l" 12571591693c7b415e9869157c711fe11263c95d74eDavid Li{ 12581591693c7b415e9869157c711fe11263c95d74eDavid Li /* Since this rule always matches, YY_USER_ACTION gets called for it, 12591591693c7b415e9869157c711fe11263c95d74eDavid Li * wrongly incrementing yycolumn. We undo that effect here. */ 12601591693c7b415e9869157c711fe11263c95d74eDavid Li yycolumn -= yyleng; 12611591693c7b415e9869157c711fe11263c95d74eDavid Li if (yyextra->lexing_if || 12621591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra->skip_stack == NULL || 12631591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra->skip_stack->type == SKIP_NO_SKIP) 12641591693c7b415e9869157c711fe11263c95d74eDavid Li { 12651591693c7b415e9869157c711fe11263c95d74eDavid Li REJECT; 12661591693c7b415e9869157c711fe11263c95d74eDavid Li } 12671591693c7b415e9869157c711fe11263c95d74eDavid Li} 12681591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 12691591693c7b415e9869157c711fe11263c95d74eDavid Licase 19: 12701591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 12711591693c7b415e9869157c711fe11263c95d74eDavid Li#line 194 "glcpp/glcpp-lex.l" 12721591693c7b415e9869157c711fe11263c95d74eDavid Li{ 12731591693c7b415e9869157c711fe11263c95d74eDavid Li char *p; 12741591693c7b415e9869157c711fe11263c95d74eDavid Li for (p = yytext; !isalpha(p[0]); p++); /* skip " # " */ 12751591693c7b415e9869157c711fe11263c95d74eDavid Li p += 5; /* skip "error" */ 12761591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp_error(yylloc, yyextra, "#error%s", p); 12771591693c7b415e9869157c711fe11263c95d74eDavid Li} 12781591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 12791591693c7b415e9869157c711fe11263c95d74eDavid Licase 20: 12801591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 12811591693c7b415e9869157c711fe11263c95d74eDavid Li#line 201 "glcpp/glcpp-lex.l" 12821591693c7b415e9869157c711fe11263c95d74eDavid Li{ 12831591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra->space_tokens = 0; 12841591693c7b415e9869157c711fe11263c95d74eDavid Li return HASH_DEFINE_FUNC; 12851591693c7b415e9869157c711fe11263c95d74eDavid Li} 12861591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 12871591693c7b415e9869157c711fe11263c95d74eDavid Licase 21: 12881591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 12891591693c7b415e9869157c711fe11263c95d74eDavid Li#line 206 "glcpp/glcpp-lex.l" 12901591693c7b415e9869157c711fe11263c95d74eDavid Li{ 12911591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra->space_tokens = 0; 12921591693c7b415e9869157c711fe11263c95d74eDavid Li return HASH_DEFINE_OBJ; 12931591693c7b415e9869157c711fe11263c95d74eDavid Li} 12941591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 12951591693c7b415e9869157c711fe11263c95d74eDavid Licase 22: 12961591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 12971591693c7b415e9869157c711fe11263c95d74eDavid Li#line 211 "glcpp/glcpp-lex.l" 12981591693c7b415e9869157c711fe11263c95d74eDavid Li{ 12991591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra->space_tokens = 0; 13001591693c7b415e9869157c711fe11263c95d74eDavid Li return HASH_UNDEF; 13011591693c7b415e9869157c711fe11263c95d74eDavid Li} 13021591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 13031591693c7b415e9869157c711fe11263c95d74eDavid Licase 23: 13041591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 13051591693c7b415e9869157c711fe11263c95d74eDavid Li#line 216 "glcpp/glcpp-lex.l" 13061591693c7b415e9869157c711fe11263c95d74eDavid Li{ 13071591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra->space_tokens = 0; 13081591693c7b415e9869157c711fe11263c95d74eDavid Li return HASH; 13091591693c7b415e9869157c711fe11263c95d74eDavid Li} 13101591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 13111591693c7b415e9869157c711fe11263c95d74eDavid Licase 24: 13121591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 13131591693c7b415e9869157c711fe11263c95d74eDavid Li#line 221 "glcpp/glcpp-lex.l" 13141591693c7b415e9869157c711fe11263c95d74eDavid Li{ 1315d50d9a90a0df4d706421850e17c0fbd85bf710eeDavid Li yylval->str = hieralloc_strdup (yyextra, yytext); 13161591693c7b415e9869157c711fe11263c95d74eDavid Li return INTEGER_STRING; 13171591693c7b415e9869157c711fe11263c95d74eDavid Li} 13181591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 13191591693c7b415e9869157c711fe11263c95d74eDavid Licase 25: 13201591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 13211591693c7b415e9869157c711fe11263c95d74eDavid Li#line 226 "glcpp/glcpp-lex.l" 13221591693c7b415e9869157c711fe11263c95d74eDavid Li{ 1323d50d9a90a0df4d706421850e17c0fbd85bf710eeDavid Li yylval->str = hieralloc_strdup (yyextra, yytext); 13241591693c7b415e9869157c711fe11263c95d74eDavid Li return INTEGER_STRING; 13251591693c7b415e9869157c711fe11263c95d74eDavid Li} 13261591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 13271591693c7b415e9869157c711fe11263c95d74eDavid Licase 26: 13281591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 13291591693c7b415e9869157c711fe11263c95d74eDavid Li#line 231 "glcpp/glcpp-lex.l" 13301591693c7b415e9869157c711fe11263c95d74eDavid Li{ 1331d50d9a90a0df4d706421850e17c0fbd85bf710eeDavid Li yylval->str = hieralloc_strdup (yyextra, yytext); 13321591693c7b415e9869157c711fe11263c95d74eDavid Li return INTEGER_STRING; 13331591693c7b415e9869157c711fe11263c95d74eDavid Li} 13341591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 13351591693c7b415e9869157c711fe11263c95d74eDavid Licase 27: 13361591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 13371591693c7b415e9869157c711fe11263c95d74eDavid Li#line 236 "glcpp/glcpp-lex.l" 13381591693c7b415e9869157c711fe11263c95d74eDavid Li{ 13391591693c7b415e9869157c711fe11263c95d74eDavid Li return LEFT_SHIFT; 13401591693c7b415e9869157c711fe11263c95d74eDavid Li} 13411591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 13421591693c7b415e9869157c711fe11263c95d74eDavid Licase 28: 13431591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 13441591693c7b415e9869157c711fe11263c95d74eDavid Li#line 240 "glcpp/glcpp-lex.l" 13451591693c7b415e9869157c711fe11263c95d74eDavid Li{ 13461591693c7b415e9869157c711fe11263c95d74eDavid Li return RIGHT_SHIFT; 13471591693c7b415e9869157c711fe11263c95d74eDavid Li} 13481591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 13491591693c7b415e9869157c711fe11263c95d74eDavid Licase 29: 13501591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 13511591693c7b415e9869157c711fe11263c95d74eDavid Li#line 244 "glcpp/glcpp-lex.l" 13521591693c7b415e9869157c711fe11263c95d74eDavid Li{ 13531591693c7b415e9869157c711fe11263c95d74eDavid Li return LESS_OR_EQUAL; 13541591693c7b415e9869157c711fe11263c95d74eDavid Li} 13551591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 13561591693c7b415e9869157c711fe11263c95d74eDavid Licase 30: 13571591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 13581591693c7b415e9869157c711fe11263c95d74eDavid Li#line 248 "glcpp/glcpp-lex.l" 13591591693c7b415e9869157c711fe11263c95d74eDavid Li{ 13601591693c7b415e9869157c711fe11263c95d74eDavid Li return GREATER_OR_EQUAL; 13611591693c7b415e9869157c711fe11263c95d74eDavid Li} 13621591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 13631591693c7b415e9869157c711fe11263c95d74eDavid Licase 31: 13641591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 13651591693c7b415e9869157c711fe11263c95d74eDavid Li#line 252 "glcpp/glcpp-lex.l" 13661591693c7b415e9869157c711fe11263c95d74eDavid Li{ 13671591693c7b415e9869157c711fe11263c95d74eDavid Li return EQUAL; 13681591693c7b415e9869157c711fe11263c95d74eDavid Li} 13691591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 13701591693c7b415e9869157c711fe11263c95d74eDavid Licase 32: 13711591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 13721591693c7b415e9869157c711fe11263c95d74eDavid Li#line 256 "glcpp/glcpp-lex.l" 13731591693c7b415e9869157c711fe11263c95d74eDavid Li{ 13741591693c7b415e9869157c711fe11263c95d74eDavid Li return NOT_EQUAL; 13751591693c7b415e9869157c711fe11263c95d74eDavid Li} 13761591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 13771591693c7b415e9869157c711fe11263c95d74eDavid Licase 33: 13781591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 13791591693c7b415e9869157c711fe11263c95d74eDavid Li#line 260 "glcpp/glcpp-lex.l" 13801591693c7b415e9869157c711fe11263c95d74eDavid Li{ 13811591693c7b415e9869157c711fe11263c95d74eDavid Li return AND; 13821591693c7b415e9869157c711fe11263c95d74eDavid Li} 13831591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 13841591693c7b415e9869157c711fe11263c95d74eDavid Licase 34: 13851591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 13861591693c7b415e9869157c711fe11263c95d74eDavid Li#line 264 "glcpp/glcpp-lex.l" 13871591693c7b415e9869157c711fe11263c95d74eDavid Li{ 13881591693c7b415e9869157c711fe11263c95d74eDavid Li return OR; 13891591693c7b415e9869157c711fe11263c95d74eDavid Li} 13901591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 13911591693c7b415e9869157c711fe11263c95d74eDavid Licase 35: 13921591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 13931591693c7b415e9869157c711fe11263c95d74eDavid Li#line 268 "glcpp/glcpp-lex.l" 13941591693c7b415e9869157c711fe11263c95d74eDavid Li{ 13951591693c7b415e9869157c711fe11263c95d74eDavid Li return PASTE; 13961591693c7b415e9869157c711fe11263c95d74eDavid Li} 13971591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 13981591693c7b415e9869157c711fe11263c95d74eDavid Licase 36: 13991591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 14001591693c7b415e9869157c711fe11263c95d74eDavid Li#line 272 "glcpp/glcpp-lex.l" 14011591693c7b415e9869157c711fe11263c95d74eDavid Li{ 14021591693c7b415e9869157c711fe11263c95d74eDavid Li return DEFINED; 14031591693c7b415e9869157c711fe11263c95d74eDavid Li} 14041591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 14051591693c7b415e9869157c711fe11263c95d74eDavid Licase 37: 14061591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 14071591693c7b415e9869157c711fe11263c95d74eDavid Li#line 276 "glcpp/glcpp-lex.l" 14081591693c7b415e9869157c711fe11263c95d74eDavid Li{ 1409d50d9a90a0df4d706421850e17c0fbd85bf710eeDavid Li yylval->str = hieralloc_strdup (yyextra, yytext); 14101591693c7b415e9869157c711fe11263c95d74eDavid Li return IDENTIFIER; 14111591693c7b415e9869157c711fe11263c95d74eDavid Li} 14121591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 14131591693c7b415e9869157c711fe11263c95d74eDavid Licase 38: 14141591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 14151591693c7b415e9869157c711fe11263c95d74eDavid Li#line 281 "glcpp/glcpp-lex.l" 14161591693c7b415e9869157c711fe11263c95d74eDavid Li{ 14171591693c7b415e9869157c711fe11263c95d74eDavid Li return yytext[0]; 14181591693c7b415e9869157c711fe11263c95d74eDavid Li} 14191591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 14201591693c7b415e9869157c711fe11263c95d74eDavid Licase 39: 14211591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 14221591693c7b415e9869157c711fe11263c95d74eDavid Li#line 285 "glcpp/glcpp-lex.l" 14231591693c7b415e9869157c711fe11263c95d74eDavid Li{ 1424d50d9a90a0df4d706421850e17c0fbd85bf710eeDavid Li yylval->str = hieralloc_strdup (yyextra, yytext); 14251591693c7b415e9869157c711fe11263c95d74eDavid Li return OTHER; 14261591693c7b415e9869157c711fe11263c95d74eDavid Li} 14271591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 14281591693c7b415e9869157c711fe11263c95d74eDavid Licase 40: 14291591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 14301591693c7b415e9869157c711fe11263c95d74eDavid Li#line 290 "glcpp/glcpp-lex.l" 14311591693c7b415e9869157c711fe11263c95d74eDavid Li{ 14321591693c7b415e9869157c711fe11263c95d74eDavid Li if (yyextra->space_tokens) { 14331591693c7b415e9869157c711fe11263c95d74eDavid Li return SPACE; 14341591693c7b415e9869157c711fe11263c95d74eDavid Li } 14351591693c7b415e9869157c711fe11263c95d74eDavid Li} 14361591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 14371591693c7b415e9869157c711fe11263c95d74eDavid Licase 41: 14381591693c7b415e9869157c711fe11263c95d74eDavid Li/* rule 41 can match eol */ 14391591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 14401591693c7b415e9869157c711fe11263c95d74eDavid Li#line 296 "glcpp/glcpp-lex.l" 14411591693c7b415e9869157c711fe11263c95d74eDavid Li{ 14421591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra->lexing_if = 0; 14431591693c7b415e9869157c711fe11263c95d74eDavid Li yylineno++; 14441591693c7b415e9869157c711fe11263c95d74eDavid Li yycolumn = 0; 14451591693c7b415e9869157c711fe11263c95d74eDavid Li return NEWLINE; 14461591693c7b415e9869157c711fe11263c95d74eDavid Li} 14471591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 14481591693c7b415e9869157c711fe11263c95d74eDavid Li/* Handle missing newline at EOF. */ 14491591693c7b415e9869157c711fe11263c95d74eDavid Licase YY_STATE_EOF(INITIAL): 14501591693c7b415e9869157c711fe11263c95d74eDavid Li#line 304 "glcpp/glcpp-lex.l" 14511591693c7b415e9869157c711fe11263c95d74eDavid Li{ 14521591693c7b415e9869157c711fe11263c95d74eDavid Li BEGIN DONE; /* Don't keep matching this rule forever. */ 14531591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra->lexing_if = 0; 14541591693c7b415e9869157c711fe11263c95d74eDavid Li return NEWLINE; 14551591693c7b415e9869157c711fe11263c95d74eDavid Li} 14561591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 14571591693c7b415e9869157c711fe11263c95d74eDavid Li/* We don't actually use the UNREACHABLE start condition. We 14581591693c7b415e9869157c711fe11263c95d74eDavid Li only have this action here so that we can pretend to call some 14591591693c7b415e9869157c711fe11263c95d74eDavid Li generated functions, (to avoid "defined but not used" 14601591693c7b415e9869157c711fe11263c95d74eDavid Li warnings. */ 14611591693c7b415e9869157c711fe11263c95d74eDavid Licase 42: 14621591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 14631591693c7b415e9869157c711fe11263c95d74eDavid Li#line 314 "glcpp/glcpp-lex.l" 14641591693c7b415e9869157c711fe11263c95d74eDavid Li{ 14651591693c7b415e9869157c711fe11263c95d74eDavid Li unput('.'); 14661591693c7b415e9869157c711fe11263c95d74eDavid Li yy_top_state(yyextra); 14671591693c7b415e9869157c711fe11263c95d74eDavid Li} 14681591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 14691591693c7b415e9869157c711fe11263c95d74eDavid Licase 43: 14701591693c7b415e9869157c711fe11263c95d74eDavid LiYY_RULE_SETUP 14711591693c7b415e9869157c711fe11263c95d74eDavid Li#line 319 "glcpp/glcpp-lex.l" 14721591693c7b415e9869157c711fe11263c95d74eDavid LiECHO; 14731591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BREAK 14741591693c7b415e9869157c711fe11263c95d74eDavid Li#line 1475 "glcpp/glcpp-lex.c" 14751591693c7b415e9869157c711fe11263c95d74eDavid Li case YY_STATE_EOF(DONE): 14761591693c7b415e9869157c711fe11263c95d74eDavid Li case YY_STATE_EOF(COMMENT): 14771591693c7b415e9869157c711fe11263c95d74eDavid Li case YY_STATE_EOF(UNREACHABLE): 14781591693c7b415e9869157c711fe11263c95d74eDavid Li yyterminate(); 14791591693c7b415e9869157c711fe11263c95d74eDavid Li 14801591693c7b415e9869157c711fe11263c95d74eDavid Li case YY_END_OF_BUFFER: 14811591693c7b415e9869157c711fe11263c95d74eDavid Li { 14821591693c7b415e9869157c711fe11263c95d74eDavid Li /* Amount of text matched not including the EOB char. */ 14831591693c7b415e9869157c711fe11263c95d74eDavid Li int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; 14841591693c7b415e9869157c711fe11263c95d74eDavid Li 14851591693c7b415e9869157c711fe11263c95d74eDavid Li /* Undo the effects of YY_DO_BEFORE_ACTION. */ 14861591693c7b415e9869157c711fe11263c95d74eDavid Li *yy_cp = yyg->yy_hold_char; 14871591693c7b415e9869157c711fe11263c95d74eDavid Li YY_RESTORE_YY_MORE_OFFSET 14881591693c7b415e9869157c711fe11263c95d74eDavid Li 14891591693c7b415e9869157c711fe11263c95d74eDavid Li if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) 14901591693c7b415e9869157c711fe11263c95d74eDavid Li { 14911591693c7b415e9869157c711fe11263c95d74eDavid Li /* We're scanning a new file or input source. It's 14921591693c7b415e9869157c711fe11263c95d74eDavid Li * possible that this happened because the user 14931591693c7b415e9869157c711fe11263c95d74eDavid Li * just pointed yyin at a new source and called 14941591693c7b415e9869157c711fe11263c95d74eDavid Li * glcpp_lex(). If so, then we have to assure 14951591693c7b415e9869157c711fe11263c95d74eDavid Li * consistency between YY_CURRENT_BUFFER and our 14961591693c7b415e9869157c711fe11263c95d74eDavid Li * globals. Here is the right place to do so, because 14971591693c7b415e9869157c711fe11263c95d74eDavid Li * this is the first action (other than possibly a 14981591693c7b415e9869157c711fe11263c95d74eDavid Li * back-up) that will match for the new input source. 14991591693c7b415e9869157c711fe11263c95d74eDavid Li */ 15001591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 15011591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; 15021591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; 15031591693c7b415e9869157c711fe11263c95d74eDavid Li } 15041591693c7b415e9869157c711fe11263c95d74eDavid Li 15051591693c7b415e9869157c711fe11263c95d74eDavid Li /* Note that here we test for yy_c_buf_p "<=" to the position 15061591693c7b415e9869157c711fe11263c95d74eDavid Li * of the first EOB in the buffer, since yy_c_buf_p will 15071591693c7b415e9869157c711fe11263c95d74eDavid Li * already have been incremented past the NUL character 15081591693c7b415e9869157c711fe11263c95d74eDavid Li * (since all states make transitions on EOB to the 15091591693c7b415e9869157c711fe11263c95d74eDavid Li * end-of-buffer state). Contrast this with the test 15101591693c7b415e9869157c711fe11263c95d74eDavid Li * in input(). 15111591693c7b415e9869157c711fe11263c95d74eDavid Li */ 15121591693c7b415e9869157c711fe11263c95d74eDavid Li if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) 15131591693c7b415e9869157c711fe11263c95d74eDavid Li { /* This was really a NUL. */ 15141591693c7b415e9869157c711fe11263c95d74eDavid Li yy_state_type yy_next_state; 15151591693c7b415e9869157c711fe11263c95d74eDavid Li 15161591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; 15171591693c7b415e9869157c711fe11263c95d74eDavid Li 15181591693c7b415e9869157c711fe11263c95d74eDavid Li yy_current_state = yy_get_previous_state( yyscanner ); 15191591693c7b415e9869157c711fe11263c95d74eDavid Li 15201591693c7b415e9869157c711fe11263c95d74eDavid Li /* Okay, we're now positioned to make the NUL 15211591693c7b415e9869157c711fe11263c95d74eDavid Li * transition. We couldn't have 15221591693c7b415e9869157c711fe11263c95d74eDavid Li * yy_get_previous_state() go ahead and do it 15231591693c7b415e9869157c711fe11263c95d74eDavid Li * for us because it doesn't know how to deal 15241591693c7b415e9869157c711fe11263c95d74eDavid Li * with the possibility of jamming (and we don't 15251591693c7b415e9869157c711fe11263c95d74eDavid Li * want to build jamming into it because then it 15261591693c7b415e9869157c711fe11263c95d74eDavid Li * will run more slowly). 15271591693c7b415e9869157c711fe11263c95d74eDavid Li */ 15281591693c7b415e9869157c711fe11263c95d74eDavid Li 15291591693c7b415e9869157c711fe11263c95d74eDavid Li yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner); 15301591693c7b415e9869157c711fe11263c95d74eDavid Li 15311591693c7b415e9869157c711fe11263c95d74eDavid Li yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; 15321591693c7b415e9869157c711fe11263c95d74eDavid Li 15331591693c7b415e9869157c711fe11263c95d74eDavid Li if ( yy_next_state ) 15341591693c7b415e9869157c711fe11263c95d74eDavid Li { 15351591693c7b415e9869157c711fe11263c95d74eDavid Li /* Consume the NUL. */ 15361591693c7b415e9869157c711fe11263c95d74eDavid Li yy_cp = ++yyg->yy_c_buf_p; 15371591693c7b415e9869157c711fe11263c95d74eDavid Li yy_current_state = yy_next_state; 15381591693c7b415e9869157c711fe11263c95d74eDavid Li goto yy_match; 15391591693c7b415e9869157c711fe11263c95d74eDavid Li } 15401591693c7b415e9869157c711fe11263c95d74eDavid Li 15411591693c7b415e9869157c711fe11263c95d74eDavid Li else 15421591693c7b415e9869157c711fe11263c95d74eDavid Li { 15431591693c7b415e9869157c711fe11263c95d74eDavid Li yy_cp = yyg->yy_c_buf_p; 15441591693c7b415e9869157c711fe11263c95d74eDavid Li goto yy_find_action; 15451591693c7b415e9869157c711fe11263c95d74eDavid Li } 15461591693c7b415e9869157c711fe11263c95d74eDavid Li } 15471591693c7b415e9869157c711fe11263c95d74eDavid Li 15481591693c7b415e9869157c711fe11263c95d74eDavid Li else switch ( yy_get_next_buffer( yyscanner ) ) 15491591693c7b415e9869157c711fe11263c95d74eDavid Li { 15501591693c7b415e9869157c711fe11263c95d74eDavid Li case EOB_ACT_END_OF_FILE: 15511591693c7b415e9869157c711fe11263c95d74eDavid Li { 15521591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_did_buffer_switch_on_eof = 0; 15531591693c7b415e9869157c711fe11263c95d74eDavid Li 15541591693c7b415e9869157c711fe11263c95d74eDavid Li if ( glcpp_wrap(yyscanner ) ) 15551591693c7b415e9869157c711fe11263c95d74eDavid Li { 15561591693c7b415e9869157c711fe11263c95d74eDavid Li /* Note: because we've taken care in 15571591693c7b415e9869157c711fe11263c95d74eDavid Li * yy_get_next_buffer() to have set up 15581591693c7b415e9869157c711fe11263c95d74eDavid Li * yytext, we can now set up 15591591693c7b415e9869157c711fe11263c95d74eDavid Li * yy_c_buf_p so that if some total 15601591693c7b415e9869157c711fe11263c95d74eDavid Li * hoser (like flex itself) wants to 15611591693c7b415e9869157c711fe11263c95d74eDavid Li * call the scanner after we return the 15621591693c7b415e9869157c711fe11263c95d74eDavid Li * YY_NULL, it'll still work - another 15631591693c7b415e9869157c711fe11263c95d74eDavid Li * YY_NULL will get returned. 15641591693c7b415e9869157c711fe11263c95d74eDavid Li */ 15651591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; 15661591693c7b415e9869157c711fe11263c95d74eDavid Li 15671591693c7b415e9869157c711fe11263c95d74eDavid Li yy_act = YY_STATE_EOF(YY_START); 15681591693c7b415e9869157c711fe11263c95d74eDavid Li goto do_action; 15691591693c7b415e9869157c711fe11263c95d74eDavid Li } 15701591693c7b415e9869157c711fe11263c95d74eDavid Li 15711591693c7b415e9869157c711fe11263c95d74eDavid Li else 15721591693c7b415e9869157c711fe11263c95d74eDavid Li { 15731591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! yyg->yy_did_buffer_switch_on_eof ) 15741591693c7b415e9869157c711fe11263c95d74eDavid Li YY_NEW_FILE; 15751591693c7b415e9869157c711fe11263c95d74eDavid Li } 15761591693c7b415e9869157c711fe11263c95d74eDavid Li break; 15771591693c7b415e9869157c711fe11263c95d74eDavid Li } 15781591693c7b415e9869157c711fe11263c95d74eDavid Li 15791591693c7b415e9869157c711fe11263c95d74eDavid Li case EOB_ACT_CONTINUE_SCAN: 15801591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_c_buf_p = 15811591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yytext_ptr + yy_amount_of_matched_text; 15821591693c7b415e9869157c711fe11263c95d74eDavid Li 15831591693c7b415e9869157c711fe11263c95d74eDavid Li yy_current_state = yy_get_previous_state( yyscanner ); 15841591693c7b415e9869157c711fe11263c95d74eDavid Li 15851591693c7b415e9869157c711fe11263c95d74eDavid Li yy_cp = yyg->yy_c_buf_p; 15861591693c7b415e9869157c711fe11263c95d74eDavid Li yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; 15871591693c7b415e9869157c711fe11263c95d74eDavid Li goto yy_match; 15881591693c7b415e9869157c711fe11263c95d74eDavid Li 15891591693c7b415e9869157c711fe11263c95d74eDavid Li case EOB_ACT_LAST_MATCH: 15901591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_c_buf_p = 15911591693c7b415e9869157c711fe11263c95d74eDavid Li &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]; 15921591693c7b415e9869157c711fe11263c95d74eDavid Li 15931591693c7b415e9869157c711fe11263c95d74eDavid Li yy_current_state = yy_get_previous_state( yyscanner ); 15941591693c7b415e9869157c711fe11263c95d74eDavid Li 15951591693c7b415e9869157c711fe11263c95d74eDavid Li yy_cp = yyg->yy_c_buf_p; 15961591693c7b415e9869157c711fe11263c95d74eDavid Li yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; 15971591693c7b415e9869157c711fe11263c95d74eDavid Li goto yy_find_action; 15981591693c7b415e9869157c711fe11263c95d74eDavid Li } 15991591693c7b415e9869157c711fe11263c95d74eDavid Li break; 16001591693c7b415e9869157c711fe11263c95d74eDavid Li } 16011591693c7b415e9869157c711fe11263c95d74eDavid Li 16021591693c7b415e9869157c711fe11263c95d74eDavid Li default: 16031591693c7b415e9869157c711fe11263c95d74eDavid Li YY_FATAL_ERROR( 16041591693c7b415e9869157c711fe11263c95d74eDavid Li "fatal flex scanner internal error--no action found" ); 16051591693c7b415e9869157c711fe11263c95d74eDavid Li } /* end of action switch */ 16061591693c7b415e9869157c711fe11263c95d74eDavid Li } /* end of scanning one token */ 16071591693c7b415e9869157c711fe11263c95d74eDavid Li} /* end of glcpp_lex */ 16081591693c7b415e9869157c711fe11263c95d74eDavid Li 16091591693c7b415e9869157c711fe11263c95d74eDavid Li/* yy_get_next_buffer - try to read in a new buffer 16101591693c7b415e9869157c711fe11263c95d74eDavid Li * 16111591693c7b415e9869157c711fe11263c95d74eDavid Li * Returns a code representing an action: 16121591693c7b415e9869157c711fe11263c95d74eDavid Li * EOB_ACT_LAST_MATCH - 16131591693c7b415e9869157c711fe11263c95d74eDavid Li * EOB_ACT_CONTINUE_SCAN - continue scanning from current position 16141591693c7b415e9869157c711fe11263c95d74eDavid Li * EOB_ACT_END_OF_FILE - end of file 16151591693c7b415e9869157c711fe11263c95d74eDavid Li */ 16161591693c7b415e9869157c711fe11263c95d74eDavid Listatic int yy_get_next_buffer (yyscan_t yyscanner) 16171591693c7b415e9869157c711fe11263c95d74eDavid Li{ 16181591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 16191591693c7b415e9869157c711fe11263c95d74eDavid Li register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; 16201591693c7b415e9869157c711fe11263c95d74eDavid Li register char *source = yyg->yytext_ptr; 16211591693c7b415e9869157c711fe11263c95d74eDavid Li register int number_to_move, i; 16221591693c7b415e9869157c711fe11263c95d74eDavid Li int ret_val; 16231591693c7b415e9869157c711fe11263c95d74eDavid Li 16241591693c7b415e9869157c711fe11263c95d74eDavid Li if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] ) 16251591693c7b415e9869157c711fe11263c95d74eDavid Li YY_FATAL_ERROR( 16261591693c7b415e9869157c711fe11263c95d74eDavid Li "fatal flex scanner internal error--end of buffer missed" ); 16271591693c7b415e9869157c711fe11263c95d74eDavid Li 16281591693c7b415e9869157c711fe11263c95d74eDavid Li if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) 16291591693c7b415e9869157c711fe11263c95d74eDavid Li { /* Don't try to fill the buffer, so this is an EOF. */ 16301591693c7b415e9869157c711fe11263c95d74eDavid Li if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 ) 16311591693c7b415e9869157c711fe11263c95d74eDavid Li { 16321591693c7b415e9869157c711fe11263c95d74eDavid Li /* We matched a single character, the EOB, so 16331591693c7b415e9869157c711fe11263c95d74eDavid Li * treat this as a final EOF. 16341591693c7b415e9869157c711fe11263c95d74eDavid Li */ 16351591693c7b415e9869157c711fe11263c95d74eDavid Li return EOB_ACT_END_OF_FILE; 16361591693c7b415e9869157c711fe11263c95d74eDavid Li } 16371591693c7b415e9869157c711fe11263c95d74eDavid Li 16381591693c7b415e9869157c711fe11263c95d74eDavid Li else 16391591693c7b415e9869157c711fe11263c95d74eDavid Li { 16401591693c7b415e9869157c711fe11263c95d74eDavid Li /* We matched some text prior to the EOB, first 16411591693c7b415e9869157c711fe11263c95d74eDavid Li * process it. 16421591693c7b415e9869157c711fe11263c95d74eDavid Li */ 16431591693c7b415e9869157c711fe11263c95d74eDavid Li return EOB_ACT_LAST_MATCH; 16441591693c7b415e9869157c711fe11263c95d74eDavid Li } 16451591693c7b415e9869157c711fe11263c95d74eDavid Li } 16461591693c7b415e9869157c711fe11263c95d74eDavid Li 16471591693c7b415e9869157c711fe11263c95d74eDavid Li /* Try to read more data. */ 16481591693c7b415e9869157c711fe11263c95d74eDavid Li 16491591693c7b415e9869157c711fe11263c95d74eDavid Li /* First move last chars to start of buffer. */ 16501591693c7b415e9869157c711fe11263c95d74eDavid Li number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; 16511591693c7b415e9869157c711fe11263c95d74eDavid Li 16521591693c7b415e9869157c711fe11263c95d74eDavid Li for ( i = 0; i < number_to_move; ++i ) 16531591693c7b415e9869157c711fe11263c95d74eDavid Li *(dest++) = *(source++); 16541591693c7b415e9869157c711fe11263c95d74eDavid Li 16551591693c7b415e9869157c711fe11263c95d74eDavid Li if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) 16561591693c7b415e9869157c711fe11263c95d74eDavid Li /* don't do the read, it's not guaranteed to return an EOF, 16571591693c7b415e9869157c711fe11263c95d74eDavid Li * just force an EOF 16581591693c7b415e9869157c711fe11263c95d74eDavid Li */ 16591591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; 16601591693c7b415e9869157c711fe11263c95d74eDavid Li 16611591693c7b415e9869157c711fe11263c95d74eDavid Li else 16621591693c7b415e9869157c711fe11263c95d74eDavid Li { 16631591693c7b415e9869157c711fe11263c95d74eDavid Li int num_to_read = 16641591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; 16651591693c7b415e9869157c711fe11263c95d74eDavid Li 16661591693c7b415e9869157c711fe11263c95d74eDavid Li while ( num_to_read <= 0 ) 16671591693c7b415e9869157c711fe11263c95d74eDavid Li { /* Not enough room in the buffer - grow it. */ 16681591693c7b415e9869157c711fe11263c95d74eDavid Li 16691591693c7b415e9869157c711fe11263c95d74eDavid Li YY_FATAL_ERROR( 16701591693c7b415e9869157c711fe11263c95d74eDavid Li"input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); 16711591693c7b415e9869157c711fe11263c95d74eDavid Li 16721591693c7b415e9869157c711fe11263c95d74eDavid Li } 16731591693c7b415e9869157c711fe11263c95d74eDavid Li 16741591693c7b415e9869157c711fe11263c95d74eDavid Li if ( num_to_read > YY_READ_BUF_SIZE ) 16751591693c7b415e9869157c711fe11263c95d74eDavid Li num_to_read = YY_READ_BUF_SIZE; 16761591693c7b415e9869157c711fe11263c95d74eDavid Li 16771591693c7b415e9869157c711fe11263c95d74eDavid Li /* Read in more data. */ 16781591693c7b415e9869157c711fe11263c95d74eDavid Li YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), 16791591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_n_chars, (size_t) num_to_read ); 16801591693c7b415e9869157c711fe11263c95d74eDavid Li 16811591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; 16821591693c7b415e9869157c711fe11263c95d74eDavid Li } 16831591693c7b415e9869157c711fe11263c95d74eDavid Li 16841591693c7b415e9869157c711fe11263c95d74eDavid Li if ( yyg->yy_n_chars == 0 ) 16851591693c7b415e9869157c711fe11263c95d74eDavid Li { 16861591693c7b415e9869157c711fe11263c95d74eDavid Li if ( number_to_move == YY_MORE_ADJ ) 16871591693c7b415e9869157c711fe11263c95d74eDavid Li { 16881591693c7b415e9869157c711fe11263c95d74eDavid Li ret_val = EOB_ACT_END_OF_FILE; 16891591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp_restart(yyin ,yyscanner); 16901591693c7b415e9869157c711fe11263c95d74eDavid Li } 16911591693c7b415e9869157c711fe11263c95d74eDavid Li 16921591693c7b415e9869157c711fe11263c95d74eDavid Li else 16931591693c7b415e9869157c711fe11263c95d74eDavid Li { 16941591693c7b415e9869157c711fe11263c95d74eDavid Li ret_val = EOB_ACT_LAST_MATCH; 16951591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = 16961591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BUFFER_EOF_PENDING; 16971591693c7b415e9869157c711fe11263c95d74eDavid Li } 16981591693c7b415e9869157c711fe11263c95d74eDavid Li } 16991591693c7b415e9869157c711fe11263c95d74eDavid Li 17001591693c7b415e9869157c711fe11263c95d74eDavid Li else 17011591693c7b415e9869157c711fe11263c95d74eDavid Li ret_val = EOB_ACT_CONTINUE_SCAN; 17021591693c7b415e9869157c711fe11263c95d74eDavid Li 17031591693c7b415e9869157c711fe11263c95d74eDavid Li if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { 17041591693c7b415e9869157c711fe11263c95d74eDavid Li /* Extend the array by 50%, plus the number we really need. */ 17051591693c7b415e9869157c711fe11263c95d74eDavid Li yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); 17061591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) glcpp_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner ); 17071591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) 17081591693c7b415e9869157c711fe11263c95d74eDavid Li YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); 17091591693c7b415e9869157c711fe11263c95d74eDavid Li } 17101591693c7b415e9869157c711fe11263c95d74eDavid Li 17111591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_n_chars += number_to_move; 17121591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; 17131591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; 17141591693c7b415e9869157c711fe11263c95d74eDavid Li 17151591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; 17161591693c7b415e9869157c711fe11263c95d74eDavid Li 17171591693c7b415e9869157c711fe11263c95d74eDavid Li return ret_val; 17181591693c7b415e9869157c711fe11263c95d74eDavid Li} 17191591693c7b415e9869157c711fe11263c95d74eDavid Li 17201591693c7b415e9869157c711fe11263c95d74eDavid Li/* yy_get_previous_state - get the state just before the EOB char was reached */ 17211591693c7b415e9869157c711fe11263c95d74eDavid Li 17221591693c7b415e9869157c711fe11263c95d74eDavid Li static yy_state_type yy_get_previous_state (yyscan_t yyscanner) 17231591693c7b415e9869157c711fe11263c95d74eDavid Li{ 17241591693c7b415e9869157c711fe11263c95d74eDavid Li register yy_state_type yy_current_state; 17251591693c7b415e9869157c711fe11263c95d74eDavid Li register char *yy_cp; 17261591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 17271591693c7b415e9869157c711fe11263c95d74eDavid Li 17281591693c7b415e9869157c711fe11263c95d74eDavid Li yy_current_state = yyg->yy_start; 17291591693c7b415e9869157c711fe11263c95d74eDavid Li yy_current_state += YY_AT_BOL(); 17301591693c7b415e9869157c711fe11263c95d74eDavid Li 17311591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_state_ptr = yyg->yy_state_buf; 17321591693c7b415e9869157c711fe11263c95d74eDavid Li *yyg->yy_state_ptr++ = yy_current_state; 17331591693c7b415e9869157c711fe11263c95d74eDavid Li 17341591693c7b415e9869157c711fe11263c95d74eDavid Li for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) 17351591693c7b415e9869157c711fe11263c95d74eDavid Li { 17361591693c7b415e9869157c711fe11263c95d74eDavid Li register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); 17371591693c7b415e9869157c711fe11263c95d74eDavid Li while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 17381591693c7b415e9869157c711fe11263c95d74eDavid Li { 17391591693c7b415e9869157c711fe11263c95d74eDavid Li yy_current_state = (int) yy_def[yy_current_state]; 17401591693c7b415e9869157c711fe11263c95d74eDavid Li if ( yy_current_state >= 163 ) 17411591693c7b415e9869157c711fe11263c95d74eDavid Li yy_c = yy_meta[(unsigned int) yy_c]; 17421591693c7b415e9869157c711fe11263c95d74eDavid Li } 17431591693c7b415e9869157c711fe11263c95d74eDavid Li yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 17441591693c7b415e9869157c711fe11263c95d74eDavid Li *yyg->yy_state_ptr++ = yy_current_state; 17451591693c7b415e9869157c711fe11263c95d74eDavid Li } 17461591693c7b415e9869157c711fe11263c95d74eDavid Li 17471591693c7b415e9869157c711fe11263c95d74eDavid Li return yy_current_state; 17481591693c7b415e9869157c711fe11263c95d74eDavid Li} 17491591693c7b415e9869157c711fe11263c95d74eDavid Li 17501591693c7b415e9869157c711fe11263c95d74eDavid Li/* yy_try_NUL_trans - try to make a transition on the NUL character 17511591693c7b415e9869157c711fe11263c95d74eDavid Li * 17521591693c7b415e9869157c711fe11263c95d74eDavid Li * synopsis 17531591693c7b415e9869157c711fe11263c95d74eDavid Li * next_state = yy_try_NUL_trans( current_state ); 17541591693c7b415e9869157c711fe11263c95d74eDavid Li */ 17551591693c7b415e9869157c711fe11263c95d74eDavid Li static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner) 17561591693c7b415e9869157c711fe11263c95d74eDavid Li{ 17571591693c7b415e9869157c711fe11263c95d74eDavid Li register int yy_is_jam; 17581591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */ 17591591693c7b415e9869157c711fe11263c95d74eDavid Li 17601591693c7b415e9869157c711fe11263c95d74eDavid Li register YY_CHAR yy_c = 1; 17611591693c7b415e9869157c711fe11263c95d74eDavid Li while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 17621591693c7b415e9869157c711fe11263c95d74eDavid Li { 17631591693c7b415e9869157c711fe11263c95d74eDavid Li yy_current_state = (int) yy_def[yy_current_state]; 17641591693c7b415e9869157c711fe11263c95d74eDavid Li if ( yy_current_state >= 163 ) 17651591693c7b415e9869157c711fe11263c95d74eDavid Li yy_c = yy_meta[(unsigned int) yy_c]; 17661591693c7b415e9869157c711fe11263c95d74eDavid Li } 17671591693c7b415e9869157c711fe11263c95d74eDavid Li yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 17681591693c7b415e9869157c711fe11263c95d74eDavid Li yy_is_jam = (yy_current_state == 162); 17691591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! yy_is_jam ) 17701591693c7b415e9869157c711fe11263c95d74eDavid Li *yyg->yy_state_ptr++ = yy_current_state; 17711591693c7b415e9869157c711fe11263c95d74eDavid Li 17721591693c7b415e9869157c711fe11263c95d74eDavid Li return yy_is_jam ? 0 : yy_current_state; 17731591693c7b415e9869157c711fe11263c95d74eDavid Li} 17741591693c7b415e9869157c711fe11263c95d74eDavid Li 17751591693c7b415e9869157c711fe11263c95d74eDavid Li static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner) 17761591693c7b415e9869157c711fe11263c95d74eDavid Li{ 17771591693c7b415e9869157c711fe11263c95d74eDavid Li register char *yy_cp; 17781591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 17791591693c7b415e9869157c711fe11263c95d74eDavid Li 17801591693c7b415e9869157c711fe11263c95d74eDavid Li yy_cp = yyg->yy_c_buf_p; 17811591693c7b415e9869157c711fe11263c95d74eDavid Li 17821591693c7b415e9869157c711fe11263c95d74eDavid Li /* undo effects of setting up yytext */ 17831591693c7b415e9869157c711fe11263c95d74eDavid Li *yy_cp = yyg->yy_hold_char; 17841591693c7b415e9869157c711fe11263c95d74eDavid Li 17851591693c7b415e9869157c711fe11263c95d74eDavid Li if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) 17861591693c7b415e9869157c711fe11263c95d74eDavid Li { /* need to shift things up to make room */ 17871591693c7b415e9869157c711fe11263c95d74eDavid Li /* +2 for EOB chars. */ 17881591693c7b415e9869157c711fe11263c95d74eDavid Li register int number_to_move = yyg->yy_n_chars + 2; 17891591693c7b415e9869157c711fe11263c95d74eDavid Li register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ 17901591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; 17911591693c7b415e9869157c711fe11263c95d74eDavid Li register char *source = 17921591693c7b415e9869157c711fe11263c95d74eDavid Li &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; 17931591693c7b415e9869157c711fe11263c95d74eDavid Li 17941591693c7b415e9869157c711fe11263c95d74eDavid Li while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) 17951591693c7b415e9869157c711fe11263c95d74eDavid Li *--dest = *--source; 17961591693c7b415e9869157c711fe11263c95d74eDavid Li 17971591693c7b415e9869157c711fe11263c95d74eDavid Li yy_cp += (int) (dest - source); 17981591693c7b415e9869157c711fe11263c95d74eDavid Li yy_bp += (int) (dest - source); 17991591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE->yy_n_chars = 18001591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; 18011591693c7b415e9869157c711fe11263c95d74eDavid Li 18021591693c7b415e9869157c711fe11263c95d74eDavid Li if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) 18031591693c7b415e9869157c711fe11263c95d74eDavid Li YY_FATAL_ERROR( "flex scanner push-back overflow" ); 18041591693c7b415e9869157c711fe11263c95d74eDavid Li } 18051591693c7b415e9869157c711fe11263c95d74eDavid Li 18061591693c7b415e9869157c711fe11263c95d74eDavid Li *--yy_cp = (char) c; 18071591693c7b415e9869157c711fe11263c95d74eDavid Li 18081591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yytext_ptr = yy_bp; 18091591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_hold_char = *yy_cp; 18101591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_c_buf_p = yy_cp; 18111591693c7b415e9869157c711fe11263c95d74eDavid Li} 18121591693c7b415e9869157c711fe11263c95d74eDavid Li 18131591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_NO_INPUT 18141591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef __cplusplus 18151591693c7b415e9869157c711fe11263c95d74eDavid Li static int yyinput (yyscan_t yyscanner) 18161591693c7b415e9869157c711fe11263c95d74eDavid Li#else 18171591693c7b415e9869157c711fe11263c95d74eDavid Li static int input (yyscan_t yyscanner) 18181591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 18191591693c7b415e9869157c711fe11263c95d74eDavid Li 18201591693c7b415e9869157c711fe11263c95d74eDavid Li{ 18211591693c7b415e9869157c711fe11263c95d74eDavid Li int c; 18221591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 18231591693c7b415e9869157c711fe11263c95d74eDavid Li 18241591693c7b415e9869157c711fe11263c95d74eDavid Li *yyg->yy_c_buf_p = yyg->yy_hold_char; 18251591693c7b415e9869157c711fe11263c95d74eDavid Li 18261591693c7b415e9869157c711fe11263c95d74eDavid Li if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) 18271591693c7b415e9869157c711fe11263c95d74eDavid Li { 18281591693c7b415e9869157c711fe11263c95d74eDavid Li /* yy_c_buf_p now points to the character we want to return. 18291591693c7b415e9869157c711fe11263c95d74eDavid Li * If this occurs *before* the EOB characters, then it's a 18301591693c7b415e9869157c711fe11263c95d74eDavid Li * valid NUL; if not, then we've hit the end of the buffer. 18311591693c7b415e9869157c711fe11263c95d74eDavid Li */ 18321591693c7b415e9869157c711fe11263c95d74eDavid Li if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) 18331591693c7b415e9869157c711fe11263c95d74eDavid Li /* This was really a NUL. */ 18341591693c7b415e9869157c711fe11263c95d74eDavid Li *yyg->yy_c_buf_p = '\0'; 18351591693c7b415e9869157c711fe11263c95d74eDavid Li 18361591693c7b415e9869157c711fe11263c95d74eDavid Li else 18371591693c7b415e9869157c711fe11263c95d74eDavid Li { /* need more input */ 18381591693c7b415e9869157c711fe11263c95d74eDavid Li int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; 18391591693c7b415e9869157c711fe11263c95d74eDavid Li ++yyg->yy_c_buf_p; 18401591693c7b415e9869157c711fe11263c95d74eDavid Li 18411591693c7b415e9869157c711fe11263c95d74eDavid Li switch ( yy_get_next_buffer( yyscanner ) ) 18421591693c7b415e9869157c711fe11263c95d74eDavid Li { 18431591693c7b415e9869157c711fe11263c95d74eDavid Li case EOB_ACT_LAST_MATCH: 18441591693c7b415e9869157c711fe11263c95d74eDavid Li /* This happens because yy_g_n_b() 18451591693c7b415e9869157c711fe11263c95d74eDavid Li * sees that we've accumulated a 18461591693c7b415e9869157c711fe11263c95d74eDavid Li * token and flags that we need to 18471591693c7b415e9869157c711fe11263c95d74eDavid Li * try matching the token before 18481591693c7b415e9869157c711fe11263c95d74eDavid Li * proceeding. But for input(), 18491591693c7b415e9869157c711fe11263c95d74eDavid Li * there's no matching to consider. 18501591693c7b415e9869157c711fe11263c95d74eDavid Li * So convert the EOB_ACT_LAST_MATCH 18511591693c7b415e9869157c711fe11263c95d74eDavid Li * to EOB_ACT_END_OF_FILE. 18521591693c7b415e9869157c711fe11263c95d74eDavid Li */ 18531591693c7b415e9869157c711fe11263c95d74eDavid Li 18541591693c7b415e9869157c711fe11263c95d74eDavid Li /* Reset buffer status. */ 18551591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp_restart(yyin ,yyscanner); 18561591693c7b415e9869157c711fe11263c95d74eDavid Li 18571591693c7b415e9869157c711fe11263c95d74eDavid Li /*FALLTHROUGH*/ 18581591693c7b415e9869157c711fe11263c95d74eDavid Li 18591591693c7b415e9869157c711fe11263c95d74eDavid Li case EOB_ACT_END_OF_FILE: 18601591693c7b415e9869157c711fe11263c95d74eDavid Li { 18611591693c7b415e9869157c711fe11263c95d74eDavid Li if ( glcpp_wrap(yyscanner ) ) 18621591693c7b415e9869157c711fe11263c95d74eDavid Li return EOF; 18631591693c7b415e9869157c711fe11263c95d74eDavid Li 18641591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! yyg->yy_did_buffer_switch_on_eof ) 18651591693c7b415e9869157c711fe11263c95d74eDavid Li YY_NEW_FILE; 18661591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef __cplusplus 18671591693c7b415e9869157c711fe11263c95d74eDavid Li return yyinput(yyscanner); 18681591693c7b415e9869157c711fe11263c95d74eDavid Li#else 18691591693c7b415e9869157c711fe11263c95d74eDavid Li return input(yyscanner); 18701591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 18711591693c7b415e9869157c711fe11263c95d74eDavid Li } 18721591693c7b415e9869157c711fe11263c95d74eDavid Li 18731591693c7b415e9869157c711fe11263c95d74eDavid Li case EOB_ACT_CONTINUE_SCAN: 18741591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_c_buf_p = yyg->yytext_ptr + offset; 18751591693c7b415e9869157c711fe11263c95d74eDavid Li break; 18761591693c7b415e9869157c711fe11263c95d74eDavid Li } 18771591693c7b415e9869157c711fe11263c95d74eDavid Li } 18781591693c7b415e9869157c711fe11263c95d74eDavid Li } 18791591693c7b415e9869157c711fe11263c95d74eDavid Li 18801591693c7b415e9869157c711fe11263c95d74eDavid Li c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ 18811591693c7b415e9869157c711fe11263c95d74eDavid Li *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ 18821591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_hold_char = *++yyg->yy_c_buf_p; 18831591693c7b415e9869157c711fe11263c95d74eDavid Li 18841591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); 18851591693c7b415e9869157c711fe11263c95d74eDavid Li 18861591693c7b415e9869157c711fe11263c95d74eDavid Li return c; 18871591693c7b415e9869157c711fe11263c95d74eDavid Li} 18881591693c7b415e9869157c711fe11263c95d74eDavid Li#endif /* ifndef YY_NO_INPUT */ 18891591693c7b415e9869157c711fe11263c95d74eDavid Li 18901591693c7b415e9869157c711fe11263c95d74eDavid Li/** Immediately switch to a different input stream. 18911591693c7b415e9869157c711fe11263c95d74eDavid Li * @param input_file A readable stream. 18921591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 18931591693c7b415e9869157c711fe11263c95d74eDavid Li * @note This function does not reset the start condition to @c INITIAL . 18941591693c7b415e9869157c711fe11263c95d74eDavid Li */ 18951591693c7b415e9869157c711fe11263c95d74eDavid Li void glcpp_restart (FILE * input_file , yyscan_t yyscanner) 18961591693c7b415e9869157c711fe11263c95d74eDavid Li{ 18971591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 18981591693c7b415e9869157c711fe11263c95d74eDavid Li 18991591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! YY_CURRENT_BUFFER ){ 19001591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp_ensure_buffer_stack (yyscanner); 19011591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE = 19021591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); 19031591693c7b415e9869157c711fe11263c95d74eDavid Li } 19041591693c7b415e9869157c711fe11263c95d74eDavid Li 19051591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner); 19061591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp__load_buffer_state(yyscanner ); 19071591693c7b415e9869157c711fe11263c95d74eDavid Li} 19081591693c7b415e9869157c711fe11263c95d74eDavid Li 19091591693c7b415e9869157c711fe11263c95d74eDavid Li/** Switch to a different input buffer. 19101591693c7b415e9869157c711fe11263c95d74eDavid Li * @param new_buffer The new input buffer. 19111591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 19121591693c7b415e9869157c711fe11263c95d74eDavid Li */ 19131591693c7b415e9869157c711fe11263c95d74eDavid Li void glcpp__switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) 19141591693c7b415e9869157c711fe11263c95d74eDavid Li{ 19151591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 19161591693c7b415e9869157c711fe11263c95d74eDavid Li 19171591693c7b415e9869157c711fe11263c95d74eDavid Li /* TODO. We should be able to replace this entire function body 19181591693c7b415e9869157c711fe11263c95d74eDavid Li * with 19191591693c7b415e9869157c711fe11263c95d74eDavid Li * glcpp_pop_buffer_state(); 19201591693c7b415e9869157c711fe11263c95d74eDavid Li * glcpp_push_buffer_state(new_buffer); 19211591693c7b415e9869157c711fe11263c95d74eDavid Li */ 19221591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp_ensure_buffer_stack (yyscanner); 19231591693c7b415e9869157c711fe11263c95d74eDavid Li if ( YY_CURRENT_BUFFER == new_buffer ) 19241591693c7b415e9869157c711fe11263c95d74eDavid Li return; 19251591693c7b415e9869157c711fe11263c95d74eDavid Li 19261591693c7b415e9869157c711fe11263c95d74eDavid Li if ( YY_CURRENT_BUFFER ) 19271591693c7b415e9869157c711fe11263c95d74eDavid Li { 19281591693c7b415e9869157c711fe11263c95d74eDavid Li /* Flush out information for old buffer. */ 19291591693c7b415e9869157c711fe11263c95d74eDavid Li *yyg->yy_c_buf_p = yyg->yy_hold_char; 19301591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; 19311591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; 19321591693c7b415e9869157c711fe11263c95d74eDavid Li } 19331591693c7b415e9869157c711fe11263c95d74eDavid Li 19341591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE = new_buffer; 19351591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp__load_buffer_state(yyscanner ); 19361591693c7b415e9869157c711fe11263c95d74eDavid Li 19371591693c7b415e9869157c711fe11263c95d74eDavid Li /* We don't actually know whether we did this switch during 19381591693c7b415e9869157c711fe11263c95d74eDavid Li * EOF (glcpp_wrap()) processing, but the only time this flag 19391591693c7b415e9869157c711fe11263c95d74eDavid Li * is looked at is after glcpp_wrap() is called, so it's safe 19401591693c7b415e9869157c711fe11263c95d74eDavid Li * to go ahead and always set it. 19411591693c7b415e9869157c711fe11263c95d74eDavid Li */ 19421591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_did_buffer_switch_on_eof = 1; 19431591693c7b415e9869157c711fe11263c95d74eDavid Li} 19441591693c7b415e9869157c711fe11263c95d74eDavid Li 19451591693c7b415e9869157c711fe11263c95d74eDavid Listatic void glcpp__load_buffer_state (yyscan_t yyscanner) 19461591693c7b415e9869157c711fe11263c95d74eDavid Li{ 19471591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 19481591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 19491591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; 19501591693c7b415e9869157c711fe11263c95d74eDavid Li yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; 19511591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_hold_char = *yyg->yy_c_buf_p; 19521591693c7b415e9869157c711fe11263c95d74eDavid Li} 19531591693c7b415e9869157c711fe11263c95d74eDavid Li 19541591693c7b415e9869157c711fe11263c95d74eDavid Li/** Allocate and initialize an input buffer state. 19551591693c7b415e9869157c711fe11263c95d74eDavid Li * @param file A readable stream. 19561591693c7b415e9869157c711fe11263c95d74eDavid Li * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. 19571591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 19581591693c7b415e9869157c711fe11263c95d74eDavid Li * @return the allocated buffer state. 19591591693c7b415e9869157c711fe11263c95d74eDavid Li */ 19601591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BUFFER_STATE glcpp__create_buffer (FILE * file, int size , yyscan_t yyscanner) 19611591693c7b415e9869157c711fe11263c95d74eDavid Li{ 19621591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BUFFER_STATE b; 19631591693c7b415e9869157c711fe11263c95d74eDavid Li 19641591693c7b415e9869157c711fe11263c95d74eDavid Li b = (YY_BUFFER_STATE) glcpp_alloc(sizeof( struct yy_buffer_state ) ,yyscanner ); 19651591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! b ) 19661591693c7b415e9869157c711fe11263c95d74eDavid Li YY_FATAL_ERROR( "out of dynamic memory in glcpp__create_buffer()" ); 19671591693c7b415e9869157c711fe11263c95d74eDavid Li 19681591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_buf_size = size; 19691591693c7b415e9869157c711fe11263c95d74eDavid Li 19701591693c7b415e9869157c711fe11263c95d74eDavid Li /* yy_ch_buf has to be 2 characters longer than the size given because 19711591693c7b415e9869157c711fe11263c95d74eDavid Li * we need to put in 2 end-of-buffer characters. 19721591693c7b415e9869157c711fe11263c95d74eDavid Li */ 19731591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_ch_buf = (char *) glcpp_alloc(b->yy_buf_size + 2 ,yyscanner ); 19741591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! b->yy_ch_buf ) 19751591693c7b415e9869157c711fe11263c95d74eDavid Li YY_FATAL_ERROR( "out of dynamic memory in glcpp__create_buffer()" ); 19761591693c7b415e9869157c711fe11263c95d74eDavid Li 19771591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_is_our_buffer = 1; 19781591693c7b415e9869157c711fe11263c95d74eDavid Li 19791591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp__init_buffer(b,file ,yyscanner); 19801591693c7b415e9869157c711fe11263c95d74eDavid Li 19811591693c7b415e9869157c711fe11263c95d74eDavid Li return b; 19821591693c7b415e9869157c711fe11263c95d74eDavid Li} 19831591693c7b415e9869157c711fe11263c95d74eDavid Li 19841591693c7b415e9869157c711fe11263c95d74eDavid Li/** Destroy the buffer. 19851591693c7b415e9869157c711fe11263c95d74eDavid Li * @param b a buffer created with glcpp__create_buffer() 19861591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 19871591693c7b415e9869157c711fe11263c95d74eDavid Li */ 19881591693c7b415e9869157c711fe11263c95d74eDavid Li void glcpp__delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) 19891591693c7b415e9869157c711fe11263c95d74eDavid Li{ 19901591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 19911591693c7b415e9869157c711fe11263c95d74eDavid Li 19921591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! b ) 19931591693c7b415e9869157c711fe11263c95d74eDavid Li return; 19941591693c7b415e9869157c711fe11263c95d74eDavid Li 19951591693c7b415e9869157c711fe11263c95d74eDavid Li if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ 19961591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; 19971591693c7b415e9869157c711fe11263c95d74eDavid Li 19981591693c7b415e9869157c711fe11263c95d74eDavid Li if ( b->yy_is_our_buffer ) 19991591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp_free((void *) b->yy_ch_buf ,yyscanner ); 20001591693c7b415e9869157c711fe11263c95d74eDavid Li 20011591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp_free((void *) b ,yyscanner ); 20021591693c7b415e9869157c711fe11263c95d74eDavid Li} 20031591693c7b415e9869157c711fe11263c95d74eDavid Li 20041591693c7b415e9869157c711fe11263c95d74eDavid Li/* Initializes or reinitializes a buffer. 20051591693c7b415e9869157c711fe11263c95d74eDavid Li * This function is sometimes called more than once on the same buffer, 20061591693c7b415e9869157c711fe11263c95d74eDavid Li * such as during a glcpp_restart() or at EOF. 20071591693c7b415e9869157c711fe11263c95d74eDavid Li */ 20081591693c7b415e9869157c711fe11263c95d74eDavid Li static void glcpp__init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner) 20091591693c7b415e9869157c711fe11263c95d74eDavid Li 20101591693c7b415e9869157c711fe11263c95d74eDavid Li{ 20111591693c7b415e9869157c711fe11263c95d74eDavid Li int oerrno = errno; 20121591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 20131591693c7b415e9869157c711fe11263c95d74eDavid Li 20141591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp__flush_buffer(b ,yyscanner); 20151591693c7b415e9869157c711fe11263c95d74eDavid Li 20161591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_input_file = file; 20171591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_fill_buffer = 1; 20181591693c7b415e9869157c711fe11263c95d74eDavid Li 20191591693c7b415e9869157c711fe11263c95d74eDavid Li /* If b is the current buffer, then glcpp__init_buffer was _probably_ 20201591693c7b415e9869157c711fe11263c95d74eDavid Li * called from glcpp_restart() or through yy_get_next_buffer. 20211591693c7b415e9869157c711fe11263c95d74eDavid Li * In that case, we don't want to reset the lineno or column. 20221591693c7b415e9869157c711fe11263c95d74eDavid Li */ 20231591693c7b415e9869157c711fe11263c95d74eDavid Li if (b != YY_CURRENT_BUFFER){ 20241591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_bs_lineno = 1; 20251591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_bs_column = 0; 20261591693c7b415e9869157c711fe11263c95d74eDavid Li } 20271591693c7b415e9869157c711fe11263c95d74eDavid Li 20281591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_is_interactive = 0; 20291591693c7b415e9869157c711fe11263c95d74eDavid Li 20301591693c7b415e9869157c711fe11263c95d74eDavid Li errno = oerrno; 20311591693c7b415e9869157c711fe11263c95d74eDavid Li} 20321591693c7b415e9869157c711fe11263c95d74eDavid Li 20331591693c7b415e9869157c711fe11263c95d74eDavid Li/** Discard all buffered characters. On the next scan, YY_INPUT will be called. 20341591693c7b415e9869157c711fe11263c95d74eDavid Li * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. 20351591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 20361591693c7b415e9869157c711fe11263c95d74eDavid Li */ 20371591693c7b415e9869157c711fe11263c95d74eDavid Li void glcpp__flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) 20381591693c7b415e9869157c711fe11263c95d74eDavid Li{ 20391591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 20401591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! b ) 20411591693c7b415e9869157c711fe11263c95d74eDavid Li return; 20421591693c7b415e9869157c711fe11263c95d74eDavid Li 20431591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_n_chars = 0; 20441591693c7b415e9869157c711fe11263c95d74eDavid Li 20451591693c7b415e9869157c711fe11263c95d74eDavid Li /* We always need two end-of-buffer characters. The first causes 20461591693c7b415e9869157c711fe11263c95d74eDavid Li * a transition to the end-of-buffer state. The second causes 20471591693c7b415e9869157c711fe11263c95d74eDavid Li * a jam in that state. 20481591693c7b415e9869157c711fe11263c95d74eDavid Li */ 20491591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; 20501591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; 20511591693c7b415e9869157c711fe11263c95d74eDavid Li 20521591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_buf_pos = &b->yy_ch_buf[0]; 20531591693c7b415e9869157c711fe11263c95d74eDavid Li 20541591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_at_bol = 1; 20551591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_buffer_status = YY_BUFFER_NEW; 20561591693c7b415e9869157c711fe11263c95d74eDavid Li 20571591693c7b415e9869157c711fe11263c95d74eDavid Li if ( b == YY_CURRENT_BUFFER ) 20581591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp__load_buffer_state(yyscanner ); 20591591693c7b415e9869157c711fe11263c95d74eDavid Li} 20601591693c7b415e9869157c711fe11263c95d74eDavid Li 20611591693c7b415e9869157c711fe11263c95d74eDavid Li/** Pushes the new state onto the stack. The new state becomes 20621591693c7b415e9869157c711fe11263c95d74eDavid Li * the current state. This function will allocate the stack 20631591693c7b415e9869157c711fe11263c95d74eDavid Li * if necessary. 20641591693c7b415e9869157c711fe11263c95d74eDavid Li * @param new_buffer The new state. 20651591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 20661591693c7b415e9869157c711fe11263c95d74eDavid Li */ 20671591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) 20681591693c7b415e9869157c711fe11263c95d74eDavid Li{ 20691591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 20701591693c7b415e9869157c711fe11263c95d74eDavid Li if (new_buffer == NULL) 20711591693c7b415e9869157c711fe11263c95d74eDavid Li return; 20721591693c7b415e9869157c711fe11263c95d74eDavid Li 20731591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp_ensure_buffer_stack(yyscanner); 20741591693c7b415e9869157c711fe11263c95d74eDavid Li 20751591693c7b415e9869157c711fe11263c95d74eDavid Li /* This block is copied from glcpp__switch_to_buffer. */ 20761591693c7b415e9869157c711fe11263c95d74eDavid Li if ( YY_CURRENT_BUFFER ) 20771591693c7b415e9869157c711fe11263c95d74eDavid Li { 20781591693c7b415e9869157c711fe11263c95d74eDavid Li /* Flush out information for old buffer. */ 20791591693c7b415e9869157c711fe11263c95d74eDavid Li *yyg->yy_c_buf_p = yyg->yy_hold_char; 20801591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; 20811591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; 20821591693c7b415e9869157c711fe11263c95d74eDavid Li } 20831591693c7b415e9869157c711fe11263c95d74eDavid Li 20841591693c7b415e9869157c711fe11263c95d74eDavid Li /* Only push if top exists. Otherwise, replace top. */ 20851591693c7b415e9869157c711fe11263c95d74eDavid Li if (YY_CURRENT_BUFFER) 20861591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_buffer_stack_top++; 20871591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE = new_buffer; 20881591693c7b415e9869157c711fe11263c95d74eDavid Li 20891591693c7b415e9869157c711fe11263c95d74eDavid Li /* copied from glcpp__switch_to_buffer. */ 20901591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp__load_buffer_state(yyscanner ); 20911591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_did_buffer_switch_on_eof = 1; 20921591693c7b415e9869157c711fe11263c95d74eDavid Li} 20931591693c7b415e9869157c711fe11263c95d74eDavid Li 20941591693c7b415e9869157c711fe11263c95d74eDavid Li/** Removes and deletes the top of the stack, if present. 20951591693c7b415e9869157c711fe11263c95d74eDavid Li * The next element becomes the new top. 20961591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 20971591693c7b415e9869157c711fe11263c95d74eDavid Li */ 20981591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_pop_buffer_state (yyscan_t yyscanner) 20991591693c7b415e9869157c711fe11263c95d74eDavid Li{ 21001591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 21011591693c7b415e9869157c711fe11263c95d74eDavid Li if (!YY_CURRENT_BUFFER) 21021591693c7b415e9869157c711fe11263c95d74eDavid Li return; 21031591693c7b415e9869157c711fe11263c95d74eDavid Li 21041591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp__delete_buffer(YY_CURRENT_BUFFER ,yyscanner); 21051591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE = NULL; 21061591693c7b415e9869157c711fe11263c95d74eDavid Li if (yyg->yy_buffer_stack_top > 0) 21071591693c7b415e9869157c711fe11263c95d74eDavid Li --yyg->yy_buffer_stack_top; 21081591693c7b415e9869157c711fe11263c95d74eDavid Li 21091591693c7b415e9869157c711fe11263c95d74eDavid Li if (YY_CURRENT_BUFFER) { 21101591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp__load_buffer_state(yyscanner ); 21111591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_did_buffer_switch_on_eof = 1; 21121591693c7b415e9869157c711fe11263c95d74eDavid Li } 21131591693c7b415e9869157c711fe11263c95d74eDavid Li} 21141591693c7b415e9869157c711fe11263c95d74eDavid Li 21151591693c7b415e9869157c711fe11263c95d74eDavid Li/* Allocates the stack if it does not exist. 21161591693c7b415e9869157c711fe11263c95d74eDavid Li * Guarantees space for at least one push. 21171591693c7b415e9869157c711fe11263c95d74eDavid Li */ 21181591693c7b415e9869157c711fe11263c95d74eDavid Listatic void glcpp_ensure_buffer_stack (yyscan_t yyscanner) 21191591693c7b415e9869157c711fe11263c95d74eDavid Li{ 21201591693c7b415e9869157c711fe11263c95d74eDavid Li int num_to_alloc; 21211591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 21221591693c7b415e9869157c711fe11263c95d74eDavid Li 21231591693c7b415e9869157c711fe11263c95d74eDavid Li if (!yyg->yy_buffer_stack) { 21241591693c7b415e9869157c711fe11263c95d74eDavid Li 21251591693c7b415e9869157c711fe11263c95d74eDavid Li /* First allocation is just for 2 elements, since we don't know if this 21261591693c7b415e9869157c711fe11263c95d74eDavid Li * scanner will even need a stack. We use 2 instead of 1 to avoid an 21271591693c7b415e9869157c711fe11263c95d74eDavid Li * immediate realloc on the next call. 21281591693c7b415e9869157c711fe11263c95d74eDavid Li */ 21291591693c7b415e9869157c711fe11263c95d74eDavid Li num_to_alloc = 1; 21301591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_buffer_stack = (struct yy_buffer_state**)glcpp_alloc 21311591693c7b415e9869157c711fe11263c95d74eDavid Li (num_to_alloc * sizeof(struct yy_buffer_state*) 21321591693c7b415e9869157c711fe11263c95d74eDavid Li , yyscanner); 21331591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! yyg->yy_buffer_stack ) 21341591693c7b415e9869157c711fe11263c95d74eDavid Li YY_FATAL_ERROR( "out of dynamic memory in glcpp_ensure_buffer_stack()" ); 21351591693c7b415e9869157c711fe11263c95d74eDavid Li 21361591693c7b415e9869157c711fe11263c95d74eDavid Li memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*)); 21371591693c7b415e9869157c711fe11263c95d74eDavid Li 21381591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_buffer_stack_max = num_to_alloc; 21391591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_buffer_stack_top = 0; 21401591693c7b415e9869157c711fe11263c95d74eDavid Li return; 21411591693c7b415e9869157c711fe11263c95d74eDavid Li } 21421591693c7b415e9869157c711fe11263c95d74eDavid Li 21431591693c7b415e9869157c711fe11263c95d74eDavid Li if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){ 21441591693c7b415e9869157c711fe11263c95d74eDavid Li 21451591693c7b415e9869157c711fe11263c95d74eDavid Li /* Increase the buffer to prepare for a possible push. */ 21461591693c7b415e9869157c711fe11263c95d74eDavid Li int grow_size = 8 /* arbitrary grow size */; 21471591693c7b415e9869157c711fe11263c95d74eDavid Li 21481591693c7b415e9869157c711fe11263c95d74eDavid Li num_to_alloc = yyg->yy_buffer_stack_max + grow_size; 21491591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_buffer_stack = (struct yy_buffer_state**)glcpp_realloc 21501591693c7b415e9869157c711fe11263c95d74eDavid Li (yyg->yy_buffer_stack, 21511591693c7b415e9869157c711fe11263c95d74eDavid Li num_to_alloc * sizeof(struct yy_buffer_state*) 21521591693c7b415e9869157c711fe11263c95d74eDavid Li , yyscanner); 21531591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! yyg->yy_buffer_stack ) 21541591693c7b415e9869157c711fe11263c95d74eDavid Li YY_FATAL_ERROR( "out of dynamic memory in glcpp_ensure_buffer_stack()" ); 21551591693c7b415e9869157c711fe11263c95d74eDavid Li 21561591693c7b415e9869157c711fe11263c95d74eDavid Li /* zero only the new slots.*/ 21571591693c7b415e9869157c711fe11263c95d74eDavid Li memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*)); 21581591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_buffer_stack_max = num_to_alloc; 21591591693c7b415e9869157c711fe11263c95d74eDavid Li } 21601591693c7b415e9869157c711fe11263c95d74eDavid Li} 21611591693c7b415e9869157c711fe11263c95d74eDavid Li 21621591693c7b415e9869157c711fe11263c95d74eDavid Li/** Setup the input buffer state to scan directly from a user-specified character buffer. 21631591693c7b415e9869157c711fe11263c95d74eDavid Li * @param base the character buffer 21641591693c7b415e9869157c711fe11263c95d74eDavid Li * @param size the size in bytes of the character buffer 21651591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 21661591693c7b415e9869157c711fe11263c95d74eDavid Li * @return the newly allocated buffer state object. 21671591693c7b415e9869157c711fe11263c95d74eDavid Li */ 21681591693c7b415e9869157c711fe11263c95d74eDavid LiYY_BUFFER_STATE glcpp__scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner) 21691591693c7b415e9869157c711fe11263c95d74eDavid Li{ 21701591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BUFFER_STATE b; 21711591693c7b415e9869157c711fe11263c95d74eDavid Li 21721591693c7b415e9869157c711fe11263c95d74eDavid Li if ( size < 2 || 21731591693c7b415e9869157c711fe11263c95d74eDavid Li base[size-2] != YY_END_OF_BUFFER_CHAR || 21741591693c7b415e9869157c711fe11263c95d74eDavid Li base[size-1] != YY_END_OF_BUFFER_CHAR ) 21751591693c7b415e9869157c711fe11263c95d74eDavid Li /* They forgot to leave room for the EOB's. */ 21761591693c7b415e9869157c711fe11263c95d74eDavid Li return 0; 21771591693c7b415e9869157c711fe11263c95d74eDavid Li 21781591693c7b415e9869157c711fe11263c95d74eDavid Li b = (YY_BUFFER_STATE) glcpp_alloc(sizeof( struct yy_buffer_state ) ,yyscanner ); 21791591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! b ) 21801591693c7b415e9869157c711fe11263c95d74eDavid Li YY_FATAL_ERROR( "out of dynamic memory in glcpp__scan_buffer()" ); 21811591693c7b415e9869157c711fe11263c95d74eDavid Li 21821591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ 21831591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_buf_pos = b->yy_ch_buf = base; 21841591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_is_our_buffer = 0; 21851591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_input_file = 0; 21861591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_n_chars = b->yy_buf_size; 21871591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_is_interactive = 0; 21881591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_at_bol = 1; 21891591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_fill_buffer = 0; 21901591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_buffer_status = YY_BUFFER_NEW; 21911591693c7b415e9869157c711fe11263c95d74eDavid Li 21921591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp__switch_to_buffer(b ,yyscanner ); 21931591693c7b415e9869157c711fe11263c95d74eDavid Li 21941591693c7b415e9869157c711fe11263c95d74eDavid Li return b; 21951591693c7b415e9869157c711fe11263c95d74eDavid Li} 21961591693c7b415e9869157c711fe11263c95d74eDavid Li 21971591693c7b415e9869157c711fe11263c95d74eDavid Li/** Setup the input buffer state to scan a string. The next call to glcpp_lex() will 21981591693c7b415e9869157c711fe11263c95d74eDavid Li * scan from a @e copy of @a str. 21991591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yystr a NUL-terminated string to scan 22001591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 22011591693c7b415e9869157c711fe11263c95d74eDavid Li * @return the newly allocated buffer state object. 22021591693c7b415e9869157c711fe11263c95d74eDavid Li * @note If you want to scan bytes that may contain NUL values, then use 22031591693c7b415e9869157c711fe11263c95d74eDavid Li * glcpp__scan_bytes() instead. 22041591693c7b415e9869157c711fe11263c95d74eDavid Li */ 22051591693c7b415e9869157c711fe11263c95d74eDavid LiYY_BUFFER_STATE glcpp__scan_string (yyconst char * yystr , yyscan_t yyscanner) 22061591693c7b415e9869157c711fe11263c95d74eDavid Li{ 22071591693c7b415e9869157c711fe11263c95d74eDavid Li 22081591693c7b415e9869157c711fe11263c95d74eDavid Li return glcpp__scan_bytes(yystr,strlen(yystr) ,yyscanner); 22091591693c7b415e9869157c711fe11263c95d74eDavid Li} 22101591693c7b415e9869157c711fe11263c95d74eDavid Li 22111591693c7b415e9869157c711fe11263c95d74eDavid Li/** Setup the input buffer state to scan the given bytes. The next call to glcpp_lex() will 22121591693c7b415e9869157c711fe11263c95d74eDavid Li * scan from a @e copy of @a bytes. 22131591693c7b415e9869157c711fe11263c95d74eDavid Li * @param bytes the byte buffer to scan 22141591693c7b415e9869157c711fe11263c95d74eDavid Li * @param len the number of bytes in the buffer pointed to by @a bytes. 22151591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 22161591693c7b415e9869157c711fe11263c95d74eDavid Li * @return the newly allocated buffer state object. 22171591693c7b415e9869157c711fe11263c95d74eDavid Li */ 22181591693c7b415e9869157c711fe11263c95d74eDavid LiYY_BUFFER_STATE glcpp__scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner) 22191591693c7b415e9869157c711fe11263c95d74eDavid Li{ 22201591693c7b415e9869157c711fe11263c95d74eDavid Li YY_BUFFER_STATE b; 22211591693c7b415e9869157c711fe11263c95d74eDavid Li char *buf; 22221591693c7b415e9869157c711fe11263c95d74eDavid Li yy_size_t n; 22231591693c7b415e9869157c711fe11263c95d74eDavid Li int i; 22241591693c7b415e9869157c711fe11263c95d74eDavid Li 22251591693c7b415e9869157c711fe11263c95d74eDavid Li /* Get memory for full buffer, including space for trailing EOB's. */ 22261591693c7b415e9869157c711fe11263c95d74eDavid Li n = _yybytes_len + 2; 22271591693c7b415e9869157c711fe11263c95d74eDavid Li buf = (char *) glcpp_alloc(n ,yyscanner ); 22281591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! buf ) 22291591693c7b415e9869157c711fe11263c95d74eDavid Li YY_FATAL_ERROR( "out of dynamic memory in glcpp__scan_bytes()" ); 22301591693c7b415e9869157c711fe11263c95d74eDavid Li 22311591693c7b415e9869157c711fe11263c95d74eDavid Li for ( i = 0; i < _yybytes_len; ++i ) 22321591693c7b415e9869157c711fe11263c95d74eDavid Li buf[i] = yybytes[i]; 22331591693c7b415e9869157c711fe11263c95d74eDavid Li 22341591693c7b415e9869157c711fe11263c95d74eDavid Li buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; 22351591693c7b415e9869157c711fe11263c95d74eDavid Li 22361591693c7b415e9869157c711fe11263c95d74eDavid Li b = glcpp__scan_buffer(buf,n ,yyscanner); 22371591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! b ) 22381591693c7b415e9869157c711fe11263c95d74eDavid Li YY_FATAL_ERROR( "bad buffer in glcpp__scan_bytes()" ); 22391591693c7b415e9869157c711fe11263c95d74eDavid Li 22401591693c7b415e9869157c711fe11263c95d74eDavid Li /* It's okay to grow etc. this buffer, and we should throw it 22411591693c7b415e9869157c711fe11263c95d74eDavid Li * away when we're done. 22421591693c7b415e9869157c711fe11263c95d74eDavid Li */ 22431591693c7b415e9869157c711fe11263c95d74eDavid Li b->yy_is_our_buffer = 1; 22441591693c7b415e9869157c711fe11263c95d74eDavid Li 22451591693c7b415e9869157c711fe11263c95d74eDavid Li return b; 22461591693c7b415e9869157c711fe11263c95d74eDavid Li} 22471591693c7b415e9869157c711fe11263c95d74eDavid Li 22481591693c7b415e9869157c711fe11263c95d74eDavid Li static void yy_push_state (int new_state , yyscan_t yyscanner) 22491591693c7b415e9869157c711fe11263c95d74eDavid Li{ 22501591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 22511591693c7b415e9869157c711fe11263c95d74eDavid Li if ( yyg->yy_start_stack_ptr >= yyg->yy_start_stack_depth ) 22521591693c7b415e9869157c711fe11263c95d74eDavid Li { 22531591693c7b415e9869157c711fe11263c95d74eDavid Li yy_size_t new_size; 22541591693c7b415e9869157c711fe11263c95d74eDavid Li 22551591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_start_stack_depth += YY_START_STACK_INCR; 22561591693c7b415e9869157c711fe11263c95d74eDavid Li new_size = yyg->yy_start_stack_depth * sizeof( int ); 22571591693c7b415e9869157c711fe11263c95d74eDavid Li 22581591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! yyg->yy_start_stack ) 22591591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_start_stack = (int *) glcpp_alloc(new_size ,yyscanner ); 22601591693c7b415e9869157c711fe11263c95d74eDavid Li 22611591693c7b415e9869157c711fe11263c95d74eDavid Li else 22621591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_start_stack = (int *) glcpp_realloc((void *) yyg->yy_start_stack,new_size ,yyscanner ); 22631591693c7b415e9869157c711fe11263c95d74eDavid Li 22641591693c7b415e9869157c711fe11263c95d74eDavid Li if ( ! yyg->yy_start_stack ) 22651591693c7b415e9869157c711fe11263c95d74eDavid Li YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); 22661591693c7b415e9869157c711fe11263c95d74eDavid Li } 22671591693c7b415e9869157c711fe11263c95d74eDavid Li 22681591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_start_stack[yyg->yy_start_stack_ptr++] = YY_START; 22691591693c7b415e9869157c711fe11263c95d74eDavid Li 22701591693c7b415e9869157c711fe11263c95d74eDavid Li BEGIN(new_state); 22711591693c7b415e9869157c711fe11263c95d74eDavid Li} 22721591693c7b415e9869157c711fe11263c95d74eDavid Li 22731591693c7b415e9869157c711fe11263c95d74eDavid Li static void yy_pop_state (yyscan_t yyscanner) 22741591693c7b415e9869157c711fe11263c95d74eDavid Li{ 22751591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 22761591693c7b415e9869157c711fe11263c95d74eDavid Li if ( --yyg->yy_start_stack_ptr < 0 ) 22771591693c7b415e9869157c711fe11263c95d74eDavid Li YY_FATAL_ERROR( "start-condition stack underflow" ); 22781591693c7b415e9869157c711fe11263c95d74eDavid Li 22791591693c7b415e9869157c711fe11263c95d74eDavid Li BEGIN(yyg->yy_start_stack[yyg->yy_start_stack_ptr]); 22801591693c7b415e9869157c711fe11263c95d74eDavid Li} 22811591693c7b415e9869157c711fe11263c95d74eDavid Li 22821591693c7b415e9869157c711fe11263c95d74eDavid Li static int yy_top_state (yyscan_t yyscanner) 22831591693c7b415e9869157c711fe11263c95d74eDavid Li{ 22841591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 22851591693c7b415e9869157c711fe11263c95d74eDavid Li return yyg->yy_start_stack[yyg->yy_start_stack_ptr - 1]; 22861591693c7b415e9869157c711fe11263c95d74eDavid Li} 22871591693c7b415e9869157c711fe11263c95d74eDavid Li 22881591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef YY_EXIT_FAILURE 22891591693c7b415e9869157c711fe11263c95d74eDavid Li#define YY_EXIT_FAILURE 2 22901591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 22911591693c7b415e9869157c711fe11263c95d74eDavid Li 22921591693c7b415e9869157c711fe11263c95d74eDavid Listatic void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner) 22931591693c7b415e9869157c711fe11263c95d74eDavid Li{ 22941591693c7b415e9869157c711fe11263c95d74eDavid Li (void) fprintf( stderr, "%s\n", msg ); 22951591693c7b415e9869157c711fe11263c95d74eDavid Li exit( YY_EXIT_FAILURE ); 22961591693c7b415e9869157c711fe11263c95d74eDavid Li} 22971591693c7b415e9869157c711fe11263c95d74eDavid Li 22981591693c7b415e9869157c711fe11263c95d74eDavid Li/* Redefine yyless() so it works in section 3 code. */ 22991591693c7b415e9869157c711fe11263c95d74eDavid Li 23001591693c7b415e9869157c711fe11263c95d74eDavid Li#undef yyless 23011591693c7b415e9869157c711fe11263c95d74eDavid Li#define yyless(n) \ 23021591693c7b415e9869157c711fe11263c95d74eDavid Li do \ 23031591693c7b415e9869157c711fe11263c95d74eDavid Li { \ 23041591693c7b415e9869157c711fe11263c95d74eDavid Li /* Undo effects of setting up yytext. */ \ 23051591693c7b415e9869157c711fe11263c95d74eDavid Li int yyless_macro_arg = (n); \ 23061591693c7b415e9869157c711fe11263c95d74eDavid Li YY_LESS_LINENO(yyless_macro_arg);\ 23071591693c7b415e9869157c711fe11263c95d74eDavid Li yytext[yyleng] = yyg->yy_hold_char; \ 23081591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ 23091591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_hold_char = *yyg->yy_c_buf_p; \ 23101591693c7b415e9869157c711fe11263c95d74eDavid Li *yyg->yy_c_buf_p = '\0'; \ 23111591693c7b415e9869157c711fe11263c95d74eDavid Li yyleng = yyless_macro_arg; \ 23121591693c7b415e9869157c711fe11263c95d74eDavid Li } \ 23131591693c7b415e9869157c711fe11263c95d74eDavid Li while ( 0 ) 23141591693c7b415e9869157c711fe11263c95d74eDavid Li 23151591693c7b415e9869157c711fe11263c95d74eDavid Li/* Accessor methods (get/set functions) to struct members. */ 23161591693c7b415e9869157c711fe11263c95d74eDavid Li 23171591693c7b415e9869157c711fe11263c95d74eDavid Li/** Get the user-defined data for this scanner. 23181591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 23191591693c7b415e9869157c711fe11263c95d74eDavid Li */ 23201591693c7b415e9869157c711fe11263c95d74eDavid LiYY_EXTRA_TYPE glcpp_get_extra (yyscan_t yyscanner) 23211591693c7b415e9869157c711fe11263c95d74eDavid Li{ 23221591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 23231591693c7b415e9869157c711fe11263c95d74eDavid Li return yyextra; 23241591693c7b415e9869157c711fe11263c95d74eDavid Li} 23251591693c7b415e9869157c711fe11263c95d74eDavid Li 23261591693c7b415e9869157c711fe11263c95d74eDavid Li/** Get the current line number. 23271591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 23281591693c7b415e9869157c711fe11263c95d74eDavid Li */ 23291591693c7b415e9869157c711fe11263c95d74eDavid Liint glcpp_get_lineno (yyscan_t yyscanner) 23301591693c7b415e9869157c711fe11263c95d74eDavid Li{ 23311591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 23321591693c7b415e9869157c711fe11263c95d74eDavid Li 23331591693c7b415e9869157c711fe11263c95d74eDavid Li if (! YY_CURRENT_BUFFER) 23341591693c7b415e9869157c711fe11263c95d74eDavid Li return 0; 23351591693c7b415e9869157c711fe11263c95d74eDavid Li 23361591693c7b415e9869157c711fe11263c95d74eDavid Li return yylineno; 23371591693c7b415e9869157c711fe11263c95d74eDavid Li} 23381591693c7b415e9869157c711fe11263c95d74eDavid Li 23391591693c7b415e9869157c711fe11263c95d74eDavid Li/** Get the current column number. 23401591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 23411591693c7b415e9869157c711fe11263c95d74eDavid Li */ 23421591693c7b415e9869157c711fe11263c95d74eDavid Liint glcpp_get_column (yyscan_t yyscanner) 23431591693c7b415e9869157c711fe11263c95d74eDavid Li{ 23441591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 23451591693c7b415e9869157c711fe11263c95d74eDavid Li 23461591693c7b415e9869157c711fe11263c95d74eDavid Li if (! YY_CURRENT_BUFFER) 23471591693c7b415e9869157c711fe11263c95d74eDavid Li return 0; 23481591693c7b415e9869157c711fe11263c95d74eDavid Li 23491591693c7b415e9869157c711fe11263c95d74eDavid Li return yycolumn; 23501591693c7b415e9869157c711fe11263c95d74eDavid Li} 23511591693c7b415e9869157c711fe11263c95d74eDavid Li 23521591693c7b415e9869157c711fe11263c95d74eDavid Li/** Get the input stream. 23531591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 23541591693c7b415e9869157c711fe11263c95d74eDavid Li */ 23551591693c7b415e9869157c711fe11263c95d74eDavid LiFILE *glcpp_get_in (yyscan_t yyscanner) 23561591693c7b415e9869157c711fe11263c95d74eDavid Li{ 23571591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 23581591693c7b415e9869157c711fe11263c95d74eDavid Li return yyin; 23591591693c7b415e9869157c711fe11263c95d74eDavid Li} 23601591693c7b415e9869157c711fe11263c95d74eDavid Li 23611591693c7b415e9869157c711fe11263c95d74eDavid Li/** Get the output stream. 23621591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 23631591693c7b415e9869157c711fe11263c95d74eDavid Li */ 23641591693c7b415e9869157c711fe11263c95d74eDavid LiFILE *glcpp_get_out (yyscan_t yyscanner) 23651591693c7b415e9869157c711fe11263c95d74eDavid Li{ 23661591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 23671591693c7b415e9869157c711fe11263c95d74eDavid Li return yyout; 23681591693c7b415e9869157c711fe11263c95d74eDavid Li} 23691591693c7b415e9869157c711fe11263c95d74eDavid Li 23701591693c7b415e9869157c711fe11263c95d74eDavid Li/** Get the length of the current token. 23711591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 23721591693c7b415e9869157c711fe11263c95d74eDavid Li */ 23731591693c7b415e9869157c711fe11263c95d74eDavid Liint glcpp_get_leng (yyscan_t yyscanner) 23741591693c7b415e9869157c711fe11263c95d74eDavid Li{ 23751591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 23761591693c7b415e9869157c711fe11263c95d74eDavid Li return yyleng; 23771591693c7b415e9869157c711fe11263c95d74eDavid Li} 23781591693c7b415e9869157c711fe11263c95d74eDavid Li 23791591693c7b415e9869157c711fe11263c95d74eDavid Li/** Get the current token. 23801591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 23811591693c7b415e9869157c711fe11263c95d74eDavid Li */ 23821591693c7b415e9869157c711fe11263c95d74eDavid Li 23831591693c7b415e9869157c711fe11263c95d74eDavid Lichar *glcpp_get_text (yyscan_t yyscanner) 23841591693c7b415e9869157c711fe11263c95d74eDavid Li{ 23851591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 23861591693c7b415e9869157c711fe11263c95d74eDavid Li return yytext; 23871591693c7b415e9869157c711fe11263c95d74eDavid Li} 23881591693c7b415e9869157c711fe11263c95d74eDavid Li 23891591693c7b415e9869157c711fe11263c95d74eDavid Li/** Set the user-defined data. This data is never touched by the scanner. 23901591693c7b415e9869157c711fe11263c95d74eDavid Li * @param user_defined The data to be associated with this scanner. 23911591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 23921591693c7b415e9869157c711fe11263c95d74eDavid Li */ 23931591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_set_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) 23941591693c7b415e9869157c711fe11263c95d74eDavid Li{ 23951591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 23961591693c7b415e9869157c711fe11263c95d74eDavid Li yyextra = user_defined ; 23971591693c7b415e9869157c711fe11263c95d74eDavid Li} 23981591693c7b415e9869157c711fe11263c95d74eDavid Li 23991591693c7b415e9869157c711fe11263c95d74eDavid Li/** Set the current line number. 24001591693c7b415e9869157c711fe11263c95d74eDavid Li * @param line_number 24011591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 24021591693c7b415e9869157c711fe11263c95d74eDavid Li */ 24031591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_set_lineno (int line_number , yyscan_t yyscanner) 24041591693c7b415e9869157c711fe11263c95d74eDavid Li{ 24051591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 24061591693c7b415e9869157c711fe11263c95d74eDavid Li 24071591693c7b415e9869157c711fe11263c95d74eDavid Li /* lineno is only valid if an input buffer exists. */ 24081591693c7b415e9869157c711fe11263c95d74eDavid Li if (! YY_CURRENT_BUFFER ) 24091591693c7b415e9869157c711fe11263c95d74eDavid Li yy_fatal_error( "glcpp_set_lineno called with no buffer" , yyscanner); 24101591693c7b415e9869157c711fe11263c95d74eDavid Li 24111591693c7b415e9869157c711fe11263c95d74eDavid Li yylineno = line_number; 24121591693c7b415e9869157c711fe11263c95d74eDavid Li} 24131591693c7b415e9869157c711fe11263c95d74eDavid Li 24141591693c7b415e9869157c711fe11263c95d74eDavid Li/** Set the current column. 24151591693c7b415e9869157c711fe11263c95d74eDavid Li * @param line_number 24161591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 24171591693c7b415e9869157c711fe11263c95d74eDavid Li */ 24181591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_set_column (int column_no , yyscan_t yyscanner) 24191591693c7b415e9869157c711fe11263c95d74eDavid Li{ 24201591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 24211591693c7b415e9869157c711fe11263c95d74eDavid Li 24221591693c7b415e9869157c711fe11263c95d74eDavid Li /* column is only valid if an input buffer exists. */ 24231591693c7b415e9869157c711fe11263c95d74eDavid Li if (! YY_CURRENT_BUFFER ) 24241591693c7b415e9869157c711fe11263c95d74eDavid Li yy_fatal_error( "glcpp_set_column called with no buffer" , yyscanner); 24251591693c7b415e9869157c711fe11263c95d74eDavid Li 24261591693c7b415e9869157c711fe11263c95d74eDavid Li yycolumn = column_no; 24271591693c7b415e9869157c711fe11263c95d74eDavid Li} 24281591693c7b415e9869157c711fe11263c95d74eDavid Li 24291591693c7b415e9869157c711fe11263c95d74eDavid Li/** Set the input stream. This does not discard the current 24301591693c7b415e9869157c711fe11263c95d74eDavid Li * input buffer. 24311591693c7b415e9869157c711fe11263c95d74eDavid Li * @param in_str A readable stream. 24321591693c7b415e9869157c711fe11263c95d74eDavid Li * @param yyscanner The scanner object. 24331591693c7b415e9869157c711fe11263c95d74eDavid Li * @see glcpp__switch_to_buffer 24341591693c7b415e9869157c711fe11263c95d74eDavid Li */ 24351591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_set_in (FILE * in_str , yyscan_t yyscanner) 24361591693c7b415e9869157c711fe11263c95d74eDavid Li{ 24371591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 24381591693c7b415e9869157c711fe11263c95d74eDavid Li yyin = in_str ; 24391591693c7b415e9869157c711fe11263c95d74eDavid Li} 24401591693c7b415e9869157c711fe11263c95d74eDavid Li 24411591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_set_out (FILE * out_str , yyscan_t yyscanner) 24421591693c7b415e9869157c711fe11263c95d74eDavid Li{ 24431591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 24441591693c7b415e9869157c711fe11263c95d74eDavid Li yyout = out_str ; 24451591693c7b415e9869157c711fe11263c95d74eDavid Li} 24461591693c7b415e9869157c711fe11263c95d74eDavid Li 24471591693c7b415e9869157c711fe11263c95d74eDavid Liint glcpp_get_debug (yyscan_t yyscanner) 24481591693c7b415e9869157c711fe11263c95d74eDavid Li{ 24491591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 24501591693c7b415e9869157c711fe11263c95d74eDavid Li return yy_flex_debug; 24511591693c7b415e9869157c711fe11263c95d74eDavid Li} 24521591693c7b415e9869157c711fe11263c95d74eDavid Li 24531591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_set_debug (int bdebug , yyscan_t yyscanner) 24541591693c7b415e9869157c711fe11263c95d74eDavid Li{ 24551591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 24561591693c7b415e9869157c711fe11263c95d74eDavid Li yy_flex_debug = bdebug ; 24571591693c7b415e9869157c711fe11263c95d74eDavid Li} 24581591693c7b415e9869157c711fe11263c95d74eDavid Li 24591591693c7b415e9869157c711fe11263c95d74eDavid Li/* Accessor methods for yylval and yylloc */ 24601591693c7b415e9869157c711fe11263c95d74eDavid Li 24611591693c7b415e9869157c711fe11263c95d74eDavid LiYYSTYPE * glcpp_get_lval (yyscan_t yyscanner) 24621591693c7b415e9869157c711fe11263c95d74eDavid Li{ 24631591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 24641591693c7b415e9869157c711fe11263c95d74eDavid Li return yylval; 24651591693c7b415e9869157c711fe11263c95d74eDavid Li} 24661591693c7b415e9869157c711fe11263c95d74eDavid Li 24671591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_set_lval (YYSTYPE * yylval_param , yyscan_t yyscanner) 24681591693c7b415e9869157c711fe11263c95d74eDavid Li{ 24691591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 24701591693c7b415e9869157c711fe11263c95d74eDavid Li yylval = yylval_param; 24711591693c7b415e9869157c711fe11263c95d74eDavid Li} 24721591693c7b415e9869157c711fe11263c95d74eDavid Li 24731591693c7b415e9869157c711fe11263c95d74eDavid LiYYLTYPE *glcpp_get_lloc (yyscan_t yyscanner) 24741591693c7b415e9869157c711fe11263c95d74eDavid Li{ 24751591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 24761591693c7b415e9869157c711fe11263c95d74eDavid Li return yylloc; 24771591693c7b415e9869157c711fe11263c95d74eDavid Li} 24781591693c7b415e9869157c711fe11263c95d74eDavid Li 24791591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_set_lloc (YYLTYPE * yylloc_param , yyscan_t yyscanner) 24801591693c7b415e9869157c711fe11263c95d74eDavid Li{ 24811591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 24821591693c7b415e9869157c711fe11263c95d74eDavid Li yylloc = yylloc_param; 24831591693c7b415e9869157c711fe11263c95d74eDavid Li} 24841591693c7b415e9869157c711fe11263c95d74eDavid Li 24851591693c7b415e9869157c711fe11263c95d74eDavid Li/* User-visible API */ 24861591693c7b415e9869157c711fe11263c95d74eDavid Li 24871591693c7b415e9869157c711fe11263c95d74eDavid Li/* glcpp_lex_init is special because it creates the scanner itself, so it is 24881591693c7b415e9869157c711fe11263c95d74eDavid Li * the ONLY reentrant function that doesn't take the scanner as the last argument. 24891591693c7b415e9869157c711fe11263c95d74eDavid Li * That's why we explicitly handle the declaration, instead of using our macros. 24901591693c7b415e9869157c711fe11263c95d74eDavid Li */ 24911591693c7b415e9869157c711fe11263c95d74eDavid Li 24921591693c7b415e9869157c711fe11263c95d74eDavid Liint glcpp_lex_init(yyscan_t* ptr_yy_globals) 24931591693c7b415e9869157c711fe11263c95d74eDavid Li 24941591693c7b415e9869157c711fe11263c95d74eDavid Li{ 24951591693c7b415e9869157c711fe11263c95d74eDavid Li if (ptr_yy_globals == NULL){ 24961591693c7b415e9869157c711fe11263c95d74eDavid Li errno = EINVAL; 24971591693c7b415e9869157c711fe11263c95d74eDavid Li return 1; 24981591693c7b415e9869157c711fe11263c95d74eDavid Li } 24991591693c7b415e9869157c711fe11263c95d74eDavid Li 25001591693c7b415e9869157c711fe11263c95d74eDavid Li *ptr_yy_globals = (yyscan_t) glcpp_alloc ( sizeof( struct yyguts_t ), NULL ); 25011591693c7b415e9869157c711fe11263c95d74eDavid Li 25021591693c7b415e9869157c711fe11263c95d74eDavid Li if (*ptr_yy_globals == NULL){ 25031591693c7b415e9869157c711fe11263c95d74eDavid Li errno = ENOMEM; 25041591693c7b415e9869157c711fe11263c95d74eDavid Li return 1; 25051591693c7b415e9869157c711fe11263c95d74eDavid Li } 25061591693c7b415e9869157c711fe11263c95d74eDavid Li 25071591693c7b415e9869157c711fe11263c95d74eDavid Li /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ 25081591693c7b415e9869157c711fe11263c95d74eDavid Li memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); 25091591693c7b415e9869157c711fe11263c95d74eDavid Li 25101591693c7b415e9869157c711fe11263c95d74eDavid Li return yy_init_globals ( *ptr_yy_globals ); 25111591693c7b415e9869157c711fe11263c95d74eDavid Li} 25121591693c7b415e9869157c711fe11263c95d74eDavid Li 25131591693c7b415e9869157c711fe11263c95d74eDavid Li/* glcpp_lex_init_extra has the same functionality as glcpp_lex_init, but follows the 25141591693c7b415e9869157c711fe11263c95d74eDavid Li * convention of taking the scanner as the last argument. Note however, that 25151591693c7b415e9869157c711fe11263c95d74eDavid Li * this is a *pointer* to a scanner, as it will be allocated by this call (and 25161591693c7b415e9869157c711fe11263c95d74eDavid Li * is the reason, too, why this function also must handle its own declaration). 25171591693c7b415e9869157c711fe11263c95d74eDavid Li * The user defined value in the first argument will be available to glcpp_alloc in 25181591693c7b415e9869157c711fe11263c95d74eDavid Li * the yyextra field. 25191591693c7b415e9869157c711fe11263c95d74eDavid Li */ 25201591693c7b415e9869157c711fe11263c95d74eDavid Li 25211591693c7b415e9869157c711fe11263c95d74eDavid Liint glcpp_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals ) 25221591693c7b415e9869157c711fe11263c95d74eDavid Li 25231591693c7b415e9869157c711fe11263c95d74eDavid Li{ 25241591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t dummy_yyguts; 25251591693c7b415e9869157c711fe11263c95d74eDavid Li 25261591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp_set_extra (yy_user_defined, &dummy_yyguts); 25271591693c7b415e9869157c711fe11263c95d74eDavid Li 25281591693c7b415e9869157c711fe11263c95d74eDavid Li if (ptr_yy_globals == NULL){ 25291591693c7b415e9869157c711fe11263c95d74eDavid Li errno = EINVAL; 25301591693c7b415e9869157c711fe11263c95d74eDavid Li return 1; 25311591693c7b415e9869157c711fe11263c95d74eDavid Li } 25321591693c7b415e9869157c711fe11263c95d74eDavid Li 25331591693c7b415e9869157c711fe11263c95d74eDavid Li *ptr_yy_globals = (yyscan_t) glcpp_alloc ( sizeof( struct yyguts_t ), &dummy_yyguts ); 25341591693c7b415e9869157c711fe11263c95d74eDavid Li 25351591693c7b415e9869157c711fe11263c95d74eDavid Li if (*ptr_yy_globals == NULL){ 25361591693c7b415e9869157c711fe11263c95d74eDavid Li errno = ENOMEM; 25371591693c7b415e9869157c711fe11263c95d74eDavid Li return 1; 25381591693c7b415e9869157c711fe11263c95d74eDavid Li } 25391591693c7b415e9869157c711fe11263c95d74eDavid Li 25401591693c7b415e9869157c711fe11263c95d74eDavid Li /* By setting to 0xAA, we expose bugs in 25411591693c7b415e9869157c711fe11263c95d74eDavid Li yy_init_globals. Leave at 0x00 for releases. */ 25421591693c7b415e9869157c711fe11263c95d74eDavid Li memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); 25431591693c7b415e9869157c711fe11263c95d74eDavid Li 25441591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp_set_extra (yy_user_defined, *ptr_yy_globals); 25451591693c7b415e9869157c711fe11263c95d74eDavid Li 25461591693c7b415e9869157c711fe11263c95d74eDavid Li return yy_init_globals ( *ptr_yy_globals ); 25471591693c7b415e9869157c711fe11263c95d74eDavid Li} 25481591693c7b415e9869157c711fe11263c95d74eDavid Li 25491591693c7b415e9869157c711fe11263c95d74eDavid Listatic int yy_init_globals (yyscan_t yyscanner) 25501591693c7b415e9869157c711fe11263c95d74eDavid Li{ 25511591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 25521591693c7b415e9869157c711fe11263c95d74eDavid Li /* Initialization is the same as for the non-reentrant scanner. 25531591693c7b415e9869157c711fe11263c95d74eDavid Li * This function is called from glcpp_lex_destroy(), so don't allocate here. 25541591693c7b415e9869157c711fe11263c95d74eDavid Li */ 25551591693c7b415e9869157c711fe11263c95d74eDavid Li 25561591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_buffer_stack = 0; 25571591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_buffer_stack_top = 0; 25581591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_buffer_stack_max = 0; 25591591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_c_buf_p = (char *) 0; 25601591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_init = 0; 25611591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_start = 0; 25621591693c7b415e9869157c711fe11263c95d74eDavid Li 25631591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_start_stack_ptr = 0; 25641591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_start_stack_depth = 0; 25651591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_start_stack = NULL; 25661591693c7b415e9869157c711fe11263c95d74eDavid Li 25671591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_state_buf = 0; 25681591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_state_ptr = 0; 25691591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_full_match = 0; 25701591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_lp = 0; 25711591693c7b415e9869157c711fe11263c95d74eDavid Li 25721591693c7b415e9869157c711fe11263c95d74eDavid Li/* Defined in main.c */ 25731591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef YY_STDINIT 25741591693c7b415e9869157c711fe11263c95d74eDavid Li yyin = stdin; 25751591693c7b415e9869157c711fe11263c95d74eDavid Li yyout = stdout; 25761591693c7b415e9869157c711fe11263c95d74eDavid Li#else 25771591693c7b415e9869157c711fe11263c95d74eDavid Li yyin = (FILE *) 0; 25781591693c7b415e9869157c711fe11263c95d74eDavid Li yyout = (FILE *) 0; 25791591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 25801591693c7b415e9869157c711fe11263c95d74eDavid Li 25811591693c7b415e9869157c711fe11263c95d74eDavid Li /* For future reference: Set errno on error, since we are called by 25821591693c7b415e9869157c711fe11263c95d74eDavid Li * glcpp_lex_init() 25831591693c7b415e9869157c711fe11263c95d74eDavid Li */ 25841591693c7b415e9869157c711fe11263c95d74eDavid Li return 0; 25851591693c7b415e9869157c711fe11263c95d74eDavid Li} 25861591693c7b415e9869157c711fe11263c95d74eDavid Li 25871591693c7b415e9869157c711fe11263c95d74eDavid Li/* glcpp_lex_destroy is for both reentrant and non-reentrant scanners. */ 25881591693c7b415e9869157c711fe11263c95d74eDavid Liint glcpp_lex_destroy (yyscan_t yyscanner) 25891591693c7b415e9869157c711fe11263c95d74eDavid Li{ 25901591693c7b415e9869157c711fe11263c95d74eDavid Li struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 25911591693c7b415e9869157c711fe11263c95d74eDavid Li 25921591693c7b415e9869157c711fe11263c95d74eDavid Li /* Pop the buffer stack, destroying each element. */ 25931591693c7b415e9869157c711fe11263c95d74eDavid Li while(YY_CURRENT_BUFFER){ 25941591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp__delete_buffer(YY_CURRENT_BUFFER ,yyscanner ); 25951591693c7b415e9869157c711fe11263c95d74eDavid Li YY_CURRENT_BUFFER_LVALUE = NULL; 25961591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp_pop_buffer_state(yyscanner); 25971591693c7b415e9869157c711fe11263c95d74eDavid Li } 25981591693c7b415e9869157c711fe11263c95d74eDavid Li 25991591693c7b415e9869157c711fe11263c95d74eDavid Li /* Destroy the stack itself. */ 26001591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp_free(yyg->yy_buffer_stack ,yyscanner); 26011591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_buffer_stack = NULL; 26021591693c7b415e9869157c711fe11263c95d74eDavid Li 26031591693c7b415e9869157c711fe11263c95d74eDavid Li /* Destroy the start condition stack. */ 26041591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp_free(yyg->yy_start_stack ,yyscanner ); 26051591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_start_stack = NULL; 26061591693c7b415e9869157c711fe11263c95d74eDavid Li 26071591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp_free ( yyg->yy_state_buf , yyscanner); 26081591693c7b415e9869157c711fe11263c95d74eDavid Li yyg->yy_state_buf = NULL; 26091591693c7b415e9869157c711fe11263c95d74eDavid Li 26101591693c7b415e9869157c711fe11263c95d74eDavid Li /* Reset the globals. This is important in a non-reentrant scanner so the next time 26111591693c7b415e9869157c711fe11263c95d74eDavid Li * glcpp_lex() is called, initialization will occur. */ 26121591693c7b415e9869157c711fe11263c95d74eDavid Li yy_init_globals( yyscanner); 26131591693c7b415e9869157c711fe11263c95d74eDavid Li 26141591693c7b415e9869157c711fe11263c95d74eDavid Li /* Destroy the main struct (reentrant only). */ 26151591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp_free ( yyscanner , yyscanner ); 26161591693c7b415e9869157c711fe11263c95d74eDavid Li yyscanner = NULL; 26171591693c7b415e9869157c711fe11263c95d74eDavid Li return 0; 26181591693c7b415e9869157c711fe11263c95d74eDavid Li} 26191591693c7b415e9869157c711fe11263c95d74eDavid Li 26201591693c7b415e9869157c711fe11263c95d74eDavid Li/* 26211591693c7b415e9869157c711fe11263c95d74eDavid Li * Internal utility routines. 26221591693c7b415e9869157c711fe11263c95d74eDavid Li */ 26231591693c7b415e9869157c711fe11263c95d74eDavid Li 26241591693c7b415e9869157c711fe11263c95d74eDavid Li#ifndef yytext_ptr 26251591693c7b415e9869157c711fe11263c95d74eDavid Listatic void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner) 26261591693c7b415e9869157c711fe11263c95d74eDavid Li{ 26271591693c7b415e9869157c711fe11263c95d74eDavid Li register int i; 26281591693c7b415e9869157c711fe11263c95d74eDavid Li for ( i = 0; i < n; ++i ) 26291591693c7b415e9869157c711fe11263c95d74eDavid Li s1[i] = s2[i]; 26301591693c7b415e9869157c711fe11263c95d74eDavid Li} 26311591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 26321591693c7b415e9869157c711fe11263c95d74eDavid Li 26331591693c7b415e9869157c711fe11263c95d74eDavid Li#ifdef YY_NEED_STRLEN 26341591693c7b415e9869157c711fe11263c95d74eDavid Listatic int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner) 26351591693c7b415e9869157c711fe11263c95d74eDavid Li{ 26361591693c7b415e9869157c711fe11263c95d74eDavid Li register int n; 26371591693c7b415e9869157c711fe11263c95d74eDavid Li for ( n = 0; s[n]; ++n ) 26381591693c7b415e9869157c711fe11263c95d74eDavid Li ; 26391591693c7b415e9869157c711fe11263c95d74eDavid Li 26401591693c7b415e9869157c711fe11263c95d74eDavid Li return n; 26411591693c7b415e9869157c711fe11263c95d74eDavid Li} 26421591693c7b415e9869157c711fe11263c95d74eDavid Li#endif 26431591693c7b415e9869157c711fe11263c95d74eDavid Li 26441591693c7b415e9869157c711fe11263c95d74eDavid Livoid *glcpp_alloc (yy_size_t size , yyscan_t yyscanner) 26451591693c7b415e9869157c711fe11263c95d74eDavid Li{ 26461591693c7b415e9869157c711fe11263c95d74eDavid Li return (void *) malloc( size ); 26471591693c7b415e9869157c711fe11263c95d74eDavid Li} 26481591693c7b415e9869157c711fe11263c95d74eDavid Li 26491591693c7b415e9869157c711fe11263c95d74eDavid Livoid *glcpp_realloc (void * ptr, yy_size_t size , yyscan_t yyscanner) 26501591693c7b415e9869157c711fe11263c95d74eDavid Li{ 26511591693c7b415e9869157c711fe11263c95d74eDavid Li /* The cast to (char *) in the following accommodates both 26521591693c7b415e9869157c711fe11263c95d74eDavid Li * implementations that use char* generic pointers, and those 26531591693c7b415e9869157c711fe11263c95d74eDavid Li * that use void* generic pointers. It works with the latter 26541591693c7b415e9869157c711fe11263c95d74eDavid Li * because both ANSI C and C++ allow castless assignment from 26551591693c7b415e9869157c711fe11263c95d74eDavid Li * any pointer type to void*, and deal with argument conversions 26561591693c7b415e9869157c711fe11263c95d74eDavid Li * as though doing an assignment. 26571591693c7b415e9869157c711fe11263c95d74eDavid Li */ 26581591693c7b415e9869157c711fe11263c95d74eDavid Li return (void *) realloc( (char *) ptr, size ); 26591591693c7b415e9869157c711fe11263c95d74eDavid Li} 26601591693c7b415e9869157c711fe11263c95d74eDavid Li 26611591693c7b415e9869157c711fe11263c95d74eDavid Livoid glcpp_free (void * ptr , yyscan_t yyscanner) 26621591693c7b415e9869157c711fe11263c95d74eDavid Li{ 26631591693c7b415e9869157c711fe11263c95d74eDavid Li free( (char *) ptr ); /* see glcpp_realloc() for (char *) cast */ 26641591693c7b415e9869157c711fe11263c95d74eDavid Li} 26651591693c7b415e9869157c711fe11263c95d74eDavid Li 26661591693c7b415e9869157c711fe11263c95d74eDavid Li#define YYTABLES_NAME "yytables" 26671591693c7b415e9869157c711fe11263c95d74eDavid Li 26681591693c7b415e9869157c711fe11263c95d74eDavid Li#line 319 "glcpp/glcpp-lex.l" 26691591693c7b415e9869157c711fe11263c95d74eDavid Li 26701591693c7b415e9869157c711fe11263c95d74eDavid Li 26711591693c7b415e9869157c711fe11263c95d74eDavid Li 26721591693c7b415e9869157c711fe11263c95d74eDavid Livoid 26731591693c7b415e9869157c711fe11263c95d74eDavid Liglcpp_lex_set_source_string(glcpp_parser_t *parser, const char *shader) 26741591693c7b415e9869157c711fe11263c95d74eDavid Li{ 26751591693c7b415e9869157c711fe11263c95d74eDavid Li glcpp__scan_string(shader,parser->scanner); 26761591693c7b415e9869157c711fe11263c95d74eDavid Li} 26771591693c7b415e9869157c711fe11263c95d74eDavid Li 2678