+static void
+print_actions (FILE *out, state_t *state)
+{
+ reductions *redp = state->reductions;
+ shifts *shiftp = state->shifts;
+
+ if (shiftp->nshifts == 0 && redp->nreds == 0)
+ {
+ if (final_state == state->number)
+ fprintf (out, _(" $default\taccept\n"));
+ else
+ fprintf (out, _(" NO ACTIONS\n"));
+ return;
+ }
+
+ print_shifts (out, state);
+ print_errs (out, state);
+ print_reductions (out, state);
+ print_gotos (out, state);
+}
+
+static void
+print_state (FILE *out, state_t *state)
+{
+ fprintf (out, _("state %d"), state->number);
+ fputs ("\n\n", out);
+ print_core (out, state);
+ print_actions (out, state);
+ fputs ("\n\n", out);
+}
+\f
+/*-----------------------------------------.
+| Print information on the whole grammar. |
+`-----------------------------------------*/
+
+#define END_TEST(End) \
+do { \
+ if (column + strlen(buffer) > (End)) \
+ { \
+ fprintf (out, "%s\n ", buffer); \
+ column = 3; \
+ buffer[0] = 0; \
+ } \
+} while (0)
+
+
+static void
+print_grammar (FILE *out)