aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/lex/skel.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/lex/skel.c')
-rw-r--r--usr.bin/lex/skel.c52
1 files changed, 31 insertions, 21 deletions
diff --git a/usr.bin/lex/skel.c b/usr.bin/lex/skel.c
index adf710fc21fa..3354600fae25 100644
--- a/usr.bin/lex/skel.c
+++ b/usr.bin/lex/skel.c
@@ -6,7 +6,7 @@ const char *skel[] = {
"/* A lexical scanner generated by flex */",
"",
"/* Scanner skeleton version:",
- " * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.89 96/05/25 21:02:21 vern Exp $",
+ " * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $",
" */",
"",
"#define FLEX_SCANNER",
@@ -255,7 +255,7 @@ const char *skel[] = {
"#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_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 ));",
"%*",
"",
@@ -788,7 +788,7 @@ const char *skel[] = {
" /* don't do the read, it's not guaranteed to return an EOF,",
" * just force an EOF",
" */",
- " yy_n_chars = 0;",
+ " yy_current_buffer->yy_n_chars = yy_n_chars = 0;",
"",
" else",
" {",
@@ -843,6 +843,8 @@ const char *skel[] = {
" /* Read in more data. */",
" YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),",
" yy_n_chars, num_to_read );",
+ "",
+ " yy_current_buffer->yy_n_chars = yy_n_chars;",
" }",
"",
" if ( yy_n_chars == 0 )",
@@ -952,7 +954,8 @@ const char *skel[] = {
"",
" yy_cp += (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 )",
" YY_FATAL_ERROR( \"flex scanner push-back overflow\" );",
@@ -1002,13 +1005,26 @@ const char *skel[] = {
"",
" 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:",
" {",
" if ( yywrap() )",
- " {",
- " yy_c_buf_p = yytext_ptr + offset;",
" return EOF;",
- " }",
"",
" if ( ! yy_did_buffer_switch_on_eof )",
" YY_NEW_FILE;",
@@ -1022,15 +1038,6 @@ const char *skel[] = {
" case EOB_ACT_CONTINUE_SCAN:",
" yy_c_buf_p = yytext_ptr + offset;",
" 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",
" }",
" }",
" }",
@@ -1228,6 +1235,9 @@ const char *skel[] = {
"void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b )",
"%*",
" {",
+ " if ( ! b )",
+ " return;",
+ "",
" b->yy_n_chars = 0;",
"",
" /* We always need two end-of-buffer characters. The first causes",
@@ -1291,17 +1301,17 @@ const char *skel[] = {
"#ifndef YY_NO_SCAN_STRING",
"%-",
"#ifdef YY_USE_PROTOS",
- "YY_BUFFER_STATE yy_scan_string( yyconst char *str )",
+ "YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )",
"#else",
- "YY_BUFFER_STATE yy_scan_string( str )",
- "yyconst char *str;",
+ "YY_BUFFER_STATE yy_scan_string( yy_str )",
+ "yyconst char *yy_str;",
"#endif",
" {",
" 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",