1 #line 2 "clexer.cpp"
2
3 #line 4 "clexer.cpp"
4
5 #define YY_INT_ALIGNED short int
6
7 /* A lexical scanner generated by flex */
8
9 #define yy_create_buffer c__create_buffer
10 #define yy_delete_buffer c__delete_buffer
11 #define yy_flex_debug c__flex_debug
12 #define yy_init_buffer c__init_buffer
13 #define yy_flush_buffer c__flush_buffer
14 #define yy_load_buffer_state c__load_buffer_state
15 #define yy_switch_to_buffer c__switch_to_buffer
16 #define yyin c_in
17 #define yyleng c_leng
18 #define yylex c_lex
19 #define yylineno c_lineno
20 #define yyout c_out
21 #define yyrestart c_restart
22 #define yytext c_text
23 #define yywrap c_wrap
24 #define yyalloc c_alloc
25 #define yyrealloc c_realloc
26 #define yyfree c_free
27
28 #define FLEX_SCANNER
29 #define YY_FLEX_MAJOR_VERSION 2
30 #define YY_FLEX_MINOR_VERSION 6
31 #define YY_FLEX_SUBMINOR_VERSION 0
32 #if YY_FLEX_SUBMINOR_VERSION > 0
33 #define FLEX_BETA
34 #endif
35
36 /* First, we deal with platform-specific or compiler-specific issues. */
37
38 /* begin standard C headers. */
39 #include <stdio.h>
40 #include <string.h>
41 #include <errno.h>
42 #include <stdlib.h>
43
44 /* end standard C headers. */
45
46 /* flex integer type definitions */
47
48 #ifndef FLEXINT_H
49 #define FLEXINT_H
50
51 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
52
53 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
54
55 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
56 * if you want the limit (max/min) macros for int types.
57 */
58 #ifndef __STDC_LIMIT_MACROS
59 #define __STDC_LIMIT_MACROS 1
60 #endif
61
62 #include <inttypes.h>
63 typedef int8_t flex_int8_t;
64 typedef uint8_t flex_uint8_t;
65 typedef int16_t flex_int16_t;
66 typedef uint16_t flex_uint16_t;
67 typedef int32_t flex_int32_t;
68 typedef uint32_t flex_uint32_t;
69 #else
70 typedef signed char flex_int8_t;
71 typedef short int flex_int16_t;
72 typedef int flex_int32_t;
73 typedef unsigned char flex_uint8_t;
74 typedef unsigned short int flex_uint16_t;
75 typedef unsigned int flex_uint32_t;
76
77 /* Limits of integral types. */
78 #ifndef INT8_MIN
79 #define INT8_MIN (-128)
80 #endif
81 #ifndef INT16_MIN
82 #define INT16_MIN (-32767-1)
83 #endif
84 #ifndef INT32_MIN
85 #define INT32_MIN (-2147483647-1)
86 #endif
87 #ifndef INT8_MAX
88 #define INT8_MAX (127)
89 #endif
90 #ifndef INT16_MAX
91 #define INT16_MAX (32767)
92 #endif
93 #ifndef INT32_MAX
94 #define INT32_MAX (2147483647)
95 #endif
96 #ifndef UINT8_MAX
97 #define UINT8_MAX (255U)
98 #endif
99 #ifndef UINT16_MAX
100 #define UINT16_MAX (65535U)
101 #endif
102 #ifndef UINT32_MAX
103 #define UINT32_MAX (4294967295U)
104 #endif
105
106 #endif /* ! C99 */
107
108 #endif /* ! FLEXINT_H */
109
110 #ifdef __cplusplus
111
112 /* The "const" storage-class-modifier is valid. */
113 #define YY_USE_CONST
114
115 #else /* ! __cplusplus */
116
117 /* C99 requires __STDC__ to be defined as 1. */
118 #if defined (__STDC__)
119
120 #define YY_USE_CONST
121
122 #endif /* defined (__STDC__) */
123 #endif /* ! __cplusplus */
124
125 #ifdef YY_USE_CONST
126 #define yyconst const
127 #else
128 #define yyconst
129 #endif
130
131 /* Returned upon end-of-file. */
132 #define YY_NULL 0
133
134 /* Promotes a possibly negative, possibly signed char to an unsigned
135 * integer for use as an array index. If the signed char is negative,
136 * we want to instead treat it as an 8-bit unsigned char, hence the
137 * double cast.
138 */
139 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
140
141 /* Enter a start condition. This macro really ought to take a parameter,
142 * but we do it the disgusting crufty way forced on us by the ()-less
143 * definition of BEGIN.
144 */
145 #define BEGIN (yy_start) = 1 + 2 *
146
147 /* Translate the current start state into a value that can be later handed
148 * to BEGIN to return to the state. The YYSTATE alias is for lex
149 * compatibility.
150 */
151 #define YY_START (((yy_start) - 1) / 2)
152 #define YYSTATE YY_START
153
154 /* Action number for EOF rule of a given start state. */
155 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
156
157 /* Special action meaning "start processing a new file". */
158 #define YY_NEW_FILE c_restart(c_in )
159
160 #define YY_END_OF_BUFFER_CHAR 0
161
162 /* Size of default input buffer. */
163 #ifndef YY_BUF_SIZE
164 #ifdef __ia64__
165 /* On IA-64, the buffer size is 16k, not 8k.
166 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
167 * Ditto for the __ia64__ case accordingly.
168 */
169 #define YY_BUF_SIZE 32768
170 #else
171 #define YY_BUF_SIZE 16384
172 #endif /* __ia64__ */
173 #endif
174
175 /* The state buf must be large enough to hold one state per character in the main buffer.
176 */
177 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
178
179 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
180 #define YY_TYPEDEF_YY_BUFFER_STATE
181 typedef struct yy_buffer_state *YY_BUFFER_STATE;
182 #endif
183
184 #ifndef YY_TYPEDEF_YY_SIZE_T
185 #define YY_TYPEDEF_YY_SIZE_T
186 typedef size_t yy_size_t;
187 #endif
188
189 extern yy_size_t c_leng;
190
191 extern FILE *c_in, *c_out;
192
193 #define EOB_ACT_CONTINUE_SCAN 0
194 #define EOB_ACT_END_OF_FILE 1
195 #define EOB_ACT_LAST_MATCH 2
196
197 #define YY_LESS_LINENO(n)
198 #define YY_LINENO_REWIND_TO(ptr)
199
200 /* Return all but the first "n" matched characters back to the input stream. */
201 #define yyless(n) \
202 do \
203 { \
204 /* Undo effects of setting up c_text. */ \
205 int yyless_macro_arg = (n); \
206 YY_LESS_LINENO(yyless_macro_arg);\
207 *yy_cp = (yy_hold_char); \
208 YY_RESTORE_YY_MORE_OFFSET \
209 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
210 YY_DO_BEFORE_ACTION; /* set up c_text again */ \
211 } \
212 while ( 0 )
213
214 #define unput(c) yyunput( c, (yytext_ptr) )
215
216 #ifndef YY_STRUCT_YY_BUFFER_STATE
217 #define YY_STRUCT_YY_BUFFER_STATE
218 struct yy_buffer_state
219 {
220 FILE *yy_input_file;
221
222 char *yy_ch_buf; /* input buffer */
223 char *yy_buf_pos; /* current position in input buffer */
224
225 /* Size of input buffer in bytes, not including room for EOB
226 * characters.
227 */
228 yy_size_t yy_buf_size;
229
230 /* Number of characters read into yy_ch_buf, not including EOB
231 * characters.
232 */
233 int yy_n_chars;
234
235 /* Whether we "own" the buffer - i.e., we know we created it,
236 * and can realloc() it to grow it, and should free() it to
237 * delete it.
238 */
239 int yy_is_our_buffer;
240
241 /* Whether this is an "interactive" input source; if so, and
242 * if we're using stdio for input, then we want to use getc()
243 * instead of fread(), to make sure we stop fetching input after
244 * each newline.
245 */
246 int yy_is_interactive;
247
248 /* Whether we're considered to be at the beginning of a line.
249 * If so, '^' rules will be active on the next match, otherwise
250 * not.
251 */
252 int yy_at_bol;
253
254 int yy_bs_lineno; /**< The line count. */
255 int yy_bs_column; /**< The column count. */
256
257 /* Whether to try to fill the input buffer when we reach the
258 * end of it.
259 */
260 int yy_fill_buffer;
261
262 int yy_buffer_status;
263
264 #define YY_BUFFER_NEW 0
265 #define YY_BUFFER_NORMAL 1
266 /* When an EOF's been seen but there's still some text to process
267 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
268 * shouldn't try reading from the input source any more. We might
269 * still have a bunch of tokens to match, though, because of
270 * possible backing-up.
271 *
272 * When we actually see the EOF, we change the status to "new"
273 * (via c_restart()), so that the user can continue scanning by
274 * just pointing c_in at a new input file.
275 */
276 #define YY_BUFFER_EOF_PENDING 2
277
278 };
279 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
280
281 /* Stack of input buffers. */
282 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
283 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
284 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
285
286 /* We provide macros for accessing buffer states in case in the
287 * future we want to put the buffer states in a more general
288 * "scanner state".
289 *
290 * Returns the top of the stack, or NULL.
291 */
292 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
293 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
294 : NULL)
295
296 /* Same as previous macro, but useful when we know that the buffer stack is not
297 * NULL or when we need an lvalue. For internal use only.
298 */
299 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
300
301 /* yy_hold_char holds the character lost when c_text is formed. */
302 static char yy_hold_char;
303 static int yy_n_chars; /* number of characters read into yy_ch_buf */
304 yy_size_t c_leng;
305
306 /* Points to current character in buffer. */
307 static char *yy_c_buf_p = (char *) 0;
308 static int yy_init = 0; /* whether we need to initialize */
309 static int yy_start = 0; /* start state number */
310
311 /* Flag which is used to allow c_wrap()'s to do buffer switches
312 * instead of setting up a fresh c_in. A bit of a hack ...
313 */
314 static int yy_did_buffer_switch_on_eof;
315
316 void c_restart (FILE *input_file );
317 void c__switch_to_buffer (YY_BUFFER_STATE new_buffer );
318 YY_BUFFER_STATE c__create_buffer (FILE *file,int size );
319 void c__delete_buffer (YY_BUFFER_STATE b );
320 void c__flush_buffer (YY_BUFFER_STATE b );
321 void c_push_buffer_state (YY_BUFFER_STATE new_buffer );
322 void c_pop_buffer_state (void );
323
324 static void c_ensure_buffer_stack (void );
325 static void c__load_buffer_state (void );
326 static void c__init_buffer (YY_BUFFER_STATE b,FILE *file );
327
328 #define YY_FLUSH_BUFFER c__flush_buffer(YY_CURRENT_BUFFER )
329
330 YY_BUFFER_STATE c__scan_buffer (char *base,yy_size_t size );
331 YY_BUFFER_STATE c__scan_string (yyconst char *yy_str );
332 YY_BUFFER_STATE c__scan_bytes (yyconst char *bytes,yy_size_t len );
333
334 void *c_alloc (yy_size_t );
335 void *c_realloc (void *,yy_size_t );
336 void c_free (void * );
337
338 #define yy_new_buffer c__create_buffer
339
340 #define yy_set_interactive(is_interactive) \
341 { \
342 if ( ! YY_CURRENT_BUFFER ){ \
343 c_ensure_buffer_stack (); \
344 YY_CURRENT_BUFFER_LVALUE = \
345 c__create_buffer(c_in,YY_BUF_SIZE ); \
346 } \
347 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
348 }
349
350 #define yy_set_bol(at_bol) \
351 { \
352 if ( ! YY_CURRENT_BUFFER ){\
353 c_ensure_buffer_stack (); \
354 YY_CURRENT_BUFFER_LVALUE = \
355 c__create_buffer(c_in,YY_BUF_SIZE ); \
356 } \
357 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
358 }
359
360 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
361
362 /* Begin user sect3 */
363
364 #define c_wrap() (/*CONSTCOND*/1)
365 #define YY_SKIP_YYWRAP
366
367 typedef unsigned char YY_CHAR;
368
369 FILE *c_in = (FILE *) 0, *c_out = (FILE *) 0;
370
371 typedef int yy_state_type;
372
373 extern int c_lineno;
374
375 int c_lineno = 1;
376
377 extern char *c_text;
378 #ifdef yytext_ptr
379 #undef yytext_ptr
380 #endif
381 #define yytext_ptr c_text
382
383 static yy_state_type yy_get_previous_state (void );
384 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
385 static int yy_get_next_buffer (void );
386 #if defined(__GNUC__) && __GNUC__ >= 3
387 __attribute__((__noreturn__))
388 #endif
389 static void yy_fatal_error (yyconst char msg[] );
390
391 /* Done after the current pattern has been matched and before the
392 * corresponding action - sets up c_text.
393 */
394 #define YY_DO_BEFORE_ACTION \
395 (yytext_ptr) = yy_bp; \
396 c_leng = (size_t) (yy_cp - yy_bp); \
397 (yy_hold_char) = *yy_cp; \
398 *yy_cp = '\0'; \
399 (yy_c_buf_p) = yy_cp;
400
401 #define YY_NUM_RULES 117
402 #define YY_END_OF_BUFFER 118
403 /* This struct is not used in this scanner,
404 but its presence is necessary. */
405 struct yy_trans_info
406 {
407 flex_int32_t yy_verify;
408 flex_int32_t yy_nxt;
409 };
410 static yyconst flex_int16_t yy_accept[404] =
411 { 0,
412 0, 0, 76, 76, 85, 85, 118, 116, 114, 111,
413 113, 84, 116, 116, 116, 116, 90, 90, 115, 115,
414 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
415 115, 115, 115, 115, 115, 115, 115, 115, 115, 76,
416 78, 79, 77, 85, 86, 87, 89, 117, 112, 83,
417 0, 0, 106, 75, 82, 0, 90, 0, 107, 91,
418 92, 0, 115, 115, 115, 115, 115, 115, 115, 115,
419 115, 115, 115, 115, 115, 41, 115, 115, 115, 115,
420 115, 115, 115, 115, 115, 48, 115, 115, 115, 115,
421 115, 115, 115, 53, 115, 115, 115, 115, 115, 115,
422
423 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
424 115, 115, 76, 80, 77, 77, 81, 85, 0, 88,
425 109, 0, 109, 108, 82, 106, 0, 106, 93, 96,
426 94, 98, 28, 30, 115, 115, 115, 115, 115, 115,
427 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
428 115, 115, 115, 115, 46, 115, 115, 115, 13, 115,
429 115, 115, 49, 50, 115, 115, 115, 115, 115, 115,
430 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
431 115, 115, 67, 115, 115, 115, 115, 115, 115, 115,
432 115, 115, 73, 110, 97, 95, 99, 100, 115, 1,
433
434 115, 115, 2, 115, 34, 115, 3, 115, 115, 115,
435 115, 115, 115, 115, 115, 43, 7, 115, 115, 115,
436 115, 115, 115, 47, 115, 14, 115, 115, 115, 115,
437 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
438 115, 115, 115, 115, 64, 115, 66, 115, 115, 115,
439 115, 115, 25, 115, 115, 115, 115, 101, 104, 102,
440 115, 115, 32, 33, 35, 4, 36, 5, 115, 115,
441 115, 115, 115, 115, 115, 115, 45, 10, 115, 115,
442 115, 115, 115, 115, 54, 115, 115, 115, 115, 115,
443 115, 18, 115, 115, 115, 115, 115, 115, 65, 115,
444
445 115, 115, 22, 115, 71, 115, 115, 115, 72, 115,
446 105, 103, 29, 31, 115, 115, 115, 40, 6, 115,
447 115, 44, 8, 11, 12, 115, 115, 51, 115, 115,
448 115, 57, 115, 115, 59, 19, 60, 20, 21, 62,
449 115, 115, 69, 115, 115, 115, 115, 115, 74, 115,
450 115, 39, 115, 115, 15, 115, 115, 55, 115, 115,
451 115, 115, 115, 68, 115, 115, 24, 115, 27, 115,
452 38, 115, 9, 115, 52, 115, 17, 115, 115, 63,
453 70, 23, 26, 115, 115, 16, 56, 115, 115, 37,
454 115, 115, 115, 115, 115, 61, 42, 115, 115, 115,
455
456 115, 58, 0
457 } ;
458
459 static yyconst YY_CHAR yy_ec[256] =
460 { 0,
461 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
462 2, 2, 4, 1, 1, 1, 1, 1, 1, 1,
463 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
464 1, 2, 1, 5, 6, 1, 1, 1, 7, 1,
465 1, 8, 9, 1, 9, 10, 11, 12, 13, 13,
466 13, 13, 13, 13, 13, 13, 13, 1, 1, 1,
467 1, 1, 1, 1, 14, 14, 14, 14, 15, 16,
468 17, 17, 17, 17, 17, 18, 17, 17, 17, 17,
469 17, 17, 17, 17, 19, 17, 17, 17, 17, 17,
470 1, 20, 1, 1, 21, 1, 22, 23, 24, 25,
471
472 26, 27, 28, 29, 30, 17, 31, 32, 33, 34,
473 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
474 45, 46, 1, 1, 1, 1, 1, 1, 1, 1,
475 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
476 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
477 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
478 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
479 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
480 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
481 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
482
483 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
484 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
485 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
486 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
487 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
488 1, 1, 1, 1, 1
489 } ;
490
491 static yyconst YY_CHAR yy_meta[47] =
492 { 0,
493 1, 1, 2, 3, 4, 1, 1, 5, 1, 1,
494 1, 6, 6, 7, 7, 7, 8, 8, 8, 1,
495 7, 7, 7, 7, 7, 7, 7, 8, 8, 8,
496 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
497 8, 8, 8, 8, 8, 8
498 } ;
499
500 static yyconst flex_uint16_t yy_base[416] =
501 { 0,
502 0, 0, 44, 46, 52, 55, 229, 1319, 1319, 1319,
503 215, 1319, 0, 173, 49, 55, 66, 144, 52, 55,
504 74, 89, 87, 93, 104, 116, 61, 118, 78, 121,
505 102, 132, 57, 136, 142, 147, 162, 165, 149, 0,
506 1319, 182, 69, 147, 1319, 149, 1319, 141, 1319, 0,
507 128, 101, 183, 1319, 0, 188, 59, 193, 1319, 189,
508 132, 0, 0, 145, 178, 199, 201, 204, 207, 210,
509 212, 215, 221, 226, 234, 236, 241, 243, 245, 251,
510 256, 258, 260, 266, 268, 170, 271, 282, 277, 287,
511 289, 293, 297, 300, 306, 302, 314, 316, 318, 325,
512
513 322, 327, 336, 343, 345, 355, 349, 357, 359, 363,
514 370, 365, 0, 1319, 112, 161, 1319, 77, 66, 1319,
515 1319, 46, 44, 1319, 0, 386, 374, 384, 122, 1319,
516 208, 386, 394, 396, 398, 404, 408, 410, 412, 417,
517 422, 424, 430, 432, 434, 436, 438, 442, 455, 440,
518 445, 457, 462, 466, 472, 474, 477, 479, 481, 483,
519 485, 490, 492, 501, 505, 507, 511, 514, 516, 519,
520 522, 524, 526, 528, 532, 534, 538, 547, 554, 556,
521 558, 560, 563, 565, 568, 570, 572, 576, 584, 586,
522 589, 592, 600, 1319, 1319, 1319, 596, 213, 605, 607,
523
524 610, 613, 617, 621, 623, 626, 628, 630, 633, 635,
525 637, 641, 644, 646, 648, 650, 658, 660, 664, 667,
526 673, 675, 679, 681, 683, 685, 688, 691, 694, 696,
527 709, 711, 713, 715, 719, 722, 725, 728, 730, 735,
528 737, 740, 742, 747, 759, 761, 763, 765, 768, 770,
529 772, 774, 776, 779, 784, 781, 797, 266, 1319, 244,
530 793, 799, 801, 804, 808, 813, 815, 819, 821, 824,
531 826, 831, 829, 834, 836, 838, 841, 848, 850, 852,
532 854, 856, 858, 861, 867, 869, 872, 875, 877, 881,
533 885, 890, 893, 898, 900, 902, 908, 910, 914, 917,
534
535 921, 923, 926, 928, 935, 937, 939, 942, 944, 948,
536 1319, 1319, 952, 954, 958, 960, 962, 964, 966, 968,
537 974, 971, 976, 978, 981, 983, 985, 987, 993, 998,
538 1000, 1002, 1004, 1006, 1008, 1010, 1013, 1020, 1022, 1024,
539 1026, 1030, 1033, 1035, 1037, 1039, 1041, 1043, 1046, 1048,
540 1052, 1062, 1064, 1067, 1069, 1074, 1076, 1078, 1080, 1082,
541 1087, 1084, 1089, 1091, 1098, 1100, 1104, 1106, 1109, 1114,
542 1116, 1118, 1121, 1123, 1125, 1127, 1131, 1133, 1135, 1138,
543 1142, 1146, 1148, 1150, 1152, 1154, 1156, 1160, 1163, 1165,
544 1167, 1169, 1171, 1175, 1179, 1181, 1183, 1186, 1191, 1195,
545
546 1204, 1206, 1319, 1244, 1252, 1254, 1262, 1265, 1273, 1281,
547 1289, 1297, 1305, 1308, 1310
548 } ;
549
550 static yyconst flex_int16_t yy_def[416] =
551 { 0,
552 403, 1, 404, 404, 405, 405, 403, 403, 403, 403,
553 403, 403, 406, 407, 403, 403, 403, 17, 408, 408,
554 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
555 408, 408, 408, 408, 408, 408, 408, 408, 408, 409,
556 403, 403, 410, 411, 403, 403, 403, 411, 403, 406,
557 403, 412, 403, 403, 413, 403, 17, 403, 403, 403,
558 403, 414, 415, 408, 408, 408, 408, 408, 408, 408,
559 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
560 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
561 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
562
563 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
564 408, 408, 409, 403, 410, 410, 403, 411, 411, 403,
565 403, 403, 403, 403, 413, 403, 403, 403, 403, 403,
566 403, 414, 408, 408, 408, 408, 408, 408, 408, 408,
567 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
568 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
569 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
570 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
571 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
572 408, 408, 408, 403, 403, 403, 403, 403, 408, 408,
573
574 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
575 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
576 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
577 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
578 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
579 408, 408, 408, 408, 408, 408, 408, 403, 403, 403,
580 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
581 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
582 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
583 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
584
585 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
586 403, 403, 408, 408, 408, 408, 408, 408, 408, 408,
587 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
588 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
589 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
590 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
591 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
592 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
593 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
594 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
595
596 408, 408, 0, 403, 403, 403, 403, 403, 403, 403,
597 403, 403, 403, 403, 403
598 } ;
599
600 static yyconst flex_uint16_t yy_nxt[1366] =
601 { 0,
602 8, 9, 10, 11, 12, 13, 14, 8, 8, 15,
603 16, 17, 18, 19, 19, 19, 19, 19, 19, 8,
604 19, 20, 21, 22, 23, 24, 25, 26, 19, 27,
605 19, 28, 29, 30, 31, 32, 19, 33, 34, 35,
606 36, 37, 38, 39, 19, 19, 41, 42, 41, 42,
607 194, 43, 194, 43, 45, 46, 47, 45, 46, 47,
608 53, 53, 54, 63, 63, 55, 63, 63, 63, 63,
609 118, 48, 63, 63, 48, 56, 116, 57, 57, 117,
610 58, 59, 97, 60, 61, 63, 63, 86, 65, 63,
611 63, 58, 59, 66, 87, 67, 119, 60, 63, 63,
612
613 63, 63, 403, 68, 63, 63, 61, 123, 69, 62,
614 71, 70, 75, 63, 63, 63, 63, 72, 89, 403,
615 73, 76, 403, 74, 78, 81, 79, 63, 63, 63,
616 63, 77, 63, 63, 121, 82, 80, 93, 83, 94,
617 195, 84, 90, 63, 63, 118, 91, 63, 63, 131,
618 85, 120, 88, 63, 63, 92, 63, 63, 63, 63,
619 63, 63, 195, 131, 98, 99, 119, 102, 116, 95,
620 103, 117, 96, 63, 63, 100, 63, 63, 101, 104,
621 106, 63, 63, 112, 114, 107, 105, 403, 110, 63,
622 63, 108, 52, 111, 53, 53, 109, 58, 124, 126,
623
624 126, 127, 133, 59, 128, 128, 129, 130, 58, 124,
625 63, 63, 63, 63, 59, 63, 63, 49, 63, 63,
626 129, 63, 63, 63, 63, 196, 63, 63, 403, 130,
627 260, 134, 63, 63, 403, 138, 141, 63, 63, 196,
628 135, 137, 142, 136, 260, 63, 63, 63, 63, 403,
629 139, 140, 63, 63, 63, 63, 63, 63, 143, 144,
630 145, 312, 63, 63, 403, 146, 403, 63, 63, 63,
631 63, 63, 63, 403, 148, 312, 147, 63, 63, 63,
632 63, 149, 63, 63, 311, 150, 151, 153, 63, 63,
633 152, 403, 154, 63, 63, 156, 403, 155, 63, 63,
634
635 63, 63, 158, 403, 63, 63, 311, 157, 63, 63,
636 159, 63, 63, 63, 63, 160, 161, 63, 63, 162,
637 166, 403, 165, 403, 169, 63, 63, 63, 63, 63,
638 63, 163, 164, 63, 63, 167, 63, 63, 63, 63,
639 168, 170, 403, 171, 403, 174, 176, 63, 63, 403,
640 173, 178, 403, 172, 63, 63, 63, 63, 403, 179,
641 63, 63, 177, 175, 403, 180, 63, 63, 63, 63,
642 63, 63, 403, 181, 63, 63, 63, 63, 187, 403,
643 184, 63, 63, 182, 185, 128, 128, 183, 189, 403,
644 190, 191, 403, 186, 188, 128, 128, 126, 126, 192,
645
646 58, 59, 193, 197, 198, 63, 63, 63, 63, 63,
647 63, 58, 59, 403, 199, 63, 63, 197, 403, 63,
648 63, 63, 63, 63, 63, 201, 198, 403, 63, 63,
649 403, 204, 200, 63, 63, 63, 63, 205, 202, 203,
650 206, 63, 63, 63, 63, 63, 63, 63, 63, 63,
651 63, 63, 63, 63, 63, 212, 63, 63, 403, 207,
652 214, 213, 208, 215, 403, 209, 63, 63, 63, 63,
653 210, 211, 217, 63, 63, 403, 218, 63, 63, 219,
654 216, 403, 220, 63, 63, 63, 63, 222, 63, 63,
655 63, 63, 63, 63, 63, 63, 63, 63, 403, 223,
656
657 221, 63, 63, 63, 63, 403, 227, 403, 225, 403,
658 226, 224, 63, 63, 403, 228, 63, 63, 63, 63,
659 403, 229, 63, 63, 403, 63, 63, 63, 63, 403,
660 63, 63, 231, 63, 63, 63, 63, 63, 63, 63,
661 63, 403, 230, 63, 63, 63, 63, 234, 235, 63,
662 63, 403, 232, 233, 403, 236, 403, 240, 63, 63,
663 403, 239, 403, 238, 237, 63, 63, 63, 63, 63,
664 63, 63, 63, 241, 63, 63, 63, 63, 242, 63,
665 63, 63, 63, 63, 63, 247, 243, 63, 63, 244,
666 248, 403, 246, 403, 245, 63, 63, 63, 63, 250,
667
668 63, 63, 249, 63, 63, 251, 403, 254, 253, 403,
669 255, 63, 63, 258, 259, 252, 63, 63, 63, 63,
670 257, 63, 63, 256, 63, 63, 403, 258, 63, 63,
671 261, 403, 63, 63, 63, 63, 259, 63, 63, 63,
672 63, 63, 63, 262, 63, 63, 63, 63, 63, 63,
673 263, 264, 63, 63, 265, 63, 63, 63, 63, 63,
674 63, 63, 63, 403, 267, 403, 269, 403, 266, 63,
675 63, 63, 63, 403, 268, 63, 63, 272, 63, 63,
676 273, 270, 403, 271, 63, 63, 63, 63, 403, 274,
677 63, 63, 63, 63, 63, 63, 63, 63, 277, 63,
678
679 63, 275, 63, 63, 276, 63, 63, 63, 63, 403,
680 281, 403, 279, 403, 278, 403, 280, 284, 403, 283,
681 63, 63, 63, 63, 63, 63, 63, 63, 403, 282,
682 63, 63, 286, 63, 63, 403, 63, 63, 287, 63,
683 63, 63, 63, 403, 288, 285, 63, 63, 63, 63,
684 403, 63, 63, 63, 63, 293, 403, 289, 63, 63,
685 403, 290, 291, 296, 403, 297, 295, 292, 403, 294,
686 63, 63, 63, 63, 63, 63, 63, 63, 298, 63,
687 63, 63, 63, 63, 63, 63, 63, 63, 63, 300,
688 63, 63, 63, 63, 301, 63, 63, 304, 302, 305,
689
690 403, 303, 403, 299, 63, 63, 309, 403, 63, 63,
691 63, 63, 63, 63, 306, 63, 63, 403, 307, 63,
692 63, 308, 310, 314, 63, 63, 63, 63, 403, 313,
693 63, 63, 63, 63, 403, 63, 63, 63, 63, 315,
694 63, 63, 63, 63, 403, 63, 63, 63, 63, 63,
695 63, 318, 63, 63, 316, 317, 319, 321, 320, 63,
696 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
697 63, 323, 63, 63, 324, 322, 403, 325, 63, 63,
698 63, 63, 403, 63, 63, 326, 63, 63, 63, 63,
699 403, 327, 63, 63, 328, 331, 63, 63, 332, 403,
700
701 329, 63, 63, 403, 63, 63, 334, 403, 330, 63,
702 63, 63, 63, 63, 63, 403, 333, 336, 335, 63,
703 63, 63, 63, 338, 337, 63, 63, 403, 63, 63,
704 403, 341, 63, 63, 63, 63, 340, 63, 63, 63,
705 63, 339, 342, 403, 344, 343, 63, 63, 63, 63,
706 63, 63, 403, 63, 63, 63, 63, 403, 346, 63,
707 63, 345, 348, 63, 63, 63, 63, 403, 347, 63,
708 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
709 63, 350, 63, 63, 349, 63, 63, 63, 63, 63,
710 63, 353, 63, 63, 63, 63, 63, 63, 63, 63,
711
712 351, 352, 403, 354, 63, 63, 356, 403, 355, 63,
713 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
714 63, 63, 63, 358, 63, 63, 403, 357, 403, 360,
715 403, 63, 63, 63, 63, 63, 63, 63, 63, 359,
716 362, 63, 63, 361, 63, 63, 63, 63, 63, 63,
717 63, 63, 63, 63, 63, 63, 364, 63, 63, 63,
718 63, 403, 366, 63, 63, 363, 403, 365, 403, 370,
719 367, 403, 368, 63, 63, 63, 63, 371, 63, 63,
720 63, 63, 369, 403, 372, 63, 63, 63, 63, 63,
721 63, 63, 63, 63, 63, 63, 63, 374, 63, 63,
722
723 63, 63, 63, 63, 403, 376, 373, 379, 403, 63,
724 63, 63, 63, 375, 380, 63, 63, 63, 63, 377,
725 63, 63, 378, 381, 382, 63, 63, 63, 63, 63,
726 63, 383, 63, 63, 63, 63, 63, 63, 63, 63,
727 403, 385, 63, 63, 63, 63, 63, 63, 386, 63,
728 63, 387, 384, 63, 63, 403, 389, 63, 63, 63,
729 63, 63, 63, 63, 63, 63, 63, 63, 63, 403,
730 388, 63, 63, 391, 63, 63, 63, 63, 63, 63,
731 63, 63, 63, 63, 403, 392, 63, 63, 403, 390,
732 63, 63, 63, 63, 63, 63, 403, 63, 63, 398,
733
734 403, 393, 63, 63, 403, 394, 63, 63, 395, 399,
735 396, 403, 400, 403, 397, 63, 63, 63, 63, 403,
736 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
737 403, 403, 403, 401, 403, 403, 403, 403, 403, 403,
738 403, 403, 403, 402, 40, 40, 40, 40, 40, 40,
739 40, 40, 44, 44, 44, 44, 44, 44, 44, 44,
740 50, 50, 51, 403, 51, 51, 51, 51, 51, 51,
741 64, 64, 64, 113, 403, 403, 113, 403, 113, 113,
742 113, 115, 403, 403, 115, 115, 115, 115, 115, 118,
743 403, 403, 403, 118, 118, 118, 118, 122, 403, 122,
744
745 122, 122, 122, 122, 122, 125, 403, 403, 125, 125,
746 125, 125, 125, 132, 132, 63, 63, 63, 7, 403,
747 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
748 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
749 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
750 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
751 403, 403, 403, 403, 403
752 } ;
753
754 static yyconst flex_int16_t yy_chk[1366] =
755 { 0,
756 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
757 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
758 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
759 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
760 1, 1, 1, 1, 1, 1, 3, 3, 4, 4,
761 123, 3, 122, 4, 5, 5, 5, 6, 6, 6,
762 15, 15, 16, 19, 19, 16, 20, 20, 33, 33,
763 119, 5, 27, 27, 6, 17, 43, 17, 17, 43,
764 17, 17, 33, 17, 17, 21, 21, 27, 20, 29,
765 29, 17, 17, 20, 27, 20, 118, 17, 23, 23,
766
767 22, 22, 57, 21, 24, 24, 17, 52, 21, 17,
768 22, 21, 23, 31, 31, 25, 25, 22, 29, 115,
769 22, 23, 115, 22, 24, 25, 24, 26, 26, 28,
770 28, 23, 30, 30, 51, 25, 24, 31, 25, 31,
771 129, 25, 30, 32, 32, 48, 30, 34, 34, 61,
772 26, 46, 28, 35, 35, 30, 64, 64, 36, 36,
773 39, 39, 129, 61, 34, 34, 44, 35, 116, 32,
774 35, 116, 32, 37, 37, 34, 38, 38, 34, 35,
775 36, 86, 86, 39, 42, 36, 35, 18, 38, 65,
776 65, 37, 14, 38, 53, 53, 37, 53, 53, 56,
777
778 56, 58, 65, 56, 58, 58, 60, 60, 53, 53,
779 66, 66, 67, 67, 56, 68, 68, 11, 69, 69,
780 60, 70, 70, 71, 71, 131, 72, 72, 7, 60,
781 198, 66, 73, 73, 0, 70, 72, 74, 74, 131,
782 67, 69, 73, 68, 198, 75, 75, 76, 76, 0,
783 71, 71, 77, 77, 78, 78, 79, 79, 74, 74,
784 75, 260, 80, 80, 0, 75, 0, 81, 81, 82,
785 82, 83, 83, 0, 77, 260, 76, 84, 84, 85,
786 85, 78, 87, 87, 258, 79, 80, 81, 89, 89,
787 80, 0, 82, 88, 88, 84, 0, 83, 90, 90,
788
789 91, 91, 87, 0, 92, 92, 258, 85, 93, 93,
790 87, 94, 94, 96, 96, 88, 89, 95, 95, 90,
791 94, 0, 93, 0, 96, 97, 97, 98, 98, 99,
792 99, 91, 92, 101, 101, 95, 100, 100, 102, 102,
793 95, 97, 0, 97, 0, 99, 100, 103, 103, 0,
794 98, 101, 0, 97, 104, 104, 105, 105, 0, 102,
795 107, 107, 100, 99, 0, 103, 106, 106, 108, 108,
796 109, 109, 0, 103, 110, 110, 112, 112, 107, 0,
797 105, 111, 111, 104, 106, 127, 127, 104, 109, 0,
798 109, 110, 0, 106, 108, 128, 128, 126, 126, 111,
799
800 126, 126, 112, 132, 132, 133, 133, 134, 134, 135,
801 135, 126, 126, 0, 133, 136, 136, 132, 0, 137,
802 137, 138, 138, 139, 139, 136, 132, 0, 140, 140,
803 0, 138, 135, 141, 141, 142, 142, 139, 136, 137,
804 140, 143, 143, 144, 144, 145, 145, 146, 146, 147,
805 147, 150, 150, 148, 148, 145, 151, 151, 0, 141,
806 147, 146, 142, 148, 0, 143, 149, 149, 152, 152,
807 144, 144, 150, 153, 153, 0, 151, 154, 154, 151,
808 149, 0, 152, 155, 155, 156, 156, 154, 157, 157,
809 158, 158, 159, 159, 160, 160, 161, 161, 0, 156,
810
811 153, 162, 162, 163, 163, 0, 161, 0, 158, 0,
812 160, 157, 164, 164, 0, 162, 165, 165, 166, 166,
813 0, 164, 167, 167, 0, 168, 168, 169, 169, 0,
814 170, 170, 166, 171, 171, 172, 172, 173, 173, 174,
815 174, 0, 165, 175, 175, 176, 176, 169, 170, 177,
816 177, 0, 167, 168, 0, 171, 0, 175, 178, 178,
817 0, 174, 0, 173, 172, 179, 179, 180, 180, 181,
818 181, 182, 182, 176, 183, 183, 184, 184, 177, 185,
819 185, 186, 186, 187, 187, 182, 178, 188, 188, 179,
820 184, 0, 181, 0, 180, 189, 189, 190, 190, 186,
821
822 191, 191, 185, 192, 192, 187, 0, 190, 189, 0,
823 191, 193, 193, 197, 197, 188, 199, 199, 200, 200,
824 193, 201, 201, 192, 202, 202, 0, 197, 203, 203,
825 199, 0, 204, 204, 205, 205, 197, 206, 206, 207,
826 207, 208, 208, 201, 209, 209, 210, 210, 211, 211,
827 202, 204, 212, 212, 206, 213, 213, 214, 214, 215,
828 215, 216, 216, 0, 209, 0, 211, 0, 208, 217,
829 217, 218, 218, 0, 210, 219, 219, 214, 220, 220,
830 215, 212, 0, 213, 221, 221, 222, 222, 0, 218,
831 223, 223, 224, 224, 225, 225, 226, 226, 221, 227,
832
833 227, 219, 228, 228, 220, 229, 229, 230, 230, 0,
834 227, 0, 223, 0, 222, 0, 225, 230, 0, 229,
835 231, 231, 232, 232, 233, 233, 234, 234, 0, 228,
836 235, 235, 232, 236, 236, 0, 237, 237, 233, 238,
837 238, 239, 239, 0, 234, 231, 240, 240, 241, 241,
838 0, 242, 242, 243, 243, 239, 0, 235, 244, 244,
839 0, 236, 237, 242, 0, 243, 241, 238, 0, 240,
840 245, 245, 246, 246, 247, 247, 248, 248, 244, 249,
841 249, 250, 250, 251, 251, 252, 252, 253, 253, 248,
842 254, 254, 256, 256, 248, 255, 255, 250, 248, 251,
843
844 0, 249, 0, 246, 261, 261, 256, 0, 257, 257,
845 262, 262, 263, 263, 252, 264, 264, 0, 254, 265,
846 265, 255, 257, 262, 266, 266, 267, 267, 0, 261,
847 268, 268, 269, 269, 0, 270, 270, 271, 271, 268,
848 273, 273, 272, 272, 0, 274, 274, 275, 275, 276,
849 276, 271, 277, 277, 269, 270, 272, 274, 273, 278,
850 278, 279, 279, 280, 280, 281, 281, 282, 282, 283,
851 283, 276, 284, 284, 279, 275, 0, 280, 285, 285,
852 286, 286, 0, 287, 287, 281, 288, 288, 289, 289,
853 0, 282, 290, 290, 283, 287, 291, 291, 288, 0,
854
855 284, 292, 292, 0, 293, 293, 290, 0, 286, 294,
856 294, 295, 295, 296, 296, 0, 289, 293, 291, 297,
857 297, 298, 298, 295, 294, 299, 299, 0, 300, 300,
858 0, 298, 301, 301, 302, 302, 297, 303, 303, 304,
859 304, 296, 300, 0, 302, 301, 305, 305, 306, 306,
860 307, 307, 0, 308, 308, 309, 309, 0, 306, 310,
861 310, 304, 308, 313, 313, 314, 314, 0, 307, 315,
862 315, 316, 316, 317, 317, 318, 318, 319, 319, 320,
863 320, 315, 322, 322, 310, 321, 321, 323, 323, 324,
864 324, 320, 325, 325, 326, 326, 327, 327, 328, 328,
865
866 316, 317, 0, 321, 329, 329, 327, 0, 326, 330,
867 330, 331, 331, 332, 332, 333, 333, 334, 334, 335,
868 335, 336, 336, 330, 337, 337, 0, 329, 0, 333,
869 0, 338, 338, 339, 339, 340, 340, 341, 341, 331,
870 338, 342, 342, 334, 343, 343, 344, 344, 345, 345,
871 346, 346, 347, 347, 348, 348, 342, 349, 349, 350,
872 350, 0, 345, 351, 351, 341, 0, 344, 0, 350,
873 346, 0, 347, 352, 352, 353, 353, 351, 354, 354,
874 355, 355, 348, 0, 353, 356, 356, 357, 357, 358,
875 358, 359, 359, 360, 360, 362, 362, 356, 361, 361,
876
877 363, 363, 364, 364, 0, 359, 354, 362, 0, 365,
878 365, 366, 366, 357, 363, 367, 367, 368, 368, 360,
879 369, 369, 361, 365, 366, 370, 370, 371, 371, 372,
880 372, 368, 373, 373, 374, 374, 375, 375, 376, 376,
881 0, 372, 377, 377, 378, 378, 379, 379, 374, 380,
882 380, 376, 370, 381, 381, 0, 379, 382, 382, 383,
883 383, 384, 384, 385, 385, 386, 386, 387, 387, 0,
884 378, 388, 388, 385, 389, 389, 390, 390, 391, 391,
885 392, 392, 393, 393, 0, 388, 394, 394, 0, 384,
886 395, 395, 396, 396, 397, 397, 0, 398, 398, 395,
887
888 0, 389, 399, 399, 0, 391, 400, 400, 392, 398,
889 393, 0, 399, 0, 394, 401, 401, 402, 402, 0,
890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891 0, 0, 0, 400, 0, 0, 0, 0, 0, 0,
892 0, 0, 0, 401, 404, 404, 404, 404, 404, 404,
893 404, 404, 405, 405, 405, 405, 405, 405, 405, 405,
894 406, 406, 407, 0, 407, 407, 407, 407, 407, 407,
895 408, 408, 408, 409, 0, 0, 409, 0, 409, 409,
896 409, 410, 0, 0, 410, 410, 410, 410, 410, 411,
897 0, 0, 0, 411, 411, 411, 411, 412, 0, 412,
898
899 412, 412, 412, 412, 412, 413, 0, 0, 413, 413,
900 413, 413, 413, 414, 414, 415, 415, 415, 403, 403,
901 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
902 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
903 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
904 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
905 403, 403, 403, 403, 403
906 } ;
907
908 static yy_state_type yy_last_accepting_state;
909 static char *yy_last_accepting_cpos;
910
911 extern int c__flex_debug;
912 int c__flex_debug = 0;
913
914 /* The intent behind this definition is that it'll catch
915 * any uses of REJECT which flex missed.
916 */
917 #define REJECT reject_used_but_not_detected
918 #define yymore() yymore_used_but_not_detected
919 #define YY_MORE_ADJ 0
920 #define YY_RESTORE_YY_MORE_OFFSET
921 char *c_text;
922 #line 1 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
923 #define YY_NO_INPUT 1
924 #line 14 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
925
926 #include <stdio.h>
927 #include "tokenizer.h"
928
929
930 #line 931 "clexer.cpp"
931
932 #define INITIAL 0
933 #define comment 1
934 #define string_literal 2
935
936 #ifndef YY_NO_UNISTD_H
937 /* Special case for "unistd.h", since it is non-ANSI. We include it way
938 * down here because we want the user's section 1 to have been scanned first.
939 * The user has a chance to override it with an option.
940 */
941 #include <unistd.h>
942 #endif
943
944 #ifndef YY_EXTRA_TYPE
945 #define YY_EXTRA_TYPE void *
946 #endif
947
948 static int yy_init_globals (void );
949
950 /* Accessor methods to globals.
951 These are made visible to non-reentrant scanners for convenience. */
952
953 int c_lex_destroy (void );
954
955 int c_get_debug (void );
956
957 void c_set_debug (int debug_flag );
958
959 YY_EXTRA_TYPE c_get_extra (void );
960
961 void c_set_extra (YY_EXTRA_TYPE user_defined );
962
963 FILE *c_get_in (void );
964
965 void c_set_in (FILE * _in_str );
966
967 FILE *c_get_out (void );
968
969 void c_set_out (FILE * _out_str );
970
971 yy_size_t c_get_leng (void );
972
973 char *c_get_text (void );
974
975 int c_get_lineno (void );
976
977 void c_set_lineno (int _line_number );
978
979 /* Macros after this point can all be overridden by user definitions in
980 * section 1.
981 */
982
983 #ifndef YY_SKIP_YYWRAP
984 #ifdef __cplusplus
985 extern "C" int c_wrap (void );
986 #else
987 extern int c_wrap (void );
988 #endif
989 #endif
990
991 #ifndef YY_NO_UNPUT
992
993 #endif
994
995 #ifndef yytext_ptr
996 static void yy_flex_strncpy (char *,yyconst char *,int );
997 #endif
998
999 #ifdef YY_NEED_STRLEN
1000 static int yy_flex_strlen (yyconst char * );
1001 #endif
1002
1003 #ifndef YY_NO_INPUT
1004
1005 #ifdef __cplusplus
1006 static int yyinput (void );
1007 #else
1008 static int input (void );
1009 #endif
1010
1011 #endif
1012
1013 /* Amount of stuff to slurp up with each read. */
1014 #ifndef YY_READ_BUF_SIZE
1015 #ifdef __ia64__
1016 /* On IA-64, the buffer size is 16k, not 8k */
1017 #define YY_READ_BUF_SIZE 16384
1018 #else
1019 #define YY_READ_BUF_SIZE 8192
1020 #endif /* __ia64__ */
1021 #endif
1022
1023 /* Copy whatever the last rule matched to the standard output. */
1024 #ifndef ECHO
1025 /* This used to be an fputs(), but since the string might contain NUL's,
1026 * we now use fwrite().
1027 */
1028 #define ECHO do { if (fwrite( c_text, c_leng, 1, c_out )) {} } while (0)
1029 #endif
1030
1031 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1032 * is returned in "result".
1033 */
1034 #ifndef YY_INPUT
1035 #define YY_INPUT(buf,result,max_size) \
1036 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1037 { \
1038 int c = '*'; \
1039 size_t n; \
1040 for ( n = 0; n < max_size && \
1041 (c = getc( c_in )) != EOF && c != '\n'; ++n ) \
1042 buf[n] = (char) c; \
1043 if ( c == '\n' ) \
1044 buf[n++] = (char) c; \
1045 if ( c == EOF && ferror( c_in ) ) \
1046 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1047 result = n; \
1048 } \
1049 else \
1050 { \
1051 errno=0; \
1052 while ( (result = fread(buf, 1, max_size, c_in))==0 && ferror(c_in)) \
1053 { \
1054 if( errno != EINTR) \
1055 { \
1056 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1057 break; \
1058 } \
1059 errno=0; \
1060 clearerr(c_in); \
1061 } \
1062 }\
1063 \
1064
1065 #endif
1066
1067 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1068 * we don't want an extra ';' after the "return" because that will cause
1069 * some compilers to complain about unreachable statements.
1070 */
1071 #ifndef yyterminate
1072 #define yyterminate() return YY_NULL
1073 #endif
1074
1075 /* Number of entries by which start-condition stack grows. */
1076 #ifndef YY_START_STACK_INCR
1077 #define YY_START_STACK_INCR 25
1078 #endif
1079
1080 /* Report a fatal error. */
1081 #ifndef YY_FATAL_ERROR
1082 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1083 #endif
1084
1085 /* end tables serialization structures and prototypes */
1086
1087 /* Default declaration of generated scanner - a define so the user can
1088 * easily add parameters.
1089 */
1090 #ifndef YY_DECL
1091 #define YY_DECL_IS_OURS 1
1092
1093 extern int c_lex (void);
1094
1095 #define YY_DECL int c_lex (void)
1096 #endif /* !YY_DECL */
1097
1098 /* Code executed at the beginning of each rule, after c_text and c_leng
1099 * have been set up.
1100 */
1101 #ifndef YY_USER_ACTION
1102 #define YY_USER_ACTION
1103 #endif
1104
1105 /* Code executed at the end of each rule. */
1106 #ifndef YY_BREAK
1107 #define YY_BREAK /*LINTED*/break;
1108 #endif
1109
1110 #define YY_RULE_SETUP \
1111 YY_USER_ACTION
1112
1113 /** The main scanner function which does all the work.
1114 */
1115 YY_DECL
1116 {
1117 yy_state_type yy_current_state;
1118 char *yy_cp, *yy_bp;
1119 int yy_act;
1120
1121 if ( !(yy_init) )
1122 {
1123 (yy_init) = 1;
1124
1125 #ifdef YY_USER_INIT
1126 YY_USER_INIT;
1127 #endif
1128
1129 if ( ! (yy_start) )
1130 (yy_start) = 1; /* first start state */
1131
1132 if ( ! c_in )
1133 c_in = stdin;
1134
1135 if ( ! c_out )
1136 c_out = stdout;
1137
1138 if ( ! YY_CURRENT_BUFFER ) {
1139 c_ensure_buffer_stack ();
1140 YY_CURRENT_BUFFER_LVALUE =
1141 c__create_buffer(c_in,YY_BUF_SIZE );
1142 }
1143
1144 c__load_buffer_state( );
1145 }
1146
1147 {
1148 #line 22 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1149
1150 #line 1151 "clexer.cpp"
1151
1152 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
1153 {
1154 yy_cp = (yy_c_buf_p);
1155
1156 /* Support of c_text. */
1157 *yy_cp = (yy_hold_char);
1158
1159 /* yy_bp points to the position in yy_ch_buf of the start of
1160 * the current run.
1161 */
1162 yy_bp = yy_cp;
1163
1164 yy_current_state = (yy_start);
1165 yy_match:
1166 do
1167 {
1168 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
1169 if ( yy_accept[yy_current_state] )
1170 {
1171 (yy_last_accepting_state) = yy_current_state;
1172 (yy_last_accepting_cpos) = yy_cp;
1173 }
1174 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1175 {
1176 yy_current_state = (int) yy_def[yy_current_state];
1177 if ( yy_current_state >= 404 )
1178 yy_c = yy_meta[(unsigned int) yy_c];
1179 }
1180 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1181 ++yy_cp;
1182 }
1183 while ( yy_base[yy_current_state] != 1319 );
1184
1185 yy_find_action:
1186 yy_act = yy_accept[yy_current_state];
1187 if ( yy_act == 0 )
1188 { /* have to back up */
1189 yy_cp = (yy_last_accepting_cpos);
1190 yy_current_state = (yy_last_accepting_state);
1191 yy_act = yy_accept[yy_current_state];
1192 }
1193
1194 YY_DO_BEFORE_ACTION;
1195
1196 do_action: /* This label is used only to access EOF actions. */
1197
1198 switch ( yy_act )
1199 { /* beginning of action switch */
1200 case 0: /* must back up */
1201 /* undo the effects of YY_DO_BEFORE_ACTION */
1202 *yy_cp = (yy_hold_char);
1203 yy_cp = (yy_last_accepting_cpos);
1204 yy_current_state = (yy_last_accepting_state);
1205 goto yy_find_action;
1206
1207 case 1:
1208 YY_RULE_SETUP
1209 #line 23 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1210 { return(TOKENIZER_TYPE); }
1211 YY_BREAK
1212 case 2:
1213 YY_RULE_SETUP
1214 #line 24 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1215 { return(TOKENIZER_TYPE); }
1216 YY_BREAK
1217 case 3:
1218 YY_RULE_SETUP
1219 #line 25 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1220 { return(TOKENIZER_TYPE); }
1221 YY_BREAK
1222 case 4:
1223 YY_RULE_SETUP
1224 #line 26 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1225 { return(TOKENIZER_TYPE); }
1226 YY_BREAK
1227 case 5:
1228 YY_RULE_SETUP
1229 #line 27 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1230 { return(TOKENIZER_TYPE); }
1231 YY_BREAK
1232 case 6:
1233 YY_RULE_SETUP
1234 #line 28 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1235 { return(TOKENIZER_TYPE); }
1236 YY_BREAK
1237 case 7:
1238 YY_RULE_SETUP
1239 #line 29 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1240 { return(TOKENIZER_TYPE); }
1241 YY_BREAK
1242 case 8:
1243 YY_RULE_SETUP
1244 #line 30 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1245 { return(TOKENIZER_TYPE); }
1246 YY_BREAK
1247 case 9:
1248 YY_RULE_SETUP
1249 #line 31 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1250 { return(TOKENIZER_TYPE); }
1251 YY_BREAK
1252 case 10:
1253 YY_RULE_SETUP
1254 #line 32 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1255 { return(TOKENIZER_TYPE); }
1256 YY_BREAK
1257 case 11:
1258 YY_RULE_SETUP
1259 #line 33 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1260 { return(TOKENIZER_TYPE); }
1261 YY_BREAK
1262 case 12:
1263 YY_RULE_SETUP
1264 #line 34 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1265 { return(TOKENIZER_TYPE); }
1266 YY_BREAK
1267 case 13:
1268 YY_RULE_SETUP
1269 #line 35 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1270 { return(TOKENIZER_TYPE); }
1271 YY_BREAK
1272 case 14:
1273 YY_RULE_SETUP
1274 #line 36 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1275 { return(TOKENIZER_TYPE); }
1276 YY_BREAK
1277 case 15:
1278 YY_RULE_SETUP
1279 #line 37 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1280 { return(TOKENIZER_TYPE); }
1281 YY_BREAK
1282 case 16:
1283 YY_RULE_SETUP
1284 #line 38 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1285 { return(TOKENIZER_TYPE); }
1286 YY_BREAK
1287 case 17:
1288 YY_RULE_SETUP
1289 #line 39 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1290 { return(TOKENIZER_TYPE); }
1291 YY_BREAK
1292 case 18:
1293 YY_RULE_SETUP
1294 #line 40 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1295 { return(TOKENIZER_TYPE); }
1296 YY_BREAK
1297 case 19:
1298 YY_RULE_SETUP
1299 #line 41 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1300 { return(TOKENIZER_TYPE); }
1301 YY_BREAK
1302 case 20:
1303 YY_RULE_SETUP
1304 #line 42 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1305 { return(TOKENIZER_TYPE); }
1306 YY_BREAK
1307 case 21:
1308 YY_RULE_SETUP
1309 #line 43 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1310 { return(TOKENIZER_TYPE); }
1311 YY_BREAK
1312 case 22:
1313 YY_RULE_SETUP
1314 #line 44 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1315 { return(TOKENIZER_TYPE); }
1316 YY_BREAK
1317 case 23:
1318 YY_RULE_SETUP
1319 #line 45 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1320 { return(TOKENIZER_TYPE); }
1321 YY_BREAK
1322 case 24:
1323 YY_RULE_SETUP
1324 #line 46 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1325 { return(TOKENIZER_TYPE); }
1326 YY_BREAK
1327 case 25:
1328 YY_RULE_SETUP
1329 #line 47 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1330 { return(TOKENIZER_TYPE); }
1331 YY_BREAK
1332 case 26:
1333 YY_RULE_SETUP
1334 #line 48 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1335 { return(TOKENIZER_TYPE); }
1336 YY_BREAK
1337 case 27:
1338 YY_RULE_SETUP
1339 #line 49 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1340 { return(TOKENIZER_TYPE); }
1341 YY_BREAK
1342 case 28:
1343 YY_RULE_SETUP
1344 #line 51 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1345 { return(TOKENIZER_KEYWORD); }
1346 YY_BREAK
1347 case 29:
1348 YY_RULE_SETUP
1349 #line 52 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1350 { return(TOKENIZER_KEYWORD); }
1351 YY_BREAK
1352 case 30:
1353 YY_RULE_SETUP
1354 #line 53 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1355 { return(TOKENIZER_KEYWORD); }
1356 YY_BREAK
1357 case 31:
1358 YY_RULE_SETUP
1359 #line 54 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1360 { return(TOKENIZER_KEYWORD); }
1361 YY_BREAK
1362 case 32:
1363 YY_RULE_SETUP
1364 #line 55 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1365 { return(TOKENIZER_KEYWORD); }
1366 YY_BREAK
1367 case 33:
1368 YY_RULE_SETUP
1369 #line 56 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1370 { return(TOKENIZER_KEYWORD); }
1371 YY_BREAK
1372 case 34:
1373 YY_RULE_SETUP
1374 #line 57 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1375 { return(TOKENIZER_KEYWORD); }
1376 YY_BREAK
1377 case 35:
1378 YY_RULE_SETUP
1379 #line 58 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1380 { return(TOKENIZER_KEYWORD); }
1381 YY_BREAK
1382 case 36:
1383 YY_RULE_SETUP
1384 #line 59 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1385 { return(TOKENIZER_KEYWORD); }
1386 YY_BREAK
1387 case 37:
1388 YY_RULE_SETUP
1389 #line 60 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1390 { return(TOKENIZER_KEYWORD); }
1391 YY_BREAK
1392 case 38:
1393 YY_RULE_SETUP
1394 #line 61 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1395 { return(TOKENIZER_KEYWORD); }
1396 YY_BREAK
1397 case 39:
1398 YY_RULE_SETUP
1399 #line 62 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1400 { return(TOKENIZER_KEYWORD); }
1401 YY_BREAK
1402 case 40:
1403 YY_RULE_SETUP
1404 #line 63 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1405 { return(TOKENIZER_KEYWORD); }
1406 YY_BREAK
1407 case 41:
1408 YY_RULE_SETUP
1409 #line 64 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1410 { return(TOKENIZER_KEYWORD); }
1411 YY_BREAK
1412 case 42:
1413 YY_RULE_SETUP
1414 #line 65 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1415 { return(TOKENIZER_KEYWORD); }
1416 YY_BREAK
1417 case 43:
1418 YY_RULE_SETUP
1419 #line 66 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1420 { return(TOKENIZER_KEYWORD); }
1421 YY_BREAK
1422 case 44:
1423 YY_RULE_SETUP
1424 #line 67 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1425 { return(TOKENIZER_KEYWORD); }
1426 YY_BREAK
1427 case 45:
1428 YY_RULE_SETUP
1429 #line 68 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1430 { return(TOKENIZER_KEYWORD); }
1431 YY_BREAK
1432 case 46:
1433 YY_RULE_SETUP
1434 #line 69 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1435 { return(TOKENIZER_KEYWORD); }
1436 YY_BREAK
1437 case 47:
1438 YY_RULE_SETUP
1439 #line 70 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1440 { return(TOKENIZER_KEYWORD); }
1441 YY_BREAK
1442 case 48:
1443 YY_RULE_SETUP
1444 #line 71 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1445 { return(TOKENIZER_KEYWORD); }
1446 YY_BREAK
1447 case 49:
1448 YY_RULE_SETUP
1449 #line 72 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1450 { return(TOKENIZER_KEYWORD); }
1451 YY_BREAK
1452 case 50:
1453 YY_RULE_SETUP
1454 #line 73 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1455 { return(TOKENIZER_KEYWORD); }
1456 YY_BREAK
1457 case 51:
1458 YY_RULE_SETUP
1459 #line 74 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1460 { return(TOKENIZER_KEYWORD); }
1461 YY_BREAK
1462 case 52:
1463 YY_RULE_SETUP
1464 #line 75 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1465 { return(TOKENIZER_KEYWORD); }
1466 YY_BREAK
1467 case 53:
1468 YY_RULE_SETUP
1469 #line 76 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1470 { return(TOKENIZER_KEYWORD); }
1471 YY_BREAK
1472 case 54:
1473 YY_RULE_SETUP
1474 #line 77 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1475 { return(TOKENIZER_KEYWORD); }
1476 YY_BREAK
1477 case 55:
1478 YY_RULE_SETUP
1479 #line 78 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1480 { return(TOKENIZER_KEYWORD); }
1481 YY_BREAK
1482 case 56:
1483 YY_RULE_SETUP
1484 #line 79 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1485 { return(TOKENIZER_KEYWORD); }
1486 YY_BREAK
1487 case 57:
1488 YY_RULE_SETUP
1489 #line 80 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1490 { return(TOKENIZER_KEYWORD); }
1491 YY_BREAK
1492 case 58:
1493 YY_RULE_SETUP
1494 #line 81 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1495 { return(TOKENIZER_KEYWORD); }
1496 YY_BREAK
1497 case 59:
1498 YY_RULE_SETUP
1499 #line 82 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1500 { return(TOKENIZER_KEYWORD); }
1501 YY_BREAK
1502 case 60:
1503 YY_RULE_SETUP
1504 #line 83 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1505 { return(TOKENIZER_KEYWORD); }
1506 YY_BREAK
1507 case 61:
1508 YY_RULE_SETUP
1509 #line 84 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1510 { return(TOKENIZER_KEYWORD); }
1511 YY_BREAK
1512 case 62:
1513 YY_RULE_SETUP
1514 #line 85 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1515 { return(TOKENIZER_KEYWORD); }
1516 YY_BREAK
1517 case 63:
1518 YY_RULE_SETUP
1519 #line 86 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1520 { return(TOKENIZER_KEYWORD); }
1521 YY_BREAK
1522 case 64:
1523 YY_RULE_SETUP
1524 #line 87 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1525 { return(TOKENIZER_KEYWORD); }
1526 YY_BREAK
1527 case 65:
1528 YY_RULE_SETUP
1529 #line 88 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1530 { return(TOKENIZER_KEYWORD); }
1531 YY_BREAK
1532 case 66:
1533 YY_RULE_SETUP
1534 #line 89 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1535 { return(TOKENIZER_KEYWORD); }
1536 YY_BREAK
1537 case 67:
1538 YY_RULE_SETUP
1539 #line 90 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1540 { return(TOKENIZER_KEYWORD); }
1541 YY_BREAK
1542 case 68:
1543 YY_RULE_SETUP
1544 #line 91 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1545 { return(TOKENIZER_KEYWORD); }
1546 YY_BREAK
1547 case 69:
1548 YY_RULE_SETUP
1549 #line 92 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1550 { return(TOKENIZER_KEYWORD); }
1551 YY_BREAK
1552 case 70:
1553 YY_RULE_SETUP
1554 #line 93 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1555 { return(TOKENIZER_KEYWORD); }
1556 YY_BREAK
1557 case 71:
1558 YY_RULE_SETUP
1559 #line 94 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1560 { return(TOKENIZER_KEYWORD); }
1561 YY_BREAK
1562 case 72:
1563 YY_RULE_SETUP
1564 #line 95 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1565 { return(TOKENIZER_KEYWORD); }
1566 YY_BREAK
1567 case 73:
1568 YY_RULE_SETUP
1569 #line 96 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1570 { return(TOKENIZER_KEYWORD); }
1571 YY_BREAK
1572 case 74:
1573 YY_RULE_SETUP
1574 #line 97 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1575 { return(TOKENIZER_KEYWORD); }
1576 YY_BREAK
1577 case 75:
1578 YY_RULE_SETUP
1579 #line 99 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1580 { BEGIN(comment); return(TOKENIZER_COMMENT); }
1581 YY_BREAK
1582 case 76:
1583 YY_RULE_SETUP
1584 #line 100 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1585 { return(TOKENIZER_COMMENT); }
1586 YY_BREAK
1587 case 77:
1588 YY_RULE_SETUP
1589 #line 101 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1590 { return(TOKENIZER_COMMENT); }
1591 YY_BREAK
1592 case 78:
1593 /* rule 78 can match eol */
1594 YY_RULE_SETUP
1595 #line 102 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1596 { return(TOKENIZER_NEWLINE); }
1597 YY_BREAK
1598 case 79:
1599 YY_RULE_SETUP
1600 #line 103 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1601 { return(TOKENIZER_NEWLINE); }
1602 YY_BREAK
1603 case 80:
1604 /* rule 80 can match eol */
1605 YY_RULE_SETUP
1606 #line 104 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1607 { return(TOKENIZER_NEWLINE); }
1608 YY_BREAK
1609 case 81:
1610 YY_RULE_SETUP
1611 #line 105 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1612 { BEGIN(INITIAL); return(TOKENIZER_COMMENT); }
1613 YY_BREAK
1614 case 82:
1615 YY_RULE_SETUP
1616 #line 107 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1617 { return(TOKENIZER_COMMENT); }
1618 YY_BREAK
1619 case 83:
1620 YY_RULE_SETUP
1621 #line 109 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1622 { return(TOKENIZER_DIRECTIVE); }
1623 YY_BREAK
1624 case 84:
1625 YY_RULE_SETUP
1626 #line 111 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1627 { BEGIN(string_literal); return(TOKENIZER_LITERAL); }
1628 YY_BREAK
1629 case 85:
1630 YY_RULE_SETUP
1631 #line 112 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1632 { return(TOKENIZER_LITERAL); }
1633 YY_BREAK
1634 case 86:
1635 /* rule 86 can match eol */
1636 YY_RULE_SETUP
1637 #line 113 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1638 { return(TOKENIZER_NEWLINE); }
1639 YY_BREAK
1640 case 87:
1641 YY_RULE_SETUP
1642 #line 114 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1643 { return(TOKENIZER_NEWLINE); }
1644 YY_BREAK
1645 case 88:
1646 /* rule 88 can match eol */
1647 YY_RULE_SETUP
1648 #line 115 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1649 { return(TOKENIZER_NEWLINE); }
1650 YY_BREAK
1651 case 89:
1652 YY_RULE_SETUP
1653 #line 116 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1654 { BEGIN(INITIAL); return(TOKENIZER_LITERAL); }
1655 YY_BREAK
1656 case 90:
1657 YY_RULE_SETUP
1658 #line 119 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1659 { return(TOKENIZER_LITERAL); }
1660 YY_BREAK
1661 case 91:
1662 YY_RULE_SETUP
1663 #line 120 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1664 { return(TOKENIZER_LITERAL); }
1665 YY_BREAK
1666 case 92:
1667 YY_RULE_SETUP
1668 #line 121 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1669 { return(TOKENIZER_LITERAL); }
1670 YY_BREAK
1671 case 93:
1672 YY_RULE_SETUP
1673 #line 122 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1674 { return(TOKENIZER_LITERAL); }
1675 YY_BREAK
1676 case 94:
1677 YY_RULE_SETUP
1678 #line 123 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1679 { return(TOKENIZER_LITERAL); }
1680 YY_BREAK
1681 case 95:
1682 YY_RULE_SETUP
1683 #line 124 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1684 { return(TOKENIZER_LITERAL); }
1685 YY_BREAK
1686 case 96:
1687 YY_RULE_SETUP
1688 #line 125 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1689 { return(TOKENIZER_LITERAL); }
1690 YY_BREAK
1691 case 97:
1692 YY_RULE_SETUP
1693 #line 126 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1694 { return(TOKENIZER_LITERAL); }
1695 YY_BREAK
1696 case 98:
1697 YY_RULE_SETUP
1698 #line 127 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1699 { return(TOKENIZER_LITERAL); }
1700 YY_BREAK
1701 case 99:
1702 YY_RULE_SETUP
1703 #line 128 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1704 { return(TOKENIZER_LITERAL); }
1705 YY_BREAK
1706 case 100:
1707 YY_RULE_SETUP
1708 #line 129 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1709 { return(TOKENIZER_LITERAL); }
1710 YY_BREAK
1711 case 101:
1712 YY_RULE_SETUP
1713 #line 130 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1714 { return(TOKENIZER_LITERAL); }
1715 YY_BREAK
1716 case 102:
1717 YY_RULE_SETUP
1718 #line 131 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1719 { return(TOKENIZER_LITERAL); }
1720 YY_BREAK
1721 case 103:
1722 YY_RULE_SETUP
1723 #line 132 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1724 { return(TOKENIZER_LITERAL); }
1725 YY_BREAK
1726 case 104:
1727 YY_RULE_SETUP
1728 #line 133 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1729 { return(TOKENIZER_LITERAL); }
1730 YY_BREAK
1731 case 105:
1732 YY_RULE_SETUP
1733 #line 134 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1734 { return(TOKENIZER_LITERAL); }
1735 YY_BREAK
1736 case 106:
1737 YY_RULE_SETUP
1738 #line 136 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1739 { return(TOKENIZER_LITERAL); }
1740 YY_BREAK
1741 case 107:
1742 YY_RULE_SETUP
1743 #line 137 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1744 { return(TOKENIZER_LITERAL); }
1745 YY_BREAK
1746 case 108:
1747 YY_RULE_SETUP
1748 #line 138 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1749 { return(TOKENIZER_LITERAL); }
1750 YY_BREAK
1751 case 109:
1752 YY_RULE_SETUP
1753 #line 140 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1754 { return(TOKENIZER_LITERAL); }
1755 YY_BREAK
1756 case 110:
1757 YY_RULE_SETUP
1758 #line 141 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1759 { return(TOKENIZER_LITERAL); }
1760 YY_BREAK
1761 case 111:
1762 /* rule 111 can match eol */
1763 YY_RULE_SETUP
1764 #line 143 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1765 { return(TOKENIZER_NEWLINE); }
1766 YY_BREAK
1767 case 112:
1768 /* rule 112 can match eol */
1769 YY_RULE_SETUP
1770 #line 144 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1771 { return(TOKENIZER_NEWLINE); }
1772 YY_BREAK
1773 case 113:
1774 YY_RULE_SETUP
1775 #line 145 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1776 { return(TOKENIZER_NEWLINE); }
1777 YY_BREAK
1778 case 114:
1779 YY_RULE_SETUP
1780 #line 146 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1781 { return(TOKENIZER_TEXT); }
1782 YY_BREAK
1783 case 115:
1784 YY_RULE_SETUP
1785 #line 147 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1786 { return(TOKENIZER_TEXT); }
1787 YY_BREAK
1788 case 116:
1789 YY_RULE_SETUP
1790 #line 148 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1791 { return(TOKENIZER_TEXT); }
1792 YY_BREAK
1793 case 117:
1794 YY_RULE_SETUP
1795 #line 150 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
1796 ECHO;
1797 YY_BREAK
1798 #line 1799 "clexer.cpp"
1799 case YY_STATE_EOF(INITIAL):
1800 case YY_STATE_EOF(comment):
1801 case YY_STATE_EOF(string_literal):
1802 yyterminate();
1803
1804 case YY_END_OF_BUFFER:
1805 {
1806 /* Amount of text matched not including the EOB char. */
1807 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
1808
1809 /* Undo the effects of YY_DO_BEFORE_ACTION. */
1810 *yy_cp = (yy_hold_char);
1811 YY_RESTORE_YY_MORE_OFFSET
1812
1813 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1814 {
1815 /* We're scanning a new file or input source. It's
1816 * possible that this happened because the user
1817 * just pointed c_in at a new source and called
1818 * c_lex(). If so, then we have to assure
1819 * consistency between YY_CURRENT_BUFFER and our
1820 * globals. Here is the right place to do so, because
1821 * this is the first action (other than possibly a
1822 * back-up) that will match for the new input source.
1823 */
1824 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1825 YY_CURRENT_BUFFER_LVALUE->yy_input_file = c_in;
1826 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1827 }
1828
1829 /* Note that here we test for yy_c_buf_p "<=" to the position
1830 * of the first EOB in the buffer, since yy_c_buf_p will
1831 * already have been incremented past the NUL character
1832 * (since all states make transitions on EOB to the
1833 * end-of-buffer state). Contrast this with the test
1834 * in input().
1835 */
1836 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1837 { /* This was really a NUL. */
1838 yy_state_type yy_next_state;
1839
1840 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
1841
1842 yy_current_state = yy_get_previous_state( );
1843
1844 /* Okay, we're now positioned to make the NUL
1845 * transition. We couldn't have
1846 * yy_get_previous_state() go ahead and do it
1847 * for us because it doesn't know how to deal
1848 * with the possibility of jamming (and we don't
1849 * want to build jamming into it because then it
1850 * will run more slowly).
1851 */
1852
1853 yy_next_state = yy_try_NUL_trans( yy_current_state );
1854
1855 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1856
1857 if ( yy_next_state )
1858 {
1859 /* Consume the NUL. */
1860 yy_cp = ++(yy_c_buf_p);
1861 yy_current_state = yy_next_state;
1862 goto yy_match;
1863 }
1864
1865 else
1866 {
1867 yy_cp = (yy_c_buf_p);
1868 goto yy_find_action;
1869 }
1870 }
1871
1872 else switch ( yy_get_next_buffer( ) )
1873 {
1874 case EOB_ACT_END_OF_FILE:
1875 {
1876 (yy_did_buffer_switch_on_eof) = 0;
1877
1878 if ( c_wrap( ) )
1879 {
1880 /* Note: because we've taken care in
1881 * yy_get_next_buffer() to have set up
1882 * c_text, we can now set up
1883 * yy_c_buf_p so that if some total
1884 * hoser (like flex itself) wants to
1885 * call the scanner after we return the
1886 * YY_NULL, it'll still work - another
1887 * YY_NULL will get returned.
1888 */
1889 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1890
1891 yy_act = YY_STATE_EOF(YY_START);
1892 goto do_action;
1893 }
1894
1895 else
1896 {
1897 if ( ! (yy_did_buffer_switch_on_eof) )
1898 YY_NEW_FILE;
1899 }
1900 break;
1901 }
1902
1903 case EOB_ACT_CONTINUE_SCAN:
1904 (yy_c_buf_p) =
1905 (yytext_ptr) + yy_amount_of_matched_text;
1906
1907 yy_current_state = yy_get_previous_state( );
1908
1909 yy_cp = (yy_c_buf_p);
1910 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1911 goto yy_match;
1912
1913 case EOB_ACT_LAST_MATCH:
1914 (yy_c_buf_p) =
1915 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1916
1917 yy_current_state = yy_get_previous_state( );
1918
1919 yy_cp = (yy_c_buf_p);
1920 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1921 goto yy_find_action;
1922 }
1923 break;
1924 }
1925
1926 default:
1927 YY_FATAL_ERROR(
1928 "fatal flex scanner internal error--no action found" );
1929 } /* end of action switch */
1930 } /* end of scanning one token */
1931 } /* end of user's declarations */
1932 } /* end of c_lex */
1933
1934 /* yy_get_next_buffer - try to read in a new buffer
1935 *
1936 * Returns a code representing an action:
1937 * EOB_ACT_LAST_MATCH -
1938 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1939 * EOB_ACT_END_OF_FILE - end of file
1940 */
1941 static int yy_get_next_buffer (void)
1942 {
1943 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1944 char *source = (yytext_ptr);
1945 yy_size_t number_to_move, i;
1946 int ret_val;
1947
1948 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1949 YY_FATAL_ERROR(
1950 "fatal flex scanner internal error--end of buffer missed" );
1951
1952 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1953 { /* Don't try to fill the buffer, so this is an EOF. */
1954 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1955 {
1956 /* We matched a single character, the EOB, so
1957 * treat this as a final EOF.
1958 */
1959 return EOB_ACT_END_OF_FILE;
1960 }
1961
1962 else
1963 {
1964 /* We matched some text prior to the EOB, first
1965 * process it.
1966 */
1967 return EOB_ACT_LAST_MATCH;
1968 }
1969 }
1970
1971 /* Try to read more data. */
1972
1973 /* First move last chars to start of buffer. */
1974 number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1;
1975
1976 for ( i = 0; i < number_to_move; ++i )
1977 *(dest++) = *(source++);
1978
1979 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1980 /* don't do the read, it's not guaranteed to return an EOF,
1981 * just force an EOF
1982 */
1983 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1984
1985 else
1986 {
1987 yy_size_t num_to_read =
1988 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1989
1990 while ( num_to_read <= 0 )
1991 { /* Not enough room in the buffer - grow it. */
1992
1993 /* just a shorter name for the current buffer */
1994 YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
1995
1996 int yy_c_buf_p_offset =
1997 (int) ((yy_c_buf_p) - b->yy_ch_buf);
1998
1999 if ( b->yy_is_our_buffer )
2000 {
2001 yy_size_t new_size = b->yy_buf_size * 2;
2002
2003 if ( new_size <= 0 )
2004 b->yy_buf_size += b->yy_buf_size / 8;
2005 else
2006 b->yy_buf_size *= 2;
2007
2008 b->yy_ch_buf = (char *)
2009 /* Include room in for 2 EOB chars. */
2010 c_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
2011 }
2012 else
2013 /* Can't grow it, we don't own it. */
2014 b->yy_ch_buf = 0;
2015
2016 if ( ! b->yy_ch_buf )
2017 YY_FATAL_ERROR(
2018 "fatal error - scanner input buffer overflow" );
2019
2020 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2021
2022 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2023 number_to_move - 1;
2024
2025 }
2026
2027 if ( num_to_read > YY_READ_BUF_SIZE )
2028 num_to_read = YY_READ_BUF_SIZE;
2029
2030 /* Read in more data. */
2031 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2032 (yy_n_chars), num_to_read );
2033
2034 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2035 }
2036
2037 if ( (yy_n_chars) == 0 )
2038 {
2039 if ( number_to_move == YY_MORE_ADJ )
2040 {
2041 ret_val = EOB_ACT_END_OF_FILE;
2042 c_restart(c_in );
2043 }
2044
2045 else
2046 {
2047 ret_val = EOB_ACT_LAST_MATCH;
2048 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2049 YY_BUFFER_EOF_PENDING;
2050 }
2051 }
2052
2053 else
2054 ret_val = EOB_ACT_CONTINUE_SCAN;
2055
2056 if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2057 /* Extend the array by 50%, plus the number we really need. */
2058 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
2059 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) c_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
2060 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2061 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2062 }
2063
2064 (yy_n_chars) += number_to_move;
2065 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2066 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2067
2068 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2069
2070 return ret_val;
2071 }
2072
2073 /* yy_get_previous_state - get the state just before the EOB char was reached */
2074
yy_get_previous_state(void)2075 static yy_state_type yy_get_previous_state (void)
2076 {
2077 yy_state_type yy_current_state;
2078 char *yy_cp;
2079
2080 yy_current_state = (yy_start);
2081
2082 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2083 {
2084 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2085 if ( yy_accept[yy_current_state] )
2086 {
2087 (yy_last_accepting_state) = yy_current_state;
2088 (yy_last_accepting_cpos) = yy_cp;
2089 }
2090 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2091 {
2092 yy_current_state = (int) yy_def[yy_current_state];
2093 if ( yy_current_state >= 404 )
2094 yy_c = yy_meta[(unsigned int) yy_c];
2095 }
2096 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2097 }
2098
2099 return yy_current_state;
2100 }
2101
2102 /* yy_try_NUL_trans - try to make a transition on the NUL character
2103 *
2104 * synopsis
2105 * next_state = yy_try_NUL_trans( current_state );
2106 */
yy_try_NUL_trans(yy_state_type yy_current_state)2107 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2108 {
2109 int yy_is_jam;
2110 char *yy_cp = (yy_c_buf_p);
2111
2112 YY_CHAR yy_c = 1;
2113 if ( yy_accept[yy_current_state] )
2114 {
2115 (yy_last_accepting_state) = yy_current_state;
2116 (yy_last_accepting_cpos) = yy_cp;
2117 }
2118 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2119 {
2120 yy_current_state = (int) yy_def[yy_current_state];
2121 if ( yy_current_state >= 404 )
2122 yy_c = yy_meta[(unsigned int) yy_c];
2123 }
2124 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2125 yy_is_jam = (yy_current_state == 403);
2126
2127 return yy_is_jam ? 0 : yy_current_state;
2128 }
2129
2130 #ifndef YY_NO_UNPUT
2131
2132 #endif
2133
2134 #ifndef YY_NO_INPUT
2135 #ifdef __cplusplus
yyinput(void)2136 static int yyinput (void)
2137 #else
2138 static int input (void)
2139 #endif
2140
2141 {
2142 int c;
2143
2144 *(yy_c_buf_p) = (yy_hold_char);
2145
2146 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2147 {
2148 /* yy_c_buf_p now points to the character we want to return.
2149 * If this occurs *before* the EOB characters, then it's a
2150 * valid NUL; if not, then we've hit the end of the buffer.
2151 */
2152 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2153 /* This was really a NUL. */
2154 *(yy_c_buf_p) = '\0';
2155
2156 else
2157 { /* need more input */
2158 yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
2159 ++(yy_c_buf_p);
2160
2161 switch ( yy_get_next_buffer( ) )
2162 {
2163 case EOB_ACT_LAST_MATCH:
2164 /* This happens because yy_g_n_b()
2165 * sees that we've accumulated a
2166 * token and flags that we need to
2167 * try matching the token before
2168 * proceeding. But for input(),
2169 * there's no matching to consider.
2170 * So convert the EOB_ACT_LAST_MATCH
2171 * to EOB_ACT_END_OF_FILE.
2172 */
2173
2174 /* Reset buffer status. */
2175 c_restart(c_in );
2176
2177 /*FALLTHROUGH*/
2178
2179 case EOB_ACT_END_OF_FILE:
2180 {
2181 if ( c_wrap( ) )
2182 return EOF;
2183
2184 if ( ! (yy_did_buffer_switch_on_eof) )
2185 YY_NEW_FILE;
2186 #ifdef __cplusplus
2187 return yyinput();
2188 #else
2189 return input();
2190 #endif
2191 }
2192
2193 case EOB_ACT_CONTINUE_SCAN:
2194 (yy_c_buf_p) = (yytext_ptr) + offset;
2195 break;
2196 }
2197 }
2198 }
2199
2200 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
2201 *(yy_c_buf_p) = '\0'; /* preserve c_text */
2202 (yy_hold_char) = *++(yy_c_buf_p);
2203
2204 return c;
2205 }
2206 #endif /* ifndef YY_NO_INPUT */
2207
2208 /** Immediately switch to a different input stream.
2209 * @param input_file A readable stream.
2210 *
2211 * @note This function does not reset the start condition to @c INITIAL .
2212 */
c_restart(FILE * input_file)2213 void c_restart (FILE * input_file )
2214 {
2215
2216 if ( ! YY_CURRENT_BUFFER ){
2217 c_ensure_buffer_stack ();
2218 YY_CURRENT_BUFFER_LVALUE =
2219 c__create_buffer(c_in,YY_BUF_SIZE );
2220 }
2221
2222 c__init_buffer(YY_CURRENT_BUFFER,input_file );
2223 c__load_buffer_state( );
2224 }
2225
2226 /** Switch to a different input buffer.
2227 * @param new_buffer The new input buffer.
2228 *
2229 */
c__switch_to_buffer(YY_BUFFER_STATE new_buffer)2230 void c__switch_to_buffer (YY_BUFFER_STATE new_buffer )
2231 {
2232
2233 /* TODO. We should be able to replace this entire function body
2234 * with
2235 * c_pop_buffer_state();
2236 * c_push_buffer_state(new_buffer);
2237 */
2238 c_ensure_buffer_stack ();
2239 if ( YY_CURRENT_BUFFER == new_buffer )
2240 return;
2241
2242 if ( YY_CURRENT_BUFFER )
2243 {
2244 /* Flush out information for old buffer. */
2245 *(yy_c_buf_p) = (yy_hold_char);
2246 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2247 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2248 }
2249
2250 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2251 c__load_buffer_state( );
2252
2253 /* We don't actually know whether we did this switch during
2254 * EOF (c_wrap()) processing, but the only time this flag
2255 * is looked at is after c_wrap() is called, so it's safe
2256 * to go ahead and always set it.
2257 */
2258 (yy_did_buffer_switch_on_eof) = 1;
2259 }
2260
c__load_buffer_state(void)2261 static void c__load_buffer_state (void)
2262 {
2263 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2264 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2265 c_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2266 (yy_hold_char) = *(yy_c_buf_p);
2267 }
2268
2269 /** Allocate and initialize an input buffer state.
2270 * @param file A readable stream.
2271 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2272 *
2273 * @return the allocated buffer state.
2274 */
c__create_buffer(FILE * file,int size)2275 YY_BUFFER_STATE c__create_buffer (FILE * file, int size )
2276 {
2277 YY_BUFFER_STATE b;
2278
2279 b = (YY_BUFFER_STATE) c_alloc(sizeof( struct yy_buffer_state ) );
2280 if ( ! b )
2281 YY_FATAL_ERROR( "out of dynamic memory in c__create_buffer()" );
2282
2283 b->yy_buf_size = (yy_size_t)size;
2284
2285 /* yy_ch_buf has to be 2 characters longer than the size given because
2286 * we need to put in 2 end-of-buffer characters.
2287 */
2288 b->yy_ch_buf = (char *) c_alloc(b->yy_buf_size + 2 );
2289 if ( ! b->yy_ch_buf )
2290 YY_FATAL_ERROR( "out of dynamic memory in c__create_buffer()" );
2291
2292 b->yy_is_our_buffer = 1;
2293
2294 c__init_buffer(b,file );
2295
2296 return b;
2297 }
2298
2299 /** Destroy the buffer.
2300 * @param b a buffer created with c__create_buffer()
2301 *
2302 */
c__delete_buffer(YY_BUFFER_STATE b)2303 void c__delete_buffer (YY_BUFFER_STATE b )
2304 {
2305
2306 if ( ! b )
2307 return;
2308
2309 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2310 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2311
2312 if ( b->yy_is_our_buffer )
2313 c_free((void *) b->yy_ch_buf );
2314
2315 c_free((void *) b );
2316 }
2317
2318 /* Initializes or reinitializes a buffer.
2319 * This function is sometimes called more than once on the same buffer,
2320 * such as during a c_restart() or at EOF.
2321 */
c__init_buffer(YY_BUFFER_STATE b,FILE * file)2322 static void c__init_buffer (YY_BUFFER_STATE b, FILE * file )
2323
2324 {
2325 int oerrno = errno;
2326
2327 c__flush_buffer(b );
2328
2329 b->yy_input_file = file;
2330 b->yy_fill_buffer = 1;
2331
2332 /* If b is the current buffer, then c__init_buffer was _probably_
2333 * called from c_restart() or through yy_get_next_buffer.
2334 * In that case, we don't want to reset the lineno or column.
2335 */
2336 if (b != YY_CURRENT_BUFFER){
2337 b->yy_bs_lineno = 1;
2338 b->yy_bs_column = 0;
2339 }
2340
2341 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2342
2343 errno = oerrno;
2344 }
2345
2346 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2347 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2348 *
2349 */
c__flush_buffer(YY_BUFFER_STATE b)2350 void c__flush_buffer (YY_BUFFER_STATE b )
2351 {
2352 if ( ! b )
2353 return;
2354
2355 b->yy_n_chars = 0;
2356
2357 /* We always need two end-of-buffer characters. The first causes
2358 * a transition to the end-of-buffer state. The second causes
2359 * a jam in that state.
2360 */
2361 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2362 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2363
2364 b->yy_buf_pos = &b->yy_ch_buf[0];
2365
2366 b->yy_at_bol = 1;
2367 b->yy_buffer_status = YY_BUFFER_NEW;
2368
2369 if ( b == YY_CURRENT_BUFFER )
2370 c__load_buffer_state( );
2371 }
2372
2373 /** Pushes the new state onto the stack. The new state becomes
2374 * the current state. This function will allocate the stack
2375 * if necessary.
2376 * @param new_buffer The new state.
2377 *
2378 */
c_push_buffer_state(YY_BUFFER_STATE new_buffer)2379 void c_push_buffer_state (YY_BUFFER_STATE new_buffer )
2380 {
2381 if (new_buffer == NULL)
2382 return;
2383
2384 c_ensure_buffer_stack();
2385
2386 /* This block is copied from c__switch_to_buffer. */
2387 if ( YY_CURRENT_BUFFER )
2388 {
2389 /* Flush out information for old buffer. */
2390 *(yy_c_buf_p) = (yy_hold_char);
2391 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2392 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2393 }
2394
2395 /* Only push if top exists. Otherwise, replace top. */
2396 if (YY_CURRENT_BUFFER)
2397 (yy_buffer_stack_top)++;
2398 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2399
2400 /* copied from c__switch_to_buffer. */
2401 c__load_buffer_state( );
2402 (yy_did_buffer_switch_on_eof) = 1;
2403 }
2404
2405 /** Removes and deletes the top of the stack, if present.
2406 * The next element becomes the new top.
2407 *
2408 */
c_pop_buffer_state(void)2409 void c_pop_buffer_state (void)
2410 {
2411 if (!YY_CURRENT_BUFFER)
2412 return;
2413
2414 c__delete_buffer(YY_CURRENT_BUFFER );
2415 YY_CURRENT_BUFFER_LVALUE = NULL;
2416 if ((yy_buffer_stack_top) > 0)
2417 --(yy_buffer_stack_top);
2418
2419 if (YY_CURRENT_BUFFER) {
2420 c__load_buffer_state( );
2421 (yy_did_buffer_switch_on_eof) = 1;
2422 }
2423 }
2424
2425 /* Allocates the stack if it does not exist.
2426 * Guarantees space for at least one push.
2427 */
c_ensure_buffer_stack(void)2428 static void c_ensure_buffer_stack (void)
2429 {
2430 yy_size_t num_to_alloc;
2431
2432 if (!(yy_buffer_stack)) {
2433
2434 /* First allocation is just for 2 elements, since we don't know if this
2435 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2436 * immediate realloc on the next call.
2437 */
2438 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
2439 (yy_buffer_stack) = (struct yy_buffer_state**)c_alloc
2440 (num_to_alloc * sizeof(struct yy_buffer_state*)
2441 );
2442 if ( ! (yy_buffer_stack) )
2443 YY_FATAL_ERROR( "out of dynamic memory in c_ensure_buffer_stack()" );
2444
2445 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2446
2447 (yy_buffer_stack_max) = num_to_alloc;
2448 (yy_buffer_stack_top) = 0;
2449 return;
2450 }
2451
2452 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
2453
2454 /* Increase the buffer to prepare for a possible push. */
2455 yy_size_t grow_size = 8 /* arbitrary grow size */;
2456
2457 num_to_alloc = (yy_buffer_stack_max) + grow_size;
2458 (yy_buffer_stack) = (struct yy_buffer_state**)c_realloc
2459 ((yy_buffer_stack),
2460 num_to_alloc * sizeof(struct yy_buffer_state*)
2461 );
2462 if ( ! (yy_buffer_stack) )
2463 YY_FATAL_ERROR( "out of dynamic memory in c_ensure_buffer_stack()" );
2464
2465 /* zero only the new slots.*/
2466 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2467 (yy_buffer_stack_max) = num_to_alloc;
2468 }
2469 }
2470
2471 /** Setup the input buffer state to scan directly from a user-specified character buffer.
2472 * @param base the character buffer
2473 * @param size the size in bytes of the character buffer
2474 *
2475 * @return the newly allocated buffer state object.
2476 */
c__scan_buffer(char * base,yy_size_t size)2477 YY_BUFFER_STATE c__scan_buffer (char * base, yy_size_t size )
2478 {
2479 YY_BUFFER_STATE b;
2480
2481 if ( size < 2 ||
2482 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2483 base[size-1] != YY_END_OF_BUFFER_CHAR )
2484 /* They forgot to leave room for the EOB's. */
2485 return 0;
2486
2487 b = (YY_BUFFER_STATE) c_alloc(sizeof( struct yy_buffer_state ) );
2488 if ( ! b )
2489 YY_FATAL_ERROR( "out of dynamic memory in c__scan_buffer()" );
2490
2491 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2492 b->yy_buf_pos = b->yy_ch_buf = base;
2493 b->yy_is_our_buffer = 0;
2494 b->yy_input_file = 0;
2495 b->yy_n_chars = b->yy_buf_size;
2496 b->yy_is_interactive = 0;
2497 b->yy_at_bol = 1;
2498 b->yy_fill_buffer = 0;
2499 b->yy_buffer_status = YY_BUFFER_NEW;
2500
2501 c__switch_to_buffer(b );
2502
2503 return b;
2504 }
2505
2506 /** Setup the input buffer state to scan a string. The next call to c_lex() will
2507 * scan from a @e copy of @a str.
2508 * @param yystr a NUL-terminated string to scan
2509 *
2510 * @return the newly allocated buffer state object.
2511 * @note If you want to scan bytes that may contain NUL values, then use
2512 * c__scan_bytes() instead.
2513 */
c__scan_string(yyconst char * yystr)2514 YY_BUFFER_STATE c__scan_string (yyconst char * yystr )
2515 {
2516
2517 return c__scan_bytes(yystr,strlen(yystr) );
2518 }
2519
2520 /** Setup the input buffer state to scan the given bytes. The next call to c_lex() will
2521 * scan from a @e copy of @a bytes.
2522 * @param yybytes the byte buffer to scan
2523 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2524 *
2525 * @return the newly allocated buffer state object.
2526 */
c__scan_bytes(yyconst char * yybytes,yy_size_t _yybytes_len)2527 YY_BUFFER_STATE c__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
2528 {
2529 YY_BUFFER_STATE b;
2530 char *buf;
2531 yy_size_t n;
2532 yy_size_t i;
2533
2534 /* Get memory for full buffer, including space for trailing EOB's. */
2535 n = _yybytes_len + 2;
2536 buf = (char *) c_alloc(n );
2537 if ( ! buf )
2538 YY_FATAL_ERROR( "out of dynamic memory in c__scan_bytes()" );
2539
2540 for ( i = 0; i < _yybytes_len; ++i )
2541 buf[i] = yybytes[i];
2542
2543 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2544
2545 b = c__scan_buffer(buf,n );
2546 if ( ! b )
2547 YY_FATAL_ERROR( "bad buffer in c__scan_bytes()" );
2548
2549 /* It's okay to grow etc. this buffer, and we should throw it
2550 * away when we're done.
2551 */
2552 b->yy_is_our_buffer = 1;
2553
2554 return b;
2555 }
2556
2557 #ifndef YY_EXIT_FAILURE
2558 #define YY_EXIT_FAILURE 2
2559 #endif
2560
yy_fatal_error(yyconst char * msg)2561 static void yy_fatal_error (yyconst char* msg )
2562 {
2563 (void) fprintf( stderr, "%s\n", msg );
2564 exit( YY_EXIT_FAILURE );
2565 }
2566
2567 /* Redefine yyless() so it works in section 3 code. */
2568
2569 #undef yyless
2570 #define yyless(n) \
2571 do \
2572 { \
2573 /* Undo effects of setting up c_text. */ \
2574 int yyless_macro_arg = (n); \
2575 YY_LESS_LINENO(yyless_macro_arg);\
2576 c_text[c_leng] = (yy_hold_char); \
2577 (yy_c_buf_p) = c_text + yyless_macro_arg; \
2578 (yy_hold_char) = *(yy_c_buf_p); \
2579 *(yy_c_buf_p) = '\0'; \
2580 c_leng = yyless_macro_arg; \
2581 } \
2582 while ( 0 )
2583
2584 /* Accessor methods (get/set functions) to struct members. */
2585
2586 /** Get the current line number.
2587 *
2588 */
c_get_lineno(void)2589 int c_get_lineno (void)
2590 {
2591
2592 return c_lineno;
2593 }
2594
2595 /** Get the input stream.
2596 *
2597 */
c_get_in(void)2598 FILE *c_get_in (void)
2599 {
2600 return c_in;
2601 }
2602
2603 /** Get the output stream.
2604 *
2605 */
c_get_out(void)2606 FILE *c_get_out (void)
2607 {
2608 return c_out;
2609 }
2610
2611 /** Get the length of the current token.
2612 *
2613 */
c_get_leng(void)2614 yy_size_t c_get_leng (void)
2615 {
2616 return c_leng;
2617 }
2618
2619 /** Get the current token.
2620 *
2621 */
2622
c_get_text(void)2623 char *c_get_text (void)
2624 {
2625 return c_text;
2626 }
2627
2628 /** Set the current line number.
2629 * @param _line_number line number
2630 *
2631 */
c_set_lineno(int _line_number)2632 void c_set_lineno (int _line_number )
2633 {
2634
2635 c_lineno = _line_number;
2636 }
2637
2638 /** Set the input stream. This does not discard the current
2639 * input buffer.
2640 * @param _in_str A readable stream.
2641 *
2642 * @see c__switch_to_buffer
2643 */
c_set_in(FILE * _in_str)2644 void c_set_in (FILE * _in_str )
2645 {
2646 c_in = _in_str ;
2647 }
2648
c_set_out(FILE * _out_str)2649 void c_set_out (FILE * _out_str )
2650 {
2651 c_out = _out_str ;
2652 }
2653
c_get_debug(void)2654 int c_get_debug (void)
2655 {
2656 return c__flex_debug;
2657 }
2658
c_set_debug(int _bdebug)2659 void c_set_debug (int _bdebug )
2660 {
2661 c__flex_debug = _bdebug ;
2662 }
2663
yy_init_globals(void)2664 static int yy_init_globals (void)
2665 {
2666 /* Initialization is the same as for the non-reentrant scanner.
2667 * This function is called from c_lex_destroy(), so don't allocate here.
2668 */
2669
2670 (yy_buffer_stack) = 0;
2671 (yy_buffer_stack_top) = 0;
2672 (yy_buffer_stack_max) = 0;
2673 (yy_c_buf_p) = (char *) 0;
2674 (yy_init) = 0;
2675 (yy_start) = 0;
2676
2677 /* Defined in main.c */
2678 #ifdef YY_STDINIT
2679 c_in = stdin;
2680 c_out = stdout;
2681 #else
2682 c_in = (FILE *) 0;
2683 c_out = (FILE *) 0;
2684 #endif
2685
2686 /* For future reference: Set errno on error, since we are called by
2687 * c_lex_init()
2688 */
2689 return 0;
2690 }
2691
2692 /* c_lex_destroy is for both reentrant and non-reentrant scanners. */
c_lex_destroy(void)2693 int c_lex_destroy (void)
2694 {
2695
2696 /* Pop the buffer stack, destroying each element. */
2697 while(YY_CURRENT_BUFFER){
2698 c__delete_buffer(YY_CURRENT_BUFFER );
2699 YY_CURRENT_BUFFER_LVALUE = NULL;
2700 c_pop_buffer_state();
2701 }
2702
2703 /* Destroy the stack itself. */
2704 c_free((yy_buffer_stack) );
2705 (yy_buffer_stack) = NULL;
2706
2707 /* Reset the globals. This is important in a non-reentrant scanner so the next time
2708 * c_lex() is called, initialization will occur. */
2709 yy_init_globals( );
2710
2711 return 0;
2712 }
2713
2714 /*
2715 * Internal utility routines.
2716 */
2717
2718 #ifndef yytext_ptr
yy_flex_strncpy(char * s1,yyconst char * s2,int n)2719 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
2720 {
2721
2722 int i;
2723 for ( i = 0; i < n; ++i )
2724 s1[i] = s2[i];
2725 }
2726 #endif
2727
2728 #ifdef YY_NEED_STRLEN
yy_flex_strlen(yyconst char * s)2729 static int yy_flex_strlen (yyconst char * s )
2730 {
2731 int n;
2732 for ( n = 0; s[n]; ++n )
2733 ;
2734
2735 return n;
2736 }
2737 #endif
2738
c_alloc(yy_size_t size)2739 void *c_alloc (yy_size_t size )
2740 {
2741 return (void *) malloc( size );
2742 }
2743
c_realloc(void * ptr,yy_size_t size)2744 void *c_realloc (void * ptr, yy_size_t size )
2745 {
2746
2747 /* The cast to (char *) in the following accommodates both
2748 * implementations that use char* generic pointers, and those
2749 * that use void* generic pointers. It works with the latter
2750 * because both ANSI C and C++ allow castless assignment from
2751 * any pointer type to void*, and deal with argument conversions
2752 * as though doing an assignment.
2753 */
2754 return (void *) realloc( (char *) ptr, size );
2755 }
2756
c_free(void * ptr)2757 void c_free (void * ptr )
2758 {
2759 free( (char *) ptr ); /* see c_realloc() for (char *) cast */
2760 }
2761
2762 #define YYTABLES_NAME "yytables"
2763
2764 #line 150 "/home/bob/rcs/git/cgdb/master/cgdb/lib/tokenizer/clexer.lpp"
2765
2766
2767
2768