455 |
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]); |
456 |
fprintf (out, "\n\n"); |
fprintf (out, "\n\n"); |
457 |
fprintf (out, "Rules\n-----\n\n"); |
fprintf (out, "Rules\n-----\n\n"); |
458 |
fprintf (out, "Num (Prec, Assoc) Lhs : (@Rhs) Ritems [Num?]\n"); |
fprintf (out, "Num (Prec, Assoc, Useful, Ritem Range) Lhs -> Rhs (Ritem range) [Num]\n"); |
459 |
for (i = 1; i <= nrules; i++) |
for (i = 1; i <= nrules; i++) |
460 |
{ |
{ |
461 |
fprintf (out, "%-5d(%5d%5d)%5d : (@%-5d)", |
int rhs_count = 0; |
462 |
|
/* Find the last RHS index in ritems. */ |
463 |
|
for (r = &ritem[rule_table[i].rhs]; *r > 0; ++r) |
464 |
|
++rhs_count; |
465 |
|
fprintf (out, "%3d (%2d, %2d, %2d, %2d-%2d) %2d ->", |
466 |
i, |
i, |
467 |
rule_table[i].prec, |
rule_table[i].prec, rule_table[i].assoc, rule_table[i].useful, |
468 |
rule_table[i].assoc, |
rule_table[i].rhs, rule_table[i].rhs + rhs_count - 1, |
469 |
rule_table[i].lhs, |
rule_table[i].lhs); |
470 |
rule_table[i].rhs); |
/* Dumped the RHS. */ |
471 |
for (r = &ritem[rule_table[i].rhs]; *r > 0; r++) |
for (r = &ritem[rule_table[i].rhs]; *r > 0; r++) |
472 |
fprintf (out, "%5d", *r); |
fprintf (out, "%3d", *r); |
473 |
fprintf (out, " [%d]\n", -(*r)); |
fprintf (out, " [%d]\n", -(*r)); |
474 |
} |
} |
475 |
fprintf (out, "\n\n"); |
fprintf (out, "\n\n"); |
476 |
fprintf (out, "Rules interpreted\n-----------------\n\n"); |
fprintf (out, "Rules interpreted\n-----------------\n\n"); |