bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

FYI: [Main] Options prefix.


From: Pascal Bart
Subject: FYI: [Main] Options prefix.
Date: Fri, 31 Aug 2001 20:24:00 +0000 (GMT)

Hello,

        This patch corrects the name_prefix option.

Index: ChangeLog
===================================================================
RCS file: /cvsroot/bison/bison/ChangeLog,v
retrieving revision 1.201
diff -u -r1.201 ChangeLog
--- ChangeLog   2001/08/31 16:56:44     1.201
+++ ChangeLog   2001/08/31 18:18:12
@@ -1,5 +1,17 @@
 2001-08-31  Pascal Bart  <address@hidden>

+       * 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  <address@hidden>
+
        * src/main.c (main): Standardize.
        * src/output.c (output_table_data, output_parser): Likewise.
        * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
Index: src/bison.simple
===================================================================
RCS file: /cvsroot/bison/bison/src/bison.simple,v
retrieving revision 1.61
diff -u -r1.61 bison.simple
--- src/bison.simple    2001/08/31 16:56:44     1.61
+++ src/bison.simple    2001/08/31 18:18:12
@@ -33,6 +33,16 @@

 #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.  */
 %%prologue

@@ -219,7 +229,7 @@
 };

 #define yyerrok                (yyerrstatus = 0)
-#define yyclearin      (%%yychar = YYEMPTY)
+#define yyclearin      (yychar = YYEMPTY)
 #define YYEMPTY                -2
 #define YYEOF          0

@@ -237,17 +247,17 @@

 #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 @@
 #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 @@
 /* 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 @@

 #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 @@
 #endif  /* !YYPURE */

 int
-%%yyparse (YYPARSE_PARAM_ARG)
+yyparse (YYPARSE_PARAM_ARG)
      YYPARSE_PARAM_DECL
 {
   /* If reentrant, generate the variables here.  */
@@ -478,8 +488,8 @@

   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 @@
       /* 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 @@
   /* 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 @@
     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 @@
 #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 @@
 #endif

 #if YYDEBUG
-  if (%%yydebug)
+  if (yydebug)
     {
       short *ssp1 = yyss - 1;
       fprintf (stderr, "state stack now");
@@ -793,7 +803,7 @@
   /* If not already recovering from an error, report this error.  */
   if (!yyerrstatus)
     {
-      ++%%yynerrs;
+      ++yynerrs;

 #if YYERROR_VERBOSE
       yyn = yypact[yystate];
@@ -811,12 +821,12 @@
            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 @@
                        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 @@
         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 @@
 #endif

 #if YYDEBUG
-  if (%%yydebug)
+  if (yydebug)
     {
       short *ssp1 = yyss - 1;
       fprintf (stderr, "Error: state stack now");
@@ -938,7 +948,7 @@

   YYDPRINTF ((stderr, "Shifting error token, "));

-  *++yyvsp = %%yylval;
+  *++yyvsp = yylval;
 #if YYLSP_NEEDED
   *++yylsp = yylloc;
 #endif
Index: src/macrotab.c
===================================================================
RCS file: /cvsroot/bison/bison/src/macrotab.c,v
retrieving revision 1.5
diff -u -r1.5 macrotab.c
--- src/macrotab.c      2001/08/31 16:56:44     1.5
+++ src/macrotab.c      2001/08/31 18:18:12
@@ -86,15 +86,7 @@
   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");
Index: src/output.c
===================================================================
RCS file: /cvsroot/bison/bison/src/output.c,v
retrieving revision 1.51
diff -u -r1.51 output.c
--- src/output.c        2001/08/31 16:56:44     1.51
+++ src/output.c        2001/08/31 18:18:13
@@ -1075,15 +1075,7 @@
   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);
 }

 /*----------------------------------------------------------.

Pascal Bart (address@hidden)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]