]> git.saurik.com Git - bison.git/commitdiff
* src/system.h (obstack_grow_literal_string): Rename as...
authorAkim Demaille <akim@epita.fr>
Tue, 19 Dec 2000 14:51:24 +0000 (14:51 +0000)
committerAkim Demaille <akim@epita.fr>
Tue, 19 Dec 2000 14:51:24 +0000 (14:51 +0000)
(obstack_grow_string): this.
* src/output.c (output_parser): Recognize `%% actions' instead of
`$'.
* src/bison.s1: s/$/%% actions/.
* src/bison.hairy: Likewise.

ChangeLog
src/bison.hairy
src/bison.s1
src/bison.simple
src/output.c
src/reader.c
src/system.h

index 256dac8888cfb0363d8fb75cac2a45e2914a44d6..1f1236b426b23711609c8ba3a7e942a02f378f11 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2000-12-19  Akim Demaille  <akim@epita.fr>
+
+       * src/system.h (obstack_grow_literal_string): Rename as...
+       (obstack_grow_string): this.
+       * src/output.c (output_parser): Recognize `%% actions' instead of
+       `$'.
+       * src/bison.s1: s/$/%% actions/.
+       * src/bison.hairy: Likewise.
+
 2000-12-19  Akim Demaille  <akim@epita.fr>
 
        * src/output.c (output_parser): Compute the `#line' lines when
 2000-12-19  Akim Demaille  <akim@epita.fr>
 
        * src/output.c (output_parser): Compute the `#line' lines when
index 999b55591d01c856263bc0172a1cc243c97dc875..3acb54bc82f5d4ed6297f4efb654671eadc8fbfe 100644 (file)
@@ -1,4 +1,4 @@
-
+                                                          /* -*- C -*- */
 extern int timeclock;
 
 
 extern int timeclock;
 
 
@@ -261,7 +261,7 @@ yyresume:
          yylsp->last_line = (yylsp+yylen-1)->last_line;
          yylsp->last_column = (yylsp+yylen-1)->last_column;
        }
          yylsp->last_line = (yylsp+yylen-1)->last_line;
          yylsp->last_column = (yylsp+yylen-1)->last_column;
        }
-         
+
       if (yyptr == yyrq + YYMAXRULES)
         yyptr = yyrq;
     }
       if (yyptr == yyrq + YYMAXRULES)
         yyptr = yyrq;
     }
@@ -331,4 +331,4 @@ yyerrlab:
   goto yyresume;
 }
 
   goto yyresume;
 }
 
-$
+%% actions
index 0117220a48f3479404b9c95bf29e967fd59debd4..2a0f0b194145edca898b8c554bb136f8a6931c6b 100644 (file)
 # define YYSTACK_ALLOC malloc
 #endif
 
 # define YYSTACK_ALLOC malloc
 #endif
 
-/* Note: there must be only one dollar sign in this file.
-   It is replaced by the list of actions, each action
-   as one case of the switch.  */
-
 #define yyerrok                (yyerrstatus = 0)
 #define yyclearin      (yychar = YYEMPTY)
 #define YYEMPTY                -2
 #define yyerrok                (yyerrstatus = 0)
 #define yyclearin      (yychar = YYEMPTY)
 #define YYEMPTY                -2
@@ -583,7 +579,7 @@ yyreduce:
   yylen = yyr2[yyn];
 
   /* If YYLEN is nonzero, implement the default value of the action:
   yylen = yyr2[yyn];
 
   /* If YYLEN is nonzero, implement the default value of the action:
-     `{dollar}{dollar} = {dollar}1'.
+     `$$ = $1'.
 
      Otherwise, the following line sets YYVAL to the semantic value of
      the lookahead token.  This behavior is undocumented and Bison
 
      Otherwise, the following line sets YYVAL to the semantic value of
      the lookahead token.  This behavior is undocumented and Bison
@@ -615,7 +611,7 @@ yyreduce:
       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
     }
 #endif
       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
     }
 #endif
-$ /* The action file replaces this line marked with this dollarsign. */
+%% actions /* The action file replaces this line. */
 #line
 \f
   yyvsp -= yylen;
 #line
 \f
   yyvsp -= yylen;
index 0117220a48f3479404b9c95bf29e967fd59debd4..2a0f0b194145edca898b8c554bb136f8a6931c6b 100644 (file)
 # define YYSTACK_ALLOC malloc
 #endif
 
 # define YYSTACK_ALLOC malloc
 #endif
 
-/* Note: there must be only one dollar sign in this file.
-   It is replaced by the list of actions, each action
-   as one case of the switch.  */
-
 #define yyerrok                (yyerrstatus = 0)
 #define yyclearin      (yychar = YYEMPTY)
 #define YYEMPTY                -2
 #define yyerrok                (yyerrstatus = 0)
 #define yyclearin      (yychar = YYEMPTY)
 #define YYEMPTY                -2
@@ -583,7 +579,7 @@ yyreduce:
   yylen = yyr2[yyn];
 
   /* If YYLEN is nonzero, implement the default value of the action:
   yylen = yyr2[yyn];
 
   /* If YYLEN is nonzero, implement the default value of the action:
-     `{dollar}{dollar} = {dollar}1'.
+     `$$ = $1'.
 
      Otherwise, the following line sets YYVAL to the semantic value of
      the lookahead token.  This behavior is undocumented and Bison
 
      Otherwise, the following line sets YYVAL to the semantic value of
      the lookahead token.  This behavior is undocumented and Bison
@@ -615,7 +611,7 @@ yyreduce:
       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
     }
 #endif
       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
     }
 #endif
-$ /* The action file replaces this line marked with this dollarsign. */
+%% actions /* The action file replaces this line. */
 #line
 \f
   yyvsp -= yylen;
 #line
 \f
   yyvsp -= yylen;
index adef04336fdf8812b71d4772c74b9e5c474f8d93..609d980163d99c222a0514fc8e7842e4db84ec36 100644 (file)
@@ -150,7 +150,7 @@ output_short_or_char_table (struct obstack *oout,
 
       if (j >= 10)
        {
 
       if (j >= 10)
        {
-         obstack_grow_literal_string (oout, "\n  ");
+         obstack_grow_string (oout, "\n  ");
          j = 1;
        }
       else
          j = 1;
        }
       else
@@ -161,7 +161,7 @@ output_short_or_char_table (struct obstack *oout,
       obstack_fgrow1 (oout, "%6d", short_table[i]);
     }
 
       obstack_fgrow1 (oout, "%6d", short_table[i]);
     }
 
-  obstack_grow_literal_string (oout, "\n};\n");
+  obstack_grow_string (oout, "\n};\n");
 }
 
 
 }
 
 
@@ -234,7 +234,7 @@ output_headers (void)
   if (semantic_parser)
     obstack_fgrow1 (&action_obstack, ACTSTR, attrsfile_quoted);
   else
   if (semantic_parser)
     obstack_fgrow1 (&action_obstack, ACTSTR, attrsfile_quoted);
   else
-    obstack_grow_literal_string (&action_obstack, ACTSTR_SIMPLE);
+    obstack_grow_string (&action_obstack, ACTSTR_SIMPLE);
 
 /*  if (semantic_parser)       JF moved this below
     fprintf(ftable, "#include \"%s\"\n", attrsfile);
 
 /*  if (semantic_parser)       JF moved this below
     fprintf(ftable, "#include \"%s\"\n", attrsfile);
@@ -278,9 +278,9 @@ output_trailers (void)
     return;
 
   if (semantic_parser)
     return;
 
   if (semantic_parser)
-    obstack_grow_literal_string (&action_obstack, "    }\n");
+    obstack_grow_string (&action_obstack, "    }\n");
 
 
-  obstack_grow_literal_string (&action_obstack, "}\n");
+  obstack_grow_string (&action_obstack, "}\n");
 }
 
 
 }
 
 
@@ -288,7 +288,7 @@ output_trailers (void)
 static void
 output_token_translations (void)
 {
 static void
 output_token_translations (void)
 {
-  obstack_grow_literal_string (&table_obstack, "\
+  obstack_grow_string (&table_obstack, "\
 \n\
 /* YYRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */\n");
 
 \n\
 /* YYRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */\n");
 
@@ -308,8 +308,8 @@ output_token_translations (void)
     }
   else
     {
     }
   else
     {
-      obstack_grow_literal_string (&table_obstack,
-                                  "\n#define YYTRANSLATE(x) (x)\n");
+      obstack_grow_string (&table_obstack,
+                          "\n#define YYTRANSLATE(x) (x)\n");
     }
 }
 
     }
 }
 
@@ -321,7 +321,7 @@ output_gram (void)
      yyprhs and yyrhs are needed only for yydebug. */
   /* With the no_parser option, all tables are generated */
   if (!semantic_parser && !no_parser_flag)
      yyprhs and yyrhs are needed only for yydebug. */
   /* With the no_parser option, all tables are generated */
   if (!semantic_parser && !no_parser_flag)
-    obstack_grow_literal_string (&table_obstack, "\n#if YYDEBUG != 0\n");
+    obstack_grow_string (&table_obstack, "\n#if YYDEBUG != 0\n");
 
   output_short_table (&table_obstack, NULL, "yyprhs", rrhs,
                      0, 1, nrules + 1);
 
   output_short_table (&table_obstack, NULL, "yyprhs", rrhs,
                      0, 1, nrules + 1);
@@ -344,7 +344,7 @@ output_gram (void)
   }
 
   if (!semantic_parser && !no_parser_flag)
   }
 
   if (!semantic_parser && !no_parser_flag)
-    obstack_grow_literal_string (&table_obstack, "\n#endif\n");
+    obstack_grow_string (&table_obstack, "\n#endif\n");
 }
 
 
 }
 
 
@@ -363,7 +363,7 @@ output_rule_data (void)
   int j;
   short *short_tab = NULL;
 
   int j;
   short *short_tab = NULL;
 
-  obstack_grow_literal_string (&table_obstack, "\n\
+  obstack_grow_string (&table_obstack, "\n\
 #if YYDEBUG != 0\n");
 
   output_short_table (&table_obstack,
 #if YYDEBUG != 0\n");
 
   output_short_table (&table_obstack,
@@ -371,7 +371,7 @@ output_rule_data (void)
                      "yyrline", rline,
                      0, 1, nrules + 1);
 
                      "yyrline", rline,
                      0, 1, nrules + 1);
 
-  obstack_grow_literal_string (&table_obstack, "#endif\n\n");
+  obstack_grow_string (&table_obstack, "#endif\n\n");
 
   if (token_table_flag || no_parser_flag)
     {
 
   if (token_table_flag || no_parser_flag)
     {
@@ -385,11 +385,11 @@ output_rule_data (void)
 
   /* Output the table of symbol names.  */
   if (!token_table_flag && !no_parser_flag)
 
   /* Output the table of symbol names.  */
   if (!token_table_flag && !no_parser_flag)
-    obstack_grow_literal_string (&table_obstack,
-                         "\n#if YYDEBUG != 0 || defined YYERROR_VERBOSE\n\n");
-  obstack_grow_literal_string (&table_obstack, "\
+    obstack_grow_string (&table_obstack,
+                        "\n#if YYDEBUG != 0 || defined YYERROR_VERBOSE\n\n");
+  obstack_grow_string (&table_obstack, "\
 /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */\n");
 /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */\n");
-  obstack_grow_literal_string (&table_obstack,
+  obstack_grow_string (&table_obstack,
           "static const char *const yytname[] =\n{\n  ");
 
   j = 0;
           "static const char *const yytname[] =\n{\n  ");
 
   j = 0;
@@ -413,7 +413,7 @@ output_rule_data (void)
 
       if (j + strsize > 75)
        {
 
       if (j + strsize > 75)
        {
-         obstack_grow_literal_string (&table_obstack, "\n  ");
+         obstack_grow_string (&table_obstack, "\n  ");
          j = 2;
        }
 
          j = 2;
        }
 
@@ -421,39 +421,27 @@ output_rule_data (void)
       for (p = tags[i]; p && *p; p++)
        {
          if (*p == '"' || *p == '\\')
       for (p = tags[i]; p && *p; p++)
        {
          if (*p == '"' || *p == '\\')
-           {
-             obstack_fgrow1 (&table_obstack, "\\%c", *p);
-           }
+           obstack_fgrow1 (&table_obstack, "\\%c", *p);
          else if (*p == '\n')
          else if (*p == '\n')
-           {
-             obstack_grow_literal_string (&table_obstack, "\\n");
-           }
+           obstack_grow_string (&table_obstack, "\\n");
          else if (*p == '\t')
          else if (*p == '\t')
-           {
-             obstack_grow_literal_string (&table_obstack, "\\t");
-           }
+           obstack_grow_string (&table_obstack, "\\t");
          else if (*p == '\b')
          else if (*p == '\b')
-           {
-             obstack_grow_literal_string (&table_obstack, "\\b");
-           }
+           obstack_grow_string (&table_obstack, "\\b");
          else if (*p < 040 || *p >= 0177)
          else if (*p < 040 || *p >= 0177)
-           {
-             obstack_fgrow1 (&table_obstack, "\\%03o", *p);
-           }
+           obstack_fgrow1 (&table_obstack, "\\%03o", *p);
          else
          else
-           {
-             obstack_1grow (&table_obstack, *p);
-           }
+           obstack_1grow (&table_obstack, *p);
        }
 
        }
 
-      obstack_grow_literal_string (&table_obstack, "\", ");
+      obstack_grow_string (&table_obstack, "\", ");
       j += strsize;
     }
   /* add a NULL entry to list of tokens */
       j += strsize;
     }
   /* add a NULL entry to list of tokens */
-  obstack_grow_literal_string (&table_obstack, "NULL\n};\n");
+  obstack_grow_string (&table_obstack, "NULL\n};\n");
 
   if (!token_table_flag && !no_parser_flag)
 
   if (!token_table_flag && !no_parser_flag)
-    obstack_grow_literal_string (&table_obstack, "#endif\n\n");
+    obstack_grow_string (&table_obstack, "#endif\n\n");
 
   /* Output YYTOKNUM. */
   if (token_table_flag)
 
   /* Output YYTOKNUM. */
   if (token_table_flag)
@@ -1164,10 +1152,10 @@ output_parser (void)
   FILE *fskel;
   size_t line;
   const char *skeleton = NULL;
   FILE *fskel;
   size_t line;
   const char *skeleton = NULL;
-  int number_of_dollar_signs = 0;
+  int actions_dumped = 0;
 
   if (pure_parser)
 
   if (pure_parser)
-    obstack_grow_literal_string (&table_obstack, "#define YYPURE 1\n\n");
+    obstack_grow_string (&table_obstack, "#define YYPURE 1\n\n");
 
   /* Loop over lines in the standard parser file.  */
   if (semantic_parser)
 
   /* Loop over lines in the standard parser file.  */
   if (semantic_parser)
@@ -1184,63 +1172,106 @@ output_parser (void)
 
   while (1)
     {
 
   while (1)
     {
-      int is_sync_line = 0;
-      int write_line = 1;
+      enum line_type_e
+       {
+         regular_line,
+         sync_line,    /* #line. */
+         actions_line  /* %% actions. */
+       };
+      enum line_type_e line_type = regular_line;
 
       c = getc (fskel);
 
 
       c = getc (fskel);
 
-      /* See if the line starts with `#line'. */
+      /* Is this line special? */
       if (c == '#')
       if (c == '#')
-       if ((c = getc (fskel)) == 'l')
-         if ((c = getc (fskel)) == 'i')
-           if ((c = getc (fskel)) == 'n')
-             if ((c = getc (fskel)) == 'e')
-               is_sync_line = 1;
+       {
+         /* See if it's a `#line' line. */
+         if ((c = getc (fskel)) == 'l')
+           if ((c = getc (fskel)) == 'i')
+             if ((c = getc (fskel)) == 'n')
+               if ((c = getc (fskel)) == 'e')
+                 line_type = sync_line;
+               else
+                 obstack_grow_string (&table_obstack, "#lin");
              else
              else
-               obstack_grow_literal_string (&table_obstack, "#lin");
+               obstack_grow_string (&table_obstack, "#li");
            else
            else
-             obstack_grow_literal_string (&table_obstack, "#li");
+             obstack_grow_string (&table_obstack, "#l");
          else
          else
-           obstack_grow_literal_string (&table_obstack, "#l");
-       else
-         obstack_grow_literal_string (&table_obstack, "#");
+           obstack_grow_string (&table_obstack, "#");
+       }
+      else if (c == '%')
+       {
+         /* See if it's a `%% actions' line. */
+         if ((c = getc (fskel)) == '%')
+           if ((c = getc (fskel)) == ' ')
+             if ((c = getc (fskel)) == 'a')
+               if ((c = getc (fskel)) == 'c')
+                 if ((c = getc (fskel)) == 't')
+                   if ((c = getc (fskel)) == 'i')
+                     if ((c = getc (fskel)) == 'o')
+                       if ((c = getc (fskel)) == 'n')
+                         if ((c = getc (fskel)) == 's')
+                           line_type = actions_line;
+                         else
+                           obstack_grow_string (&table_obstack, "%% action");
+                       else
+                         obstack_grow_string (&table_obstack, "%% actio");
+                     else
+                       obstack_grow_string (&table_obstack, "%% acti");
+                   else
+                     obstack_grow_string (&table_obstack, "%% act");
+                 else
+                   obstack_grow_string (&table_obstack, "%% ac");
+               else
+                 obstack_grow_string (&table_obstack, "%% a");
+             else
+               obstack_grow_string (&table_obstack, "%% ");
+           else
+             obstack_grow_string (&table_obstack, "%%");
+         else
+           obstack_grow_string (&table_obstack, "%");
+       }
 
 
-      /* If was a `#line' line, either compute it, or drop it. */
-      if (is_sync_line && !no_lines_flag)
-       obstack_fgrow2 (&table_obstack, "#line %d %s\n",
-                       line, quotearg_style (c_quoting_style, skeleton));
+      switch (line_type)
+       {
+       case sync_line:
+         if (!no_lines_flag)
+           obstack_fgrow2 (&table_obstack, "#line %d %s\n",
+                           line, quotearg_style (c_quoting_style, skeleton));
 
 
-      if (is_sync_line)
-       write_line = 0;
+         /* Skip the end of line. */
+         for (; c != '\n' && c != EOF; c = getc (fskel))
+           /* nothing */;
+         break;
 
 
-      /* now write out the line... */
-      for (; c != '\n' && c != EOF; c = getc (fskel))
-       if (write_line)
+       case actions_line:
          {
          {
-           /* `$' in the parser file indicates where to put the
-              actions.  Copy them in at this point.  */
-           if (c == '$')
-             {
-               size_t size = obstack_object_size (&action_obstack);
-
-               number_of_dollar_signs++;
-               assert (number_of_dollar_signs == 1);
-               obstack_grow (&table_obstack,
-                             obstack_finish (&action_obstack),
-                             size);
-
-               /* Skip the end of the line containing `$'. */
-               write_line = 0;
-             }
-           else
-             obstack_1grow (&table_obstack, c);
+           size_t size = obstack_object_size (&action_obstack);
+
+           actions_dumped++;
+           assert (actions_dumped == 1);
+           obstack_grow (&table_obstack,
+                         obstack_finish (&action_obstack),
+                         size);
          }
          }
+
+         /* Skip the end of line. */
+         for (; c != '\n' && c != EOF; c = getc (fskel))
+           /* nothing */;
+         break;
+
+       case regular_line:
+         for (; c != '\n' && c != EOF; c = getc (fskel))
+           obstack_1grow (&table_obstack, c);
+       }
+
       if (c == EOF)
        break;
       obstack_1grow (&table_obstack, c);
       line++;
     }
       if (c == EOF)
        break;
       obstack_1grow (&table_obstack, c);
       line++;
     }
-  assert (number_of_dollar_signs == 1);
+  assert (actions_dumped == 1);
   xfclose (fskel);
 }
 
   xfclose (fskel);
 }
 
@@ -1291,7 +1322,7 @@ output (void)
     }
   reader_output_yylsp (&table_obstack);
   if (debug_flag)
     }
   reader_output_yylsp (&table_obstack);
   if (debug_flag)
-    obstack_grow_literal_string (&table_obstack, "\
+    obstack_grow_string (&table_obstack, "\
 #ifndef YYDEBUG\n\
 # define YYDEBUG 1\n\
 #endif\n\
 #ifndef YYDEBUG\n\
 # define YYDEBUG 1\n\
 #endif\n\
@@ -1302,10 +1333,10 @@ output (void)
                    quotearg_style (c_quoting_style, attrsfile));
 
   if (!no_parser_flag)
                    quotearg_style (c_quoting_style, attrsfile));
 
   if (!no_parser_flag)
-    obstack_grow_literal_string (&table_obstack, "#include <stdio.h>\n\n");
+    obstack_grow_string (&table_obstack, "#include <stdio.h>\n\n");
 
   /* Make "const" do nothing if not in ANSI C.  */
 
   /* Make "const" do nothing if not in ANSI C.  */
-  obstack_grow_literal_string (&table_obstack, "\
+  obstack_grow_string (&table_obstack, "\
 #ifndef __cplusplus\n\
 # ifndef __STDC__\n\
 #  define const\n\
 #ifndef __cplusplus\n\
 # ifndef __STDC__\n\
 #  define const\n\
index cc24af65904feb5b8755b6dfbde63ddc7510837e..156fa452ffc9b1660be1bda9ddee274f56d3aa1a 100644 (file)
@@ -343,7 +343,7 @@ copy_at (FILE *fin, FILE *fout, struct obstack *oout, int stack_offset)
       if (fout)
        fprintf (fout, "yyloc");
       if (oout)
       if (fout)
        fprintf (fout, "yyloc");
       if (oout)
-       obstack_grow_literal_string (oout, "yyloc");
+       obstack_grow_string (oout, "yyloc");
       locations_flag = 1;
     }
   else if (isdigit (c) || c == '-')
       locations_flag = 1;
     }
   else if (isdigit (c) || c == '-')
@@ -401,7 +401,7 @@ copy_dollar (FILE *fin, FILE *fout, struct obstack *oout,
       if (fout)
        fputs ("yyval", fout);
       if (oout)
       if (fout)
        fputs ("yyval", fout);
       if (oout)
-       obstack_grow_literal_string (oout, "yyval");
+       obstack_grow_string (oout, "yyval");
 
       if (!type_name)
        type_name = get_type_name (0, rule);
 
       if (!type_name)
        type_name = get_type_name (0, rule);
@@ -786,9 +786,9 @@ parse_union_decl (void)
   else
     obstack_1grow (&attrs_obstack, '\n');
 
   else
     obstack_1grow (&attrs_obstack, '\n');
 
-  obstack_grow_literal_string (&attrs_obstack, "typedef union");
+  obstack_grow_string (&attrs_obstack, "typedef union");
   if (defines_flag)
   if (defines_flag)
-    obstack_grow_literal_string (&defines_obstack, "typedef union");
+    obstack_grow_string (&defines_obstack, "typedef union");
 
   c = getc (finput);
 
 
   c = getc (finput);
 
@@ -818,9 +818,9 @@ parse_union_decl (void)
          count--;
          if (count <= 0)
            {
          count--;
          if (count <= 0)
            {
-             obstack_grow_literal_string (&attrs_obstack, " YYSTYPE;\n");
+             obstack_grow_string (&attrs_obstack, " YYSTYPE;\n");
              if (defines_flag)
              if (defines_flag)
-               obstack_grow_literal_string (&defines_obstack, " YYSTYPE;\n");
+               obstack_grow_string (&defines_obstack, " YYSTYPE;\n");
              /* JF don't choke on trailing semi */
              c = skip_white_space ();
              if (c != ';')
              /* JF don't choke on trailing semi */
              c = skip_white_space ();
              if (c != ';')
@@ -1117,8 +1117,7 @@ copy_action (symbol_list *rule, int stack_offset)
        }
     }
 
        }
     }
 
-  obstack_grow_literal_string (&action_obstack,
-                              ";\n    break;}");
+  obstack_grow_string (&action_obstack, ";\n    break;}");
 }
 \f
 /*-------------------------------------------------------------------.
 }
 \f
 /*-------------------------------------------------------------------.
@@ -1597,10 +1596,10 @@ readgram (void)
       /* We used to use `unsigned long' as YYSTYPE on MSDOS,
          but it seems better to be consistent.
          Most programs should declare their own type anyway.  */
       /* We used to use `unsigned long' as YYSTYPE on MSDOS,
          but it seems better to be consistent.
          Most programs should declare their own type anyway.  */
-      obstack_grow_literal_string (&attrs_obstack,
-                           "#ifndef YYSTYPE\n#define YYSTYPE int\n#endif\n");
+      obstack_grow_string (&attrs_obstack,
+                          "#ifndef YYSTYPE\n#define YYSTYPE int\n#endif\n");
       if (defines_flag)
       if (defines_flag)
-       obstack_grow_literal_string (&defines_obstack, "\
+       obstack_grow_string (&defines_obstack, "\
 #ifndef YYSTYPE\n\
 # define YYSTYPE int\n\
 #endif\n");
 #ifndef YYSTYPE\n\
 # define YYSTYPE int\n\
 #endif\n");
@@ -1810,8 +1809,8 @@ packsymbols (void)
            obstack_fgrow1 (&defines_obstack, "\nextern YYSTYPE %slval;\n",
                            spec_name_prefix);
          else
            obstack_fgrow1 (&defines_obstack, "\nextern YYSTYPE %slval;\n",
                            spec_name_prefix);
          else
-           obstack_grow_literal_string (&defines_obstack,
-                                        "\nextern YYSTYPE yylval;\n");
+           obstack_grow_string (&defines_obstack,
+                                "\nextern YYSTYPE yylval;\n");
        }
 
       if (semantic_parser)
        }
 
       if (semantic_parser)
@@ -1963,7 +1962,7 @@ reader (void)
                  no_parser_flag ? "Bison-generated parse tables" : "A Bison parser",
                  infile, VERSION);
 
                  no_parser_flag ? "Bison-generated parse tables" : "A Bison parser",
                  infile, VERSION);
 
-  obstack_grow_literal_string (&table_obstack,
+  obstack_grow_string (&table_obstack,
                       "#define YYBISON 1  /* Identify Bison output.  */\n\n");
   read_declarations ();
   /* Start writing the guard and action files, if they are needed.  */
                       "#define YYBISON 1  /* Identify Bison output.  */\n\n");
   read_declarations ();
   /* Start writing the guard and action files, if they are needed.  */
@@ -1978,7 +1977,7 @@ reader (void)
   /* Write closing delimiters for actions and guards.  */
   output_trailers ();
   if (locations_flag)
   /* Write closing delimiters for actions and guards.  */
   output_trailers ();
   if (locations_flag)
-    obstack_grow_literal_string (&table_obstack, "#define YYLSP_NEEDED 1\n\n");
+    obstack_grow_string (&table_obstack, "#define YYLSP_NEEDED 1\n\n");
   /* Assign the symbols their symbol numbers.  Write #defines for the
      token symbols into FDEFINES if requested.  */
   packsymbols ();
   /* Assign the symbols their symbol numbers.  Write #defines for the
      token symbols into FDEFINES if requested.  */
   packsymbols ();
@@ -1999,7 +1998,7 @@ void
 reader_output_yylsp (struct obstack *oout)
 {
   if (locations_flag)
 reader_output_yylsp (struct obstack *oout)
 {
   if (locations_flag)
-    obstack_grow_literal_string (oout, "\
+    obstack_grow_string (oout, "\
 \n\
 #ifndef YYLTYPE\n\
 typedef struct yyltype\n\
 \n\
 #ifndef YYLTYPE\n\
 typedef struct yyltype\n\
index fbb298bcff7873d50f635f37abafd08197cbab33..8229d484ee5681128d778988565ee77c0cd0561b 100644 (file)
@@ -145,7 +145,7 @@ typedef int bool;
 #define obstack_chunk_free  free
 #include "obstack.h"
 
 #define obstack_chunk_free  free
 #include "obstack.h"
 
-#define obstack_grow_literal_string(Obs, Str) \
+#define obstack_grow_string(Obs, Str) \
   obstack_grow (Obs, Str, sizeof (Str) - 1)
 
 #define obstack_fgrow1(Obs, Format, Arg1)      \
   obstack_grow (Obs, Str, sizeof (Str) - 1)
 
 #define obstack_fgrow1(Obs, Format, Arg1)      \