* src/LR0.c (augment_automaton): Now that all states have shifts,
authorAkim Demaille <akim@epita.fr>
Mon, 10 Dec 2001 09:09:00 +0000 (09:09 +0000)
committerAkim Demaille <akim@epita.fr>
Mon, 10 Dec 2001 09:09:00 +0000 (09:09 +0000)
merge the two cases addition shifts to the initial state.

ChangeLog
src/LR0.c

index 11d51ecc2659d13dcabb82d69ae2eedcddb0f4e5..a29c27e309a7db9e3e0758797fe6eb828cc35974 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (augment_automaton): Now that all states have shifts,
+       merge the two cases addition shifts to the initial state.
+
+       
 2001-12-10  Akim Demaille  <akim@epita.fr>
 
        * src/lalr.c (set_state_table): Move to...
index ccd55f6a557d2aaed385b11d27d7334324705de6..9de75782b6c53c55f68752253deca379f5b685d4 100644 (file)
--- a/src/LR0.c
+++ b/src/LR0.c
@@ -437,9 +437,9 @@ insert_accepting_state (void)
 static void
 augment_automaton (void)
 {
-  if (!first_shift->nshifts)
+  if (!first_state->shifts->nshifts)
     {
-      /* There are no shifts for any state.  Make one shift, from the
+      /* The first state has no shifts.  Make one shift, from the
         initial state to the next-to-final state.  */
 
       shifts *sp = shifts_new (1);
@@ -454,7 +454,7 @@ augment_automaton (void)
          what will be the final state.  */
       insert_start_shifting_state ();
     }
-  else if (first_shift->number == 0)
+  else
     {
       state_t *statep = first_state->next;
       shifts *sp = first_shift;
@@ -544,22 +544,6 @@ augment_automaton (void)
          insert_start_shifting_state ();
        }
     }
-  else
-    {
-      /* The initial state didn't even have any shifts.
-        Give it one shift, to the next-to-final state.  */
-      shifts *sp = shifts_new (1);
-      first_state->shifts = sp;
-      sp->shifts[0] = nstates;
-
-      /* Patch sp into the chain of shifts at the beginning.  */
-      sp->next = first_shift;
-      first_shift = sp;
-
-      /* Create the next-to-final state, with shift to
-        what will be the final state.  */
-      insert_start_shifting_state ();
-    }
 
   insert_eof_shifting_state ();
   insert_accepting_state ();