Use hash.h for the state hash table.

* src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
(allocate_storage): Use state_hash_new.
(free_storage): Use state_hash_free.
(new_state, get_state): Adjust.
* src/lalr.h, src/lalr.c (states): Move to...
* src/states.h (state_t): Remove the `link' member, no longer
used.
* src/states.h, src/states.c: here.
(state_hash_new, state_hash_free, state_hash_lookup)
(state_hash_insert, states_free): New.
* src/states.c (state_table, state_compare, state_hash): New.
* src/output.c (output_actions): Do not free states now, since we
still need to know the final_state number in `prepare', called
afterwards.  Do it...
* src/main.c (main): here: call states_free after `output'.
This commit is contained in:
Akim Demaille
2002-06-30 17:29:36 +00:00
parent df0e7316a9
commit c7ca99d4b0
8 changed files with 169 additions and 77 deletions

View File

@@ -39,9 +39,6 @@
#include "derives.h"
#include "getargs.h"
/* All the decorated states, indexed by the state number. */
state_t **states = NULL;
rule_t **LArule = NULL;
bitsetv LA = NULL;
size_t nLA;