version 1.3, 1996/07/13 22:21:58 |
version 1.4, 1996/12/10 22:22:00 |
|
|
#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) |
#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) |
|
|
YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size )); |
YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size )); |
YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *str )); |
YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str )); |
YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len )); |
YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len )); |
%* |
%* |
|
|
|
|
/* don't do the read, it's not guaranteed to return an EOF, |
/* don't do the read, it's not guaranteed to return an EOF, |
* just force an EOF |
* just force an EOF |
*/ |
*/ |
yy_n_chars = 0; |
yy_current_buffer->yy_n_chars = yy_n_chars = 0; |
|
|
else |
else |
{ |
{ |
|
|
/* Read in more data. */ |
/* Read in more data. */ |
YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), |
YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), |
yy_n_chars, num_to_read ); |
yy_n_chars, num_to_read ); |
|
|
|
yy_current_buffer->yy_n_chars = yy_n_chars; |
} |
} |
|
|
if ( yy_n_chars == 0 ) |
if ( yy_n_chars == 0 ) |
|
|
|
|
yy_cp += (int) (dest - source); |
yy_cp += (int) (dest - source); |
yy_bp += (int) (dest - source); |
yy_bp += (int) (dest - source); |
yy_n_chars = yy_current_buffer->yy_buf_size; |
yy_current_buffer->yy_n_chars = |
|
yy_n_chars = yy_current_buffer->yy_buf_size; |
|
|
if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) |
if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) |
YY_FATAL_ERROR( "flex scanner push-back overflow" ); |
YY_FATAL_ERROR( "flex scanner push-back overflow" ); |
|
|
|
|
switch ( yy_get_next_buffer() ) |
switch ( yy_get_next_buffer() ) |
{ |
{ |
|
case EOB_ACT_LAST_MATCH: |
|
/* This happens because yy_g_n_b() |
|
* sees that we've accumulated a |
|
* token and flags that we need to |
|
* try matching the token before |
|
* proceeding. But for input(), |
|
* there's no matching to consider. |
|
* So convert the EOB_ACT_LAST_MATCH |
|
* to EOB_ACT_END_OF_FILE. |
|
*/ |
|
|
|
/* Reset buffer status. */ |
|
yyrestart( yyin ); |
|
|
|
/* fall through */ |
|
|
case EOB_ACT_END_OF_FILE: |
case EOB_ACT_END_OF_FILE: |
{ |
{ |
if ( yywrap() ) |
if ( yywrap() ) |
{ |
|
yy_c_buf_p = yytext_ptr + offset; |
|
return EOF; |
return EOF; |
} |
|
|
|
if ( ! yy_did_buffer_switch_on_eof ) |
if ( ! yy_did_buffer_switch_on_eof ) |
YY_NEW_FILE; |
YY_NEW_FILE; |
|
|
case EOB_ACT_CONTINUE_SCAN: |
case EOB_ACT_CONTINUE_SCAN: |
yy_c_buf_p = yytext_ptr + offset; |
yy_c_buf_p = yytext_ptr + offset; |
break; |
break; |
|
|
case EOB_ACT_LAST_MATCH: |
|
#ifdef __cplusplus |
|
YY_FATAL_ERROR( |
|
"unexpected last match in yyinput()" ); |
|
#else |
|
YY_FATAL_ERROR( |
|
"unexpected last match in input()" ); |
|
#endif |
|
} |
} |
} |
} |
} |
} |
|
|
void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b ) |
void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b ) |
%* |
%* |
{ |
{ |
|
if ( ! b ) |
|
return; |
|
|
b->yy_n_chars = 0; |
b->yy_n_chars = 0; |
|
|
/* We always need two end-of-buffer characters. The first causes |
/* We always need two end-of-buffer characters. The first causes |
|
|
#ifndef YY_NO_SCAN_STRING |
#ifndef YY_NO_SCAN_STRING |
%- |
%- |
#ifdef YY_USE_PROTOS |
#ifdef YY_USE_PROTOS |
YY_BUFFER_STATE yy_scan_string( yyconst char *str ) |
YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str ) |
#else |
#else |
YY_BUFFER_STATE yy_scan_string( str ) |
YY_BUFFER_STATE yy_scan_string( yy_str ) |
yyconst char *str; |
yyconst char *yy_str; |
#endif |
#endif |
{ |
{ |
int len; |
int len; |
for ( len = 0; str[len]; ++len ) |
for ( len = 0; yy_str[len]; ++len ) |
; |
; |
|
|
return yy_scan_bytes( str, len ); |
return yy_scan_bytes( yy_str, len ); |
} |
} |
%* |
%* |
#endif |
#endif |