59 |
item_number_t *rp; |
item_number_t *rp; |
60 |
fprintf (stderr, " %2d: .", array[i]); |
fprintf (stderr, " %2d: .", array[i]); |
61 |
for (rp = &ritem[array[i]]; *rp >= 0; ++rp) |
for (rp = &ritem[array[i]]; *rp >= 0; ++rp) |
62 |
fprintf (stderr, " %s", symbol_tag_get (symbols[*rp])); |
fprintf (stderr, " %s", symbols[*rp]->tag); |
63 |
fprintf (stderr, " (rule %d)\n", -*rp - 1); |
fprintf (stderr, " (rule %d)\n", -*rp - 1); |
64 |
} |
} |
65 |
fputs ("\n\n", stderr); |
fputs ("\n\n", stderr); |
74 |
fprintf (stderr, "FIRSTS\n"); |
fprintf (stderr, "FIRSTS\n"); |
75 |
for (i = ntokens; i < nsyms; i++) |
for (i = ntokens; i < nsyms; i++) |
76 |
{ |
{ |
77 |
fprintf (stderr, "\t%s firsts\n", symbol_tag_get (symbols[i])); |
fprintf (stderr, "\t%s firsts\n", symbols[i]->tag); |
78 |
BITSET_EXECUTE (FIRSTS (i), 0, j, |
BITSET_EXECUTE (FIRSTS (i), 0, j, |
79 |
{ |
{ |
80 |
fprintf (stderr, "\t\t%s\n", |
fprintf (stderr, "\t\t%s\n", |
81 |
symbol_tag_get (symbols[j + ntokens])); |
symbols[j + ntokens]->tag); |
82 |
}); |
}); |
83 |
} |
} |
84 |
fprintf (stderr, "\n\n"); |
fprintf (stderr, "\n\n"); |
94 |
fprintf (stderr, "FDERIVES\n"); |
fprintf (stderr, "FDERIVES\n"); |
95 |
for (i = ntokens; i < nsyms; i++) |
for (i = ntokens; i < nsyms; i++) |
96 |
{ |
{ |
97 |
fprintf (stderr, "\t%s derives\n", symbol_tag_get (symbols[i])); |
fprintf (stderr, "\t%s derives\n", symbols[i]->tag); |
98 |
BITSET_EXECUTE (FDERIVES (i), 0, r, |
BITSET_EXECUTE (FDERIVES (i), 0, r, |
99 |
{ |
{ |
100 |
item_number_t *rhsp = NULL; |
item_number_t *rhsp = NULL; |
101 |
fprintf (stderr, "\t\t%d:", r - 1); |
fprintf (stderr, "\t\t%d:", r - 1); |
102 |
for (rhsp = rules[r].rhs; *rhsp >= 0; ++rhsp) |
for (rhsp = rules[r].rhs; *rhsp >= 0; ++rhsp) |
103 |
fprintf (stderr, " %s", symbol_tag_get (symbols[*rhsp])); |
fprintf (stderr, " %s", symbols[*rhsp]->tag); |
104 |
fputc ('\n', stderr); |
fputc ('\n', stderr); |
105 |
}); |
}); |
106 |
} |
} |