-/*--------------------------------------------------------------.
-| Print on OUT all the lookaheads such that this STATE wants to |
-| reduce this RULE. |
-`--------------------------------------------------------------*/
+/*---------.
+| Free S. |
+`---------*/
+
+static void
+state_free (state *s)
+{
+ free (s->transitions);
+ free (s->reductions);
+ free (s->errs);
+ free (s);
+}
+
+
+/*---------------------------.
+| Set the transitions of S. |
+`---------------------------*/
+
+void
+state_transitions_set (state *s, int num, state **trans)
+{
+ if (s->transitions)
+ abort ();
+ s->transitions = transitions_new (num, trans);
+}
+
+
+/*--------------------------.
+| Set the reductions of S. |
+`--------------------------*/
+
+void
+state_reductions_set (state *s, int num, rule **reds)
+{
+ if (s->reductions)
+ abort ();
+ s->reductions = reductions_new (num, reds);
+}
+
+
+int
+state_reduction_find (state *s, rule *r)
+{
+ int i;
+ reductions *reds = s->reductions;
+ for (i = 0; i < reds->num; ++i)
+ if (reds->rules[i] == r)
+ return i;
+ return -1;
+}
+
+
+/*--------------------.
+| Set the errs of S. |
+`--------------------*/