]> git.saurik.com Git - bison.git/blobdiff - src/reduce.c
Include config.h.
[bison.git] / src / reduce.c
index ba9e1778e58dab8634d01f111744af64a785a2a3..201864de3738812ab8cdedebc3ab443d84a2c932 100644 (file)
@@ -33,7 +33,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include "files.h"
 #include "gram.h"
 #include "machine.h"
 #include "files.h"
 #include "gram.h"
 #include "machine.h"
-#include "new.h"
+#include "alloc.h"
 
 
 extern char   **tags;          /* reader.c */
 
 
 extern char   **tags;          /* reader.c */
@@ -93,7 +93,7 @@ unsigned i;
   int count = 0;
 
   while (i != 0) {
   int count = 0;
 
   while (i != 0) {
-    i ^= (i & -i);
+    i ^= (i & ((unsigned) (- (int) i)));
     ++count;
   }
   return count;
     ++count;
   }
   return count;
@@ -138,7 +138,7 @@ reduce_grammar ()
   print_notices();
 
   if (!BITISSET(N, start_symbol - ntokens))
   print_notices();
 
   if (!BITISSET(N, start_symbol - ntokens))
-    fatals("Start symbol %s does not derive any sentence.",
+    fatals(_("Start symbol %s does not derive any sentence"),
           tags[start_symbol]);
 
   reduce_grammar_tables();
           tags[start_symbol]);
 
   reduce_grammar_tables();
@@ -151,8 +151,8 @@ reduce_grammar ()
   /**/ statisticsflag = FALSE; /* someday getopts should handle this */
   if (statisticsflag == TRUE)
     fprintf(stderr,
   /**/ statisticsflag = FALSE; /* someday getopts should handle this */
   if (statisticsflag == TRUE)
     fprintf(stderr,
-           "reduced %s defines %d terminal%s, %d nonterminal%s\
-, and %d production%s.\n", infile,
+           _("reduced %s defines %d terminal%s, %d nonterminal%s\
+, and %d production%s.\n"), infile,
            ntokens, (ntokens == 1 ? "" : "s"),
            nvars,   (nvars   == 1 ? "" : "s"),
            nrules,  (nrules  == 1 ? "" : "s"));
            ntokens, (ntokens == 1 ? "" : "s"),
            nvars,   (nvars   == 1 ? "" : "s"),
            nrules,  (nrules  == 1 ? "" : "s"));
@@ -173,7 +173,7 @@ reduce_grammar ()
  * process takes only 2 seconds on my 8Mhz AT.
  */
 
  * process takes only 2 seconds on my 8Mhz AT.
  */
 
-static bool 
+static bool
 useful_production (i, N)
 int  i;
 BSet N;
 useful_production (i, N)
 int  i;
 BSet N;
@@ -196,7 +196,7 @@ BSet N;
 
 /* Remember that rules are 1-origin, symbols are 0-origin. */
 
 
 /* Remember that rules are 1-origin, symbols are 0-origin. */
 
-static void 
+static void
 useless_nonterminals ()
 {
   BSet Np, Ns;
 useless_nonterminals ()
 {
   BSet Np, Ns;
@@ -218,7 +218,7 @@ useless_nonterminals ()
    * set being computed remains unchanged.  Any nonterminals not in the
    * set at that point are useless in that they will never be used in
    * deriving a sentence of the language.
    * set being computed remains unchanged.  Any nonterminals not in the
    * set at that point are useless in that they will never be used in
    * deriving a sentence of the language.
-   * 
+   *
    * This iteration doesn't use any special traversal over the
    * productions.  A set is kept of all productions for which all the
    * nonterminals in the RHS are in useful.  Only productions not in
    * This iteration doesn't use any special traversal over the
    * productions.  A set is kept of all productions for which all the
    * nonterminals in the RHS are in useful.  Only productions not in
@@ -253,7 +253,7 @@ useless_nonterminals ()
   N = Np;
 }
 \f
   N = Np;
 }
 \f
-static void 
+static void
 inaccessable_symbols ()
 {
   BSet  Vp, Vs, Pp;
 inaccessable_symbols ()
 {
   BSet  Vp, Vs, Pp;
@@ -270,13 +270,13 @@ inaccessable_symbols ()
    * reachable symbols, add the production to the set of reachable
    * productions, and add all of the nonterminals in the RHS of the
    * production to the set of reachable symbols.
    * reachable symbols, add the production to the set of reachable
    * productions, and add all of the nonterminals in the RHS of the
    * production to the set of reachable symbols.
-   * 
+   *
    * Consider only the (partially) reduced grammar which has only
    * nonterminals in N and productions in P.
    * Consider only the (partially) reduced grammar which has only
    * nonterminals in N and productions in P.
-   * 
+   *
    * The result is the set P of productions in the reduced grammar, and
    * the set V of symbols in the reduced grammar.
    * The result is the set P of productions in the reduced grammar, and
    * the set V of symbols in the reduced grammar.
-   * 
+   *
    * Although this algorithm also computes the set of terminals which are
    * reachable, no terminal will be deleted from the grammar. Some
    * terminals might not be in the grammar but might be generated by
    * Although this algorithm also computes the set of terminals which are
    * reachable, no terminal will be deleted from the grammar. Some
    * terminals might not be in the grammar but might be generated by
@@ -302,7 +302,7 @@ inaccessable_symbols ()
        Vp[i] = V[i];
       for (i = 1; i <= nrules; i++)
        {
        Vp[i] = V[i];
       for (i = 1; i <= nrules; i++)
        {
-         if (!BITISSET(Pp, i) && BITISSET(P, i) && 
+         if (!BITISSET(Pp, i) && BITISSET(P, i) &&
              BITISSET(V, rlhs[i]))
            {
              for (r = &ritem[rrhs[i]]; *r >= 0; r++)
              BITISSET(V, rlhs[i]))
            {
              for (r = &ritem[rrhs[i]]; *r >= 0; r++)
@@ -352,7 +352,7 @@ inaccessable_symbols ()
       SETBIT(V1, rprecsym[i]);
 }
 \f
       SETBIT(V1, rprecsym[i]);
 }
 \f
-static void 
+static void
 reduce_grammar_tables ()
 {
 /* This is turned off because we would need to change the numbers
 reduce_grammar_tables ()
 {
 /* This is turned off because we would need to change the numbers
@@ -481,7 +481,7 @@ reduce_grammar_tables ()
     }
 }
 \f
     }
 }
 \f
-static void 
+static void
 print_results ()
 {
   int   i;
 print_results ()
 {
   int   i;
@@ -491,7 +491,7 @@ print_results ()
 
   if (nuseless_nonterminals > 0)
     {
 
   if (nuseless_nonterminals > 0)
     {
-      fprintf(foutput, "Useless nonterminals:\n\n");
+      fprintf(foutput, _("Useless nonterminals:\n\n"));
       for (i = ntokens; i < nsyms; i++)
        if (!BITISSET(V, i))
          fprintf(foutput, "   %s\n", tags[i]);
       for (i = ntokens; i < nsyms; i++)
        if (!BITISSET(V, i))
          fprintf(foutput, "   %s\n", tags[i]);
@@ -503,7 +503,7 @@ print_results ()
        {
          if (!b)
            {
        {
          if (!b)
            {
-             fprintf(foutput, "\n\nTerminals which are not used:\n\n");
+             fprintf(foutput, _("\n\nTerminals which are not used:\n\n"));
              b = TRUE;
            }
          fprintf(foutput, "   %s\n", tags[i]);
              b = TRUE;
            }
          fprintf(foutput, "   %s\n", tags[i]);
@@ -512,7 +512,7 @@ print_results ()
 
   if (nuseless_productions > 0)
     {
 
   if (nuseless_productions > 0)
     {
-      fprintf(foutput, "\n\nUseless rules:\n\n");
+      fprintf(foutput, _("\n\nUseless rules:\n\n"));
       for (i = 1; i <= nrules; i++)
        {
          if (!BITISSET(P, i))
       for (i = 1; i <= nrules; i++)
        {
          if (!BITISSET(P, i))
@@ -531,7 +531,7 @@ print_results ()
     fprintf(foutput, "\n\n");
 }
 \f
     fprintf(foutput, "\n\n");
 }
 \f
-void 
+void
 dump_grammar ()
 {
   int i;
 dump_grammar ()
 {
   int i;
@@ -540,23 +540,23 @@ dump_grammar ()
   fprintf(foutput,
          "ntokens = %d, nvars = %d, nsyms = %d, nrules = %d, nitems = %d\n\n",
          ntokens, nvars, nsyms, nrules, nitems);
   fprintf(foutput,
          "ntokens = %d, nvars = %d, nsyms = %d, nrules = %d, nitems = %d\n\n",
          ntokens, nvars, nsyms, nrules, nitems);
-  fprintf(foutput, "Variables\n---------\n\n");
-  fprintf(foutput, "Value  Sprec    Sassoc    Tag\n");
+  fprintf(foutput, _("Variables\n---------\n\n"));
+  fprintf(foutput, _("Value  Sprec    Sassoc    Tag\n"));
   for (i = ntokens; i < nsyms; i++)
     fprintf(foutput, "%5d  %5d  %5d  %s\n",
            i, sprec[i], sassoc[i], tags[i]);
   fprintf(foutput, "\n\n");
   for (i = ntokens; i < nsyms; i++)
     fprintf(foutput, "%5d  %5d  %5d  %s\n",
            i, sprec[i], sassoc[i], tags[i]);
   fprintf(foutput, "\n\n");
-  fprintf(foutput, "Rules\n-----\n\n");
+  fprintf(foutput, _("Rules\n-----\n\n"));
   for (i = 1; i <= nrules; i++)
     {
   for (i = 1; i <= nrules; i++)
     {
-      fprintf(foutput, "%-5d(%5d%5d)%5d : (@%-5d)", 
+      fprintf(foutput, "%-5d(%5d%5d)%5d : (@%-5d)",
              i, rprec[i], rassoc[i], rlhs[i], rrhs[i]);
       for (r = &ritem[rrhs[i]]; *r > 0; r++)
        fprintf(foutput, "%5d", *r);
       fprintf(foutput, " [%d]\n", -(*r));
     }
   fprintf(foutput, "\n\n");
              i, rprec[i], rassoc[i], rlhs[i], rrhs[i]);
       for (r = &ritem[rrhs[i]]; *r > 0; r++)
        fprintf(foutput, "%5d", *r);
       fprintf(foutput, " [%d]\n", -(*r));
     }
   fprintf(foutput, "\n\n");
-  fprintf(foutput, "Rules interpreted\n-----------------\n\n");
+  fprintf(foutput, _("Rules interpreted\n-----------------\n\n"));
   for (i = 1; i <= nrules; i++)
     {
       fprintf(foutput, "%-5d  %s :", i, tags[rlhs[i]]);
   for (i = 1; i <= nrules; i++)
     {
       fprintf(foutput, "%-5d  %s :", i, tags[rlhs[i]]);
@@ -568,31 +568,31 @@ dump_grammar ()
 }
 
 
 }
 
 
-static void 
+static void
 print_notices ()
 {
   extern int fixed_outfiles;
 
   if (fixed_outfiles && nuseless_productions)
 print_notices ()
 {
   extern int fixed_outfiles;
 
   if (fixed_outfiles && nuseless_productions)
-    fprintf(stderr, "%d rules never reduced\n", nuseless_productions);
+    fprintf(stderr, _("%d rules never reduced\n"), nuseless_productions);
 
 
-  fprintf(stderr, "%s contains ", infile);
+  fprintf(stderr, _("%s contains "), infile);
 
   if (nuseless_nonterminals > 0)
     {
 
   if (nuseless_nonterminals > 0)
     {
-      fprintf(stderr, "%d useless nonterminal%s",
+      fprintf(stderr, _("%d useless nonterminal%s"),
              nuseless_nonterminals,
              (nuseless_nonterminals == 1 ? "" : "s"));
     }
   if (nuseless_nonterminals > 0 && nuseless_productions > 0)
              nuseless_nonterminals,
              (nuseless_nonterminals == 1 ? "" : "s"));
     }
   if (nuseless_nonterminals > 0 && nuseless_productions > 0)
-    fprintf(stderr, " and ");
+    fprintf(stderr, _(" and "));
 
   if (nuseless_productions > 0)
     {
 
   if (nuseless_productions > 0)
     {
-      fprintf(stderr, "%d useless rule%s",
+      fprintf(stderr, _("%d useless rule%s"),
              nuseless_productions,
              (nuseless_productions == 1 ? "" : "s"));
     }
              nuseless_productions,
              (nuseless_productions == 1 ? "" : "s"));
     }
-  fprintf(stderr, ".\n");
+  fprintf(stderr, "\n");
   fflush(stderr);
 }
   fflush(stderr);
 }