- fprintf (stderr, "\t%s derives\n", symbol_tag_get (symbols[i]));
- for (r = 0; r < nrules + 1; r++)
- if (bitset_test (FDERIVES (i), r))
- {
- item_number_t *rhsp = NULL;
- fprintf (stderr, "\t\t%d:", r - 1);
- for (rhsp = rules[r].rhs; *rhsp >= 0; ++rhsp)
- fprintf (stderr, " %s", symbol_tag_get (symbols[*rhsp]));
- fputc ('\n', stderr);
- }
+ bitset_iterator iter;
+ fprintf (stderr, "\t%s derives\n", symbols[i]->tag);
+ BITSET_FOR_EACH (iter, FDERIVES (i), r, 0)
+ {
+ fprintf (stderr, "\t\t%3d ", r);
+ rule_rhs_print (&rules[r], stderr);
+ }