mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-11-27 07:21:09 +08:00
Eliminate function start_parse_fh and macro YY_INPUT
This commit is contained in:
parent
432ca9116b
commit
d3fe721a40
@ -5,7 +5,6 @@ char *token;
|
|||||||
int tokenlen;
|
int tokenlen;
|
||||||
int tsearch_yylex(void);
|
int tsearch_yylex(void);
|
||||||
void start_parse_str(char *, int);
|
void start_parse_str(char *, int);
|
||||||
void start_parse_fh(FILE *, int);
|
|
||||||
void end_parse(void);
|
void end_parse(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -22,36 +22,6 @@ char *s = NULL; /* to return WHOLE hyphenated-word */
|
|||||||
|
|
||||||
YY_BUFFER_STATE buf = NULL; /* buffer to parse; it need for parse from string */
|
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( tsearch_yyin )) != EOF && c != '\n'; ++n ) \
|
|
||||||
buf[n] = (char) c; \
|
|
||||||
if ( c == '\n' ) \
|
|
||||||
buf[n++] = (char) c; \
|
|
||||||
if ( c == EOF && ferror( tsearch_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, tsearch_yyin )) == 0) \
|
|
||||||
&& ferror( tsearch_yyin ) ) \
|
|
||||||
YY_FATAL_ERROR( "input in flex scanner failed" ); \
|
|
||||||
} \
|
|
||||||
}
|
|
||||||
|
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%option 8bit
|
%option 8bit
|
||||||
@ -327,13 +297,4 @@ void start_parse_str(char* str, int limit) {
|
|||||||
BEGIN INITIAL;
|
BEGIN INITIAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* start parse from filehandle */
|
|
||||||
void start_parse_fh( FILE* fh, int limit ) {
|
|
||||||
if (buf) end_parse();
|
|
||||||
lrlimit = ( limit ) ? limit : -1;
|
|
||||||
buf = tsearch_yy_create_buffer( fh, YY_BUF_SIZE );
|
|
||||||
tsearch_yy_switch_to_buffer( buf );
|
|
||||||
BEGIN INITIAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,7 +5,6 @@ char *token;
|
|||||||
int tokenlen;
|
int tokenlen;
|
||||||
int tsearch2_yylex(void);
|
int tsearch2_yylex(void);
|
||||||
void start_parse_str(char *, int);
|
void start_parse_str(char *, int);
|
||||||
void start_parse_fh(FILE *, int);
|
|
||||||
void end_parse(void);
|
void end_parse(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -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 */
|
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
|
%option 8bit
|
||||||
@ -334,13 +304,5 @@ void start_parse_str(char* str, int limit) {
|
|||||||
BEGIN INITIAL;
|
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user