Bug Summary

File:obj-scan-build/conftest.c
Location:line 1360, column 2
Description:Access to field 'yy_input_file' results in a dereference of a null pointer (loaded from variable 'b')

Annotated Source Code

1/* confdefs.h */
2#define PACKAGE_NAME"GNU Hurd" "GNU Hurd"
3#define PACKAGE_TARNAME"hurd" "hurd"
4#define PACKAGE_VERSION"0.5" "0.5"
5#define PACKAGE_STRING"GNU Hurd 0.5" "GNU Hurd 0.5"
6#define PACKAGE_BUGREPORT"bug-hurd@gnu.org" "bug-hurd@gnu.org"
7#define PACKAGE_URL"http://www.gnu.org/software/hurd/" "http://www.gnu.org/software/hurd/"
8#define HAVE_MIG_RETCODE1 1
9#define HAVE_GETGROUPLIST1 1
10#define HAVE_USELOCALE1 1
11#define STDC_HEADERS1 1
12#define HAVE_SYS_TYPES_H1 1
13#define HAVE_SYS_STAT_H1 1
14#define HAVE_STDLIB_H1 1
15#define HAVE_STRING_H1 1
16#define HAVE_MEMORY_H1 1
17#define HAVE_STRINGS_H1 1
18#define HAVE_INTTYPES_H1 1
19#define HAVE_STDINT_H1 1
20#define HAVE_UNISTD_H1 1
21#define HAVE_PARTED_PARTED_H1 1
22#define HAVE_LIBPARTED1 1
23#define HAVE_LIBUUID1 1
24#define HAVE_LIBDL1 1
25/* end confdefs.h. */
26
27#line 3 "lex.yy.c"
28
29#define YY_INT_ALIGNEDshort int short int
30
31/* A lexical scanner generated by flex */
32
33#define FLEX_SCANNER
34#define YY_FLEX_MAJOR_VERSION2 2
35#define YY_FLEX_MINOR_VERSION5 5
36#define YY_FLEX_SUBMINOR_VERSION35 35
37#if YY_FLEX_SUBMINOR_VERSION35 > 0
38#define FLEX_BETA
39#endif
40
41/* First, we deal with platform-specific or compiler-specific issues. */
42
43/* begin standard C headers. */
44#include <stdio.h>
45#include <string.h>
46#include <errno(*__errno_location ()).h>
47#include <stdlib.h>
48
49/* end standard C headers. */
50
51/* flex integer type definitions */
52
53#ifndef FLEXINT_H
54#define FLEXINT_H
55
56/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
57
58#if defined (__STDC_VERSION__199901L) && __STDC_VERSION__199901L >= 199901L
59
60/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
61 * if you want the limit (max/min) macros for int types.
62 */
63#ifndef __STDC_LIMIT_MACROS1
64#define __STDC_LIMIT_MACROS1 1
65#endif
66
67#include <inttypes.h>
68typedef int8_t flex_int8_t;
69typedef uint8_t flex_uint8_t;
70typedef int16_t flex_int16_t;
71typedef uint16_t flex_uint16_t;
72typedef int32_t flex_int32_t;
73typedef uint32_t flex_uint32_t;
74#else
75typedef signed char flex_int8_t;
76typedef short int flex_int16_t;
77typedef int flex_int32_t;
78typedef unsigned char flex_uint8_t;
79typedef unsigned short int flex_uint16_t;
80typedef unsigned int flex_uint32_t;
81
82/* Limits of integral types. */
83#ifndef INT8_MIN(-128)
84#define INT8_MIN(-128) (-128)
85#endif
86#ifndef INT16_MIN(-32767 -1)
87#define INT16_MIN(-32767 -1) (-32767-1)
88#endif
89#ifndef INT32_MIN(-2147483647 -1)
90#define INT32_MIN(-2147483647 -1) (-2147483647-1)
91#endif
92#ifndef INT8_MAX(127)
93#define INT8_MAX(127) (127)
94#endif
95#ifndef INT16_MAX(32767)
96#define INT16_MAX(32767) (32767)
97#endif
98#ifndef INT32_MAX(2147483647)
99#define INT32_MAX(2147483647) (2147483647)
100#endif
101#ifndef UINT8_MAX(255)
102#define UINT8_MAX(255) (255U)
103#endif
104#ifndef UINT16_MAX(65535)
105#define UINT16_MAX(65535) (65535U)
106#endif
107#ifndef UINT32_MAX(4294967295U)
108#define UINT32_MAX(4294967295U) (4294967295U)
109#endif
110
111#endif /* ! C99 */
112
113#endif /* ! FLEXINT_H */
114
115#ifdef __cplusplus
116
117/* The "const" storage-class-modifier is valid. */
118#define YY_USE_CONST
119
120#else /* ! __cplusplus */
121
122/* C99 requires __STDC__ to be defined as 1. */
123#if defined (__STDC__1)
124
125#define YY_USE_CONST
126
127#endif /* defined (__STDC__) */
128#endif /* ! __cplusplus */
129
130#ifdef YY_USE_CONST
131#define yyconstconst const
132#else
133#define yyconstconst
134#endif
135
136/* Returned upon end-of-file. */
137#define YY_NULL0 0
138
139/* Promotes a possibly negative, possibly signed char to an unsigned
140 * integer for use as an array index. If the signed char is negative,
141 * we want to instead treat it as an 8-bit unsigned char, hence the
142 * double cast.
143 */
144#define YY_SC_TO_UI(c)((unsigned int) (unsigned char) c) ((unsigned int) (unsigned char) c)
145
146/* Enter a start condition. This macro really ought to take a parameter,
147 * but we do it the disgusting crufty way forced on us by the ()-less
148 * definition of BEGIN.
149 */
150#define BEGIN(yy_start) = 1 + 2 * (yy_start) = 1 + 2 *
151
152/* Translate the current start state into a value that can be later handed
153 * to BEGIN to return to the state. The YYSTATE alias is for lex
154 * compatibility.
155 */
156#define YY_START(((yy_start) - 1) / 2) (((yy_start) - 1) / 2)
157#define YYSTATE(((yy_start) - 1) / 2) YY_START(((yy_start) - 1) / 2)
158
159/* Action number for EOF rule of a given start state. */
160#define YY_STATE_EOF(state)(9 + state + 1) (YY_END_OF_BUFFER9 + state + 1)
161
162/* Special action meaning "start processing a new file". */
163#define YY_NEW_FILEyyrestart(yyin ) yyrestart(yyin )
164
165#define YY_END_OF_BUFFER_CHAR0 0
166
167/* Size of default input buffer. */
168#ifndef YY_BUF_SIZE16384
169#ifdef __ia64__
170/* On IA-64, the buffer size is 16k, not 8k.
171 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
172 * Ditto for the __ia64__ case accordingly.
173 */
174#define YY_BUF_SIZE16384 32768
175#else
176#define YY_BUF_SIZE16384 16384
177#endif /* __ia64__ */
178#endif
179
180/* The state buf must be large enough to hold one state per character in the main buffer.
181 */
182#define YY_STATE_BUF_SIZE((16384 + 2) * sizeof(yy_state_type)) ((YY_BUF_SIZE16384 + 2) * sizeof(yy_state_type))
183
184#ifndef YY_TYPEDEF_YY_BUFFER_STATE
185#define YY_TYPEDEF_YY_BUFFER_STATE
186typedef struct yy_buffer_state *YY_BUFFER_STATE;
187#endif
188
189extern int yyleng;
190
191extern FILE *yyin, *yyout;
192
193#define EOB_ACT_CONTINUE_SCAN0 0
194#define EOB_ACT_END_OF_FILE1 1
195#define EOB_ACT_LAST_MATCH2 2
196
197 #define YY_LESS_LINENO(n)
198
199/* Return all but the first "n" matched characters back to the input stream. */
200#define yyless(n)do { int yyless_macro_arg = (n); ; yytext[yyleng] = (yy_hold_char
); (yy_c_buf_p) = yytext + yyless_macro_arg; (yy_hold_char) =
*(yy_c_buf_p); *(yy_c_buf_p) = '\0'; yyleng = yyless_macro_arg
; } while ( 0 )
\
201 do \
202 { \
203 /* Undo effects of setting up yytext. */ \
204 int yyless_macro_arg = (n); \
205 YY_LESS_LINENO(yyless_macro_arg);\
206 *yy_cp = (yy_hold_char); \
207 YY_RESTORE_YY_MORE_OFFSET \
208 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ(yy_more_len); \
209 YY_DO_BEFORE_ACTION(yytext) = yy_bp; (yytext) -= (yy_more_len); yyleng = (size_t
) (yy_cp - (yytext)); (yy_hold_char) = *yy_cp; *yy_cp = '\0';
(yy_c_buf_p) = yy_cp;
; /* set up yytext again */ \
210 } \
211 while ( 0 )
212
213#define unput(c)yyunput( c, (yytext) ) yyunput( c, (yytext_ptryytext) )
214
215#ifndef YY_TYPEDEF_YY_SIZE_T
216#define YY_TYPEDEF_YY_SIZE_T
217typedef size_t yy_size_t;
218#endif
219
220#ifndef YY_STRUCT_YY_BUFFER_STATE
221#define YY_STRUCT_YY_BUFFER_STATE
222struct yy_buffer_state
223 {
224 FILE *yy_input_file;
225
226 char *yy_ch_buf; /* input buffer */
227 char *yy_buf_pos; /* current position in input buffer */
228
229 /* Size of input buffer in bytes, not including room for EOB
230 * characters.
231 */
232 yy_size_t yy_buf_size;
233
234 /* Number of characters read into yy_ch_buf, not including EOB
235 * characters.
236 */
237 int yy_n_chars;
238
239 /* Whether we "own" the buffer - i.e., we know we created it,
240 * and can realloc() it to grow it, and should free() it to
241 * delete it.
242 */
243 int yy_is_our_buffer;
244
245 /* Whether this is an "interactive" input source; if so, and
246 * if we're using stdio for input, then we want to use getc()
247 * instead of fread(), to make sure we stop fetching input after
248 * each newline.
249 */
250 int yy_is_interactive;
251
252 /* Whether we're considered to be at the beginning of a line.
253 * If so, '^' rules will be active on the next match, otherwise
254 * not.
255 */
256 int yy_at_bol;
257
258 int yy_bs_lineno; /**< The line count. */
259 int yy_bs_column; /**< The column count. */
260
261 /* Whether to try to fill the input buffer when we reach the
262 * end of it.
263 */
264 int yy_fill_buffer;
265
266 int yy_buffer_status;
267
268#define YY_BUFFER_NEW0 0
269#define YY_BUFFER_NORMAL1 1
270 /* When an EOF's been seen but there's still some text to process
271 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
272 * shouldn't try reading from the input source any more. We might
273 * still have a bunch of tokens to match, though, because of
274 * possible backing-up.
275 *
276 * When we actually see the EOF, we change the status to "new"
277 * (via yyrestart()), so that the user can continue scanning by
278 * just pointing yyin at a new input file.
279 */
280#define YY_BUFFER_EOF_PENDING2 2
281
282 };
283#endif /* !YY_STRUCT_YY_BUFFER_STATE */
284
285/* Stack of input buffers. */
286static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
287static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
288static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
289
290/* We provide macros for accessing buffer states in case in the
291 * future we want to put the buffer states in a more general
292 * "scanner state".
293 *
294 * Returns the top of the stack, or NULL.
295 */
296#define YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : ((void*)0))
( (yy_buffer_stack) \
297 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
298 : NULL((void*)0))
299
300/* Same as previous macro, but useful when we know that the buffer stack is not
301 * NULL or when we need an lvalue. For internal use only.
302 */
303#define YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] (yy_buffer_stack)[(yy_buffer_stack_top)]
304
305/* yy_hold_char holds the character lost when yytext is formed. */
306static char yy_hold_char;
307static int yy_n_chars; /* number of characters read into yy_ch_buf */
308int yyleng;
309
310/* Points to current character in buffer. */
311static char *yy_c_buf_p = (char *) 0;
312static int yy_init = 0; /* whether we need to initialize */
313static int yy_start = 0; /* start state number */
314
315/* Flag which is used to allow yywrap()'s to do buffer switches
316 * instead of setting up a fresh yyin. A bit of a hack ...
317 */
318static int yy_did_buffer_switch_on_eof;
319
320void yyrestart (FILE *input_file );
321void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
322YY_BUFFER_STATE yy_create_buffer (FILE *file,int size );
323void yy_delete_buffer (YY_BUFFER_STATE b );
324void yy_flush_buffer (YY_BUFFER_STATE b );
325void yypush_buffer_state (YY_BUFFER_STATE new_buffer );
326void yypop_buffer_state (void );
327
328static void yyensure_buffer_stack (void );
329static void yy_load_buffer_state (void );
330static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
331
332#define YY_FLUSH_BUFFERyy_flush_buffer(( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top
)] : ((void*)0)) )
yy_flush_buffer(YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : ((void*)0))
)
333
334YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
335YY_BUFFER_STATE yy_scan_string (yyconstconst char *yy_str );
336YY_BUFFER_STATE yy_scan_bytes (yyconstconst char *bytes,int len );
337
338void *yyalloc (yy_size_t );
339void *yyrealloc (void *,yy_size_t );
340void yyfree (void * );
341
342#define yy_new_bufferyy_create_buffer yy_create_buffer
343
344#define yy_set_interactive(is_interactive){ if ( ! ( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top
)] : ((void*)0)) ){ yyensure_buffer_stack (); (yy_buffer_stack
)[(yy_buffer_stack_top)] = yy_create_buffer(yyin,16384 ); } (
yy_buffer_stack)[(yy_buffer_stack_top)]->yy_is_interactive
= is_interactive; }
\
345 { \
346 if ( ! YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : ((void*)0))
){ \
347 yyensure_buffer_stack (); \
348 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] = \
349 yy_create_buffer(yyin,YY_BUF_SIZE16384 ); \
350 } \
351 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_is_interactive = is_interactive; \
352 }
353
354#define yy_set_bol(at_bol){ if ( ! ( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top
)] : ((void*)0)) ){ yyensure_buffer_stack (); (yy_buffer_stack
)[(yy_buffer_stack_top)] = yy_create_buffer(yyin,16384 ); } (
yy_buffer_stack)[(yy_buffer_stack_top)]->yy_at_bol = at_bol
; }
\
355 { \
356 if ( ! YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : ((void*)0))
){\
357 yyensure_buffer_stack (); \
358 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] = \
359 yy_create_buffer(yyin,YY_BUF_SIZE16384 ); \
360 } \
361 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_at_bol = at_bol; \
362 }
363
364#define YY_AT_BOL()((yy_buffer_stack)[(yy_buffer_stack_top)]->yy_at_bol) (YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_at_bol)
365
366/* Begin user sect3 */
367
368typedef unsigned char YY_CHAR;
369
370FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
371
372typedef int yy_state_type;
373
374extern int yylineno;
375
376int yylineno = 1;
377
378extern char *yytext;
379#define yytext_ptryytext yytext
380
381static yy_state_type yy_get_previous_state (void );
382static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
383static int yy_get_next_buffer (void );
384static void yy_fatal_error (yyconstconst char msg[] );
385
386/* Done after the current pattern has been matched and before the
387 * corresponding action - sets up yytext.
388 */
389#define YY_DO_BEFORE_ACTION(yytext) = yy_bp; (yytext) -= (yy_more_len); yyleng = (size_t
) (yy_cp - (yytext)); (yy_hold_char) = *yy_cp; *yy_cp = '\0';
(yy_c_buf_p) = yy_cp;
\
390 (yytext_ptryytext) = yy_bp; \
391 (yytext_ptryytext) -= (yy_more_len); \
392 yyleng = (size_t) (yy_cp - (yytext_ptryytext)); \
393 (yy_hold_char) = *yy_cp; \
394 *yy_cp = '\0'; \
395 (yy_c_buf_p) = yy_cp;
396
397#define YY_NUM_RULES8 8
398#define YY_END_OF_BUFFER9 9
399/* This struct is not used in this scanner,
400 but its presence is necessary. */
401struct yy_trans_info
402 {
403 flex_int32_t yy_verify;
404 flex_int32_t yy_nxt;
405 };
406static yyconstconst flex_int16_t yy_acclist[23] =
407 { 0,
408 9, 7, 8, 8, 1, 7, 8, 2, 7, 8,
409 3, 7, 8, 4, 7, 8, 5, 7, 8, 6,
410 7, 8
411 } ;
412
413static yyconstconst flex_int16_t yy_accept[14] =
414 { 0,
415 1, 1, 1, 2, 4, 5, 8, 11, 14, 17,
416 20, 23, 23
417 } ;
418
419static yyconstconst flex_int32_t yy_ec[256] =
420 { 0,
421 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
422 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
423 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
424 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
425 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
426 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
427 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
428 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
429 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
430 1, 1, 1, 1, 1, 1, 3, 4, 5, 6,
431
432 7, 8, 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,
437 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
443 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
444 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
445 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
446 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
447 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
448 1, 1, 1, 1, 1
449 } ;
450
451static yyconstconst flex_int32_t yy_meta[9] =
452 { 0,
453 1, 1, 1, 1, 1, 1, 1, 1
454 } ;
455
456static yyconstconst flex_int16_t yy_base[13] =
457 { 0,
458 0, 0, 9, 10, 10, 10, 10, 10, 10, 10,
459 10, 10
460 } ;
461
462static yyconstconst flex_int16_t yy_def[13] =
463 { 0,
464 12, 1, 12, 12, 12, 12, 12, 12, 12, 12,
465 12, 0
466 } ;
467
468static yyconstconst flex_int16_t yy_nxt[19] =
469 { 0,
470 4, 5, 6, 7, 8, 9, 10, 11, 12, 3,
471 12, 12, 12, 12, 12, 12, 12, 12
472 } ;
473
474static yyconstconst flex_int16_t yy_chk[19] =
475 { 0,
476 1, 1, 1, 1, 1, 1, 1, 1, 3, 12,
477 12, 12, 12, 12, 12, 12, 12, 12
478 } ;
479
480extern int yy_flex_debug;
481int yy_flex_debug = 0;
482
483static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
484static char *yy_full_match;
485static int yy_lp;
486#define REJECT{ *yy_cp = (yy_hold_char); yy_cp = (yy_full_match); ++(yy_lp)
; goto find_rule; }
\
487{ \
488*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ \
489yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
490++(yy_lp); \
491goto find_rule; \
492}
493
494static int yy_more_flag = 0;
495static int yy_more_len = 0;
496#define yymore()((yy_more_flag) = 1) ((yy_more_flag) = 1)
497#define YY_MORE_ADJ(yy_more_len) (yy_more_len)
498#define YY_RESTORE_YY_MORE_OFFSET
499char *yytext;
500#line 1 "conftest.l"
501#line 477 "lex.yy.c"
502
503#define INITIAL0 0
504
505#ifndef YY_NO_UNISTD_H
506/* Special case for "unistd.h", since it is non-ANSI. We include it way
507 * down here because we want the user's section 1 to have been scanned first.
508 * The user has a chance to override it with an option.
509 */
510#include <unistd.h>
511#endif
512
513#ifndef YY_EXTRA_TYPEvoid *
514#define YY_EXTRA_TYPEvoid * void *
515#endif
516
517static int yy_init_globals (void );
518
519/* Accessor methods to globals.
520 These are made visible to non-reentrant scanners for convenience. */
521
522int yylex_destroy (void );
523
524int yyget_debug (void );
525
526void yyset_debug (int debug_flag );
527
528YY_EXTRA_TYPEvoid * yyget_extra (void );
529
530void yyset_extra (YY_EXTRA_TYPEvoid * user_defined );
531
532FILE *yyget_in (void );
533
534void yyset_in (FILE * in_str );
535
536FILE *yyget_out (void );
537
538void yyset_out (FILE * out_str );
539
540int yyget_leng (void );
541
542char *yyget_text (void );
543
544int yyget_lineno (void );
545
546void yyset_lineno (int line_number );
547
548/* Macros after this point can all be overridden by user definitions in
549 * section 1.
550 */
551
552#ifndef YY_SKIP_YYWRAP
553#ifdef __cplusplus
554extern "C" int yywrap (void );
555#else
556extern int yywrap (void );
557#endif
558#endif
559
560 static void yyunput (int c,char *buf_ptr );
561
562#ifndef yytext_ptryytext
563static void yy_flex_strncpy (char *,yyconstconst char *,int );
564#endif
565
566#ifdef YY_NEED_STRLEN
567static int yy_flex_strlen (yyconstconst char * );
568#endif
569
570#ifndef YY_NO_INPUT
571
572#ifdef __cplusplus
573static int yyinput (void );
574#else
575static int input (void );
576#endif
577
578#endif
579
580/* Amount of stuff to slurp up with each read. */
581#ifndef YY_READ_BUF_SIZE8192
582#ifdef __ia64__
583/* On IA-64, the buffer size is 16k, not 8k */
584#define YY_READ_BUF_SIZE8192 16384
585#else
586#define YY_READ_BUF_SIZE8192 8192
587#endif /* __ia64__ */
588#endif
589
590/* Copy whatever the last rule matched to the standard output. */
591#ifndef ECHOdo { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
592/* This used to be an fputs(), but since the string might contain NUL's,
593 * we now use fwrite().
594 */
595#define ECHOdo { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
596#endif
597
598/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
599 * is returned in "result".
600 */
601#ifndef YY_INPUT
602#define YY_INPUT(buf,result,max_size)if ( (yy_buffer_stack)[(yy_buffer_stack_top)]->yy_is_interactive
) { int c = '*'; size_t n; for ( n = 0; n < max_size &&
(c = _IO_getc (yyin)) != (-1) && c != '\n'; ++n ) buf
[n] = (char) c; if ( c == '\n' ) buf[n++] = (char) c; if ( c ==
(-1) && ferror( yyin ) ) yy_fatal_error( "input in flex scanner failed"
); result = n; } else { (*__errno_location ())=0; while ( (result
= fread(buf, 1, max_size, yyin))==0 && ferror(yyin))
{ if( (*__errno_location ()) != ((0x10 << 26) | ((4) &
0x3fff))) { yy_fatal_error( "input in flex scanner failed" )
; break; } (*__errno_location ())=0; clearerr(yyin); } }
\
603 if ( YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_is_interactive ) \
604 { \
605 int c = '*'; \
606 size_t n; \
607 for ( n = 0; n < max_size && \
608 (c = getc( yyin )_IO_getc (yyin)) != EOF(-1) && c != '\n'; ++n ) \
609 buf[n] = (char) c; \
610 if ( c == '\n' ) \
611 buf[n++] = (char) c; \
612 if ( c == EOF(-1) && ferror( yyin ) ) \
613 YY_FATAL_ERROR( "input in flex scanner failed" )yy_fatal_error( "input in flex scanner failed" ); \
614 result = n; \
615 } \
616 else \
617 { \
618 errno(*__errno_location ())=0; \
619 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
620 { \
621 if( errno(*__errno_location ()) != EINTR((0x10 << 26) | ((4) & 0x3fff))) \
622 { \
623 YY_FATAL_ERROR( "input in flex scanner failed" )yy_fatal_error( "input in flex scanner failed" ); \
624 break; \
625 } \
626 errno(*__errno_location ())=0; \
627 clearerr(yyin); \
628 } \
629 }\
630\
631
632#endif
633
634/* No semi-colon after return; correct usage is to write "yyterminate();" -
635 * we don't want an extra ';' after the "return" because that will cause
636 * some compilers to complain about unreachable statements.
637 */
638#ifndef yyterminate
639#define yyterminate()return 0 return YY_NULL0
640#endif
641
642/* Number of entries by which start-condition stack grows. */
643#ifndef YY_START_STACK_INCR25
644#define YY_START_STACK_INCR25 25
645#endif
646
647/* Report a fatal error. */
648#ifndef YY_FATAL_ERROR
649#define YY_FATAL_ERROR(msg)yy_fatal_error( msg ) yy_fatal_error( msg )
650#endif
651
652/* end tables serialization structures and prototypes */
653
654/* Default declaration of generated scanner - a define so the user can
655 * easily add parameters.
656 */
657#ifndef YY_DECLint yylex (void)
658#define YY_DECL_IS_OURS1 1
659
660extern int yylex (void);
661
662#define YY_DECLint yylex (void) int yylex (void)
663#endif /* !YY_DECL */
664
665/* Code executed at the beginning of each rule, after yytext and yyleng
666 * have been set up.
667 */
668#ifndef YY_USER_ACTION
669#define YY_USER_ACTION
670#endif
671
672/* Code executed at the end of each rule. */
673#ifndef YY_BREAKbreak;
674#define YY_BREAKbreak; break;
675#endif
676
677#define YY_RULE_SETUP \
678 YY_USER_ACTION
679
680/** The main scanner function which does all the work.
681 */
682YY_DECLint yylex (void)
683{
684 register yy_state_type yy_current_state;
685 register char *yy_cp, *yy_bp;
686 register int yy_act;
687
688#line 1 "conftest.l"
689
690#line 666 "lex.yy.c"
691
692 if ( !(yy_init) )
2
Assuming 'yy_init' is not equal to 0
3
Taking false branch
693 {
694 (yy_init) = 1;
695
696#ifdef YY_USER_INIT
697 YY_USER_INIT;
698#endif
699
700 /* Create the reject buffer large enough to save one state per allowed character. */
701 if ( ! (yy_state_buf) )
702 (yy_state_buf) = (yy_state_type *)yyalloc(YY_STATE_BUF_SIZE((16384 + 2) * sizeof(yy_state_type)) );
703 if ( ! (yy_state_buf) )
704 YY_FATAL_ERROR( "out of dynamic memory in yylex()" )yy_fatal_error( "out of dynamic memory in yylex()" );
705
706 if ( ! (yy_start) )
707 (yy_start) = 1; /* first start state */
708
709 if ( ! yyin )
710 yyin = stdinstdin;
711
712 if ( ! yyout )
713 yyout = stdoutstdout;
714
715 if ( ! YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : ((void*)0))
) {
716 yyensure_buffer_stack ();
717 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] =
718 yy_create_buffer(yyin,YY_BUF_SIZE16384 );
719 }
720
721 yy_load_buffer_state( );
722 }
723
724 while ( 1 ) /* loops until end-of-file is reached */
4
Loop condition is true. Entering loop body
725 {
726 (yy_more_len) = 0;
727 if ( (yy_more_flag) )
5
Assuming 'yy_more_flag' is 0
6
Taking false branch
728 {
729 (yy_more_len) = (yy_c_buf_p) - (yytext_ptryytext);
730 (yy_more_flag) = 0;
731 }
732 yy_cp = (yy_c_buf_p);
733
734 /* Support of yytext. */
735 *yy_cp = (yy_hold_char);
736
737 /* yy_bp points to the position in yy_ch_buf of the start of
738 * the current run.
739 */
740 yy_bp = yy_cp;
741
742 yy_current_state = (yy_start);
743
744 (yy_state_ptr) = (yy_state_buf);
745 *(yy_state_ptr)++ = yy_current_state;
746
747yy_match:
748 do
8
Loop condition is false. Exiting loop
749 {
750 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)((unsigned int) (unsigned char) *yy_cp)];
751 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
7
Loop condition is false. Execution continues on line 757
752 {
753 yy_current_state = (int) yy_def[yy_current_state];
754 if ( yy_current_state >= 13 )
755 yy_c = yy_meta[(unsigned int) yy_c];
756 }
757 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
758 *(yy_state_ptr)++ = yy_current_state;
759 ++yy_cp;
760 }
761 while ( yy_base[yy_current_state] != 10 );
762
763yy_find_action:
764 yy_current_state = *--(yy_state_ptr);
765 (yy_lp) = yy_accept[yy_current_state];
766find_rule: /* we branch to this label when backing up */
767 for ( ; ; ) /* until we find what rule we matched */
9
Loop condition is true. Entering loop body
10
Loop condition is true. Entering loop body
11
Loop condition is true. Entering loop body
12
Loop condition is true. Entering loop body
768 {
769 if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
13
Taking true branch
770 {
771 yy_act = yy_acclist[(yy_lp)];
772 {
773 (yy_full_match) = yy_cp;
774 break;
14
Execution continues on line 782
775 }
776 }
777 --yy_cp;
778 yy_current_state = *--(yy_state_ptr);
779 (yy_lp) = yy_accept[yy_current_state];
780 }
781
782 YY_DO_BEFORE_ACTION(yytext) = yy_bp; (yytext) -= (yy_more_len); yyleng = (size_t
) (yy_cp - (yytext)); (yy_hold_char) = *yy_cp; *yy_cp = '\0';
(yy_c_buf_p) = yy_cp;
;
783
784do_action: /* This label is used only to access EOF actions. */
785
786 switch ( yy_act )
15
Control jumps to 'case 9:' at line 833
787 { /* beginning of action switch */
788case 1:
789YY_RULE_SETUP
790#line 2 "conftest.l"
791{ ECHOdo { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0); }
792 YY_BREAKbreak;
793case 2:
794YY_RULE_SETUP
795#line 3 "conftest.l"
796{ REJECT{ *yy_cp = (yy_hold_char); yy_cp = (yy_full_match); ++(yy_lp)
; goto find_rule; }
; }
797 YY_BREAKbreak;
798case 3:
799YY_RULE_SETUP
800#line 4 "conftest.l"
801{ yymore ()((yy_more_flag) = 1); }
802 YY_BREAKbreak;
803case 4:
804YY_RULE_SETUP
805#line 5 "conftest.l"
806{ yyless (1)do { int yyless_macro_arg = (1); ; yytext[yyleng] = (yy_hold_char
); (yy_c_buf_p) = yytext + yyless_macro_arg; (yy_hold_char) =
*(yy_c_buf_p); *(yy_c_buf_p) = '\0'; yyleng = yyless_macro_arg
; } while ( 0 )
; }
807 YY_BREAKbreak;
808case 5:
809YY_RULE_SETUP
810#line 6 "conftest.l"
811{ /* IRIX 6.5 flex 2.5.4 underquotes its yyless argument. */
812 yyless ((input () != 0))do { int yyless_macro_arg = ((input () != 0)); ; yytext[yyleng
] = (yy_hold_char); (yy_c_buf_p) = yytext + yyless_macro_arg;
(yy_hold_char) = *(yy_c_buf_p); *(yy_c_buf_p) = '\0'; yyleng
= yyless_macro_arg; } while ( 0 )
; }
813 YY_BREAKbreak;
814case 6:
815YY_RULE_SETUP
816#line 8 "conftest.l"
817{ unput (yytext[0])yyunput( yytext[0], (yytext) ); }
818 YY_BREAKbreak;
819case 7:
820YY_RULE_SETUP
821#line 9 "conftest.l"
822{ BEGIN(yy_start) = 1 + 2 * INITIAL0; }
823 YY_BREAKbreak;
824case 8:
825YY_RULE_SETUP
826#line 10 "conftest.l"
827ECHOdo { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0);
828 YY_BREAKbreak;
829#line 805 "lex.yy.c"
830 case YY_STATE_EOF(INITIAL)(9 + 0 + 1):
831 yyterminate()return 0;
832
833 case YY_END_OF_BUFFER9:
834 {
835 /* Amount of text matched not including the EOB char. */
836 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptryytext)) - 1;
837
838 /* Undo the effects of YY_DO_BEFORE_ACTION. */
839 *yy_cp = (yy_hold_char);
840 YY_RESTORE_YY_MORE_OFFSET
841
842 if ( YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buffer_status == YY_BUFFER_NEW0 )
16
Taking false branch
843 {
844 /* We're scanning a new file or input source. It's
845 * possible that this happened because the user
846 * just pointed yyin at a new source and called
847 * yylex(). If so, then we have to assure
848 * consistency between YY_CURRENT_BUFFER and our
849 * globals. Here is the right place to do so, because
850 * this is the first action (other than possibly a
851 * back-up) that will match for the new input source.
852 */
853 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_n_chars;
854 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_input_file = yyin;
855 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buffer_status = YY_BUFFER_NORMAL1;
856 }
857
858 /* Note that here we test for yy_c_buf_p "<=" to the position
859 * of the first EOB in the buffer, since yy_c_buf_p will
860 * already have been incremented past the NUL character
861 * (since all states make transitions on EOB to the
862 * end-of-buffer state). Contrast this with the test
863 * in input().
864 */
865 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[(yy_n_chars)] )
17
Taking false branch
866 { /* This was really a NUL. */
867 yy_state_type yy_next_state;
868
869 (yy_c_buf_p) = (yytext_ptryytext) + yy_amount_of_matched_text;
870
871 yy_current_state = yy_get_previous_state( );
872
873 /* Okay, we're now positioned to make the NUL
874 * transition. We couldn't have
875 * yy_get_previous_state() go ahead and do it
876 * for us because it doesn't know how to deal
877 * with the possibility of jamming (and we don't
878 * want to build jamming into it because then it
879 * will run more slowly).
880 */
881
882 yy_next_state = yy_try_NUL_trans( yy_current_state );
883
884 yy_bp = (yytext_ptryytext) + YY_MORE_ADJ(yy_more_len);
885
886 if ( yy_next_state )
887 {
888 /* Consume the NUL. */
889 yy_cp = ++(yy_c_buf_p);
890 yy_current_state = yy_next_state;
891 goto yy_match;
892 }
893
894 else
895 {
896 yy_cp = (yy_c_buf_p);
897 goto yy_find_action;
898 }
899 }
900
901 else switch ( yy_get_next_buffer( ) )
18
Control jumps to 'case 1:' at line 903
902 {
903 case EOB_ACT_END_OF_FILE1:
904 {
905 (yy_did_buffer_switch_on_eof) = 0;
906
907 if ( yywrap( ) )
19
Taking false branch
908 {
909 /* Note: because we've taken care in
910 * yy_get_next_buffer() to have set up
911 * yytext, we can now set up
912 * yy_c_buf_p so that if some total
913 * hoser (like flex itself) wants to
914 * call the scanner after we return the
915 * YY_NULL, it'll still work - another
916 * YY_NULL will get returned.
917 */
918 (yy_c_buf_p) = (yytext_ptryytext) + YY_MORE_ADJ(yy_more_len);
919
920 yy_act = YY_STATE_EOF(YY_START)(9 + (((yy_start) - 1) / 2) + 1);
921 goto do_action;
922 }
923
924 else
925 {
926 if ( ! (yy_did_buffer_switch_on_eof) )
20
Taking true branch
927 YY_NEW_FILEyyrestart(yyin );
21
Within the expansion of the macro 'YY_NEW_FILE':
a
Calling 'yyrestart'
928 }
929 break;
930 }
931
932 case EOB_ACT_CONTINUE_SCAN0:
933 (yy_c_buf_p) =
934 (yytext_ptryytext) + yy_amount_of_matched_text;
935
936 yy_current_state = yy_get_previous_state( );
937
938 yy_cp = (yy_c_buf_p);
939 yy_bp = (yytext_ptryytext) + YY_MORE_ADJ(yy_more_len);
940 goto yy_match;
941
942 case EOB_ACT_LAST_MATCH2:
943 (yy_c_buf_p) =
944 &YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[(yy_n_chars)];
945
946 yy_current_state = yy_get_previous_state( );
947
948 yy_cp = (yy_c_buf_p);
949 yy_bp = (yytext_ptryytext) + YY_MORE_ADJ(yy_more_len);
950 goto yy_find_action;
951 }
952 break;
953 }
954
955 default:
956 YY_FATAL_ERROR(yy_fatal_error( "fatal flex scanner internal error--no action found"
)
957 "fatal flex scanner internal error--no action found" )yy_fatal_error( "fatal flex scanner internal error--no action found"
)
;
958 } /* end of action switch */
959 } /* end of scanning one token */
960} /* end of yylex */
961
962/* yy_get_next_buffer - try to read in a new buffer
963 *
964 * Returns a code representing an action:
965 * EOB_ACT_LAST_MATCH -
966 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
967 * EOB_ACT_END_OF_FILE - end of file
968 */
969static int yy_get_next_buffer (void)
970{
971 register char *dest = YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf;
972 register char *source = (yytext_ptryytext);
973 register int number_to_move, i;
974 int ret_val;
975
976 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[(yy_n_chars) + 1] )
977 YY_FATAL_ERROR(yy_fatal_error( "fatal flex scanner internal error--end of buffer missed"
)
978 "fatal flex scanner internal error--end of buffer missed" )yy_fatal_error( "fatal flex scanner internal error--end of buffer missed"
)
;
979
980 if ( YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_fill_buffer == 0 )
981 { /* Don't try to fill the buffer, so this is an EOF. */
982 if ( (yy_c_buf_p) - (yytext_ptryytext) - YY_MORE_ADJ(yy_more_len) == 1 )
983 {
984 /* We matched a single character, the EOB, so
985 * treat this as a final EOF.
986 */
987 return EOB_ACT_END_OF_FILE1;
988 }
989
990 else
991 {
992 /* We matched some text prior to the EOB, first
993 * process it.
994 */
995 return EOB_ACT_LAST_MATCH2;
996 }
997 }
998
999 /* Try to read more data. */
1000
1001 /* First move last chars to start of buffer. */
1002 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptryytext)) - 1;
1003
1004 for ( i = 0; i < number_to_move; ++i )
1005 *(dest++) = *(source++);
1006
1007 if ( YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buffer_status == YY_BUFFER_EOF_PENDING2 )
1008 /* don't do the read, it's not guaranteed to return an EOF,
1009 * just force an EOF
1010 */
1011 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_n_chars = (yy_n_chars) = 0;
1012
1013 else
1014 {
1015 int num_to_read =
1016 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buf_size - number_to_move - 1;
1017
1018 while ( num_to_read <= 0 )
1019 { /* Not enough room in the buffer - grow it. */
1020
1021 YY_FATAL_ERROR(yy_fatal_error( "input buffer overflow, can't enlarge buffer because scanner uses REJECT"
)
1022"input buffer overflow, can't enlarge buffer because scanner uses REJECT" )yy_fatal_error( "input buffer overflow, can't enlarge buffer because scanner uses REJECT"
)
;
1023
1024 }
1025
1026 if ( num_to_read > YY_READ_BUF_SIZE8192 )
1027 num_to_read = YY_READ_BUF_SIZE8192;
1028
1029 /* Read in more data. */
1030 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),if ( (yy_buffer_stack)[(yy_buffer_stack_top)]->yy_is_interactive
) { int c = '*'; size_t n; for ( n = 0; n < (size_t) num_to_read
&& (c = _IO_getc (yyin)) != (-1) && c != '\n'
; ++n ) (&(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf
[number_to_move])[n] = (char) c; if ( c == '\n' ) (&(yy_buffer_stack
)[(yy_buffer_stack_top)]->yy_ch_buf[number_to_move])[n++] =
(char) c; if ( c == (-1) && ferror( yyin ) ) yy_fatal_error
( "input in flex scanner failed" ); (yy_n_chars) = n; } else {
(*__errno_location ())=0; while ( ((yy_n_chars) = fread((&
(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[number_to_move
]), 1, (size_t) num_to_read, yyin))==0 && ferror(yyin
)) { if( (*__errno_location ()) != ((0x10 << 26) | ((4)
& 0x3fff))) { yy_fatal_error( "input in flex scanner failed"
); break; } (*__errno_location ())=0; clearerr(yyin); } }
1031 (yy_n_chars), (size_t) num_to_read )if ( (yy_buffer_stack)[(yy_buffer_stack_top)]->yy_is_interactive
) { int c = '*'; size_t n; for ( n = 0; n < (size_t) num_to_read
&& (c = _IO_getc (yyin)) != (-1) && c != '\n'
; ++n ) (&(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf
[number_to_move])[n] = (char) c; if ( c == '\n' ) (&(yy_buffer_stack
)[(yy_buffer_stack_top)]->yy_ch_buf[number_to_move])[n++] =
(char) c; if ( c == (-1) && ferror( yyin ) ) yy_fatal_error
( "input in flex scanner failed" ); (yy_n_chars) = n; } else {
(*__errno_location ())=0; while ( ((yy_n_chars) = fread((&
(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[number_to_move
]), 1, (size_t) num_to_read, yyin))==0 && ferror(yyin
)) { if( (*__errno_location ()) != ((0x10 << 26) | ((4)
& 0x3fff))) { yy_fatal_error( "input in flex scanner failed"
); break; } (*__errno_location ())=0; clearerr(yyin); } }
;
1032
1033 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_n_chars = (yy_n_chars);
1034 }
1035
1036 if ( (yy_n_chars) == 0 )
1037 {
1038 if ( number_to_move == YY_MORE_ADJ(yy_more_len) )
1039 {
1040 ret_val = EOB_ACT_END_OF_FILE1;
1041 yyrestart(yyin );
1042 }
1043
1044 else
1045 {
1046 ret_val = EOB_ACT_LAST_MATCH2;
1047 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buffer_status =
1048 YY_BUFFER_EOF_PENDING2;
1049 }
1050 }
1051
1052 else
1053 ret_val = EOB_ACT_CONTINUE_SCAN0;
1054
1055 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buf_size) {
1056 /* Extend the array by 50%, plus the number we really need. */
1057 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1058 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf,new_size );
1059 if ( ! YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf )
1060 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" )yy_fatal_error( "out of dynamic memory in yy_get_next_buffer()"
)
;
1061 }
1062
1063 (yy_n_chars) += number_to_move;
1064 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR0;
1065 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR0;
1066
1067 (yytext_ptryytext) = &YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[0];
1068
1069 return ret_val;
1070}
1071
1072/* yy_get_previous_state - get the state just before the EOB char was reached */
1073
1074 static yy_state_type yy_get_previous_state (void)
1075{
1076 register yy_state_type yy_current_state;
1077 register char *yy_cp;
1078
1079 yy_current_state = (yy_start);
1080
1081 (yy_state_ptr) = (yy_state_buf);
1082 *(yy_state_ptr)++ = yy_current_state;
1083
1084 for ( yy_cp = (yytext_ptryytext) + YY_MORE_ADJ(yy_more_len); yy_cp < (yy_c_buf_p); ++yy_cp )
1085 {
1086 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)((unsigned int) (unsigned char) *yy_cp)] : 1);
1087 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1088 {
1089 yy_current_state = (int) yy_def[yy_current_state];
1090 if ( yy_current_state >= 13 )
1091 yy_c = yy_meta[(unsigned int) yy_c];
1092 }
1093 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1094 *(yy_state_ptr)++ = yy_current_state;
1095 }
1096
1097 return yy_current_state;
1098}
1099
1100/* yy_try_NUL_trans - try to make a transition on the NUL character
1101 *
1102 * synopsis
1103 * next_state = yy_try_NUL_trans( current_state );
1104 */
1105 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
1106{
1107 register int yy_is_jam;
1108
1109 register YY_CHAR yy_c = 1;
1110 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1111 {
1112 yy_current_state = (int) yy_def[yy_current_state];
1113 if ( yy_current_state >= 13 )
1114 yy_c = yy_meta[(unsigned int) yy_c];
1115 }
1116 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1117 yy_is_jam = (yy_current_state == 12);
1118 if ( ! yy_is_jam )
1119 *(yy_state_ptr)++ = yy_current_state;
1120
1121 return yy_is_jam ? 0 : yy_current_state;
1122}
1123
1124 static void yyunput (int c, register char * yy_bp )
1125{
1126 register char *yy_cp;
1127
1128 yy_cp = (yy_c_buf_p);
1129
1130 /* undo effects of setting up yytext */
1131 *yy_cp = (yy_hold_char);
1132
1133 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf + 2 )
1134 { /* need to shift things up to make room */
1135 /* +2 for EOB chars. */
1136 register int number_to_move = (yy_n_chars) + 2;
1137 register char *dest = &YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[
1138 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buf_size + 2];
1139 register char *source =
1140 &YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[number_to_move];
1141
1142 while ( source > YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf )
1143 *--dest = *--source;
1144
1145 yy_cp += (int) (dest - source);
1146 yy_bp += (int) (dest - source);
1147 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_n_chars =
1148 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buf_size;
1149
1150 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf + 2 )
1151 YY_FATAL_ERROR( "flex scanner push-back overflow" )yy_fatal_error( "flex scanner push-back overflow" );
1152 }
1153
1154 *--yy_cp = (char) c;
1155
1156 (yytext_ptryytext) = yy_bp;
1157 (yy_hold_char) = *yy_cp;
1158 (yy_c_buf_p) = yy_cp;
1159}
1160
1161#ifndef YY_NO_INPUT
1162#ifdef __cplusplus
1163 static int yyinput (void)
1164#else
1165 static int input (void)
1166#endif
1167
1168{
1169 int c;
1170
1171 *(yy_c_buf_p) = (yy_hold_char);
1172
1173 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR0 )
1174 {
1175 /* yy_c_buf_p now points to the character we want to return.
1176 * If this occurs *before* the EOB characters, then it's a
1177 * valid NUL; if not, then we've hit the end of the buffer.
1178 */
1179 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[(yy_n_chars)] )
1180 /* This was really a NUL. */
1181 *(yy_c_buf_p) = '\0';
1182
1183 else
1184 { /* need more input */
1185 int offset = (yy_c_buf_p) - (yytext_ptryytext);
1186 ++(yy_c_buf_p);
1187
1188 switch ( yy_get_next_buffer( ) )
1189 {
1190 case EOB_ACT_LAST_MATCH2:
1191 /* This happens because yy_g_n_b()
1192 * sees that we've accumulated a
1193 * token and flags that we need to
1194 * try matching the token before
1195 * proceeding. But for input(),
1196 * there's no matching to consider.
1197 * So convert the EOB_ACT_LAST_MATCH
1198 * to EOB_ACT_END_OF_FILE.
1199 */
1200
1201 /* Reset buffer status. */
1202 yyrestart(yyin );
1203
1204 /*FALLTHROUGH*/
1205
1206 case EOB_ACT_END_OF_FILE1:
1207 {
1208 if ( yywrap( ) )
1209 return EOF(-1);
1210
1211 if ( ! (yy_did_buffer_switch_on_eof) )
1212 YY_NEW_FILEyyrestart(yyin );
1213#ifdef __cplusplus
1214 return yyinput();
1215#else
1216 return input();
1217#endif
1218 }
1219
1220 case EOB_ACT_CONTINUE_SCAN0:
1221 (yy_c_buf_p) = (yytext_ptryytext) + offset;
1222 break;
1223 }
1224 }
1225 }
1226
1227 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
1228 *(yy_c_buf_p) = '\0'; /* preserve yytext */
1229 (yy_hold_char) = *++(yy_c_buf_p);
1230
1231 return c;
1232}
1233#endif /* ifndef YY_NO_INPUT */
1234
1235/** Immediately switch to a different input stream.
1236 * @param input_file A readable stream.
1237 *
1238 * @note This function does not reset the start condition to @c INITIAL .
1239 */
1240 void yyrestart (FILE * input_file )
1241{
1242
1243 if ( ! YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : ((void*)0))
){
22
Taking false branch
1244 yyensure_buffer_stack ();
1245 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] =
1246 yy_create_buffer(yyin,YY_BUF_SIZE16384 );
1247 }
1248
1249 yy_init_buffer(YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : ((void*)0))
,input_file )
;
23
Calling 'yy_init_buffer'
1250 yy_load_buffer_state( );
1251}
1252
1253/** Switch to a different input buffer.
1254 * @param new_buffer The new input buffer.
1255 *
1256 */
1257 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
1258{
1259
1260 /* TODO. We should be able to replace this entire function body
1261 * with
1262 * yypop_buffer_state();
1263 * yypush_buffer_state(new_buffer);
1264 */
1265 yyensure_buffer_stack ();
1266 if ( YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : ((void*)0))
== new_buffer )
1267 return;
1268
1269 if ( YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : ((void*)0))
)
1270 {
1271 /* Flush out information for old buffer. */
1272 *(yy_c_buf_p) = (yy_hold_char);
1273 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buf_pos = (yy_c_buf_p);
1274 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_n_chars = (yy_n_chars);
1275 }
1276
1277 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] = new_buffer;
1278 yy_load_buffer_state( );
1279
1280 /* We don't actually know whether we did this switch during
1281 * EOF (yywrap()) processing, but the only time this flag
1282 * is looked at is after yywrap() is called, so it's safe
1283 * to go ahead and always set it.
1284 */
1285 (yy_did_buffer_switch_on_eof) = 1;
1286}
1287
1288static void yy_load_buffer_state (void)
1289{
1290 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_n_chars;
1291 (yytext_ptryytext) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buf_pos;
1292 yyin = YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_input_file;
1293 (yy_hold_char) = *(yy_c_buf_p);
1294}
1295
1296/** Allocate and initialize an input buffer state.
1297 * @param file A readable stream.
1298 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1299 *
1300 * @return the allocated buffer state.
1301 */
1302 YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
1303{
1304 YY_BUFFER_STATE b;
1305
1306 b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
1307 if ( ! b )
1308 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" )yy_fatal_error( "out of dynamic memory in yy_create_buffer()"
)
;
1309
1310 b->yy_buf_size = size;
1311
1312 /* yy_ch_buf has to be 2 characters longer than the size given because
1313 * we need to put in 2 end-of-buffer characters.
1314 */
1315 b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 );
1316 if ( ! b->yy_ch_buf )
1317 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" )yy_fatal_error( "out of dynamic memory in yy_create_buffer()"
)
;
1318
1319 b->yy_is_our_buffer = 1;
1320
1321 yy_init_buffer(b,file );
1322
1323 return b;
1324}
1325
1326/** Destroy the buffer.
1327 * @param b a buffer created with yy_create_buffer()
1328 *
1329 */
1330 void yy_delete_buffer (YY_BUFFER_STATE b )
1331{
1332
1333 if ( ! b )
1334 return;
1335
1336 if ( b == YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : ((void*)0))
) /* Not sure if we should pop here. */
1337 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] = (YY_BUFFER_STATE) 0;
1338
1339 if ( b->yy_is_our_buffer )
1340 yyfree((void *) b->yy_ch_buf );
1341
1342 yyfree((void *) b );
1343}
1344
1345#ifndef __cplusplus
1346extern int isatty (int );
1347#endif /* __cplusplus */
1348
1349/* Initializes or reinitializes a buffer.
1350 * This function is sometimes called more than once on the same buffer,
1351 * such as during a yyrestart() or at EOF.
1352 */
1353 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
1354
1355{
1356 int oerrno = errno(*__errno_location ());
1357
1358 yy_flush_buffer(b );
24
Calling 'yy_flush_buffer'
28
Returning from 'yy_flush_buffer'
1359
1360 b->yy_input_file = file;
29
Access to field 'yy_input_file' results in a dereference of a null pointer (loaded from variable 'b')
1361 b->yy_fill_buffer = 1;
1362
1363 /* If b is the current buffer, then yy_init_buffer was _probably_
1364 * called from yyrestart() or through yy_get_next_buffer.
1365 * In that case, we don't want to reset the lineno or column.
1366 */
1367 if (b != YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : ((void*)0))
){
1368 b->yy_bs_lineno = 1;
1369 b->yy_bs_column = 0;
1370 }
1371
1372 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
1373
1374 errno(*__errno_location ()) = oerrno;
1375}
1376
1377/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
1378 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
1379 *
1380 */
1381 void yy_flush_buffer (YY_BUFFER_STATE b )
1382{
1383 if ( ! b )
25
Assuming 'b' is null
26
Assuming pointer value is null
27
Taking true branch
1384 return;
1385
1386 b->yy_n_chars = 0;
1387
1388 /* We always need two end-of-buffer characters. The first causes
1389 * a transition to the end-of-buffer state. The second causes
1390 * a jam in that state.
1391 */
1392 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR0;
1393 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR0;
1394
1395 b->yy_buf_pos = &b->yy_ch_buf[0];
1396
1397 b->yy_at_bol = 1;
1398 b->yy_buffer_status = YY_BUFFER_NEW0;
1399
1400 if ( b == YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : ((void*)0))
)
1401 yy_load_buffer_state( );
1402}
1403
1404/** Pushes the new state onto the stack. The new state becomes
1405 * the current state. This function will allocate the stack
1406 * if necessary.
1407 * @param new_buffer The new state.
1408 *
1409 */
1410void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
1411{
1412 if (new_buffer == NULL((void*)0))
1413 return;
1414
1415 yyensure_buffer_stack();
1416
1417 /* This block is copied from yy_switch_to_buffer. */
1418 if ( YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : ((void*)0))
)
1419 {
1420 /* Flush out information for old buffer. */
1421 *(yy_c_buf_p) = (yy_hold_char);
1422 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buf_pos = (yy_c_buf_p);
1423 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_n_chars = (yy_n_chars);
1424 }
1425
1426 /* Only push if top exists. Otherwise, replace top. */
1427 if (YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : ((void*)0))
)
1428 (yy_buffer_stack_top)++;
1429 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] = new_buffer;
1430
1431 /* copied from yy_switch_to_buffer. */
1432 yy_load_buffer_state( );
1433 (yy_did_buffer_switch_on_eof) = 1;
1434}
1435
1436/** Removes and deletes the top of the stack, if present.
1437 * The next element becomes the new top.
1438 *
1439 */
1440void yypop_buffer_state (void)
1441{
1442 if (!YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : ((void*)0))
)
1443 return;
1444
1445 yy_delete_buffer(YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : ((void*)0))
);
1446 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] = NULL((void*)0);
1447 if ((yy_buffer_stack_top) > 0)
1448 --(yy_buffer_stack_top);
1449
1450 if (YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : ((void*)0))
) {
1451 yy_load_buffer_state( );
1452 (yy_did_buffer_switch_on_eof) = 1;
1453 }
1454}
1455
1456/* Allocates the stack if it does not exist.
1457 * Guarantees space for at least one push.
1458 */
1459static void yyensure_buffer_stack (void)
1460{
1461 int num_to_alloc;
1462
1463 if (!(yy_buffer_stack)) {
1464
1465 /* First allocation is just for 2 elements, since we don't know if this
1466 * scanner will even need a stack. We use 2 instead of 1 to avoid an
1467 * immediate realloc on the next call.
1468 */
1469 num_to_alloc = 1;
1470 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
1471 (num_to_alloc * sizeof(struct yy_buffer_state*)
1472 );
1473 if ( ! (yy_buffer_stack) )
1474 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" )yy_fatal_error( "out of dynamic memory in yyensure_buffer_stack()"
)
;
1475
1476 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
1477
1478 (yy_buffer_stack_max) = num_to_alloc;
1479 (yy_buffer_stack_top) = 0;
1480 return;
1481 }
1482
1483 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
1484
1485 /* Increase the buffer to prepare for a possible push. */
1486 int grow_size = 8 /* arbitrary grow size */;
1487
1488 num_to_alloc = (yy_buffer_stack_max) + grow_size;
1489 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
1490 ((yy_buffer_stack),
1491 num_to_alloc * sizeof(struct yy_buffer_state*)
1492 );
1493 if ( ! (yy_buffer_stack) )
1494 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" )yy_fatal_error( "out of dynamic memory in yyensure_buffer_stack()"
)
;
1495
1496 /* zero only the new slots.*/
1497 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
1498 (yy_buffer_stack_max) = num_to_alloc;
1499 }
1500}
1501
1502/** Setup the input buffer state to scan directly from a user-specified character buffer.
1503 * @param base the character buffer
1504 * @param size the size in bytes of the character buffer
1505 *
1506 * @return the newly allocated buffer state object.
1507 */
1508YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
1509{
1510 YY_BUFFER_STATE b;
1511
1512 if ( size < 2 ||
1513 base[size-2] != YY_END_OF_BUFFER_CHAR0 ||
1514 base[size-1] != YY_END_OF_BUFFER_CHAR0 )
1515 /* They forgot to leave room for the EOB's. */
1516 return 0;
1517
1518 b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
1519 if ( ! b )
1520 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" )yy_fatal_error( "out of dynamic memory in yy_scan_buffer()" );
1521
1522 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
1523 b->yy_buf_pos = b->yy_ch_buf = base;
1524 b->yy_is_our_buffer = 0;
1525 b->yy_input_file = 0;
1526 b->yy_n_chars = b->yy_buf_size;
1527 b->yy_is_interactive = 0;
1528 b->yy_at_bol = 1;
1529 b->yy_fill_buffer = 0;
1530 b->yy_buffer_status = YY_BUFFER_NEW0;
1531
1532 yy_switch_to_buffer(b );
1533
1534 return b;
1535}
1536
1537/** Setup the input buffer state to scan a string. The next call to yylex() will
1538 * scan from a @e copy of @a str.
1539 * @param yystr a NUL-terminated string to scan
1540 *
1541 * @return the newly allocated buffer state object.
1542 * @note If you want to scan bytes that may contain NUL values, then use
1543 * yy_scan_bytes() instead.
1544 */
1545YY_BUFFER_STATE yy_scan_string (yyconstconst char * yystr )
1546{
1547
1548 return yy_scan_bytes(yystr,strlen(yystr) );
1549}
1550
1551/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
1552 * scan from a @e copy of @a bytes.
1553 * @param yybytes the byte buffer to scan
1554 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
1555 *
1556 * @return the newly allocated buffer state object.
1557 */
1558YY_BUFFER_STATE yy_scan_bytes (yyconstconst char * yybytes, int _yybytes_len )
1559{
1560 YY_BUFFER_STATE b;
1561 char *buf;
1562 yy_size_t n;
1563 int i;
1564
1565 /* Get memory for full buffer, including space for trailing EOB's. */
1566 n = _yybytes_len + 2;
1567 buf = (char *) yyalloc(n );
1568 if ( ! buf )
1569 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" )yy_fatal_error( "out of dynamic memory in yy_scan_bytes()" );
1570
1571 for ( i = 0; i < _yybytes_len; ++i )
1572 buf[i] = yybytes[i];
1573
1574 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR0;
1575
1576 b = yy_scan_buffer(buf,n );
1577 if ( ! b )
1578 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" )yy_fatal_error( "bad buffer in yy_scan_bytes()" );
1579
1580 /* It's okay to grow etc. this buffer, and we should throw it
1581 * away when we're done.
1582 */
1583 b->yy_is_our_buffer = 1;
1584
1585 return b;
1586}
1587
1588#ifndef YY_EXIT_FAILURE2
1589#define YY_EXIT_FAILURE2 2
1590#endif
1591
1592static void yy_fatal_error (yyconstconst char* msg )
1593{
1594 (void) fprintf( stderrstderr, "%s\n", msg );
1595 exit( YY_EXIT_FAILURE2 );
1596}
1597
1598/* Redefine yyless() so it works in section 3 code. */
1599
1600#undef yyless
1601#define yyless(n)do { int yyless_macro_arg = (n); ; yytext[yyleng] = (yy_hold_char
); (yy_c_buf_p) = yytext + yyless_macro_arg; (yy_hold_char) =
*(yy_c_buf_p); *(yy_c_buf_p) = '\0'; yyleng = yyless_macro_arg
; } while ( 0 )
\
1602 do \
1603 { \
1604 /* Undo effects of setting up yytext. */ \
1605 int yyless_macro_arg = (n); \
1606 YY_LESS_LINENO(yyless_macro_arg);\
1607 yytext[yyleng] = (yy_hold_char); \
1608 (yy_c_buf_p) = yytext + yyless_macro_arg; \
1609 (yy_hold_char) = *(yy_c_buf_p); \
1610 *(yy_c_buf_p) = '\0'; \
1611 yyleng = yyless_macro_arg; \
1612 } \
1613 while ( 0 )
1614
1615/* Accessor methods (get/set functions) to struct members. */
1616
1617/** Get the current line number.
1618 *
1619 */
1620int yyget_lineno (void)
1621{
1622
1623 return yylineno;
1624}
1625
1626/** Get the input stream.
1627 *
1628 */
1629FILE *yyget_in (void)
1630{
1631 return yyin;
1632}
1633
1634/** Get the output stream.
1635 *
1636 */
1637FILE *yyget_out (void)
1638{
1639 return yyout;
1640}
1641
1642/** Get the length of the current token.
1643 *
1644 */
1645int yyget_leng (void)
1646{
1647 return yyleng;
1648}
1649
1650/** Get the current token.
1651 *
1652 */
1653
1654char *yyget_text (void)
1655{
1656 return yytext;
1657}
1658
1659/** Set the current line number.
1660 * @param line_number
1661 *
1662 */
1663void yyset_lineno (int line_number )
1664{
1665
1666 yylineno = line_number;
1667}
1668
1669/** Set the input stream. This does not discard the current
1670 * input buffer.
1671 * @param in_str A readable stream.
1672 *
1673 * @see yy_switch_to_buffer
1674 */
1675void yyset_in (FILE * in_str )
1676{
1677 yyin = in_str ;
1678}
1679
1680void yyset_out (FILE * out_str )
1681{
1682 yyout = out_str ;
1683}
1684
1685int yyget_debug (void)
1686{
1687 return yy_flex_debug;
1688}
1689
1690void yyset_debug (int bdebug )
1691{
1692 yy_flex_debug = bdebug ;
1693}
1694
1695static int yy_init_globals (void)
1696{
1697 /* Initialization is the same as for the non-reentrant scanner.
1698 * This function is called from yylex_destroy(), so don't allocate here.
1699 */
1700
1701 (yy_buffer_stack) = 0;
1702 (yy_buffer_stack_top) = 0;
1703 (yy_buffer_stack_max) = 0;
1704 (yy_c_buf_p) = (char *) 0;
1705 (yy_init) = 0;
1706 (yy_start) = 0;
1707
1708 (yy_state_buf) = 0;
1709 (yy_state_ptr) = 0;
1710 (yy_full_match) = 0;
1711 (yy_lp) = 0;
1712
1713/* Defined in main.c */
1714#ifdef YY_STDINIT
1715 yyin = stdinstdin;
1716 yyout = stdoutstdout;
1717#else
1718 yyin = (FILE *) 0;
1719 yyout = (FILE *) 0;
1720#endif
1721
1722 /* For future reference: Set errno on error, since we are called by
1723 * yylex_init()
1724 */
1725 return 0;
1726}
1727
1728/* yylex_destroy is for both reentrant and non-reentrant scanners. */
1729int yylex_destroy (void)
1730{
1731
1732 /* Pop the buffer stack, destroying each element. */
1733 while(YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : ((void*)0))
){
1734 yy_delete_buffer(YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : ((void*)0))
);
1735 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] = NULL((void*)0);
1736 yypop_buffer_state();
1737 }
1738
1739 /* Destroy the stack itself. */
1740 yyfree((yy_buffer_stack) );
1741 (yy_buffer_stack) = NULL((void*)0);
1742
1743 yyfree ( (yy_state_buf) );
1744 (yy_state_buf) = NULL((void*)0);
1745
1746 /* Reset the globals. This is important in a non-reentrant scanner so the next time
1747 * yylex() is called, initialization will occur. */
1748 yy_init_globals( );
1749
1750 return 0;
1751}
1752
1753/*
1754 * Internal utility routines.
1755 */
1756
1757#ifndef yytext_ptryytext
1758static void yy_flex_strncpy (char* s1, yyconstconst char * s2, int n )
1759{
1760 register int i;
1761 for ( i = 0; i < n; ++i )
1762 s1[i] = s2[i];
1763}
1764#endif
1765
1766#ifdef YY_NEED_STRLEN
1767static int yy_flex_strlen (yyconstconst char * s )
1768{
1769 register int n;
1770 for ( n = 0; s[n]; ++n )
1771 ;
1772
1773 return n;
1774}
1775#endif
1776
1777void *yyalloc (yy_size_t size )
1778{
1779 return (void *) malloc( size );
1780}
1781
1782void *yyrealloc (void * ptr, yy_size_t size )
1783{
1784 /* The cast to (char *) in the following accommodates both
1785 * implementations that use char* generic pointers, and those
1786 * that use void* generic pointers. It works with the latter
1787 * because both ANSI C and C++ allow castless assignment from
1788 * any pointer type to void*, and deal with argument conversions
1789 * as though doing an assignment.
1790 */
1791 return (void *) realloc( (char *) ptr, size );
1792}
1793
1794void yyfree (void * ptr )
1795{
1796 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
1797}
1798
1799#define YYTABLES_NAME"yytables" "yytables"
1800
1801#line 10 "conftest.l"
1802
1803
1804#ifdef YYTEXT_POINTER
1805extern char *yytext;
1806#endif
1807int
1808main (void)
1809{
1810 return ! yylex () + ! yywrap ();
1
Calling 'yylex'
1811}