445 |
"ntokens = %d, nvars = %d, nsyms = %d, nrules = %d, nitems = %d\n\n", |
"ntokens = %d, nvars = %d, nsyms = %d, nrules = %d, nitems = %d\n\n", |
446 |
ntokens, nvars, nsyms, nrules, nitems); |
ntokens, nvars, nsyms, nrules, nitems); |
447 |
fprintf (out, "Variables\n---------\n\n"); |
fprintf (out, "Variables\n---------\n\n"); |
448 |
fprintf (out, "Value Sprec Sassoc Tag\n"); |
fprintf (out, "Value Sprec Sassoc Tag\n"); |
449 |
for (i = ntokens; i < nsyms; i++) |
for (i = ntokens; i < nsyms; i++) |
450 |
fprintf (out, "%5d %5d %5d %s\n", i, sprec[i], sassoc[i], tags[i]); |
fprintf (out, "%5d %5d %5d %s\n", i, sprec[i], sassoc[i], tags[i]); |
451 |
fprintf (out, "\n\n"); |
fprintf (out, "\n\n"); |
452 |
fprintf (out, "Rules\n-----\n\n"); |
fprintf (out, "Rules\n-----\n\n"); |
453 |
|
fprintf (out, "Num (Prec, Assoc) Lhs : (@Rhs) Ritems [Num?]\n"); |
454 |
for (i = 1; i <= nrules; i++) |
for (i = 1; i <= nrules; i++) |
455 |
{ |
{ |
456 |
fprintf (out, "%-5d(%5d%5d)%5d : (@%-5d)", |
fprintf (out, "%-5d(%5d%5d)%5d : (@%-5d)", |
485 |
reduce_print (void) |
reduce_print (void) |
486 |
{ |
{ |
487 |
if (yacc_flag && nuseless_productions) |
if (yacc_flag && nuseless_productions) |
488 |
fprintf (stderr, _("%d rules never reduced\n"), nuseless_productions); |
fprintf (stderr, ngettext ("%d rule never reduced\n", |
489 |
|
"%d rules never reduced\n", |
490 |
|
nuseless_productions), |
491 |
|
nuseless_productions); |
492 |
|
|
493 |
fprintf (stderr, _("%s contains "), infile); |
fprintf (stderr, _("%s contains "), infile); |
494 |
|
|
495 |
if (nuseless_nonterminals > 0) |
if (nuseless_nonterminals > 0) |
496 |
{ |
fprintf (stderr, ngettext ("%d useless nonterminal", |
497 |
fprintf (stderr, _("%d useless nonterminal%s"), |
"%d useless nonterminals", |
498 |
nuseless_nonterminals, |
nuseless_nonterminals), |
499 |
(nuseless_nonterminals == 1 ? "" : "s")); |
nuseless_nonterminals); |
500 |
} |
|
501 |
if (nuseless_nonterminals > 0 && nuseless_productions > 0) |
if (nuseless_nonterminals > 0 && nuseless_productions > 0) |
502 |
fprintf (stderr, _(" and ")); |
fprintf (stderr, _(" and ")); |
503 |
|
|
504 |
if (nuseless_productions > 0) |
if (nuseless_productions > 0) |
505 |
{ |
fprintf (stderr, ngettext ("%d useless rule", |
506 |
fprintf (stderr, _("%d useless rule%s"), |
"%d useless rules", |
507 |
nuseless_productions, (nuseless_productions == 1 ? "" : "s")); |
nuseless_productions), |
508 |
} |
nuseless_productions); |
509 |
fprintf (stderr, "\n"); |
fprintf (stderr, "\n"); |
510 |
fflush (stderr); |
fflush (stderr); |
511 |
} |
} |