- shiftset[i] = get_state (shift_symbol[i]);
-}
-
-
-static void
-new_states (void)
-{
- first_state = last_state = this_state = STATE_ALLOC (0);
- nstates = 1;
-}
-
-
-/*------------------------------------------------------------.
-| Save the NSHIFTS of SHIFTSET into the current linked list. |
-`------------------------------------------------------------*/
-
-static void
-save_shifts (void)
-{
- shifts *p = shifts_new (nshifts);
-
- p->number = this_state->number;
-
- shortcpy (p->shifts, shiftset, nshifts);
-
- if (last_shift)
- last_shift->next = p;
- else
- first_shift = p;
- last_shift = p;
-}
-
-
-/*------------------------------------------------------------------.
-| Subroutine of augment_automaton. Create the next-to-final state, |
-| to which a shift has already been made in the initial state. |
-`------------------------------------------------------------------*/
-
-static void
-insert_start_shift (void)
-{
- state_t *statep;
- shifts *sp;
-
- statep = STATE_ALLOC (0);
- statep->number = nstates;
- statep->accessing_symbol = start_symbol;
-
- last_state->next = statep;
- last_state = statep;
-
- /* Make a shift from this state to (what will be) the final state. */
- sp = shifts_new (1);
- sp->number = nstates++;
- sp->shifts[0] = nstates;
-
- last_shift->next = sp;
- last_shift = sp;
-}
-
-
-/*------------------------------------------------------------------.
-| Make sure that the initial state has a shift that accepts the |
-| grammar's start symbol and goes to the next-to-final state, which |
-| has a shift going to the final state, which has a shift to the |
-| termination state. Create such states and shifts if they don't |
-| happen to exist already. |
-`------------------------------------------------------------------*/
-
-static void
-augment_automaton (void)
-{
- state_t *statep;
- shifts *sp;
- shifts *sp1 = NULL;
-
- sp = first_shift;
-
- if (!sp->nshifts)
- {
- /* There are no shifts for any state. Make one shift, from the
- initial state to the next-to-final state. */
-
- sp = shifts_new (1);
- sp->shifts[0] = nstates;
-
- /* Initialize the chain of shifts with sp. */
- first_shift = sp;
- last_shift = sp;
-
- /* Create the next-to-final state, with shift to
- what will be the final state. */
- insert_start_shift ();
- }
- else if (sp->number == 0)