- short *sp;
- fprintf (stderr, "\t%s derives\n", symbols[i]->tag);
- for (sp = derives[i]; *sp > 0; sp++)
- {
- short *rhsp;
- fprintf (stderr, "\t\t%d:", *sp);
- for (rhsp = rules[*sp].rhs; *rhsp >= 0; ++rhsp)
- fprintf (stderr, " %s", symbols[*rhsp]->tag);
- fprintf (stderr, " (rule %d)\n", -*rhsp - 1);
- }
+ rule **rp;
+ fprintf (stderr, " %s derives\n", symbols[i]->tag);
+ for (rp = derives[i - ntokens]; *rp; ++rp)
+ {
+ fprintf (stderr, " %3d ", (*rp)->user_number);
+ rule_rhs_print (*rp, stderr);
+ fprintf (stderr, "\n");
+ }