]> git.saurik.com Git - bison.git/blobdiff - src/output.c
(muscle_entry_t): Remove; moved to muscle_tab.c and renamed to muscle_entry.
[bison.git] / src / output.c
index 177e6c05aab381c5720207b185b4f066d38c3d0d..e20ac59988784ca335ddeee24274ce40a6087ce0 100644 (file)
@@ -1,4 +1,4 @@
-/* Output the generated parsing program for bison,
+/* Output the generated parsing program for Bison.
    Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002
    Free Software Foundation, Inc.
 
@@ -229,13 +229,14 @@ prepare_rules (void)
       /* Separator in RHS. */
       rhs[i++] = -1;
       /* Line where rule was defined. */
-      rline[r] = rules[r].location.first_line;
+      rline[r] = rules[r].location.start.line;
       /* Dynamic precedence (GLR).  */
       dprec[r] = rules[r].dprec;
       /* Merger-function index (GLR).  */
       merger[r] = rules[r].merger;
     }
-  assert (i == nritems);
+  if (i != nritems)
+    abort ();
 
   muscle_insert_item_number_table ("rhs", rhs, ritem[0], 1, nritems);
   muscle_insert_unsigned_int_table ("prhs", prhs, 0, 0, nrules);
@@ -294,8 +295,8 @@ user_actions_output (FILE *out)
        fprintf (out, "  case %d:\n", r + 1);
 
        fprintf (out, "]b4_syncline([[%d]], ",
-                rules[r].action_location.first_line);
-       escaped_file_name_output (out, rules[r].action_location.file);
+                rules[r].action_location.start.line);
+       escaped_file_name_output (out, rules[r].action_location.start.file);
        fprintf (out, ")[\n");
        fprintf (out, "    %s\n    break;\n\n",
                 rules[r].action);
@@ -345,7 +346,8 @@ token_definitions_output (FILE *out)
       /* At this stage, if there are literal aliases, they are part of
         SYMBOLS, so we should not find symbols which are the aliases
         here.  */
-      assert (number != USER_NUMBER_ALIAS);
+      if (number == USER_NUMBER_ALIAS)
+       abort ();
 
       /* Skip error token.  */
       if (symbol == errtoken)
@@ -397,9 +399,9 @@ symbol_destructors_output (FILE *out)
           destructor, typename. */
        fprintf (out, "%s[",
                 first ? "" : ",\n");
-       escaped_file_name_output (out, symbol->destructor_location.file);
+       escaped_file_name_output (out, symbol->destructor_location.start.file);
        fprintf (out, ", [[%d]], [[%s]], [[%d]], [[%s]], [[%s]]]",
-                symbol->destructor_location.first_line,
+                symbol->destructor_location.start.line,
                 symbol->tag,
                 symbol->number,
                 symbol->destructor,
@@ -432,9 +434,9 @@ symbol_printers_output (FILE *out)
           printer, typename. */
        fprintf (out, "%s[",
                 first ? "" : ",\n");
-       escaped_file_name_output (out, symbol->printer_location.file);
+       escaped_file_name_output (out, symbol->printer_location.start.file);
        fprintf (out, ", [[%d]], [[%s]], [[%d]], [[%s]], [[%s]]]",
-                symbol->printer_location.first_line,
+                symbol->printer_location.start.line,
                 symbol->tag,
                 symbol->number,
                 symbol->printer,
@@ -526,10 +528,7 @@ output_skeleton (void)
   strcpy (full_path, pkgdatadir);
   full_path[pkgdatadirlen] = '/';
   strcpy (full_path + pkgdatadirlen + 1, m4sugar);
-  in = fopen (full_path, "r");
-  if (! in)
-    error (EXIT_FAILURE, errno, "%s", full_path);
-  xfclose (in);
+  xfclose (xfopen (full_path, "r"));
   strcpy (full_path + pkgdatadirlen + 1, skeleton);
 
   /* Create an m4 subprocess connected to us via two pipes.  */
@@ -591,8 +590,7 @@ prepare (void)
   MUSCLE_INSERT_INT ("pure", pure_parser);
   MUSCLE_INSERT_INT ("synclines_flag", !no_lines_flag);
 
-  /* FIXME: This is wrong: the muscles should decide whether they hold
-     a copy or not, but the situation is too obscure currently.  */
+  /* File names.  */
   MUSCLE_INSERT_STRING ("prefix", spec_name_prefix ? spec_name_prefix : "yy");
 
   /* User Code.  */