1*287e80b3SSadaf Ebrahimi #line 1 "sqlhist-lex.c"
2*287e80b3SSadaf Ebrahimi
3*287e80b3SSadaf Ebrahimi #line 3 "sqlhist-lex.c"
4*287e80b3SSadaf Ebrahimi
5*287e80b3SSadaf Ebrahimi #define YY_INT_ALIGNED short int
6*287e80b3SSadaf Ebrahimi
7*287e80b3SSadaf Ebrahimi /* A lexical scanner generated by flex */
8*287e80b3SSadaf Ebrahimi
9*287e80b3SSadaf Ebrahimi #define FLEX_SCANNER
10*287e80b3SSadaf Ebrahimi #define YY_FLEX_MAJOR_VERSION 2
11*287e80b3SSadaf Ebrahimi #define YY_FLEX_MINOR_VERSION 6
12*287e80b3SSadaf Ebrahimi #define YY_FLEX_SUBMINOR_VERSION 4
13*287e80b3SSadaf Ebrahimi #if YY_FLEX_SUBMINOR_VERSION > 0
14*287e80b3SSadaf Ebrahimi #define FLEX_BETA
15*287e80b3SSadaf Ebrahimi #endif
16*287e80b3SSadaf Ebrahimi
17*287e80b3SSadaf Ebrahimi #ifdef yyget_lval
18*287e80b3SSadaf Ebrahimi #define yyget_lval_ALREADY_DEFINED
19*287e80b3SSadaf Ebrahimi #else
20*287e80b3SSadaf Ebrahimi #define yyget_lval yyget_lval
21*287e80b3SSadaf Ebrahimi #endif
22*287e80b3SSadaf Ebrahimi
23*287e80b3SSadaf Ebrahimi #ifdef yyset_lval
24*287e80b3SSadaf Ebrahimi #define yyset_lval_ALREADY_DEFINED
25*287e80b3SSadaf Ebrahimi #else
26*287e80b3SSadaf Ebrahimi #define yyset_lval yyset_lval
27*287e80b3SSadaf Ebrahimi #endif
28*287e80b3SSadaf Ebrahimi
29*287e80b3SSadaf Ebrahimi /* First, we deal with platform-specific or compiler-specific issues. */
30*287e80b3SSadaf Ebrahimi
31*287e80b3SSadaf Ebrahimi /* begin standard C headers. */
32*287e80b3SSadaf Ebrahimi #include <stdio.h>
33*287e80b3SSadaf Ebrahimi #include <string.h>
34*287e80b3SSadaf Ebrahimi #include <errno.h>
35*287e80b3SSadaf Ebrahimi #include <stdlib.h>
36*287e80b3SSadaf Ebrahimi
37*287e80b3SSadaf Ebrahimi /* end standard C headers. */
38*287e80b3SSadaf Ebrahimi
39*287e80b3SSadaf Ebrahimi /* flex integer type definitions */
40*287e80b3SSadaf Ebrahimi
41*287e80b3SSadaf Ebrahimi #ifndef FLEXINT_H
42*287e80b3SSadaf Ebrahimi #define FLEXINT_H
43*287e80b3SSadaf Ebrahimi
44*287e80b3SSadaf Ebrahimi /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
45*287e80b3SSadaf Ebrahimi
46*287e80b3SSadaf Ebrahimi #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
47*287e80b3SSadaf Ebrahimi
48*287e80b3SSadaf Ebrahimi /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
49*287e80b3SSadaf Ebrahimi * if you want the limit (max/min) macros for int types.
50*287e80b3SSadaf Ebrahimi */
51*287e80b3SSadaf Ebrahimi #ifndef __STDC_LIMIT_MACROS
52*287e80b3SSadaf Ebrahimi #define __STDC_LIMIT_MACROS 1
53*287e80b3SSadaf Ebrahimi #endif
54*287e80b3SSadaf Ebrahimi
55*287e80b3SSadaf Ebrahimi #include <inttypes.h>
56*287e80b3SSadaf Ebrahimi typedef int8_t flex_int8_t;
57*287e80b3SSadaf Ebrahimi typedef uint8_t flex_uint8_t;
58*287e80b3SSadaf Ebrahimi typedef int16_t flex_int16_t;
59*287e80b3SSadaf Ebrahimi typedef uint16_t flex_uint16_t;
60*287e80b3SSadaf Ebrahimi typedef int32_t flex_int32_t;
61*287e80b3SSadaf Ebrahimi typedef uint32_t flex_uint32_t;
62*287e80b3SSadaf Ebrahimi #else
63*287e80b3SSadaf Ebrahimi typedef signed char flex_int8_t;
64*287e80b3SSadaf Ebrahimi typedef short int flex_int16_t;
65*287e80b3SSadaf Ebrahimi typedef int flex_int32_t;
66*287e80b3SSadaf Ebrahimi typedef unsigned char flex_uint8_t;
67*287e80b3SSadaf Ebrahimi typedef unsigned short int flex_uint16_t;
68*287e80b3SSadaf Ebrahimi typedef unsigned int flex_uint32_t;
69*287e80b3SSadaf Ebrahimi
70*287e80b3SSadaf Ebrahimi /* Limits of integral types. */
71*287e80b3SSadaf Ebrahimi #ifndef INT8_MIN
72*287e80b3SSadaf Ebrahimi #define INT8_MIN (-128)
73*287e80b3SSadaf Ebrahimi #endif
74*287e80b3SSadaf Ebrahimi #ifndef INT16_MIN
75*287e80b3SSadaf Ebrahimi #define INT16_MIN (-32767-1)
76*287e80b3SSadaf Ebrahimi #endif
77*287e80b3SSadaf Ebrahimi #ifndef INT32_MIN
78*287e80b3SSadaf Ebrahimi #define INT32_MIN (-2147483647-1)
79*287e80b3SSadaf Ebrahimi #endif
80*287e80b3SSadaf Ebrahimi #ifndef INT8_MAX
81*287e80b3SSadaf Ebrahimi #define INT8_MAX (127)
82*287e80b3SSadaf Ebrahimi #endif
83*287e80b3SSadaf Ebrahimi #ifndef INT16_MAX
84*287e80b3SSadaf Ebrahimi #define INT16_MAX (32767)
85*287e80b3SSadaf Ebrahimi #endif
86*287e80b3SSadaf Ebrahimi #ifndef INT32_MAX
87*287e80b3SSadaf Ebrahimi #define INT32_MAX (2147483647)
88*287e80b3SSadaf Ebrahimi #endif
89*287e80b3SSadaf Ebrahimi #ifndef UINT8_MAX
90*287e80b3SSadaf Ebrahimi #define UINT8_MAX (255U)
91*287e80b3SSadaf Ebrahimi #endif
92*287e80b3SSadaf Ebrahimi #ifndef UINT16_MAX
93*287e80b3SSadaf Ebrahimi #define UINT16_MAX (65535U)
94*287e80b3SSadaf Ebrahimi #endif
95*287e80b3SSadaf Ebrahimi #ifndef UINT32_MAX
96*287e80b3SSadaf Ebrahimi #define UINT32_MAX (4294967295U)
97*287e80b3SSadaf Ebrahimi #endif
98*287e80b3SSadaf Ebrahimi
99*287e80b3SSadaf Ebrahimi #ifndef SIZE_MAX
100*287e80b3SSadaf Ebrahimi #define SIZE_MAX (~(size_t)0)
101*287e80b3SSadaf Ebrahimi #endif
102*287e80b3SSadaf Ebrahimi
103*287e80b3SSadaf Ebrahimi #endif /* ! C99 */
104*287e80b3SSadaf Ebrahimi
105*287e80b3SSadaf Ebrahimi #endif /* ! FLEXINT_H */
106*287e80b3SSadaf Ebrahimi
107*287e80b3SSadaf Ebrahimi /* begin standard C++ headers. */
108*287e80b3SSadaf Ebrahimi
109*287e80b3SSadaf Ebrahimi /* TODO: this is always defined, so inline it */
110*287e80b3SSadaf Ebrahimi #define yyconst const
111*287e80b3SSadaf Ebrahimi
112*287e80b3SSadaf Ebrahimi #if defined(__GNUC__) && __GNUC__ >= 3
113*287e80b3SSadaf Ebrahimi #define yynoreturn __attribute__((__noreturn__))
114*287e80b3SSadaf Ebrahimi #else
115*287e80b3SSadaf Ebrahimi #define yynoreturn
116*287e80b3SSadaf Ebrahimi #endif
117*287e80b3SSadaf Ebrahimi
118*287e80b3SSadaf Ebrahimi /* Returned upon end-of-file. */
119*287e80b3SSadaf Ebrahimi #define YY_NULL 0
120*287e80b3SSadaf Ebrahimi
121*287e80b3SSadaf Ebrahimi /* Promotes a possibly negative, possibly signed char to an
122*287e80b3SSadaf Ebrahimi * integer in range [0..255] for use as an array index.
123*287e80b3SSadaf Ebrahimi */
124*287e80b3SSadaf Ebrahimi #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
125*287e80b3SSadaf Ebrahimi
126*287e80b3SSadaf Ebrahimi /* An opaque pointer. */
127*287e80b3SSadaf Ebrahimi #ifndef YY_TYPEDEF_YY_SCANNER_T
128*287e80b3SSadaf Ebrahimi #define YY_TYPEDEF_YY_SCANNER_T
129*287e80b3SSadaf Ebrahimi typedef void* yyscan_t;
130*287e80b3SSadaf Ebrahimi #endif
131*287e80b3SSadaf Ebrahimi
132*287e80b3SSadaf Ebrahimi /* For convenience, these vars (plus the bison vars far below)
133*287e80b3SSadaf Ebrahimi are macros in the reentrant scanner. */
134*287e80b3SSadaf Ebrahimi #define yyin yyg->yyin_r
135*287e80b3SSadaf Ebrahimi #define yyout yyg->yyout_r
136*287e80b3SSadaf Ebrahimi #define yyextra yyg->yyextra_r
137*287e80b3SSadaf Ebrahimi #define yyleng yyg->yyleng_r
138*287e80b3SSadaf Ebrahimi #define yytext yyg->yytext_r
139*287e80b3SSadaf Ebrahimi #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
140*287e80b3SSadaf Ebrahimi #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
141*287e80b3SSadaf Ebrahimi #define yy_flex_debug yyg->yy_flex_debug_r
142*287e80b3SSadaf Ebrahimi
143*287e80b3SSadaf Ebrahimi /* Enter a start condition. This macro really ought to take a parameter,
144*287e80b3SSadaf Ebrahimi * but we do it the disgusting crufty way forced on us by the ()-less
145*287e80b3SSadaf Ebrahimi * definition of BEGIN.
146*287e80b3SSadaf Ebrahimi */
147*287e80b3SSadaf Ebrahimi #define BEGIN yyg->yy_start = 1 + 2 *
148*287e80b3SSadaf Ebrahimi /* Translate the current start state into a value that can be later handed
149*287e80b3SSadaf Ebrahimi * to BEGIN to return to the state. The YYSTATE alias is for lex
150*287e80b3SSadaf Ebrahimi * compatibility.
151*287e80b3SSadaf Ebrahimi */
152*287e80b3SSadaf Ebrahimi #define YY_START ((yyg->yy_start - 1) / 2)
153*287e80b3SSadaf Ebrahimi #define YYSTATE YY_START
154*287e80b3SSadaf Ebrahimi /* Action number for EOF rule of a given start state. */
155*287e80b3SSadaf Ebrahimi #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
156*287e80b3SSadaf Ebrahimi /* Special action meaning "start processing a new file". */
157*287e80b3SSadaf Ebrahimi #define YY_NEW_FILE yyrestart( yyin , yyscanner )
158*287e80b3SSadaf Ebrahimi #define YY_END_OF_BUFFER_CHAR 0
159*287e80b3SSadaf Ebrahimi
160*287e80b3SSadaf Ebrahimi /* Size of default input buffer. */
161*287e80b3SSadaf Ebrahimi #ifndef YY_BUF_SIZE
162*287e80b3SSadaf Ebrahimi #ifdef __ia64__
163*287e80b3SSadaf Ebrahimi /* On IA-64, the buffer size is 16k, not 8k.
164*287e80b3SSadaf Ebrahimi * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
165*287e80b3SSadaf Ebrahimi * Ditto for the __ia64__ case accordingly.
166*287e80b3SSadaf Ebrahimi */
167*287e80b3SSadaf Ebrahimi #define YY_BUF_SIZE 32768
168*287e80b3SSadaf Ebrahimi #else
169*287e80b3SSadaf Ebrahimi #define YY_BUF_SIZE 16384
170*287e80b3SSadaf Ebrahimi #endif /* __ia64__ */
171*287e80b3SSadaf Ebrahimi #endif
172*287e80b3SSadaf Ebrahimi
173*287e80b3SSadaf Ebrahimi /* The state buf must be large enough to hold one state per character in the main buffer.
174*287e80b3SSadaf Ebrahimi */
175*287e80b3SSadaf Ebrahimi #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
176*287e80b3SSadaf Ebrahimi
177*287e80b3SSadaf Ebrahimi #ifndef YY_TYPEDEF_YY_BUFFER_STATE
178*287e80b3SSadaf Ebrahimi #define YY_TYPEDEF_YY_BUFFER_STATE
179*287e80b3SSadaf Ebrahimi typedef struct yy_buffer_state *YY_BUFFER_STATE;
180*287e80b3SSadaf Ebrahimi #endif
181*287e80b3SSadaf Ebrahimi
182*287e80b3SSadaf Ebrahimi #ifndef YY_TYPEDEF_YY_SIZE_T
183*287e80b3SSadaf Ebrahimi #define YY_TYPEDEF_YY_SIZE_T
184*287e80b3SSadaf Ebrahimi typedef size_t yy_size_t;
185*287e80b3SSadaf Ebrahimi #endif
186*287e80b3SSadaf Ebrahimi
187*287e80b3SSadaf Ebrahimi #define EOB_ACT_CONTINUE_SCAN 0
188*287e80b3SSadaf Ebrahimi #define EOB_ACT_END_OF_FILE 1
189*287e80b3SSadaf Ebrahimi #define EOB_ACT_LAST_MATCH 2
190*287e80b3SSadaf Ebrahimi
191*287e80b3SSadaf Ebrahimi #define YY_LESS_LINENO(n)
192*287e80b3SSadaf Ebrahimi #define YY_LINENO_REWIND_TO(ptr)
193*287e80b3SSadaf Ebrahimi
194*287e80b3SSadaf Ebrahimi /* Return all but the first "n" matched characters back to the input stream. */
195*287e80b3SSadaf Ebrahimi #define yyless(n) \
196*287e80b3SSadaf Ebrahimi do \
197*287e80b3SSadaf Ebrahimi { \
198*287e80b3SSadaf Ebrahimi /* Undo effects of setting up yytext. */ \
199*287e80b3SSadaf Ebrahimi int yyless_macro_arg = (n); \
200*287e80b3SSadaf Ebrahimi YY_LESS_LINENO(yyless_macro_arg);\
201*287e80b3SSadaf Ebrahimi *yy_cp = yyg->yy_hold_char; \
202*287e80b3SSadaf Ebrahimi YY_RESTORE_YY_MORE_OFFSET \
203*287e80b3SSadaf Ebrahimi yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
204*287e80b3SSadaf Ebrahimi YY_DO_BEFORE_ACTION; /* set up yytext again */ \
205*287e80b3SSadaf Ebrahimi } \
206*287e80b3SSadaf Ebrahimi while ( 0 )
207*287e80b3SSadaf Ebrahimi #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
208*287e80b3SSadaf Ebrahimi
209*287e80b3SSadaf Ebrahimi #ifndef YY_STRUCT_YY_BUFFER_STATE
210*287e80b3SSadaf Ebrahimi #define YY_STRUCT_YY_BUFFER_STATE
211*287e80b3SSadaf Ebrahimi struct yy_buffer_state
212*287e80b3SSadaf Ebrahimi {
213*287e80b3SSadaf Ebrahimi FILE *yy_input_file;
214*287e80b3SSadaf Ebrahimi
215*287e80b3SSadaf Ebrahimi char *yy_ch_buf; /* input buffer */
216*287e80b3SSadaf Ebrahimi char *yy_buf_pos; /* current position in input buffer */
217*287e80b3SSadaf Ebrahimi
218*287e80b3SSadaf Ebrahimi /* Size of input buffer in bytes, not including room for EOB
219*287e80b3SSadaf Ebrahimi * characters.
220*287e80b3SSadaf Ebrahimi */
221*287e80b3SSadaf Ebrahimi int yy_buf_size;
222*287e80b3SSadaf Ebrahimi
223*287e80b3SSadaf Ebrahimi /* Number of characters read into yy_ch_buf, not including EOB
224*287e80b3SSadaf Ebrahimi * characters.
225*287e80b3SSadaf Ebrahimi */
226*287e80b3SSadaf Ebrahimi int yy_n_chars;
227*287e80b3SSadaf Ebrahimi
228*287e80b3SSadaf Ebrahimi /* Whether we "own" the buffer - i.e., we know we created it,
229*287e80b3SSadaf Ebrahimi * and can realloc() it to grow it, and should free() it to
230*287e80b3SSadaf Ebrahimi * delete it.
231*287e80b3SSadaf Ebrahimi */
232*287e80b3SSadaf Ebrahimi int yy_is_our_buffer;
233*287e80b3SSadaf Ebrahimi
234*287e80b3SSadaf Ebrahimi /* Whether this is an "interactive" input source; if so, and
235*287e80b3SSadaf Ebrahimi * if we're using stdio for input, then we want to use getc()
236*287e80b3SSadaf Ebrahimi * instead of fread(), to make sure we stop fetching input after
237*287e80b3SSadaf Ebrahimi * each newline.
238*287e80b3SSadaf Ebrahimi */
239*287e80b3SSadaf Ebrahimi int yy_is_interactive;
240*287e80b3SSadaf Ebrahimi
241*287e80b3SSadaf Ebrahimi /* Whether we're considered to be at the beginning of a line.
242*287e80b3SSadaf Ebrahimi * If so, '^' rules will be active on the next match, otherwise
243*287e80b3SSadaf Ebrahimi * not.
244*287e80b3SSadaf Ebrahimi */
245*287e80b3SSadaf Ebrahimi int yy_at_bol;
246*287e80b3SSadaf Ebrahimi
247*287e80b3SSadaf Ebrahimi int yy_bs_lineno; /**< The line count. */
248*287e80b3SSadaf Ebrahimi int yy_bs_column; /**< The column count. */
249*287e80b3SSadaf Ebrahimi
250*287e80b3SSadaf Ebrahimi /* Whether to try to fill the input buffer when we reach the
251*287e80b3SSadaf Ebrahimi * end of it.
252*287e80b3SSadaf Ebrahimi */
253*287e80b3SSadaf Ebrahimi int yy_fill_buffer;
254*287e80b3SSadaf Ebrahimi
255*287e80b3SSadaf Ebrahimi int yy_buffer_status;
256*287e80b3SSadaf Ebrahimi
257*287e80b3SSadaf Ebrahimi #define YY_BUFFER_NEW 0
258*287e80b3SSadaf Ebrahimi #define YY_BUFFER_NORMAL 1
259*287e80b3SSadaf Ebrahimi /* When an EOF's been seen but there's still some text to process
260*287e80b3SSadaf Ebrahimi * then we mark the buffer as YY_EOF_PENDING, to indicate that we
261*287e80b3SSadaf Ebrahimi * shouldn't try reading from the input source any more. We might
262*287e80b3SSadaf Ebrahimi * still have a bunch of tokens to match, though, because of
263*287e80b3SSadaf Ebrahimi * possible backing-up.
264*287e80b3SSadaf Ebrahimi *
265*287e80b3SSadaf Ebrahimi * When we actually see the EOF, we change the status to "new"
266*287e80b3SSadaf Ebrahimi * (via yyrestart()), so that the user can continue scanning by
267*287e80b3SSadaf Ebrahimi * just pointing yyin at a new input file.
268*287e80b3SSadaf Ebrahimi */
269*287e80b3SSadaf Ebrahimi #define YY_BUFFER_EOF_PENDING 2
270*287e80b3SSadaf Ebrahimi
271*287e80b3SSadaf Ebrahimi };
272*287e80b3SSadaf Ebrahimi #endif /* !YY_STRUCT_YY_BUFFER_STATE */
273*287e80b3SSadaf Ebrahimi
274*287e80b3SSadaf Ebrahimi /* We provide macros for accessing buffer states in case in the
275*287e80b3SSadaf Ebrahimi * future we want to put the buffer states in a more general
276*287e80b3SSadaf Ebrahimi * "scanner state".
277*287e80b3SSadaf Ebrahimi *
278*287e80b3SSadaf Ebrahimi * Returns the top of the stack, or NULL.
279*287e80b3SSadaf Ebrahimi */
280*287e80b3SSadaf Ebrahimi #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
281*287e80b3SSadaf Ebrahimi ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
282*287e80b3SSadaf Ebrahimi : NULL)
283*287e80b3SSadaf Ebrahimi /* Same as previous macro, but useful when we know that the buffer stack is not
284*287e80b3SSadaf Ebrahimi * NULL or when we need an lvalue. For internal use only.
285*287e80b3SSadaf Ebrahimi */
286*287e80b3SSadaf Ebrahimi #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
287*287e80b3SSadaf Ebrahimi
288*287e80b3SSadaf Ebrahimi void yyrestart ( FILE *input_file , yyscan_t yyscanner );
289*287e80b3SSadaf Ebrahimi void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
290*287e80b3SSadaf Ebrahimi YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner );
291*287e80b3SSadaf Ebrahimi void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
292*287e80b3SSadaf Ebrahimi void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
293*287e80b3SSadaf Ebrahimi void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
294*287e80b3SSadaf Ebrahimi void yypop_buffer_state ( yyscan_t yyscanner );
295*287e80b3SSadaf Ebrahimi
296*287e80b3SSadaf Ebrahimi static void yyensure_buffer_stack ( yyscan_t yyscanner );
297*287e80b3SSadaf Ebrahimi static void yy_load_buffer_state ( yyscan_t yyscanner );
298*287e80b3SSadaf Ebrahimi static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file , yyscan_t yyscanner );
299*287e80b3SSadaf Ebrahimi #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER , yyscanner)
300*287e80b3SSadaf Ebrahimi
301*287e80b3SSadaf Ebrahimi YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner );
302*287e80b3SSadaf Ebrahimi YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner );
303*287e80b3SSadaf Ebrahimi YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner );
304*287e80b3SSadaf Ebrahimi
305*287e80b3SSadaf Ebrahimi void *yyalloc ( yy_size_t , yyscan_t yyscanner );
306*287e80b3SSadaf Ebrahimi void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner );
307*287e80b3SSadaf Ebrahimi void yyfree ( void * , yyscan_t yyscanner );
308*287e80b3SSadaf Ebrahimi
309*287e80b3SSadaf Ebrahimi #define yy_new_buffer yy_create_buffer
310*287e80b3SSadaf Ebrahimi #define yy_set_interactive(is_interactive) \
311*287e80b3SSadaf Ebrahimi { \
312*287e80b3SSadaf Ebrahimi if ( ! YY_CURRENT_BUFFER ){ \
313*287e80b3SSadaf Ebrahimi yyensure_buffer_stack (yyscanner); \
314*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE = \
315*287e80b3SSadaf Ebrahimi yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
316*287e80b3SSadaf Ebrahimi } \
317*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
318*287e80b3SSadaf Ebrahimi }
319*287e80b3SSadaf Ebrahimi #define yy_set_bol(at_bol) \
320*287e80b3SSadaf Ebrahimi { \
321*287e80b3SSadaf Ebrahimi if ( ! YY_CURRENT_BUFFER ){\
322*287e80b3SSadaf Ebrahimi yyensure_buffer_stack (yyscanner); \
323*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE = \
324*287e80b3SSadaf Ebrahimi yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
325*287e80b3SSadaf Ebrahimi } \
326*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
327*287e80b3SSadaf Ebrahimi }
328*287e80b3SSadaf Ebrahimi #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
329*287e80b3SSadaf Ebrahimi
330*287e80b3SSadaf Ebrahimi /* Begin user sect3 */
331*287e80b3SSadaf Ebrahimi typedef flex_uint8_t YY_CHAR;
332*287e80b3SSadaf Ebrahimi
333*287e80b3SSadaf Ebrahimi typedef int yy_state_type;
334*287e80b3SSadaf Ebrahimi
335*287e80b3SSadaf Ebrahimi #define yytext_ptr yytext_r
336*287e80b3SSadaf Ebrahimi
337*287e80b3SSadaf Ebrahimi static yy_state_type yy_get_previous_state ( yyscan_t yyscanner );
338*287e80b3SSadaf Ebrahimi static yy_state_type yy_try_NUL_trans ( yy_state_type current_state , yyscan_t yyscanner);
339*287e80b3SSadaf Ebrahimi static int yy_get_next_buffer ( yyscan_t yyscanner );
340*287e80b3SSadaf Ebrahimi static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner );
341*287e80b3SSadaf Ebrahimi
342*287e80b3SSadaf Ebrahimi /* Done after the current pattern has been matched and before the
343*287e80b3SSadaf Ebrahimi * corresponding action - sets up yytext.
344*287e80b3SSadaf Ebrahimi */
345*287e80b3SSadaf Ebrahimi #define YY_DO_BEFORE_ACTION \
346*287e80b3SSadaf Ebrahimi yyg->yytext_ptr = yy_bp; \
347*287e80b3SSadaf Ebrahimi yyleng = (int) (yy_cp - yy_bp); \
348*287e80b3SSadaf Ebrahimi yyg->yy_hold_char = *yy_cp; \
349*287e80b3SSadaf Ebrahimi *yy_cp = '\0'; \
350*287e80b3SSadaf Ebrahimi yyg->yy_c_buf_p = yy_cp;
351*287e80b3SSadaf Ebrahimi #define YY_NUM_RULES 24
352*287e80b3SSadaf Ebrahimi #define YY_END_OF_BUFFER 25
353*287e80b3SSadaf Ebrahimi /* This struct is not used in this scanner,
354*287e80b3SSadaf Ebrahimi but its presence is necessary. */
355*287e80b3SSadaf Ebrahimi struct yy_trans_info
356*287e80b3SSadaf Ebrahimi {
357*287e80b3SSadaf Ebrahimi flex_int32_t yy_verify;
358*287e80b3SSadaf Ebrahimi flex_int32_t yy_nxt;
359*287e80b3SSadaf Ebrahimi };
360*287e80b3SSadaf Ebrahimi static const flex_int16_t yy_accept[72] =
361*287e80b3SSadaf Ebrahimi { 0,
362*287e80b3SSadaf Ebrahimi 0, 0, 25, 23, 21, 22, 20, 23, 19, 20,
363*287e80b3SSadaf Ebrahimi 12, 12, 19, 20, 19, 10, 10, 10, 10, 10,
364*287e80b3SSadaf Ebrahimi 10, 10, 10, 10, 23, 23, 19, 13, 0, 9,
365*287e80b3SSadaf Ebrahimi 17, 12, 0, 14, 16, 15, 10, 10, 2, 10,
366*287e80b3SSadaf Ebrahimi 10, 10, 5, 10, 10, 10, 10, 18, 11, 10,
367*287e80b3SSadaf Ebrahimi 10, 10, 10, 10, 10, 7, 3, 4, 10, 0,
368*287e80b3SSadaf Ebrahimi 10, 10, 0, 6, 1, 0, 0, 0, 0, 8,
369*287e80b3SSadaf Ebrahimi 0
370*287e80b3SSadaf Ebrahimi } ;
371*287e80b3SSadaf Ebrahimi
372*287e80b3SSadaf Ebrahimi static const YY_CHAR yy_ec[256] =
373*287e80b3SSadaf Ebrahimi { 0,
374*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
375*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
376*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
377*287e80b3SSadaf Ebrahimi 1, 2, 4, 5, 1, 1, 1, 6, 1, 7,
378*287e80b3SSadaf Ebrahimi 7, 7, 7, 7, 8, 9, 7, 10, 11, 11,
379*287e80b3SSadaf Ebrahimi 11, 11, 11, 11, 11, 11, 11, 1, 1, 12,
380*287e80b3SSadaf Ebrahimi 13, 14, 1, 1, 15, 16, 17, 16, 18, 19,
381*287e80b3SSadaf Ebrahimi 20, 21, 22, 23, 20, 24, 25, 26, 27, 20,
382*287e80b3SSadaf Ebrahimi 20, 28, 29, 30, 20, 20, 31, 32, 33, 20,
383*287e80b3SSadaf Ebrahimi 1, 34, 1, 1, 20, 1, 35, 16, 36, 16,
384*287e80b3SSadaf Ebrahimi
385*287e80b3SSadaf Ebrahimi 37, 38, 20, 39, 40, 41, 20, 42, 43, 44,
386*287e80b3SSadaf Ebrahimi 45, 20, 20, 46, 47, 48, 20, 20, 49, 50,
387*287e80b3SSadaf Ebrahimi 51, 20, 1, 52, 1, 53, 1, 1, 1, 1,
388*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
389*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
390*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
391*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
392*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
393*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
394*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
395*287e80b3SSadaf Ebrahimi
396*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
397*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
398*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
399*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
400*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
401*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1
402*287e80b3SSadaf Ebrahimi } ;
403*287e80b3SSadaf Ebrahimi
404*287e80b3SSadaf Ebrahimi static const YY_CHAR yy_meta[54] =
405*287e80b3SSadaf Ebrahimi { 0,
406*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
407*287e80b3SSadaf Ebrahimi 3, 1, 1, 1, 4, 4, 4, 4, 4, 5,
408*287e80b3SSadaf Ebrahimi 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
409*287e80b3SSadaf Ebrahimi 5, 6, 5, 1, 4, 4, 4, 4, 5, 5,
410*287e80b3SSadaf Ebrahimi 5, 5, 5, 5, 5, 5, 5, 5, 5, 6,
411*287e80b3SSadaf Ebrahimi 5, 1, 1
412*287e80b3SSadaf Ebrahimi } ;
413*287e80b3SSadaf Ebrahimi
414*287e80b3SSadaf Ebrahimi static const flex_int16_t yy_base[77] =
415*287e80b3SSadaf Ebrahimi { 0,
416*287e80b3SSadaf Ebrahimi 0, 0, 94, 180, 180, 180, 58, 62, 59, 180,
417*287e80b3SSadaf Ebrahimi 22, 23, 51, 50, 49, 64, 102, 41, 31, 0,
418*287e80b3SSadaf Ebrahimi 33, 40, 52, 47, 0, 9, 180, 180, 53, 180,
419*287e80b3SSadaf Ebrahimi 180, 37, 0, 180, 180, 180, 0, 0, 0, 59,
420*287e80b3SSadaf Ebrahimi 63, 69, 0, 68, 71, 79, 0, 180, 0, 74,
421*287e80b3SSadaf Ebrahimi 80, 81, 97, 49, 96, 0, 0, 0, 109, 101,
422*287e80b3SSadaf Ebrahimi 111, 101, 113, 0, 0, 114, 106, 118, 111, 180,
423*287e80b3SSadaf Ebrahimi 180, 159, 163, 168, 171, 175
424*287e80b3SSadaf Ebrahimi } ;
425*287e80b3SSadaf Ebrahimi
426*287e80b3SSadaf Ebrahimi static const flex_int16_t yy_def[77] =
427*287e80b3SSadaf Ebrahimi { 0,
428*287e80b3SSadaf Ebrahimi 71, 1, 71, 71, 71, 71, 71, 72, 71, 71,
429*287e80b3SSadaf Ebrahimi 73, 73, 71, 71, 71, 74, 74, 17, 17, 74,
430*287e80b3SSadaf Ebrahimi 74, 74, 74, 74, 75, 71, 71, 71, 72, 71,
431*287e80b3SSadaf Ebrahimi 71, 73, 76, 71, 71, 71, 74, 17, 74, 17,
432*287e80b3SSadaf Ebrahimi 74, 74, 74, 74, 74, 74, 74, 71, 76, 74,
433*287e80b3SSadaf Ebrahimi 74, 74, 74, 74, 74, 74, 74, 74, 74, 71,
434*287e80b3SSadaf Ebrahimi 74, 74, 71, 74, 74, 71, 71, 71, 71, 71,
435*287e80b3SSadaf Ebrahimi 0, 71, 71, 71, 71, 71
436*287e80b3SSadaf Ebrahimi } ;
437*287e80b3SSadaf Ebrahimi
438*287e80b3SSadaf Ebrahimi static const flex_int16_t yy_nxt[234] =
439*287e80b3SSadaf Ebrahimi { 0,
440*287e80b3SSadaf Ebrahimi 4, 5, 6, 7, 8, 9, 10, 10, 4, 11,
441*287e80b3SSadaf Ebrahimi 12, 13, 14, 15, 16, 17, 18, 17, 19, 20,
442*287e80b3SSadaf Ebrahimi 20, 20, 21, 20, 20, 20, 22, 20, 23, 20,
443*287e80b3SSadaf Ebrahimi 24, 20, 20, 25, 16, 18, 17, 19, 20, 20,
444*287e80b3SSadaf Ebrahimi 21, 20, 20, 20, 22, 20, 23, 20, 24, 20,
445*287e80b3SSadaf Ebrahimi 20, 26, 27, 33, 71, 40, 60, 30, 41, 42,
446*287e80b3SSadaf Ebrahimi 48, 36, 35, 34, 31, 43, 30, 46, 71, 44,
447*287e80b3SSadaf Ebrahimi 28, 33, 71, 38, 38, 40, 41, 42, 38, 38,
448*287e80b3SSadaf Ebrahimi 38, 38, 38, 43, 45, 46, 71, 50, 44, 51,
449*287e80b3SSadaf Ebrahimi 52, 53, 39, 71, 71, 54, 55, 71, 38, 38,
450*287e80b3SSadaf Ebrahimi
451*287e80b3SSadaf Ebrahimi 38, 38, 45, 56, 57, 50, 58, 51, 52, 53,
452*287e80b3SSadaf Ebrahimi 39, 38, 38, 54, 59, 55, 38, 38, 38, 38,
453*287e80b3SSadaf Ebrahimi 38, 56, 57, 61, 58, 62, 71, 63, 64, 71,
454*287e80b3SSadaf Ebrahimi 65, 66, 67, 59, 68, 69, 38, 38, 38, 38,
455*287e80b3SSadaf Ebrahimi 70, 61, 71, 71, 62, 63, 71, 64, 65, 71,
456*287e80b3SSadaf Ebrahimi 66, 67, 68, 71, 69, 71, 71, 71, 70, 29,
457*287e80b3SSadaf Ebrahimi 29, 29, 29, 29, 29, 32, 32, 71, 32, 37,
458*287e80b3SSadaf Ebrahimi 37, 37, 37, 37, 47, 47, 47, 49, 49, 3,
459*287e80b3SSadaf Ebrahimi 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
460*287e80b3SSadaf Ebrahimi 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
461*287e80b3SSadaf Ebrahimi
462*287e80b3SSadaf Ebrahimi 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
463*287e80b3SSadaf Ebrahimi 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
464*287e80b3SSadaf Ebrahimi 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
465*287e80b3SSadaf Ebrahimi 71, 71, 71
466*287e80b3SSadaf Ebrahimi } ;
467*287e80b3SSadaf Ebrahimi
468*287e80b3SSadaf Ebrahimi static const flex_int16_t yy_chk[234] =
469*287e80b3SSadaf Ebrahimi { 0,
470*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
471*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
472*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
473*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
474*287e80b3SSadaf Ebrahimi 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
475*287e80b3SSadaf Ebrahimi 1, 1, 1, 11, 12, 18, 54, 29, 19, 21,
476*287e80b3SSadaf Ebrahimi 26, 15, 14, 13, 9, 22, 8, 24, 32, 23,
477*287e80b3SSadaf Ebrahimi 7, 11, 12, 16, 16, 18, 19, 21, 16, 16,
478*287e80b3SSadaf Ebrahimi 16, 16, 16, 22, 23, 24, 32, 40, 23, 41,
479*287e80b3SSadaf Ebrahimi 42, 44, 16, 3, 0, 45, 46, 0, 16, 16,
480*287e80b3SSadaf Ebrahimi
481*287e80b3SSadaf Ebrahimi 16, 16, 23, 50, 51, 40, 52, 41, 42, 44,
482*287e80b3SSadaf Ebrahimi 16, 17, 17, 45, 53, 46, 17, 17, 17, 17,
483*287e80b3SSadaf Ebrahimi 17, 50, 51, 55, 52, 59, 0, 60, 61, 0,
484*287e80b3SSadaf Ebrahimi 62, 63, 66, 53, 67, 68, 17, 17, 17, 17,
485*287e80b3SSadaf Ebrahimi 69, 55, 0, 0, 59, 60, 0, 61, 62, 0,
486*287e80b3SSadaf Ebrahimi 63, 66, 67, 0, 68, 0, 0, 0, 69, 72,
487*287e80b3SSadaf Ebrahimi 72, 72, 72, 72, 72, 73, 73, 0, 73, 74,
488*287e80b3SSadaf Ebrahimi 74, 74, 74, 74, 75, 75, 75, 76, 76, 71,
489*287e80b3SSadaf Ebrahimi 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
490*287e80b3SSadaf Ebrahimi 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
491*287e80b3SSadaf Ebrahimi
492*287e80b3SSadaf Ebrahimi 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
493*287e80b3SSadaf Ebrahimi 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
494*287e80b3SSadaf Ebrahimi 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
495*287e80b3SSadaf Ebrahimi 71, 71, 71
496*287e80b3SSadaf Ebrahimi } ;
497*287e80b3SSadaf Ebrahimi
498*287e80b3SSadaf Ebrahimi /* The intent behind this definition is that it'll catch
499*287e80b3SSadaf Ebrahimi * any uses of REJECT which flex missed.
500*287e80b3SSadaf Ebrahimi */
501*287e80b3SSadaf Ebrahimi #define REJECT reject_used_but_not_detected
502*287e80b3SSadaf Ebrahimi #define yymore() yymore_used_but_not_detected
503*287e80b3SSadaf Ebrahimi #define YY_MORE_ADJ 0
504*287e80b3SSadaf Ebrahimi #define YY_RESTORE_YY_MORE_OFFSET
505*287e80b3SSadaf Ebrahimi #line 1 "sqlhist.l"
506*287e80b3SSadaf Ebrahimi #line 2 "sqlhist.l"
507*287e80b3SSadaf Ebrahimi /* code here */
508*287e80b3SSadaf Ebrahimi
509*287e80b3SSadaf Ebrahimi #include <stdarg.h>
510*287e80b3SSadaf Ebrahimi #include "sqlhist-parse.h"
511*287e80b3SSadaf Ebrahimi
512*287e80b3SSadaf Ebrahimi extern int my_yyinput(void *extra, char *buf, int max);
513*287e80b3SSadaf Ebrahimi
514*287e80b3SSadaf Ebrahimi #undef YY_INPUT
515*287e80b3SSadaf Ebrahimi #define YY_INPUT(b, r, m) ({r = my_yyinput(yyextra, b, m);})
516*287e80b3SSadaf Ebrahimi
517*287e80b3SSadaf Ebrahimi #define YY_NO_INPUT
518*287e80b3SSadaf Ebrahimi #define YY_NO_UNPUT
519*287e80b3SSadaf Ebrahimi
520*287e80b3SSadaf Ebrahimi #define YY_EXTRA_TYPE struct sqlhist_bison *
521*287e80b3SSadaf Ebrahimi
522*287e80b3SSadaf Ebrahimi #define yytext yyg->yytext_r
523*287e80b3SSadaf Ebrahimi
524*287e80b3SSadaf Ebrahimi #define TRACE_SB ((struct sqlhist_bison *)yyextra)
525*287e80b3SSadaf Ebrahimi #define HANDLE_COLUMN do { TRACE_SB->line_idx += strlen(yytext); } while (0)
526*287e80b3SSadaf Ebrahimi
527*287e80b3SSadaf Ebrahimi #line 527 "sqlhist-lex.c"
528*287e80b3SSadaf Ebrahimi #line 528 "sqlhist-lex.c"
529*287e80b3SSadaf Ebrahimi
530*287e80b3SSadaf Ebrahimi #define INITIAL 0
531*287e80b3SSadaf Ebrahimi
532*287e80b3SSadaf Ebrahimi #ifndef YY_NO_UNISTD_H
533*287e80b3SSadaf Ebrahimi /* Special case for "unistd.h", since it is non-ANSI. We include it way
534*287e80b3SSadaf Ebrahimi * down here because we want the user's section 1 to have been scanned first.
535*287e80b3SSadaf Ebrahimi * The user has a chance to override it with an option.
536*287e80b3SSadaf Ebrahimi */
537*287e80b3SSadaf Ebrahimi #include <unistd.h>
538*287e80b3SSadaf Ebrahimi #endif
539*287e80b3SSadaf Ebrahimi
540*287e80b3SSadaf Ebrahimi #ifndef YY_EXTRA_TYPE
541*287e80b3SSadaf Ebrahimi #define YY_EXTRA_TYPE void *
542*287e80b3SSadaf Ebrahimi #endif
543*287e80b3SSadaf Ebrahimi
544*287e80b3SSadaf Ebrahimi /* Holds the entire state of the reentrant scanner. */
545*287e80b3SSadaf Ebrahimi struct yyguts_t
546*287e80b3SSadaf Ebrahimi {
547*287e80b3SSadaf Ebrahimi
548*287e80b3SSadaf Ebrahimi /* User-defined. Not touched by flex. */
549*287e80b3SSadaf Ebrahimi YY_EXTRA_TYPE yyextra_r;
550*287e80b3SSadaf Ebrahimi
551*287e80b3SSadaf Ebrahimi /* The rest are the same as the globals declared in the non-reentrant scanner. */
552*287e80b3SSadaf Ebrahimi FILE *yyin_r, *yyout_r;
553*287e80b3SSadaf Ebrahimi size_t yy_buffer_stack_top; /**< index of top of stack. */
554*287e80b3SSadaf Ebrahimi size_t yy_buffer_stack_max; /**< capacity of stack. */
555*287e80b3SSadaf Ebrahimi YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
556*287e80b3SSadaf Ebrahimi char yy_hold_char;
557*287e80b3SSadaf Ebrahimi int yy_n_chars;
558*287e80b3SSadaf Ebrahimi int yyleng_r;
559*287e80b3SSadaf Ebrahimi char *yy_c_buf_p;
560*287e80b3SSadaf Ebrahimi int yy_init;
561*287e80b3SSadaf Ebrahimi int yy_start;
562*287e80b3SSadaf Ebrahimi int yy_did_buffer_switch_on_eof;
563*287e80b3SSadaf Ebrahimi int yy_start_stack_ptr;
564*287e80b3SSadaf Ebrahimi int yy_start_stack_depth;
565*287e80b3SSadaf Ebrahimi int *yy_start_stack;
566*287e80b3SSadaf Ebrahimi yy_state_type yy_last_accepting_state;
567*287e80b3SSadaf Ebrahimi char* yy_last_accepting_cpos;
568*287e80b3SSadaf Ebrahimi
569*287e80b3SSadaf Ebrahimi int yylineno_r;
570*287e80b3SSadaf Ebrahimi int yy_flex_debug_r;
571*287e80b3SSadaf Ebrahimi
572*287e80b3SSadaf Ebrahimi char *yytext_r;
573*287e80b3SSadaf Ebrahimi int yy_more_flag;
574*287e80b3SSadaf Ebrahimi int yy_more_len;
575*287e80b3SSadaf Ebrahimi
576*287e80b3SSadaf Ebrahimi YYSTYPE * yylval_r;
577*287e80b3SSadaf Ebrahimi
578*287e80b3SSadaf Ebrahimi }; /* end struct yyguts_t */
579*287e80b3SSadaf Ebrahimi
580*287e80b3SSadaf Ebrahimi static int yy_init_globals ( yyscan_t yyscanner );
581*287e80b3SSadaf Ebrahimi
582*287e80b3SSadaf Ebrahimi /* This must go here because YYSTYPE and YYLTYPE are included
583*287e80b3SSadaf Ebrahimi * from bison output in section 1.*/
584*287e80b3SSadaf Ebrahimi # define yylval yyg->yylval_r
585*287e80b3SSadaf Ebrahimi
586*287e80b3SSadaf Ebrahimi int yylex_init (yyscan_t* scanner);
587*287e80b3SSadaf Ebrahimi
588*287e80b3SSadaf Ebrahimi int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);
589*287e80b3SSadaf Ebrahimi
590*287e80b3SSadaf Ebrahimi /* Accessor methods to globals.
591*287e80b3SSadaf Ebrahimi These are made visible to non-reentrant scanners for convenience. */
592*287e80b3SSadaf Ebrahimi
593*287e80b3SSadaf Ebrahimi int yylex_destroy ( yyscan_t yyscanner );
594*287e80b3SSadaf Ebrahimi
595*287e80b3SSadaf Ebrahimi int yyget_debug ( yyscan_t yyscanner );
596*287e80b3SSadaf Ebrahimi
597*287e80b3SSadaf Ebrahimi void yyset_debug ( int debug_flag , yyscan_t yyscanner );
598*287e80b3SSadaf Ebrahimi
599*287e80b3SSadaf Ebrahimi YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner );
600*287e80b3SSadaf Ebrahimi
601*287e80b3SSadaf Ebrahimi void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner );
602*287e80b3SSadaf Ebrahimi
603*287e80b3SSadaf Ebrahimi FILE *yyget_in ( yyscan_t yyscanner );
604*287e80b3SSadaf Ebrahimi
605*287e80b3SSadaf Ebrahimi void yyset_in ( FILE * _in_str , yyscan_t yyscanner );
606*287e80b3SSadaf Ebrahimi
607*287e80b3SSadaf Ebrahimi FILE *yyget_out ( yyscan_t yyscanner );
608*287e80b3SSadaf Ebrahimi
609*287e80b3SSadaf Ebrahimi void yyset_out ( FILE * _out_str , yyscan_t yyscanner );
610*287e80b3SSadaf Ebrahimi
611*287e80b3SSadaf Ebrahimi int yyget_leng ( yyscan_t yyscanner );
612*287e80b3SSadaf Ebrahimi
613*287e80b3SSadaf Ebrahimi char *yyget_text ( yyscan_t yyscanner );
614*287e80b3SSadaf Ebrahimi
615*287e80b3SSadaf Ebrahimi int yyget_lineno ( yyscan_t yyscanner );
616*287e80b3SSadaf Ebrahimi
617*287e80b3SSadaf Ebrahimi void yyset_lineno ( int _line_number , yyscan_t yyscanner );
618*287e80b3SSadaf Ebrahimi
619*287e80b3SSadaf Ebrahimi int yyget_column ( yyscan_t yyscanner );
620*287e80b3SSadaf Ebrahimi
621*287e80b3SSadaf Ebrahimi void yyset_column ( int _column_no , yyscan_t yyscanner );
622*287e80b3SSadaf Ebrahimi
623*287e80b3SSadaf Ebrahimi YYSTYPE * yyget_lval ( yyscan_t yyscanner );
624*287e80b3SSadaf Ebrahimi
625*287e80b3SSadaf Ebrahimi void yyset_lval ( YYSTYPE * yylval_param , yyscan_t yyscanner );
626*287e80b3SSadaf Ebrahimi
627*287e80b3SSadaf Ebrahimi /* Macros after this point can all be overridden by user definitions in
628*287e80b3SSadaf Ebrahimi * section 1.
629*287e80b3SSadaf Ebrahimi */
630*287e80b3SSadaf Ebrahimi
631*287e80b3SSadaf Ebrahimi #ifndef YY_SKIP_YYWRAP
632*287e80b3SSadaf Ebrahimi #ifdef __cplusplus
633*287e80b3SSadaf Ebrahimi extern "C" int yywrap ( yyscan_t yyscanner );
634*287e80b3SSadaf Ebrahimi #else
635*287e80b3SSadaf Ebrahimi extern int yywrap ( yyscan_t yyscanner );
636*287e80b3SSadaf Ebrahimi #endif
637*287e80b3SSadaf Ebrahimi #endif
638*287e80b3SSadaf Ebrahimi
639*287e80b3SSadaf Ebrahimi #ifndef YY_NO_UNPUT
640*287e80b3SSadaf Ebrahimi
641*287e80b3SSadaf Ebrahimi static void yyunput ( int c, char *buf_ptr , yyscan_t yyscanner);
642*287e80b3SSadaf Ebrahimi
643*287e80b3SSadaf Ebrahimi #endif
644*287e80b3SSadaf Ebrahimi
645*287e80b3SSadaf Ebrahimi #ifndef yytext_ptr
646*287e80b3SSadaf Ebrahimi static void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner);
647*287e80b3SSadaf Ebrahimi #endif
648*287e80b3SSadaf Ebrahimi
649*287e80b3SSadaf Ebrahimi #ifdef YY_NEED_STRLEN
650*287e80b3SSadaf Ebrahimi static int yy_flex_strlen ( const char * , yyscan_t yyscanner);
651*287e80b3SSadaf Ebrahimi #endif
652*287e80b3SSadaf Ebrahimi
653*287e80b3SSadaf Ebrahimi #ifndef YY_NO_INPUT
654*287e80b3SSadaf Ebrahimi #ifdef __cplusplus
655*287e80b3SSadaf Ebrahimi static int yyinput ( yyscan_t yyscanner );
656*287e80b3SSadaf Ebrahimi #else
657*287e80b3SSadaf Ebrahimi static int input ( yyscan_t yyscanner );
658*287e80b3SSadaf Ebrahimi #endif
659*287e80b3SSadaf Ebrahimi
660*287e80b3SSadaf Ebrahimi #endif
661*287e80b3SSadaf Ebrahimi
662*287e80b3SSadaf Ebrahimi /* Amount of stuff to slurp up with each read. */
663*287e80b3SSadaf Ebrahimi #ifndef YY_READ_BUF_SIZE
664*287e80b3SSadaf Ebrahimi #ifdef __ia64__
665*287e80b3SSadaf Ebrahimi /* On IA-64, the buffer size is 16k, not 8k */
666*287e80b3SSadaf Ebrahimi #define YY_READ_BUF_SIZE 16384
667*287e80b3SSadaf Ebrahimi #else
668*287e80b3SSadaf Ebrahimi #define YY_READ_BUF_SIZE 8192
669*287e80b3SSadaf Ebrahimi #endif /* __ia64__ */
670*287e80b3SSadaf Ebrahimi #endif
671*287e80b3SSadaf Ebrahimi
672*287e80b3SSadaf Ebrahimi /* Copy whatever the last rule matched to the standard output. */
673*287e80b3SSadaf Ebrahimi #ifndef ECHO
674*287e80b3SSadaf Ebrahimi /* This used to be an fputs(), but since the string might contain NUL's,
675*287e80b3SSadaf Ebrahimi * we now use fwrite().
676*287e80b3SSadaf Ebrahimi */
677*287e80b3SSadaf Ebrahimi #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
678*287e80b3SSadaf Ebrahimi #endif
679*287e80b3SSadaf Ebrahimi
680*287e80b3SSadaf Ebrahimi /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
681*287e80b3SSadaf Ebrahimi * is returned in "result".
682*287e80b3SSadaf Ebrahimi */
683*287e80b3SSadaf Ebrahimi #ifndef YY_INPUT
684*287e80b3SSadaf Ebrahimi #define YY_INPUT(buf,result,max_size) \
685*287e80b3SSadaf Ebrahimi if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
686*287e80b3SSadaf Ebrahimi { \
687*287e80b3SSadaf Ebrahimi int c = '*'; \
688*287e80b3SSadaf Ebrahimi int n; \
689*287e80b3SSadaf Ebrahimi for ( n = 0; n < max_size && \
690*287e80b3SSadaf Ebrahimi (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
691*287e80b3SSadaf Ebrahimi buf[n] = (char) c; \
692*287e80b3SSadaf Ebrahimi if ( c == '\n' ) \
693*287e80b3SSadaf Ebrahimi buf[n++] = (char) c; \
694*287e80b3SSadaf Ebrahimi if ( c == EOF && ferror( yyin ) ) \
695*287e80b3SSadaf Ebrahimi YY_FATAL_ERROR( "input in flex scanner failed" ); \
696*287e80b3SSadaf Ebrahimi result = n; \
697*287e80b3SSadaf Ebrahimi } \
698*287e80b3SSadaf Ebrahimi else \
699*287e80b3SSadaf Ebrahimi { \
700*287e80b3SSadaf Ebrahimi errno=0; \
701*287e80b3SSadaf Ebrahimi while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
702*287e80b3SSadaf Ebrahimi { \
703*287e80b3SSadaf Ebrahimi if( errno != EINTR) \
704*287e80b3SSadaf Ebrahimi { \
705*287e80b3SSadaf Ebrahimi YY_FATAL_ERROR( "input in flex scanner failed" ); \
706*287e80b3SSadaf Ebrahimi break; \
707*287e80b3SSadaf Ebrahimi } \
708*287e80b3SSadaf Ebrahimi errno=0; \
709*287e80b3SSadaf Ebrahimi clearerr(yyin); \
710*287e80b3SSadaf Ebrahimi } \
711*287e80b3SSadaf Ebrahimi }\
712*287e80b3SSadaf Ebrahimi \
713*287e80b3SSadaf Ebrahimi
714*287e80b3SSadaf Ebrahimi #endif
715*287e80b3SSadaf Ebrahimi
716*287e80b3SSadaf Ebrahimi /* No semi-colon after return; correct usage is to write "yyterminate();" -
717*287e80b3SSadaf Ebrahimi * we don't want an extra ';' after the "return" because that will cause
718*287e80b3SSadaf Ebrahimi * some compilers to complain about unreachable statements.
719*287e80b3SSadaf Ebrahimi */
720*287e80b3SSadaf Ebrahimi #ifndef yyterminate
721*287e80b3SSadaf Ebrahimi #define yyterminate() return YY_NULL
722*287e80b3SSadaf Ebrahimi #endif
723*287e80b3SSadaf Ebrahimi
724*287e80b3SSadaf Ebrahimi /* Number of entries by which start-condition stack grows. */
725*287e80b3SSadaf Ebrahimi #ifndef YY_START_STACK_INCR
726*287e80b3SSadaf Ebrahimi #define YY_START_STACK_INCR 25
727*287e80b3SSadaf Ebrahimi #endif
728*287e80b3SSadaf Ebrahimi
729*287e80b3SSadaf Ebrahimi /* Report a fatal error. */
730*287e80b3SSadaf Ebrahimi #ifndef YY_FATAL_ERROR
731*287e80b3SSadaf Ebrahimi #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
732*287e80b3SSadaf Ebrahimi #endif
733*287e80b3SSadaf Ebrahimi
734*287e80b3SSadaf Ebrahimi /* end tables serialization structures and prototypes */
735*287e80b3SSadaf Ebrahimi
736*287e80b3SSadaf Ebrahimi /* Default declaration of generated scanner - a define so the user can
737*287e80b3SSadaf Ebrahimi * easily add parameters.
738*287e80b3SSadaf Ebrahimi */
739*287e80b3SSadaf Ebrahimi #ifndef YY_DECL
740*287e80b3SSadaf Ebrahimi #define YY_DECL_IS_OURS 1
741*287e80b3SSadaf Ebrahimi
742*287e80b3SSadaf Ebrahimi extern int yylex \
743*287e80b3SSadaf Ebrahimi (YYSTYPE * yylval_param , yyscan_t yyscanner);
744*287e80b3SSadaf Ebrahimi
745*287e80b3SSadaf Ebrahimi #define YY_DECL int yylex \
746*287e80b3SSadaf Ebrahimi (YYSTYPE * yylval_param , yyscan_t yyscanner)
747*287e80b3SSadaf Ebrahimi #endif /* !YY_DECL */
748*287e80b3SSadaf Ebrahimi
749*287e80b3SSadaf Ebrahimi /* Code executed at the beginning of each rule, after yytext and yyleng
750*287e80b3SSadaf Ebrahimi * have been set up.
751*287e80b3SSadaf Ebrahimi */
752*287e80b3SSadaf Ebrahimi #ifndef YY_USER_ACTION
753*287e80b3SSadaf Ebrahimi #define YY_USER_ACTION
754*287e80b3SSadaf Ebrahimi #endif
755*287e80b3SSadaf Ebrahimi
756*287e80b3SSadaf Ebrahimi /* Code executed at the end of each rule. */
757*287e80b3SSadaf Ebrahimi #ifndef YY_BREAK
758*287e80b3SSadaf Ebrahimi #define YY_BREAK /*LINTED*/break;
759*287e80b3SSadaf Ebrahimi #endif
760*287e80b3SSadaf Ebrahimi
761*287e80b3SSadaf Ebrahimi #define YY_RULE_SETUP \
762*287e80b3SSadaf Ebrahimi YY_USER_ACTION
763*287e80b3SSadaf Ebrahimi
764*287e80b3SSadaf Ebrahimi /** The main scanner function which does all the work.
765*287e80b3SSadaf Ebrahimi */
766*287e80b3SSadaf Ebrahimi YY_DECL
767*287e80b3SSadaf Ebrahimi {
768*287e80b3SSadaf Ebrahimi yy_state_type yy_current_state;
769*287e80b3SSadaf Ebrahimi char *yy_cp, *yy_bp;
770*287e80b3SSadaf Ebrahimi int yy_act;
771*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
772*287e80b3SSadaf Ebrahimi
773*287e80b3SSadaf Ebrahimi yylval = yylval_param;
774*287e80b3SSadaf Ebrahimi
775*287e80b3SSadaf Ebrahimi if ( !yyg->yy_init )
776*287e80b3SSadaf Ebrahimi {
777*287e80b3SSadaf Ebrahimi yyg->yy_init = 1;
778*287e80b3SSadaf Ebrahimi
779*287e80b3SSadaf Ebrahimi #ifdef YY_USER_INIT
780*287e80b3SSadaf Ebrahimi YY_USER_INIT;
781*287e80b3SSadaf Ebrahimi #endif
782*287e80b3SSadaf Ebrahimi
783*287e80b3SSadaf Ebrahimi if ( ! yyg->yy_start )
784*287e80b3SSadaf Ebrahimi yyg->yy_start = 1; /* first start state */
785*287e80b3SSadaf Ebrahimi
786*287e80b3SSadaf Ebrahimi if ( ! yyin )
787*287e80b3SSadaf Ebrahimi yyin = stdin;
788*287e80b3SSadaf Ebrahimi
789*287e80b3SSadaf Ebrahimi if ( ! yyout )
790*287e80b3SSadaf Ebrahimi yyout = stdout;
791*287e80b3SSadaf Ebrahimi
792*287e80b3SSadaf Ebrahimi if ( ! YY_CURRENT_BUFFER ) {
793*287e80b3SSadaf Ebrahimi yyensure_buffer_stack (yyscanner);
794*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE =
795*287e80b3SSadaf Ebrahimi yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
796*287e80b3SSadaf Ebrahimi }
797*287e80b3SSadaf Ebrahimi
798*287e80b3SSadaf Ebrahimi yy_load_buffer_state( yyscanner );
799*287e80b3SSadaf Ebrahimi }
800*287e80b3SSadaf Ebrahimi
801*287e80b3SSadaf Ebrahimi {
802*287e80b3SSadaf Ebrahimi #line 33 "sqlhist.l"
803*287e80b3SSadaf Ebrahimi
804*287e80b3SSadaf Ebrahimi
805*287e80b3SSadaf Ebrahimi #line 805 "sqlhist-lex.c"
806*287e80b3SSadaf Ebrahimi
807*287e80b3SSadaf Ebrahimi while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
808*287e80b3SSadaf Ebrahimi {
809*287e80b3SSadaf Ebrahimi yy_cp = yyg->yy_c_buf_p;
810*287e80b3SSadaf Ebrahimi
811*287e80b3SSadaf Ebrahimi /* Support of yytext. */
812*287e80b3SSadaf Ebrahimi *yy_cp = yyg->yy_hold_char;
813*287e80b3SSadaf Ebrahimi
814*287e80b3SSadaf Ebrahimi /* yy_bp points to the position in yy_ch_buf of the start of
815*287e80b3SSadaf Ebrahimi * the current run.
816*287e80b3SSadaf Ebrahimi */
817*287e80b3SSadaf Ebrahimi yy_bp = yy_cp;
818*287e80b3SSadaf Ebrahimi
819*287e80b3SSadaf Ebrahimi yy_current_state = yyg->yy_start;
820*287e80b3SSadaf Ebrahimi yy_match:
821*287e80b3SSadaf Ebrahimi do
822*287e80b3SSadaf Ebrahimi {
823*287e80b3SSadaf Ebrahimi YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
824*287e80b3SSadaf Ebrahimi if ( yy_accept[yy_current_state] )
825*287e80b3SSadaf Ebrahimi {
826*287e80b3SSadaf Ebrahimi yyg->yy_last_accepting_state = yy_current_state;
827*287e80b3SSadaf Ebrahimi yyg->yy_last_accepting_cpos = yy_cp;
828*287e80b3SSadaf Ebrahimi }
829*287e80b3SSadaf Ebrahimi while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
830*287e80b3SSadaf Ebrahimi {
831*287e80b3SSadaf Ebrahimi yy_current_state = (int) yy_def[yy_current_state];
832*287e80b3SSadaf Ebrahimi if ( yy_current_state >= 72 )
833*287e80b3SSadaf Ebrahimi yy_c = yy_meta[yy_c];
834*287e80b3SSadaf Ebrahimi }
835*287e80b3SSadaf Ebrahimi yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
836*287e80b3SSadaf Ebrahimi ++yy_cp;
837*287e80b3SSadaf Ebrahimi }
838*287e80b3SSadaf Ebrahimi while ( yy_base[yy_current_state] != 180 );
839*287e80b3SSadaf Ebrahimi
840*287e80b3SSadaf Ebrahimi yy_find_action:
841*287e80b3SSadaf Ebrahimi yy_act = yy_accept[yy_current_state];
842*287e80b3SSadaf Ebrahimi if ( yy_act == 0 )
843*287e80b3SSadaf Ebrahimi { /* have to back up */
844*287e80b3SSadaf Ebrahimi yy_cp = yyg->yy_last_accepting_cpos;
845*287e80b3SSadaf Ebrahimi yy_current_state = yyg->yy_last_accepting_state;
846*287e80b3SSadaf Ebrahimi yy_act = yy_accept[yy_current_state];
847*287e80b3SSadaf Ebrahimi }
848*287e80b3SSadaf Ebrahimi
849*287e80b3SSadaf Ebrahimi YY_DO_BEFORE_ACTION;
850*287e80b3SSadaf Ebrahimi
851*287e80b3SSadaf Ebrahimi do_action: /* This label is used only to access EOF actions. */
852*287e80b3SSadaf Ebrahimi
853*287e80b3SSadaf Ebrahimi switch ( yy_act )
854*287e80b3SSadaf Ebrahimi { /* beginning of action switch */
855*287e80b3SSadaf Ebrahimi case 0: /* must back up */
856*287e80b3SSadaf Ebrahimi /* undo the effects of YY_DO_BEFORE_ACTION */
857*287e80b3SSadaf Ebrahimi *yy_cp = yyg->yy_hold_char;
858*287e80b3SSadaf Ebrahimi yy_cp = yyg->yy_last_accepting_cpos;
859*287e80b3SSadaf Ebrahimi yy_current_state = yyg->yy_last_accepting_state;
860*287e80b3SSadaf Ebrahimi goto yy_find_action;
861*287e80b3SSadaf Ebrahimi
862*287e80b3SSadaf Ebrahimi case 1:
863*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
864*287e80b3SSadaf Ebrahimi #line 35 "sqlhist.l"
865*287e80b3SSadaf Ebrahimi { HANDLE_COLUMN; return SELECT; }
866*287e80b3SSadaf Ebrahimi YY_BREAK
867*287e80b3SSadaf Ebrahimi case 2:
868*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
869*287e80b3SSadaf Ebrahimi #line 36 "sqlhist.l"
870*287e80b3SSadaf Ebrahimi { HANDLE_COLUMN; return AS; }
871*287e80b3SSadaf Ebrahimi YY_BREAK
872*287e80b3SSadaf Ebrahimi case 3:
873*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
874*287e80b3SSadaf Ebrahimi #line 37 "sqlhist.l"
875*287e80b3SSadaf Ebrahimi { HANDLE_COLUMN; return FROM; }
876*287e80b3SSadaf Ebrahimi YY_BREAK
877*287e80b3SSadaf Ebrahimi case 4:
878*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
879*287e80b3SSadaf Ebrahimi #line 38 "sqlhist.l"
880*287e80b3SSadaf Ebrahimi { HANDLE_COLUMN; return JOIN; }
881*287e80b3SSadaf Ebrahimi YY_BREAK
882*287e80b3SSadaf Ebrahimi case 5:
883*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
884*287e80b3SSadaf Ebrahimi #line 39 "sqlhist.l"
885*287e80b3SSadaf Ebrahimi { HANDLE_COLUMN; return ON; }
886*287e80b3SSadaf Ebrahimi YY_BREAK
887*287e80b3SSadaf Ebrahimi case 6:
888*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
889*287e80b3SSadaf Ebrahimi #line 40 "sqlhist.l"
890*287e80b3SSadaf Ebrahimi { HANDLE_COLUMN; return WHERE; }
891*287e80b3SSadaf Ebrahimi YY_BREAK
892*287e80b3SSadaf Ebrahimi case 7:
893*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
894*287e80b3SSadaf Ebrahimi #line 41 "sqlhist.l"
895*287e80b3SSadaf Ebrahimi { HANDLE_COLUMN; return CAST; }
896*287e80b3SSadaf Ebrahimi YY_BREAK
897*287e80b3SSadaf Ebrahimi case 8:
898*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
899*287e80b3SSadaf Ebrahimi #line 43 "sqlhist.l"
900*287e80b3SSadaf Ebrahimi {
901*287e80b3SSadaf Ebrahimi HANDLE_COLUMN;
902*287e80b3SSadaf Ebrahimi yylval->string = store_str(TRACE_SB, yyg->yytext_r);
903*287e80b3SSadaf Ebrahimi return FIELD;
904*287e80b3SSadaf Ebrahimi }
905*287e80b3SSadaf Ebrahimi YY_BREAK
906*287e80b3SSadaf Ebrahimi case 9:
907*287e80b3SSadaf Ebrahimi /* rule 9 can match eol */
908*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
909*287e80b3SSadaf Ebrahimi #line 49 "sqlhist.l"
910*287e80b3SSadaf Ebrahimi {
911*287e80b3SSadaf Ebrahimi HANDLE_COLUMN;
912*287e80b3SSadaf Ebrahimi yylval->string = store_str(TRACE_SB, yyg->yytext_r);
913*287e80b3SSadaf Ebrahimi return STRING;
914*287e80b3SSadaf Ebrahimi }
915*287e80b3SSadaf Ebrahimi YY_BREAK
916*287e80b3SSadaf Ebrahimi case 10:
917*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
918*287e80b3SSadaf Ebrahimi #line 55 "sqlhist.l"
919*287e80b3SSadaf Ebrahimi {
920*287e80b3SSadaf Ebrahimi const char *str = yyg->yytext_r;
921*287e80b3SSadaf Ebrahimi HANDLE_COLUMN;
922*287e80b3SSadaf Ebrahimi if (str[0] == '\\') { str++; };
923*287e80b3SSadaf Ebrahimi yylval->string = store_str(TRACE_SB, str);
924*287e80b3SSadaf Ebrahimi return FIELD;
925*287e80b3SSadaf Ebrahimi }
926*287e80b3SSadaf Ebrahimi YY_BREAK
927*287e80b3SSadaf Ebrahimi case 11:
928*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
929*287e80b3SSadaf Ebrahimi #line 63 "sqlhist.l"
930*287e80b3SSadaf Ebrahimi {
931*287e80b3SSadaf Ebrahimi HANDLE_COLUMN;
932*287e80b3SSadaf Ebrahimi yylval->number = strtol(yyg->yytext_r, NULL, 0);
933*287e80b3SSadaf Ebrahimi return NUMBER;
934*287e80b3SSadaf Ebrahimi }
935*287e80b3SSadaf Ebrahimi YY_BREAK
936*287e80b3SSadaf Ebrahimi case 12:
937*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
938*287e80b3SSadaf Ebrahimi #line 69 "sqlhist.l"
939*287e80b3SSadaf Ebrahimi {
940*287e80b3SSadaf Ebrahimi HANDLE_COLUMN;
941*287e80b3SSadaf Ebrahimi yylval->number = strtol(yyg->yytext_r, NULL, 0);
942*287e80b3SSadaf Ebrahimi return NUMBER;
943*287e80b3SSadaf Ebrahimi }
944*287e80b3SSadaf Ebrahimi YY_BREAK
945*287e80b3SSadaf Ebrahimi case 13:
946*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
947*287e80b3SSadaf Ebrahimi #line 75 "sqlhist.l"
948*287e80b3SSadaf Ebrahimi { HANDLE_COLUMN; return NEQ; }
949*287e80b3SSadaf Ebrahimi YY_BREAK
950*287e80b3SSadaf Ebrahimi case 14:
951*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
952*287e80b3SSadaf Ebrahimi #line 76 "sqlhist.l"
953*287e80b3SSadaf Ebrahimi { HANDLE_COLUMN; return LE; }
954*287e80b3SSadaf Ebrahimi YY_BREAK
955*287e80b3SSadaf Ebrahimi case 15:
956*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
957*287e80b3SSadaf Ebrahimi #line 77 "sqlhist.l"
958*287e80b3SSadaf Ebrahimi { HANDLE_COLUMN; return GE; }
959*287e80b3SSadaf Ebrahimi YY_BREAK
960*287e80b3SSadaf Ebrahimi case 16:
961*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
962*287e80b3SSadaf Ebrahimi #line 78 "sqlhist.l"
963*287e80b3SSadaf Ebrahimi { HANDLE_COLUMN; return EQ; }
964*287e80b3SSadaf Ebrahimi YY_BREAK
965*287e80b3SSadaf Ebrahimi case 17:
966*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
967*287e80b3SSadaf Ebrahimi #line 79 "sqlhist.l"
968*287e80b3SSadaf Ebrahimi { HANDLE_COLUMN; return AND; }
969*287e80b3SSadaf Ebrahimi YY_BREAK
970*287e80b3SSadaf Ebrahimi case 18:
971*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
972*287e80b3SSadaf Ebrahimi #line 80 "sqlhist.l"
973*287e80b3SSadaf Ebrahimi { HANDLE_COLUMN; return OR; }
974*287e80b3SSadaf Ebrahimi YY_BREAK
975*287e80b3SSadaf Ebrahimi case 19:
976*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
977*287e80b3SSadaf Ebrahimi #line 81 "sqlhist.l"
978*287e80b3SSadaf Ebrahimi { HANDLE_COLUMN; return yytext[0]; }
979*287e80b3SSadaf Ebrahimi YY_BREAK
980*287e80b3SSadaf Ebrahimi case 20:
981*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
982*287e80b3SSadaf Ebrahimi #line 83 "sqlhist.l"
983*287e80b3SSadaf Ebrahimi { HANDLE_COLUMN; return yytext[0]; }
984*287e80b3SSadaf Ebrahimi YY_BREAK
985*287e80b3SSadaf Ebrahimi case 21:
986*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
987*287e80b3SSadaf Ebrahimi #line 85 "sqlhist.l"
988*287e80b3SSadaf Ebrahimi { HANDLE_COLUMN; }
989*287e80b3SSadaf Ebrahimi YY_BREAK
990*287e80b3SSadaf Ebrahimi case 22:
991*287e80b3SSadaf Ebrahimi /* rule 22 can match eol */
992*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
993*287e80b3SSadaf Ebrahimi #line 86 "sqlhist.l"
994*287e80b3SSadaf Ebrahimi { TRACE_SB->line_idx = 0; TRACE_SB->line_no++; }
995*287e80b3SSadaf Ebrahimi YY_BREAK
996*287e80b3SSadaf Ebrahimi case 23:
997*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
998*287e80b3SSadaf Ebrahimi #line 88 "sqlhist.l"
999*287e80b3SSadaf Ebrahimi { HANDLE_COLUMN; return PARSE_ERROR; }
1000*287e80b3SSadaf Ebrahimi YY_BREAK
1001*287e80b3SSadaf Ebrahimi case 24:
1002*287e80b3SSadaf Ebrahimi YY_RULE_SETUP
1003*287e80b3SSadaf Ebrahimi #line 89 "sqlhist.l"
1004*287e80b3SSadaf Ebrahimi ECHO;
1005*287e80b3SSadaf Ebrahimi YY_BREAK
1006*287e80b3SSadaf Ebrahimi #line 1006 "sqlhist-lex.c"
1007*287e80b3SSadaf Ebrahimi case YY_STATE_EOF(INITIAL):
1008*287e80b3SSadaf Ebrahimi yyterminate();
1009*287e80b3SSadaf Ebrahimi
1010*287e80b3SSadaf Ebrahimi case YY_END_OF_BUFFER:
1011*287e80b3SSadaf Ebrahimi {
1012*287e80b3SSadaf Ebrahimi /* Amount of text matched not including the EOB char. */
1013*287e80b3SSadaf Ebrahimi int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
1014*287e80b3SSadaf Ebrahimi
1015*287e80b3SSadaf Ebrahimi /* Undo the effects of YY_DO_BEFORE_ACTION. */
1016*287e80b3SSadaf Ebrahimi *yy_cp = yyg->yy_hold_char;
1017*287e80b3SSadaf Ebrahimi YY_RESTORE_YY_MORE_OFFSET
1018*287e80b3SSadaf Ebrahimi
1019*287e80b3SSadaf Ebrahimi if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1020*287e80b3SSadaf Ebrahimi {
1021*287e80b3SSadaf Ebrahimi /* We're scanning a new file or input source. It's
1022*287e80b3SSadaf Ebrahimi * possible that this happened because the user
1023*287e80b3SSadaf Ebrahimi * just pointed yyin at a new source and called
1024*287e80b3SSadaf Ebrahimi * yylex(). If so, then we have to assure
1025*287e80b3SSadaf Ebrahimi * consistency between YY_CURRENT_BUFFER and our
1026*287e80b3SSadaf Ebrahimi * globals. Here is the right place to do so, because
1027*287e80b3SSadaf Ebrahimi * this is the first action (other than possibly a
1028*287e80b3SSadaf Ebrahimi * back-up) that will match for the new input source.
1029*287e80b3SSadaf Ebrahimi */
1030*287e80b3SSadaf Ebrahimi yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1031*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1032*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1033*287e80b3SSadaf Ebrahimi }
1034*287e80b3SSadaf Ebrahimi
1035*287e80b3SSadaf Ebrahimi /* Note that here we test for yy_c_buf_p "<=" to the position
1036*287e80b3SSadaf Ebrahimi * of the first EOB in the buffer, since yy_c_buf_p will
1037*287e80b3SSadaf Ebrahimi * already have been incremented past the NUL character
1038*287e80b3SSadaf Ebrahimi * (since all states make transitions on EOB to the
1039*287e80b3SSadaf Ebrahimi * end-of-buffer state). Contrast this with the test
1040*287e80b3SSadaf Ebrahimi * in input().
1041*287e80b3SSadaf Ebrahimi */
1042*287e80b3SSadaf Ebrahimi if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1043*287e80b3SSadaf Ebrahimi { /* This was really a NUL. */
1044*287e80b3SSadaf Ebrahimi yy_state_type yy_next_state;
1045*287e80b3SSadaf Ebrahimi
1046*287e80b3SSadaf Ebrahimi yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
1047*287e80b3SSadaf Ebrahimi
1048*287e80b3SSadaf Ebrahimi yy_current_state = yy_get_previous_state( yyscanner );
1049*287e80b3SSadaf Ebrahimi
1050*287e80b3SSadaf Ebrahimi /* Okay, we're now positioned to make the NUL
1051*287e80b3SSadaf Ebrahimi * transition. We couldn't have
1052*287e80b3SSadaf Ebrahimi * yy_get_previous_state() go ahead and do it
1053*287e80b3SSadaf Ebrahimi * for us because it doesn't know how to deal
1054*287e80b3SSadaf Ebrahimi * with the possibility of jamming (and we don't
1055*287e80b3SSadaf Ebrahimi * want to build jamming into it because then it
1056*287e80b3SSadaf Ebrahimi * will run more slowly).
1057*287e80b3SSadaf Ebrahimi */
1058*287e80b3SSadaf Ebrahimi
1059*287e80b3SSadaf Ebrahimi yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
1060*287e80b3SSadaf Ebrahimi
1061*287e80b3SSadaf Ebrahimi yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1062*287e80b3SSadaf Ebrahimi
1063*287e80b3SSadaf Ebrahimi if ( yy_next_state )
1064*287e80b3SSadaf Ebrahimi {
1065*287e80b3SSadaf Ebrahimi /* Consume the NUL. */
1066*287e80b3SSadaf Ebrahimi yy_cp = ++yyg->yy_c_buf_p;
1067*287e80b3SSadaf Ebrahimi yy_current_state = yy_next_state;
1068*287e80b3SSadaf Ebrahimi goto yy_match;
1069*287e80b3SSadaf Ebrahimi }
1070*287e80b3SSadaf Ebrahimi
1071*287e80b3SSadaf Ebrahimi else
1072*287e80b3SSadaf Ebrahimi {
1073*287e80b3SSadaf Ebrahimi yy_cp = yyg->yy_c_buf_p;
1074*287e80b3SSadaf Ebrahimi goto yy_find_action;
1075*287e80b3SSadaf Ebrahimi }
1076*287e80b3SSadaf Ebrahimi }
1077*287e80b3SSadaf Ebrahimi
1078*287e80b3SSadaf Ebrahimi else switch ( yy_get_next_buffer( yyscanner ) )
1079*287e80b3SSadaf Ebrahimi {
1080*287e80b3SSadaf Ebrahimi case EOB_ACT_END_OF_FILE:
1081*287e80b3SSadaf Ebrahimi {
1082*287e80b3SSadaf Ebrahimi yyg->yy_did_buffer_switch_on_eof = 0;
1083*287e80b3SSadaf Ebrahimi
1084*287e80b3SSadaf Ebrahimi if ( yywrap( yyscanner ) )
1085*287e80b3SSadaf Ebrahimi {
1086*287e80b3SSadaf Ebrahimi /* Note: because we've taken care in
1087*287e80b3SSadaf Ebrahimi * yy_get_next_buffer() to have set up
1088*287e80b3SSadaf Ebrahimi * yytext, we can now set up
1089*287e80b3SSadaf Ebrahimi * yy_c_buf_p so that if some total
1090*287e80b3SSadaf Ebrahimi * hoser (like flex itself) wants to
1091*287e80b3SSadaf Ebrahimi * call the scanner after we return the
1092*287e80b3SSadaf Ebrahimi * YY_NULL, it'll still work - another
1093*287e80b3SSadaf Ebrahimi * YY_NULL will get returned.
1094*287e80b3SSadaf Ebrahimi */
1095*287e80b3SSadaf Ebrahimi yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
1096*287e80b3SSadaf Ebrahimi
1097*287e80b3SSadaf Ebrahimi yy_act = YY_STATE_EOF(YY_START);
1098*287e80b3SSadaf Ebrahimi goto do_action;
1099*287e80b3SSadaf Ebrahimi }
1100*287e80b3SSadaf Ebrahimi
1101*287e80b3SSadaf Ebrahimi else
1102*287e80b3SSadaf Ebrahimi {
1103*287e80b3SSadaf Ebrahimi if ( ! yyg->yy_did_buffer_switch_on_eof )
1104*287e80b3SSadaf Ebrahimi YY_NEW_FILE;
1105*287e80b3SSadaf Ebrahimi }
1106*287e80b3SSadaf Ebrahimi break;
1107*287e80b3SSadaf Ebrahimi }
1108*287e80b3SSadaf Ebrahimi
1109*287e80b3SSadaf Ebrahimi case EOB_ACT_CONTINUE_SCAN:
1110*287e80b3SSadaf Ebrahimi yyg->yy_c_buf_p =
1111*287e80b3SSadaf Ebrahimi yyg->yytext_ptr + yy_amount_of_matched_text;
1112*287e80b3SSadaf Ebrahimi
1113*287e80b3SSadaf Ebrahimi yy_current_state = yy_get_previous_state( yyscanner );
1114*287e80b3SSadaf Ebrahimi
1115*287e80b3SSadaf Ebrahimi yy_cp = yyg->yy_c_buf_p;
1116*287e80b3SSadaf Ebrahimi yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1117*287e80b3SSadaf Ebrahimi goto yy_match;
1118*287e80b3SSadaf Ebrahimi
1119*287e80b3SSadaf Ebrahimi case EOB_ACT_LAST_MATCH:
1120*287e80b3SSadaf Ebrahimi yyg->yy_c_buf_p =
1121*287e80b3SSadaf Ebrahimi &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
1122*287e80b3SSadaf Ebrahimi
1123*287e80b3SSadaf Ebrahimi yy_current_state = yy_get_previous_state( yyscanner );
1124*287e80b3SSadaf Ebrahimi
1125*287e80b3SSadaf Ebrahimi yy_cp = yyg->yy_c_buf_p;
1126*287e80b3SSadaf Ebrahimi yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1127*287e80b3SSadaf Ebrahimi goto yy_find_action;
1128*287e80b3SSadaf Ebrahimi }
1129*287e80b3SSadaf Ebrahimi break;
1130*287e80b3SSadaf Ebrahimi }
1131*287e80b3SSadaf Ebrahimi
1132*287e80b3SSadaf Ebrahimi default:
1133*287e80b3SSadaf Ebrahimi YY_FATAL_ERROR(
1134*287e80b3SSadaf Ebrahimi "fatal flex scanner internal error--no action found" );
1135*287e80b3SSadaf Ebrahimi } /* end of action switch */
1136*287e80b3SSadaf Ebrahimi } /* end of scanning one token */
1137*287e80b3SSadaf Ebrahimi } /* end of user's declarations */
1138*287e80b3SSadaf Ebrahimi } /* end of yylex */
1139*287e80b3SSadaf Ebrahimi
1140*287e80b3SSadaf Ebrahimi /* yy_get_next_buffer - try to read in a new buffer
1141*287e80b3SSadaf Ebrahimi *
1142*287e80b3SSadaf Ebrahimi * Returns a code representing an action:
1143*287e80b3SSadaf Ebrahimi * EOB_ACT_LAST_MATCH -
1144*287e80b3SSadaf Ebrahimi * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1145*287e80b3SSadaf Ebrahimi * EOB_ACT_END_OF_FILE - end of file
1146*287e80b3SSadaf Ebrahimi */
yy_get_next_buffer(yyscan_t yyscanner)1147*287e80b3SSadaf Ebrahimi static int yy_get_next_buffer (yyscan_t yyscanner)
1148*287e80b3SSadaf Ebrahimi {
1149*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1150*287e80b3SSadaf Ebrahimi char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1151*287e80b3SSadaf Ebrahimi char *source = yyg->yytext_ptr;
1152*287e80b3SSadaf Ebrahimi int number_to_move, i;
1153*287e80b3SSadaf Ebrahimi int ret_val;
1154*287e80b3SSadaf Ebrahimi
1155*287e80b3SSadaf Ebrahimi if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
1156*287e80b3SSadaf Ebrahimi YY_FATAL_ERROR(
1157*287e80b3SSadaf Ebrahimi "fatal flex scanner internal error--end of buffer missed" );
1158*287e80b3SSadaf Ebrahimi
1159*287e80b3SSadaf Ebrahimi if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1160*287e80b3SSadaf Ebrahimi { /* Don't try to fill the buffer, so this is an EOF. */
1161*287e80b3SSadaf Ebrahimi if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
1162*287e80b3SSadaf Ebrahimi {
1163*287e80b3SSadaf Ebrahimi /* We matched a single character, the EOB, so
1164*287e80b3SSadaf Ebrahimi * treat this as a final EOF.
1165*287e80b3SSadaf Ebrahimi */
1166*287e80b3SSadaf Ebrahimi return EOB_ACT_END_OF_FILE;
1167*287e80b3SSadaf Ebrahimi }
1168*287e80b3SSadaf Ebrahimi
1169*287e80b3SSadaf Ebrahimi else
1170*287e80b3SSadaf Ebrahimi {
1171*287e80b3SSadaf Ebrahimi /* We matched some text prior to the EOB, first
1172*287e80b3SSadaf Ebrahimi * process it.
1173*287e80b3SSadaf Ebrahimi */
1174*287e80b3SSadaf Ebrahimi return EOB_ACT_LAST_MATCH;
1175*287e80b3SSadaf Ebrahimi }
1176*287e80b3SSadaf Ebrahimi }
1177*287e80b3SSadaf Ebrahimi
1178*287e80b3SSadaf Ebrahimi /* Try to read more data. */
1179*287e80b3SSadaf Ebrahimi
1180*287e80b3SSadaf Ebrahimi /* First move last chars to start of buffer. */
1181*287e80b3SSadaf Ebrahimi number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1);
1182*287e80b3SSadaf Ebrahimi
1183*287e80b3SSadaf Ebrahimi for ( i = 0; i < number_to_move; ++i )
1184*287e80b3SSadaf Ebrahimi *(dest++) = *(source++);
1185*287e80b3SSadaf Ebrahimi
1186*287e80b3SSadaf Ebrahimi if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1187*287e80b3SSadaf Ebrahimi /* don't do the read, it's not guaranteed to return an EOF,
1188*287e80b3SSadaf Ebrahimi * just force an EOF
1189*287e80b3SSadaf Ebrahimi */
1190*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
1191*287e80b3SSadaf Ebrahimi
1192*287e80b3SSadaf Ebrahimi else
1193*287e80b3SSadaf Ebrahimi {
1194*287e80b3SSadaf Ebrahimi int num_to_read =
1195*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1196*287e80b3SSadaf Ebrahimi
1197*287e80b3SSadaf Ebrahimi while ( num_to_read <= 0 )
1198*287e80b3SSadaf Ebrahimi { /* Not enough room in the buffer - grow it. */
1199*287e80b3SSadaf Ebrahimi
1200*287e80b3SSadaf Ebrahimi /* just a shorter name for the current buffer */
1201*287e80b3SSadaf Ebrahimi YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
1202*287e80b3SSadaf Ebrahimi
1203*287e80b3SSadaf Ebrahimi int yy_c_buf_p_offset =
1204*287e80b3SSadaf Ebrahimi (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
1205*287e80b3SSadaf Ebrahimi
1206*287e80b3SSadaf Ebrahimi if ( b->yy_is_our_buffer )
1207*287e80b3SSadaf Ebrahimi {
1208*287e80b3SSadaf Ebrahimi int new_size = b->yy_buf_size * 2;
1209*287e80b3SSadaf Ebrahimi
1210*287e80b3SSadaf Ebrahimi if ( new_size <= 0 )
1211*287e80b3SSadaf Ebrahimi b->yy_buf_size += b->yy_buf_size / 8;
1212*287e80b3SSadaf Ebrahimi else
1213*287e80b3SSadaf Ebrahimi b->yy_buf_size *= 2;
1214*287e80b3SSadaf Ebrahimi
1215*287e80b3SSadaf Ebrahimi b->yy_ch_buf = (char *)
1216*287e80b3SSadaf Ebrahimi /* Include room in for 2 EOB chars. */
1217*287e80b3SSadaf Ebrahimi yyrealloc( (void *) b->yy_ch_buf,
1218*287e80b3SSadaf Ebrahimi (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
1219*287e80b3SSadaf Ebrahimi }
1220*287e80b3SSadaf Ebrahimi else
1221*287e80b3SSadaf Ebrahimi /* Can't grow it, we don't own it. */
1222*287e80b3SSadaf Ebrahimi b->yy_ch_buf = NULL;
1223*287e80b3SSadaf Ebrahimi
1224*287e80b3SSadaf Ebrahimi if ( ! b->yy_ch_buf )
1225*287e80b3SSadaf Ebrahimi YY_FATAL_ERROR(
1226*287e80b3SSadaf Ebrahimi "fatal error - scanner input buffer overflow" );
1227*287e80b3SSadaf Ebrahimi
1228*287e80b3SSadaf Ebrahimi yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1229*287e80b3SSadaf Ebrahimi
1230*287e80b3SSadaf Ebrahimi num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1231*287e80b3SSadaf Ebrahimi number_to_move - 1;
1232*287e80b3SSadaf Ebrahimi
1233*287e80b3SSadaf Ebrahimi }
1234*287e80b3SSadaf Ebrahimi
1235*287e80b3SSadaf Ebrahimi if ( num_to_read > YY_READ_BUF_SIZE )
1236*287e80b3SSadaf Ebrahimi num_to_read = YY_READ_BUF_SIZE;
1237*287e80b3SSadaf Ebrahimi
1238*287e80b3SSadaf Ebrahimi /* Read in more data. */
1239*287e80b3SSadaf Ebrahimi YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1240*287e80b3SSadaf Ebrahimi yyg->yy_n_chars, num_to_read );
1241*287e80b3SSadaf Ebrahimi
1242*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
1243*287e80b3SSadaf Ebrahimi }
1244*287e80b3SSadaf Ebrahimi
1245*287e80b3SSadaf Ebrahimi if ( yyg->yy_n_chars == 0 )
1246*287e80b3SSadaf Ebrahimi {
1247*287e80b3SSadaf Ebrahimi if ( number_to_move == YY_MORE_ADJ )
1248*287e80b3SSadaf Ebrahimi {
1249*287e80b3SSadaf Ebrahimi ret_val = EOB_ACT_END_OF_FILE;
1250*287e80b3SSadaf Ebrahimi yyrestart( yyin , yyscanner);
1251*287e80b3SSadaf Ebrahimi }
1252*287e80b3SSadaf Ebrahimi
1253*287e80b3SSadaf Ebrahimi else
1254*287e80b3SSadaf Ebrahimi {
1255*287e80b3SSadaf Ebrahimi ret_val = EOB_ACT_LAST_MATCH;
1256*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1257*287e80b3SSadaf Ebrahimi YY_BUFFER_EOF_PENDING;
1258*287e80b3SSadaf Ebrahimi }
1259*287e80b3SSadaf Ebrahimi }
1260*287e80b3SSadaf Ebrahimi
1261*287e80b3SSadaf Ebrahimi else
1262*287e80b3SSadaf Ebrahimi ret_val = EOB_ACT_CONTINUE_SCAN;
1263*287e80b3SSadaf Ebrahimi
1264*287e80b3SSadaf Ebrahimi if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1265*287e80b3SSadaf Ebrahimi /* Extend the array by 50%, plus the number we really need. */
1266*287e80b3SSadaf Ebrahimi int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
1267*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
1268*287e80b3SSadaf Ebrahimi (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner );
1269*287e80b3SSadaf Ebrahimi if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1270*287e80b3SSadaf Ebrahimi YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1271*287e80b3SSadaf Ebrahimi /* "- 2" to take care of EOB's */
1272*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
1273*287e80b3SSadaf Ebrahimi }
1274*287e80b3SSadaf Ebrahimi
1275*287e80b3SSadaf Ebrahimi yyg->yy_n_chars += number_to_move;
1276*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
1277*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
1278*287e80b3SSadaf Ebrahimi
1279*287e80b3SSadaf Ebrahimi yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1280*287e80b3SSadaf Ebrahimi
1281*287e80b3SSadaf Ebrahimi return ret_val;
1282*287e80b3SSadaf Ebrahimi }
1283*287e80b3SSadaf Ebrahimi
1284*287e80b3SSadaf Ebrahimi /* yy_get_previous_state - get the state just before the EOB char was reached */
1285*287e80b3SSadaf Ebrahimi
yy_get_previous_state(yyscan_t yyscanner)1286*287e80b3SSadaf Ebrahimi static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
1287*287e80b3SSadaf Ebrahimi {
1288*287e80b3SSadaf Ebrahimi yy_state_type yy_current_state;
1289*287e80b3SSadaf Ebrahimi char *yy_cp;
1290*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1291*287e80b3SSadaf Ebrahimi
1292*287e80b3SSadaf Ebrahimi yy_current_state = yyg->yy_start;
1293*287e80b3SSadaf Ebrahimi
1294*287e80b3SSadaf Ebrahimi for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
1295*287e80b3SSadaf Ebrahimi {
1296*287e80b3SSadaf Ebrahimi YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1297*287e80b3SSadaf Ebrahimi if ( yy_accept[yy_current_state] )
1298*287e80b3SSadaf Ebrahimi {
1299*287e80b3SSadaf Ebrahimi yyg->yy_last_accepting_state = yy_current_state;
1300*287e80b3SSadaf Ebrahimi yyg->yy_last_accepting_cpos = yy_cp;
1301*287e80b3SSadaf Ebrahimi }
1302*287e80b3SSadaf Ebrahimi while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1303*287e80b3SSadaf Ebrahimi {
1304*287e80b3SSadaf Ebrahimi yy_current_state = (int) yy_def[yy_current_state];
1305*287e80b3SSadaf Ebrahimi if ( yy_current_state >= 72 )
1306*287e80b3SSadaf Ebrahimi yy_c = yy_meta[yy_c];
1307*287e80b3SSadaf Ebrahimi }
1308*287e80b3SSadaf Ebrahimi yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1309*287e80b3SSadaf Ebrahimi }
1310*287e80b3SSadaf Ebrahimi
1311*287e80b3SSadaf Ebrahimi return yy_current_state;
1312*287e80b3SSadaf Ebrahimi }
1313*287e80b3SSadaf Ebrahimi
1314*287e80b3SSadaf Ebrahimi /* yy_try_NUL_trans - try to make a transition on the NUL character
1315*287e80b3SSadaf Ebrahimi *
1316*287e80b3SSadaf Ebrahimi * synopsis
1317*287e80b3SSadaf Ebrahimi * next_state = yy_try_NUL_trans( current_state );
1318*287e80b3SSadaf Ebrahimi */
yy_try_NUL_trans(yy_state_type yy_current_state,yyscan_t yyscanner)1319*287e80b3SSadaf Ebrahimi static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
1320*287e80b3SSadaf Ebrahimi {
1321*287e80b3SSadaf Ebrahimi int yy_is_jam;
1322*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
1323*287e80b3SSadaf Ebrahimi char *yy_cp = yyg->yy_c_buf_p;
1324*287e80b3SSadaf Ebrahimi
1325*287e80b3SSadaf Ebrahimi YY_CHAR yy_c = 1;
1326*287e80b3SSadaf Ebrahimi if ( yy_accept[yy_current_state] )
1327*287e80b3SSadaf Ebrahimi {
1328*287e80b3SSadaf Ebrahimi yyg->yy_last_accepting_state = yy_current_state;
1329*287e80b3SSadaf Ebrahimi yyg->yy_last_accepting_cpos = yy_cp;
1330*287e80b3SSadaf Ebrahimi }
1331*287e80b3SSadaf Ebrahimi while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1332*287e80b3SSadaf Ebrahimi {
1333*287e80b3SSadaf Ebrahimi yy_current_state = (int) yy_def[yy_current_state];
1334*287e80b3SSadaf Ebrahimi if ( yy_current_state >= 72 )
1335*287e80b3SSadaf Ebrahimi yy_c = yy_meta[yy_c];
1336*287e80b3SSadaf Ebrahimi }
1337*287e80b3SSadaf Ebrahimi yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1338*287e80b3SSadaf Ebrahimi yy_is_jam = (yy_current_state == 71);
1339*287e80b3SSadaf Ebrahimi
1340*287e80b3SSadaf Ebrahimi (void)yyg;
1341*287e80b3SSadaf Ebrahimi return yy_is_jam ? 0 : yy_current_state;
1342*287e80b3SSadaf Ebrahimi }
1343*287e80b3SSadaf Ebrahimi
1344*287e80b3SSadaf Ebrahimi #ifndef YY_NO_UNPUT
1345*287e80b3SSadaf Ebrahimi
yyunput(int c,char * yy_bp,yyscan_t yyscanner)1346*287e80b3SSadaf Ebrahimi static void yyunput (int c, char * yy_bp , yyscan_t yyscanner)
1347*287e80b3SSadaf Ebrahimi {
1348*287e80b3SSadaf Ebrahimi char *yy_cp;
1349*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1350*287e80b3SSadaf Ebrahimi
1351*287e80b3SSadaf Ebrahimi yy_cp = yyg->yy_c_buf_p;
1352*287e80b3SSadaf Ebrahimi
1353*287e80b3SSadaf Ebrahimi /* undo effects of setting up yytext */
1354*287e80b3SSadaf Ebrahimi *yy_cp = yyg->yy_hold_char;
1355*287e80b3SSadaf Ebrahimi
1356*287e80b3SSadaf Ebrahimi if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1357*287e80b3SSadaf Ebrahimi { /* need to shift things up to make room */
1358*287e80b3SSadaf Ebrahimi /* +2 for EOB chars. */
1359*287e80b3SSadaf Ebrahimi int number_to_move = yyg->yy_n_chars + 2;
1360*287e80b3SSadaf Ebrahimi char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
1361*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
1362*287e80b3SSadaf Ebrahimi char *source =
1363*287e80b3SSadaf Ebrahimi &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
1364*287e80b3SSadaf Ebrahimi
1365*287e80b3SSadaf Ebrahimi while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1366*287e80b3SSadaf Ebrahimi *--dest = *--source;
1367*287e80b3SSadaf Ebrahimi
1368*287e80b3SSadaf Ebrahimi yy_cp += (int) (dest - source);
1369*287e80b3SSadaf Ebrahimi yy_bp += (int) (dest - source);
1370*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
1371*287e80b3SSadaf Ebrahimi yyg->yy_n_chars = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
1372*287e80b3SSadaf Ebrahimi
1373*287e80b3SSadaf Ebrahimi if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1374*287e80b3SSadaf Ebrahimi YY_FATAL_ERROR( "flex scanner push-back overflow" );
1375*287e80b3SSadaf Ebrahimi }
1376*287e80b3SSadaf Ebrahimi
1377*287e80b3SSadaf Ebrahimi *--yy_cp = (char) c;
1378*287e80b3SSadaf Ebrahimi
1379*287e80b3SSadaf Ebrahimi yyg->yytext_ptr = yy_bp;
1380*287e80b3SSadaf Ebrahimi yyg->yy_hold_char = *yy_cp;
1381*287e80b3SSadaf Ebrahimi yyg->yy_c_buf_p = yy_cp;
1382*287e80b3SSadaf Ebrahimi }
1383*287e80b3SSadaf Ebrahimi
1384*287e80b3SSadaf Ebrahimi #endif
1385*287e80b3SSadaf Ebrahimi
1386*287e80b3SSadaf Ebrahimi #ifndef YY_NO_INPUT
1387*287e80b3SSadaf Ebrahimi #ifdef __cplusplus
yyinput(yyscan_t yyscanner)1388*287e80b3SSadaf Ebrahimi static int yyinput (yyscan_t yyscanner)
1389*287e80b3SSadaf Ebrahimi #else
1390*287e80b3SSadaf Ebrahimi static int input (yyscan_t yyscanner)
1391*287e80b3SSadaf Ebrahimi #endif
1392*287e80b3SSadaf Ebrahimi
1393*287e80b3SSadaf Ebrahimi {
1394*287e80b3SSadaf Ebrahimi int c;
1395*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1396*287e80b3SSadaf Ebrahimi
1397*287e80b3SSadaf Ebrahimi *yyg->yy_c_buf_p = yyg->yy_hold_char;
1398*287e80b3SSadaf Ebrahimi
1399*287e80b3SSadaf Ebrahimi if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
1400*287e80b3SSadaf Ebrahimi {
1401*287e80b3SSadaf Ebrahimi /* yy_c_buf_p now points to the character we want to return.
1402*287e80b3SSadaf Ebrahimi * If this occurs *before* the EOB characters, then it's a
1403*287e80b3SSadaf Ebrahimi * valid NUL; if not, then we've hit the end of the buffer.
1404*287e80b3SSadaf Ebrahimi */
1405*287e80b3SSadaf Ebrahimi if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1406*287e80b3SSadaf Ebrahimi /* This was really a NUL. */
1407*287e80b3SSadaf Ebrahimi *yyg->yy_c_buf_p = '\0';
1408*287e80b3SSadaf Ebrahimi
1409*287e80b3SSadaf Ebrahimi else
1410*287e80b3SSadaf Ebrahimi { /* need more input */
1411*287e80b3SSadaf Ebrahimi int offset = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr);
1412*287e80b3SSadaf Ebrahimi ++yyg->yy_c_buf_p;
1413*287e80b3SSadaf Ebrahimi
1414*287e80b3SSadaf Ebrahimi switch ( yy_get_next_buffer( yyscanner ) )
1415*287e80b3SSadaf Ebrahimi {
1416*287e80b3SSadaf Ebrahimi case EOB_ACT_LAST_MATCH:
1417*287e80b3SSadaf Ebrahimi /* This happens because yy_g_n_b()
1418*287e80b3SSadaf Ebrahimi * sees that we've accumulated a
1419*287e80b3SSadaf Ebrahimi * token and flags that we need to
1420*287e80b3SSadaf Ebrahimi * try matching the token before
1421*287e80b3SSadaf Ebrahimi * proceeding. But for input(),
1422*287e80b3SSadaf Ebrahimi * there's no matching to consider.
1423*287e80b3SSadaf Ebrahimi * So convert the EOB_ACT_LAST_MATCH
1424*287e80b3SSadaf Ebrahimi * to EOB_ACT_END_OF_FILE.
1425*287e80b3SSadaf Ebrahimi */
1426*287e80b3SSadaf Ebrahimi
1427*287e80b3SSadaf Ebrahimi /* Reset buffer status. */
1428*287e80b3SSadaf Ebrahimi yyrestart( yyin , yyscanner);
1429*287e80b3SSadaf Ebrahimi
1430*287e80b3SSadaf Ebrahimi /*FALLTHROUGH*/
1431*287e80b3SSadaf Ebrahimi
1432*287e80b3SSadaf Ebrahimi case EOB_ACT_END_OF_FILE:
1433*287e80b3SSadaf Ebrahimi {
1434*287e80b3SSadaf Ebrahimi if ( yywrap( yyscanner ) )
1435*287e80b3SSadaf Ebrahimi return 0;
1436*287e80b3SSadaf Ebrahimi
1437*287e80b3SSadaf Ebrahimi if ( ! yyg->yy_did_buffer_switch_on_eof )
1438*287e80b3SSadaf Ebrahimi YY_NEW_FILE;
1439*287e80b3SSadaf Ebrahimi #ifdef __cplusplus
1440*287e80b3SSadaf Ebrahimi return yyinput(yyscanner);
1441*287e80b3SSadaf Ebrahimi #else
1442*287e80b3SSadaf Ebrahimi return input(yyscanner);
1443*287e80b3SSadaf Ebrahimi #endif
1444*287e80b3SSadaf Ebrahimi }
1445*287e80b3SSadaf Ebrahimi
1446*287e80b3SSadaf Ebrahimi case EOB_ACT_CONTINUE_SCAN:
1447*287e80b3SSadaf Ebrahimi yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
1448*287e80b3SSadaf Ebrahimi break;
1449*287e80b3SSadaf Ebrahimi }
1450*287e80b3SSadaf Ebrahimi }
1451*287e80b3SSadaf Ebrahimi }
1452*287e80b3SSadaf Ebrahimi
1453*287e80b3SSadaf Ebrahimi c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
1454*287e80b3SSadaf Ebrahimi *yyg->yy_c_buf_p = '\0'; /* preserve yytext */
1455*287e80b3SSadaf Ebrahimi yyg->yy_hold_char = *++yyg->yy_c_buf_p;
1456*287e80b3SSadaf Ebrahimi
1457*287e80b3SSadaf Ebrahimi return c;
1458*287e80b3SSadaf Ebrahimi }
1459*287e80b3SSadaf Ebrahimi #endif /* ifndef YY_NO_INPUT */
1460*287e80b3SSadaf Ebrahimi
1461*287e80b3SSadaf Ebrahimi /** Immediately switch to a different input stream.
1462*287e80b3SSadaf Ebrahimi * @param input_file A readable stream.
1463*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1464*287e80b3SSadaf Ebrahimi * @note This function does not reset the start condition to @c INITIAL .
1465*287e80b3SSadaf Ebrahimi */
yyrestart(FILE * input_file,yyscan_t yyscanner)1466*287e80b3SSadaf Ebrahimi void yyrestart (FILE * input_file , yyscan_t yyscanner)
1467*287e80b3SSadaf Ebrahimi {
1468*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1469*287e80b3SSadaf Ebrahimi
1470*287e80b3SSadaf Ebrahimi if ( ! YY_CURRENT_BUFFER ){
1471*287e80b3SSadaf Ebrahimi yyensure_buffer_stack (yyscanner);
1472*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE =
1473*287e80b3SSadaf Ebrahimi yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
1474*287e80b3SSadaf Ebrahimi }
1475*287e80b3SSadaf Ebrahimi
1476*287e80b3SSadaf Ebrahimi yy_init_buffer( YY_CURRENT_BUFFER, input_file , yyscanner);
1477*287e80b3SSadaf Ebrahimi yy_load_buffer_state( yyscanner );
1478*287e80b3SSadaf Ebrahimi }
1479*287e80b3SSadaf Ebrahimi
1480*287e80b3SSadaf Ebrahimi /** Switch to a different input buffer.
1481*287e80b3SSadaf Ebrahimi * @param new_buffer The new input buffer.
1482*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1483*287e80b3SSadaf Ebrahimi */
yy_switch_to_buffer(YY_BUFFER_STATE new_buffer,yyscan_t yyscanner)1484*287e80b3SSadaf Ebrahimi void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
1485*287e80b3SSadaf Ebrahimi {
1486*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1487*287e80b3SSadaf Ebrahimi
1488*287e80b3SSadaf Ebrahimi /* TODO. We should be able to replace this entire function body
1489*287e80b3SSadaf Ebrahimi * with
1490*287e80b3SSadaf Ebrahimi * yypop_buffer_state();
1491*287e80b3SSadaf Ebrahimi * yypush_buffer_state(new_buffer);
1492*287e80b3SSadaf Ebrahimi */
1493*287e80b3SSadaf Ebrahimi yyensure_buffer_stack (yyscanner);
1494*287e80b3SSadaf Ebrahimi if ( YY_CURRENT_BUFFER == new_buffer )
1495*287e80b3SSadaf Ebrahimi return;
1496*287e80b3SSadaf Ebrahimi
1497*287e80b3SSadaf Ebrahimi if ( YY_CURRENT_BUFFER )
1498*287e80b3SSadaf Ebrahimi {
1499*287e80b3SSadaf Ebrahimi /* Flush out information for old buffer. */
1500*287e80b3SSadaf Ebrahimi *yyg->yy_c_buf_p = yyg->yy_hold_char;
1501*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
1502*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
1503*287e80b3SSadaf Ebrahimi }
1504*287e80b3SSadaf Ebrahimi
1505*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE = new_buffer;
1506*287e80b3SSadaf Ebrahimi yy_load_buffer_state( yyscanner );
1507*287e80b3SSadaf Ebrahimi
1508*287e80b3SSadaf Ebrahimi /* We don't actually know whether we did this switch during
1509*287e80b3SSadaf Ebrahimi * EOF (yywrap()) processing, but the only time this flag
1510*287e80b3SSadaf Ebrahimi * is looked at is after yywrap() is called, so it's safe
1511*287e80b3SSadaf Ebrahimi * to go ahead and always set it.
1512*287e80b3SSadaf Ebrahimi */
1513*287e80b3SSadaf Ebrahimi yyg->yy_did_buffer_switch_on_eof = 1;
1514*287e80b3SSadaf Ebrahimi }
1515*287e80b3SSadaf Ebrahimi
yy_load_buffer_state(yyscan_t yyscanner)1516*287e80b3SSadaf Ebrahimi static void yy_load_buffer_state (yyscan_t yyscanner)
1517*287e80b3SSadaf Ebrahimi {
1518*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1519*287e80b3SSadaf Ebrahimi yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1520*287e80b3SSadaf Ebrahimi yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1521*287e80b3SSadaf Ebrahimi yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1522*287e80b3SSadaf Ebrahimi yyg->yy_hold_char = *yyg->yy_c_buf_p;
1523*287e80b3SSadaf Ebrahimi }
1524*287e80b3SSadaf Ebrahimi
1525*287e80b3SSadaf Ebrahimi /** Allocate and initialize an input buffer state.
1526*287e80b3SSadaf Ebrahimi * @param file A readable stream.
1527*287e80b3SSadaf Ebrahimi * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1528*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1529*287e80b3SSadaf Ebrahimi * @return the allocated buffer state.
1530*287e80b3SSadaf Ebrahimi */
yy_create_buffer(FILE * file,int size,yyscan_t yyscanner)1531*287e80b3SSadaf Ebrahimi YY_BUFFER_STATE yy_create_buffer (FILE * file, int size , yyscan_t yyscanner)
1532*287e80b3SSadaf Ebrahimi {
1533*287e80b3SSadaf Ebrahimi YY_BUFFER_STATE b;
1534*287e80b3SSadaf Ebrahimi
1535*287e80b3SSadaf Ebrahimi b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
1536*287e80b3SSadaf Ebrahimi if ( ! b )
1537*287e80b3SSadaf Ebrahimi YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1538*287e80b3SSadaf Ebrahimi
1539*287e80b3SSadaf Ebrahimi b->yy_buf_size = size;
1540*287e80b3SSadaf Ebrahimi
1541*287e80b3SSadaf Ebrahimi /* yy_ch_buf has to be 2 characters longer than the size given because
1542*287e80b3SSadaf Ebrahimi * we need to put in 2 end-of-buffer characters.
1543*287e80b3SSadaf Ebrahimi */
1544*287e80b3SSadaf Ebrahimi b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
1545*287e80b3SSadaf Ebrahimi if ( ! b->yy_ch_buf )
1546*287e80b3SSadaf Ebrahimi YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1547*287e80b3SSadaf Ebrahimi
1548*287e80b3SSadaf Ebrahimi b->yy_is_our_buffer = 1;
1549*287e80b3SSadaf Ebrahimi
1550*287e80b3SSadaf Ebrahimi yy_init_buffer( b, file , yyscanner);
1551*287e80b3SSadaf Ebrahimi
1552*287e80b3SSadaf Ebrahimi return b;
1553*287e80b3SSadaf Ebrahimi }
1554*287e80b3SSadaf Ebrahimi
1555*287e80b3SSadaf Ebrahimi /** Destroy the buffer.
1556*287e80b3SSadaf Ebrahimi * @param b a buffer created with yy_create_buffer()
1557*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1558*287e80b3SSadaf Ebrahimi */
yy_delete_buffer(YY_BUFFER_STATE b,yyscan_t yyscanner)1559*287e80b3SSadaf Ebrahimi void yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
1560*287e80b3SSadaf Ebrahimi {
1561*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1562*287e80b3SSadaf Ebrahimi
1563*287e80b3SSadaf Ebrahimi if ( ! b )
1564*287e80b3SSadaf Ebrahimi return;
1565*287e80b3SSadaf Ebrahimi
1566*287e80b3SSadaf Ebrahimi if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
1567*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
1568*287e80b3SSadaf Ebrahimi
1569*287e80b3SSadaf Ebrahimi if ( b->yy_is_our_buffer )
1570*287e80b3SSadaf Ebrahimi yyfree( (void *) b->yy_ch_buf , yyscanner );
1571*287e80b3SSadaf Ebrahimi
1572*287e80b3SSadaf Ebrahimi yyfree( (void *) b , yyscanner );
1573*287e80b3SSadaf Ebrahimi }
1574*287e80b3SSadaf Ebrahimi
1575*287e80b3SSadaf Ebrahimi /* Initializes or reinitializes a buffer.
1576*287e80b3SSadaf Ebrahimi * This function is sometimes called more than once on the same buffer,
1577*287e80b3SSadaf Ebrahimi * such as during a yyrestart() or at EOF.
1578*287e80b3SSadaf Ebrahimi */
yy_init_buffer(YY_BUFFER_STATE b,FILE * file,yyscan_t yyscanner)1579*287e80b3SSadaf Ebrahimi static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
1580*287e80b3SSadaf Ebrahimi
1581*287e80b3SSadaf Ebrahimi {
1582*287e80b3SSadaf Ebrahimi int oerrno = errno;
1583*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1584*287e80b3SSadaf Ebrahimi
1585*287e80b3SSadaf Ebrahimi yy_flush_buffer( b , yyscanner);
1586*287e80b3SSadaf Ebrahimi
1587*287e80b3SSadaf Ebrahimi b->yy_input_file = file;
1588*287e80b3SSadaf Ebrahimi b->yy_fill_buffer = 1;
1589*287e80b3SSadaf Ebrahimi
1590*287e80b3SSadaf Ebrahimi /* If b is the current buffer, then yy_init_buffer was _probably_
1591*287e80b3SSadaf Ebrahimi * called from yyrestart() or through yy_get_next_buffer.
1592*287e80b3SSadaf Ebrahimi * In that case, we don't want to reset the lineno or column.
1593*287e80b3SSadaf Ebrahimi */
1594*287e80b3SSadaf Ebrahimi if (b != YY_CURRENT_BUFFER){
1595*287e80b3SSadaf Ebrahimi b->yy_bs_lineno = 1;
1596*287e80b3SSadaf Ebrahimi b->yy_bs_column = 0;
1597*287e80b3SSadaf Ebrahimi }
1598*287e80b3SSadaf Ebrahimi
1599*287e80b3SSadaf Ebrahimi b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
1600*287e80b3SSadaf Ebrahimi
1601*287e80b3SSadaf Ebrahimi errno = oerrno;
1602*287e80b3SSadaf Ebrahimi }
1603*287e80b3SSadaf Ebrahimi
1604*287e80b3SSadaf Ebrahimi /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
1605*287e80b3SSadaf Ebrahimi * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
1606*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1607*287e80b3SSadaf Ebrahimi */
yy_flush_buffer(YY_BUFFER_STATE b,yyscan_t yyscanner)1608*287e80b3SSadaf Ebrahimi void yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
1609*287e80b3SSadaf Ebrahimi {
1610*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1611*287e80b3SSadaf Ebrahimi if ( ! b )
1612*287e80b3SSadaf Ebrahimi return;
1613*287e80b3SSadaf Ebrahimi
1614*287e80b3SSadaf Ebrahimi b->yy_n_chars = 0;
1615*287e80b3SSadaf Ebrahimi
1616*287e80b3SSadaf Ebrahimi /* We always need two end-of-buffer characters. The first causes
1617*287e80b3SSadaf Ebrahimi * a transition to the end-of-buffer state. The second causes
1618*287e80b3SSadaf Ebrahimi * a jam in that state.
1619*287e80b3SSadaf Ebrahimi */
1620*287e80b3SSadaf Ebrahimi b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
1621*287e80b3SSadaf Ebrahimi b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
1622*287e80b3SSadaf Ebrahimi
1623*287e80b3SSadaf Ebrahimi b->yy_buf_pos = &b->yy_ch_buf[0];
1624*287e80b3SSadaf Ebrahimi
1625*287e80b3SSadaf Ebrahimi b->yy_at_bol = 1;
1626*287e80b3SSadaf Ebrahimi b->yy_buffer_status = YY_BUFFER_NEW;
1627*287e80b3SSadaf Ebrahimi
1628*287e80b3SSadaf Ebrahimi if ( b == YY_CURRENT_BUFFER )
1629*287e80b3SSadaf Ebrahimi yy_load_buffer_state( yyscanner );
1630*287e80b3SSadaf Ebrahimi }
1631*287e80b3SSadaf Ebrahimi
1632*287e80b3SSadaf Ebrahimi /** Pushes the new state onto the stack. The new state becomes
1633*287e80b3SSadaf Ebrahimi * the current state. This function will allocate the stack
1634*287e80b3SSadaf Ebrahimi * if necessary.
1635*287e80b3SSadaf Ebrahimi * @param new_buffer The new state.
1636*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1637*287e80b3SSadaf Ebrahimi */
yypush_buffer_state(YY_BUFFER_STATE new_buffer,yyscan_t yyscanner)1638*287e80b3SSadaf Ebrahimi void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
1639*287e80b3SSadaf Ebrahimi {
1640*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1641*287e80b3SSadaf Ebrahimi if (new_buffer == NULL)
1642*287e80b3SSadaf Ebrahimi return;
1643*287e80b3SSadaf Ebrahimi
1644*287e80b3SSadaf Ebrahimi yyensure_buffer_stack(yyscanner);
1645*287e80b3SSadaf Ebrahimi
1646*287e80b3SSadaf Ebrahimi /* This block is copied from yy_switch_to_buffer. */
1647*287e80b3SSadaf Ebrahimi if ( YY_CURRENT_BUFFER )
1648*287e80b3SSadaf Ebrahimi {
1649*287e80b3SSadaf Ebrahimi /* Flush out information for old buffer. */
1650*287e80b3SSadaf Ebrahimi *yyg->yy_c_buf_p = yyg->yy_hold_char;
1651*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
1652*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
1653*287e80b3SSadaf Ebrahimi }
1654*287e80b3SSadaf Ebrahimi
1655*287e80b3SSadaf Ebrahimi /* Only push if top exists. Otherwise, replace top. */
1656*287e80b3SSadaf Ebrahimi if (YY_CURRENT_BUFFER)
1657*287e80b3SSadaf Ebrahimi yyg->yy_buffer_stack_top++;
1658*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE = new_buffer;
1659*287e80b3SSadaf Ebrahimi
1660*287e80b3SSadaf Ebrahimi /* copied from yy_switch_to_buffer. */
1661*287e80b3SSadaf Ebrahimi yy_load_buffer_state( yyscanner );
1662*287e80b3SSadaf Ebrahimi yyg->yy_did_buffer_switch_on_eof = 1;
1663*287e80b3SSadaf Ebrahimi }
1664*287e80b3SSadaf Ebrahimi
1665*287e80b3SSadaf Ebrahimi /** Removes and deletes the top of the stack, if present.
1666*287e80b3SSadaf Ebrahimi * The next element becomes the new top.
1667*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1668*287e80b3SSadaf Ebrahimi */
yypop_buffer_state(yyscan_t yyscanner)1669*287e80b3SSadaf Ebrahimi void yypop_buffer_state (yyscan_t yyscanner)
1670*287e80b3SSadaf Ebrahimi {
1671*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1672*287e80b3SSadaf Ebrahimi if (!YY_CURRENT_BUFFER)
1673*287e80b3SSadaf Ebrahimi return;
1674*287e80b3SSadaf Ebrahimi
1675*287e80b3SSadaf Ebrahimi yy_delete_buffer(YY_CURRENT_BUFFER , yyscanner);
1676*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE = NULL;
1677*287e80b3SSadaf Ebrahimi if (yyg->yy_buffer_stack_top > 0)
1678*287e80b3SSadaf Ebrahimi --yyg->yy_buffer_stack_top;
1679*287e80b3SSadaf Ebrahimi
1680*287e80b3SSadaf Ebrahimi if (YY_CURRENT_BUFFER) {
1681*287e80b3SSadaf Ebrahimi yy_load_buffer_state( yyscanner );
1682*287e80b3SSadaf Ebrahimi yyg->yy_did_buffer_switch_on_eof = 1;
1683*287e80b3SSadaf Ebrahimi }
1684*287e80b3SSadaf Ebrahimi }
1685*287e80b3SSadaf Ebrahimi
1686*287e80b3SSadaf Ebrahimi /* Allocates the stack if it does not exist.
1687*287e80b3SSadaf Ebrahimi * Guarantees space for at least one push.
1688*287e80b3SSadaf Ebrahimi */
yyensure_buffer_stack(yyscan_t yyscanner)1689*287e80b3SSadaf Ebrahimi static void yyensure_buffer_stack (yyscan_t yyscanner)
1690*287e80b3SSadaf Ebrahimi {
1691*287e80b3SSadaf Ebrahimi yy_size_t num_to_alloc;
1692*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1693*287e80b3SSadaf Ebrahimi
1694*287e80b3SSadaf Ebrahimi if (!yyg->yy_buffer_stack) {
1695*287e80b3SSadaf Ebrahimi
1696*287e80b3SSadaf Ebrahimi /* First allocation is just for 2 elements, since we don't know if this
1697*287e80b3SSadaf Ebrahimi * scanner will even need a stack. We use 2 instead of 1 to avoid an
1698*287e80b3SSadaf Ebrahimi * immediate realloc on the next call.
1699*287e80b3SSadaf Ebrahimi */
1700*287e80b3SSadaf Ebrahimi num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
1701*287e80b3SSadaf Ebrahimi yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc
1702*287e80b3SSadaf Ebrahimi (num_to_alloc * sizeof(struct yy_buffer_state*)
1703*287e80b3SSadaf Ebrahimi , yyscanner);
1704*287e80b3SSadaf Ebrahimi if ( ! yyg->yy_buffer_stack )
1705*287e80b3SSadaf Ebrahimi YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
1706*287e80b3SSadaf Ebrahimi
1707*287e80b3SSadaf Ebrahimi memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
1708*287e80b3SSadaf Ebrahimi
1709*287e80b3SSadaf Ebrahimi yyg->yy_buffer_stack_max = num_to_alloc;
1710*287e80b3SSadaf Ebrahimi yyg->yy_buffer_stack_top = 0;
1711*287e80b3SSadaf Ebrahimi return;
1712*287e80b3SSadaf Ebrahimi }
1713*287e80b3SSadaf Ebrahimi
1714*287e80b3SSadaf Ebrahimi if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
1715*287e80b3SSadaf Ebrahimi
1716*287e80b3SSadaf Ebrahimi /* Increase the buffer to prepare for a possible push. */
1717*287e80b3SSadaf Ebrahimi yy_size_t grow_size = 8 /* arbitrary grow size */;
1718*287e80b3SSadaf Ebrahimi
1719*287e80b3SSadaf Ebrahimi num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
1720*287e80b3SSadaf Ebrahimi yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc
1721*287e80b3SSadaf Ebrahimi (yyg->yy_buffer_stack,
1722*287e80b3SSadaf Ebrahimi num_to_alloc * sizeof(struct yy_buffer_state*)
1723*287e80b3SSadaf Ebrahimi , yyscanner);
1724*287e80b3SSadaf Ebrahimi if ( ! yyg->yy_buffer_stack )
1725*287e80b3SSadaf Ebrahimi YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
1726*287e80b3SSadaf Ebrahimi
1727*287e80b3SSadaf Ebrahimi /* zero only the new slots.*/
1728*287e80b3SSadaf Ebrahimi memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
1729*287e80b3SSadaf Ebrahimi yyg->yy_buffer_stack_max = num_to_alloc;
1730*287e80b3SSadaf Ebrahimi }
1731*287e80b3SSadaf Ebrahimi }
1732*287e80b3SSadaf Ebrahimi
1733*287e80b3SSadaf Ebrahimi /** Setup the input buffer state to scan directly from a user-specified character buffer.
1734*287e80b3SSadaf Ebrahimi * @param base the character buffer
1735*287e80b3SSadaf Ebrahimi * @param size the size in bytes of the character buffer
1736*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1737*287e80b3SSadaf Ebrahimi * @return the newly allocated buffer state object.
1738*287e80b3SSadaf Ebrahimi */
yy_scan_buffer(char * base,yy_size_t size,yyscan_t yyscanner)1739*287e80b3SSadaf Ebrahimi YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner)
1740*287e80b3SSadaf Ebrahimi {
1741*287e80b3SSadaf Ebrahimi YY_BUFFER_STATE b;
1742*287e80b3SSadaf Ebrahimi
1743*287e80b3SSadaf Ebrahimi if ( size < 2 ||
1744*287e80b3SSadaf Ebrahimi base[size-2] != YY_END_OF_BUFFER_CHAR ||
1745*287e80b3SSadaf Ebrahimi base[size-1] != YY_END_OF_BUFFER_CHAR )
1746*287e80b3SSadaf Ebrahimi /* They forgot to leave room for the EOB's. */
1747*287e80b3SSadaf Ebrahimi return NULL;
1748*287e80b3SSadaf Ebrahimi
1749*287e80b3SSadaf Ebrahimi b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
1750*287e80b3SSadaf Ebrahimi if ( ! b )
1751*287e80b3SSadaf Ebrahimi YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
1752*287e80b3SSadaf Ebrahimi
1753*287e80b3SSadaf Ebrahimi b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
1754*287e80b3SSadaf Ebrahimi b->yy_buf_pos = b->yy_ch_buf = base;
1755*287e80b3SSadaf Ebrahimi b->yy_is_our_buffer = 0;
1756*287e80b3SSadaf Ebrahimi b->yy_input_file = NULL;
1757*287e80b3SSadaf Ebrahimi b->yy_n_chars = b->yy_buf_size;
1758*287e80b3SSadaf Ebrahimi b->yy_is_interactive = 0;
1759*287e80b3SSadaf Ebrahimi b->yy_at_bol = 1;
1760*287e80b3SSadaf Ebrahimi b->yy_fill_buffer = 0;
1761*287e80b3SSadaf Ebrahimi b->yy_buffer_status = YY_BUFFER_NEW;
1762*287e80b3SSadaf Ebrahimi
1763*287e80b3SSadaf Ebrahimi yy_switch_to_buffer( b , yyscanner );
1764*287e80b3SSadaf Ebrahimi
1765*287e80b3SSadaf Ebrahimi return b;
1766*287e80b3SSadaf Ebrahimi }
1767*287e80b3SSadaf Ebrahimi
1768*287e80b3SSadaf Ebrahimi /** Setup the input buffer state to scan a string. The next call to yylex() will
1769*287e80b3SSadaf Ebrahimi * scan from a @e copy of @a str.
1770*287e80b3SSadaf Ebrahimi * @param yystr a NUL-terminated string to scan
1771*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1772*287e80b3SSadaf Ebrahimi * @return the newly allocated buffer state object.
1773*287e80b3SSadaf Ebrahimi * @note If you want to scan bytes that may contain NUL values, then use
1774*287e80b3SSadaf Ebrahimi * yy_scan_bytes() instead.
1775*287e80b3SSadaf Ebrahimi */
yy_scan_string(const char * yystr,yyscan_t yyscanner)1776*287e80b3SSadaf Ebrahimi YY_BUFFER_STATE yy_scan_string (const char * yystr , yyscan_t yyscanner)
1777*287e80b3SSadaf Ebrahimi {
1778*287e80b3SSadaf Ebrahimi
1779*287e80b3SSadaf Ebrahimi return yy_scan_bytes( yystr, (int) strlen(yystr) , yyscanner);
1780*287e80b3SSadaf Ebrahimi }
1781*287e80b3SSadaf Ebrahimi
1782*287e80b3SSadaf Ebrahimi /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
1783*287e80b3SSadaf Ebrahimi * scan from a @e copy of @a bytes.
1784*287e80b3SSadaf Ebrahimi * @param yybytes the byte buffer to scan
1785*287e80b3SSadaf Ebrahimi * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
1786*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1787*287e80b3SSadaf Ebrahimi * @return the newly allocated buffer state object.
1788*287e80b3SSadaf Ebrahimi */
yy_scan_bytes(const char * yybytes,int _yybytes_len,yyscan_t yyscanner)1789*287e80b3SSadaf Ebrahimi YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len , yyscan_t yyscanner)
1790*287e80b3SSadaf Ebrahimi {
1791*287e80b3SSadaf Ebrahimi YY_BUFFER_STATE b;
1792*287e80b3SSadaf Ebrahimi char *buf;
1793*287e80b3SSadaf Ebrahimi yy_size_t n;
1794*287e80b3SSadaf Ebrahimi int i;
1795*287e80b3SSadaf Ebrahimi
1796*287e80b3SSadaf Ebrahimi /* Get memory for full buffer, including space for trailing EOB's. */
1797*287e80b3SSadaf Ebrahimi n = (yy_size_t) (_yybytes_len + 2);
1798*287e80b3SSadaf Ebrahimi buf = (char *) yyalloc( n , yyscanner );
1799*287e80b3SSadaf Ebrahimi if ( ! buf )
1800*287e80b3SSadaf Ebrahimi YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
1801*287e80b3SSadaf Ebrahimi
1802*287e80b3SSadaf Ebrahimi for ( i = 0; i < _yybytes_len; ++i )
1803*287e80b3SSadaf Ebrahimi buf[i] = yybytes[i];
1804*287e80b3SSadaf Ebrahimi
1805*287e80b3SSadaf Ebrahimi buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
1806*287e80b3SSadaf Ebrahimi
1807*287e80b3SSadaf Ebrahimi b = yy_scan_buffer( buf, n , yyscanner);
1808*287e80b3SSadaf Ebrahimi if ( ! b )
1809*287e80b3SSadaf Ebrahimi YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
1810*287e80b3SSadaf Ebrahimi
1811*287e80b3SSadaf Ebrahimi /* It's okay to grow etc. this buffer, and we should throw it
1812*287e80b3SSadaf Ebrahimi * away when we're done.
1813*287e80b3SSadaf Ebrahimi */
1814*287e80b3SSadaf Ebrahimi b->yy_is_our_buffer = 1;
1815*287e80b3SSadaf Ebrahimi
1816*287e80b3SSadaf Ebrahimi return b;
1817*287e80b3SSadaf Ebrahimi }
1818*287e80b3SSadaf Ebrahimi
1819*287e80b3SSadaf Ebrahimi #ifndef YY_EXIT_FAILURE
1820*287e80b3SSadaf Ebrahimi #define YY_EXIT_FAILURE 2
1821*287e80b3SSadaf Ebrahimi #endif
1822*287e80b3SSadaf Ebrahimi
yy_fatal_error(const char * msg,yyscan_t yyscanner)1823*287e80b3SSadaf Ebrahimi static void yynoreturn yy_fatal_error (const char* msg , yyscan_t yyscanner)
1824*287e80b3SSadaf Ebrahimi {
1825*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1826*287e80b3SSadaf Ebrahimi (void)yyg;
1827*287e80b3SSadaf Ebrahimi fprintf( stderr, "%s\n", msg );
1828*287e80b3SSadaf Ebrahimi exit( YY_EXIT_FAILURE );
1829*287e80b3SSadaf Ebrahimi }
1830*287e80b3SSadaf Ebrahimi
1831*287e80b3SSadaf Ebrahimi /* Redefine yyless() so it works in section 3 code. */
1832*287e80b3SSadaf Ebrahimi
1833*287e80b3SSadaf Ebrahimi #undef yyless
1834*287e80b3SSadaf Ebrahimi #define yyless(n) \
1835*287e80b3SSadaf Ebrahimi do \
1836*287e80b3SSadaf Ebrahimi { \
1837*287e80b3SSadaf Ebrahimi /* Undo effects of setting up yytext. */ \
1838*287e80b3SSadaf Ebrahimi int yyless_macro_arg = (n); \
1839*287e80b3SSadaf Ebrahimi YY_LESS_LINENO(yyless_macro_arg);\
1840*287e80b3SSadaf Ebrahimi yytext[yyleng] = yyg->yy_hold_char; \
1841*287e80b3SSadaf Ebrahimi yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
1842*287e80b3SSadaf Ebrahimi yyg->yy_hold_char = *yyg->yy_c_buf_p; \
1843*287e80b3SSadaf Ebrahimi *yyg->yy_c_buf_p = '\0'; \
1844*287e80b3SSadaf Ebrahimi yyleng = yyless_macro_arg; \
1845*287e80b3SSadaf Ebrahimi } \
1846*287e80b3SSadaf Ebrahimi while ( 0 )
1847*287e80b3SSadaf Ebrahimi
1848*287e80b3SSadaf Ebrahimi /* Accessor methods (get/set functions) to struct members. */
1849*287e80b3SSadaf Ebrahimi
1850*287e80b3SSadaf Ebrahimi /** Get the user-defined data for this scanner.
1851*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1852*287e80b3SSadaf Ebrahimi */
yyget_extra(yyscan_t yyscanner)1853*287e80b3SSadaf Ebrahimi YY_EXTRA_TYPE yyget_extra (yyscan_t yyscanner)
1854*287e80b3SSadaf Ebrahimi {
1855*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1856*287e80b3SSadaf Ebrahimi return yyextra;
1857*287e80b3SSadaf Ebrahimi }
1858*287e80b3SSadaf Ebrahimi
1859*287e80b3SSadaf Ebrahimi /** Get the current line number.
1860*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1861*287e80b3SSadaf Ebrahimi */
yyget_lineno(yyscan_t yyscanner)1862*287e80b3SSadaf Ebrahimi int yyget_lineno (yyscan_t yyscanner)
1863*287e80b3SSadaf Ebrahimi {
1864*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1865*287e80b3SSadaf Ebrahimi
1866*287e80b3SSadaf Ebrahimi if (! YY_CURRENT_BUFFER)
1867*287e80b3SSadaf Ebrahimi return 0;
1868*287e80b3SSadaf Ebrahimi
1869*287e80b3SSadaf Ebrahimi return yylineno;
1870*287e80b3SSadaf Ebrahimi }
1871*287e80b3SSadaf Ebrahimi
1872*287e80b3SSadaf Ebrahimi /** Get the current column number.
1873*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1874*287e80b3SSadaf Ebrahimi */
yyget_column(yyscan_t yyscanner)1875*287e80b3SSadaf Ebrahimi int yyget_column (yyscan_t yyscanner)
1876*287e80b3SSadaf Ebrahimi {
1877*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1878*287e80b3SSadaf Ebrahimi
1879*287e80b3SSadaf Ebrahimi if (! YY_CURRENT_BUFFER)
1880*287e80b3SSadaf Ebrahimi return 0;
1881*287e80b3SSadaf Ebrahimi
1882*287e80b3SSadaf Ebrahimi return yycolumn;
1883*287e80b3SSadaf Ebrahimi }
1884*287e80b3SSadaf Ebrahimi
1885*287e80b3SSadaf Ebrahimi /** Get the input stream.
1886*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1887*287e80b3SSadaf Ebrahimi */
yyget_in(yyscan_t yyscanner)1888*287e80b3SSadaf Ebrahimi FILE *yyget_in (yyscan_t yyscanner)
1889*287e80b3SSadaf Ebrahimi {
1890*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1891*287e80b3SSadaf Ebrahimi return yyin;
1892*287e80b3SSadaf Ebrahimi }
1893*287e80b3SSadaf Ebrahimi
1894*287e80b3SSadaf Ebrahimi /** Get the output stream.
1895*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1896*287e80b3SSadaf Ebrahimi */
yyget_out(yyscan_t yyscanner)1897*287e80b3SSadaf Ebrahimi FILE *yyget_out (yyscan_t yyscanner)
1898*287e80b3SSadaf Ebrahimi {
1899*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1900*287e80b3SSadaf Ebrahimi return yyout;
1901*287e80b3SSadaf Ebrahimi }
1902*287e80b3SSadaf Ebrahimi
1903*287e80b3SSadaf Ebrahimi /** Get the length of the current token.
1904*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1905*287e80b3SSadaf Ebrahimi */
yyget_leng(yyscan_t yyscanner)1906*287e80b3SSadaf Ebrahimi int yyget_leng (yyscan_t yyscanner)
1907*287e80b3SSadaf Ebrahimi {
1908*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1909*287e80b3SSadaf Ebrahimi return yyleng;
1910*287e80b3SSadaf Ebrahimi }
1911*287e80b3SSadaf Ebrahimi
1912*287e80b3SSadaf Ebrahimi /** Get the current token.
1913*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1914*287e80b3SSadaf Ebrahimi */
1915*287e80b3SSadaf Ebrahimi
yyget_text(yyscan_t yyscanner)1916*287e80b3SSadaf Ebrahimi char *yyget_text (yyscan_t yyscanner)
1917*287e80b3SSadaf Ebrahimi {
1918*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1919*287e80b3SSadaf Ebrahimi return yytext;
1920*287e80b3SSadaf Ebrahimi }
1921*287e80b3SSadaf Ebrahimi
1922*287e80b3SSadaf Ebrahimi /** Set the user-defined data. This data is never touched by the scanner.
1923*287e80b3SSadaf Ebrahimi * @param user_defined The data to be associated with this scanner.
1924*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1925*287e80b3SSadaf Ebrahimi */
yyset_extra(YY_EXTRA_TYPE user_defined,yyscan_t yyscanner)1926*287e80b3SSadaf Ebrahimi void yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
1927*287e80b3SSadaf Ebrahimi {
1928*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1929*287e80b3SSadaf Ebrahimi yyextra = user_defined ;
1930*287e80b3SSadaf Ebrahimi }
1931*287e80b3SSadaf Ebrahimi
1932*287e80b3SSadaf Ebrahimi /** Set the current line number.
1933*287e80b3SSadaf Ebrahimi * @param _line_number line number
1934*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1935*287e80b3SSadaf Ebrahimi */
yyset_lineno(int _line_number,yyscan_t yyscanner)1936*287e80b3SSadaf Ebrahimi void yyset_lineno (int _line_number , yyscan_t yyscanner)
1937*287e80b3SSadaf Ebrahimi {
1938*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1939*287e80b3SSadaf Ebrahimi
1940*287e80b3SSadaf Ebrahimi /* lineno is only valid if an input buffer exists. */
1941*287e80b3SSadaf Ebrahimi if (! YY_CURRENT_BUFFER )
1942*287e80b3SSadaf Ebrahimi YY_FATAL_ERROR( "yyset_lineno called with no buffer" );
1943*287e80b3SSadaf Ebrahimi
1944*287e80b3SSadaf Ebrahimi yylineno = _line_number;
1945*287e80b3SSadaf Ebrahimi }
1946*287e80b3SSadaf Ebrahimi
1947*287e80b3SSadaf Ebrahimi /** Set the current column.
1948*287e80b3SSadaf Ebrahimi * @param _column_no column number
1949*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1950*287e80b3SSadaf Ebrahimi */
yyset_column(int _column_no,yyscan_t yyscanner)1951*287e80b3SSadaf Ebrahimi void yyset_column (int _column_no , yyscan_t yyscanner)
1952*287e80b3SSadaf Ebrahimi {
1953*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1954*287e80b3SSadaf Ebrahimi
1955*287e80b3SSadaf Ebrahimi /* column is only valid if an input buffer exists. */
1956*287e80b3SSadaf Ebrahimi if (! YY_CURRENT_BUFFER )
1957*287e80b3SSadaf Ebrahimi YY_FATAL_ERROR( "yyset_column called with no buffer" );
1958*287e80b3SSadaf Ebrahimi
1959*287e80b3SSadaf Ebrahimi yycolumn = _column_no;
1960*287e80b3SSadaf Ebrahimi }
1961*287e80b3SSadaf Ebrahimi
1962*287e80b3SSadaf Ebrahimi /** Set the input stream. This does not discard the current
1963*287e80b3SSadaf Ebrahimi * input buffer.
1964*287e80b3SSadaf Ebrahimi * @param _in_str A readable stream.
1965*287e80b3SSadaf Ebrahimi * @param yyscanner The scanner object.
1966*287e80b3SSadaf Ebrahimi * @see yy_switch_to_buffer
1967*287e80b3SSadaf Ebrahimi */
yyset_in(FILE * _in_str,yyscan_t yyscanner)1968*287e80b3SSadaf Ebrahimi void yyset_in (FILE * _in_str , yyscan_t yyscanner)
1969*287e80b3SSadaf Ebrahimi {
1970*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1971*287e80b3SSadaf Ebrahimi yyin = _in_str ;
1972*287e80b3SSadaf Ebrahimi }
1973*287e80b3SSadaf Ebrahimi
yyset_out(FILE * _out_str,yyscan_t yyscanner)1974*287e80b3SSadaf Ebrahimi void yyset_out (FILE * _out_str , yyscan_t yyscanner)
1975*287e80b3SSadaf Ebrahimi {
1976*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1977*287e80b3SSadaf Ebrahimi yyout = _out_str ;
1978*287e80b3SSadaf Ebrahimi }
1979*287e80b3SSadaf Ebrahimi
yyget_debug(yyscan_t yyscanner)1980*287e80b3SSadaf Ebrahimi int yyget_debug (yyscan_t yyscanner)
1981*287e80b3SSadaf Ebrahimi {
1982*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1983*287e80b3SSadaf Ebrahimi return yy_flex_debug;
1984*287e80b3SSadaf Ebrahimi }
1985*287e80b3SSadaf Ebrahimi
yyset_debug(int _bdebug,yyscan_t yyscanner)1986*287e80b3SSadaf Ebrahimi void yyset_debug (int _bdebug , yyscan_t yyscanner)
1987*287e80b3SSadaf Ebrahimi {
1988*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1989*287e80b3SSadaf Ebrahimi yy_flex_debug = _bdebug ;
1990*287e80b3SSadaf Ebrahimi }
1991*287e80b3SSadaf Ebrahimi
1992*287e80b3SSadaf Ebrahimi /* Accessor methods for yylval and yylloc */
1993*287e80b3SSadaf Ebrahimi
yyget_lval(yyscan_t yyscanner)1994*287e80b3SSadaf Ebrahimi YYSTYPE * yyget_lval (yyscan_t yyscanner)
1995*287e80b3SSadaf Ebrahimi {
1996*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1997*287e80b3SSadaf Ebrahimi return yylval;
1998*287e80b3SSadaf Ebrahimi }
1999*287e80b3SSadaf Ebrahimi
yyset_lval(YYSTYPE * yylval_param,yyscan_t yyscanner)2000*287e80b3SSadaf Ebrahimi void yyset_lval (YYSTYPE * yylval_param , yyscan_t yyscanner)
2001*287e80b3SSadaf Ebrahimi {
2002*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2003*287e80b3SSadaf Ebrahimi yylval = yylval_param;
2004*287e80b3SSadaf Ebrahimi }
2005*287e80b3SSadaf Ebrahimi
2006*287e80b3SSadaf Ebrahimi /* User-visible API */
2007*287e80b3SSadaf Ebrahimi
2008*287e80b3SSadaf Ebrahimi /* yylex_init is special because it creates the scanner itself, so it is
2009*287e80b3SSadaf Ebrahimi * the ONLY reentrant function that doesn't take the scanner as the last argument.
2010*287e80b3SSadaf Ebrahimi * That's why we explicitly handle the declaration, instead of using our macros.
2011*287e80b3SSadaf Ebrahimi */
yylex_init(yyscan_t * ptr_yy_globals)2012*287e80b3SSadaf Ebrahimi int yylex_init(yyscan_t* ptr_yy_globals)
2013*287e80b3SSadaf Ebrahimi {
2014*287e80b3SSadaf Ebrahimi if (ptr_yy_globals == NULL){
2015*287e80b3SSadaf Ebrahimi errno = EINVAL;
2016*287e80b3SSadaf Ebrahimi return 1;
2017*287e80b3SSadaf Ebrahimi }
2018*287e80b3SSadaf Ebrahimi
2019*287e80b3SSadaf Ebrahimi *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL );
2020*287e80b3SSadaf Ebrahimi
2021*287e80b3SSadaf Ebrahimi if (*ptr_yy_globals == NULL){
2022*287e80b3SSadaf Ebrahimi errno = ENOMEM;
2023*287e80b3SSadaf Ebrahimi return 1;
2024*287e80b3SSadaf Ebrahimi }
2025*287e80b3SSadaf Ebrahimi
2026*287e80b3SSadaf Ebrahimi /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
2027*287e80b3SSadaf Ebrahimi memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
2028*287e80b3SSadaf Ebrahimi
2029*287e80b3SSadaf Ebrahimi return yy_init_globals ( *ptr_yy_globals );
2030*287e80b3SSadaf Ebrahimi }
2031*287e80b3SSadaf Ebrahimi
2032*287e80b3SSadaf Ebrahimi /* yylex_init_extra has the same functionality as yylex_init, but follows the
2033*287e80b3SSadaf Ebrahimi * convention of taking the scanner as the last argument. Note however, that
2034*287e80b3SSadaf Ebrahimi * this is a *pointer* to a scanner, as it will be allocated by this call (and
2035*287e80b3SSadaf Ebrahimi * is the reason, too, why this function also must handle its own declaration).
2036*287e80b3SSadaf Ebrahimi * The user defined value in the first argument will be available to yyalloc in
2037*287e80b3SSadaf Ebrahimi * the yyextra field.
2038*287e80b3SSadaf Ebrahimi */
yylex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t * ptr_yy_globals)2039*287e80b3SSadaf Ebrahimi int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals )
2040*287e80b3SSadaf Ebrahimi {
2041*287e80b3SSadaf Ebrahimi struct yyguts_t dummy_yyguts;
2042*287e80b3SSadaf Ebrahimi
2043*287e80b3SSadaf Ebrahimi yyset_extra (yy_user_defined, &dummy_yyguts);
2044*287e80b3SSadaf Ebrahimi
2045*287e80b3SSadaf Ebrahimi if (ptr_yy_globals == NULL){
2046*287e80b3SSadaf Ebrahimi errno = EINVAL;
2047*287e80b3SSadaf Ebrahimi return 1;
2048*287e80b3SSadaf Ebrahimi }
2049*287e80b3SSadaf Ebrahimi
2050*287e80b3SSadaf Ebrahimi *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
2051*287e80b3SSadaf Ebrahimi
2052*287e80b3SSadaf Ebrahimi if (*ptr_yy_globals == NULL){
2053*287e80b3SSadaf Ebrahimi errno = ENOMEM;
2054*287e80b3SSadaf Ebrahimi return 1;
2055*287e80b3SSadaf Ebrahimi }
2056*287e80b3SSadaf Ebrahimi
2057*287e80b3SSadaf Ebrahimi /* By setting to 0xAA, we expose bugs in
2058*287e80b3SSadaf Ebrahimi yy_init_globals. Leave at 0x00 for releases. */
2059*287e80b3SSadaf Ebrahimi memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
2060*287e80b3SSadaf Ebrahimi
2061*287e80b3SSadaf Ebrahimi yyset_extra (yy_user_defined, *ptr_yy_globals);
2062*287e80b3SSadaf Ebrahimi
2063*287e80b3SSadaf Ebrahimi return yy_init_globals ( *ptr_yy_globals );
2064*287e80b3SSadaf Ebrahimi }
2065*287e80b3SSadaf Ebrahimi
yy_init_globals(yyscan_t yyscanner)2066*287e80b3SSadaf Ebrahimi static int yy_init_globals (yyscan_t yyscanner)
2067*287e80b3SSadaf Ebrahimi {
2068*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2069*287e80b3SSadaf Ebrahimi /* Initialization is the same as for the non-reentrant scanner.
2070*287e80b3SSadaf Ebrahimi * This function is called from yylex_destroy(), so don't allocate here.
2071*287e80b3SSadaf Ebrahimi */
2072*287e80b3SSadaf Ebrahimi
2073*287e80b3SSadaf Ebrahimi yyg->yy_buffer_stack = NULL;
2074*287e80b3SSadaf Ebrahimi yyg->yy_buffer_stack_top = 0;
2075*287e80b3SSadaf Ebrahimi yyg->yy_buffer_stack_max = 0;
2076*287e80b3SSadaf Ebrahimi yyg->yy_c_buf_p = NULL;
2077*287e80b3SSadaf Ebrahimi yyg->yy_init = 0;
2078*287e80b3SSadaf Ebrahimi yyg->yy_start = 0;
2079*287e80b3SSadaf Ebrahimi
2080*287e80b3SSadaf Ebrahimi yyg->yy_start_stack_ptr = 0;
2081*287e80b3SSadaf Ebrahimi yyg->yy_start_stack_depth = 0;
2082*287e80b3SSadaf Ebrahimi yyg->yy_start_stack = NULL;
2083*287e80b3SSadaf Ebrahimi
2084*287e80b3SSadaf Ebrahimi /* Defined in main.c */
2085*287e80b3SSadaf Ebrahimi #ifdef YY_STDINIT
2086*287e80b3SSadaf Ebrahimi yyin = stdin;
2087*287e80b3SSadaf Ebrahimi yyout = stdout;
2088*287e80b3SSadaf Ebrahimi #else
2089*287e80b3SSadaf Ebrahimi yyin = NULL;
2090*287e80b3SSadaf Ebrahimi yyout = NULL;
2091*287e80b3SSadaf Ebrahimi #endif
2092*287e80b3SSadaf Ebrahimi
2093*287e80b3SSadaf Ebrahimi /* For future reference: Set errno on error, since we are called by
2094*287e80b3SSadaf Ebrahimi * yylex_init()
2095*287e80b3SSadaf Ebrahimi */
2096*287e80b3SSadaf Ebrahimi return 0;
2097*287e80b3SSadaf Ebrahimi }
2098*287e80b3SSadaf Ebrahimi
2099*287e80b3SSadaf Ebrahimi /* yylex_destroy is for both reentrant and non-reentrant scanners. */
yylex_destroy(yyscan_t yyscanner)2100*287e80b3SSadaf Ebrahimi int yylex_destroy (yyscan_t yyscanner)
2101*287e80b3SSadaf Ebrahimi {
2102*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2103*287e80b3SSadaf Ebrahimi
2104*287e80b3SSadaf Ebrahimi /* Pop the buffer stack, destroying each element. */
2105*287e80b3SSadaf Ebrahimi while(YY_CURRENT_BUFFER){
2106*287e80b3SSadaf Ebrahimi yy_delete_buffer( YY_CURRENT_BUFFER , yyscanner );
2107*287e80b3SSadaf Ebrahimi YY_CURRENT_BUFFER_LVALUE = NULL;
2108*287e80b3SSadaf Ebrahimi yypop_buffer_state(yyscanner);
2109*287e80b3SSadaf Ebrahimi }
2110*287e80b3SSadaf Ebrahimi
2111*287e80b3SSadaf Ebrahimi /* Destroy the stack itself. */
2112*287e80b3SSadaf Ebrahimi yyfree(yyg->yy_buffer_stack , yyscanner);
2113*287e80b3SSadaf Ebrahimi yyg->yy_buffer_stack = NULL;
2114*287e80b3SSadaf Ebrahimi
2115*287e80b3SSadaf Ebrahimi /* Destroy the start condition stack. */
2116*287e80b3SSadaf Ebrahimi yyfree( yyg->yy_start_stack , yyscanner );
2117*287e80b3SSadaf Ebrahimi yyg->yy_start_stack = NULL;
2118*287e80b3SSadaf Ebrahimi
2119*287e80b3SSadaf Ebrahimi /* Reset the globals. This is important in a non-reentrant scanner so the next time
2120*287e80b3SSadaf Ebrahimi * yylex() is called, initialization will occur. */
2121*287e80b3SSadaf Ebrahimi yy_init_globals( yyscanner);
2122*287e80b3SSadaf Ebrahimi
2123*287e80b3SSadaf Ebrahimi /* Destroy the main struct (reentrant only). */
2124*287e80b3SSadaf Ebrahimi yyfree ( yyscanner , yyscanner );
2125*287e80b3SSadaf Ebrahimi yyscanner = NULL;
2126*287e80b3SSadaf Ebrahimi return 0;
2127*287e80b3SSadaf Ebrahimi }
2128*287e80b3SSadaf Ebrahimi
2129*287e80b3SSadaf Ebrahimi /*
2130*287e80b3SSadaf Ebrahimi * Internal utility routines.
2131*287e80b3SSadaf Ebrahimi */
2132*287e80b3SSadaf Ebrahimi
2133*287e80b3SSadaf Ebrahimi #ifndef yytext_ptr
yy_flex_strncpy(char * s1,const char * s2,int n,yyscan_t yyscanner)2134*287e80b3SSadaf Ebrahimi static void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner)
2135*287e80b3SSadaf Ebrahimi {
2136*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2137*287e80b3SSadaf Ebrahimi (void)yyg;
2138*287e80b3SSadaf Ebrahimi
2139*287e80b3SSadaf Ebrahimi int i;
2140*287e80b3SSadaf Ebrahimi for ( i = 0; i < n; ++i )
2141*287e80b3SSadaf Ebrahimi s1[i] = s2[i];
2142*287e80b3SSadaf Ebrahimi }
2143*287e80b3SSadaf Ebrahimi #endif
2144*287e80b3SSadaf Ebrahimi
2145*287e80b3SSadaf Ebrahimi #ifdef YY_NEED_STRLEN
yy_flex_strlen(const char * s,yyscan_t yyscanner)2146*287e80b3SSadaf Ebrahimi static int yy_flex_strlen (const char * s , yyscan_t yyscanner)
2147*287e80b3SSadaf Ebrahimi {
2148*287e80b3SSadaf Ebrahimi int n;
2149*287e80b3SSadaf Ebrahimi for ( n = 0; s[n]; ++n )
2150*287e80b3SSadaf Ebrahimi ;
2151*287e80b3SSadaf Ebrahimi
2152*287e80b3SSadaf Ebrahimi return n;
2153*287e80b3SSadaf Ebrahimi }
2154*287e80b3SSadaf Ebrahimi #endif
2155*287e80b3SSadaf Ebrahimi
yyalloc(yy_size_t size,yyscan_t yyscanner)2156*287e80b3SSadaf Ebrahimi void *yyalloc (yy_size_t size , yyscan_t yyscanner)
2157*287e80b3SSadaf Ebrahimi {
2158*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2159*287e80b3SSadaf Ebrahimi (void)yyg;
2160*287e80b3SSadaf Ebrahimi return malloc(size);
2161*287e80b3SSadaf Ebrahimi }
2162*287e80b3SSadaf Ebrahimi
yyrealloc(void * ptr,yy_size_t size,yyscan_t yyscanner)2163*287e80b3SSadaf Ebrahimi void *yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
2164*287e80b3SSadaf Ebrahimi {
2165*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2166*287e80b3SSadaf Ebrahimi (void)yyg;
2167*287e80b3SSadaf Ebrahimi
2168*287e80b3SSadaf Ebrahimi /* The cast to (char *) in the following accommodates both
2169*287e80b3SSadaf Ebrahimi * implementations that use char* generic pointers, and those
2170*287e80b3SSadaf Ebrahimi * that use void* generic pointers. It works with the latter
2171*287e80b3SSadaf Ebrahimi * because both ANSI C and C++ allow castless assignment from
2172*287e80b3SSadaf Ebrahimi * any pointer type to void*, and deal with argument conversions
2173*287e80b3SSadaf Ebrahimi * as though doing an assignment.
2174*287e80b3SSadaf Ebrahimi */
2175*287e80b3SSadaf Ebrahimi return realloc(ptr, size);
2176*287e80b3SSadaf Ebrahimi }
2177*287e80b3SSadaf Ebrahimi
yyfree(void * ptr,yyscan_t yyscanner)2178*287e80b3SSadaf Ebrahimi void yyfree (void * ptr , yyscan_t yyscanner)
2179*287e80b3SSadaf Ebrahimi {
2180*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2181*287e80b3SSadaf Ebrahimi (void)yyg;
2182*287e80b3SSadaf Ebrahimi free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
2183*287e80b3SSadaf Ebrahimi }
2184*287e80b3SSadaf Ebrahimi
2185*287e80b3SSadaf Ebrahimi #define YYTABLES_NAME "yytables"
2186*287e80b3SSadaf Ebrahimi
2187*287e80b3SSadaf Ebrahimi #line 89 "sqlhist.l"
2188*287e80b3SSadaf Ebrahimi
2189*287e80b3SSadaf Ebrahimi
yywrap(void * data)2190*287e80b3SSadaf Ebrahimi int yywrap(void *data)
2191*287e80b3SSadaf Ebrahimi {
2192*287e80b3SSadaf Ebrahimi return 1;
2193*287e80b3SSadaf Ebrahimi }
2194*287e80b3SSadaf Ebrahimi
yyerror(struct sqlhist_bison * sb,char * fmt,...)2195*287e80b3SSadaf Ebrahimi void yyerror(struct sqlhist_bison *sb, char *fmt, ...)
2196*287e80b3SSadaf Ebrahimi {
2197*287e80b3SSadaf Ebrahimi struct yyguts_t * yyg = (struct yyguts_t*)sb->scanner;
2198*287e80b3SSadaf Ebrahimi va_list ap;
2199*287e80b3SSadaf Ebrahimi
2200*287e80b3SSadaf Ebrahimi va_start(ap, fmt);
2201*287e80b3SSadaf Ebrahimi sql_parse_error(sb, yytext, fmt, ap);
2202*287e80b3SSadaf Ebrahimi va_end(ap);
2203*287e80b3SSadaf Ebrahimi }
2204*287e80b3SSadaf Ebrahimi
2205