+ for (j = 0; j <= nrules; j++)
+ if (BITISSET (rp, j))
+ fprintf (stderr, "\t\t%d (%s)\n", j, tags[j]);
+ }
+ fprintf (stderr, "\n\n");
+}
+\f
+/*-------------------------------------------------------------------.
+| Set FIRSTS to be an NVARS by NVARS bit matrix indicating which |
+| items can represent the beginning of the input corresponding to |
+| which other items. |
+| |
+| For example, if some rule expands symbol 5 into the sequence of |
+| symbols 8 3 20, the symbol 8 can be the beginning of the data for |
+| symbol 5, so the bit [8 - ntokens, 5 - ntokens] in firsts is set. |
+`-------------------------------------------------------------------*/
+
+static void
+set_firsts (void)
+{
+ unsigned *row;
+ int symbol;
+ short *sp;
+ int rowsize;