+2001-12-10 Akim Demaille <akim@epita.fr>
+
+ Now that states have a complete set of members, the linked list of
+ reductions is useless: just fill directly the state's reductions
+ member.
+
+ * src/state.h (struct reductions): Remove member `number' and
+ `next'.
+ * src/LR0.c (first_reduction, last_reduction): Remove.
+ (save_reductions): Don't link the new reductions, store them in
+ this_state.
+ * src/lalr.c (set_state_table): No need to attach reductions to
+ states, it's already done.
+ * src/output.c (output_actions): No longer free the shifts, then
+ the reductions, then the states: free all the states and their
+ members.
+
+
+2001-12-10 Akim Demaille <akim@epita.fr>
+
+ * src/options.c (OPTN, DRTV, BOTH): New.
+ (option_table): Use them.
+
+
+ * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
+ the job of system.h.
+ * src/options.c: Don't include stdio.h and xalloc.h for the same
+ reasons.
+
+
+2001-12-10 Akim Demaille <akim@epita.fr>
+
+ * src/output.c (output, prepare): Make sure the values of the
+ muscles `action' and `prologue' are 0-terminated.
+
+2001-12-10 Akim Demaille <akim@epita.fr>
+
+ Clean up GCC warnings.
+
+ * src/reader.c (copy_action): `buf' is not used.
+ (parse_skel_decl): Be static.
+ * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
+ * src/options.h (create_long_option_table): Have a real prototype.
+ * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
+ (hash_delete_at): Return const void *.
+ Adjust casts to preserve the const.
+
+2001-12-10 Akim Demaille <akim@epita.fr>
+
+ * configure.in: Require 2.52g.
+ M4 is not needed, but AUTOM4TE is.
+ * m4/m4.m4: Remove.
+ * tests/Makefile.am: Adjust.
+
+
+2001-12-10 Akim Demaille <akim@epita.fr>
+
+ One structure for states is enough, even though theoretically
+ there are LR(0) states and LALR(1) states.
+
+ * src/lalr.h (state_t): Remove.
+ (state_table): Be state_t **, not state_t *.
+ * src/state.h (core, CORE_ALLOC): Rename as...
+ (state_t, STATE_ALLOC): this.
+ Add the LALR(1) members: shifts, reductions, errs.
+ * src/LR0.c (state_table): Rename as...
+ (state_hash): this, to avoid name clashes with the global
+ `state_table'.
+ * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
+ * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
+
+
+2001-12-10 Akim Demaille <akim@epita.fr>
+
+ Bison dumps core on bash.y.
+ Reported by Pascal Bart.
+
+ * src/warshall.c (bitmatrix_print): New.
+ (TC): Use it.
+ When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
+ j must be the outer loop.
+ * tests/regression.at (Broken Closure): New.
+
+2001-12-05 Akim Demaille <akim@epita.fr>
+
+ * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
+ its argument.
+ Reported by Peter Hámorský.
+
2001-12-05 Akim Demaille <akim@epita.fr>
* src/conflicts.c (err_table): Remove.
Rename as...
(state_t.reductions, state_t.shifts): this.
-
2001-12-05 Akim Demaille <akim@epita.fr>
* src/reduce.c (reduce_grammar_tables): No longer disable the
the `line' member of rule_t.
* src/gram.c (dummy, rline): Remove, unused.
-
2001-12-05 Akim Demaille <akim@epita.fr>
* src/output.c (pack_vector): Use assert, not berror.
* src/closure.c, src/closure.h (itemsetsize): Rename as...
(nitemset): for consistency with the rest of the project.
-
2001-12-05 Akim Demaille <akim@epita.fr>
* src/closure.c (print_closure): Improve.
(closure): Use it for printing input and output.
-
2001-12-05 Akim Demaille <akim@epita.fr>
* src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
indexed by nonterminals.
-
2001-12-05 Akim Demaille <akim@epita.fr>
* src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
what it was!).
* src/warshall.h: Remove accidental duplication of the content.
-
2001-12-05 Akim Demaille <akim@epita.fr>
* src/closure.c (set_fderives): De-obfuscate.
-
2001-12-05 Akim Demaille <akim@epita.fr>
* src/closure.c (print_firsts, print_fderives): De-obfuscate.
-
2001-12-05 Akim Demaille <akim@epita.fr>
* src/closure.c (set_firsts): De-obfuscate.
using the good o' techniques: arrays not pointers, variable
locality, BITISSET, RESETBIT etc.
-
2001-12-05 Akim Demaille <akim@epita.fr>
Pessimize the code to simplify it: from now on, all the states