* 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:
Pascal Bart
2001-08-31 18:22:54 +00:00
parent 01ed3db59b
commit 17da6427fe
4 changed files with 71 additions and 65 deletions

View File

@@ -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.

View File

@@ -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

View File

@@ -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");

View File

@@ -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");
}
} }
/*----------------------------------------------------------. /*----------------------------------------------------------.