]> git.saurik.com Git - bison.git/commitdiff
Fix the `GAWK Grammar' failure.
authorAkim Demaille <akim@epita.fr>
Sat, 29 Dec 2001 14:16:59 +0000 (14:16 +0000)
committerAkim Demaille <akim@epita.fr>
Sat, 29 Dec 2001 14:16:59 +0000 (14:16 +0000)
* src/LR0.c (final_state): Initialize to -1 so that we do compute
the reductions of the first state which was mistakenly confused
with the final state because precisely final_state was initialized
to 0.
* tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
now noticed by Bison.
* tests/regression.at (Rule Line Numbers): Adjust: state 0 does
have a reduction on $default.

ChangeLog
src/LR0.c
tests/regression.at
tests/sets.at

index b8c23f74f8a6a49f1da0d75c206f9b7bed6b4d2d..df65ef2ff4e4b47671e6925ab6dd8397f66a181d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       Fix the `GAWK Grammar' failure.
+
+       * src/LR0.c (final_state): Initialize to -1 so that we do compute
+       the reductions of the first state which was mistakenly confused
+       with the final state because precisely final_state was initialized
+       to 0.
+       * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
+       now noticed by Bison.
+       * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
+       have a reduction on $default.
+
+       
 2001-12-29  Akim Demaille  <akim@epita.fr>
 
        * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
index 3a036e84ecf0c4561b7c1a97bf72eeaba4bc6c36..b80cede7f42e80e10550460d03b272fa19ec6cae 100644 (file)
--- a/src/LR0.c
+++ b/src/LR0.c
 #include "reduce.h"
 
 int nstates;
-int final_state;
+/* Initialize the final state to -1, otherwise, it might be set to 0
+   by default, and since we don't compute the reductions of the final
+   state, we end up not computing the reductions of the initial state,
+   which is of course needed.
+
+   FINAL_STATE is properly set by new_state when it recognizes the
+   accessing symbol: EOF.  */
+int final_state = -1;
 static state_t *first_state = NULL;
 
 static state_t *this_state = NULL;
index 937e5985edfcc4ec93221c8ce9bf763871fe2428..f6d8f10231dbad4ce6035ca91911b4969cc5e009 100644 (file)
@@ -328,6 +328,8 @@ state 0
 
     'a'        shift, and go to state 1
 
+    $default   reduce using rule 3 (@2)
+
     expr       go to state 2
     @2         go to state 3
 
index cd2727a0b001730104cdb650cb32971017057b58..001fc4a823a2c24aa7e68eb8ae4f7cdd0e1ce74e 100644 (file)
@@ -158,7 +158,11 @@ transpose: output
   0:
 
 Lookaheads: BEGIN
-State 0: 0 lookaheads
+State 0: 1 lookaheads
+   on 0 ($) -> rule -4
+   on 1 (error) -> rule -4
+   on 2 ($undefined.) -> rule -4
+   on 3 ('e') -> rule -4
 State 1: 0 lookaheads
 State 2: 0 lookaheads
 State 3: 0 lookaheads