summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd C. Miller <millert@cvs.openbsd.org>1996-12-10 22:22:04 +0000
committerTodd C. Miller <millert@cvs.openbsd.org>1996-12-10 22:22:04 +0000
commit8018851508853c18911fe2f35cdeb0559afd7fef (patch)
tree26d12b0618dd5d4d778f9af2f689df83a2331544
parent99255da4c334ab132bdb8cb70b8dcb374578dcf0 (diff)
Flex 2.5.4
-rw-r--r--usr.bin/lex/VERSION2
-rw-r--r--usr.bin/lex/flex.skl54
-rw-r--r--usr.bin/lex/initscan.c56
-rw-r--r--usr.bin/lex/libyywrap.c7
-rw-r--r--usr.bin/lex/version.h4
5 files changed, 72 insertions, 51 deletions
diff --git a/usr.bin/lex/VERSION b/usr.bin/lex/VERSION
index cb2a4d11101..c1e55be514d 100644
--- a/usr.bin/lex/VERSION
+++ b/usr.bin/lex/VERSION
@@ -1,2 +1,2 @@
-A complete flex-2.5.3 distribution is available from ftp.ee.lbl.gov
+A complete flex-2.5.4 distribution is available from ftp.ee.lbl.gov
or prep.ai.mit.edu
diff --git a/usr.bin/lex/flex.skl b/usr.bin/lex/flex.skl
index 62b0fefae76..ad57eaf58ee 100644
--- a/usr.bin/lex/flex.skl
+++ b/usr.bin/lex/flex.skl
@@ -1,9 +1,9 @@
-/* $OpenBSD: flex.skl,v 1.3 1996/07/13 22:21:58 millert Exp $ */
+/* $OpenBSD: flex.skl,v 1.4 1996/12/10 22:22:00 millert Exp $ */
/* A lexical scanner generated by flex */
/* Scanner skeleton version:
- * $Header: /cvs/OpenBSD/src/usr.bin/lex/flex.skl,v 1.3 1996/07/13 22:21:58 millert Exp $
+ * $Header: /cvs/OpenBSD/src/usr.bin/lex/flex.skl,v 1.4 1996/12/10 22:22:00 millert Exp $
*/
#define FLEX_SCANNER
@@ -252,7 +252,7 @@ void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
#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 ));
%*
@@ -785,7 +785,7 @@ int yyFlexLexer::yy_get_next_buffer()
/* 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
{
@@ -840,6 +840,8 @@ int yyFlexLexer::yy_get_next_buffer()
/* 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 )
@@ -949,7 +951,8 @@ void yyFlexLexer::yyunput( int c, register char* yy_bp )
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" );
@@ -999,13 +1002,26 @@ int yyFlexLexer::yyinput()
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;
@@ -1019,15 +1035,6 @@ int yyFlexLexer::yyinput()
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
}
}
}
@@ -1225,6 +1232,9 @@ YY_BUFFER_STATE b;
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
@@ -1288,17 +1298,17 @@ yy_size_t size;
#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
diff --git a/usr.bin/lex/initscan.c b/usr.bin/lex/initscan.c
index b0f9140d98c..cd0c069913f 100644
--- a/usr.bin/lex/initscan.c
+++ b/usr.bin/lex/initscan.c
@@ -1,10 +1,10 @@
-/* $OpenBSD: initscan.c,v 1.3 1996/07/13 22:22:03 millert Exp $ */
+/* $OpenBSD: initscan.c,v 1.4 1996/12/10 22:22:01 millert Exp $ */
#line 2 "scan.c"
/* A lexical scanner generated by flex */
/* Scanner skeleton version:
- * $Header: /cvs/OpenBSD/src/usr.bin/lex/initscan.c,v 1.3 1996/07/13 22:22:03 millert Exp $
+ * $Header: /cvs/OpenBSD/src/usr.bin/lex/initscan.c,v 1.4 1996/12/10 22:22:01 millert Exp $
*/
#define FLEX_SCANNER
@@ -239,7 +239,7 @@ void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
#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 ));
static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
@@ -1272,7 +1272,7 @@ char *yytext;
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
-/* $Header: /cvs/OpenBSD/src/usr.bin/lex/initscan.c,v 1.3 1996/07/13 22:22:03 millert Exp $ */
+/* $Header: /cvs/OpenBSD/src/usr.bin/lex/initscan.c,v 1.4 1996/12/10 22:22:01 millert Exp $ */
#include "flexdef.h"
#include "parse.h"
@@ -2931,7 +2931,7 @@ static int yy_get_next_buffer()
/* 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
{
@@ -2986,6 +2986,8 @@ static int yy_get_next_buffer()
/* 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 )
@@ -3111,7 +3113,8 @@ register char *yy_bp;
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" );
@@ -3154,13 +3157,26 @@ static int input()
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;
@@ -3174,15 +3190,6 @@ static int input()
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
}
}
}
@@ -3347,6 +3354,9 @@ YY_BUFFER_STATE b;
#endif
{
+ if ( ! b )
+ return;
+
b->yy_n_chars = 0;
/* We always need two end-of-buffer characters. The first causes
@@ -3406,17 +3416,17 @@ yy_size_t size;
#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
diff --git a/usr.bin/lex/libyywrap.c b/usr.bin/lex/libyywrap.c
index db715f99859..0861ff80cc0 100644
--- a/usr.bin/lex/libyywrap.c
+++ b/usr.bin/lex/libyywrap.c
@@ -1,14 +1,15 @@
-/* $OpenBSD: libyywrap.c,v 1.3 1996/07/13 22:22:06 millert Exp $ */
+/* $OpenBSD: libyywrap.c,v 1.4 1996/12/10 22:22:03 millert Exp $ */
/* libyywrap - flex run-time support library "yywrap" function */
-/* $Header: /cvs/OpenBSD/src/usr.bin/lex/libyywrap.c,v 1.3 1996/07/13 22:22:06 millert Exp $ */
+/* $Header: /cvs/OpenBSD/src/usr.bin/lex/libyywrap.c,v 1.4 1996/12/10 22:22:03 millert Exp $ */
#include <sys/cdefs.h>
int yywrap __P((void));
-int yywrap()
+int
+yywrap()
{
return 1;
}
diff --git a/usr.bin/lex/version.h b/usr.bin/lex/version.h
index b6a64e254e9..abe28b14d45 100644
--- a/usr.bin/lex/version.h
+++ b/usr.bin/lex/version.h
@@ -1,3 +1,3 @@
-/* $OpenBSD: version.h,v 1.3 1996/07/13 22:22:14 millert Exp $ */
+/* $OpenBSD: version.h,v 1.4 1996/12/10 22:22:03 millert Exp $ */
-#define FLEX_VERSION "2.5.3"
+#define FLEX_VERSION "2.5.4"