6
#define YY_INT_ALIGNED short int
8
/* A lexical scanner generated by flex */
11
#define YY_FLEX_MAJOR_VERSION 2
12
#define YY_FLEX_MINOR_VERSION 5
13
#define YY_FLEX_SUBMINOR_VERSION 31
14
#if YY_FLEX_SUBMINOR_VERSION > 0
18
/* First, we deal with platform-specific or compiler-specific issues. */
20
/* begin standard C headers. */
26
/* end standard C headers. */
28
/* flex integer type definitions */
33
/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
35
#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
37
typedef int8_t flex_int8_t;
38
typedef uint8_t flex_uint8_t;
39
typedef int16_t flex_int16_t;
40
typedef uint16_t flex_uint16_t;
41
typedef int32_t flex_int32_t;
42
typedef uint32_t flex_uint32_t;
44
typedef signed char flex_int8_t;
45
typedef short int flex_int16_t;
46
typedef int flex_int32_t;
47
typedef unsigned char flex_uint8_t;
48
typedef unsigned short int flex_uint16_t;
49
typedef unsigned int flex_uint32_t;
52
/* Limits of integral types. */
54
#define INT8_MIN (-128)
57
#define INT16_MIN (-32767-1)
60
#define INT32_MIN (-2147483647-1)
63
#define INT8_MAX (127)
66
#define INT16_MAX (32767)
69
#define INT32_MAX (2147483647)
72
#define UINT8_MAX (255U)
75
#define UINT16_MAX (65535U)
78
#define UINT32_MAX (4294967295U)
81
#endif /* ! FLEXINT_H */
85
/* The "const" storage-class-modifier is valid. */
88
#else /* ! __cplusplus */
95
#endif /* ! __cplusplus */
103
/* Returned upon end-of-file. */
106
/* Promotes a possibly negative, possibly signed char to an unsigned
107
* integer for use as an array index. If the signed char is negative,
108
* we want to instead treat it as an 8-bit unsigned char, hence the
111
#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
113
/* Enter a start condition. This macro really ought to take a parameter,
114
* but we do it the disgusting crufty way forced on us by the ()-less
115
* definition of BEGIN.
117
#define BEGIN (yy_start) = 1 + 2 *
119
/* Translate the current start state into a value that can be later handed
120
* to BEGIN to return to the state. The YYSTATE alias is for lex
123
#define YY_START (((yy_start) - 1) / 2)
124
#define YYSTATE YY_START
126
/* Action number for EOF rule of a given start state. */
127
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
129
/* Special action meaning "start processing a new file". */
130
#define YY_NEW_FILE yyrestart(yyin )
132
#define YY_END_OF_BUFFER_CHAR 0
134
/* Size of default input buffer. */
136
#define YY_BUF_SIZE 16384
139
#ifndef YY_TYPEDEF_YY_BUFFER_STATE
140
#define YY_TYPEDEF_YY_BUFFER_STATE
141
typedef struct yy_buffer_state *YY_BUFFER_STATE;
144
static FILE *yyin, *yyout;
146
#define EOB_ACT_CONTINUE_SCAN 0
147
#define EOB_ACT_END_OF_FILE 1
148
#define EOB_ACT_LAST_MATCH 2
150
#define YY_LESS_LINENO(n)
152
/* Return all but the first "n" matched characters back to the input stream. */
156
/* Undo effects of setting up yytext. */ \
157
int yyless_macro_arg = (n); \
158
YY_LESS_LINENO(yyless_macro_arg);\
159
*yy_cp = (yy_hold_char); \
160
YY_RESTORE_YY_MORE_OFFSET \
161
(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
162
YY_DO_BEFORE_ACTION; /* set up yytext again */ \
166
#define unput(c) yyunput( c, (yytext_ptr) )
168
/* The following is because we cannot portably get our hands on size_t
169
* (without autoconf's help, which isn't available because we want
170
* flex-generated scanners to compile on their own).
173
#ifndef YY_TYPEDEF_YY_SIZE_T
174
#define YY_TYPEDEF_YY_SIZE_T
175
typedef unsigned int yy_size_t;
178
#ifndef YY_STRUCT_YY_BUFFER_STATE
179
#define YY_STRUCT_YY_BUFFER_STATE
180
struct yy_buffer_state
184
char *yy_ch_buf; /* input buffer */
185
char *yy_buf_pos; /* current position in input buffer */
187
/* Size of input buffer in bytes, not including room for EOB
190
yy_size_t yy_buf_size;
192
/* Number of characters read into yy_ch_buf, not including EOB
197
/* Whether we "own" the buffer - i.e., we know we created it,
198
* and can realloc() it to grow it, and should free() it to
201
int yy_is_our_buffer;
203
/* Whether this is an "interactive" input source; if so, and
204
* if we're using stdio for input, then we want to use getc()
205
* instead of fread(), to make sure we stop fetching input after
208
int yy_is_interactive;
210
/* Whether we're considered to be at the beginning of a line.
211
* If so, '^' rules will be active on the next match, otherwise
216
int yy_bs_lineno; /**< The line count. */
217
int yy_bs_column; /**< The column count. */
219
/* Whether to try to fill the input buffer when we reach the
224
int yy_buffer_status;
226
#define YY_BUFFER_NEW 0
227
#define YY_BUFFER_NORMAL 1
228
/* When an EOF's been seen but there's still some text to process
229
* then we mark the buffer as YY_EOF_PENDING, to indicate that we
230
* shouldn't try reading from the input source any more. We might
231
* still have a bunch of tokens to match, though, because of
232
* possible backing-up.
234
* When we actually see the EOF, we change the status to "new"
235
* (via yyrestart()), so that the user can continue scanning by
236
* just pointing yyin at a new input file.
238
#define YY_BUFFER_EOF_PENDING 2
241
#endif /* !YY_STRUCT_YY_BUFFER_STATE */
243
/* Stack of input buffers. */
244
static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
245
static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
246
static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
248
/* We provide macros for accessing buffer states in case in the
249
* future we want to put the buffer states in a more general
252
* Returns the top of the stack, or NULL.
254
#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
255
? (yy_buffer_stack)[(yy_buffer_stack_top)] \
258
/* Same as previous macro, but useful when we know that the buffer stack is not
259
* NULL or when we need an lvalue. For internal use only.
261
#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
263
/* yy_hold_char holds the character lost when yytext is formed. */
264
static char yy_hold_char;
265
static int yy_n_chars; /* number of characters read into yy_ch_buf */
268
/* Points to current character in buffer. */
269
static char *yy_c_buf_p = (char *) 0;
270
static int yy_init = 1; /* whether we need to initialize */
271
static int yy_start = 0; /* start state number */
273
/* Flag which is used to allow yywrap()'s to do buffer switches
274
* instead of setting up a fresh yyin. A bit of a hack ...
276
static int yy_did_buffer_switch_on_eof;
278
static void yyrestart (FILE *input_file );
279
__attribute__((unused)) static void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
280
static YY_BUFFER_STATE yy_create_buffer (FILE *file,int size );
281
static void yy_delete_buffer (YY_BUFFER_STATE b );
282
static void yy_flush_buffer (YY_BUFFER_STATE b );
283
__attribute__((unused)) static void yypush_buffer_state (YY_BUFFER_STATE new_buffer );
284
__attribute__((unused)) static void yypop_buffer_state (void );
286
static void yyensure_buffer_stack (void );
287
static void yy_load_buffer_state (void );
288
static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
290
#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
292
YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
293
YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
294
YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len );
296
static void *yyalloc (yy_size_t );
297
static void *yyrealloc (void *,yy_size_t );
298
static void yyfree (void * );
300
#define yy_new_buffer yy_create_buffer
302
#define yy_set_interactive(is_interactive) \
304
if ( ! YY_CURRENT_BUFFER ){ \
305
yyensure_buffer_stack (); \
306
YY_CURRENT_BUFFER_LVALUE = \
307
yy_create_buffer(yyin,YY_BUF_SIZE ); \
309
YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
312
#define yy_set_bol(at_bol) \
314
if ( ! YY_CURRENT_BUFFER ){\
315
yyensure_buffer_stack (); \
316
YY_CURRENT_BUFFER_LVALUE = \
317
yy_create_buffer(yyin,YY_BUF_SIZE ); \
319
YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
322
#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
324
/* Begin user sect3 */
327
#define YY_SKIP_YYWRAP
329
typedef unsigned char YY_CHAR;
331
static FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
333
typedef int yy_state_type;
337
static int yylineno = 1;
340
#define yytext_ptr yytext
342
static yy_state_type yy_get_previous_state (void );
343
static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
344
static int yy_get_next_buffer (void );
345
static void yy_fatal_error (yyconst char msg[] );
347
/* Done after the current pattern has been matched and before the
348
* corresponding action - sets up yytext.
350
#define YY_DO_BEFORE_ACTION \
351
(yytext_ptr) = yy_bp; \
352
yyleng = (size_t) (yy_cp - yy_bp); \
353
(yy_hold_char) = *yy_cp; \
355
(yy_c_buf_p) = yy_cp;
357
#define YY_NUM_RULES 119
358
#define YY_END_OF_BUFFER 120
359
/* This struct is not used in this scanner,
360
but its presence is necessary. */
363
flex_int32_t yy_verify;
366
static yyconst flex_int16_t yy_accept[399] =
368
0, 0, 114, 114, 0, 0, 0, 0, 120, 118,
369
117, 117, 8, 118, 109, 5, 98, 104, 107, 105,
370
102, 106, 118, 108, 1, 118, 103, 101, 99, 100,
371
112, 92, 92, 92, 92, 92, 92, 92, 92, 92,
372
92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
373
110, 111, 114, 115, 6, 7, 9, 10, 117, 4,
374
93, 113, 2, 1, 3, 94, 95, 97, 96, 92,
375
92, 92, 92, 92, 92, 44, 92, 92, 92, 92,
376
92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
377
92, 92, 28, 17, 25, 92, 92, 92, 92, 92,
379
54, 61, 92, 14, 92, 92, 92, 92, 92, 92,
380
92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
381
92, 92, 114, 115, 115, 116, 6, 7, 9, 10,
382
2, 13, 45, 92, 92, 92, 92, 92, 92, 92,
383
92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
384
92, 27, 92, 92, 92, 41, 92, 92, 92, 92,
385
21, 92, 92, 92, 92, 15, 92, 92, 92, 18,
386
92, 92, 92, 92, 92, 80, 92, 92, 92, 51,
387
92, 12, 92, 36, 92, 92, 92, 92, 92, 92,
388
92, 92, 92, 92, 92, 92, 92, 92, 20, 24,
390
92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
391
46, 92, 92, 30, 92, 87, 92, 92, 39, 92,
392
92, 92, 92, 92, 48, 92, 89, 32, 91, 92,
393
11, 64, 92, 92, 92, 42, 92, 92, 92, 92,
394
92, 92, 92, 92, 92, 92, 29, 92, 92, 92,
395
92, 92, 92, 92, 92, 92, 85, 92, 26, 92,
396
66, 92, 92, 92, 37, 92, 92, 92, 92, 92,
397
92, 92, 31, 65, 23, 92, 57, 92, 75, 92,
398
92, 92, 43, 92, 92, 92, 92, 92, 92, 92,
399
92, 90, 92, 92, 56, 92, 92, 92, 92, 92,
401
92, 92, 40, 33, 79, 19, 92, 83, 74, 55,
402
92, 63, 92, 52, 92, 92, 92, 47, 92, 76,
403
92, 78, 92, 92, 34, 92, 92, 92, 35, 72,
404
92, 92, 92, 92, 58, 92, 50, 49, 92, 92,
405
53, 62, 92, 92, 92, 22, 92, 92, 73, 81,
406
92, 92, 77, 92, 68, 92, 92, 92, 92, 38,
407
92, 88, 67, 92, 84, 92, 92, 92, 86, 92,
408
59, 92, 16, 92, 70, 69, 92, 92, 82, 92,
409
92, 92, 92, 92, 92, 92, 92, 92, 92, 71,
410
92, 92, 92, 92, 92, 92, 60, 0
414
static yyconst flex_int32_t yy_ec[256] =
416
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
417
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
418
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
419
1, 2, 1, 4, 1, 5, 6, 1, 7, 8,
420
9, 10, 11, 12, 13, 14, 15, 16, 16, 16,
421
16, 16, 16, 16, 16, 16, 16, 17, 18, 19,
422
20, 21, 22, 1, 23, 24, 25, 26, 27, 28,
423
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
424
39, 40, 41, 42, 43, 44, 45, 46, 47, 32,
425
1, 1, 1, 1, 48, 1, 32, 32, 32, 32,
427
32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
428
32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
429
32, 32, 49, 1, 50, 1, 1, 1, 1, 1,
430
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
431
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
432
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
433
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
434
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
435
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
436
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
438
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
439
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
440
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
441
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
442
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
446
static yyconst flex_int32_t yy_meta[51] =
448
1, 1, 1, 2, 1, 1, 3, 1, 1, 4,
449
1, 1, 1, 1, 1, 5, 1, 1, 1, 6,
450
1, 1, 5, 5, 5, 5, 5, 5, 5, 5,
451
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
452
5, 5, 5, 5, 5, 5, 5, 5, 1, 1
455
static yyconst flex_int16_t yy_base[409] =
457
0, 0, 437, 436, 438, 437, 439, 438, 441, 448,
458
49, 51, 448, 0, 448, 448, 448, 448, 448, 448,
459
448, 448, 426, 429, 41, 418, 448, 38, 448, 417,
460
448, 20, 33, 32, 46, 40, 44, 0, 54, 52,
461
399, 48, 60, 395, 65, 67, 81, 27, 411, 75,
462
448, 448, 0, 98, 0, 426, 0, 428, 113, 0,
463
448, 448, 415, 54, 410, 448, 448, 448, 448, 0,
464
403, 68, 399, 391, 389, 0, 402, 80, 84, 397,
465
383, 96, 381, 394, 379, 393, 387, 375, 379, 375,
466
377, 377, 0, 98, 0, 376, 97, 385, 368, 375,
468
0, 0, 381, 381, 364, 94, 103, 379, 98, 65,
469
381, 369, 109, 361, 377, 373, 351, 97, 372, 363,
470
115, 356, 0, 137, 138, 448, 0, 388, 0, 390,
471
377, 0, 0, 365, 360, 367, 365, 348, 346, 345,
472
350, 359, 347, 359, 95, 347, 353, 354, 336, 336,
473
123, 0, 334, 350, 351, 0, 338, 347, 344, 122,
474
124, 341, 336, 330, 340, 338, 331, 328, 336, 0,
475
326, 336, 334, 325, 315, 309, 322, 307, 327, 0,
476
313, 0, 311, 0, 325, 316, 313, 131, 309, 316,
477
323, 302, 304, 309, 309, 301, 304, 299, 0, 0,
479
311, 295, 305, 312, 292, 291, 305, 294, 307, 287,
480
0, 297, 279, 0, 298, 0, 295, 282, 0, 281,
481
276, 281, 280, 290, 0, 276, 0, 0, 0, 280,
482
0, 0, 276, 273, 287, 0, 272, 272, 270, 286,
483
271, 283, 280, 264, 282, 277, 0, 272, 272, 258,
484
257, 270, 256, 270, 269, 268, 0, 252, 0, 246,
485
0, 265, 249, 248, 0, 262, 252, 247, 246, 258,
486
248, 247, 0, 0, 0, 251, 0, 239, 0, 253,
487
249, 235, 0, 249, 250, 233, 238, 231, 249, 231,
488
228, 0, 229, 226, 0, 231, 243, 230, 237, 227,
490
235, 220, 0, 0, 0, 212, 219, 0, 0, 0,
491
216, 0, 230, 0, 231, 218, 217, 0, 213, 0,
492
216, 0, 208, 210, 0, 209, 223, 216, 0, 0,
493
219, 222, 204, 219, 0, 215, 0, 0, 199, 213,
494
0, 0, 197, 196, 201, 0, 210, 195, 0, 0,
495
201, 197, 0, 192, 0, 204, 204, 192, 202, 0,
496
179, 0, 0, 199, 0, 183, 177, 183, 0, 174,
497
0, 193, 0, 192, 0, 0, 183, 187, 0, 174,
498
174, 180, 166, 189, 181, 180, 166, 151, 118, 0,
499
130, 136, 127, 123, 119, 111, 0, 448, 167, 173,
501
179, 152, 181, 124, 187, 193, 199, 205
504
static yyconst flex_int16_t yy_def[409] =
506
398, 1, 399, 399, 400, 400, 401, 401, 398, 398,
507
398, 398, 398, 402, 398, 398, 398, 398, 398, 398,
508
398, 398, 398, 398, 398, 403, 398, 398, 398, 398,
509
398, 404, 404, 404, 404, 404, 404, 404, 404, 404,
510
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
511
398, 398, 405, 406, 407, 398, 408, 398, 398, 402,
512
398, 398, 398, 398, 403, 398, 398, 398, 398, 404,
513
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
514
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
515
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
517
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
518
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
519
404, 404, 405, 406, 406, 398, 407, 398, 408, 398,
520
398, 404, 404, 404, 404, 404, 404, 404, 404, 404,
521
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
522
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
523
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
524
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
525
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
526
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
528
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
529
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
530
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
531
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
532
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
533
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
534
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
535
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
536
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
537
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
539
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
540
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
541
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
542
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
543
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
544
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
545
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
546
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
547
404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
548
404, 404, 404, 404, 404, 404, 404, 0, 398, 398,
550
398, 398, 398, 398, 398, 398, 398, 398
553
static yyconst flex_int16_t yy_nxt[499] =
555
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
556
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
557
30, 31, 32, 33, 34, 35, 36, 37, 38, 38,
558
39, 38, 38, 40, 41, 42, 43, 44, 38, 45,
559
46, 47, 48, 49, 50, 38, 38, 38, 51, 52,
560
59, 59, 59, 59, 63, 71, 64, 67, 68, 73,
561
72, 77, 118, 74, 119, 78, 75, 63, 79, 64,
562
88, 80, 82, 85, 81, 86, 83, 89, 96, 76,
563
90, 93, 84, 91, 99, 87, 92, 101, 97, 94,
564
100, 107, 133, 110, 95, 102, 111, 103, 179, 104,
566
108, 109, 105, 115, 121, 112, 180, 125, 134, 113,
567
116, 122, 126, 114, 59, 59, 139, 117, 141, 142,
568
146, 163, 140, 159, 171, 173, 143, 189, 70, 147,
569
172, 177, 183, 164, 207, 208, 148, 190, 160, 161,
570
174, 193, 178, 184, 175, 194, 398, 125, 222, 214,
571
224, 398, 126, 215, 248, 249, 60, 397, 396, 395,
572
225, 394, 393, 223, 392, 391, 250, 53, 53, 53,
573
53, 53, 53, 55, 55, 55, 55, 55, 55, 57,
574
57, 57, 57, 57, 57, 65, 65, 123, 123, 123,
575
390, 123, 123, 124, 124, 124, 124, 124, 124, 127,
577
127, 389, 127, 127, 127, 129, 388, 129, 129, 129,
578
129, 387, 386, 385, 384, 383, 382, 381, 380, 379,
579
378, 377, 376, 375, 374, 373, 372, 371, 370, 369,
580
368, 367, 366, 365, 364, 363, 362, 361, 360, 359,
581
358, 357, 356, 355, 354, 353, 352, 351, 350, 349,
582
348, 347, 346, 345, 344, 343, 342, 341, 340, 339,
583
338, 337, 336, 335, 334, 333, 332, 331, 330, 329,
584
328, 327, 326, 325, 324, 323, 322, 321, 320, 319,
585
318, 317, 316, 315, 314, 313, 312, 311, 310, 309,
586
308, 307, 306, 305, 304, 303, 302, 301, 300, 299,
588
298, 297, 296, 295, 294, 293, 292, 291, 290, 289,
589
288, 287, 286, 285, 284, 283, 282, 281, 280, 279,
590
278, 277, 276, 275, 274, 273, 272, 271, 270, 269,
591
268, 267, 266, 265, 264, 263, 262, 261, 260, 259,
592
258, 257, 256, 255, 254, 253, 252, 251, 247, 246,
593
245, 244, 243, 242, 241, 240, 239, 238, 237, 236,
594
235, 234, 233, 232, 231, 230, 229, 228, 227, 226,
595
221, 220, 219, 218, 217, 216, 213, 212, 211, 210,
596
209, 206, 205, 204, 203, 202, 201, 200, 199, 198,
597
197, 196, 131, 130, 128, 195, 192, 191, 188, 187,
599
186, 185, 182, 181, 176, 170, 169, 168, 167, 166,
600
165, 162, 158, 157, 156, 155, 154, 153, 152, 151,
601
150, 149, 145, 144, 138, 137, 136, 135, 132, 398,
602
131, 130, 128, 120, 106, 98, 69, 66, 62, 61,
603
398, 58, 58, 56, 56, 54, 54, 9, 398, 398,
604
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
605
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
606
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
607
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
608
398, 398, 398, 398, 398, 398, 398, 398
612
static yyconst flex_int16_t yy_chk[499] =
614
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
615
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
616
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
617
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
618
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
619
11, 11, 12, 12, 25, 32, 25, 28, 28, 33,
620
32, 34, 48, 33, 48, 34, 33, 64, 34, 64,
621
37, 34, 35, 36, 34, 36, 35, 37, 40, 33,
622
37, 39, 35, 37, 42, 36, 37, 43, 40, 39,
623
42, 45, 72, 46, 39, 43, 46, 43, 110, 43,
625
45, 45, 43, 47, 50, 46, 110, 54, 72, 46,
626
47, 50, 54, 46, 59, 59, 78, 47, 79, 79,
627
82, 97, 78, 94, 106, 107, 79, 118, 404, 82,
628
106, 109, 113, 97, 145, 145, 82, 118, 94, 94,
629
107, 121, 109, 113, 107, 121, 124, 125, 160, 151,
630
161, 124, 125, 151, 188, 188, 402, 396, 395, 394,
631
161, 393, 392, 160, 391, 389, 188, 399, 399, 399,
632
399, 399, 399, 400, 400, 400, 400, 400, 400, 401,
633
401, 401, 401, 401, 401, 403, 403, 405, 405, 405,
634
388, 405, 405, 406, 406, 406, 406, 406, 406, 407,
636
407, 387, 407, 407, 407, 408, 386, 408, 408, 408,
637
408, 385, 384, 383, 382, 381, 380, 378, 377, 374,
638
372, 370, 368, 367, 366, 364, 361, 359, 358, 357,
639
356, 354, 352, 351, 348, 347, 345, 344, 343, 340,
640
339, 336, 334, 333, 332, 331, 328, 327, 326, 324,
641
323, 321, 319, 317, 316, 315, 313, 311, 307, 306,
642
302, 301, 300, 299, 298, 297, 296, 294, 293, 291,
643
290, 289, 288, 287, 286, 285, 284, 282, 281, 280,
644
278, 276, 272, 271, 270, 269, 268, 267, 266, 264,
645
263, 262, 260, 258, 256, 255, 254, 253, 252, 251,
647
250, 249, 248, 246, 245, 244, 243, 242, 241, 240,
648
239, 238, 237, 235, 234, 233, 230, 226, 224, 223,
649
222, 221, 220, 218, 217, 215, 213, 212, 210, 209,
650
208, 207, 206, 205, 204, 203, 202, 201, 198, 197,
651
196, 195, 194, 193, 192, 191, 190, 189, 187, 186,
652
185, 183, 181, 179, 178, 177, 176, 175, 174, 173,
653
172, 171, 169, 168, 167, 166, 165, 164, 163, 162,
654
159, 158, 157, 155, 154, 153, 150, 149, 148, 147,
655
146, 144, 143, 142, 141, 140, 139, 138, 137, 136,
656
135, 134, 131, 130, 128, 122, 120, 119, 117, 116,
658
115, 114, 112, 111, 108, 105, 104, 103, 100, 99,
659
98, 96, 92, 91, 90, 89, 88, 87, 86, 85,
660
84, 83, 81, 80, 77, 75, 74, 73, 71, 65,
661
63, 58, 56, 49, 44, 41, 30, 26, 24, 23,
662
9, 8, 7, 6, 5, 4, 3, 398, 398, 398,
663
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
664
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
665
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
666
398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
667
398, 398, 398, 398, 398, 398, 398, 398
671
static yy_state_type yy_last_accepting_state;
672
static char *yy_last_accepting_cpos;
674
static int yy_flex_debug;
675
static int yy_flex_debug = 0;
677
/* The intent behind this definition is that it'll catch
678
* any uses of REJECT which flex missed.
680
#define REJECT reject_used_but_not_detected
681
#define yymore() yymore_used_but_not_detected
682
#define YY_MORE_ADJ 0
683
#define YY_RESTORE_YY_MORE_OFFSET
685
/******************************************************
686
SQL parser lexical analyzer: input file for the GNU Flex lexer generator
690
Created 12/14/1997 Heikki Tuuri
691
Published under the GPL version 2
693
The InnoDB parser is frozen because MySQL takes care of SQL parsing.
694
Therefore we normally keep the InnoDB parser C files as they are, and do
695
not automatically generate them from pars0grm.y and pars0lex.l.
697
How to make the InnoDB parser and lexer C files:
699
1. Run ./make_flex.sh to generate lexer files.
701
2. Run ./make_bison.sh to generate parser files.
703
These instructions seem to work at least with bison-1.875d and flex-2.5.31 on
705
*******************************************************/
706
#define YY_NO_INPUT 1
707
#define YY_NO_UNISTD_H 1
708
#line 38 "pars0lex.l"
709
#define YYSTYPE que_node_t*
712
#include "pars0pars.h"
713
#include "pars0grm.h"
714
#include "pars0sym.h"
718
#define malloc(A) ut_malloc(A)
719
#define free(A) ut_free(A)
720
#define realloc(P, A) ut_realloc(P, A)
721
#define exit(A) ut_error
723
#define YY_INPUT(buf, result, max_size) pars_get_lex_chars(buf, &result, max_size)
725
/* String buffer for removing quotes */
726
static ulint stringbuf_len_alloc = 0; /* Allocated length */
727
static ulint stringbuf_len = 0; /* Current length */
728
static char* stringbuf; /* Start of buffer */
729
/* Appends a string to the buffer. */
734
const char* str, /* in: string to be appended */
735
ulint len) /* in: length of the string */
737
if (stringbuf == NULL) {
738
stringbuf = malloc(1);
739
stringbuf_len_alloc = 1;
742
if (stringbuf_len + len > stringbuf_len_alloc) {
743
while (stringbuf_len + len > stringbuf_len_alloc) {
744
stringbuf_len_alloc <<= 1;
746
stringbuf = realloc(stringbuf, stringbuf_len_alloc);
749
memcpy(stringbuf + stringbuf_len, str, len);
750
stringbuf_len += len;
763
#ifndef YY_NO_UNISTD_H
764
/* Special case for "unistd.h", since it is non-ANSI. We include it way
765
* down here because we want the user's section 1 to have been scanned first.
766
* The user has a chance to override it with an option.
771
#ifndef YY_EXTRA_TYPE
772
#define YY_EXTRA_TYPE void *
775
/* Macros after this point can all be overridden by user definitions in
779
#ifndef YY_SKIP_YYWRAP
781
extern "C" int yywrap (void );
783
extern int yywrap (void );
788
static void yy_flex_strncpy (char *,yyconst char *,int );
791
#ifdef YY_NEED_STRLEN
792
static int yy_flex_strlen (yyconst char * );
798
static int yyinput (void );
800
static int input (void );
805
/* Amount of stuff to slurp up with each read. */
806
#ifndef YY_READ_BUF_SIZE
807
#define YY_READ_BUF_SIZE 8192
810
/* Copy whatever the last rule matched to the standard output. */
812
/* This used to be an fputs(), but since the string might contain NUL's,
813
* we now use fwrite().
815
#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
818
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
819
* is returned in "result".
822
#define YY_INPUT(buf,result,max_size) \
823
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
827
for ( n = 0; n < max_size && \
828
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
831
buf[n++] = (char) c; \
832
if ( c == EOF && ferror( yyin ) ) \
833
YY_FATAL_ERROR( "input in flex scanner failed" ); \
839
while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
841
if( errno != EINTR) \
843
YY_FATAL_ERROR( "input in flex scanner failed" ); \
854
/* No semi-colon after return; correct usage is to write "yyterminate();" -
855
* we don't want an extra ';' after the "return" because that will cause
856
* some compilers to complain about unreachable statements.
859
#define yyterminate() return YY_NULL
862
/* Number of entries by which start-condition stack grows. */
863
#ifndef YY_START_STACK_INCR
864
#define YY_START_STACK_INCR 25
867
/* Report a fatal error. */
868
#ifndef YY_FATAL_ERROR
869
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
872
/* end tables serialization structures and prototypes */
874
/* Default declaration of generated scanner - a define so the user can
875
* easily add parameters.
878
#define YY_DECL_IS_OURS 1
880
UNIV_INTERN int yylex (void);
882
#define YY_DECL UNIV_INTERN int yylex (void)
883
#endif /* !YY_DECL */
885
/* Code executed at the beginning of each rule, after yytext and yyleng
888
#ifndef YY_USER_ACTION
889
#define YY_USER_ACTION
892
/* Code executed at the end of each rule. */
894
#define YY_BREAK break;
897
#define YY_RULE_SETUP \
900
/** The main scanner function which does all the work.
904
register yy_state_type yy_current_state;
905
register char *yy_cp, *yy_bp;
908
#line 92 "pars0lex.l"
922
(yy_start) = 1; /* first start state */
930
if ( ! YY_CURRENT_BUFFER ) {
931
yyensure_buffer_stack ();
932
YY_CURRENT_BUFFER_LVALUE =
933
yy_create_buffer(yyin,YY_BUF_SIZE );
936
yy_load_buffer_state( );
939
while ( 1 ) /* loops until end-of-file is reached */
941
yy_cp = (yy_c_buf_p);
943
/* Support of yytext. */
944
*yy_cp = (yy_hold_char);
946
/* yy_bp points to the position in yy_ch_buf of the start of
951
yy_current_state = (yy_start);
955
register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
956
if ( yy_accept[yy_current_state] )
958
(yy_last_accepting_state) = yy_current_state;
959
(yy_last_accepting_cpos) = yy_cp;
961
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
963
yy_current_state = (int) yy_def[yy_current_state];
964
if ( yy_current_state >= 399 )
965
yy_c = yy_meta[(unsigned int) yy_c];
967
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
970
while ( yy_current_state != 398 );
971
yy_cp = (yy_last_accepting_cpos);
972
yy_current_state = (yy_last_accepting_state);
975
yy_act = yy_accept[yy_current_state];
979
do_action: /* This label is used only to access EOF actions. */
982
{ /* beginning of action switch */
983
case 0: /* must back up */
984
/* undo the effects of YY_DO_BEFORE_ACTION */
985
*yy_cp = (yy_hold_char);
986
yy_cp = (yy_last_accepting_cpos);
987
yy_current_state = (yy_last_accepting_state);
992
#line 94 "pars0lex.l"
994
yylval = sym_tab_add_int_lit(pars_sym_tab_global,
996
return(PARS_INT_LIT);
1001
#line 100 "pars0lex.l"
1003
ut_error; /* not implemented */
1005
return(PARS_FLOAT_LIT);
1010
#line 106 "pars0lex.l"
1014
yylval = sym_tab_add_bound_lit(pars_sym_tab_global,
1022
#line 115 "pars0lex.l"
1024
yylval = sym_tab_add_bound_id(pars_sym_tab_global,
1027
return(PARS_ID_TOKEN);
1032
#line 122 "pars0lex.l"
1034
/* Quoted character string literals are handled in an explicit
1035
start state 'quoted'. This state is entered and the buffer for
1036
the scanned string is emptied upon encountering a starting quote.
1038
In the state 'quoted', only two actions are possible (defined below). */
1044
/* rule 6 can match eol */
1046
#line 131 "pars0lex.l"
1048
/* Got a sequence of characters other than "'":
1049
append to string buffer */
1050
string_append(yytext, yyleng);
1055
#line 136 "pars0lex.l"
1057
/* Got a sequence of "'" characters:
1058
append half of them to string buffer,
1059
as "''" represents a single "'".
1060
We apply truncating division,
1061
so that "'''" will result in "'". */
1063
string_append(yytext, yyleng / 2);
1065
/* If we got an odd number of quotes, then the
1066
last quote we got is the terminating quote.
1067
At the end of the string, we return to the
1068
initial start state and report the scanned
1073
yylval = sym_tab_add_str_lit(
1074
pars_sym_tab_global,
1075
(byte*) stringbuf, stringbuf_len);
1076
return(PARS_STR_LIT);
1082
#line 160 "pars0lex.l"
1084
/* Quoted identifiers are handled in an explicit start state 'id'.
1085
This state is entered and the buffer for the scanned string is emptied
1086
upon encountering a starting quote.
1088
In the state 'id', only two actions are possible (defined below). */
1094
/* rule 9 can match eol */
1096
#line 169 "pars0lex.l"
1098
/* Got a sequence of characters other than '"':
1099
append to string buffer */
1100
string_append(yytext, yyleng);
1105
#line 174 "pars0lex.l"
1107
/* Got a sequence of '"' characters:
1108
append half of them to string buffer,
1109
as '""' represents a single '"'.
1110
We apply truncating division,
1111
so that '"""' will result in '"'. */
1113
string_append(yytext, yyleng / 2);
1115
/* If we got an odd number of quotes, then the
1116
last quote we got is the terminating quote.
1117
At the end of the string, we return to the
1118
initial start state and report the scanned
1123
yylval = sym_tab_add_id(
1124
pars_sym_tab_global,
1125
(byte*) stringbuf, stringbuf_len);
1127
return(PARS_ID_TOKEN);
1133
#line 199 "pars0lex.l"
1135
yylval = sym_tab_add_null_lit(pars_sym_tab_global);
1137
return(PARS_NULL_LIT);
1142
#line 205 "pars0lex.l"
1144
/* Implicit cursor name */
1145
yylval = sym_tab_add_str_lit(pars_sym_tab_global,
1146
(byte*) yytext, yyleng);
1147
return(PARS_SQL_TOKEN);
1152
#line 212 "pars0lex.l"
1154
return(PARS_AND_TOKEN);
1159
#line 216 "pars0lex.l"
1161
return(PARS_OR_TOKEN);
1166
#line 220 "pars0lex.l"
1168
return(PARS_NOT_TOKEN);
1173
#line 224 "pars0lex.l"
1175
return(PARS_PROCEDURE_TOKEN);
1180
#line 228 "pars0lex.l"
1182
return(PARS_IN_TOKEN);
1187
#line 232 "pars0lex.l"
1189
return(PARS_OUT_TOKEN);
1194
#line 236 "pars0lex.l"
1196
return(PARS_BINARY_TOKEN);
1201
#line 240 "pars0lex.l"
1203
return(PARS_BLOB_TOKEN);
1208
#line 244 "pars0lex.l"
1210
return(PARS_INT_TOKEN);
1215
#line 248 "pars0lex.l"
1217
return(PARS_INT_TOKEN);
1222
#line 252 "pars0lex.l"
1224
return(PARS_FLOAT_TOKEN);
1229
#line 256 "pars0lex.l"
1231
return(PARS_CHAR_TOKEN);
1236
#line 260 "pars0lex.l"
1238
return(PARS_IS_TOKEN);
1243
#line 264 "pars0lex.l"
1245
return(PARS_BEGIN_TOKEN);
1250
#line 268 "pars0lex.l"
1252
return(PARS_END_TOKEN);
1257
#line 272 "pars0lex.l"
1259
return(PARS_IF_TOKEN);
1264
#line 276 "pars0lex.l"
1266
return(PARS_THEN_TOKEN);
1271
#line 280 "pars0lex.l"
1273
return(PARS_ELSE_TOKEN);
1278
#line 284 "pars0lex.l"
1280
return(PARS_ELSIF_TOKEN);
1285
#line 288 "pars0lex.l"
1287
return(PARS_LOOP_TOKEN);
1292
#line 292 "pars0lex.l"
1294
return(PARS_WHILE_TOKEN);
1299
#line 296 "pars0lex.l"
1301
return(PARS_RETURN_TOKEN);
1306
#line 300 "pars0lex.l"
1308
return(PARS_SELECT_TOKEN);
1313
#line 304 "pars0lex.l"
1315
return(PARS_SUM_TOKEN);
1320
#line 308 "pars0lex.l"
1322
return(PARS_COUNT_TOKEN);
1327
#line 312 "pars0lex.l"
1329
return(PARS_DISTINCT_TOKEN);
1334
#line 316 "pars0lex.l"
1336
return(PARS_FROM_TOKEN);
1341
#line 320 "pars0lex.l"
1343
return(PARS_WHERE_TOKEN);
1348
#line 324 "pars0lex.l"
1350
return(PARS_FOR_TOKEN);
1355
#line 328 "pars0lex.l"
1357
return(PARS_READ_TOKEN);
1362
#line 332 "pars0lex.l"
1364
return(PARS_ORDER_TOKEN);
1369
#line 336 "pars0lex.l"
1371
return(PARS_BY_TOKEN);
1376
#line 340 "pars0lex.l"
1378
return(PARS_ASC_TOKEN);
1383
#line 344 "pars0lex.l"
1385
return(PARS_DESC_TOKEN);
1390
#line 348 "pars0lex.l"
1392
return(PARS_INSERT_TOKEN);
1397
#line 352 "pars0lex.l"
1399
return(PARS_INTO_TOKEN);
1404
#line 356 "pars0lex.l"
1406
return(PARS_VALUES_TOKEN);
1411
#line 360 "pars0lex.l"
1413
return(PARS_UPDATE_TOKEN);
1418
#line 364 "pars0lex.l"
1420
return(PARS_SET_TOKEN);
1425
#line 368 "pars0lex.l"
1427
return(PARS_DELETE_TOKEN);
1432
#line 372 "pars0lex.l"
1434
return(PARS_CURRENT_TOKEN);
1439
#line 376 "pars0lex.l"
1441
return(PARS_OF_TOKEN);
1446
#line 380 "pars0lex.l"
1448
return(PARS_CREATE_TOKEN);
1453
#line 384 "pars0lex.l"
1455
return(PARS_TABLE_TOKEN);
1460
#line 388 "pars0lex.l"
1462
return(PARS_INDEX_TOKEN);
1467
#line 392 "pars0lex.l"
1469
return(PARS_UNIQUE_TOKEN);
1474
#line 396 "pars0lex.l"
1476
return(PARS_CLUSTERED_TOKEN);
1481
#line 400 "pars0lex.l"
1483
return(PARS_DOES_NOT_FIT_IN_MEM_TOKEN);
1488
#line 404 "pars0lex.l"
1490
return(PARS_ON_TOKEN);
1495
#line 408 "pars0lex.l"
1497
return(PARS_DECLARE_TOKEN);
1502
#line 412 "pars0lex.l"
1504
return(PARS_CURSOR_TOKEN);
1509
#line 416 "pars0lex.l"
1511
return(PARS_OPEN_TOKEN);
1516
#line 420 "pars0lex.l"
1518
return(PARS_FETCH_TOKEN);
1523
#line 424 "pars0lex.l"
1525
return(PARS_CLOSE_TOKEN);
1530
#line 428 "pars0lex.l"
1532
return(PARS_NOTFOUND_TOKEN);
1537
#line 432 "pars0lex.l"
1539
return(PARS_TO_CHAR_TOKEN);
1544
#line 436 "pars0lex.l"
1546
return(PARS_TO_NUMBER_TOKEN);
1551
#line 440 "pars0lex.l"
1553
return(PARS_TO_BINARY_TOKEN);
1558
#line 444 "pars0lex.l"
1560
return(PARS_BINARY_TO_NUMBER_TOKEN);
1565
#line 448 "pars0lex.l"
1567
return(PARS_SUBSTR_TOKEN);
1572
#line 452 "pars0lex.l"
1574
return(PARS_REPLSTR_TOKEN);
1579
#line 456 "pars0lex.l"
1581
return(PARS_CONCAT_TOKEN);
1586
#line 460 "pars0lex.l"
1588
return(PARS_INSTR_TOKEN);
1593
#line 464 "pars0lex.l"
1595
return(PARS_LENGTH_TOKEN);
1600
#line 468 "pars0lex.l"
1602
return(PARS_SYSDATE_TOKEN);
1607
#line 472 "pars0lex.l"
1609
return(PARS_PRINTF_TOKEN);
1614
#line 476 "pars0lex.l"
1616
return(PARS_ASSERT_TOKEN);
1621
#line 480 "pars0lex.l"
1623
return(PARS_RND_TOKEN);
1628
#line 484 "pars0lex.l"
1630
return(PARS_RND_STR_TOKEN);
1635
#line 488 "pars0lex.l"
1637
return(PARS_ROW_PRINTF_TOKEN);
1642
#line 492 "pars0lex.l"
1644
return(PARS_COMMIT_TOKEN);
1649
#line 496 "pars0lex.l"
1651
return(PARS_ROLLBACK_TOKEN);
1656
#line 500 "pars0lex.l"
1658
return(PARS_WORK_TOKEN);
1663
#line 504 "pars0lex.l"
1665
return(PARS_UNSIGNED_TOKEN);
1670
#line 508 "pars0lex.l"
1672
return(PARS_EXIT_TOKEN);
1677
#line 512 "pars0lex.l"
1679
return(PARS_FUNCTION_TOKEN);
1684
#line 516 "pars0lex.l"
1686
return(PARS_LOCK_TOKEN);
1691
#line 520 "pars0lex.l"
1693
return(PARS_SHARE_TOKEN);
1698
#line 524 "pars0lex.l"
1700
return(PARS_MODE_TOKEN);
1705
#line 528 "pars0lex.l"
1707
yylval = sym_tab_add_id(pars_sym_tab_global,
1710
return(PARS_ID_TOKEN);
1715
#line 535 "pars0lex.l"
1717
return(PARS_DDOT_TOKEN);
1722
#line 539 "pars0lex.l"
1724
return(PARS_ASSIGN_TOKEN);
1729
#line 543 "pars0lex.l"
1731
return(PARS_LE_TOKEN);
1736
#line 547 "pars0lex.l"
1738
return(PARS_GE_TOKEN);
1743
#line 551 "pars0lex.l"
1745
return(PARS_NE_TOKEN);
1750
#line 555 "pars0lex.l"
1753
return((int)(*yytext));
1758
#line 560 "pars0lex.l"
1761
return((int)(*yytext));
1766
#line 565 "pars0lex.l"
1769
return((int)(*yytext));
1774
#line 570 "pars0lex.l"
1777
return((int)(*yytext));
1782
#line 575 "pars0lex.l"
1785
return((int)(*yytext));
1790
#line 580 "pars0lex.l"
1793
return((int)(*yytext));
1798
#line 585 "pars0lex.l"
1801
return((int)(*yytext));
1806
#line 590 "pars0lex.l"
1809
return((int)(*yytext));
1814
#line 595 "pars0lex.l"
1817
return((int)(*yytext));
1822
#line 600 "pars0lex.l"
1825
return((int)(*yytext));
1830
#line 605 "pars0lex.l"
1833
return((int)(*yytext));
1838
#line 610 "pars0lex.l"
1841
return((int)(*yytext));
1846
#line 615 "pars0lex.l"
1849
return((int)(*yytext));
1854
#line 620 "pars0lex.l"
1857
return((int)(*yytext));
1862
#line 625 "pars0lex.l"
1865
return((int)(*yytext));
1870
#line 630 "pars0lex.l"
1871
BEGIN(comment); /* eat up comment */
1874
/* rule 114 can match eol */
1876
#line 632 "pars0lex.l"
1880
/* rule 115 can match eol */
1882
#line 633 "pars0lex.l"
1887
#line 634 "pars0lex.l"
1891
/* rule 117 can match eol */
1893
#line 636 "pars0lex.l"
1894
/* eat up whitespace */
1898
#line 639 "pars0lex.l"
1900
fprintf(stderr,"Unrecognized character: %02x\n",
1910
#line 648 "pars0lex.l"
1911
YY_FATAL_ERROR( "flex scanner jammed" );
1913
#line 1916 "lexyy.c"
1914
case YY_STATE_EOF(INITIAL):
1915
case YY_STATE_EOF(comment):
1916
case YY_STATE_EOF(quoted):
1917
case YY_STATE_EOF(id):
1920
case YY_END_OF_BUFFER:
1922
/* Amount of text matched not including the EOB char. */
1923
int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
1925
/* Undo the effects of YY_DO_BEFORE_ACTION. */
1926
*yy_cp = (yy_hold_char);
1927
YY_RESTORE_YY_MORE_OFFSET
1929
if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1931
/* We're scanning a new file or input source. It's
1932
* possible that this happened because the user
1933
* just pointed yyin at a new source and called
1934
* yylex(). If so, then we have to assure
1935
* consistency between YY_CURRENT_BUFFER and our
1936
* globals. Here is the right place to do so, because
1937
* this is the first action (other than possibly a
1938
* back-up) that will match for the new input source.
1940
(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1941
YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1942
YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1945
/* Note that here we test for yy_c_buf_p "<=" to the position
1946
* of the first EOB in the buffer, since yy_c_buf_p will
1947
* already have been incremented past the NUL character
1948
* (since all states make transitions on EOB to the
1949
* end-of-buffer state). Contrast this with the test
1952
if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1953
{ /* This was really a NUL. */
1954
yy_state_type yy_next_state;
1956
(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
1958
yy_current_state = yy_get_previous_state( );
1960
/* Okay, we're now positioned to make the NUL
1961
* transition. We couldn't have
1962
* yy_get_previous_state() go ahead and do it
1963
* for us because it doesn't know how to deal
1964
* with the possibility of jamming (and we don't
1965
* want to build jamming into it because then it
1966
* will run more slowly).
1969
yy_next_state = yy_try_NUL_trans( yy_current_state );
1971
yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1973
if ( yy_next_state )
1975
/* Consume the NUL. */
1976
yy_cp = ++(yy_c_buf_p);
1977
yy_current_state = yy_next_state;
1983
yy_cp = (yy_last_accepting_cpos);
1984
yy_current_state = (yy_last_accepting_state);
1985
goto yy_find_action;
1989
else switch ( yy_get_next_buffer( ) )
1991
case EOB_ACT_END_OF_FILE:
1993
(yy_did_buffer_switch_on_eof) = 0;
1997
/* Note: because we've taken care in
1998
* yy_get_next_buffer() to have set up
1999
* yytext, we can now set up
2000
* yy_c_buf_p so that if some total
2001
* hoser (like flex itself) wants to
2002
* call the scanner after we return the
2003
* YY_NULL, it'll still work - another
2004
* YY_NULL will get returned.
2006
(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2008
yy_act = YY_STATE_EOF(YY_START);
2014
if ( ! (yy_did_buffer_switch_on_eof) )
2020
case EOB_ACT_CONTINUE_SCAN:
2022
(yytext_ptr) + yy_amount_of_matched_text;
2024
yy_current_state = yy_get_previous_state( );
2026
yy_cp = (yy_c_buf_p);
2027
yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2030
case EOB_ACT_LAST_MATCH:
2032
&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2034
yy_current_state = yy_get_previous_state( );
2036
yy_cp = (yy_c_buf_p);
2037
yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2038
goto yy_find_action;
2045
"fatal flex scanner internal error--no action found" );
2046
} /* end of action switch */
2047
} /* end of scanning one token */
2048
} /* end of yylex */
2050
/* yy_get_next_buffer - try to read in a new buffer
2052
* Returns a code representing an action:
2053
* EOB_ACT_LAST_MATCH -
2054
* EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2055
* EOB_ACT_END_OF_FILE - end of file
2057
static int yy_get_next_buffer (void)
2059
register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2060
register char *source = (yytext_ptr);
2061
register int number_to_move, i;
2064
if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2066
"fatal flex scanner internal error--end of buffer missed" );
2068
if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2069
{ /* Don't try to fill the buffer, so this is an EOF. */
2070
if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2072
/* We matched a single character, the EOB, so
2073
* treat this as a final EOF.
2075
return EOB_ACT_END_OF_FILE;
2080
/* We matched some text prior to the EOB, first
2083
return EOB_ACT_LAST_MATCH;
2087
/* Try to read more data. */
2089
/* First move last chars to start of buffer. */
2090
number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2092
for ( i = 0; i < number_to_move; ++i )
2093
*(dest++) = *(source++);
2095
if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2096
/* don't do the read, it's not guaranteed to return an EOF,
2099
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2103
size_t num_to_read =
2104
YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2106
while ( num_to_read <= 0 )
2107
{ /* Not enough room in the buffer - grow it. */
2109
/* just a shorter name for the current buffer */
2110
YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2112
int yy_c_buf_p_offset =
2113
(int) ((yy_c_buf_p) - b->yy_ch_buf);
2115
if ( b->yy_is_our_buffer )
2117
int new_size = b->yy_buf_size * 2;
2119
if ( new_size <= 0 )
2120
b->yy_buf_size += b->yy_buf_size / 8;
2122
b->yy_buf_size *= 2;
2124
b->yy_ch_buf = (char *)
2125
/* Include room in for 2 EOB chars. */
2126
yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
2129
/* Can't grow it, we don't own it. */
2132
if ( ! b->yy_ch_buf )
2134
"fatal error - scanner input buffer overflow" );
2136
(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2138
num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2143
if ( num_to_read > YY_READ_BUF_SIZE )
2144
num_to_read = YY_READ_BUF_SIZE;
2146
/* Read in more data. */
2147
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2148
(yy_n_chars), num_to_read );
2150
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2153
if ( (yy_n_chars) == 0 )
2155
if ( number_to_move == YY_MORE_ADJ )
2157
ret_val = EOB_ACT_END_OF_FILE;
2163
ret_val = EOB_ACT_LAST_MATCH;
2164
YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2165
YY_BUFFER_EOF_PENDING;
2170
ret_val = EOB_ACT_CONTINUE_SCAN;
2172
(yy_n_chars) += number_to_move;
2173
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2174
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2176
(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2181
/* yy_get_previous_state - get the state just before the EOB char was reached */
2183
static yy_state_type yy_get_previous_state (void)
2185
register yy_state_type yy_current_state;
2186
register char *yy_cp;
2188
yy_current_state = (yy_start);
2190
for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2192
register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2193
if ( yy_accept[yy_current_state] )
2195
(yy_last_accepting_state) = yy_current_state;
2196
(yy_last_accepting_cpos) = yy_cp;
2198
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2200
yy_current_state = (int) yy_def[yy_current_state];
2201
if ( yy_current_state >= 399 )
2202
yy_c = yy_meta[(unsigned int) yy_c];
2204
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2207
return yy_current_state;
2210
/* yy_try_NUL_trans - try to make a transition on the NUL character
2213
* next_state = yy_try_NUL_trans( current_state );
2215
static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2217
register int yy_is_jam;
2218
register char *yy_cp = (yy_c_buf_p);
2220
register YY_CHAR yy_c = 1;
2221
if ( yy_accept[yy_current_state] )
2223
(yy_last_accepting_state) = yy_current_state;
2224
(yy_last_accepting_cpos) = yy_cp;
2226
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2228
yy_current_state = (int) yy_def[yy_current_state];
2229
if ( yy_current_state >= 399 )
2230
yy_c = yy_meta[(unsigned int) yy_c];
2232
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2233
yy_is_jam = (yy_current_state == 398);
2235
return yy_is_jam ? 0 : yy_current_state;
2240
static int yyinput (void)
2242
static int input (void)
2248
*(yy_c_buf_p) = (yy_hold_char);
2250
if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2252
/* yy_c_buf_p now points to the character we want to return.
2253
* If this occurs *before* the EOB characters, then it's a
2254
* valid NUL; if not, then we've hit the end of the buffer.
2256
if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2257
/* This was really a NUL. */
2258
*(yy_c_buf_p) = '\0';
2261
{ /* need more input */
2262
int offset = (int)((yy_c_buf_p) - (yytext_ptr));
2265
switch ( yy_get_next_buffer( ) )
2267
case EOB_ACT_LAST_MATCH:
2268
/* This happens because yy_g_n_b()
2269
* sees that we've accumulated a
2270
* token and flags that we need to
2271
* try matching the token before
2272
* proceeding. But for input(),
2273
* there's no matching to consider.
2274
* So convert the EOB_ACT_LAST_MATCH
2275
* to EOB_ACT_END_OF_FILE.
2278
/* Reset buffer status. */
2283
case EOB_ACT_END_OF_FILE:
2288
if ( ! (yy_did_buffer_switch_on_eof) )
2297
case EOB_ACT_CONTINUE_SCAN:
2298
(yy_c_buf_p) = (yytext_ptr) + offset;
2304
c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
2305
*(yy_c_buf_p) = '\0'; /* preserve yytext */
2306
(yy_hold_char) = *++(yy_c_buf_p);
2310
#endif /* ifndef YY_NO_INPUT */
2312
/** Immediately switch to a different input stream.
2313
* @param input_file A readable stream.
2315
* @note This function does not reset the start condition to @c INITIAL .
2317
static void yyrestart (FILE * input_file )
2320
if ( ! YY_CURRENT_BUFFER ){
2321
yyensure_buffer_stack ();
2322
YY_CURRENT_BUFFER_LVALUE =
2323
yy_create_buffer(yyin,YY_BUF_SIZE );
2326
yy_init_buffer(YY_CURRENT_BUFFER,input_file );
2327
yy_load_buffer_state( );
2330
/** Switch to a different input buffer.
2331
* @param new_buffer The new input buffer.
2334
__attribute__((unused)) static void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
2337
/* TODO. We should be able to replace this entire function body
2339
* yypop_buffer_state();
2340
* yypush_buffer_state(new_buffer);
2342
yyensure_buffer_stack ();
2343
if ( YY_CURRENT_BUFFER == new_buffer )
2346
if ( YY_CURRENT_BUFFER )
2348
/* Flush out information for old buffer. */
2349
*(yy_c_buf_p) = (yy_hold_char);
2350
YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2351
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2354
YY_CURRENT_BUFFER_LVALUE = new_buffer;
2355
yy_load_buffer_state( );
2357
/* We don't actually know whether we did this switch during
2358
* EOF (yywrap()) processing, but the only time this flag
2359
* is looked at is after yywrap() is called, so it's safe
2360
* to go ahead and always set it.
2362
(yy_did_buffer_switch_on_eof) = 1;
2365
static void yy_load_buffer_state (void)
2367
(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2368
(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2369
yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2370
(yy_hold_char) = *(yy_c_buf_p);
2373
/** Allocate and initialize an input buffer state.
2374
* @param file A readable stream.
2375
* @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2377
* @return the allocated buffer state.
2379
static YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
2383
b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
2385
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2387
b->yy_buf_size = size;
2389
/* yy_ch_buf has to be 2 characters longer than the size given because
2390
* we need to put in 2 end-of-buffer characters.
2392
b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 );
2393
if ( ! b->yy_ch_buf )
2394
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2396
b->yy_is_our_buffer = 1;
2398
yy_init_buffer(b,file );
2403
/** Destroy the buffer.
2404
* @param b a buffer created with yy_create_buffer()
2407
static void yy_delete_buffer (YY_BUFFER_STATE b )
2413
if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2414
YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2416
if ( b->yy_is_our_buffer )
2417
yyfree((void *) b->yy_ch_buf );
2419
yyfree((void *) b );
2422
/* Initializes or reinitializes a buffer.
2423
* This function is sometimes called more than once on the same buffer,
2424
* such as during a yyrestart() or at EOF.
2426
static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
2431
yy_flush_buffer(b );
2433
b->yy_input_file = file;
2434
b->yy_fill_buffer = 1;
2436
/* If b is the current buffer, then yy_init_buffer was _probably_
2437
* called from yyrestart() or through yy_get_next_buffer.
2438
* In that case, we don't want to reset the lineno or column.
2440
if (b != YY_CURRENT_BUFFER){
2441
b->yy_bs_lineno = 1;
2442
b->yy_bs_column = 0;
2445
b->yy_is_interactive = 0;
2450
/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2451
* @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2454
static void yy_flush_buffer (YY_BUFFER_STATE b )
2461
/* We always need two end-of-buffer characters. The first causes
2462
* a transition to the end-of-buffer state. The second causes
2463
* a jam in that state.
2465
b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2466
b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2468
b->yy_buf_pos = &b->yy_ch_buf[0];
2471
b->yy_buffer_status = YY_BUFFER_NEW;
2473
if ( b == YY_CURRENT_BUFFER )
2474
yy_load_buffer_state( );
2477
/** Pushes the new state onto the stack. The new state becomes
2478
* the current state. This function will allocate the stack
2480
* @param new_buffer The new state.
2483
__attribute__((unused)) static void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2485
if (new_buffer == NULL)
2488
yyensure_buffer_stack();
2490
/* This block is copied from yy_switch_to_buffer. */
2491
if ( YY_CURRENT_BUFFER )
2493
/* Flush out information for old buffer. */
2494
*(yy_c_buf_p) = (yy_hold_char);
2495
YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2496
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2499
/* Only push if top exists. Otherwise, replace top. */
2500
if (YY_CURRENT_BUFFER)
2501
(yy_buffer_stack_top)++;
2502
YY_CURRENT_BUFFER_LVALUE = new_buffer;
2504
/* copied from yy_switch_to_buffer. */
2505
yy_load_buffer_state( );
2506
(yy_did_buffer_switch_on_eof) = 1;
2509
/** Removes and deletes the top of the stack, if present.
2510
* The next element becomes the new top.
2513
__attribute__((unused)) static void yypop_buffer_state (void)
2515
if (!YY_CURRENT_BUFFER)
2518
yy_delete_buffer(YY_CURRENT_BUFFER );
2519
YY_CURRENT_BUFFER_LVALUE = NULL;
2520
if ((yy_buffer_stack_top) > 0)
2521
--(yy_buffer_stack_top);
2523
if (YY_CURRENT_BUFFER) {
2524
yy_load_buffer_state( );
2525
(yy_did_buffer_switch_on_eof) = 1;
2529
/* Allocates the stack if it does not exist.
2530
* Guarantees space for at least one push.
2532
static void yyensure_buffer_stack (void)
2536
if (!(yy_buffer_stack)) {
2538
/* First allocation is just for 2 elements, since we don't know if this
2539
* scanner will even need a stack. We use 2 instead of 1 to avoid an
2540
* immediate realloc on the next call.
2543
(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
2544
(num_to_alloc * sizeof(struct yy_buffer_state*)
2547
memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2549
(yy_buffer_stack_max) = num_to_alloc;
2550
(yy_buffer_stack_top) = 0;
2554
if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
2556
/* Increase the buffer to prepare for a possible push. */
2557
int grow_size = 8 /* arbitrary grow size */;
2559
num_to_alloc = (yy_buffer_stack_max) + grow_size;
2560
(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
2562
num_to_alloc * sizeof(struct yy_buffer_state*)
2565
/* zero only the new slots.*/
2566
memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2567
(yy_buffer_stack_max) = num_to_alloc;
2571
#ifndef YY_EXIT_FAILURE
2572
#define YY_EXIT_FAILURE 2
2575
static void yy_fatal_error (yyconst char* msg )
2577
(void) fprintf( stderr, "%s\n", msg );
2578
exit( YY_EXIT_FAILURE );
2581
/* Redefine yyless() so it works in section 3 code. */
2587
/* Undo effects of setting up yytext. */ \
2588
int yyless_macro_arg = (n); \
2589
YY_LESS_LINENO(yyless_macro_arg);\
2590
yytext[yyleng] = (yy_hold_char); \
2591
(yy_c_buf_p) = yytext + yyless_macro_arg; \
2592
(yy_hold_char) = *(yy_c_buf_p); \
2593
*(yy_c_buf_p) = '\0'; \
2594
yyleng = yyless_macro_arg; \
2598
/* Accessor methods (get/set functions) to struct members. */
2600
/** Get the current line number.
2603
__attribute__((unused)) static int yyget_lineno (void)
2609
/** Get the input stream.
2612
__attribute__((unused)) static FILE *yyget_in (void)
2617
/** Get the output stream.
2620
__attribute__((unused)) static FILE *yyget_out (void)
2625
/** Get the length of the current token.
2628
__attribute__((unused)) static int yyget_leng (void)
2633
/** Get the current token.
2637
__attribute__((unused)) static char *yyget_text (void)
2642
/** Set the current line number.
2643
* @param line_number
2646
__attribute__((unused)) static void yyset_lineno (int line_number )
2649
yylineno = line_number;
2652
/** Set the input stream. This does not discard the current
2654
* @param in_str A readable stream.
2656
* @see yy_switch_to_buffer
2658
__attribute__((unused)) static void yyset_in (FILE * in_str )
2663
__attribute__((unused)) static void yyset_out (FILE * out_str )
2668
__attribute__((unused)) static int yyget_debug (void)
2670
return yy_flex_debug;
2673
__attribute__((unused)) static void yyset_debug (int bdebug )
2675
yy_flex_debug = bdebug ;
2678
/* yylex_destroy is for both reentrant and non-reentrant scanners. */
2679
__attribute__((unused)) static int yylex_destroy (void)
2682
/* Pop the buffer stack, destroying each element. */
2683
while(YY_CURRENT_BUFFER){
2684
yy_delete_buffer(YY_CURRENT_BUFFER );
2685
YY_CURRENT_BUFFER_LVALUE = NULL;
2686
yypop_buffer_state();
2689
/* Destroy the stack itself. */
2690
yyfree((yy_buffer_stack) );
2691
(yy_buffer_stack) = NULL;
2697
* Internal utility routines.
2701
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
2704
for ( i = 0; i < n; ++i )
2709
#ifdef YY_NEED_STRLEN
2710
static int yy_flex_strlen (yyconst char * s )
2713
for ( n = 0; s[n]; ++n )
2720
static void *yyalloc (yy_size_t size )
2722
return (void *) malloc( size );
2725
static void *yyrealloc (void * ptr, yy_size_t size )
2727
/* The cast to (char *) in the following accommodates both
2728
* implementations that use char* generic pointers, and those
2729
* that use void* generic pointers. It works with the latter
2730
* because both ANSI C and C++ allow castless assignment from
2731
* any pointer type to void*, and deal with argument conversions
2732
* as though doing an assignment.
2734
return (void *) realloc( (char *) ptr, size );
2737
static void yyfree (void * ptr )
2739
free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
2742
#define YYTABLES_NAME "yytables"
2745
#undef YY_FLUSH_BUFFER
2747
#undef yy_new_buffer
2748
#undef yy_set_interactive
2750
#undef YY_DO_BEFORE_ACTION
2752
#ifdef YY_DECL_IS_OURS
2753
#undef YY_DECL_IS_OURS
2756
#line 648 "pars0lex.l"