mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-10 21:03:04 +00:00
Instead of attaching lookaheads and duplicating the rules being
reduced by a state, attach the lookaheads to the reductions. * src/state.h (state_t): Remove the `lookaheads', `lookaheads_rule' member. (reductions_t): Add a `lookaheads' member. Use a regular array for the `rules'. * src/state.c (reductions_new): Initialize the lookaheads member to 0. (state_rule_lookaheads_print): Adjust. * src/state.h, src/state.c (state_reductions_find): New. * src/conflicts.c (resolve_sr_conflict, set_conflicts) (count_rr_conflicts): Adjust. * src/lalr.c (LArule): Remove. (add_lookback_edge): Adjust. (state_lookaheads_count): New. (states_lookaheads_initialize): Merge into... (initialize_LA): this. (lalr_free): Adjust. * src/main.c (main): Don't free nullable and derives too early: it is used by --verbose. * src/print.c, src/print_graph.c, src/tables.c: Adjust.
This commit is contained in:
@@ -99,11 +99,6 @@ main (int argc, char *argv[])
|
||||
lalr ();
|
||||
timevar_pop (TV_LALR);
|
||||
|
||||
timevar_push (TV_FREE);
|
||||
nullable_free ();
|
||||
derives_free ();
|
||||
timevar_pop (TV_FREE);
|
||||
|
||||
/* Find and record any conflicts: places where one token of
|
||||
lookahead is not enough to disambiguate the parsing. In file
|
||||
conflicts. Also resolve s/r conflicts based on precedence
|
||||
@@ -153,6 +148,8 @@ main (int argc, char *argv[])
|
||||
timevar_pop (TV_PARSER);
|
||||
|
||||
timevar_push (TV_FREE);
|
||||
nullable_free ();
|
||||
derives_free ();
|
||||
tables_free ();
|
||||
states_free ();
|
||||
reduce_free ();
|
||||
|
||||
Reference in New Issue
Block a user