- int k;
- int state1;
- int symbol;
- shifts *shiftp;
- errs *errp;
- reductions *redp;
- int rule;
- static char buff[10];
- edge_t edge;
-
- shiftp = shift_table[state];
- redp = reduction_table[state];
- errp = err_table[state];
-
- if (!shiftp && !redp)
- {
-#if 0
- if (final_state == state)
- fprintf (f, " $default\taccept\n");
- else
- fprintf (f, " NO ACTIONS\n");
-#endif
- return;
- }
-
- if (shiftp)
- {
- k = shiftp->nshifts;
-
- for (i = 0; i < k; i++)
- {
- if (!shiftp->shifts[i])
- continue;
- state1 = shiftp->shifts[i];
- symbol = accessing_symbol[state1];
-
- if (ISVAR (symbol))
- break;
-
- {
- new_edge (&edge);
-
- if (state > state1)
- edge.type = back_edge;
- open_edge (&edge, &graph_obstack);
- edge.sourcename = node->title;
- edge.targetname = buff;
- sprintf (edge.targetname, "%d", state1);
- edge.color = (symbol == 0) ? blue : red;
- edge.label = tags[symbol];
- output_edge (&edge, &graph_obstack);
- close_edge (&graph_obstack);
- }
- }
- }
- else
- {
- i = 0;
- k = 0;
- }