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

contact_scanner.c

Go to the documentation of this file.
00001 #define yy_create_buffer contact_create_buffer
00002 #define yy_delete_buffer contact_delete_buffer
00003 #define yy_scan_buffer contact_scan_buffer
00004 #define yy_scan_string contact_scan_string
00005 #define yy_scan_bytes contact_scan_bytes
00006 #define yy_flex_debug contact_flex_debug
00007 #define yy_init_buffer contact_init_buffer
00008 #define yy_flush_buffer contact_flush_buffer
00009 #define yy_load_buffer_state contact_load_buffer_state
00010 #define yy_switch_to_buffer contact_switch_to_buffer
00011 #define yyin contactin
00012 #define yyleng contactleng
00013 #define yylex contactlex
00014 #define yyout contactout
00015 #define yyrestart contactrestart
00016 #define yytext contacttext
00017 #define yywrap contactwrap
00018 
00019 /* A lexical scanner generated by flex */
00020 
00021 /* Scanner skeleton version:
00022  * $Header: /webcvs/ayttm/ayttm/SourceBrowser/contact__scanner_8c-source.html,v 1.2 2003/01/06 18:51:19 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 13
00304 #define YY_END_OF_BUFFER 14
00305 static yyconst short int yy_accept[60] =
00306     {   0,
00307         0,    0,   14,    8,   10,   11,    7,   12,    7,    7,
00308         8,    8,    0,    9,    0,    0,    0,    0,    0,    8,
00309         9,    0,    0,    0,    0,    0,    8,    0,    0,    0,
00310         0,    0,    8,    0,    0,    0,    0,    0,    8,    0,
00311         0,    0,    0,    0,    8,    0,    0,    0,    0,    3,
00312         2,    1,    0,    4,    0,    0,    5,    6,    0
00313     } ;
00314 
00315 static yyconst int yy_ec[256] =
00316     {   0,
00317         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
00318         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00319         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00320         1,    2,    1,    4,    1,    1,    1,    1,    1,    1,
00321         1,    1,    1,    1,    1,    1,    5,    1,    1,    1,
00322         1,    1,    1,    1,    1,    1,    1,    1,    1,    6,
00323         7,    8,    1,    1,   10,    1,   11,    1,    1,    1,
00324        12,    1,    1,    1,    1,    1,    1,   13,   14,   15,
00325         1,   16,    1,   17,   18,    1,    1,    1,    1,    1,
00326         1,    9,    1,    1,    1,    1,   10,    1,   11,    1,
00327 
00328         1,    1,   12,    1,    1,    1,    1,    1,    1,   13,
00329        14,   15,    1,   16,    1,   17,   18,    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         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00336         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00337         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00338 
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,    1,    1,    1,    1,    1,
00342         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00343         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00344         1,    1,    1,    1,    1
00345     } ;
00346 
00347 static yyconst int yy_meta[19] =
00348     {   0,
00349         1,    2,    2,    2,    2,    2,    2,    2,    1,    1,
00350         1,    1,    1,    1,    1,    1,    1,    1
00351     } ;
00352 
00353 static yyconst short int yy_base[62] =
00354     {   0,
00355         0,    0,   72,    0,   73,   73,   15,   61,   20,   73,
00356        59,    0,   17,   73,   18,   58,   17,   54,   51,   55,
00357        26,   54,   50,   47,   49,   47,   46,   45,   45,   43,
00358        39,   37,   36,   35,   35,   33,   40,   34,   35,   34,
00359        36,   30,   33,   35,   25,   24,   29,   31,   21,   73,
00360         0,   73,   17,   73,   25,   15,   73,   73,   73,   19,
00361        35
00362     } ;
00363 
00364 static yyconst short int yy_def[62] =
00365     {   0,
00366        59,    1,   59,   60,   59,   59,   61,   59,   59,   59,
00367        60,   60,   61,   59,   61,   59,   59,   59,   59,   60,
00368        61,   59,   59,   59,   59,   59,   60,   59,   59,   59,
00369        59,   59,   60,   59,   59,   59,   59,   59,   60,   59,
00370        59,   59,   59,   59,   60,   59,   59,   59,   59,   59,
00371        60,   59,   59,   59,   59,   59,   59,   59,    0,   59,
00372        59
00373     } ;
00374 
00375 static yyconst short int yy_nxt[92] =
00376     {   0,
00377         4,    5,    6,    7,    8,    9,   10,   10,    4,   11,
00378         4,    4,    4,    4,    4,    4,    4,    4,   14,   12,
00379        14,   21,   58,   15,   17,   15,   15,   23,   24,   14,
00380        18,   19,   57,   56,   15,   13,   13,   55,   54,   53,
00381        52,   51,   50,   49,   48,   47,   46,   45,   44,   43,
00382        42,   41,   40,   39,   38,   37,   36,   35,   34,   33,
00383        32,   31,   30,   29,   28,   27,   26,   25,   22,   20,
00384        16,   59,    3,   59,   59,   59,   59,   59,   59,   59,
00385        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
00386        59
00387 
00388     } ;
00389 
00390 static yyconst short int yy_chk[92] =
00391     {   0,
00392         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00393         1,    1,    1,    1,    1,    1,    1,    1,    7,   60,
00394        13,   15,   56,    7,    9,   13,   15,   17,   17,   21,
00395         9,    9,   55,   53,   21,   61,   61,   49,   48,   47,
00396        46,   45,   44,   43,   42,   41,   40,   39,   38,   37,
00397        36,   35,   34,   33,   32,   31,   30,   29,   28,   27,
00398        26,   25,   24,   23,   22,   20,   19,   18,   16,   11,
00399         8,    3,   59,   59,   59,   59,   59,   59,   59,   59,
00400        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
00401        59
00402 
00403     } ;
00404 
00405 static yy_state_type yy_last_accepting_state;
00406 static char *yy_last_accepting_cpos;
00407 
00408 /* The intent behind this definition is that it'll catch
00409  * any uses of REJECT which flex missed.
00410  */
00411 #define REJECT reject_used_but_not_detected
00412 #define yymore() yymore_used_but_not_detected
00413 #define YY_MORE_ADJ 0
00414 #define YY_RESTORE_YY_MORE_OFFSET
00415 char *yytext;
00416 #line 1 "contact_scanner.l"
00417 #define INITIAL 0
00418 #line 4 "contact_scanner.l"
00419     #include<string.h>
00420     #include<gtk/gtk.h>
00421     #include "value_pair.h"
00422     #include "account.h"
00423     #include "contact_parser.h"
00424     #include<stdio.h>
00425 
00426     #define contactwrap() 1
00427     int Line_contact = 1;
00428 
00429 /* Macros after this point can all be overridden by user definitions in
00430  * section 1.
00431  */
00432 
00433 #ifndef YY_SKIP_YYWRAP
00434 #ifdef __cplusplus
00435 extern "C" int yywrap YY_PROTO(( void ));
00436 #else
00437 extern int yywrap YY_PROTO(( void ));
00438 #endif
00439 #endif
00440 
00441 #ifndef YY_NO_UNPUT
00442 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
00443 #endif
00444 
00445 #ifndef yytext_ptr
00446 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
00447 #endif
00448 
00449 #ifdef YY_NEED_STRLEN
00450 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
00451 #endif
00452 
00453 #ifndef YY_NO_INPUT
00454 #ifdef __cplusplus
00455 static int yyinput YY_PROTO(( void ));
00456 #else
00457 static int input YY_PROTO(( void ));
00458 #endif
00459 #endif
00460 
00461 #if YY_STACK_USED
00462 static int yy_start_stack_ptr = 0;
00463 static int yy_start_stack_depth = 0;
00464 static int *yy_start_stack = 0;
00465 #ifndef YY_NO_PUSH_STATE
00466 static void yy_push_state YY_PROTO(( int new_state ));
00467 #endif
00468 #ifndef YY_NO_POP_STATE
00469 static void yy_pop_state YY_PROTO(( void ));
00470 #endif
00471 #ifndef YY_NO_TOP_STATE
00472 static int yy_top_state YY_PROTO(( void ));
00473 #endif
00474 
00475 #else
00476 #define YY_NO_PUSH_STATE 1
00477 #define YY_NO_POP_STATE 1
00478 #define YY_NO_TOP_STATE 1
00479 #endif
00480 
00481 #ifdef YY_MALLOC_DECL
00482 YY_MALLOC_DECL
00483 #else
00484 #if __STDC__
00485 #ifndef __cplusplus
00486 #include <stdlib.h>
00487 #endif
00488 #else
00489 /* Just try to get by without declaring the routines.  This will fail
00490  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
00491  * or sizeof(void*) != sizeof(int).
00492  */
00493 #endif
00494 #endif
00495 
00496 /* Amount of stuff to slurp up with each read. */
00497 #ifndef YY_READ_BUF_SIZE
00498 #define YY_READ_BUF_SIZE 8192
00499 #endif
00500 
00501 /* Copy whatever the last rule matched to the standard output. */
00502 
00503 #ifndef ECHO
00504 /* This used to be an fputs(), but since the string might contain NUL's,
00505  * we now use fwrite().
00506  */
00507 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
00508 #endif
00509 
00510 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
00511  * is returned in "result".
00512  */
00513 #ifndef YY_INPUT
00514 #define YY_INPUT(buf,result,max_size) \
00515     if ( yy_current_buffer->yy_is_interactive ) \
00516         { \
00517         int c = '*', n; \
00518         for ( n = 0; n < max_size && \
00519                  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
00520             buf[n] = (char) c; \
00521         if ( c == '\n' ) \
00522             buf[n++] = (char) c; \
00523         if ( c == EOF && ferror( yyin ) ) \
00524             YY_FATAL_ERROR( "input in flex scanner failed" ); \
00525         result = n; \
00526         } \
00527     else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
00528           && ferror( yyin ) ) \
00529         YY_FATAL_ERROR( "input in flex scanner failed" );
00530 #endif
00531 
00532 /* No semi-colon after return; correct usage is to write "yyterminate();" -
00533  * we don't want an extra ';' after the "return" because that will cause
00534  * some compilers to complain about unreachable statements.
00535  */
00536 #ifndef yyterminate
00537 #define yyterminate() return YY_NULL
00538 #endif
00539 
00540 /* Number of entries by which start-condition stack grows. */
00541 #ifndef YY_START_STACK_INCR
00542 #define YY_START_STACK_INCR 25
00543 #endif
00544 
00545 /* Report a fatal error. */
00546 #ifndef YY_FATAL_ERROR
00547 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
00548 #endif
00549 
00550 /* Default declaration of generated scanner - a define so the user can
00551  * easily add parameters.
00552  */
00553 #ifndef YY_DECL
00554 #define YY_DECL int yylex YY_PROTO(( void ))
00555 #endif
00556 
00557 /* Code executed at the beginning of each rule, after yytext and yyleng
00558  * have been set up.
00559  */
00560 #ifndef YY_USER_ACTION
00561 #define YY_USER_ACTION
00562 #endif
00563 
00564 /* Code executed at the end of each rule. */
00565 #ifndef YY_BREAK
00566 #define YY_BREAK break;
00567 #endif
00568 
00569 #define YY_RULE_SETUP \
00570     YY_USER_ACTION
00571 
00572 YY_DECL
00573     {
00574     register yy_state_type yy_current_state;
00575     register char *yy_cp = NULL, *yy_bp = NULL;
00576     register int yy_act;
00577 
00578 #line 14 "contact_scanner.l"
00579 
00580 
00581     if ( yy_init )
00582         {
00583         yy_init = 0;
00584 
00585 #ifdef YY_USER_INIT
00586         YY_USER_INIT;
00587 #endif
00588 
00589         if ( ! yy_start )
00590             yy_start = 1;   /* first start state */
00591 
00592         if ( ! yyin )
00593             yyin = stdin;
00594 
00595         if ( ! yyout )
00596             yyout = stdout;
00597 
00598         if ( ! yy_current_buffer )
00599             yy_current_buffer =
00600                 yy_create_buffer( yyin, YY_BUF_SIZE );
00601 
00602         yy_load_buffer_state();
00603         }
00604 
00605     while ( 1 )     /* loops until end-of-file is reached */
00606         {
00607         yy_cp = yy_c_buf_p;
00608 
00609         /* Support of yytext. */
00610         *yy_cp = yy_hold_char;
00611 
00612         /* yy_bp points to the position in yy_ch_buf of the start of
00613          * the current run.
00614          */
00615         yy_bp = yy_cp;
00616 
00617         yy_current_state = yy_start;
00618 yy_match:
00619         do
00620             {
00621             register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
00622             if ( yy_accept[yy_current_state] )
00623                 {
00624                 yy_last_accepting_state = yy_current_state;
00625                 yy_last_accepting_cpos = yy_cp;
00626                 }
00627             while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
00628                 {
00629                 yy_current_state = (int) yy_def[yy_current_state];
00630                 if ( yy_current_state >= 60 )
00631                     yy_c = yy_meta[(unsigned int) yy_c];
00632                 }
00633             yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
00634             ++yy_cp;
00635             }
00636         while ( yy_base[yy_current_state] != 73 );
00637 
00638 yy_find_action:
00639         yy_act = yy_accept[yy_current_state];
00640         if ( yy_act == 0 )
00641             { /* have to back up */
00642             yy_cp = yy_last_accepting_cpos;
00643             yy_current_state = yy_last_accepting_state;
00644             yy_act = yy_accept[yy_current_state];
00645             }
00646 
00647         YY_DO_BEFORE_ACTION;
00648 
00649 
00650 do_action:  /* This label is used only to access EOF actions. */
00651 
00652 
00653         switch ( yy_act )
00654     { /* beginning of action switch */
00655             case 0: /* must back up */
00656             /* undo the effects of YY_DO_BEFORE_ACTION */
00657             *yy_cp = yy_hold_char;
00658             yy_cp = yy_last_accepting_cpos;
00659             yy_current_state = yy_last_accepting_state;
00660             goto yy_find_action;
00661 
00662 case 1:
00663 YY_RULE_SETUP
00664 #line 15 "contact_scanner.l"
00665 {return END_ACCOUNT;}
00666     YY_BREAK
00667 case 2:
00668 YY_RULE_SETUP
00669 #line 16 "contact_scanner.l"
00670 {return ACCOUNT;}
00671     YY_BREAK
00672 case 3:
00673 YY_RULE_SETUP
00674 #line 17 "contact_scanner.l"
00675 {return GROUP;}
00676     YY_BREAK
00677 case 4:
00678 YY_RULE_SETUP
00679 #line 18 "contact_scanner.l"
00680 {return END_GROUP;}
00681     YY_BREAK
00682 case 5:
00683 YY_RULE_SETUP
00684 #line 19 "contact_scanner.l"
00685 {return CONTACT;}
00686     YY_BREAK
00687 case 6:
00688 YY_RULE_SETUP
00689 #line 20 "contact_scanner.l"
00690 {return END_CONTACT;}
00691     YY_BREAK
00692 case 7:
00693 YY_RULE_SETUP
00694 #line 21 "contact_scanner.l"
00695 return contacttext[0];
00696     YY_BREAK
00697 case 8:
00698 YY_RULE_SETUP
00699 #line 22 "contact_scanner.l"
00700 {contactlval.string = strdup(contacttext); return IDENTIFIER;}
00701     YY_BREAK
00702 case 9:
00703 YY_RULE_SETUP
00704 #line 23 "contact_scanner.l"
00705 { contactlval.string = strdup(contacttext+1); contactlval.string[strlen(contactlval.string)-1] = '\0'; return STRING; }
00706     YY_BREAK
00707 case 10:
00708 YY_RULE_SETUP
00709 #line 24 "contact_scanner.l"
00710 { }
00711     YY_BREAK
00712 case 11:
00713 YY_RULE_SETUP
00714 #line 25 "contact_scanner.l"
00715 { Line_contact++; }
00716     YY_BREAK
00717 case 12:
00718 YY_RULE_SETUP
00719 #line 26 "contact_scanner.l"
00720 printf("Lexical error on %c\n", contacttext[0]);
00721     YY_BREAK
00722 case 13:
00723 YY_RULE_SETUP
00724 #line 28 "contact_scanner.l"
00725 ECHO;
00726     YY_BREAK
00727 case YY_STATE_EOF(INITIAL):
00728     yyterminate();
00729 
00730     case YY_END_OF_BUFFER:
00731         {
00732         /* Amount of text matched not including the EOB char. */
00733         int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
00734 
00735         /* Undo the effects of YY_DO_BEFORE_ACTION. */
00736         *yy_cp = yy_hold_char;
00737         YY_RESTORE_YY_MORE_OFFSET
00738 
00739         if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
00740             {
00741             /* We're scanning a new file or input source.  It's
00742              * possible that this happened because the user
00743              * just pointed yyin at a new source and called
00744              * yylex().  If so, then we have to assure
00745              * consistency between yy_current_buffer and our
00746              * globals.  Here is the right place to do so, because
00747              * this is the first action (other than possibly a
00748              * back-up) that will match for the new input source.
00749              */
00750             yy_n_chars = yy_current_buffer->yy_n_chars;
00751             yy_current_buffer->yy_input_file = yyin;
00752             yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
00753             }
00754 
00755         /* Note that here we test for yy_c_buf_p "<=" to the position
00756          * of the first EOB in the buffer, since yy_c_buf_p will
00757          * already have been incremented past the NUL character
00758          * (since all states make transitions on EOB to the
00759          * end-of-buffer state).  Contrast this with the test
00760          * in input().
00761          */
00762         if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
00763             { /* This was really a NUL. */
00764             yy_state_type yy_next_state;
00765 
00766             yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
00767 
00768             yy_current_state = yy_get_previous_state();
00769 
00770             /* Okay, we're now positioned to make the NUL
00771              * transition.  We couldn't have
00772              * yy_get_previous_state() go ahead and do it
00773              * for us because it doesn't know how to deal
00774              * with the possibility of jamming (and we don't
00775              * want to build jamming into it because then it
00776              * will run more slowly).
00777              */
00778 
00779             yy_next_state = yy_try_NUL_trans( yy_current_state );
00780 
00781             yy_bp = yytext_ptr + YY_MORE_ADJ;
00782 
00783             if ( yy_next_state )
00784                 {
00785                 /* Consume the NUL. */
00786                 yy_cp = ++yy_c_buf_p;
00787                 yy_current_state = yy_next_state;
00788                 goto yy_match;
00789                 }
00790 
00791             else
00792                 {
00793                 yy_cp = yy_c_buf_p;
00794                 goto yy_find_action;
00795                 }
00796             }
00797 
00798         else switch ( yy_get_next_buffer() )
00799             {
00800             case EOB_ACT_END_OF_FILE:
00801                 {
00802                 yy_did_buffer_switch_on_eof = 0;
00803 
00804                 if ( yywrap() )
00805                     {
00806                     /* Note: because we've taken care in
00807                      * yy_get_next_buffer() to have set up
00808                      * yytext, we can now set up
00809                      * yy_c_buf_p so that if some total
00810                      * hoser (like flex itself) wants to
00811                      * call the scanner after we return the
00812                      * YY_NULL, it'll still work - another
00813                      * YY_NULL will get returned.
00814                      */
00815                     yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
00816 
00817                     yy_act = YY_STATE_EOF(YY_START);
00818                     goto do_action;
00819                     }
00820 
00821                 else
00822                     {
00823                     if ( ! yy_did_buffer_switch_on_eof )
00824                         YY_NEW_FILE;
00825                     }
00826                 break;
00827                 }
00828 
00829             case EOB_ACT_CONTINUE_SCAN:
00830                 yy_c_buf_p =
00831                     yytext_ptr + yy_amount_of_matched_text;
00832 
00833                 yy_current_state = yy_get_previous_state();
00834 
00835                 yy_cp = yy_c_buf_p;
00836                 yy_bp = yytext_ptr + YY_MORE_ADJ;
00837                 goto yy_match;
00838 
00839             case EOB_ACT_LAST_MATCH:
00840                 yy_c_buf_p =
00841                 &yy_current_buffer->yy_ch_buf[yy_n_chars];
00842 
00843                 yy_current_state = yy_get_previous_state();
00844 
00845                 yy_cp = yy_c_buf_p;
00846                 yy_bp = yytext_ptr + YY_MORE_ADJ;
00847                 goto yy_find_action;
00848             }
00849         break;
00850         }
00851 
00852     default:
00853         YY_FATAL_ERROR(
00854             "fatal flex scanner internal error--no action found" );
00855     } /* end of action switch */
00856         } /* end of scanning one token */
00857     } /* end of yylex */
00858 
00859 
00860 /* yy_get_next_buffer - try to read in a new buffer
00861  *
00862  * Returns a code representing an action:
00863  *  EOB_ACT_LAST_MATCH -
00864  *  EOB_ACT_CONTINUE_SCAN - continue scanning from current position
00865  *  EOB_ACT_END_OF_FILE - end of file
00866  */
00867 
00868 static int yy_get_next_buffer()
00869     {
00870     register char *dest = yy_current_buffer->yy_ch_buf;
00871     register char *source = yytext_ptr;
00872     register int number_to_move, i;
00873     int ret_val;
00874 
00875     if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
00876         YY_FATAL_ERROR(
00877         "fatal flex scanner internal error--end of buffer missed" );
00878 
00879     if ( yy_current_buffer->yy_fill_buffer == 0 )
00880         { /* Don't try to fill the buffer, so this is an EOF. */
00881         if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
00882             {
00883             /* We matched a single character, the EOB, so
00884              * treat this as a final EOF.
00885              */
00886             return EOB_ACT_END_OF_FILE;
00887             }
00888 
00889         else
00890             {
00891             /* We matched some text prior to the EOB, first
00892              * process it.
00893              */
00894             return EOB_ACT_LAST_MATCH;
00895             }
00896         }
00897 
00898     /* Try to read more data. */
00899 
00900     /* First move last chars to start of buffer. */
00901     number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
00902 
00903     for ( i = 0; i < number_to_move; ++i )
00904         *(dest++) = *(source++);
00905 
00906     if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
00907         /* don't do the read, it's not guaranteed to return an EOF,
00908          * just force an EOF
00909          */
00910         yy_current_buffer->yy_n_chars = yy_n_chars = 0;
00911 
00912     else
00913         {
00914         int num_to_read =
00915             yy_current_buffer->yy_buf_size - number_to_move - 1;
00916 
00917         while ( num_to_read <= 0 )
00918             { /* Not enough room in the buffer - grow it. */
00919 #ifdef YY_USES_REJECT
00920             YY_FATAL_ERROR(
00921 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
00922 #else
00923 
00924             /* just a shorter name for the current buffer */
00925             YY_BUFFER_STATE b = yy_current_buffer;
00926 
00927             int yy_c_buf_p_offset =
00928                 (int) (yy_c_buf_p - b->yy_ch_buf);
00929 
00930             if ( b->yy_is_our_buffer )
00931                 {
00932                 int new_size = b->yy_buf_size * 2;
00933 
00934                 if ( new_size <= 0 )
00935                     b->yy_buf_size += b->yy_buf_size / 8;
00936                 else
00937                     b->yy_buf_size *= 2;
00938 
00939                 b->yy_ch_buf = (char *)
00940                     /* Include room in for 2 EOB chars. */
00941                     yy_flex_realloc( (void *) b->yy_ch_buf,
00942                              b->yy_buf_size + 2 );
00943                 }
00944             else
00945                 /* Can't grow it, we don't own it. */
00946                 b->yy_ch_buf = 0;
00947 
00948             if ( ! b->yy_ch_buf )
00949                 YY_FATAL_ERROR(
00950                 "fatal error - scanner input buffer overflow" );
00951 
00952             yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
00953 
00954             num_to_read = yy_current_buffer->yy_buf_size -
00955                         number_to_move - 1;
00956 #endif
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->yy_ch_buf[number_to_move]),
00964             yy_n_chars, num_to_read );
00965 
00966         yy_current_buffer->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->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->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
00990     yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
00991 
00992     yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
00993 
00994     return ret_val;
00995     }
00996 
00997 
00998 /* yy_get_previous_state - get the state just before the EOB char was reached */
00999 
01000 static yy_state_type yy_get_previous_state()
01001     {
01002     register yy_state_type yy_current_state;
01003     register char *yy_cp;
01004 
01005     yy_current_state = yy_start;
01006 
01007     for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
01008         {
01009         register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
01010         if ( yy_accept[yy_current_state] )
01011             {
01012             yy_last_accepting_state = yy_current_state;
01013             yy_last_accepting_cpos = yy_cp;
01014             }
01015         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01016             {
01017             yy_current_state = (int) yy_def[yy_current_state];
01018             if ( yy_current_state >= 60 )
01019                 yy_c = yy_meta[(unsigned int) yy_c];
01020             }
01021         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01022         }
01023 
01024     return yy_current_state;
01025     }
01026 
01027 
01028 /* yy_try_NUL_trans - try to make a transition on the NUL character
01029  *
01030  * synopsis
01031  *  next_state = yy_try_NUL_trans( current_state );
01032  */
01033 
01034 #ifdef YY_USE_PROTOS
01035 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
01036 #else
01037 static yy_state_type yy_try_NUL_trans( yy_current_state )
01038 yy_state_type yy_current_state;
01039 #endif
01040     {
01041     register int yy_is_jam;
01042     register char *yy_cp = yy_c_buf_p;
01043 
01044     register YY_CHAR yy_c = 1;
01045     if ( yy_accept[yy_current_state] )
01046         {
01047         yy_last_accepting_state = yy_current_state;
01048         yy_last_accepting_cpos = yy_cp;
01049         }
01050     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01051         {
01052         yy_current_state = (int) yy_def[yy_current_state];
01053         if ( yy_current_state >= 60 )
01054             yy_c = yy_meta[(unsigned int) yy_c];
01055         }
01056     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01057     yy_is_jam = (yy_current_state == 59);
01058 
01059     return yy_is_jam ? 0 : yy_current_state;
01060     }
01061 
01062 
01063 #ifndef YY_NO_UNPUT
01064 #ifdef YY_USE_PROTOS
01065 static void yyunput( int c, register char *yy_bp )
01066 #else
01067 static void yyunput( c, yy_bp )
01068 int c;
01069 register char *yy_bp;
01070 #endif
01071     {
01072     register char *yy_cp = yy_c_buf_p;
01073 
01074     /* undo effects of setting up yytext */
01075     *yy_cp = yy_hold_char;
01076 
01077     if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
01078         { /* need to shift things up to make room */
01079         /* +2 for EOB chars. */
01080         register int number_to_move = yy_n_chars + 2;
01081         register char *dest = &yy_current_buffer->yy_ch_buf[
01082                     yy_current_buffer->yy_buf_size + 2];
01083         register char *source =
01084                 &yy_current_buffer->yy_ch_buf[number_to_move];
01085 
01086         while ( source > yy_current_buffer->yy_ch_buf )
01087             *--dest = *--source;
01088 
01089         yy_cp += (int) (dest - source);
01090         yy_bp += (int) (dest - source);
01091         yy_current_buffer->yy_n_chars =
01092             yy_n_chars = yy_current_buffer->yy_buf_size;
01093 
01094         if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
01095             YY_FATAL_ERROR( "flex scanner push-back overflow" );
01096         }
01097 
01098     *--yy_cp = (char) c;
01099 
01100 
01101     yytext_ptr = yy_bp;
01102     yy_hold_char = *yy_cp;
01103     yy_c_buf_p = yy_cp;
01104     }
01105 #endif  /* ifndef YY_NO_UNPUT */
01106 
01107 
01108 #ifdef __cplusplus
01109 static int yyinput()
01110 #else
01111 static int input()
01112 #endif
01113     {
01114     int c;
01115 
01116     *yy_c_buf_p = yy_hold_char;
01117 
01118     if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
01119         {
01120         /* yy_c_buf_p now points to the character we want to return.
01121          * If this occurs *before* the EOB characters, then it's a
01122          * valid NUL; if not, then we've hit the end of the buffer.
01123          */
01124         if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
01125             /* This was really a NUL. */
01126             *yy_c_buf_p = '\0';
01127 
01128         else
01129             { /* need more input */
01130             int offset = yy_c_buf_p - yytext_ptr;
01131             ++yy_c_buf_p;
01132 
01133             switch ( yy_get_next_buffer() )
01134                 {
01135                 case EOB_ACT_LAST_MATCH:
01136                     /* This happens because yy_g_n_b()
01137                      * sees that we've accumulated a
01138                      * token and flags that we need to
01139                      * try matching the token before
01140                      * proceeding.  But for input(),
01141                      * there's no matching to consider.
01142                      * So convert the EOB_ACT_LAST_MATCH
01143                      * to EOB_ACT_END_OF_FILE.
01144                      */
01145 
01146                     /* Reset buffer status. */
01147                     yyrestart( yyin );
01148 
01149                     /* fall through */
01150 
01151                 case EOB_ACT_END_OF_FILE:
01152                     {
01153                     if ( yywrap() )
01154                         return EOF;
01155 
01156                     if ( ! yy_did_buffer_switch_on_eof )
01157                         YY_NEW_FILE;
01158 #ifdef __cplusplus
01159                     return yyinput();
01160 #else
01161                     return input();
01162 #endif
01163                     }
01164 
01165                 case EOB_ACT_CONTINUE_SCAN:
01166                     yy_c_buf_p = yytext_ptr + offset;
01167                     break;
01168                 }
01169             }
01170         }
01171 
01172     c = *(unsigned char *) yy_c_buf_p;  /* cast for 8-bit char's */
01173     *yy_c_buf_p = '\0'; /* preserve yytext */
01174     yy_hold_char = *++yy_c_buf_p;
01175 
01176 
01177     return c;
01178     }
01179 
01180 
01181 #ifdef YY_USE_PROTOS
01182 void yyrestart( FILE *input_file )
01183 #else
01184 void yyrestart( input_file )
01185 FILE *input_file;
01186 #endif
01187     {
01188     if ( ! yy_current_buffer )
01189         yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
01190 
01191     yy_init_buffer( yy_current_buffer, input_file );
01192     yy_load_buffer_state();
01193     }
01194 
01195 
01196 #ifdef YY_USE_PROTOS
01197 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
01198 #else
01199 void yy_switch_to_buffer( new_buffer )
01200 YY_BUFFER_STATE new_buffer;
01201 #endif
01202     {
01203     if ( yy_current_buffer == new_buffer )
01204         return;
01205 
01206     if ( yy_current_buffer )
01207         {
01208         /* Flush out information for old buffer. */
01209         *yy_c_buf_p = yy_hold_char;
01210         yy_current_buffer->yy_buf_pos = yy_c_buf_p;
01211         yy_current_buffer->yy_n_chars = yy_n_chars;
01212         }
01213 
01214     yy_current_buffer = new_buffer;
01215     yy_load_buffer_state();
01216 
01217     /* We don't actually know whether we did this switch during
01218      * EOF (yywrap()) processing, but the only time this flag
01219      * is looked at is after yywrap() is called, so it's safe
01220      * to go ahead and always set it.
01221      */
01222     yy_did_buffer_switch_on_eof = 1;
01223     }
01224 
01225 
01226 #ifdef YY_USE_PROTOS
01227 void yy_load_buffer_state( void )
01228 #else
01229 void yy_load_buffer_state()
01230 #endif
01231     {
01232     yy_n_chars = yy_current_buffer->yy_n_chars;
01233     yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
01234     yyin = yy_current_buffer->yy_input_file;
01235     yy_hold_char = *yy_c_buf_p;
01236     }
01237 
01238 
01239 #ifdef YY_USE_PROTOS
01240 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
01241 #else
01242 YY_BUFFER_STATE yy_create_buffer( file, size )
01243 FILE *file;
01244 int size;
01245 #endif
01246     {
01247     YY_BUFFER_STATE b;
01248 
01249     b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
01250     if ( ! b )
01251         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
01252 
01253     b->yy_buf_size = size;
01254 
01255     /* yy_ch_buf has to be 2 characters longer than the size given because
01256      * we need to put in 2 end-of-buffer characters.
01257      */
01258     b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
01259     if ( ! b->yy_ch_buf )
01260         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
01261 
01262     b->yy_is_our_buffer = 1;
01263 
01264     yy_init_buffer( b, file );
01265 
01266     return b;
01267     }
01268 
01269 
01270 #ifdef YY_USE_PROTOS
01271 void yy_delete_buffer( YY_BUFFER_STATE b )
01272 #else
01273 void yy_delete_buffer( b )
01274 YY_BUFFER_STATE b;
01275 #endif
01276     {
01277     if ( ! b )
01278         return;
01279 
01280     if ( b == yy_current_buffer )
01281         yy_current_buffer = (YY_BUFFER_STATE) 0;
01282 
01283     if ( b->yy_is_our_buffer )
01284         yy_flex_free( (void *) b->yy_ch_buf );
01285 
01286     yy_flex_free( (void *) b );
01287     }
01288 
01289 
01290 
01291 #ifdef YY_USE_PROTOS
01292 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
01293 #else
01294 void yy_init_buffer( b, file )
01295 YY_BUFFER_STATE b;
01296 FILE *file;
01297 #endif
01298 
01299 
01300     {
01301     yy_flush_buffer( b );
01302 
01303     b->yy_input_file = file;
01304     b->yy_fill_buffer = 1;
01305 
01306 #if YY_ALWAYS_INTERACTIVE
01307     b->yy_is_interactive = 1;
01308 #else
01309 #if YY_NEVER_INTERACTIVE
01310     b->yy_is_interactive = 0;
01311 #else
01312     b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
01313 #endif
01314 #endif
01315     }
01316 
01317 
01318 #ifdef YY_USE_PROTOS
01319 void yy_flush_buffer( YY_BUFFER_STATE b )
01320 #else
01321 void yy_flush_buffer( b )
01322 YY_BUFFER_STATE b;
01323 #endif
01324 
01325     {
01326     if ( ! b )
01327         return;
01328 
01329     b->yy_n_chars = 0;
01330 
01331     /* We always need two end-of-buffer characters.  The first causes
01332      * a transition to the end-of-buffer state.  The second causes
01333      * a jam in that state.
01334      */
01335     b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
01336     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
01337 
01338     b->yy_buf_pos = &b->yy_ch_buf[0];
01339 
01340     b->yy_at_bol = 1;
01341     b->yy_buffer_status = YY_BUFFER_NEW;
01342 
01343     if ( b == yy_current_buffer )
01344         yy_load_buffer_state();
01345     }
01346 
01347 
01348 #ifndef YY_NO_SCAN_BUFFER
01349 #ifdef YY_USE_PROTOS
01350 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
01351 #else
01352 YY_BUFFER_STATE yy_scan_buffer( base, size )
01353 char *base;
01354 yy_size_t size;
01355 #endif
01356     {
01357     YY_BUFFER_STATE b;
01358 
01359     if ( size < 2 ||
01360          base[size-2] != YY_END_OF_BUFFER_CHAR ||
01361          base[size-1] != YY_END_OF_BUFFER_CHAR )
01362         /* They forgot to leave room for the EOB's. */
01363         return 0;
01364 
01365     b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
01366     if ( ! b )
01367         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
01368 
01369     b->yy_buf_size = size - 2;  /* "- 2" to take care of EOB's */
01370     b->yy_buf_pos = b->yy_ch_buf = base;
01371     b->yy_is_our_buffer = 0;
01372     b->yy_input_file = 0;
01373     b->yy_n_chars = b->yy_buf_size;
01374     b->yy_is_interactive = 0;
01375     b->yy_at_bol = 1;
01376     b->yy_fill_buffer = 0;
01377     b->yy_buffer_status = YY_BUFFER_NEW;
01378 
01379     yy_switch_to_buffer( b );
01380 
01381     return b;
01382     }
01383 #endif
01384 
01385 
01386 #ifndef YY_NO_SCAN_STRING
01387 #ifdef YY_USE_PROTOS
01388 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
01389 #else
01390 YY_BUFFER_STATE yy_scan_string( yy_str )
01391 yyconst char *yy_str;
01392 #endif
01393     {
01394     int len;
01395     for ( len = 0; yy_str[len]; ++len )
01396         ;
01397 
01398     return yy_scan_bytes( yy_str, len );
01399     }
01400 #endif
01401 
01402 
01403 #ifndef YY_NO_SCAN_BYTES
01404 #ifdef YY_USE_PROTOS
01405 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
01406 #else
01407 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
01408 yyconst char *bytes;
01409 int len;
01410 #endif
01411     {
01412     YY_BUFFER_STATE b;
01413     char *buf;
01414     yy_size_t n;
01415     int i;
01416 
01417     /* Get memory for full buffer, including space for trailing EOB's. */
01418     n = len + 2;
01419     buf = (char *) yy_flex_alloc( n );
01420     if ( ! buf )
01421         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
01422 
01423     for ( i = 0; i < len; ++i )
01424         buf[i] = bytes[i];
01425 
01426     buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
01427 
01428     b = yy_scan_buffer( buf, n );
01429     if ( ! b )
01430         YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
01431 
01432     /* It's okay to grow etc. this buffer, and we should throw it
01433      * away when we're done.
01434      */
01435     b->yy_is_our_buffer = 1;
01436 
01437     return b;
01438     }
01439 #endif
01440 
01441 
01442 #ifndef YY_NO_PUSH_STATE
01443 #ifdef YY_USE_PROTOS
01444 static void yy_push_state( int new_state )
01445 #else
01446 static void yy_push_state( new_state )
01447 int new_state;
01448 #endif
01449     {
01450     if ( yy_start_stack_ptr >= yy_start_stack_depth )
01451         {
01452         yy_size_t new_size;
01453 
01454         yy_start_stack_depth += YY_START_STACK_INCR;
01455         new_size = yy_start_stack_depth * sizeof( int );
01456 
01457         if ( ! yy_start_stack )
01458             yy_start_stack = (int *) yy_flex_alloc( new_size );
01459 
01460         else
01461             yy_start_stack = (int *) yy_flex_realloc(
01462                     (void *) yy_start_stack, new_size );
01463 
01464         if ( ! yy_start_stack )
01465             YY_FATAL_ERROR(
01466             "out of memory expanding start-condition stack" );
01467         }
01468 
01469     yy_start_stack[yy_start_stack_ptr++] = YY_START;
01470 
01471     BEGIN(new_state);
01472     }
01473 #endif
01474 
01475 
01476 #ifndef YY_NO_POP_STATE
01477 static void yy_pop_state()
01478     {
01479     if ( --yy_start_stack_ptr < 0 )
01480         YY_FATAL_ERROR( "start-condition stack underflow" );
01481 
01482     BEGIN(yy_start_stack[yy_start_stack_ptr]);
01483     }
01484 #endif
01485 
01486 
01487 #ifndef YY_NO_TOP_STATE
01488 static int yy_top_state()
01489     {
01490     return yy_start_stack[yy_start_stack_ptr - 1];
01491     }
01492 #endif
01493 
01494 #ifndef YY_EXIT_FAILURE
01495 #define YY_EXIT_FAILURE 2
01496 #endif
01497 
01498 #ifdef YY_USE_PROTOS
01499 static void yy_fatal_error( yyconst char msg[] )
01500 #else
01501 static void yy_fatal_error( msg )
01502 char msg[];
01503 #endif
01504     {
01505     (void) fprintf( stderr, "%s\n", msg );
01506     exit( YY_EXIT_FAILURE );
01507     }
01508 
01509 
01510 
01511 /* Redefine yyless() so it works in section 3 code. */
01512 
01513 #undef yyless
01514 #define yyless(n) \
01515     do \
01516         { \
01517         /* Undo effects of setting up yytext. */ \
01518         yytext[yyleng] = yy_hold_char; \
01519         yy_c_buf_p = yytext + n; \
01520         yy_hold_char = *yy_c_buf_p; \
01521         *yy_c_buf_p = '\0'; \
01522         yyleng = n; \
01523         } \
01524     while ( 0 )
01525 
01526 
01527 /* Internal utility routines. */
01528 
01529 #ifndef yytext_ptr
01530 #ifdef YY_USE_PROTOS
01531 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
01532 #else
01533 static void yy_flex_strncpy( s1, s2, n )
01534 char *s1;
01535 yyconst char *s2;
01536 int n;
01537 #endif
01538     {
01539     register int i;
01540     for ( i = 0; i < n; ++i )
01541         s1[i] = s2[i];
01542     }
01543 #endif
01544 
01545 #ifdef YY_NEED_STRLEN
01546 #ifdef YY_USE_PROTOS
01547 static int yy_flex_strlen( yyconst char *s )
01548 #else
01549 static int yy_flex_strlen( s )
01550 yyconst char *s;
01551 #endif
01552     {
01553     register int n;
01554     for ( n = 0; s[n]; ++n )
01555         ;
01556 
01557     return n;
01558     }
01559 #endif
01560 
01561 
01562 #ifdef YY_USE_PROTOS
01563 static void *yy_flex_alloc( yy_size_t size )
01564 #else
01565 static void *yy_flex_alloc( size )
01566 yy_size_t size;
01567 #endif
01568     {
01569     return (void *) malloc( size );
01570     }
01571 
01572 #ifdef YY_USE_PROTOS
01573 static void *yy_flex_realloc( void *ptr, yy_size_t size )
01574 #else
01575 static void *yy_flex_realloc( ptr, size )
01576 void *ptr;
01577 yy_size_t size;
01578 #endif
01579     {
01580     /* The cast to (char *) in the following accommodates both
01581      * implementations that use char* generic pointers, and those
01582      * that use void* generic pointers.  It works with the latter
01583      * because both ANSI C and C++ allow castless assignment from
01584      * any pointer type to void*, and deal with argument conversions
01585      * as though doing an assignment.
01586      */
01587     return (void *) realloc( (char *) ptr, size );
01588     }
01589 
01590 #ifdef YY_USE_PROTOS
01591 static void yy_flex_free( void *ptr )
01592 #else
01593 static void yy_flex_free( ptr )
01594 void *ptr;
01595 #endif
01596     {
01597     free( ptr );
01598     }
01599 
01600 #if YY_MAIN
01601 int main()
01602     {
01603     yylex();
01604     return 0;
01605     }
01606 #endif
01607 #line 28 "contact_scanner.l"

Contact: Andy Maloney     [Documentation generated by doxygen]