+ for (i = 0; i < trans->num; i++)
+ if (!TRANSITION_IS_DISABLED (trans, i))
+ {
+ state *s1 = trans->states[i];
+ symbol_number sym = s1->accessing_symbol;
+
+ new_edge (&e);
+
+ if (s->number > s1->number)
+ e.type = back_edge;
+ open_edge (&e, fgraph);
+ /* The edge source is the current node. */
+ e.sourcename = node_name;
+ sprintf (buff, "%d", s1->number);
+ e.targetname = buff;
+ /* Shifts are blue, gotos are green, and error is red. */
+ if (TRANSITION_IS_ERROR (trans, i))
+ e.color = red;
+ else
+ e.color = TRANSITION_IS_SHIFT (trans, i) ? blue : green;
+ e.label = symbols[sym]->tag;
+ output_edge (&e, fgraph);
+ close_edge (fgraph);
+ }
+}