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