mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-14 23:03:04 +00:00
Pessimize the code to simplify it: from now on, all the states
have a valid SHIFTS, which NSHIFTS is possibly 0. * src/LR0.c (shifts_new): Be global and move to.. * src/state.c, src/state.h: here. * src/conflicts, src/lalr.c, src/output.c, src/print.c, * src/print_graph: Adjust.
This commit is contained in:
18
src/LR0.c
18
src/LR0.c
@@ -314,19 +314,6 @@ new_states (void)
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------.
|
||||
| Create a new array of N shitfs. |
|
||||
`---------------------------------*/
|
||||
|
||||
static shifts *
|
||||
shifts_new (int n)
|
||||
{
|
||||
shifts *res = SHIFTS_ALLOC (n);
|
||||
res->nshifts = n;
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------.
|
||||
| Save the NSHIFTS of SHIFTSET into the current linked list. |
|
||||
`------------------------------------------------------------*/
|
||||
@@ -393,7 +380,7 @@ augment_automaton (void)
|
||||
|
||||
sp = first_shift;
|
||||
|
||||
if (!sp)
|
||||
if (!sp->nshifts)
|
||||
{
|
||||
/* There are no shifts for any state. Make one shift, from the
|
||||
initial state to the next-to-final state. */
|
||||
@@ -610,8 +597,7 @@ generate_states (void)
|
||||
|
||||
/* create the shifts structures for the shifts to those states,
|
||||
now that the state numbers transitioning to are known */
|
||||
if (nshifts > 0)
|
||||
save_shifts ();
|
||||
save_shifts ();
|
||||
|
||||
/* states are queued when they are created; process them all */
|
||||
this_state = this_state->next;
|
||||
|
||||
Reference in New Issue
Block a user