- bool reduced;
-
- /* Allocate the global sets used to compute the reduced grammar */
-
- N = NEW2(WORDSIZE(nvars), unsigned);
- P = NEW2(WORDSIZE(nrules + 1), unsigned);
- V = NEW2(WORDSIZE(nsyms), unsigned);
- V1 = NEW2(WORDSIZE(nsyms), unsigned);
-
- useless_nonterminals();
- inaccessable_symbols();
-
- reduced = (bool) (nuseless_nonterminals + nuseless_productions > 0);
-
- if (verboseflag)
- print_results();
-
- if (reduced == FALSE)
- goto done_reducing;
-
- print_notices();
-
- if (!BITISSET(N, start_symbol - ntokens))
- fatals(_("Start symbol %s does not derive any sentence"),
- tags[start_symbol]);
-
- reduce_grammar_tables();
- /* if (verboseflag) {
- fprintf(foutput, "REDUCED GRAMMAR\n\n");
- dump_grammar();
- }
- */
-
- /**/ 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,
- ntokens, (ntokens == 1 ? "" : "s"),
- nvars, (nvars == 1 ? "" : "s"),
- nrules, (nrules == 1 ? "" : "s"));
-
- done_reducing: