438 |
fprintf (out, "\n\n"); |
fprintf (out, "\n\n"); |
439 |
} |
} |
440 |
|
|
|
#if TRACE |
|
441 |
static void |
static void |
442 |
dump_grammar (FILE *out) |
dump_grammar (FILE *out) |
443 |
{ |
{ |
477 |
} |
} |
478 |
fprintf (out, "\n\n"); |
fprintf (out, "\n\n"); |
479 |
} |
} |
|
#endif |
|
480 |
|
|
481 |
|
|
482 |
|
|
537 |
tags[start_symbol]); |
tags[start_symbol]); |
538 |
|
|
539 |
reduce_grammar_tables (); |
reduce_grammar_tables (); |
540 |
#if TRACE |
|
541 |
dump_grammar (stderr); |
if (trace_flag) |
542 |
#endif |
{ |
543 |
|
dump_grammar (stderr); |
544 |
if (statistics_flag) |
|
545 |
fprintf (stderr, _("reduced %s defines %d terminal%s, %d nonterminal%s\ |
fprintf (stderr, "reduced %s defines %d terminals, %d nonterminals\ |
546 |
, and %d production%s.\n"), |
, and %d productions.\n", |
547 |
infile, |
infile, ntokens, nvars, nrules); |
548 |
ntokens, |
} |
|
(ntokens == 1 ? "" : "s"), |
|
|
nvars, |
|
|
(nvars == 1 ? "" : "s"), |
|
|
nrules, |
|
|
(nrules == 1 ? "" : "s")); |
|
549 |
} |
} |
550 |
|
|
551 |
|
|