|
|
|
@ -23,36 +23,6 @@ char *s = NULL; /* to return WHOLE hyphenated-word */ |
|
|
|
|
|
|
|
|
|
YY_BUFFER_STATE buf = NULL; /* buffer to parse; it need for parse from string */ |
|
|
|
|
|
|
|
|
|
int lrlimit = -1; /* for limiting read from filehandle ( -1 - unlimited read ) */ |
|
|
|
|
int bytestoread = 0; /* for limiting read from filehandle */ |
|
|
|
|
|
|
|
|
|
/* redefine macro for read limited length */ |
|
|
|
|
#define YY_INPUT(buf,result,max_size) \ |
|
|
|
|
if ( yy_current_buffer->yy_is_interactive ) { \ |
|
|
|
|
int c = '*', n; \ |
|
|
|
|
for ( n = 0; n < max_size && \ |
|
|
|
|
(c = getc( tsearch2_yyin )) != EOF && c != '\n'; ++n ) \ |
|
|
|
|
buf[n] = (char) c; \ |
|
|
|
|
if ( c == '\n' ) \ |
|
|
|
|
buf[n++] = (char) c; \ |
|
|
|
|
if ( c == EOF && ferror( tsearch2_yyin ) ) \ |
|
|
|
|
YY_FATAL_ERROR( "input in flex scanner failed" ); \ |
|
|
|
|
result = n; \ |
|
|
|
|
} else { \ |
|
|
|
|
if ( lrlimit == 0 ) \ |
|
|
|
|
result=YY_NULL; \ |
|
|
|
|
else { \ |
|
|
|
|
if ( lrlimit>0 ) { \ |
|
|
|
|
bytestoread = ( lrlimit > max_size ) ? max_size : lrlimit; \ |
|
|
|
|
lrlimit -= bytestoread; \ |
|
|
|
|
} else \ |
|
|
|
|
bytestoread = max_size; \ |
|
|
|
|
if ( ((result = fread( buf, 1, bytestoread, tsearch2_yyin )) == 0) \ |
|
|
|
|
&& ferror( tsearch2_yyin ) ) \ |
|
|
|
|
YY_FATAL_ERROR( "input in flex scanner failed" ); \ |
|
|
|
|
} \ |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
%} |
|
|
|
|
|
|
|
|
|
%option 8bit |
|
|
|
@ -334,13 +304,5 @@ void start_parse_str(char* str, int limit) { |
|
|
|
|
BEGIN INITIAL; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* start parse from filehandle */ |
|
|
|
|
void start_parse_fh( FILE* fh, int limit ) { |
|
|
|
|
if (buf) end_parse(); |
|
|
|
|
lrlimit = ( limit ) ? limit : -1; |
|
|
|
|
buf = tsearch2_yy_create_buffer( fh, YY_BUF_SIZE ); |
|
|
|
|
tsearch2_yy_switch_to_buffer( buf ); |
|
|
|
|
BEGIN INITIAL; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|