From 17da6427fe433be974371d1b4f56061c0903776d Mon Sep 17 00:00:00 2001 From: Pascal Bart Date: Fri, 31 Aug 2001 18:22:54 +0000 Subject: [PATCH] * 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. --- ChangeLog | 12 ++++++ src/bison.simple | 104 ++++++++++++++++++++++++++--------------------- src/macrotab.c | 10 +---- src/output.c | 10 +---- 4 files changed, 71 insertions(+), 65 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0dcfc17d..8c7e5064 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2001-08-31 Pascal Bart + + * 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 * src/main.c (main): Standardize. diff --git a/src/bison.simple b/src/bison.simple index a87908c0..1217108f 100644 --- a/src/bison.simple +++ b/src/bison.simple @@ -33,6 +33,16 @@ #include +/* 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. */ %%prologue @@ -219,7 +229,7 @@ static const short yycheck[] = }; #define yyerrok (yyerrstatus = 0) -#define yyclearin (%%yychar = YYEMPTY) +#define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 #define YYEOF 0 @@ -237,17 +247,17 @@ static const short yycheck[] = #define YYBACKUP(Token, Value) \ do \ - if (%%yychar == YYEMPTY && yylen == 1) \ + if (yychar == YYEMPTY && yylen == 1) \ { \ - %%yychar = (Token); \ - %%yylval = (Value); \ - yychar1 = YYTRANSLATE (%%yychar); \ + yychar = (Token); \ + yylval = (Value); \ + yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { \ - %%yyerror ("syntax error: cannot back up"); \ + yyerror ("syntax error: cannot back up"); \ YYERROR; \ } \ while (0) @@ -273,33 +283,33 @@ while (0) #if YYPURE # if YYLSP_NEEDED # ifdef YYLEX_PARAM -# define YYLEX %%yylex (&%%yylval, &yylloc, YYLEX_PARAM) +# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) # else -# define YYLEX %%yylex (&%%yylval, &yylloc) +# define YYLEX yylex (&yylval, &yylloc) # endif # else /* !YYLSP_NEEDED */ # ifdef YYLEX_PARAM -# define YYLEX %%yylex (&%%yylval, YYLEX_PARAM) +# define YYLEX yylex (&yylval, YYLEX_PARAM) # else -# define YYLEX %%yylex (&%%yylval) +# define YYLEX yylex (&yylval) # endif # endif /* !YYLSP_NEEDED */ #else /* !YYPURE */ -# define YYLEX %%yylex () +# define YYLEX yylex () #endif /* !YYPURE */ /* Enable debugging if requested. */ #if YYDEBUG # define YYDPRINTF(Args) \ do { \ - if (%%yydebug) \ + if (yydebug) \ fprintf Args; \ } while (0) /* Nonzero means print parse trace. [The following comment makes no sense to me. Could someone clarify it? --akim] Since this is uninitialized, it does not stop multiple parsers from coexisting. */ -int %%yydebug; +int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) #endif /* !YYDEBUG */ @@ -377,9 +387,9 @@ __yy_memcpy (char *to, const char *from, unsigned int count) /* Prevent warning if -Wstrict-prototypes. */ #ifdef __GNUC__ # ifdef YYPARSE_PARAM -int %%yyparse (void *); +int yyparse (void *); # else -int %%yyparse (void); +int yyparse (void); # endif #endif @@ -388,13 +398,13 @@ int %%yyparse (void); #define _YY_DECL_VARIABLES \ /* The lookahead symbol. */ \ -int %%yychar; \ +int yychar; \ \ /* The semantic value of the lookahead symbol. */ \ -YYSTYPE %%yylval; \ +YYSTYPE yylval; \ \ /* Number of parse errors so far. */ \ -int %%yynerrs; +int yynerrs; #if YYLSP_NEEDED # define YY_DECL_VARIABLES \ @@ -414,7 +424,7 @@ YY_DECL_VARIABLES #endif /* !YYPURE */ int -%%yyparse (YYPARSE_PARAM_ARG) +yyparse (YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL { /* If reentrant, generate the variables here. */ @@ -478,8 +488,8 @@ int yystate = 0; yyerrstatus = 0; - %%yynerrs = 0; - %%yychar = YYEMPTY; /* Cause a token to be read. */ + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack @@ -545,7 +555,7 @@ yysetstate: /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) { - %%yyerror ("parser stack overflow"); + yyerror ("parser stack overflow"); if (yyfree_stacks) { free (yyss); @@ -611,35 +621,35 @@ yybackup: /* yychar is either YYEMPTY or YYEOF or a valid token in external form. */ - if (%%yychar == YYEMPTY) + if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); - %%yychar = YYLEX; + yychar = YYLEX; } /* 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; - %%yychar = YYEOF; /* Don't call YYLEX any more. */ + yychar = YYEOF; /* Don't call YYLEX any more. */ YYDPRINTF ((stderr, "Now at end of input.\n")); } else { - yychar1 = YYTRANSLATE (%%yychar); + yychar1 = YYTRANSLATE (yychar); #if YYDEBUG /* We have to keep this `#if YYDEBUG', since we use variables 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 meaning of a token, for further debugging info. */ # ifdef YYPRINT - YYPRINT (stderr, %%yychar, %%yylval); + YYPRINT (stderr, yychar, yylval); # endif fprintf (stderr, ")\n"); } @@ -673,13 +683,13 @@ yybackup: YYACCEPT; /* 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. */ - if (%%yychar != YYEOF) - %%yychar = YYEMPTY; + if (yychar != YYEOF) + yychar = YYEMPTY; - *++yyvsp = %%yylval; + *++yyvsp = yylval; #if YYLSP_NEEDED *++yylsp = yylloc; #endif @@ -730,7 +740,7 @@ yyreduce: #if YYDEBUG /* We have to keep this `#if YYDEBUG', since we use variables which are defined only if `YYDEBUG' is set. */ - if (%%yydebug) + if (yydebug) { int i; @@ -756,7 +766,7 @@ yyreduce: #endif #if YYDEBUG - if (%%yydebug) + if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "state stack now"); @@ -793,7 +803,7 @@ yyerrlab: /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { - ++%%yynerrs; + ++yynerrs; #if YYERROR_VERBOSE yyn = yypact[yystate]; @@ -811,12 +821,12 @@ yyerrlab: if (yycheck[x + yyn] == x) size += strlen (yytname[x]) + 15, count++; size += strlen ("parse error, unexpected `") + 1; - size += strlen (yytname[YYTRANSLATE (%%yychar)]); + size += strlen (yytname[YYTRANSLATE (yychar)]); msg = (char *) malloc (size); if (msg != 0) { strcpy (msg, "parse error, unexpected `"); - strcat (msg, yytname[YYTRANSLATE (%%yychar)]); + strcat (msg, yytname[YYTRANSLATE (yychar)]); strcat (msg, "'"); if (count < 5) @@ -832,15 +842,15 @@ yyerrlab: count++; } } - %%yyerror (msg); + yyerror (msg); free (msg); } else - %%yyerror ("parse error; also virtual memory exceeded"); + yyerror ("parse error; also virtual memory exceeded"); } else #endif /* YYERROR_VERBOSE */ - %%yyerror ("parse error"); + yyerror ("parse error"); } goto yyerrlab1; @@ -855,11 +865,11 @@ yyerrlab1: error, discard it. */ /* Return failure if at end of input. */ - if (%%yychar == YYEOF) + if (yychar == YYEOF) YYABORT; YYDPRINTF ((stderr, "Discarding token %d (%s).\n", - %%yychar, yytname[yychar1])); - %%yychar = YYEMPTY; + yychar, yytname[yychar1])); + yychar = YYEMPTY; } /* Else will try to reuse lookahead token after shifting the error @@ -900,7 +910,7 @@ yyerrpop: #endif #if YYDEBUG - if (%%yydebug) + if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "Error: state stack now"); @@ -938,7 +948,7 @@ yyerrhandle: YYDPRINTF ((stderr, "Shifting error token, ")); - *++yyvsp = %%yylval; + *++yyvsp = yylval; #if YYLSP_NEEDED *++yylsp = yylloc; #endif diff --git a/src/macrotab.c b/src/macrotab.c index e7f18a1d..b3693214 100644 --- a/src/macrotab.c +++ b/src/macrotab.c @@ -86,15 +86,7 @@ macro_init (void) macro_insert ("maxtok", "0"); macro_insert ("ntbase", "0"); macro_insert ("verbose", "0"); - - /* 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"); + macro_insert ("prefix", "yy"); /* No parser macros. */ macro_insert ("nnts", "0"); diff --git a/src/output.c b/src/output.c index a788343a..17329c89 100644 --- a/src/output.c +++ b/src/output.c @@ -1075,15 +1075,7 @@ prepare (void) MACRO_INSERT_INT ("ntokens", ntokens); if (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"); - } + MACRO_INSERT_STRING ("prefix", spec_name_prefix); } /*----------------------------------------------------------. -- 2.45.2