Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals

lex.yy.c

00001 
00002 #line 3 "lex.yy.c"
00003 
00004 #define  YY_INT_ALIGNED short int
00005 
00006 /* A lexical scanner generated by flex */
00007 
00008 #define FLEX_SCANNER
00009 #define YY_FLEX_MAJOR_VERSION 2
00010 #define YY_FLEX_MINOR_VERSION 5
00011 #define YY_FLEX_SUBMINOR_VERSION 33
00012 #if YY_FLEX_SUBMINOR_VERSION > 0
00013 #define FLEX_BETA
00014 #endif
00015 
00016 /* First, we deal with  platform-specific or compiler-specific issues. */
00017 
00018 /* begin standard C headers. */
00019 #include <stdio.h>
00020 #include <string.h>
00021 #include <errno.h>
00022 #include <stdlib.h>
00023 
00024 /* end standard C headers. */
00025 
00026 /* flex integer type definitions */
00027 
00028 #ifndef FLEXINT_H
00029 #define FLEXINT_H
00030 
00031 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
00032 
00033 #if __STDC_VERSION__ >= 199901L
00034 
00035 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
00036  * if you want the limit (max/min) macros for int types. 
00037  */
00038 #ifndef __STDC_LIMIT_MACROS
00039 #define __STDC_LIMIT_MACROS 1
00040 #endif
00041 
00042 #include <inttypes.h>
00043 typedef int8_t flex_int8_t;
00044 typedef uint8_t flex_uint8_t;
00045 typedef int16_t flex_int16_t;
00046 typedef uint16_t flex_uint16_t;
00047 typedef int32_t flex_int32_t;
00048 typedef uint32_t flex_uint32_t;
00049 #else
00050 typedef signed char flex_int8_t;
00051 typedef short int flex_int16_t;
00052 typedef int flex_int32_t;
00053 typedef unsigned char flex_uint8_t; 
00054 typedef unsigned short int flex_uint16_t;
00055 typedef unsigned int flex_uint32_t;
00056 #endif /* ! C99 */
00057 
00058 /* Limits of integral types. */
00059 #ifndef INT8_MIN
00060 #define INT8_MIN               (-128)
00061 #endif
00062 #ifndef INT16_MIN
00063 #define INT16_MIN              (-32767-1)
00064 #endif
00065 #ifndef INT32_MIN
00066 #define INT32_MIN              (-2147483647-1)
00067 #endif
00068 #ifndef INT8_MAX
00069 #define INT8_MAX               (127)
00070 #endif
00071 #ifndef INT16_MAX
00072 #define INT16_MAX              (32767)
00073 #endif
00074 #ifndef INT32_MAX
00075 #define INT32_MAX              (2147483647)
00076 #endif
00077 #ifndef UINT8_MAX
00078 #define UINT8_MAX              (255U)
00079 #endif
00080 #ifndef UINT16_MAX
00081 #define UINT16_MAX             (65535U)
00082 #endif
00083 #ifndef UINT32_MAX
00084 #define UINT32_MAX             (4294967295U)
00085 #endif
00086 
00087 #endif /* ! FLEXINT_H */
00088 
00089 #ifdef __cplusplus
00090 
00091 /* The "const" storage-class-modifier is valid. */
00092 #define YY_USE_CONST
00093 
00094 #else   /* ! __cplusplus */
00095 
00096 #if __STDC__
00097 
00098 #define YY_USE_CONST
00099 
00100 #endif  /* __STDC__ */
00101 #endif  /* ! __cplusplus */
00102 
00103 #ifdef YY_USE_CONST
00104 #define yyconst const
00105 #else
00106 #define yyconst
00107 #endif
00108 
00109 /* Returned upon end-of-file. */
00110 #define YY_NULL 0
00111 
00112 /* Promotes a possibly negative, possibly signed char to an unsigned
00113  * integer for use as an array index.  If the signed char is negative,
00114  * we want to instead treat it as an 8-bit unsigned char, hence the
00115  * double cast.
00116  */
00117 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00118 
00119 /* Enter a start condition.  This macro really ought to take a parameter,
00120  * but we do it the disgusting crufty way forced on us by the ()-less
00121  * definition of BEGIN.
00122  */
00123 #define BEGIN (yy_start) = 1 + 2 *
00124 
00125 /* Translate the current start state into a value that can be later handed
00126  * to BEGIN to return to the state.  The YYSTATE alias is for lex
00127  * compatibility.
00128  */
00129 #define YY_START (((yy_start) - 1) / 2)
00130 #define YYSTATE YY_START
00131 
00132 /* Action number for EOF rule of a given start state. */
00133 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00134 
00135 /* Special action meaning "start processing a new file". */
00136 #define YY_NEW_FILE yyrestart(yyin  )
00137 
00138 #define YY_END_OF_BUFFER_CHAR 0
00139 
00140 /* Size of default input buffer. */
00141 #ifndef YY_BUF_SIZE
00142 #define YY_BUF_SIZE 16384
00143 #endif
00144 
00145 /* The state buf must be large enough to hold one state per character in the main buffer.
00146  */
00147 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
00148 
00149 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
00150 #define YY_TYPEDEF_YY_BUFFER_STATE
00151 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00152 #endif
00153 
00154 extern int yyleng;
00155 
00156 extern FILE *yyin, *yyout;
00157 
00158 #define EOB_ACT_CONTINUE_SCAN 0
00159 #define EOB_ACT_END_OF_FILE 1
00160 #define EOB_ACT_LAST_MATCH 2
00161 
00162     #define YY_LESS_LINENO(n)
00163     
00164 /* Return all but the first "n" matched characters back to the input stream. */
00165 #define yyless(n) \
00166     do \
00167         { \
00168         /* Undo effects of setting up yytext. */ \
00169         int yyless_macro_arg = (n); \
00170         YY_LESS_LINENO(yyless_macro_arg);\
00171         *yy_cp = (yy_hold_char); \
00172         YY_RESTORE_YY_MORE_OFFSET \
00173         (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
00174         YY_DO_BEFORE_ACTION; /* set up yytext again */ \
00175         } \
00176     while ( 0 )
00177 
00178 #define unput(c) yyunput( c, (yytext_ptr)  )
00179 
00180 /* The following is because we cannot portably get our hands on size_t
00181  * (without autoconf's help, which isn't available because we want
00182  * flex-generated scanners to compile on their own).
00183  */
00184 
00185 #ifndef YY_TYPEDEF_YY_SIZE_T
00186 #define YY_TYPEDEF_YY_SIZE_T
00187 typedef unsigned int yy_size_t;
00188 #endif
00189 
00190 #ifndef YY_STRUCT_YY_BUFFER_STATE
00191 #define YY_STRUCT_YY_BUFFER_STATE
00192 struct yy_buffer_state
00193     {
00194     FILE *yy_input_file;
00195 
00196     char *yy_ch_buf;        /* input buffer */
00197     char *yy_buf_pos;       /* current position in input buffer */
00198 
00199     /* Size of input buffer in bytes, not including room for EOB
00200      * characters.
00201      */
00202     yy_size_t yy_buf_size;
00203 
00204     /* Number of characters read into yy_ch_buf, not including EOB
00205      * characters.
00206      */
00207     int yy_n_chars;
00208 
00209     /* Whether we "own" the buffer - i.e., we know we created it,
00210      * and can realloc() it to grow it, and should free() it to
00211      * delete it.
00212      */
00213     int yy_is_our_buffer;
00214 
00215     /* Whether this is an "interactive" input source; if so, and
00216      * if we're using stdio for input, then we want to use getc()
00217      * instead of fread(), to make sure we stop fetching input after
00218      * each newline.
00219      */
00220     int yy_is_interactive;
00221 
00222     /* Whether we're considered to be at the beginning of a line.
00223      * If so, '^' rules will be active on the next match, otherwise
00224      * not.
00225      */
00226     int yy_at_bol;
00227 
00228     int yy_bs_lineno; 
00229     int yy_bs_column; 
00231     /* Whether to try to fill the input buffer when we reach the
00232      * end of it.
00233      */
00234     int yy_fill_buffer;
00235 
00236     int yy_buffer_status;
00237 
00238 #define YY_BUFFER_NEW 0
00239 #define YY_BUFFER_NORMAL 1
00240     /* When an EOF's been seen but there's still some text to process
00241      * then we mark the buffer as YY_EOF_PENDING, to indicate that we
00242      * shouldn't try reading from the input source any more.  We might
00243      * still have a bunch of tokens to match, though, because of
00244      * possible backing-up.
00245      *
00246      * When we actually see the EOF, we change the status to "new"
00247      * (via yyrestart()), so that the user can continue scanning by
00248      * just pointing yyin at a new input file.
00249      */
00250 #define YY_BUFFER_EOF_PENDING 2
00251 
00252     };
00253 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
00254 
00255 /* Stack of input buffers. */
00256 static size_t yy_buffer_stack_top = 0; 
00257 static size_t yy_buffer_stack_max = 0; 
00258 static YY_BUFFER_STATE * yy_buffer_stack = 0; 
00260 /* We provide macros for accessing buffer states in case in the
00261  * future we want to put the buffer states in a more general
00262  * "scanner state".
00263  *
00264  * Returns the top of the stack, or NULL.
00265  */
00266 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
00267                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
00268                           : NULL)
00269 
00270 /* Same as previous macro, but useful when we know that the buffer stack is not
00271  * NULL or when we need an lvalue. For internal use only.
00272  */
00273 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
00274 
00275 /* yy_hold_char holds the character lost when yytext is formed. */
00276 static char yy_hold_char;
00277 static int yy_n_chars;      /* number of characters read into yy_ch_buf */
00278 int yyleng;
00279 
00280 /* Points to current character in buffer. */
00281 static char *yy_c_buf_p = (char *) 0;
00282 static int yy_init = 0;     /* whether we need to initialize */
00283 static int yy_start = 0;    /* start state number */
00284 
00285 /* Flag which is used to allow yywrap()'s to do buffer switches
00286  * instead of setting up a fresh yyin.  A bit of a hack ...
00287  */
00288 static int yy_did_buffer_switch_on_eof;
00289 
00290 void yyrestart (FILE *input_file  );
00291 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
00292 YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
00293 void yy_delete_buffer (YY_BUFFER_STATE b  );
00294 void yy_flush_buffer (YY_BUFFER_STATE b  );
00295 void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
00296 void yypop_buffer_state (void );
00297 
00298 static void yyensure_buffer_stack (void );
00299 static void yy_load_buffer_state (void );
00300 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
00301 
00302 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
00303 
00304 YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
00305 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
00306 YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
00307 
00308 void *yyalloc (yy_size_t  );
00309 void *yyrealloc (void *,yy_size_t  );
00310 void yyfree (void *  );
00311 
00312 #define yy_new_buffer yy_create_buffer
00313 
00314 #define yy_set_interactive(is_interactive) \
00315     { \
00316     if ( ! YY_CURRENT_BUFFER ){ \
00317         yyensure_buffer_stack (); \
00318         YY_CURRENT_BUFFER_LVALUE =    \
00319             yy_create_buffer(yyin,YY_BUF_SIZE ); \
00320     } \
00321     YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
00322     }
00323 
00324 #define yy_set_bol(at_bol) \
00325     { \
00326     if ( ! YY_CURRENT_BUFFER ){\
00327         yyensure_buffer_stack (); \
00328         YY_CURRENT_BUFFER_LVALUE =    \
00329             yy_create_buffer(yyin,YY_BUF_SIZE ); \
00330     } \
00331     YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
00332     }
00333 
00334 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
00335 
00336 /* Begin user sect3 */
00337 
00338 typedef unsigned char YY_CHAR;
00339 
00340 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
00341 
00342 typedef int yy_state_type;
00343 
00344 extern int yylineno;
00345 
00346 int yylineno = 1;
00347 
00348 extern char *yytext;
00349 #define yytext_ptr yytext
00350 
00351 static yy_state_type yy_get_previous_state (void );
00352 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
00353 static int yy_get_next_buffer (void );
00354 static void yy_fatal_error (yyconst char msg[]  );
00355 
00356 /* Done after the current pattern has been matched and before the
00357  * corresponding action - sets up yytext.
00358  */
00359 #define YY_DO_BEFORE_ACTION \
00360     (yytext_ptr) = yy_bp; \
00361     (yytext_ptr) -= (yy_more_len); \
00362     yyleng = (size_t) (yy_cp - (yytext_ptr)); \
00363     (yy_hold_char) = *yy_cp; \
00364     *yy_cp = '\0'; \
00365     (yy_c_buf_p) = yy_cp;
00366 
00367 #define YY_NUM_RULES 8
00368 #define YY_END_OF_BUFFER 9
00369 /* This struct is not used in this scanner,
00370    but its presence is necessary. */
00371 struct yy_trans_info
00372     {
00373     flex_int32_t yy_verify;
00374     flex_int32_t yy_nxt;
00375     };
00376 static yyconst flex_int16_t yy_acclist[23] =
00377     {   0,
00378         9,    7,    8,    8,    1,    7,    8,    2,    7,    8,
00379         3,    7,    8,    4,    7,    8,    5,    7,    8,    6,
00380         7,    8
00381     } ;
00382 
00383 static yyconst flex_int16_t yy_accept[14] =
00384     {   0,
00385         1,    1,    1,    2,    4,    5,    8,   11,   14,   17,
00386        20,   23,   23
00387     } ;
00388 
00389 static yyconst flex_int32_t yy_ec[256] =
00390     {   0,
00391         1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
00392         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00393         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00394         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00395         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00396         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00397         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00398         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00399         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00400         1,    1,    1,    1,    1,    1,    3,    4,    5,    6,
00401 
00402         7,    8,    1,    1,    1,    1,    1,    1,    1,    1,
00403         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00404         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00405         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00406         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00407         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00408         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00409         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00410         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00411         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00412 
00413         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00414         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00415         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00416         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00417         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00418         1,    1,    1,    1,    1
00419     } ;
00420 
00421 static yyconst flex_int32_t yy_meta[9] =
00422     {   0,
00423         1,    1,    1,    1,    1,    1,    1,    1
00424     } ;
00425 
00426 static yyconst flex_int16_t yy_base[13] =
00427     {   0,
00428         0,    0,    9,   10,   10,   10,   10,   10,   10,   10,
00429        10,   10
00430     } ;
00431 
00432 static yyconst flex_int16_t yy_def[13] =
00433     {   0,
00434        12,    1,   12,   12,   12,   12,   12,   12,   12,   12,
00435        12,    0
00436     } ;
00437 
00438 static yyconst flex_int16_t yy_nxt[19] =
00439     {   0,
00440         4,    5,    6,    7,    8,    9,   10,   11,   12,    3,
00441        12,   12,   12,   12,   12,   12,   12,   12
00442     } ;
00443 
00444 static yyconst flex_int16_t yy_chk[19] =
00445     {   0,
00446         1,    1,    1,    1,    1,    1,    1,    1,    3,   12,
00447        12,   12,   12,   12,   12,   12,   12,   12
00448     } ;
00449 
00450 extern int yy_flex_debug;
00451 int yy_flex_debug = 0;
00452 
00453 static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
00454 static char *yy_full_match;
00455 static int yy_lp;
00456 #define REJECT \
00457 { \
00458 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ \
00459 yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
00460 ++(yy_lp); \
00461 goto find_rule; \
00462 }
00463 
00464 static int yy_more_flag = 0;
00465 static int yy_more_len = 0;
00466 #define yymore() ((yy_more_flag) = 1)
00467 #define YY_MORE_ADJ (yy_more_len)
00468 #define YY_RESTORE_YY_MORE_OFFSET
00469 char *yytext;
00470 #line 1 "conftest.l"
00471 #line 472 "lex.yy.c"
00472 
00473 #define INITIAL 0
00474 
00475 #ifndef YY_NO_UNISTD_H
00476 /* Special case for "unistd.h", since it is non-ANSI. We include it way
00477  * down here because we want the user's section 1 to have been scanned first.
00478  * The user has a chance to override it with an option.
00479  */
00480 #include <unistd.h>
00481 #endif
00482 
00483 #ifndef YY_EXTRA_TYPE
00484 #define YY_EXTRA_TYPE void *
00485 #endif
00486 
00487 static int yy_init_globals (void );
00488 
00489 /* Macros after this point can all be overridden by user definitions in
00490  * section 1.
00491  */
00492 
00493 #ifndef YY_SKIP_YYWRAP
00494 #ifdef __cplusplus
00495 extern "C" int yywrap (void );
00496 #else
00497 extern int yywrap (void );
00498 #endif
00499 #endif
00500 
00501     static void yyunput (int c,char *buf_ptr  );
00502     
00503 #ifndef yytext_ptr
00504 static void yy_flex_strncpy (char *,yyconst char *,int );
00505 #endif
00506 
00507 #ifdef YY_NEED_STRLEN
00508 static int yy_flex_strlen (yyconst char * );
00509 #endif
00510 
00511 #ifndef YY_NO_INPUT
00512 
00513 #ifdef __cplusplus
00514 static int yyinput (void );
00515 #else
00516 static int input (void );
00517 #endif
00518 
00519 #endif
00520 
00521 /* Amount of stuff to slurp up with each read. */
00522 #ifndef YY_READ_BUF_SIZE
00523 #define YY_READ_BUF_SIZE 8192
00524 #endif
00525 
00526 /* Copy whatever the last rule matched to the standard output. */
00527 #ifndef ECHO
00528 /* This used to be an fputs(), but since the string might contain NUL's,
00529  * we now use fwrite().
00530  */
00531 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
00532 #endif
00533 
00534 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
00535  * is returned in "result".
00536  */
00537 #ifndef YY_INPUT
00538 #define YY_INPUT(buf,result,max_size) \
00539     if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
00540         { \
00541         int c = '*'; \
00542         size_t n; \
00543         for ( n = 0; n < max_size && \
00544                  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
00545             buf[n] = (char) c; \
00546         if ( c == '\n' ) \
00547             buf[n++] = (char) c; \
00548         if ( c == EOF && ferror( yyin ) ) \
00549             YY_FATAL_ERROR( "input in flex scanner failed" ); \
00550         result = n; \
00551         } \
00552     else \
00553         { \
00554         errno=0; \
00555         while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
00556             { \
00557             if( errno != EINTR) \
00558                 { \
00559                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
00560                 break; \
00561                 } \
00562             errno=0; \
00563             clearerr(yyin); \
00564             } \
00565         }\
00566 \
00567 
00568 #endif
00569 
00570 /* No semi-colon after return; correct usage is to write "yyterminate();" -
00571  * we don't want an extra ';' after the "return" because that will cause
00572  * some compilers to complain about unreachable statements.
00573  */
00574 #ifndef yyterminate
00575 #define yyterminate() return YY_NULL
00576 #endif
00577 
00578 /* Number of entries by which start-condition stack grows. */
00579 #ifndef YY_START_STACK_INCR
00580 #define YY_START_STACK_INCR 25
00581 #endif
00582 
00583 /* Report a fatal error. */
00584 #ifndef YY_FATAL_ERROR
00585 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
00586 #endif
00587 
00588 /* end tables serialization structures and prototypes */
00589 
00590 /* Default declaration of generated scanner - a define so the user can
00591  * easily add parameters.
00592  */
00593 #ifndef YY_DECL
00594 #define YY_DECL_IS_OURS 1
00595 
00596 extern int yylex (void);
00597 
00598 #define YY_DECL int yylex (void)
00599 #endif /* !YY_DECL */
00600 
00601 /* Code executed at the beginning of each rule, after yytext and yyleng
00602  * have been set up.
00603  */
00604 #ifndef YY_USER_ACTION
00605 #define YY_USER_ACTION
00606 #endif
00607 
00608 /* Code executed at the end of each rule. */
00609 #ifndef YY_BREAK
00610 #define YY_BREAK break;
00611 #endif
00612 
00613 #define YY_RULE_SETUP \
00614     YY_USER_ACTION
00615 
00618 YY_DECL
00619 {
00620     register yy_state_type yy_current_state;
00621     register char *yy_cp, *yy_bp;
00622     register int yy_act;
00623     
00624 #line 1 "conftest.l"
00625 
00626 #line 627 "lex.yy.c"
00627 
00628     if ( !(yy_init) )
00629         {
00630         (yy_init) = 1;
00631 
00632 #ifdef YY_USER_INIT
00633         YY_USER_INIT;
00634 #endif
00635 
00636         /* Create the reject buffer large enough to save one state per allowed character. */
00637         if ( ! (yy_state_buf) )
00638             (yy_state_buf) = (yy_state_type *)yyalloc(YY_STATE_BUF_SIZE  );
00639 
00640         if ( ! (yy_start) )
00641             (yy_start) = 1; /* first start state */
00642 
00643         if ( ! yyin )
00644             yyin = stdin;
00645 
00646         if ( ! yyout )
00647             yyout = stdout;
00648 
00649         if ( ! YY_CURRENT_BUFFER ) {
00650             yyensure_buffer_stack ();
00651             YY_CURRENT_BUFFER_LVALUE =
00652                 yy_create_buffer(yyin,YY_BUF_SIZE );
00653         }
00654 
00655         yy_load_buffer_state( );
00656         }
00657 
00658     while ( 1 )     /* loops until end-of-file is reached */
00659         {
00660         (yy_more_len) = 0;
00661         if ( (yy_more_flag) )
00662             {
00663             (yy_more_len) = (yy_c_buf_p) - (yytext_ptr);
00664             (yy_more_flag) = 0;
00665             }
00666         yy_cp = (yy_c_buf_p);
00667 
00668         /* Support of yytext. */
00669         *yy_cp = (yy_hold_char);
00670 
00671         /* yy_bp points to the position in yy_ch_buf of the start of
00672          * the current run.
00673          */
00674         yy_bp = yy_cp;
00675 
00676         yy_current_state = (yy_start);
00677 
00678         (yy_state_ptr) = (yy_state_buf);
00679         *(yy_state_ptr)++ = yy_current_state;
00680 
00681 yy_match:
00682         do
00683             {
00684             register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
00685             while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
00686                 {
00687                 yy_current_state = (int) yy_def[yy_current_state];
00688                 if ( yy_current_state >= 13 )
00689                     yy_c = yy_meta[(unsigned int) yy_c];
00690                 }
00691             yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
00692             *(yy_state_ptr)++ = yy_current_state;
00693             ++yy_cp;
00694             }
00695         while ( yy_base[yy_current_state] != 10 );
00696 
00697 yy_find_action:
00698         yy_current_state = *--(yy_state_ptr);
00699         (yy_lp) = yy_accept[yy_current_state];
00700 find_rule: /* we branch to this label when backing up */
00701         for ( ; ; ) /* until we find what rule we matched */
00702             {
00703             if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
00704                 {
00705                 yy_act = yy_acclist[(yy_lp)];
00706                     {
00707                     (yy_full_match) = yy_cp;
00708                     break;
00709                     }
00710                 }
00711             --yy_cp;
00712             yy_current_state = *--(yy_state_ptr);
00713             (yy_lp) = yy_accept[yy_current_state];
00714             }
00715 
00716         YY_DO_BEFORE_ACTION;
00717 
00718 do_action:  /* This label is used only to access EOF actions. */
00719 
00720         switch ( yy_act )
00721     { /* beginning of action switch */
00722 case 1:
00723 YY_RULE_SETUP
00724 #line 2 "conftest.l"
00725 { ECHO; }
00726     YY_BREAK
00727 case 2:
00728 YY_RULE_SETUP
00729 #line 3 "conftest.l"
00730 { REJECT; }
00731     YY_BREAK
00732 case 3:
00733 YY_RULE_SETUP
00734 #line 4 "conftest.l"
00735 { yymore (); }
00736     YY_BREAK
00737 case 4:
00738 YY_RULE_SETUP
00739 #line 5 "conftest.l"
00740 { yyless (1); }
00741     YY_BREAK
00742 case 5:
00743 YY_RULE_SETUP
00744 #line 6 "conftest.l"
00745 { yyless (input () != 0); }
00746     YY_BREAK
00747 case 6:
00748 YY_RULE_SETUP
00749 #line 7 "conftest.l"
00750 { unput (yytext[0]); }
00751     YY_BREAK
00752 case 7:
00753 YY_RULE_SETUP
00754 #line 8 "conftest.l"
00755 { BEGIN INITIAL; }
00756     YY_BREAK
00757 case 8:
00758 YY_RULE_SETUP
00759 #line 9 "conftest.l"
00760 ECHO;
00761     YY_BREAK
00762 #line 763 "lex.yy.c"
00763             case YY_STATE_EOF(INITIAL):
00764                 yyterminate();
00765 
00766     case YY_END_OF_BUFFER:
00767         {
00768         /* Amount of text matched not including the EOB char. */
00769         int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
00770 
00771         /* Undo the effects of YY_DO_BEFORE_ACTION. */
00772         *yy_cp = (yy_hold_char);
00773         YY_RESTORE_YY_MORE_OFFSET
00774 
00775         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
00776             {
00777             /* We're scanning a new file or input source.  It's
00778              * possible that this happened because the user
00779              * just pointed yyin at a new source and called
00780              * yylex().  If so, then we have to assure
00781              * consistency between YY_CURRENT_BUFFER and our
00782              * globals.  Here is the right place to do so, because
00783              * this is the first action (other than possibly a
00784              * back-up) that will match for the new input source.
00785              */
00786             (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
00787             YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
00788             YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
00789             }
00790 
00791         /* Note that here we test for yy_c_buf_p "<=" to the position
00792          * of the first EOB in the buffer, since yy_c_buf_p will
00793          * already have been incremented past the NUL character
00794          * (since all states make transitions on EOB to the
00795          * end-of-buffer state).  Contrast this with the test
00796          * in input().
00797          */
00798         if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
00799             { /* This was really a NUL. */
00800             yy_state_type yy_next_state;
00801 
00802             (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
00803 
00804             yy_current_state = yy_get_previous_state(  );
00805 
00806             /* Okay, we're now positioned to make the NUL
00807              * transition.  We couldn't have
00808              * yy_get_previous_state() go ahead and do it
00809              * for us because it doesn't know how to deal
00810              * with the possibility of jamming (and we don't
00811              * want to build jamming into it because then it
00812              * will run more slowly).
00813              */
00814 
00815             yy_next_state = yy_try_NUL_trans( yy_current_state );
00816 
00817             yy_bp = (yytext_ptr) + YY_MORE_ADJ;
00818 
00819             if ( yy_next_state )
00820                 {
00821                 /* Consume the NUL. */
00822                 yy_cp = ++(yy_c_buf_p);
00823                 yy_current_state = yy_next_state;
00824                 goto yy_match;
00825                 }
00826 
00827             else
00828                 {
00829                 yy_cp = (yy_c_buf_p);
00830                 goto yy_find_action;
00831                 }
00832             }
00833 
00834         else switch ( yy_get_next_buffer(  ) )
00835             {
00836             case EOB_ACT_END_OF_FILE:
00837                 {
00838                 (yy_did_buffer_switch_on_eof) = 0;
00839 
00840                 if ( yywrap( ) )
00841                     {
00842                     /* Note: because we've taken care in
00843                      * yy_get_next_buffer() to have set up
00844                      * yytext, we can now set up
00845                      * yy_c_buf_p so that if some total
00846                      * hoser (like flex itself) wants to
00847                      * call the scanner after we return the
00848                      * YY_NULL, it'll still work - another
00849                      * YY_NULL will get returned.
00850                      */
00851                     (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
00852 
00853                     yy_act = YY_STATE_EOF(YY_START);
00854                     goto do_action;
00855                     }
00856 
00857                 else
00858                     {
00859                     if ( ! (yy_did_buffer_switch_on_eof) )
00860                         YY_NEW_FILE;
00861                     }
00862                 break;
00863                 }
00864 
00865             case EOB_ACT_CONTINUE_SCAN:
00866                 (yy_c_buf_p) =
00867                     (yytext_ptr) + yy_amount_of_matched_text;
00868 
00869                 yy_current_state = yy_get_previous_state(  );
00870 
00871                 yy_cp = (yy_c_buf_p);
00872                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
00873                 goto yy_match;
00874 
00875             case EOB_ACT_LAST_MATCH:
00876                 (yy_c_buf_p) =
00877                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
00878 
00879                 yy_current_state = yy_get_previous_state(  );
00880 
00881                 yy_cp = (yy_c_buf_p);
00882                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
00883                 goto yy_find_action;
00884             }
00885         break;
00886         }
00887 
00888     default:
00889         YY_FATAL_ERROR(
00890             "fatal flex scanner internal error--no action found" );
00891     } /* end of action switch */
00892         } /* end of scanning one token */
00893 } /* end of yylex */
00894 
00895 /* yy_get_next_buffer - try to read in a new buffer
00896  *
00897  * Returns a code representing an action:
00898  *  EOB_ACT_LAST_MATCH -
00899  *  EOB_ACT_CONTINUE_SCAN - continue scanning from current position
00900  *  EOB_ACT_END_OF_FILE - end of file
00901  */
00902 static int yy_get_next_buffer (void)
00903 {
00904         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
00905     register char *source = (yytext_ptr);
00906     register int number_to_move, i;
00907     int ret_val;
00908 
00909     if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
00910         YY_FATAL_ERROR(
00911         "fatal flex scanner internal error--end of buffer missed" );
00912 
00913     if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
00914         { /* Don't try to fill the buffer, so this is an EOF. */
00915         if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
00916             {
00917             /* We matched a single character, the EOB, so
00918              * treat this as a final EOF.
00919              */
00920             return EOB_ACT_END_OF_FILE;
00921             }
00922 
00923         else
00924             {
00925             /* We matched some text prior to the EOB, first
00926              * process it.
00927              */
00928             return EOB_ACT_LAST_MATCH;
00929             }
00930         }
00931 
00932     /* Try to read more data. */
00933 
00934     /* First move last chars to start of buffer. */
00935     number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
00936 
00937     for ( i = 0; i < number_to_move; ++i )
00938         *(dest++) = *(source++);
00939 
00940     if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
00941         /* don't do the read, it's not guaranteed to return an EOF,
00942          * just force an EOF
00943          */
00944         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
00945 
00946     else
00947         {
00948             int num_to_read =
00949             YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
00950 
00951         while ( num_to_read <= 0 )
00952             { /* Not enough room in the buffer - grow it. */
00953 
00954             YY_FATAL_ERROR(
00955 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
00956 
00957             }
00958 
00959         if ( num_to_read > YY_READ_BUF_SIZE )
00960             num_to_read = YY_READ_BUF_SIZE;
00961 
00962         /* Read in more data. */
00963         YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
00964             (yy_n_chars), (size_t) num_to_read );
00965 
00966         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
00967         }
00968 
00969     if ( (yy_n_chars) == 0 )
00970         {
00971         if ( number_to_move == YY_MORE_ADJ )
00972             {
00973             ret_val = EOB_ACT_END_OF_FILE;
00974             yyrestart(yyin  );
00975             }
00976 
00977         else
00978             {
00979             ret_val = EOB_ACT_LAST_MATCH;
00980             YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
00981                 YY_BUFFER_EOF_PENDING;
00982             }
00983         }
00984 
00985     else
00986         ret_val = EOB_ACT_CONTINUE_SCAN;
00987 
00988     (yy_n_chars) += number_to_move;
00989     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
00990     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
00991 
00992     (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
00993 
00994     return ret_val;
00995 }
00996 
00997 /* yy_get_previous_state - get the state just before the EOB char was reached */
00998 
00999     static yy_state_type yy_get_previous_state (void)
01000 {
01001     register yy_state_type yy_current_state;
01002     register char *yy_cp;
01003     
01004     yy_current_state = (yy_start);
01005 
01006     (yy_state_ptr) = (yy_state_buf);
01007     *(yy_state_ptr)++ = yy_current_state;
01008 
01009     for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
01010         {
01011         register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
01012         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01013             {
01014             yy_current_state = (int) yy_def[yy_current_state];
01015             if ( yy_current_state >= 13 )
01016                 yy_c = yy_meta[(unsigned int) yy_c];
01017             }
01018         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01019         *(yy_state_ptr)++ = yy_current_state;
01020         }
01021 
01022     return yy_current_state;
01023 }
01024 
01025 /* yy_try_NUL_trans - try to make a transition on the NUL character
01026  *
01027  * synopsis
01028  *  next_state = yy_try_NUL_trans( current_state );
01029  */
01030     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
01031 {
01032     register int yy_is_jam;
01033     
01034     register YY_CHAR yy_c = 1;
01035     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01036         {
01037         yy_current_state = (int) yy_def[yy_current_state];
01038         if ( yy_current_state >= 13 )
01039             yy_c = yy_meta[(unsigned int) yy_c];
01040         }
01041     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01042     yy_is_jam = (yy_current_state == 12);
01043     if ( ! yy_is_jam )
01044         *(yy_state_ptr)++ = yy_current_state;
01045 
01046     return yy_is_jam ? 0 : yy_current_state;
01047 }
01048 
01049     static void yyunput (int c, register char * yy_bp )
01050 {
01051     register char *yy_cp;
01052     
01053     yy_cp = (yy_c_buf_p);
01054 
01055     /* undo effects of setting up yytext */
01056     *yy_cp = (yy_hold_char);
01057 
01058     if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
01059         { /* need to shift things up to make room */
01060         /* +2 for EOB chars. */
01061         register int number_to_move = (yy_n_chars) + 2;
01062         register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
01063                     YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
01064         register char *source =
01065                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
01066 
01067         while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
01068             *--dest = *--source;
01069 
01070         yy_cp += (int) (dest - source);
01071         yy_bp += (int) (dest - source);
01072         YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
01073             (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
01074 
01075         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
01076             YY_FATAL_ERROR( "flex scanner push-back overflow" );
01077         }
01078 
01079     *--yy_cp = (char) c;
01080 
01081     (yytext_ptr) = yy_bp;
01082     (yy_hold_char) = *yy_cp;
01083     (yy_c_buf_p) = yy_cp;
01084 }
01085 
01086 #ifndef YY_NO_INPUT
01087 #ifdef __cplusplus
01088     static int yyinput (void)
01089 #else
01090     static int input  (void)
01091 #endif
01092 
01093 {
01094     int c;
01095     
01096     *(yy_c_buf_p) = (yy_hold_char);
01097 
01098     if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
01099         {
01100         /* yy_c_buf_p now points to the character we want to return.
01101          * If this occurs *before* the EOB characters, then it's a
01102          * valid NUL; if not, then we've hit the end of the buffer.
01103          */
01104         if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
01105             /* This was really a NUL. */
01106             *(yy_c_buf_p) = '\0';
01107 
01108         else
01109             { /* need more input */
01110             int offset = (yy_c_buf_p) - (yytext_ptr);
01111             ++(yy_c_buf_p);
01112 
01113             switch ( yy_get_next_buffer(  ) )
01114                 {
01115                 case EOB_ACT_LAST_MATCH:
01116                     /* This happens because yy_g_n_b()
01117                      * sees that we've accumulated a
01118                      * token and flags that we need to
01119                      * try matching the token before
01120                      * proceeding.  But for input(),
01121                      * there's no matching to consider.
01122                      * So convert the EOB_ACT_LAST_MATCH
01123                      * to EOB_ACT_END_OF_FILE.
01124                      */
01125 
01126                     /* Reset buffer status. */
01127                     yyrestart(yyin );
01128 
01129                     /*FALLTHROUGH*/
01130 
01131                 case EOB_ACT_END_OF_FILE:
01132                     {
01133                     if ( yywrap( ) )
01134                         return EOF;
01135 
01136                     if ( ! (yy_did_buffer_switch_on_eof) )
01137                         YY_NEW_FILE;
01138 #ifdef __cplusplus
01139                     return yyinput();
01140 #else
01141                     return input();
01142 #endif
01143                     }
01144 
01145                 case EOB_ACT_CONTINUE_SCAN:
01146                     (yy_c_buf_p) = (yytext_ptr) + offset;
01147                     break;
01148                 }
01149             }
01150         }
01151 
01152     c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
01153     *(yy_c_buf_p) = '\0';   /* preserve yytext */
01154     (yy_hold_char) = *++(yy_c_buf_p);
01155 
01156     return c;
01157 }
01158 #endif  /* ifndef YY_NO_INPUT */
01159 
01165     void yyrestart  (FILE * input_file )
01166 {
01167     
01168     if ( ! YY_CURRENT_BUFFER ){
01169         yyensure_buffer_stack ();
01170         YY_CURRENT_BUFFER_LVALUE =
01171             yy_create_buffer(yyin,YY_BUF_SIZE );
01172     }
01173 
01174     yy_init_buffer(YY_CURRENT_BUFFER,input_file );
01175     yy_load_buffer_state( );
01176 }
01177 
01182     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
01183 {
01184     
01185     /* TODO. We should be able to replace this entire function body
01186      * with
01187      *      yypop_buffer_state();
01188      *      yypush_buffer_state(new_buffer);
01189      */
01190     yyensure_buffer_stack ();
01191     if ( YY_CURRENT_BUFFER == new_buffer )
01192         return;
01193 
01194     if ( YY_CURRENT_BUFFER )
01195         {
01196         /* Flush out information for old buffer. */
01197         *(yy_c_buf_p) = (yy_hold_char);
01198         YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
01199         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
01200         }
01201 
01202     YY_CURRENT_BUFFER_LVALUE = new_buffer;
01203     yy_load_buffer_state( );
01204 
01205     /* We don't actually know whether we did this switch during
01206      * EOF (yywrap()) processing, but the only time this flag
01207      * is looked at is after yywrap() is called, so it's safe
01208      * to go ahead and always set it.
01209      */
01210     (yy_did_buffer_switch_on_eof) = 1;
01211 }
01212 
01213 static void yy_load_buffer_state  (void)
01214 {
01215         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
01216     (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
01217     yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
01218     (yy_hold_char) = *(yy_c_buf_p);
01219 }
01220 
01227     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
01228 {
01229     YY_BUFFER_STATE b;
01230     
01231     b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
01232     if ( ! b )
01233         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
01234 
01235     b->yy_buf_size = size;
01236 
01237     /* yy_ch_buf has to be 2 characters longer than the size given because
01238      * we need to put in 2 end-of-buffer characters.
01239      */
01240     b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
01241     if ( ! b->yy_ch_buf )
01242         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
01243 
01244     b->yy_is_our_buffer = 1;
01245 
01246     yy_init_buffer(b,file );
01247 
01248     return b;
01249 }
01250 
01255     void yy_delete_buffer (YY_BUFFER_STATE  b )
01256 {
01257     
01258     if ( ! b )
01259         return;
01260 
01261     if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
01262         YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
01263 
01264     if ( b->yy_is_our_buffer )
01265         yyfree((void *) b->yy_ch_buf  );
01266 
01267     yyfree((void *) b  );
01268 }
01269 
01270 #ifndef __cplusplus
01271 extern int isatty (int );
01272 #endif /* __cplusplus */
01273     
01274 /* Initializes or reinitializes a buffer.
01275  * This function is sometimes called more than once on the same buffer,
01276  * such as during a yyrestart() or at EOF.
01277  */
01278     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
01279 
01280 {
01281     int oerrno = errno;
01282     
01283     yy_flush_buffer(b );
01284 
01285     b->yy_input_file = file;
01286     b->yy_fill_buffer = 1;
01287 
01288     /* If b is the current buffer, then yy_init_buffer was _probably_
01289      * called from yyrestart() or through yy_get_next_buffer.
01290      * In that case, we don't want to reset the lineno or column.
01291      */
01292     if (b != YY_CURRENT_BUFFER){
01293         b->yy_bs_lineno = 1;
01294         b->yy_bs_column = 0;
01295     }
01296 
01297         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
01298     
01299     errno = oerrno;
01300 }
01301 
01306     void yy_flush_buffer (YY_BUFFER_STATE  b )
01307 {
01308         if ( ! b )
01309         return;
01310 
01311     b->yy_n_chars = 0;
01312 
01313     /* We always need two end-of-buffer characters.  The first causes
01314      * a transition to the end-of-buffer state.  The second causes
01315      * a jam in that state.
01316      */
01317     b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
01318     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
01319 
01320     b->yy_buf_pos = &b->yy_ch_buf[0];
01321 
01322     b->yy_at_bol = 1;
01323     b->yy_buffer_status = YY_BUFFER_NEW;
01324 
01325     if ( b == YY_CURRENT_BUFFER )
01326         yy_load_buffer_state( );
01327 }
01328 
01335 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
01336 {
01337         if (new_buffer == NULL)
01338         return;
01339 
01340     yyensure_buffer_stack();
01341 
01342     /* This block is copied from yy_switch_to_buffer. */
01343     if ( YY_CURRENT_BUFFER )
01344         {
01345         /* Flush out information for old buffer. */
01346         *(yy_c_buf_p) = (yy_hold_char);
01347         YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
01348         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
01349         }
01350 
01351     /* Only push if top exists. Otherwise, replace top. */
01352     if (YY_CURRENT_BUFFER)
01353         (yy_buffer_stack_top)++;
01354     YY_CURRENT_BUFFER_LVALUE = new_buffer;
01355 
01356     /* copied from yy_switch_to_buffer. */
01357     yy_load_buffer_state( );
01358     (yy_did_buffer_switch_on_eof) = 1;
01359 }
01360 
01365 void yypop_buffer_state (void)
01366 {
01367         if (!YY_CURRENT_BUFFER)
01368         return;
01369 
01370     yy_delete_buffer(YY_CURRENT_BUFFER );
01371     YY_CURRENT_BUFFER_LVALUE = NULL;
01372     if ((yy_buffer_stack_top) > 0)
01373         --(yy_buffer_stack_top);
01374 
01375     if (YY_CURRENT_BUFFER) {
01376         yy_load_buffer_state( );
01377         (yy_did_buffer_switch_on_eof) = 1;
01378     }
01379 }
01380 
01381 /* Allocates the stack if it does not exist.
01382  *  Guarantees space for at least one push.
01383  */
01384 static void yyensure_buffer_stack (void)
01385 {
01386     int num_to_alloc;
01387     
01388     if (!(yy_buffer_stack)) {
01389 
01390         /* First allocation is just for 2 elements, since we don't know if this
01391          * scanner will even need a stack. We use 2 instead of 1 to avoid an
01392          * immediate realloc on the next call.
01393          */
01394         num_to_alloc = 1;
01395         (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
01396                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
01397                                 );
01398         
01399         memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
01400                 
01401         (yy_buffer_stack_max) = num_to_alloc;
01402         (yy_buffer_stack_top) = 0;
01403         return;
01404     }
01405 
01406     if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
01407 
01408         /* Increase the buffer to prepare for a possible push. */
01409         int grow_size = 8 /* arbitrary grow size */;
01410 
01411         num_to_alloc = (yy_buffer_stack_max) + grow_size;
01412         (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
01413                                 ((yy_buffer_stack),
01414                                 num_to_alloc * sizeof(struct yy_buffer_state*)
01415                                 );
01416 
01417         /* zero only the new slots.*/
01418         memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
01419         (yy_buffer_stack_max) = num_to_alloc;
01420     }
01421 }
01422 
01429 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
01430 {
01431     YY_BUFFER_STATE b;
01432     
01433     if ( size < 2 ||
01434          base[size-2] != YY_END_OF_BUFFER_CHAR ||
01435          base[size-1] != YY_END_OF_BUFFER_CHAR )
01436         /* They forgot to leave room for the EOB's. */
01437         return 0;
01438 
01439     b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
01440     if ( ! b )
01441         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
01442 
01443     b->yy_buf_size = size - 2;  /* "- 2" to take care of EOB's */
01444     b->yy_buf_pos = b->yy_ch_buf = base;
01445     b->yy_is_our_buffer = 0;
01446     b->yy_input_file = 0;
01447     b->yy_n_chars = b->yy_buf_size;
01448     b->yy_is_interactive = 0;
01449     b->yy_at_bol = 1;
01450     b->yy_fill_buffer = 0;
01451     b->yy_buffer_status = YY_BUFFER_NEW;
01452 
01453     yy_switch_to_buffer(b  );
01454 
01455     return b;
01456 }
01457 
01466 YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
01467 {
01468     
01469     return yy_scan_bytes(yystr,strlen(yystr) );
01470 }
01471 
01479 YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
01480 {
01481     YY_BUFFER_STATE b;
01482     char *buf;
01483     yy_size_t n;
01484     int i;
01485     
01486     /* Get memory for full buffer, including space for trailing EOB's. */
01487     n = _yybytes_len + 2;
01488     buf = (char *) yyalloc(n  );
01489     if ( ! buf )
01490         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
01491 
01492     for ( i = 0; i < _yybytes_len; ++i )
01493         buf[i] = yybytes[i];
01494 
01495     buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
01496 
01497     b = yy_scan_buffer(buf,n );
01498     if ( ! b )
01499         YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
01500 
01501     /* It's okay to grow etc. this buffer, and we should throw it
01502      * away when we're done.
01503      */
01504     b->yy_is_our_buffer = 1;
01505 
01506     return b;
01507 }
01508 
01509 #ifndef YY_EXIT_FAILURE
01510 #define YY_EXIT_FAILURE 2
01511 #endif
01512 
01513 static void yy_fatal_error (yyconst char* msg )
01514 {
01515         (void) fprintf( stderr, "%s\n", msg );
01516     exit( YY_EXIT_FAILURE );
01517 }
01518 
01519 /* Redefine yyless() so it works in section 3 code. */
01520 
01521 #undef yyless
01522 #define yyless(n) \
01523     do \
01524         { \
01525         /* Undo effects of setting up yytext. */ \
01526         int yyless_macro_arg = (n); \
01527         YY_LESS_LINENO(yyless_macro_arg);\
01528         yytext[yyleng] = (yy_hold_char); \
01529         (yy_c_buf_p) = yytext + yyless_macro_arg; \
01530         (yy_hold_char) = *(yy_c_buf_p); \
01531         *(yy_c_buf_p) = '\0'; \
01532         yyleng = yyless_macro_arg; \
01533         } \
01534     while ( 0 )
01535 
01536 /* Accessor  methods (get/set functions) to struct members. */
01537 
01541 int yyget_lineno  (void)
01542 {
01543         
01544     return yylineno;
01545 }
01546 
01550 FILE *yyget_in  (void)
01551 {
01552         return yyin;
01553 }
01554 
01558 FILE *yyget_out  (void)
01559 {
01560         return yyout;
01561 }
01562 
01566 int yyget_leng  (void)
01567 {
01568         return yyleng;
01569 }
01570 
01575 char *yyget_text  (void)
01576 {
01577         return yytext;
01578 }
01579 
01584 void yyset_lineno (int  line_number )
01585 {
01586     
01587     yylineno = line_number;
01588 }
01589 
01596 void yyset_in (FILE *  in_str )
01597 {
01598         yyin = in_str ;
01599 }
01600 
01601 void yyset_out (FILE *  out_str )
01602 {
01603         yyout = out_str ;
01604 }
01605 
01606 int yyget_debug  (void)
01607 {
01608         return yy_flex_debug;
01609 }
01610 
01611 void yyset_debug (int  bdebug )
01612 {
01613         yy_flex_debug = bdebug ;
01614 }
01615 
01616 static int yy_init_globals (void)
01617 {
01618         /* Initialization is the same as for the non-reentrant scanner.
01619      * This function is called from yylex_destroy(), so don't allocate here.
01620      */
01621 
01622     (yy_buffer_stack) = 0;
01623     (yy_buffer_stack_top) = 0;
01624     (yy_buffer_stack_max) = 0;
01625     (yy_c_buf_p) = (char *) 0;
01626     (yy_init) = 0;
01627     (yy_start) = 0;
01628 
01629     (yy_state_buf) = 0;
01630     (yy_state_ptr) = 0;
01631     (yy_full_match) = 0;
01632     (yy_lp) = 0;
01633 
01634 /* Defined in main.c */
01635 #ifdef YY_STDINIT
01636     yyin = stdin;
01637     yyout = stdout;
01638 #else
01639     yyin = (FILE *) 0;
01640     yyout = (FILE *) 0;
01641 #endif
01642 
01643     /* For future reference: Set errno on error, since we are called by
01644      * yylex_init()
01645      */
01646     return 0;
01647 }
01648 
01649 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
01650 int yylex_destroy  (void)
01651 {
01652     
01653     /* Pop the buffer stack, destroying each element. */
01654     while(YY_CURRENT_BUFFER){
01655         yy_delete_buffer(YY_CURRENT_BUFFER  );
01656         YY_CURRENT_BUFFER_LVALUE = NULL;
01657         yypop_buffer_state();
01658     }
01659 
01660     /* Destroy the stack itself. */
01661     yyfree((yy_buffer_stack) );
01662     (yy_buffer_stack) = NULL;
01663 
01664     yyfree ( (yy_state_buf) );
01665     (yy_state_buf)  = NULL;
01666 
01667     /* Reset the globals. This is important in a non-reentrant scanner so the next time
01668      * yylex() is called, initialization will occur. */
01669     yy_init_globals( );
01670 
01671     return 0;
01672 }
01673 
01674 /*
01675  * Internal utility routines.
01676  */
01677 
01678 #ifndef yytext_ptr
01679 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
01680 {
01681     register int i;
01682     for ( i = 0; i < n; ++i )
01683         s1[i] = s2[i];
01684 }
01685 #endif
01686 
01687 #ifdef YY_NEED_STRLEN
01688 static int yy_flex_strlen (yyconst char * s )
01689 {
01690     register int n;
01691     for ( n = 0; s[n]; ++n )
01692         ;
01693 
01694     return n;
01695 }
01696 #endif
01697 
01698 void *yyalloc (yy_size_t  size )
01699 {
01700     return (void *) malloc( size );
01701 }
01702 
01703 void *yyrealloc  (void * ptr, yy_size_t  size )
01704 {
01705     /* The cast to (char *) in the following accommodates both
01706      * implementations that use char* generic pointers, and those
01707      * that use void* generic pointers.  It works with the latter
01708      * because both ANSI C and C++ allow castless assignment from
01709      * any pointer type to void*, and deal with argument conversions
01710      * as though doing an assignment.
01711      */
01712     return (void *) realloc( (char *) ptr, size );
01713 }
01714 
01715 void yyfree (void * ptr )
01716 {
01717     free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
01718 }
01719 
01720 #define YYTABLES_NAME "yytables"
01721 
01722 #line 9 "conftest.l"
01723 
01724 
01725 #ifdef YYTEXT_POINTER
01726 extern char *yytext;
01727 #endif
01728 int
01729 main (void)
01730 {
01731   return ! yylex () + ! yywrap ();
01732 }
01733 

Generated on Sat Dec 1 10:25:29 2007 for cprops by  doxygen 1.3.9.1