mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-21 18:23:03 +00:00
* src/output.c (prepare): Delete insertion of previous muscles,
and insert the `prefix' muscles. * src/macrotab.c (macro_init): Likewise. (macro_init): Initialization prefix directive by `yy'. * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval, %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar, yylval, yydebug, yyerror, yynerrs and yyparse. New directive `#define' to substitute yydebug, ... with option name_prefix.
This commit is contained in:
12
ChangeLog
12
ChangeLog
@@ -1,3 +1,15 @@
|
|||||||
|
2001-08-31 Pascal Bart <pascal.bart@epita.fr>
|
||||||
|
|
||||||
|
* src/output.c (prepare): Delete insertion of previous muscles,
|
||||||
|
and insert the `prefix' muscles.
|
||||||
|
* src/macrotab.c (macro_init): Likewise.
|
||||||
|
(macro_init): Initialization prefix directive by `yy'.
|
||||||
|
* src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
|
||||||
|
%%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
|
||||||
|
yylval, yydebug, yyerror, yynerrs and yyparse.
|
||||||
|
New directive `#define' to substitute yydebug, ... with option
|
||||||
|
name_prefix.
|
||||||
|
|
||||||
2001-08-31 Pascal Bart <pascal.bart@epita.fr>
|
2001-08-31 Pascal Bart <pascal.bart@epita.fr>
|
||||||
|
|
||||||
* src/main.c (main): Standardize.
|
* src/main.c (main): Standardize.
|
||||||
|
|||||||
104
src/bison.simple
104
src/bison.simple
@@ -33,6 +33,16 @@
|
|||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* If name_prefix is specify substitute the variables and functions
|
||||||
|
names. */
|
||||||
|
#define yyparse %%prefix##parse
|
||||||
|
#define yylex %%prefix##lex
|
||||||
|
#define yyerror %%prefix##error
|
||||||
|
#define yylval %%prefix##lval
|
||||||
|
#define yychar %%prefix##char
|
||||||
|
#define yydebug %%prefix##debug
|
||||||
|
#define yynerrs %%prefix##nerrs
|
||||||
|
|
||||||
/* Copy the user declarations. */
|
/* Copy the user declarations. */
|
||||||
%%prologue
|
%%prologue
|
||||||
|
|
||||||
@@ -219,7 +229,7 @@ static const short yycheck[] =
|
|||||||
};
|
};
|
||||||
|
|
||||||
#define yyerrok (yyerrstatus = 0)
|
#define yyerrok (yyerrstatus = 0)
|
||||||
#define yyclearin (%%yychar = YYEMPTY)
|
#define yyclearin (yychar = YYEMPTY)
|
||||||
#define YYEMPTY -2
|
#define YYEMPTY -2
|
||||||
#define YYEOF 0
|
#define YYEOF 0
|
||||||
|
|
||||||
@@ -237,17 +247,17 @@ static const short yycheck[] =
|
|||||||
|
|
||||||
#define YYBACKUP(Token, Value) \
|
#define YYBACKUP(Token, Value) \
|
||||||
do \
|
do \
|
||||||
if (%%yychar == YYEMPTY && yylen == 1) \
|
if (yychar == YYEMPTY && yylen == 1) \
|
||||||
{ \
|
{ \
|
||||||
%%yychar = (Token); \
|
yychar = (Token); \
|
||||||
%%yylval = (Value); \
|
yylval = (Value); \
|
||||||
yychar1 = YYTRANSLATE (%%yychar); \
|
yychar1 = YYTRANSLATE (yychar); \
|
||||||
YYPOPSTACK; \
|
YYPOPSTACK; \
|
||||||
goto yybackup; \
|
goto yybackup; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
%%yyerror ("syntax error: cannot back up"); \
|
yyerror ("syntax error: cannot back up"); \
|
||||||
YYERROR; \
|
YYERROR; \
|
||||||
} \
|
} \
|
||||||
while (0)
|
while (0)
|
||||||
@@ -273,33 +283,33 @@ while (0)
|
|||||||
#if YYPURE
|
#if YYPURE
|
||||||
# if YYLSP_NEEDED
|
# if YYLSP_NEEDED
|
||||||
# ifdef YYLEX_PARAM
|
# ifdef YYLEX_PARAM
|
||||||
# define YYLEX %%yylex (&%%yylval, &yylloc, YYLEX_PARAM)
|
# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
|
||||||
# else
|
# else
|
||||||
# define YYLEX %%yylex (&%%yylval, &yylloc)
|
# define YYLEX yylex (&yylval, &yylloc)
|
||||||
# endif
|
# endif
|
||||||
# else /* !YYLSP_NEEDED */
|
# else /* !YYLSP_NEEDED */
|
||||||
# ifdef YYLEX_PARAM
|
# ifdef YYLEX_PARAM
|
||||||
# define YYLEX %%yylex (&%%yylval, YYLEX_PARAM)
|
# define YYLEX yylex (&yylval, YYLEX_PARAM)
|
||||||
# else
|
# else
|
||||||
# define YYLEX %%yylex (&%%yylval)
|
# define YYLEX yylex (&yylval)
|
||||||
# endif
|
# endif
|
||||||
# endif /* !YYLSP_NEEDED */
|
# endif /* !YYLSP_NEEDED */
|
||||||
#else /* !YYPURE */
|
#else /* !YYPURE */
|
||||||
# define YYLEX %%yylex ()
|
# define YYLEX yylex ()
|
||||||
#endif /* !YYPURE */
|
#endif /* !YYPURE */
|
||||||
|
|
||||||
/* Enable debugging if requested. */
|
/* Enable debugging if requested. */
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
# define YYDPRINTF(Args) \
|
# define YYDPRINTF(Args) \
|
||||||
do { \
|
do { \
|
||||||
if (%%yydebug) \
|
if (yydebug) \
|
||||||
fprintf Args; \
|
fprintf Args; \
|
||||||
} while (0)
|
} while (0)
|
||||||
/* Nonzero means print parse trace. [The following comment makes no
|
/* Nonzero means print parse trace. [The following comment makes no
|
||||||
sense to me. Could someone clarify it? --akim] Since this is
|
sense to me. Could someone clarify it? --akim] Since this is
|
||||||
uninitialized, it does not stop multiple parsers from coexisting.
|
uninitialized, it does not stop multiple parsers from coexisting.
|
||||||
*/
|
*/
|
||||||
int %%yydebug;
|
int yydebug;
|
||||||
#else /* !YYDEBUG */
|
#else /* !YYDEBUG */
|
||||||
# define YYDPRINTF(Args)
|
# define YYDPRINTF(Args)
|
||||||
#endif /* !YYDEBUG */
|
#endif /* !YYDEBUG */
|
||||||
@@ -377,9 +387,9 @@ __yy_memcpy (char *to, const char *from, unsigned int count)
|
|||||||
/* Prevent warning if -Wstrict-prototypes. */
|
/* Prevent warning if -Wstrict-prototypes. */
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
# ifdef YYPARSE_PARAM
|
# ifdef YYPARSE_PARAM
|
||||||
int %%yyparse (void *);
|
int yyparse (void *);
|
||||||
# else
|
# else
|
||||||
int %%yyparse (void);
|
int yyparse (void);
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -388,13 +398,13 @@ int %%yyparse (void);
|
|||||||
|
|
||||||
#define _YY_DECL_VARIABLES \
|
#define _YY_DECL_VARIABLES \
|
||||||
/* The lookahead symbol. */ \
|
/* The lookahead symbol. */ \
|
||||||
int %%yychar; \
|
int yychar; \
|
||||||
\
|
\
|
||||||
/* The semantic value of the lookahead symbol. */ \
|
/* The semantic value of the lookahead symbol. */ \
|
||||||
YYSTYPE %%yylval; \
|
YYSTYPE yylval; \
|
||||||
\
|
\
|
||||||
/* Number of parse errors so far. */ \
|
/* Number of parse errors so far. */ \
|
||||||
int %%yynerrs;
|
int yynerrs;
|
||||||
|
|
||||||
#if YYLSP_NEEDED
|
#if YYLSP_NEEDED
|
||||||
# define YY_DECL_VARIABLES \
|
# define YY_DECL_VARIABLES \
|
||||||
@@ -414,7 +424,7 @@ YY_DECL_VARIABLES
|
|||||||
#endif /* !YYPURE */
|
#endif /* !YYPURE */
|
||||||
|
|
||||||
int
|
int
|
||||||
%%yyparse (YYPARSE_PARAM_ARG)
|
yyparse (YYPARSE_PARAM_ARG)
|
||||||
YYPARSE_PARAM_DECL
|
YYPARSE_PARAM_DECL
|
||||||
{
|
{
|
||||||
/* If reentrant, generate the variables here. */
|
/* If reentrant, generate the variables here. */
|
||||||
@@ -478,8 +488,8 @@ int
|
|||||||
|
|
||||||
yystate = 0;
|
yystate = 0;
|
||||||
yyerrstatus = 0;
|
yyerrstatus = 0;
|
||||||
%%yynerrs = 0;
|
yynerrs = 0;
|
||||||
%%yychar = YYEMPTY; /* Cause a token to be read. */
|
yychar = YYEMPTY; /* Cause a token to be read. */
|
||||||
|
|
||||||
/* Initialize stack pointers.
|
/* Initialize stack pointers.
|
||||||
Waste one element of value and location stack
|
Waste one element of value and location stack
|
||||||
@@ -545,7 +555,7 @@ yysetstate:
|
|||||||
/* Extend the stack our own way. */
|
/* Extend the stack our own way. */
|
||||||
if (yystacksize >= YYMAXDEPTH)
|
if (yystacksize >= YYMAXDEPTH)
|
||||||
{
|
{
|
||||||
%%yyerror ("parser stack overflow");
|
yyerror ("parser stack overflow");
|
||||||
if (yyfree_stacks)
|
if (yyfree_stacks)
|
||||||
{
|
{
|
||||||
free (yyss);
|
free (yyss);
|
||||||
@@ -611,35 +621,35 @@ yybackup:
|
|||||||
/* yychar is either YYEMPTY or YYEOF
|
/* yychar is either YYEMPTY or YYEOF
|
||||||
or a valid token in external form. */
|
or a valid token in external form. */
|
||||||
|
|
||||||
if (%%yychar == YYEMPTY)
|
if (yychar == YYEMPTY)
|
||||||
{
|
{
|
||||||
YYDPRINTF ((stderr, "Reading a token: "));
|
YYDPRINTF ((stderr, "Reading a token: "));
|
||||||
%%yychar = YYLEX;
|
yychar = YYLEX;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Convert token to internal form (in yychar1) for indexing tables with. */
|
/* Convert token to internal form (in yychar1) for indexing tables with. */
|
||||||
|
|
||||||
if (%%yychar <= 0) /* This means end of input. */
|
if (yychar <= 0) /* This means end of input. */
|
||||||
{
|
{
|
||||||
yychar1 = 0;
|
yychar1 = 0;
|
||||||
%%yychar = YYEOF; /* Don't call YYLEX any more. */
|
yychar = YYEOF; /* Don't call YYLEX any more. */
|
||||||
|
|
||||||
YYDPRINTF ((stderr, "Now at end of input.\n"));
|
YYDPRINTF ((stderr, "Now at end of input.\n"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
yychar1 = YYTRANSLATE (%%yychar);
|
yychar1 = YYTRANSLATE (yychar);
|
||||||
|
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
/* We have to keep this `#if YYDEBUG', since we use variables
|
/* We have to keep this `#if YYDEBUG', since we use variables
|
||||||
which are defined only if `YYDEBUG' is set. */
|
which are defined only if `YYDEBUG' is set. */
|
||||||
if (%%yydebug)
|
if (yydebug)
|
||||||
{
|
{
|
||||||
fprintf (stderr, "Next token is %d (%s", %%yychar, yytname[yychar1]);
|
fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
|
||||||
/* Give the individual parser a way to print the precise
|
/* Give the individual parser a way to print the precise
|
||||||
meaning of a token, for further debugging info. */
|
meaning of a token, for further debugging info. */
|
||||||
# ifdef YYPRINT
|
# ifdef YYPRINT
|
||||||
YYPRINT (stderr, %%yychar, %%yylval);
|
YYPRINT (stderr, yychar, yylval);
|
||||||
# endif
|
# endif
|
||||||
fprintf (stderr, ")\n");
|
fprintf (stderr, ")\n");
|
||||||
}
|
}
|
||||||
@@ -673,13 +683,13 @@ yybackup:
|
|||||||
YYACCEPT;
|
YYACCEPT;
|
||||||
|
|
||||||
/* Shift the lookahead token. */
|
/* Shift the lookahead token. */
|
||||||
YYDPRINTF ((stderr, "Shifting token %d (%s), ", %%yychar, yytname[yychar1]));
|
YYDPRINTF ((stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]));
|
||||||
|
|
||||||
/* Discard the token being shifted unless it is eof. */
|
/* Discard the token being shifted unless it is eof. */
|
||||||
if (%%yychar != YYEOF)
|
if (yychar != YYEOF)
|
||||||
%%yychar = YYEMPTY;
|
yychar = YYEMPTY;
|
||||||
|
|
||||||
*++yyvsp = %%yylval;
|
*++yyvsp = yylval;
|
||||||
#if YYLSP_NEEDED
|
#if YYLSP_NEEDED
|
||||||
*++yylsp = yylloc;
|
*++yylsp = yylloc;
|
||||||
#endif
|
#endif
|
||||||
@@ -730,7 +740,7 @@ yyreduce:
|
|||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
/* We have to keep this `#if YYDEBUG', since we use variables which
|
/* We have to keep this `#if YYDEBUG', since we use variables which
|
||||||
are defined only if `YYDEBUG' is set. */
|
are defined only if `YYDEBUG' is set. */
|
||||||
if (%%yydebug)
|
if (yydebug)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@@ -756,7 +766,7 @@ yyreduce:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
if (%%yydebug)
|
if (yydebug)
|
||||||
{
|
{
|
||||||
short *ssp1 = yyss - 1;
|
short *ssp1 = yyss - 1;
|
||||||
fprintf (stderr, "state stack now");
|
fprintf (stderr, "state stack now");
|
||||||
@@ -793,7 +803,7 @@ yyerrlab:
|
|||||||
/* If not already recovering from an error, report this error. */
|
/* If not already recovering from an error, report this error. */
|
||||||
if (!yyerrstatus)
|
if (!yyerrstatus)
|
||||||
{
|
{
|
||||||
++%%yynerrs;
|
++yynerrs;
|
||||||
|
|
||||||
#if YYERROR_VERBOSE
|
#if YYERROR_VERBOSE
|
||||||
yyn = yypact[yystate];
|
yyn = yypact[yystate];
|
||||||
@@ -811,12 +821,12 @@ yyerrlab:
|
|||||||
if (yycheck[x + yyn] == x)
|
if (yycheck[x + yyn] == x)
|
||||||
size += strlen (yytname[x]) + 15, count++;
|
size += strlen (yytname[x]) + 15, count++;
|
||||||
size += strlen ("parse error, unexpected `") + 1;
|
size += strlen ("parse error, unexpected `") + 1;
|
||||||
size += strlen (yytname[YYTRANSLATE (%%yychar)]);
|
size += strlen (yytname[YYTRANSLATE (yychar)]);
|
||||||
msg = (char *) malloc (size);
|
msg = (char *) malloc (size);
|
||||||
if (msg != 0)
|
if (msg != 0)
|
||||||
{
|
{
|
||||||
strcpy (msg, "parse error, unexpected `");
|
strcpy (msg, "parse error, unexpected `");
|
||||||
strcat (msg, yytname[YYTRANSLATE (%%yychar)]);
|
strcat (msg, yytname[YYTRANSLATE (yychar)]);
|
||||||
strcat (msg, "'");
|
strcat (msg, "'");
|
||||||
|
|
||||||
if (count < 5)
|
if (count < 5)
|
||||||
@@ -832,15 +842,15 @@ yyerrlab:
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
%%yyerror (msg);
|
yyerror (msg);
|
||||||
free (msg);
|
free (msg);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
%%yyerror ("parse error; also virtual memory exceeded");
|
yyerror ("parse error; also virtual memory exceeded");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif /* YYERROR_VERBOSE */
|
#endif /* YYERROR_VERBOSE */
|
||||||
%%yyerror ("parse error");
|
yyerror ("parse error");
|
||||||
}
|
}
|
||||||
goto yyerrlab1;
|
goto yyerrlab1;
|
||||||
|
|
||||||
@@ -855,11 +865,11 @@ yyerrlab1:
|
|||||||
error, discard it. */
|
error, discard it. */
|
||||||
|
|
||||||
/* Return failure if at end of input. */
|
/* Return failure if at end of input. */
|
||||||
if (%%yychar == YYEOF)
|
if (yychar == YYEOF)
|
||||||
YYABORT;
|
YYABORT;
|
||||||
YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
|
YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
|
||||||
%%yychar, yytname[yychar1]));
|
yychar, yytname[yychar1]));
|
||||||
%%yychar = YYEMPTY;
|
yychar = YYEMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Else will try to reuse lookahead token after shifting the error
|
/* Else will try to reuse lookahead token after shifting the error
|
||||||
@@ -900,7 +910,7 @@ yyerrpop:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
if (%%yydebug)
|
if (yydebug)
|
||||||
{
|
{
|
||||||
short *ssp1 = yyss - 1;
|
short *ssp1 = yyss - 1;
|
||||||
fprintf (stderr, "Error: state stack now");
|
fprintf (stderr, "Error: state stack now");
|
||||||
@@ -938,7 +948,7 @@ yyerrhandle:
|
|||||||
|
|
||||||
YYDPRINTF ((stderr, "Shifting error token, "));
|
YYDPRINTF ((stderr, "Shifting error token, "));
|
||||||
|
|
||||||
*++yyvsp = %%yylval;
|
*++yyvsp = yylval;
|
||||||
#if YYLSP_NEEDED
|
#if YYLSP_NEEDED
|
||||||
*++yylsp = yylloc;
|
*++yylsp = yylloc;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -86,15 +86,7 @@ macro_init (void)
|
|||||||
macro_insert ("maxtok", "0");
|
macro_insert ("maxtok", "0");
|
||||||
macro_insert ("ntbase", "0");
|
macro_insert ("ntbase", "0");
|
||||||
macro_insert ("verbose", "0");
|
macro_insert ("verbose", "0");
|
||||||
|
macro_insert ("prefix", "yy");
|
||||||
/* Variable prefix names. */
|
|
||||||
macro_insert ("yyparse", "yyparse");
|
|
||||||
macro_insert ("yylex", "yylex");
|
|
||||||
macro_insert ("yyerror", "yyerror");
|
|
||||||
macro_insert ("yylval", "yylval");
|
|
||||||
macro_insert ("yychar", "yychar");
|
|
||||||
macro_insert ("yydebug", "yydebug");
|
|
||||||
macro_insert ("yynerrs", "yynerrs");
|
|
||||||
|
|
||||||
/* No parser macros. */
|
/* No parser macros. */
|
||||||
macro_insert ("nnts", "0");
|
macro_insert ("nnts", "0");
|
||||||
|
|||||||
10
src/output.c
10
src/output.c
@@ -1075,15 +1075,7 @@ prepare (void)
|
|||||||
MACRO_INSERT_INT ("ntokens", ntokens);
|
MACRO_INSERT_INT ("ntokens", ntokens);
|
||||||
|
|
||||||
if (spec_name_prefix)
|
if (spec_name_prefix)
|
||||||
{
|
MACRO_INSERT_STRING ("prefix", spec_name_prefix);
|
||||||
MACRO_INSERT_PREFIX ("yylex", "lex");
|
|
||||||
MACRO_INSERT_PREFIX ("yychar", "char");
|
|
||||||
MACRO_INSERT_PREFIX ("yylval", "lval");
|
|
||||||
MACRO_INSERT_PREFIX ("yydebug", "debug");
|
|
||||||
MACRO_INSERT_PREFIX ("yyerror", "error");
|
|
||||||
MACRO_INSERT_PREFIX ("yynerrs", "nerrs");
|
|
||||||
MACRO_INSERT_PREFIX ("yyparse", "parse");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------.
|
/*----------------------------------------------------------.
|
||||||
|
|||||||
Reference in New Issue
Block a user