* lib/timevar.c (get_time): Include children time.

* src/lalr.h (LA, LArule): Don't export them: used with the
state_t.
* src/lalr.c (LA, LArule): Static.
* src/lalr.h, src/lalr.c (lalr_free): New.
* src/main.c (main): Call it.
* src/tables.c (pack_vector): Check whether loc is >= to the
table_size, not >.
(pack_tables): Don't free froms, tos, conflict_tos, and pos...
(tables_generate): do it, since that's also it which allocates
them.
Don't free LA and LArule, main does.
This commit is contained in:
Akim Demaille
2002-08-01 18:12:11 +00:00
parent c6f1a33c06
commit 3325ddc49c
7 changed files with 78 additions and 37 deletions

View File

@@ -21,8 +21,8 @@
#ifndef LALR_H_
# define LALR_H_
#include "bitset.h"
#include "bitsetv.h"
# include "bitset.h"
# include "bitsetv.h"
/* Import the definition of CORE, TRANSITIONS and REDUCTIONS. */
# include "state.h"
@@ -36,6 +36,11 @@
void lalr PARAMS ((void));
/* Release the information related to lookaheads. Can be performed
once the action tables are computed. */
void lalr_free PARAMS ((void));
/* lalr() builds these data structures. */
@@ -56,22 +61,5 @@ extern goto_number_t *goto_map;
extern state_number_t *from_state;
extern state_number_t *to_state;
/* LARULE is a vector which records the rules that need lookahead in
various states. The elements of LARULE that apply to state S are
those from LOOKAHEADS[S] through LOOKAHEADS[S+1]-1.
If LR is the length of LArule, then a number from 0 to LR-1 can
specify both a rule and a state where the rule might be applied.
*/
extern rule_t **LArule;
/* LA is a LR by NTOKENS matrix of bits. LA[l, i] is 1 if the rule
LAruleno[l] is applicable in the appropriate state when the next
token is symbol i. If LA[l, i] and LA[l, j] are both 1 for i != j,
it is a conflict. */
extern bitsetv LA;
#endif /* !LALR_H_ */