Yattm - unified GTK instant-messaging client logo
   [Generated for version 0.2-17 - Mon Jan 6 19:01:23 GMT+1 2003]

Home - Main Page - Data Structures - File List - Data Fields - Globals

account_scanner.c

Go to the documentation of this file.
00001 #define yy_create_buffer account_create_buffer
00002 #define yy_delete_buffer account_delete_buffer
00003 #define yy_scan_buffer account_scan_buffer
00004 #define yy_scan_string account_scan_string
00005 #define yy_scan_bytes account_scan_bytes
00006 #define yy_flex_debug account_flex_debug
00007 #define yy_init_buffer account_init_buffer
00008 #define yy_flush_buffer account_flush_buffer
00009 #define yy_load_buffer_state account_load_buffer_state
00010 #define yy_switch_to_buffer account_switch_to_buffer
00011 #define yyin accountin
00012 #define yyleng accountleng
00013 #define yylex accountlex
00014 #define yyout accountout
00015 #define yyrestart accountrestart
00016 #define yytext accounttext
00017 #define yywrap accountwrap
00018 
00019 /* A lexical scanner generated by flex */
00020 
00021 /* Scanner skeleton version:
00022  * $Header: /webcvs/ayttm/ayttm/SourceBrowser/account__scanner_8c-source.html,v 1.2 2003/01/06 18:51:18 asmaloney Exp $
00023  */
00024 
00025 #define FLEX_SCANNER
00026 #define YY_FLEX_MAJOR_VERSION 2
00027 #define YY_FLEX_MINOR_VERSION 5
00028 
00029 #include <stdio.h>
00030 #include <unistd.h>
00031 
00032 
00033 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
00034 #ifdef c_plusplus
00035 #ifndef __cplusplus
00036 #define __cplusplus
00037 #endif
00038 #endif
00039 
00040 
00041 #ifdef __cplusplus
00042 
00043 #include <stdlib.h>
00044 
00045 /* Use prototypes in function declarations. */
00046 #define YY_USE_PROTOS
00047 
00048 /* The "const" storage-class-modifier is valid. */
00049 #define YY_USE_CONST
00050 
00051 #else   /* ! __cplusplus */
00052 
00053 #if __STDC__
00054 
00055 #define YY_USE_PROTOS
00056 #define YY_USE_CONST
00057 
00058 #endif  /* __STDC__ */
00059 #endif  /* ! __cplusplus */
00060 
00061 #ifdef __TURBOC__
00062  #pragma warn -rch
00063  #pragma warn -use
00064 #include <io.h>
00065 #include <stdlib.h>
00066 #define YY_USE_CONST
00067 #define YY_USE_PROTOS
00068 #endif
00069 
00070 #ifdef YY_USE_CONST
00071 #define yyconst const
00072 #else
00073 #define yyconst
00074 #endif
00075 
00076 
00077 #ifdef YY_USE_PROTOS
00078 #define YY_PROTO(proto) proto
00079 #else
00080 #define YY_PROTO(proto) ()
00081 #endif
00082 
00083 /* Returned upon end-of-file. */
00084 #define YY_NULL 0
00085 
00086 /* Promotes a possibly negative, possibly signed char to an unsigned
00087  * integer for use as an array index.  If the signed char is negative,
00088  * we want to instead treat it as an 8-bit unsigned char, hence the
00089  * double cast.
00090  */
00091 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00092 
00093 /* Enter a start condition.  This macro really ought to take a parameter,
00094  * but we do it the disgusting crufty way forced on us by the ()-less
00095  * definition of BEGIN.
00096  */
00097 #define BEGIN yy_start = 1 + 2 *
00098 
00099 /* Translate the current start state into a value that can be later handed
00100  * to BEGIN to return to the state.  The YYSTATE alias is for lex
00101  * compatibility.
00102  */
00103 #define YY_START ((yy_start - 1) / 2)
00104 #define YYSTATE YY_START
00105 
00106 /* Action number for EOF rule of a given start state. */
00107 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00108 
00109 /* Special action meaning "start processing a new file". */
00110 #define YY_NEW_FILE yyrestart( yyin )
00111 
00112 #define YY_END_OF_BUFFER_CHAR 0
00113 
00114 /* Size of default input buffer. */
00115 #define YY_BUF_SIZE 16384
00116 
00117 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00118 
00119 extern int yyleng;
00120 extern FILE *yyin, *yyout;
00121 
00122 #define EOB_ACT_CONTINUE_SCAN 0
00123 #define EOB_ACT_END_OF_FILE 1
00124 #define EOB_ACT_LAST_MATCH 2
00125 
00126 /* The funky do-while in the following #define is used to turn the definition
00127  * int a single C statement (which needs a semi-colon terminator).  This
00128  * avoids problems with code like:
00129  *
00130  *  if ( condition_holds )
00131  *      yyless( 5 );
00132  *  else
00133  *      do_something_else();
00134  *
00135  * Prior to using the do-while the compiler would get upset at the
00136  * "else" because it interpreted the "if" statement as being all
00137  * done when it reached the ';' after the yyless() call.
00138  */
00139 
00140 /* Return all but the first 'n' matched characters back to the input stream. */
00141 
00142 #define yyless(n) \
00143     do \
00144         { \
00145         /* Undo effects of setting up yytext. */ \
00146         *yy_cp = yy_hold_char; \
00147         YY_RESTORE_YY_MORE_OFFSET \
00148         yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
00149         YY_DO_BEFORE_ACTION; /* set up yytext again */ \
00150         } \
00151     while ( 0 )
00152 
00153 #define unput(c) yyunput( c, yytext_ptr )
00154 
00155 /* The following is because we cannot portably get our hands on size_t
00156  * (without autoconf's help, which isn't available because we want
00157  * flex-generated scanners to compile on their own).
00158  */
00159 typedef unsigned int yy_size_t;
00160 
00161 
00162 struct yy_buffer_state
00163     {
00164     FILE *yy_input_file;
00165 
00166     char *yy_ch_buf;        /* input buffer */
00167     char *yy_buf_pos;       /* current position in input buffer */
00168 
00169     /* Size of input buffer in bytes, not including room for EOB
00170      * characters.
00171      */
00172     yy_size_t yy_buf_size;
00173 
00174     /* Number of characters read into yy_ch_buf, not including EOB
00175      * characters.
00176      */
00177     int yy_n_chars;
00178 
00179     /* Whether we "own" the buffer - i.e., we know we created it,
00180      * and can realloc() it to grow it, and should free() it to
00181      * delete it.
00182      */
00183     int yy_is_our_buffer;
00184 
00185     /* Whether this is an "interactive" input source; if so, and
00186      * if we're using stdio for input, then we want to use getc()
00187      * instead of fread(), to make sure we stop fetching input after
00188      * each newline.
00189      */
00190     int yy_is_interactive;
00191 
00192     /* Whether we're considered to be at the beginning of a line.
00193      * If so, '^' rules will be active on the next match, otherwise
00194      * not.
00195      */
00196     int yy_at_bol;
00197 
00198     /* Whether to try to fill the input buffer when we reach the
00199      * end of it.
00200      */
00201     int yy_fill_buffer;
00202 
00203     int yy_buffer_status;
00204 #define YY_BUFFER_NEW 0
00205 #define YY_BUFFER_NORMAL 1
00206     /* When an EOF's been seen but there's still some text to process
00207      * then we mark the buffer as YY_EOF_PENDING, to indicate that we
00208      * shouldn't try reading from the input source any more.  We might
00209      * still have a bunch of tokens to match, though, because of
00210      * possible backing-up.
00211      *
00212      * When we actually see the EOF, we change the status to "new"
00213      * (via yyrestart()), so that the user can continue scanning by
00214      * just pointing yyin at a new input file.
00215      */
00216 #define YY_BUFFER_EOF_PENDING 2
00217     };
00218 
00219 static YY_BUFFER_STATE yy_current_buffer = 0;
00220 
00221 /* We provide macros for accessing buffer states in case in the
00222  * future we want to put the buffer states in a more general
00223  * "scanner state".
00224  */
00225 #define YY_CURRENT_BUFFER yy_current_buffer
00226 
00227 
00228 /* yy_hold_char holds the character lost when yytext is formed. */
00229 static char yy_hold_char;
00230 
00231 static int yy_n_chars;      /* number of characters read into yy_ch_buf */
00232 
00233 
00234 int yyleng;
00235 
00236 /* Points to current character in buffer. */
00237 static char *yy_c_buf_p = (char *) 0;
00238 static int yy_init = 1;     /* whether we need to initialize */
00239 static int yy_start = 0;    /* start state number */
00240 
00241 /* Flag which is used to allow yywrap()'s to do buffer switches
00242  * instead of setting up a fresh yyin.  A bit of a hack ...
00243  */
00244 static int yy_did_buffer_switch_on_eof;
00245 
00246 void yyrestart YY_PROTO(( FILE *input_file ));
00247 
00248 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
00249 void yy_load_buffer_state YY_PROTO(( void ));
00250 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
00251 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
00252 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
00253 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
00254 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
00255 
00256 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
00257 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
00258 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
00259 
00260 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
00261 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
00262 static void yy_flex_free YY_PROTO(( void * ));
00263 
00264 #define yy_new_buffer yy_create_buffer
00265 
00266 #define yy_set_interactive(is_interactive) \
00267     { \
00268     if ( ! yy_current_buffer ) \
00269         yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
00270     yy_current_buffer->yy_is_interactive = is_interactive; \
00271     }
00272 
00273 #define yy_set_bol(at_bol) \
00274     { \
00275     if ( ! yy_current_buffer ) \
00276         yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
00277     yy_current_buffer->yy_at_bol = at_bol; \
00278     }
00279 
00280 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
00281 
00282 typedef unsigned char YY_CHAR;
00283 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
00284 typedef int yy_state_type;
00285 extern char *yytext;
00286 #define yytext_ptr yytext
00287 
00288 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
00289 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
00290 static int yy_get_next_buffer YY_PROTO(( void ));
00291 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
00292 
00293 /* Done after the current pattern has been matched and before the
00294  * corresponding action - sets up yytext.
00295  */
00296 #define YY_DO_BEFORE_ACTION \
00297     yytext_ptr = yy_bp; \
00298     yyleng = (int) (yy_cp - yy_bp); \
00299     yy_hold_char = *yy_cp; \
00300     *yy_cp = '\0'; \
00301     yy_c_buf_p = yy_cp;
00302 
00303 #define YY_NUM_RULES 9
00304 #define YY_END_OF_BUFFER 10
00305 static yyconst short int yy_accept[30] =
00306     {   0,
00307         0,    0,   10,    4,    7,    6,    3,    8,    3,    4,
00308         4,    0,    5,    0,    0,    4,    5,    0,    4,    0,
00309         4,    0,    4,    0,    4,    0,    2,    1,    0
00310     } ;
00311 
00312 static yyconst int yy_ec[256] =
00313     {   0,
00314         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
00315         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00316         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00317         1,    2,    1,    4,    1,    1,    1,    1,    1,    1,
00318         1,    1,    1,    1,    1,    1,    5,    1,    1,    1,
00319         1,    1,    1,    1,    1,    1,    1,    1,    1,    6,
00320         6,    6,    1,    1,    8,    1,    9,    1,    1,    1,
00321         1,    1,    1,    1,    1,    1,    1,   10,   11,    1,
00322         1,    1,    1,   12,   13,    1,    1,    1,    1,    1,
00323         1,    7,    1,    1,    1,    1,    8,    1,    9,    1,
00324 
00325         1,    1,    1,    1,    1,    1,    1,    1,    1,   10,
00326        11,    1,    1,    1,    1,   12,   13,    1,    1,    1,
00327         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00328         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00329         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00330         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00331         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00332         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00333         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00334         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00335 
00336         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00337         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00338         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00339         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00340         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00341         1,    1,    1,    1,    1
00342     } ;
00343 
00344 static yyconst int yy_meta[14] =
00345     {   0,
00346         1,    2,    2,    2,    2,    2,    1,    1,    1,    1,
00347         1,    1,    1
00348     } ;
00349 
00350 static yyconst short int yy_base[32] =
00351     {   0,
00352         0,    0,   38,    0,   39,   39,   10,   29,   39,   27,
00353         0,   14,   39,   18,   26,   25,   22,   24,   21,   17,
00354        14,   11,   13,   10,    7,    4,    0,   39,   39,   14,
00355        29
00356     } ;
00357 
00358 static yyconst short int yy_def[32] =
00359     {   0,
00360        29,    1,   29,   30,   29,   29,   31,   29,   29,   30,
00361        30,   31,   29,   31,   29,   30,   31,   29,   30,   29,
00362        30,   29,   30,   29,   30,   29,   30,   29,    0,   29,
00363        29
00364     } ;
00365 
00366 static yyconst short int yy_nxt[53] =
00367     {   0,
00368         4,    5,    6,    7,    8,    9,    4,   10,    4,    4,
00369         4,    4,    4,   13,   11,   28,   14,   13,   27,   26,
00370        14,   17,   25,   24,   14,   13,   23,   22,   14,   12,
00371        12,   21,   20,   19,   18,   16,   15,   29,    3,   29,
00372        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
00373        29,   29
00374     } ;
00375 
00376 static yyconst short int yy_chk[53] =
00377     {   0,
00378         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00379         1,    1,    1,    7,   30,   26,    7,   12,   25,   24,
00380        12,   14,   23,   22,   14,   17,   21,   20,   17,   31,
00381        31,   19,   18,   16,   15,   10,    8,    3,   29,   29,
00382        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
00383        29,   29
00384     } ;
00385 
00386 static yy_state_type yy_last_accepting_state;
00387 static char *yy_last_accepting_cpos;
00388 
00389 /* The intent behind this definition is that it'll catch
00390  * any uses of REJECT which flex missed.
00391  */
00392 #define REJECT reject_used_but_not_detected
00393 #define yymore() yymore_used_but_not_detected
00394 #define YY_MORE_ADJ 0
00395 #define YY_RESTORE_YY_MORE_OFFSET
00396 char *yytext;
00397 #line 1 "account_scanner.l"
00398 #define INITIAL 0
00399 #line 4 "account_scanner.l"
00400     #include<string.h>
00401     #include<gtk/gtk.h>
00402     #include "value_pair.h"
00403     #include "account.h"
00404     #include "account_parser.h"
00405     #include<stdio.h>
00406 
00407     #define accountwrap() 1
00408     int Line = 1;
00409 
00410 /* Macros after this point can all be overridden by user definitions in
00411  * section 1.
00412  */
00413 
00414 #ifndef YY_SKIP_YYWRAP
00415 #ifdef __cplusplus
00416 extern "C" int yywrap YY_PROTO(( void ));
00417 #else
00418 extern int yywrap YY_PROTO(( void ));
00419 #endif
00420 #endif
00421 
00422 #ifndef YY_NO_UNPUT
00423 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
00424 #endif
00425 
00426 #ifndef yytext_ptr
00427 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
00428 #endif
00429 
00430 #ifdef YY_NEED_STRLEN
00431 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
00432 #endif
00433 
00434 #ifndef YY_NO_INPUT
00435 #ifdef __cplusplus
00436 static int yyinput YY_PROTO(( void ));
00437 #else
00438 static int input YY_PROTO(( void ));
00439 #endif
00440 #endif
00441 
00442 #if YY_STACK_USED
00443 static int yy_start_stack_ptr = 0;
00444 static int yy_start_stack_depth = 0;
00445 static int *yy_start_stack = 0;
00446 #ifndef YY_NO_PUSH_STATE
00447 static void yy_push_state YY_PROTO(( int new_state ));
00448 #endif
00449 #ifndef YY_NO_POP_STATE
00450 static void yy_pop_state YY_PROTO(( void ));
00451 #endif
00452 #ifndef YY_NO_TOP_STATE
00453 static int yy_top_state YY_PROTO(( void ));
00454 #endif
00455 
00456 #else
00457 #define YY_NO_PUSH_STATE 1
00458 #define YY_NO_POP_STATE 1
00459 #define YY_NO_TOP_STATE 1
00460 #endif
00461 
00462 #ifdef YY_MALLOC_DECL
00463 YY_MALLOC_DECL
00464 #else
00465 #if __STDC__
00466 #ifndef __cplusplus
00467 #include <stdlib.h>
00468 #endif
00469 #else
00470 /* Just try to get by without declaring the routines.  This will fail
00471  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
00472  * or sizeof(void*) != sizeof(int).
00473  */
00474 #endif
00475 #endif
00476 
00477 /* Amount of stuff to slurp up with each read. */
00478 #ifndef YY_READ_BUF_SIZE
00479 #define YY_READ_BUF_SIZE 8192
00480 #endif
00481 
00482 /* Copy whatever the last rule matched to the standard output. */
00483 
00484 #ifndef ECHO
00485 /* This used to be an fputs(), but since the string might contain NUL's,
00486  * we now use fwrite().
00487  */
00488 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
00489 #endif
00490 
00491 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
00492  * is returned in "result".
00493  */
00494 #ifndef YY_INPUT
00495 #define YY_INPUT(buf,result,max_size) \
00496     if ( yy_current_buffer->yy_is_interactive ) \
00497         { \
00498         int c = '*', n; \
00499         for ( n = 0; n < max_size && \
00500                  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
00501             buf[n] = (char) c; \
00502         if ( c == '\n' ) \
00503             buf[n++] = (char) c; \
00504         if ( c == EOF && ferror( yyin ) ) \
00505             YY_FATAL_ERROR( "input in flex scanner failed" ); \
00506         result = n; \
00507         } \
00508     else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
00509           && ferror( yyin ) ) \
00510         YY_FATAL_ERROR( "input in flex scanner failed" );
00511 #endif
00512 
00513 /* No semi-colon after return; correct usage is to write "yyterminate();" -
00514  * we don't want an extra ';' after the "return" because that will cause
00515  * some compilers to complain about unreachable statements.
00516  */
00517 #ifndef yyterminate
00518 #define yyterminate() return YY_NULL
00519 #endif
00520 
00521 /* Number of entries by which start-condition stack grows. */
00522 #ifndef YY_START_STACK_INCR
00523 #define YY_START_STACK_INCR 25
00524 #endif
00525 
00526 /* Report a fatal error. */
00527 #ifndef YY_FATAL_ERROR
00528 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
00529 #endif
00530 
00531 /* Default declaration of generated scanner - a define so the user can
00532  * easily add parameters.
00533  */
00534 #ifndef YY_DECL
00535 #define YY_DECL int yylex YY_PROTO(( void ))
00536 #endif
00537 
00538 /* Code executed at the beginning of each rule, after yytext and yyleng
00539  * have been set up.
00540  */
00541 #ifndef YY_USER_ACTION
00542 #define YY_USER_ACTION
00543 #endif
00544 
00545 /* Code executed at the end of each rule. */
00546 #ifndef YY_BREAK
00547 #define YY_BREAK break;
00548 #endif
00549 
00550 #define YY_RULE_SETUP \
00551     YY_USER_ACTION
00552 
00553 YY_DECL
00554     {
00555     register yy_state_type yy_current_state;
00556     register char *yy_cp = NULL, *yy_bp = NULL;
00557     register int yy_act;
00558 
00559 #line 14 "account_scanner.l"
00560 
00561 
00562     if ( yy_init )
00563         {
00564         yy_init = 0;
00565 
00566 #ifdef YY_USER_INIT
00567         YY_USER_INIT;
00568 #endif
00569 
00570         if ( ! yy_start )
00571             yy_start = 1;   /* first start state */
00572 
00573         if ( ! yyin )
00574             yyin = stdin;
00575 
00576         if ( ! yyout )
00577             yyout = stdout;
00578 
00579         if ( ! yy_current_buffer )
00580             yy_current_buffer =
00581                 yy_create_buffer( yyin, YY_BUF_SIZE );
00582 
00583         yy_load_buffer_state();
00584         }
00585 
00586     while ( 1 )     /* loops until end-of-file is reached */
00587         {
00588         yy_cp = yy_c_buf_p;
00589 
00590         /* Support of yytext. */
00591         *yy_cp = yy_hold_char;
00592 
00593         /* yy_bp points to the position in yy_ch_buf of the start of
00594          * the current run.
00595          */
00596         yy_bp = yy_cp;
00597 
00598         yy_current_state = yy_start;
00599 yy_match:
00600         do
00601             {
00602             register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
00603             if ( yy_accept[yy_current_state] )
00604                 {
00605                 yy_last_accepting_state = yy_current_state;
00606                 yy_last_accepting_cpos = yy_cp;
00607                 }
00608             while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
00609                 {
00610                 yy_current_state = (int) yy_def[yy_current_state];
00611                 if ( yy_current_state >= 30 )
00612                     yy_c = yy_meta[(unsigned int) yy_c];
00613                 }
00614             yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
00615             ++yy_cp;
00616             }
00617         while ( yy_base[yy_current_state] != 39 );
00618 
00619 yy_find_action:
00620         yy_act = yy_accept[yy_current_state];
00621         if ( yy_act == 0 )
00622             { /* have to back up */
00623             yy_cp = yy_last_accepting_cpos;
00624             yy_current_state = yy_last_accepting_state;
00625             yy_act = yy_accept[yy_current_state];
00626             }
00627 
00628         YY_DO_BEFORE_ACTION;
00629 
00630 
00631 do_action:  /* This label is used only to access EOF actions. */
00632 
00633 
00634         switch ( yy_act )
00635     { /* beginning of action switch */
00636             case 0: /* must back up */
00637             /* undo the effects of YY_DO_BEFORE_ACTION */
00638             *yy_cp = yy_hold_char;
00639             yy_cp = yy_last_accepting_cpos;
00640             yy_current_state = yy_last_accepting_state;
00641             goto yy_find_action;
00642 
00643 case 1:
00644 YY_RULE_SETUP
00645 #line 15 "account_scanner.l"
00646 {return END_ACCOUNT;}
00647     YY_BREAK
00648 case 2:
00649 YY_RULE_SETUP
00650 #line 16 "account_scanner.l"
00651 {return ACCOUNT;}
00652     YY_BREAK
00653 case 3:
00654 YY_RULE_SETUP
00655 #line 17 "account_scanner.l"
00656 return accounttext[0];
00657     YY_BREAK
00658 case 4:
00659 YY_RULE_SETUP
00660 #line 18 "account_scanner.l"
00661 {accountlval.string = strdup(accounttext); return IDENTIFIER;}
00662     YY_BREAK
00663 case 5:
00664 YY_RULE_SETUP
00665 #line 19 "account_scanner.l"
00666 { accountlval.string = strdup(accounttext+1); accountlval.string[strlen(accountlval.string)-1] = '\0'; return STRING; }
00667     YY_BREAK
00668 case 6:
00669 YY_RULE_SETUP
00670 #line 20 "account_scanner.l"
00671 Line++;
00672     YY_BREAK
00673 case 7:
00674 YY_RULE_SETUP
00675 #line 21 "account_scanner.l"
00676 { }
00677     YY_BREAK
00678 case 8:
00679 YY_RULE_SETUP
00680 #line 22 "account_scanner.l"
00681 printf("Lexical error on %c\n", accounttext[0]);
00682     YY_BREAK
00683 case 9:
00684 YY_RULE_SETUP
00685 #line 24 "account_scanner.l"
00686 ECHO;
00687     YY_BREAK
00688 case YY_STATE_EOF(INITIAL):
00689     yyterminate();
00690 
00691     case YY_END_OF_BUFFER:
00692         {
00693         /* Amount of text matched not including the EOB char. */
00694         int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
00695 
00696         /* Undo the effects of YY_DO_BEFORE_ACTION. */
00697         *yy_cp = yy_hold_char;
00698         YY_RESTORE_YY_MORE_OFFSET
00699 
00700         if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
00701             {
00702             /* We're scanning a new file or input source.  It's
00703              * possible that this happened because the user
00704              * just pointed yyin at a new source and called
00705              * yylex().  If so, then we have to assure
00706              * consistency between yy_current_buffer and our
00707              * globals.  Here is the right place to do so, because
00708              * this is the first action (other than possibly a
00709              * back-up) that will match for the new input source.
00710              */
00711             yy_n_chars = yy_current_buffer->yy_n_chars;
00712             yy_current_buffer->yy_input_file = yyin;
00713             yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
00714             }
00715 
00716         /* Note that here we test for yy_c_buf_p "<=" to the position
00717          * of the first EOB in the buffer, since yy_c_buf_p will
00718          * already have been incremented past the NUL character
00719          * (since all states make transitions on EOB to the
00720          * end-of-buffer state).  Contrast this with the test
00721          * in input().
00722          */
00723         if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
00724             { /* This was really a NUL. */
00725             yy_state_type yy_next_state;
00726 
00727             yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
00728 
00729             yy_current_state = yy_get_previous_state();
00730 
00731             /* Okay, we're now positioned to make the NUL
00732              * transition.  We couldn't have
00733              * yy_get_previous_state() go ahead and do it
00734              * for us because it doesn't know how to deal
00735              * with the possibility of jamming (and we don't
00736              * want to build jamming into it because then it
00737              * will run more slowly).
00738              */
00739 
00740             yy_next_state = yy_try_NUL_trans( yy_current_state );
00741 
00742             yy_bp = yytext_ptr + YY_MORE_ADJ;
00743 
00744             if ( yy_next_state )
00745                 {
00746                 /* Consume the NUL. */
00747                 yy_cp = ++yy_c_buf_p;
00748                 yy_current_state = yy_next_state;
00749                 goto yy_match;
00750                 }
00751 
00752             else
00753                 {
00754                 yy_cp = yy_c_buf_p;
00755                 goto yy_find_action;
00756                 }
00757             }
00758 
00759         else switch ( yy_get_next_buffer() )
00760             {
00761             case EOB_ACT_END_OF_FILE:
00762                 {
00763                 yy_did_buffer_switch_on_eof = 0;
00764 
00765                 if ( yywrap() )
00766                     {
00767                     /* Note: because we've taken care in
00768                      * yy_get_next_buffer() to have set up
00769                      * yytext, we can now set up
00770                      * yy_c_buf_p so that if some total
00771                      * hoser (like flex itself) wants to
00772                      * call the scanner after we return the
00773                      * YY_NULL, it'll still work - another
00774                      * YY_NULL will get returned.
00775                      */
00776                     yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
00777 
00778                     yy_act = YY_STATE_EOF(YY_START);
00779                     goto do_action;
00780                     }
00781 
00782                 else
00783                     {
00784                     if ( ! yy_did_buffer_switch_on_eof )
00785                         YY_NEW_FILE;
00786                     }
00787                 break;
00788                 }
00789 
00790             case EOB_ACT_CONTINUE_SCAN:
00791                 yy_c_buf_p =
00792                     yytext_ptr + yy_amount_of_matched_text;
00793 
00794                 yy_current_state = yy_get_previous_state();
00795 
00796                 yy_cp = yy_c_buf_p;
00797                 yy_bp = yytext_ptr + YY_MORE_ADJ;
00798                 goto yy_match;
00799 
00800             case EOB_ACT_LAST_MATCH:
00801                 yy_c_buf_p =
00802                 &yy_current_buffer->yy_ch_buf[yy_n_chars];
00803 
00804                 yy_current_state = yy_get_previous_state();
00805 
00806                 yy_cp = yy_c_buf_p;
00807                 yy_bp = yytext_ptr + YY_MORE_ADJ;
00808                 goto yy_find_action;
00809             }
00810         break;
00811         }
00812 
00813     default:
00814         YY_FATAL_ERROR(
00815             "fatal flex scanner internal error--no action found" );
00816     } /* end of action switch */
00817         } /* end of scanning one token */
00818     } /* end of yylex */
00819 
00820 
00821 /* yy_get_next_buffer - try to read in a new buffer
00822  *
00823  * Returns a code representing an action:
00824  *  EOB_ACT_LAST_MATCH -
00825  *  EOB_ACT_CONTINUE_SCAN - continue scanning from current position
00826  *  EOB_ACT_END_OF_FILE - end of file
00827  */
00828 
00829 static int yy_get_next_buffer()
00830     {
00831     register char *dest = yy_current_buffer->yy_ch_buf;
00832     register char *source = yytext_ptr;
00833     register int number_to_move, i;
00834     int ret_val;
00835 
00836     if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
00837         YY_FATAL_ERROR(
00838         "fatal flex scanner internal error--end of buffer missed" );
00839 
00840     if ( yy_current_buffer->yy_fill_buffer == 0 )
00841         { /* Don't try to fill the buffer, so this is an EOF. */
00842         if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
00843             {
00844             /* We matched a single character, the EOB, so
00845              * treat this as a final EOF.
00846              */
00847             return EOB_ACT_END_OF_FILE;
00848             }
00849 
00850         else
00851             {
00852             /* We matched some text prior to the EOB, first
00853              * process it.
00854              */
00855             return EOB_ACT_LAST_MATCH;
00856             }
00857         }
00858 
00859     /* Try to read more data. */
00860 
00861     /* First move last chars to start of buffer. */
00862     number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
00863 
00864     for ( i = 0; i < number_to_move; ++i )
00865         *(dest++) = *(source++);
00866 
00867     if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
00868         /* don't do the read, it's not guaranteed to return an EOF,
00869          * just force an EOF
00870          */
00871         yy_current_buffer->yy_n_chars = yy_n_chars = 0;
00872 
00873     else
00874         {
00875         int num_to_read =
00876             yy_current_buffer->yy_buf_size - number_to_move - 1;
00877 
00878         while ( num_to_read <= 0 )
00879             { /* Not enough room in the buffer - grow it. */
00880 #ifdef YY_USES_REJECT
00881             YY_FATAL_ERROR(
00882 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
00883 #else
00884 
00885             /* just a shorter name for the current buffer */
00886             YY_BUFFER_STATE b = yy_current_buffer;
00887 
00888             int yy_c_buf_p_offset =
00889                 (int) (yy_c_buf_p - b->yy_ch_buf);
00890 
00891             if ( b->yy_is_our_buffer )
00892                 {
00893                 int new_size = b->yy_buf_size * 2;
00894 
00895                 if ( new_size <= 0 )
00896                     b->yy_buf_size += b->yy_buf_size / 8;
00897                 else
00898                     b->yy_buf_size *= 2;
00899 
00900                 b->yy_ch_buf = (char *)
00901                     /* Include room in for 2 EOB chars. */
00902                     yy_flex_realloc( (void *) b->yy_ch_buf,
00903                              b->yy_buf_size + 2 );
00904                 }
00905             else
00906                 /* Can't grow it, we don't own it. */
00907                 b->yy_ch_buf = 0;
00908 
00909             if ( ! b->yy_ch_buf )
00910                 YY_FATAL_ERROR(
00911                 "fatal error - scanner input buffer overflow" );
00912 
00913             yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
00914 
00915             num_to_read = yy_current_buffer->yy_buf_size -
00916                         number_to_move - 1;
00917 #endif
00918             }
00919 
00920         if ( num_to_read > YY_READ_BUF_SIZE )
00921             num_to_read = YY_READ_BUF_SIZE;
00922 
00923         /* Read in more data. */
00924         YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
00925             yy_n_chars, num_to_read );
00926 
00927         yy_current_buffer->yy_n_chars = yy_n_chars;
00928         }
00929 
00930     if ( yy_n_chars == 0 )
00931         {
00932         if ( number_to_move == YY_MORE_ADJ )
00933             {
00934             ret_val = EOB_ACT_END_OF_FILE;
00935             yyrestart( yyin );
00936             }
00937 
00938         else
00939             {
00940             ret_val = EOB_ACT_LAST_MATCH;
00941             yy_current_buffer->yy_buffer_status =
00942                 YY_BUFFER_EOF_PENDING;
00943             }
00944         }
00945 
00946     else
00947         ret_val = EOB_ACT_CONTINUE_SCAN;
00948 
00949     yy_n_chars += number_to_move;
00950     yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
00951     yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
00952 
00953     yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
00954 
00955     return ret_val;
00956     }
00957 
00958 
00959 /* yy_get_previous_state - get the state just before the EOB char was reached */
00960 
00961 static yy_state_type yy_get_previous_state()
00962     {
00963     register yy_state_type yy_current_state;
00964     register char *yy_cp;
00965 
00966     yy_current_state = yy_start;
00967 
00968     for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
00969         {
00970         register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
00971         if ( yy_accept[yy_current_state] )
00972             {
00973             yy_last_accepting_state = yy_current_state;
00974             yy_last_accepting_cpos = yy_cp;
00975             }
00976         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
00977             {
00978             yy_current_state = (int) yy_def[yy_current_state];
00979             if ( yy_current_state >= 30 )
00980                 yy_c = yy_meta[(unsigned int) yy_c];
00981             }
00982         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
00983         }
00984 
00985     return yy_current_state;
00986     }
00987 
00988 
00989 /* yy_try_NUL_trans - try to make a transition on the NUL character
00990  *
00991  * synopsis
00992  *  next_state = yy_try_NUL_trans( current_state );
00993  */
00994 
00995 #ifdef YY_USE_PROTOS
00996 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
00997 #else
00998 static yy_state_type yy_try_NUL_trans( yy_current_state )
00999 yy_state_type yy_current_state;
01000 #endif
01001     {
01002     register int yy_is_jam;
01003     register char *yy_cp = yy_c_buf_p;
01004 
01005     register YY_CHAR yy_c = 1;
01006     if ( yy_accept[yy_current_state] )
01007         {
01008         yy_last_accepting_state = yy_current_state;
01009         yy_last_accepting_cpos = yy_cp;
01010         }
01011     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01012         {
01013         yy_current_state = (int) yy_def[yy_current_state];
01014         if ( yy_current_state >= 30 )
01015             yy_c = yy_meta[(unsigned int) yy_c];
01016         }
01017     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01018     yy_is_jam = (yy_current_state == 29);
01019 
01020     return yy_is_jam ? 0 : yy_current_state;
01021     }
01022 
01023 
01024 #ifndef YY_NO_UNPUT
01025 #ifdef YY_USE_PROTOS
01026 static void yyunput( int c, register char *yy_bp )
01027 #else
01028 static void yyunput( c, yy_bp )
01029 int c;
01030 register char *yy_bp;
01031 #endif
01032     {
01033     register char *yy_cp = yy_c_buf_p;
01034 
01035     /* undo effects of setting up yytext */
01036     *yy_cp = yy_hold_char;
01037 
01038     if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
01039         { /* need to shift things up to make room */
01040         /* +2 for EOB chars. */
01041         register int number_to_move = yy_n_chars + 2;
01042         register char *dest = &yy_current_buffer->yy_ch_buf[
01043                     yy_current_buffer->yy_buf_size + 2];
01044         register char *source =
01045                 &yy_current_buffer->yy_ch_buf[number_to_move];
01046 
01047         while ( source > yy_current_buffer->yy_ch_buf )
01048             *--dest = *--source;
01049 
01050         yy_cp += (int) (dest - source);
01051         yy_bp += (int) (dest - source);
01052         yy_current_buffer->yy_n_chars =
01053             yy_n_chars = yy_current_buffer->yy_buf_size;
01054 
01055         if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
01056             YY_FATAL_ERROR( "flex scanner push-back overflow" );
01057         }
01058 
01059     *--yy_cp = (char) c;
01060 
01061 
01062     yytext_ptr = yy_bp;
01063     yy_hold_char = *yy_cp;
01064     yy_c_buf_p = yy_cp;
01065     }
01066 #endif  /* ifndef YY_NO_UNPUT */
01067 
01068 
01069 #ifdef __cplusplus
01070 static int yyinput()
01071 #else
01072 static int input()
01073 #endif
01074     {
01075     int c;
01076 
01077     *yy_c_buf_p = yy_hold_char;
01078 
01079     if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
01080         {
01081         /* yy_c_buf_p now points to the character we want to return.
01082          * If this occurs *before* the EOB characters, then it's a
01083          * valid NUL; if not, then we've hit the end of the buffer.
01084          */
01085         if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
01086             /* This was really a NUL. */
01087             *yy_c_buf_p = '\0';
01088 
01089         else
01090             { /* need more input */
01091             int offset = yy_c_buf_p - yytext_ptr;
01092             ++yy_c_buf_p;
01093 
01094             switch ( yy_get_next_buffer() )
01095                 {
01096                 case EOB_ACT_LAST_MATCH:
01097                     /* This happens because yy_g_n_b()
01098                      * sees that we've accumulated a
01099                      * token and flags that we need to
01100                      * try matching the token before
01101                      * proceeding.  But for input(),
01102                      * there's no matching to consider.
01103                      * So convert the EOB_ACT_LAST_MATCH
01104                      * to EOB_ACT_END_OF_FILE.
01105                      */
01106 
01107                     /* Reset buffer status. */
01108                     yyrestart( yyin );
01109 
01110                     /* fall through */
01111 
01112                 case EOB_ACT_END_OF_FILE:
01113                     {
01114                     if ( yywrap() )
01115                         return EOF;
01116 
01117                     if ( ! yy_did_buffer_switch_on_eof )
01118                         YY_NEW_FILE;
01119 #ifdef __cplusplus
01120                     return yyinput();
01121 #else
01122                     return input();
01123 #endif
01124                     }
01125 
01126                 case EOB_ACT_CONTINUE_SCAN:
01127                     yy_c_buf_p = yytext_ptr + offset;
01128                     break;
01129                 }
01130             }
01131         }
01132 
01133     c = *(unsigned char *) yy_c_buf_p;  /* cast for 8-bit char's */
01134     *yy_c_buf_p = '\0'; /* preserve yytext */
01135     yy_hold_char = *++yy_c_buf_p;
01136 
01137 
01138     return c;
01139     }
01140 
01141 
01142 #ifdef YY_USE_PROTOS
01143 void yyrestart( FILE *input_file )
01144 #else
01145 void yyrestart( input_file )
01146 FILE *input_file;
01147 #endif
01148     {
01149     if ( ! yy_current_buffer )
01150         yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
01151 
01152     yy_init_buffer( yy_current_buffer, input_file );
01153     yy_load_buffer_state();
01154     }
01155 
01156 
01157 #ifdef YY_USE_PROTOS
01158 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
01159 #else
01160 void yy_switch_to_buffer( new_buffer )
01161 YY_BUFFER_STATE new_buffer;
01162 #endif
01163     {
01164     if ( yy_current_buffer == new_buffer )
01165         return;
01166 
01167     if ( yy_current_buffer )
01168         {
01169         /* Flush out information for old buffer. */
01170         *yy_c_buf_p = yy_hold_char;
01171         yy_current_buffer->yy_buf_pos = yy_c_buf_p;
01172         yy_current_buffer->yy_n_chars = yy_n_chars;
01173         }
01174 
01175     yy_current_buffer = new_buffer;
01176     yy_load_buffer_state();
01177 
01178     /* We don't actually know whether we did this switch during
01179      * EOF (yywrap()) processing, but the only time this flag
01180      * is looked at is after yywrap() is called, so it's safe
01181      * to go ahead and always set it.
01182      */
01183     yy_did_buffer_switch_on_eof = 1;
01184     }
01185 
01186 
01187 #ifdef YY_USE_PROTOS
01188 void yy_load_buffer_state( void )
01189 #else
01190 void yy_load_buffer_state()
01191 #endif
01192     {
01193     yy_n_chars = yy_current_buffer->yy_n_chars;
01194     yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
01195     yyin = yy_current_buffer->yy_input_file;
01196     yy_hold_char = *yy_c_buf_p;
01197     }
01198 
01199 
01200 #ifdef YY_USE_PROTOS
01201 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
01202 #else
01203 YY_BUFFER_STATE yy_create_buffer( file, size )
01204 FILE *file;
01205 int size;
01206 #endif
01207     {
01208     YY_BUFFER_STATE b;
01209 
01210     b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
01211     if ( ! b )
01212         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
01213 
01214     b->yy_buf_size = size;
01215 
01216     /* yy_ch_buf has to be 2 characters longer than the size given because
01217      * we need to put in 2 end-of-buffer characters.
01218      */
01219     b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
01220     if ( ! b->yy_ch_buf )
01221         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
01222 
01223     b->yy_is_our_buffer = 1;
01224 
01225     yy_init_buffer( b, file );
01226 
01227     return b;
01228     }
01229 
01230 
01231 #ifdef YY_USE_PROTOS
01232 void yy_delete_buffer( YY_BUFFER_STATE b )
01233 #else
01234 void yy_delete_buffer( b )
01235 YY_BUFFER_STATE b;
01236 #endif
01237     {
01238     if ( ! b )
01239         return;
01240 
01241     if ( b == yy_current_buffer )
01242         yy_current_buffer = (YY_BUFFER_STATE) 0;
01243 
01244     if ( b->yy_is_our_buffer )
01245         yy_flex_free( (void *) b->yy_ch_buf );
01246 
01247     yy_flex_free( (void *) b );
01248     }
01249 
01250 
01251 
01252 #ifdef YY_USE_PROTOS
01253 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
01254 #else
01255 void yy_init_buffer( b, file )
01256 YY_BUFFER_STATE b;
01257 FILE *file;
01258 #endif
01259 
01260 
01261     {
01262     yy_flush_buffer( b );
01263 
01264     b->yy_input_file = file;
01265     b->yy_fill_buffer = 1;
01266 
01267 #if YY_ALWAYS_INTERACTIVE
01268     b->yy_is_interactive = 1;
01269 #else
01270 #if YY_NEVER_INTERACTIVE
01271     b->yy_is_interactive = 0;
01272 #else
01273     b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
01274 #endif
01275 #endif
01276     }
01277 
01278 
01279 #ifdef YY_USE_PROTOS
01280 void yy_flush_buffer( YY_BUFFER_STATE b )
01281 #else
01282 void yy_flush_buffer( b )
01283 YY_BUFFER_STATE b;
01284 #endif
01285 
01286     {
01287     if ( ! b )
01288         return;
01289 
01290     b->yy_n_chars = 0;
01291 
01292     /* We always need two end-of-buffer characters.  The first causes
01293      * a transition to the end-of-buffer state.  The second causes
01294      * a jam in that state.
01295      */
01296     b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
01297     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
01298 
01299     b->yy_buf_pos = &b->yy_ch_buf[0];
01300 
01301     b->yy_at_bol = 1;
01302     b->yy_buffer_status = YY_BUFFER_NEW;
01303 
01304     if ( b == yy_current_buffer )
01305         yy_load_buffer_state();
01306     }
01307 
01308 
01309 #ifndef YY_NO_SCAN_BUFFER
01310 #ifdef YY_USE_PROTOS
01311 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
01312 #else
01313 YY_BUFFER_STATE yy_scan_buffer( base, size )
01314 char *base;
01315 yy_size_t size;
01316 #endif
01317     {
01318     YY_BUFFER_STATE b;
01319 
01320     if ( size < 2 ||
01321          base[size-2] != YY_END_OF_BUFFER_CHAR ||
01322          base[size-1] != YY_END_OF_BUFFER_CHAR )
01323         /* They forgot to leave room for the EOB's. */
01324         return 0;
01325 
01326     b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
01327     if ( ! b )
01328         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
01329 
01330     b->yy_buf_size = size - 2;  /* "- 2" to take care of EOB's */
01331     b->yy_buf_pos = b->yy_ch_buf = base;
01332     b->yy_is_our_buffer = 0;
01333     b->yy_input_file = 0;
01334     b->yy_n_chars = b->yy_buf_size;
01335     b->yy_is_interactive = 0;
01336     b->yy_at_bol = 1;
01337     b->yy_fill_buffer = 0;
01338     b->yy_buffer_status = YY_BUFFER_NEW;
01339 
01340     yy_switch_to_buffer( b );
01341 
01342     return b;
01343     }
01344 #endif
01345 
01346 
01347 #ifndef YY_NO_SCAN_STRING
01348 #ifdef YY_USE_PROTOS
01349 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
01350 #else
01351 YY_BUFFER_STATE yy_scan_string( yy_str )
01352 yyconst char *yy_str;
01353 #endif
01354     {
01355     int len;
01356     for ( len = 0; yy_str[len]; ++len )
01357         ;
01358 
01359     return yy_scan_bytes( yy_str, len );
01360     }
01361 #endif
01362 
01363 
01364 #ifndef YY_NO_SCAN_BYTES
01365 #ifdef YY_USE_PROTOS
01366 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
01367 #else
01368 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
01369 yyconst char *bytes;
01370 int len;
01371 #endif
01372     {
01373     YY_BUFFER_STATE b;
01374     char *buf;
01375     yy_size_t n;
01376     int i;
01377 
01378     /* Get memory for full buffer, including space for trailing EOB's. */
01379     n = len + 2;
01380     buf = (char *) yy_flex_alloc( n );
01381     if ( ! buf )
01382         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
01383 
01384     for ( i = 0; i < len; ++i )
01385         buf[i] = bytes[i];
01386 
01387     buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
01388 
01389     b = yy_scan_buffer( buf, n );
01390     if ( ! b )
01391         YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
01392 
01393     /* It's okay to grow etc. this buffer, and we should throw it
01394      * away when we're done.
01395      */
01396     b->yy_is_our_buffer = 1;
01397 
01398     return b;
01399     }
01400 #endif
01401 
01402 
01403 #ifndef YY_NO_PUSH_STATE
01404 #ifdef YY_USE_PROTOS
01405 static void yy_push_state( int new_state )
01406 #else
01407 static void yy_push_state( new_state )
01408 int new_state;
01409 #endif
01410     {
01411     if ( yy_start_stack_ptr >= yy_start_stack_depth )
01412         {
01413         yy_size_t new_size;
01414 
01415         yy_start_stack_depth += YY_START_STACK_INCR;
01416         new_size = yy_start_stack_depth * sizeof( int );
01417 
01418         if ( ! yy_start_stack )
01419             yy_start_stack = (int *) yy_flex_alloc( new_size );
01420 
01421         else
01422             yy_start_stack = (int *) yy_flex_realloc(
01423                     (void *) yy_start_stack, new_size );
01424 
01425         if ( ! yy_start_stack )
01426             YY_FATAL_ERROR(
01427             "out of memory expanding start-condition stack" );
01428         }
01429 
01430     yy_start_stack[yy_start_stack_ptr++] = YY_START;
01431 
01432     BEGIN(new_state);
01433     }
01434 #endif
01435 
01436 
01437 #ifndef YY_NO_POP_STATE
01438 static void yy_pop_state()
01439     {
01440     if ( --yy_start_stack_ptr < 0 )
01441         YY_FATAL_ERROR( "start-condition stack underflow" );
01442 
01443     BEGIN(yy_start_stack[yy_start_stack_ptr]);
01444     }
01445 #endif
01446 
01447 
01448 #ifndef YY_NO_TOP_STATE
01449 static int yy_top_state()
01450     {
01451     return yy_start_stack[yy_start_stack_ptr - 1];
01452     }
01453 #endif
01454 
01455 #ifndef YY_EXIT_FAILURE
01456 #define YY_EXIT_FAILURE 2
01457 #endif
01458 
01459 #ifdef YY_USE_PROTOS
01460 static void yy_fatal_error( yyconst char msg[] )
01461 #else
01462 static void yy_fatal_error( msg )
01463 char msg[];
01464 #endif
01465     {
01466     (void) fprintf( stderr, "%s\n", msg );
01467     exit( YY_EXIT_FAILURE );
01468     }
01469 
01470 
01471 
01472 /* Redefine yyless() so it works in section 3 code. */
01473 
01474 #undef yyless
01475 #define yyless(n) \
01476     do \
01477         { \
01478         /* Undo effects of setting up yytext. */ \
01479         yytext[yyleng] = yy_hold_char; \
01480         yy_c_buf_p = yytext + n; \
01481         yy_hold_char = *yy_c_buf_p; \
01482         *yy_c_buf_p = '\0'; \
01483         yyleng = n; \
01484         } \
01485     while ( 0 )
01486 
01487 
01488 /* Internal utility routines. */
01489 
01490 #ifndef yytext_ptr
01491 #ifdef YY_USE_PROTOS
01492 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
01493 #else
01494 static void yy_flex_strncpy( s1, s2, n )
01495 char *s1;
01496 yyconst char *s2;
01497 int n;
01498 #endif
01499     {
01500     register int i;
01501     for ( i = 0; i < n; ++i )
01502         s1[i] = s2[i];
01503     }
01504 #endif
01505 
01506 #ifdef YY_NEED_STRLEN
01507 #ifdef YY_USE_PROTOS
01508 static int yy_flex_strlen( yyconst char *s )
01509 #else
01510 static int yy_flex_strlen( s )
01511 yyconst char *s;
01512 #endif
01513     {
01514     register int n;
01515     for ( n = 0; s[n]; ++n )
01516         ;
01517 
01518     return n;
01519     }
01520 #endif
01521 
01522 
01523 #ifdef YY_USE_PROTOS
01524 static void *yy_flex_alloc( yy_size_t size )
01525 #else
01526 static void *yy_flex_alloc( size )
01527 yy_size_t size;
01528 #endif
01529     {
01530     return (void *) malloc( size );
01531     }
01532 
01533 #ifdef YY_USE_PROTOS
01534 static void *yy_flex_realloc( void *ptr, yy_size_t size )
01535 #else
01536 static void *yy_flex_realloc( ptr, size )
01537 void *ptr;
01538 yy_size_t size;
01539 #endif
01540     {
01541     /* The cast to (char *) in the following accommodates both
01542      * implementations that use char* generic pointers, and those
01543      * that use void* generic pointers.  It works with the latter
01544      * because both ANSI C and C++ allow castless assignment from
01545      * any pointer type to void*, and deal with argument conversions
01546      * as though doing an assignment.
01547      */
01548     return (void *) realloc( (char *) ptr, size );
01549     }
01550 
01551 #ifdef YY_USE_PROTOS
01552 static void yy_flex_free( void *ptr )
01553 #else
01554 static void yy_flex_free( ptr )
01555 void *ptr;
01556 #endif
01557     {
01558     free( ptr );
01559     }
01560 
01561 #if YY_MAIN
01562 int main()
01563     {
01564     yylex();
01565     return 0;
01566     }
01567 #endif
01568 #line 24 "account_scanner.l"

Contact: Andy Maloney     [Documentation generated by doxygen]