X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/aa7815f5c6e8e07a85e47df9cd7b579468969efb..561f9a30af99cfbd4dbb51bcc82506c987cb92a9:/src/reduce.c diff --git a/src/reduce.c b/src/reduce.c index c2efee93..b2299b33 100644 --- a/src/reduce.c +++ b/src/reduce.c @@ -29,7 +29,6 @@ #include "getargs.h" #include "files.h" #include "gram.h" -#include "xalloc.h" #include "complain.h" #include "reduce.h" #include "reader.h" @@ -117,7 +116,7 @@ static void useless_nonterminals (void) { BSet Np, Ns; - int i, n; + int i; /* N is set as built. Np is set being built this iteration. P is set of all productions which have a RHS all in N. */ @@ -140,7 +139,6 @@ useless_nonterminals (void) saved to be used when finding useful productions: only productions in this set will appear in the final grammar. */ - n = 0; while (1) { for (i = WORDSIZE (nvars) - 1; i >= 0; i--) @@ -171,7 +169,7 @@ static void inaccessable_symbols (void) { BSet Vp, Vs, Pp; - int i, n; + int i; short t; rule r; @@ -207,7 +205,6 @@ inaccessable_symbols (void) SETBIT (V, start_symbol); - n = 0; while (1) { for (i = WORDSIZE (nsyms) - 1; i >= 0; i--) @@ -401,11 +398,11 @@ print_results (void) if (nuseless_nonterminals > 0) { - fputs (_("Useless nonterminals:"), foutput); - fputs ("\n\n", foutput); + obstack_sgrow (&output_obstack, _("Useless nonterminals:")); + obstack_sgrow (&output_obstack, "\n\n"); for (i = ntokens; i < nsyms; i++) if (!BITISSET (V, i)) - fprintf (foutput, " %s\n", tags[i]); + obstack_fgrow1 (&output_obstack, " %s\n", tags[i]); } b = FALSE; for (i = 0; i < ntokens; i++) @@ -414,36 +411,35 @@ print_results (void) { if (!b) { - fputs ("\n\n", foutput); - fprintf (foutput, _("Terminals which are not used:")); - fputs ("\n\n", foutput); + obstack_sgrow (&output_obstack, "\n\n"); + obstack_sgrow (&output_obstack, + _("Terminals which are not used:")); + obstack_sgrow (&output_obstack, "\n\n"); b = TRUE; } - fprintf (foutput, " %s\n", tags[i]); + obstack_fgrow1 (&output_obstack, " %s\n", tags[i]); } } if (nuseless_productions > 0) { - fputs ("\n\n", foutput); - fprintf (foutput, _("Useless rules:")); - fputs ("\n\n", foutput); + obstack_sgrow (&output_obstack, "\n\n"); + obstack_sgrow (&output_obstack, _("Useless rules:")); + obstack_sgrow (&output_obstack, "\n\n"); for (i = 1; i <= nrules; i++) { if (!BITISSET (P, i)) { - fprintf (foutput, "#%-4d ", i); - fprintf (foutput, "%s :\t", tags[rlhs[i]]); + obstack_fgrow1 (&output_obstack, "#%-4d ", i); + obstack_fgrow1 (&output_obstack, "%s :\t", tags[rlhs[i]]); for (r = &ritem[rrhs[i]]; *r >= 0; r++) - { - fprintf (foutput, " %s", tags[*r]); - } - fprintf (foutput, ";\n"); + obstack_fgrow1 (&output_obstack, " %s", tags[*r]); + obstack_sgrow (&output_obstack, ";\n"); } } } if (nuseless_nonterminals > 0 || nuseless_productions > 0 || b) - fputs ("\n\n", foutput); + obstack_sgrow (&output_obstack, "\n\n"); } #if 0 /* XXX currently unused. */ @@ -453,35 +449,38 @@ dump_grammar (void) int i; rule r; - 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")); + obstack_fgrow5 (&output_obstack, + "ntokens = %d, nvars = %d, nsyms = %d, nrules = %d, nitems = %d\n\n", + ntokens, nvars, nsyms, nrules, nitems); + obstack_sgrow (&output_obstack, + _("Variables\n---------\n\n")); + obstack_sgrow (&output_obstack, + _("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"); - fprintf (foutput, _("Rules\n-----\n\n")); + obstack_fgrow4 (&output_obstack, + "%5d %5d %5d %s\n", i, sprec[i], sassoc[i], tags[i]); + obstack_sgrow (&output_obstack, "\n\n"); + obstack_sgrow (&output_obstack, _("Rules\n-----\n\n")); for (i = 1; i <= nrules; i++) { - fprintf (foutput, "%-5d(%5d%5d)%5d : (@%-5d)", - i, rprec[i], rassoc[i], rlhs[i], rrhs[i]); + obstack_fgrow5 (&output_obstack, "%-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)); + obstack_fgrow1 (&output_obstack, "%5d", *r); + obstack_fgrow1 (&output_obstack, " [%d]\n", -(*r)); } - fprintf (foutput, "\n\n"); - fprintf (foutput, _("Rules interpreted\n-----------------\n\n")); + obstack_sgrow (&output_obstack, "\n\n"); + obstack_sgrow (&output_obstack, + _("Rules interpreted\n-----------------\n\n")); for (i = 1; i <= nrules; i++) { - fprintf (foutput, "%-5d %s :", i, tags[rlhs[i]]); + obstack_fgrow2 (&output_obstack, "%-5d %s :", i, tags[rlhs[i]]); for (r = &ritem[rrhs[i]]; *r > 0; r++) - fprintf (foutput, " %s", tags[*r]); - fprintf (foutput, "\n"); + obstack_fgrow1 (&output_obstack, " %s", tags[*r]); + obstack_grow1 (&output_obstack, '\n'); } - fprintf (foutput, "\n\n"); + obstack_sgrow (&output_obstack, "\n\n"); } - #endif @@ -544,7 +543,7 @@ reduce_grammar (void) #if 0 if (verbose_flag) { - fprintf (foutput, "REDUCED GRAMMAR\n\n"); + obstack_fgrow1 (&output_obstack, "REDUCED GRAMMAR\n\n"); dump_grammar (); } #endif