]> git.saurik.com Git - bison.git/blobdiff - src/reduce.c
Adjust to type renamings.
[bison.git] / src / reduce.c
index aadf3f8819bd72f903caae07781b008b38ba212e..e3ed6f6153c200649821fb4f976878b289616b7e 100644 (file)
@@ -1,5 +1,5 @@
 /* Grammar reduction for Bison.
 /* Grammar reduction for Bison.
-   Copyright (C) 1988, 1989, 2000, 2001, 2002  Free Software Foundation, Inc.
+   Copyright (C) 1988, 1989, 2000, 2001, 2002 Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
 
    This file is part of Bison, the GNU Compiler Compiler.
 
@@ -71,8 +71,8 @@ useful_production (rule_number_t r, bitset N0)
 
   for (rhsp = rules[r].rhs; *rhsp >= 0; ++rhsp)
     if (ISVAR (*rhsp) && !bitset_test (N0, *rhsp - ntokens))
 
   for (rhsp = rules[r].rhs; *rhsp >= 0; ++rhsp)
     if (ISVAR (*rhsp) && !bitset_test (N0, *rhsp - ntokens))
-      return FALSE;
-  return TRUE;
+      return false;
+  return true;
 }
 
 
 }
 
 
@@ -161,9 +161,9 @@ inaccessable_symbols (void)
   Pp = bitset_create (nrules, BITSET_FIXED);
 
   /* If the start symbol isn't useful, then nothing will be useful. */
   Pp = bitset_create (nrules, BITSET_FIXED);
 
   /* If the start symbol isn't useful, then nothing will be useful. */
-  if (bitset_test (N, axiom->number - ntokens))
+  if (bitset_test (N, accept->number - ntokens))
     {
     {
-      bitset_set (V, axiom->number);
+      bitset_set (V, accept->number);
 
       while (1)
        {
 
       while (1)
        {
@@ -194,7 +194,7 @@ inaccessable_symbols (void)
   V = Vp;
 
   /* Tokens 0, 1, and 2 are internal to Bison.  Consider them useful. */
   V = Vp;
 
   /* Tokens 0, 1, and 2 are internal to Bison.  Consider them useful. */
-  bitset_set (V, eoftoken->number);            /* end-of-input token */
+  bitset_set (V, endtoken->number);            /* end-of-input token */
   bitset_set (V, errtoken->number);            /* error token */
   bitset_set (V, undeftoken->number);          /* some undefined token */
 
   bitset_set (V, errtoken->number);            /* error token */
   bitset_set (V, undeftoken->number);          /* some undefined token */
 
@@ -235,15 +235,8 @@ reduce_grammar_tables (void)
   {
     rule_number_t r;
     for (r = 0; r < nrules; r++)
   {
     rule_number_t r;
     for (r = 0; r < nrules; r++)
-      {
-       rules[r].useful = bitset_test (P, r);
-       if (!rules[r].useful)
-         {
-           LOCATION_PRINT (stderr, rules[r].location);
-           fprintf (stderr, ": %s: %s: ", _("warning"), _("useless rule"));
-           rule_print (&rules[r], stderr);
-         }
-      }
+      rules[r].useful = bitset_test (P, r);
+    grammar_rules_never_reduced_report (_("useless rule"));
   }
 
   /* Map the nonterminals to their new index: useful first, useless
   }
 
   /* Map the nonterminals to their new index: useful first, useless
@@ -304,9 +297,7 @@ nonterminals_reduce (void)
     if (!bitset_test (V, i))
       {
        nontermmap[i] = n++;
     if (!bitset_test (V, i))
       {
        nontermmap[i] = n++;
-       LOCATION_PRINT (stderr, symbols[i]->location);
-       fprintf (stderr, ": %s: %s: %s\n",
-                _("warning"), _("useless nonterminal"),
+       warn_at (symbols[i]->location, _("useless nonterminal: %s"),
                 symbols[i]->tag);
       }
 
                 symbols[i]->tag);
       }
 
@@ -333,7 +324,7 @@ nonterminals_reduce (void)
          if (ISVAR (*rhsp))
            *rhsp =  symbol_number_as_item_number (nontermmap[*rhsp]);
       }
          if (ISVAR (*rhsp))
            *rhsp =  symbol_number_as_item_number (nontermmap[*rhsp]);
       }
-    axiom->number = nontermmap[axiom->number];
+    accept->number = nontermmap[accept->number];
   }
 
   nsyms -= nuseless_nonterminals;
   }
 
   nsyms -= nuseless_nonterminals;
@@ -353,21 +344,21 @@ reduce_output (FILE *out)
   if (nuseless_nonterminals > 0)
     {
       int i;
   if (nuseless_nonterminals > 0)
     {
       int i;
-      fprintf (out, "%s\n\n", _("Useless nonterminals:"));
+      fprintf (out, "%s\n\n", _("Useless nonterminals"));
       for (i = 0; i < nuseless_nonterminals; ++i)
        fprintf (out, "   %s\n", symbols[nsyms + i]->tag);
       fputs ("\n\n", out);
     }
 
   {
       for (i = 0; i < nuseless_nonterminals; ++i)
        fprintf (out, "   %s\n", symbols[nsyms + i]->tag);
       fputs ("\n\n", out);
     }
 
   {
-    bool b = FALSE;
+    bool b = false;
     int i;
     for (i = 0; i < ntokens; i++)
       if (!bitset_test (V, i) && !bitset_test (V1, i))
        {
          if (!b)
     int i;
     for (i = 0; i < ntokens; i++)
       if (!bitset_test (V, i) && !bitset_test (V1, i))
        {
          if (!b)
-           fprintf (out, "%s\n\n", _("Terminals which are not used:"));
-         b = TRUE;
+           fprintf (out, "%s\n\n", _("Terminals which are not used"));
+         b = true;
          fprintf (out, "   %s\n", symbols[i]->tag);
        }
     if (b)
          fprintf (out, "   %s\n", symbols[i]->tag);
        }
     if (b)
@@ -376,8 +367,7 @@ reduce_output (FILE *out)
 
   if (nuseless_productions > 0)
     grammar_rules_partial_print (out, _("Useless rules"),
 
   if (nuseless_productions > 0)
     grammar_rules_partial_print (out, _("Useless rules"),
-                                nrules,
-                                nrules + nuseless_productions);
+                                rule_useless_p);
 }
 \f
 
 }
 \f
 
@@ -397,7 +387,7 @@ reduce_print (void)
                               nuseless_productions),
             nuseless_productions);
 
                               nuseless_productions),
             nuseless_productions);
 
-  fprintf (stderr, "%s: %s: ", infile, _("warning"));
+  fprintf (stderr, "%s: %s: ", grammar_file, _("warning"));
 
   if (nuseless_nonterminals > 0)
     fprintf (stderr, ngettext ("%d useless nonterminal",
 
   if (nuseless_nonterminals > 0)
     fprintf (stderr, ngettext ("%d useless nonterminal",
@@ -438,7 +428,7 @@ reduce_grammar (void)
 
   reduce_print ();
 
 
   reduce_print ();
 
-  if (!bitset_test (N, axiom->number - ntokens))
+  if (!bitset_test (N, accept->number - ntokens))
     fatal_at (startsymbol_location,
              _("start symbol %s does not derive any sentence"),
              startsymbol->tag);
     fatal_at (startsymbol_location,
              _("start symbol %s does not derive any sentence"),
              startsymbol->tag);
@@ -451,13 +441,13 @@ reduce_grammar (void)
   if (nuseless_productions > 0)
     reduce_grammar_tables ();
 
   if (nuseless_productions > 0)
     reduce_grammar_tables ();
 
-  if (trace_flag)
+  if (trace_flag & trace_grammar)
     {
       grammar_dump (stderr, "Reduced Grammar");
 
       fprintf (stderr, "reduced %s defines %d terminals, %d nonterminals\
 , and %d productions.\n",
     {
       grammar_dump (stderr, "Reduced Grammar");
 
       fprintf (stderr, "reduced %s defines %d terminals, %d nonterminals\
 , and %d productions.\n",
-              infile, ntokens, nvars, nrules);
+              grammar_file, ntokens, nvars, nrules);
     }
 }
 
     }
 }