mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-17 16:23:04 +00:00
Fix yyerror / yylex test glitches noted by twlevo@xs4all.nl.
* tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Have yyerror return void, not int. * tests/glr-regression.at (Badly Collapsed GLR States): Likewise. (Improper handling of embedded actions and dollar(-N) in GLR parsers): yylex should return 0 at EOF rather than aborting.
This commit is contained in:
@@ -1,5 +1,13 @@
|
|||||||
2005-07-18 Paul Eggert <eggert@cs.ucla.edu>
|
2005-07-18 Paul Eggert <eggert@cs.ucla.edu>
|
||||||
|
|
||||||
|
Fix yyerror / yylex test glitches noted by twlevo@xs4all.nl.
|
||||||
|
* tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Have yyerror return
|
||||||
|
void, not int.
|
||||||
|
* tests/glr-regression.at (Badly Collapsed GLR States):
|
||||||
|
Likewise.
|
||||||
|
(Improper handling of embedded actions and dollar(-N) in GLR parsers):
|
||||||
|
yylex should return 0 at EOF rather than aborting.
|
||||||
|
|
||||||
Improve tests for stack overflow in GLR parser.
|
Improve tests for stack overflow in GLR parser.
|
||||||
Problem reported by twlevo@xs4all.nl.
|
Problem reported by twlevo@xs4all.nl.
|
||||||
* data/glr.c (struct yyGLRStack): Remove yyerrflag member.
|
* data/glr.c (struct yyGLRStack): Remove yyerrflag member.
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ $1
|
|||||||
# define ERROR_PARAMETERS char const *s
|
# define ERROR_PARAMETERS char const *s
|
||||||
#endif
|
#endif
|
||||||
int yylex (LEX_PARAMETERS);
|
int yylex (LEX_PARAMETERS);
|
||||||
int yyerror (ERROR_PARAMETERS);
|
void yyerror (ERROR_PARAMETERS);
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%token TYPENAME ID
|
%token TYPENAME ID
|
||||||
@@ -191,7 +191,7 @@ yylex (LEX_PARAMETERS)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
void
|
||||||
yyerror (ERROR_PARAMETERS)
|
yyerror (ERROR_PARAMETERS)
|
||||||
{
|
{
|
||||||
#if YYPURE && YYLSP_NEEDED
|
#if YYPURE && YYLSP_NEEDED
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ AT_DATA_GRAMMAR([glr-regr1.y],
|
|||||||
#define YYSTYPE int
|
#define YYSTYPE int
|
||||||
static YYSTYPE exprMerge (YYSTYPE x0, YYSTYPE x1);
|
static YYSTYPE exprMerge (YYSTYPE x0, YYSTYPE x1);
|
||||||
int yylex (void);
|
int yylex (void);
|
||||||
int yyerror (char const *msg);
|
void yyerror (char const *msg);
|
||||||
%}
|
%}
|
||||||
|
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@ main (void)
|
|||||||
return yyparse ();
|
return yyparse ();
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
void
|
||||||
yyerror (char const *msg)
|
yyerror (char const *msg)
|
||||||
{
|
{
|
||||||
fprintf (stderr, "%s\n", msg);
|
fprintf (stderr, "%s\n", msg);
|
||||||
@@ -184,7 +184,7 @@ yylex (void)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (fscanf (yyin, "%49s", buf) != 1)
|
if (fscanf (yyin, "%49s", buf) != 1)
|
||||||
abort ();
|
return 0;
|
||||||
if (sizeof buf - 1 <= strlen (buf))
|
if (sizeof buf - 1 <= strlen (buf))
|
||||||
abort ();
|
abort ();
|
||||||
s = (char *) malloc (strlen (buf) + 1);
|
s = (char *) malloc (strlen (buf) + 1);
|
||||||
|
|||||||
Reference in New Issue
Block a user