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.
This commit is contained in:
Akim Demaille
2001-12-29 14:16:59 +00:00
parent 29d29c8fff
commit 610ab194c8
4 changed files with 29 additions and 2 deletions

View File

@@ -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

View File

@@ -34,7 +34,14 @@
#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;

View 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

View 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