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