]> git.saurik.com Git - bison.git/blame - ChangeLog
* lib/bitset.h (bitset_reset): Do not assume that bitset_word is
[bison.git] / ChangeLog
CommitLineData
6fbe4984
PE
12002-10-06 Paul Eggert <eggert@twinsun.com>
2
3 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
4 the same width as int. This reapplies a hunk of the 2002-08-12 patch
5 <http://mail.gnu.org/pipermail/bison-patches/2002-August/001111.html>,
6 which was inadvertently undone by the 2002-09-30 patch.
7 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
8 the same width as int.
9
420f93c8
PE
102002-10-04 Paul Eggert <eggert@twinsun.com>
11
12 Version 1.50.
13
14 * configure.ac (AC_INIT), NEWS: Increment version number.
15
16 * doc/bison.texinfo: Minor spelling, grammar, and white space
17 fixes.
18 (Symbols): Mention that any negative value returned from yylex
19 signifies end-of-input. Warn about negative chars. Mention
20 the portable Standard C character set.
21
22 The GNU coding standard says CFLAGS and YFLAGS are reserved
23 for the installer to set.
24 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
25 * src/Makefile.am (AM_CFLAGS): Likewise.
26 (AM_YFLAGS): Renamed from YFLAGS.
27
28 Fix some MAX and MIN problems.
29 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
30 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
31 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
32 * src/reader.c (reader): Use it.
33
34 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
35 POSIX 1003.1-2001 has removed fgrep.
36
372002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
38
39 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
40 interpreted as signed.
41 * lib/ebitset.c (ebitset_list): Fix bug.
42
ff68026d
PE
432002-10-01 Paul Eggert <eggert@twinsun.com>
44
45 More fixes for 64-bit hosts and large bitsets.
46
47 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
48 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
49 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
50 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
51 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
52 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
53 bitset_count_): Likewise.
54 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
55 bitset_first, bitset_last): Likewise.
56 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
57 bitset_stats_list_reverse, bitset_stats_size,
58 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
59 Likewise.
60 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
61 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
62 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
63 bitsetv_reflexive_transitive_closure): Likewise.
64 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
65 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
66 Likewise.
67 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
68 Likewise.
420f93c8 69
ff68026d
PE
70 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
71 Use size_t, not unsigned int, to count bytes.
72 * lib/abitset.h (abitset_bytes): Likewise.
73 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
74 Likewise.
75 * lib/bitset.h (bitset_bytes): Likewise.
76 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
77 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
78 * lib/bitsetv.c (bitsetv_alloc): Likewise.
79 * lib/ebitset.c (ebitset_bytes): Likewise.
80 * lib/ebitset.h (ebitset_bytes): Likewise.
81 * lib/lbitset.c (lbitset_bytes): Likewise.
82 * lib/lbitset.h (lbitset_bytes): Likewise.
420f93c8 83
ff68026d
PE
84 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
85 abitset_subset_p, abitset_disjoint_p, abitset_and,
86 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
87 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
88 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
89 abitset_or_and, abitset_or_and_cmp):
90 Use bitset_windex instead of unsigned int.
91 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
92 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
93 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
94 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
95 Likewise.
96 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
420f93c8 97
ff68026d
PE
98 * lib/bitset.c (bitset_print):
99 Use proper printf formats for widths of integer types.
100 * lib/bitset_stats.c (bitset_percent_histogram_print,
101 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
102 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
103 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
104 * lib/lbitset.c (lbitset_bytes): Likewise.
420f93c8 105
ff68026d
PE
106 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
107 BITSET_SIZE_MAX): New macros.
108 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
109 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
110 to BITSET_WINDEX_MAX.
111
112 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
113 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
114 since we now return the bitset_bindex type (not int).
115
116 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
117 when computing sizes.
118 * lib/ebitset.c (ebitset_elts_grow): Likewise.
119
120 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
121 and avoid cast to unsigned.
122
6aa452a6
AD
1232002-09-30 Akim Demaille <akim@epita.fr>
124
125 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
126 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
127 Updates from Michael Hayes.
128
927f7817
AD
1292002-09-30 Art Haas <ahaas@neosoft.com>
130
131 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
132 invocations.
133 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
134 defined.
135
9738f41e
AD
1362002-09-27 Akim Demaille <akim@epita.fr>
137
138 Version 1.49c.
139
a5c75d7f
AD
1402002-09-27 Akim Demaille <akim@epita.fr>
141
142 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
143 (Because of AC_LIBSOURCE).
144
8280e179
AD
1452002-09-27 Akim Demaille <akim@epita.fr>
146
147 Playing with Autoscan.
148
149 * configure.ac: Remove the old LIBOBJ tweaks.
150 (AC_REPLACE_FUNCS): Add strrchr and strtol.
151 * lib/strrchr.c: New.
152 * lib/strtol.c: New, from the Coreutils 4.5.1.
153
ae64af35
AD
1542002-09-27 Akim Demaille <akim@epita.fr>
155
156 Playing with Autoscan.
157
158 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
159 * lib/Makefile.am (libbison_a_SOURCES): No longer include
160 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
161 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
162 Coreutils 4.5.1.
163
d1a1114f
AD
1642002-09-24 Akim Demaille <akim@epita.fr>
165
166 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
167 (Frequently Asked Questions, Parser Stack Overflow): New.
168
b906441c
AD
1692002-09-13 Akim Demaille <akim@epita.fr>
170
171 Playing with autoscan.
172
173 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
174 * src/files.c (skeleton_find): Remove, unused.
175 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
176 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
177
bd701811
AD
1782002-09-13 Akim Demaille <akim@epita.fr>
179
180 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
181 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
182
e0a13e7b
AD
1832002-09-13 Akim Demaille <akim@epita.fr>
184
185 * configure.ac: Require 2.54.
186 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
187 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
188 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
189 Remove, provided by Autoconf macros.
190
c97011bf
AD
1912002-09-12 Akim Demaille <akim@epita.fr>
192
193 * m4/prereq.m4: Update, from Coreutils 4.5.1.
194
d862b1be
AD
1952002-09-12 Akim Demaille <akim@epita.fr>
196
197 * m4/prereq.m4: Update, from Fileutils 4.1.5.
198 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
199 Reported by Martin Mokrejs.
200
3d38c03a
AD
2012002-09-10 Akim Demaille <akim@epita.fr>
202
203 * src/parse-gram.y: Associate a human readable string to each
204 token type.
205 * tests/regression.at (Invalid inputs): Adjust.
206
b6347355
AD
2072002-09-10 Gary V. Vaughan <gary@gnu.org>
208
209 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
210 with an Autoconf-2.5x style configure.ac.
211
09ba4ab2
PE
2122002-09-06 Paul Eggert <eggert@twinsun.com>
213
214 * doc/bison.texinfo (Conditions): Make explicit that the GPL
215 exception applies only to yacc.c. This is a modification of a
216 patch originally suggested by Akim Demaille.
217
21846f69
AD
2182002-09-06 Akim Demaille <akim@epita.fr>
219
09ba4ab2
PE
220 * data/c.m4 (b4_copyright): Move the GPL exception comment from
221 here to...
222 * data/yacc.c: here.
223
21846f69
AD
224 * data/lalr1.cc (struct yyltype): Don't define it, since we use
225 LocationType.
226 (b4_ltype): Default to yy::Location from location.hh.
227
c0ad8bf3
AD
2282002-09-04 Jim Meyering <jim@meyering.net>
229
230 * data/yacc.c: Guard the declaration of yytoknum also with
231 `#ifdef YYPRINT', so it is declared only when used.
232
3a93251e
AD
2332002-09-04 Akim Demaille <akim@epita.fr>
234
235 * configure.in: Rename as...
236 * configure.ac: this.
237 Bump to 1.49c.
238
427c0dda
AD
2392002-09-04 Akim Demaille <akim@epita.fr>
240
241 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
242 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
243 translate maintainer only messages.
244
6a254321
PE
2452002-08-12 Paul Eggert <eggert@twinsun.com>
246
645e30d1
PE
247 Version 1.49b.
248
6a254321
PE
249 * Makefile.am (SUBDIRS): Remove intl.
250 (DISTCLEANFILES): Remove.
251 * NEWS: Mention that GNU M4 is now required. Clarify what is
252 meant by "larger grammars". Mention the pt_BR translation.
253 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
254 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
255 Bump version from 0.11.2 to 0.11.5.
256 (BISON_PREREQ_STAGE): Remove.
257 (AM_GNU_GETTEXT): Use external gettext.
258 (AC_OUTPUT): Remove intl/Makefile.
259
260 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
261
262 * data/glr.c: Include string.h, for strlen.
263 (yyreportParseError): Use size_t for yysize.
264 (yy_yypstack): No longer nested inside yypstates, as nested
265 functions are not portable. Do not assume size_t is the
266 same width as int.
267 (yypstates): Do not assume that ptrdiff_t is the same width
268 as int, and similarly for yyposn and YYINDEX.
269
270 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
271
272 * lib/Makefile.am (INCLUDES): Do not include from the intl
273 directory, which has been removed.
274 * src/Makefile.am (INCLUDES): Likewise.
275
276 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
277 (bitsets_sources, additional_bitsets_sources, timevars_sources):
278 New vars.
279
280 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
281 * tests/Makefile.am (EXTRA_DIST): Likewise.
282
283 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
284 Do not assume that bitset_windex is the same width as unsigned.
285
286 * lib/abitset.c (abitset_unused_clear): Do not assume that
287 bitset_word is the same width as int.
288 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
289 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
290 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
291 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
292 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
293
294 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
295 portability to one's complement hosts!).
296 * lib/ebitset.c (ebitset_op1): Likewise.
297 * lib/lbitset.c (lbitset_op1): Likewise.
298
299 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
300 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
301 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
302 Sync with fileutils.
303 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
304 lib/gettext.h: Sync with diffutils.
305
306 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
307 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
308
309 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
310 PROTOTYPES to check for prototypes, and "defined __STDC__" to
311 check for void *.
312
313 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
314 size_t; the old version tried to do this but casted improperly.
315 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
316 (bitset_test): Now returns int, not unsigned long.
317
318 * lib/bitset_stats.c: Include "gettext.h".
319 (_): New macro.
320 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
321 name locals "index", as it generates unnecessary warnings on some
322 hosts that have an "index" function.
323
324 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
325 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
326 they need translation.
327 * src/LR0.c (state_list_append, new_itemsets, get_state,
328 append_states, generate_states): Likewise.
329 * src/assoc.c (assoc_to_string): Likewise.
330 * src/closure.c (print_closure, set_firsts, closure): Likewise.
331 * src/gram.c (grammar_dump): Likewise.
332 * src/injections.c (injections_compute): Likewise.
333 * src/lalr.c (lookaheads_print): Likewise.
334 * src/relation.c (relation_transpose): Likewise.
335 * src/scan-gram.l: Likewise.
336 * src/tables.c (table_grow, pack_vector): Likewise.
337
338 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
339 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
340 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
341 * m4/mbstate_t.m4: Sync with fileutils.
342 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
343
344 * po/LINGUAS: Add pt_BR.
345 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
346 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
347 lib/timevar.c.
348 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
349 manual recommends.
350 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
351
352 * src/complain.c (strerror_r): Remove decl; not needed.
353 (strerror): Use same pattern as ../lib/error.c.
354
355 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
356
357 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
358
359 * src/main.c (main): Cast result of bindtextdomain and textdomain
360 to void, to avoid a GCC warning when --disable-nls is in effect.
361
362 * src/scan-gram.l: Use strings rather than escapes when possible,
363 to minimize the number of warnings from xgettext.
364 (handle_action_dollar, handle_action_at): Don't use isdigit,
365 as it mishandles negative chars and it may not work as expected
366 outside the C locale.
367
368 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
369 this is a GCC extension and is not portable to other compilers.
370
371 * src/system.h (alloca): Use same pattern as ../lib/error.c.
372 Do not include <ctype.h>; no longer needed.
373 Do not include <malloc.h>; no longer needed (and generates
374 warnings on OpenBSD 3.0).
375
376 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
377 it's not portable.
378
379 * tests/regression.at: Do not use 'cc -c input.c -o input';
380 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
381
382 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
383 exit status as failure, not just exit status 1. Sun C exits
384 with status 2 sometimes.
385
386 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
387 Use it for the two large tests.
388
c8f002c7
AD
3892002-08-02 Akim Demaille <akim@epita.fr>
390
391 * src/conflicts.c (conflicts_output): Don't output rules never
392 reduced here, since anyway that computation doesn't work.
393 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
394 (rule_useless_p, rule_never_reduced_p): New.
395 (grammar_rules_partial_print): Use a filter instead of a range.
396 Display the title only if needed.
397 (grammar_rules_print): Adjust.
398 (grammar_rules_never_reduced_report): New.
399 * src/tables.c (action_row): Move the computation of rules never
400 reduced to...
401 (token_actions): here.
402 * src/main.c (main): Make the parser before making the report, so
403 that rules never reduced are computed.
404 Call grammar_rules_never_reduced_report.
405 * src/print.c (print_results): Report rules never reduced.
406 * tests/conflicts.at, tests/reduce.at: Adjust.
407
cd08e51e
AD
4082002-08-01 Akim Demaille <akim@epita.fr>
409
410 Instead of attaching lookaheads and duplicating the rules being
411 reduced by a state, attach the lookaheads to the reductions.
412
413 * src/state.h (state_t): Remove the `lookaheads',
414 `lookaheads_rule' member.
415 (reductions_t): Add a `lookaheads' member.
416 Use a regular array for the `rules'.
417 * src/state.c (reductions_new): Initialize the lookaheads member
418 to 0.
419 (state_rule_lookaheads_print): Adjust.
420 * src/state.h, src/state.c (state_reductions_find): New.
421 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
422 (count_rr_conflicts): Adjust.
423 * src/lalr.c (LArule): Remove.
424 (add_lookback_edge): Adjust.
425 (state_lookaheads_count): New.
426 (states_lookaheads_initialize): Merge into...
427 (initialize_LA): this.
428 (lalr_free): Adjust.
429 * src/main.c (main): Don't free nullable and derives too early: it
430 is used by --verbose.
431 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
432
bb0027a9
AD
4332002-08-01 Akim Demaille <akim@epita.fr>
434
435 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
436 `rule_number_t**'.
437 (set_derives, free_derives): Rename as...
438 (derives_compute, derives_free): this.
439 Adjust all dependencies.
440 * src/nullable.c (set_nullable, free_nullable): Rename as...
441 (nullable_compute, nullable_free): these.
442 (rule_list_t): Store rule_t *, not rule_number_t.
443 * src/state.c (state_rule_lookaheads_print): Directly compare rule
444 pointers, instead of their numbers.
445 * src/main.c (main): Call nullable_free, and derives_free earlier,
446 as they were lo longer used.
447
3325ddc4
AD
4482002-08-01 Akim Demaille <akim@epita.fr>
449
450 * lib/timevar.c (get_time): Include children time.
451 * src/lalr.h (LA, LArule): Don't export them: used with the
452 state_t.
453 * src/lalr.c (LA, LArule): Static.
454 * src/lalr.h, src/lalr.c (lalr_free): New.
455 * src/main.c (main): Call it.
456 * src/tables.c (pack_vector): Check whether loc is >= to the
457 table_size, not >.
458 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
459 (tables_generate): do it, since that's also it which allocates
460 them.
461 Don't free LA and LArule, main does.
462
c6f1a33c
AD
4632002-07-31 Akim Demaille <akim@epita.fr>
464
465 Separate parser tables computation and output.
466
467 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
468 (conflict_list, conflict_list_cnt, table, check, table_ninf)
469 (yydefgoto, yydefact, high): Move to...
470 * src/tables.h, src/tables.c: here.
471 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
472 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
473 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
474 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
475 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
476 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
477 (action_row, save_row, token_actions, save_column, default_goto)
478 (goto_actions, sort_actions, matching_state, pack_vector)
479 (table_ninf_remap, pack_table, prepare_actions): Move to...
480 * src/tables.c: here.
481 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
482 * src/output.c (token_actions, output_base, output_conflicts)
483 (output_check): Merge into...
484 (prepare_actions): this.
485 (actions_output): Rename as...
486 (user_actions_output): this.
487 * src/main.c (main): Call tables_generate and tables_free.
488
1509d42f
AD
4892002-07-31 Akim Demaille <akim@epita.fr>
490
491 Steal GCC's --time-report support.
492
493 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
494 stolen/adjusted from GCC.
495 * m4/stage.m4: Remove time related checks.
496 * m4/timevar.m4: New.
497 * configure.in: Adjust.
498 * src/system.h: Adjust to using timevar.h.
499 * src/getargs.h, src/getargs.c: Support trace_time for
500 --trace=time.
501 * src/main.c (stage): Remove.
502 (main): Replace `stage' invocations with timevar calls.
503 * src/output.c: Insert pertinent timevar calls.
504
273a74fa
AD
5052002-07-31 Akim Demaille <akim@epita.fr>
506
507 Let --trace have arguments.
508
509 * src/getargs.h (enum trace_e): New.
510 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
511 (long_options, short_options): --trace/-T takes an optional
512 argument.
513 Change all the uses of trace_flag to reflect the new flags.
514 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
515
516 Strengthen `stage' portability.
517
518 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
519 * configure.in: Use it.
520 Don't check for malloc.h and sys/times.h.
521 * src/system.h: Include them when appropriate.
522 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
523 times and struct tms are available.
524
217598da
AD
5252002-07-30 Akim Demaille <akim@epita.fr>
526
527 In verbose parse error message, don't report `error' as an
528 expected token.
529 * tests/actions.at (Printers and Destructors): Adjust.
530 * tests/calc.at (Calculator $1): Adjust.
531 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
532 error message, do not report the parser accepts the error token in
533 that state.
534
52489d44
AD
5352002-07-30 Akim Demaille <akim@epita.fr>
536
537 Normalize conflict related messages.
538
539 * src/complain.h, src/complain.c (warn, complain): New.
540 * src/conflicts.c (conflicts_print): Use them.
541 (conflict_report_yacc): New, extracted from...
542 (conflicts_print): here.
543 * tests/conflicts.at, tests/existing.at: Adjust.
544
e8832397
AD
5452002-07-30 Akim Demaille <akim@epita.fr>
546
547 Report rules which are never reduced by the parser: those hidden
548 by conflicts.
549
550 * src/LR0.c (save_reductions): Don't make the final state too
551 different: save its reduction (accept) instead of having a state
552 without any action (no shift or goto, no reduce).
553 Note: the final state is now a ``regular'' state, i.e., the
554 parsers now contain `reduce 0' as default reduction.
555 Nevertheless, since they decide to `accept' when yystate =
556 final_state, they still will not reduce rule 0.
557 * src/print.c (print_actions, print_reduction): Adjust.
558 * src/output.c (action_row): Track reduced rules.
559 (token_actions): Report rules never reduced.
560 * tests/conflicts.at, tests/regression.at: Adjust.
561
caf23d24
AD
5622002-07-30 Akim Demaille <akim@epita.fr>
563
564 `stage' was accidently included in a previous patch.
565 Initiate its autoconfiscation.
566
567 * configure.in: Look for malloc.h and sys/times.h.
568 * src/main.c (stage): Adjust.
569 Report only when trace_flag.
570
640748ee
AD
5712002-07-29 Akim Demaille <akim@epita.fr>
572
573 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
574 state_number_t.
575 (errs_t): symbol_t*, not symbol_number_t.
576 (reductions_t): rule_t*, not rule_number_t.
577 (FOR_EACH_SHIFT): New.
578 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
579 * src/print.c, src/print_graph.c: Adjust.
580
88bce5a2
AD
5812002-07-29 Akim Demaille <akim@epita.fr>
582
583 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
584
585 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
586 (endtoken, accept): these.
587 * src/reader.c (reader): Set endtoken's default tag to "$end".
588 Set undeftoken's tag to "$undefined" instead of "$undefined.".
589 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
590 Adjust.
591
1bfb97db
AD
5922002-07-29 Akim Demaille <akim@epita.fr>
593
594 * src/reduce.c (reduce_grammar): When the language is empty,
595 complain about the start symbol, not the axiom.
596 Use its location.
597 * tests/reduce.at (Empty Language): New.
598
fc5734fe
AD
5992002-07-26 Akim Demaille <akim@epita.fr>
600
601 * src/reader.h, src/reader.c (gram_error): ... can't get
602 yycontrol without making too strong assumptions on the parser
603 itself.
604 * src/output.c (prepare_tokens): Use the real 0th value of
605 token_translations instead of `0'.
606 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
607 visible here.
608 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
609 for the time being: %locations ought to provide it to yyerror.
610
3650b4b8
AD
6112002-07-25 Akim Demaille <akim@epita.fr>
612
613 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
614 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
615 * tests/regression.at (Web2c Actions): Adjust.
616
4b3d3a8e
AD
6172002-07-25 Akim Demaille <akim@epita.fr>
618
619 Stop storing rules from 1 to nrules + 1.
620
621 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
622 * src/nullable.c, src/output.c, src/print.c, src/reader.c
623 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
624 Iterate from 0 to nrules.
625 Use rule_number_as_item_number and item_number_as_rule_number.
626 Adjust to `derive' now containing possibly 0.
627 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
628 Handle the `- 1' part in rule numbers from/to item numbers.
629 * src/conflicts.c (log_resolution): Fix the message which reversed
630 shift and reduce.
631 * src/output.c (action_row): Initialize default_rule to -1.
632 (token_actions): Adjust.
633 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
634 expected output.
635 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
636
4a2a22f4
AD
6372002-07-25 Akim Demaille <akim@epita.fr>
638
639 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
640 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
641 (b4_c_knr_arg_decl): New.
642 * data/yacc.c: Use it to define yysymprint, yydestruct, and
643 yyreport_parse_error.
644
b8df3223
AD
6452002-07-25 Akim Demaille <akim@epita.fr>
646
647 * data/yacc.c (yyreport_parse_error): New, extracted from...
648 (yyparse): here.
649 (yydestruct, yysymprint): Move above yyparse.
650 Be K&R compliant.
651
a762e609
AD
6522002-07-25 Akim Demaille <akim@epita.fr>
653
654 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
655 replace...
656 (b4_sint_type, b4_uint_type): these.
657 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
658 * tests/regression.at (Web2c Actions): Adjust.
659
12b0043a
AD
6602002-07-25 Akim Demaille <akim@epita.fr>
661
662 * src/gram.h (TIEM_NUMBER_MAX): New.
663 (item_number_of_rule_number, rule_number_of_item_number): Rename
664 as...
665 (rule_number_as_item_number, item_number_as_rule_number): these.
666 Adjust dependencies.
667 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
668 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
669 (symbol_number_to_vector_number): New.
670 (order): Of vector_number_t* type.
671 (base_t, BASE_MAX, BASE_MIN): New.
672 (froms, tos, width, pos, check): Of base_t type.
673 (action_number_t, ACTION_MIN, ACTION_MAX): New.
674 (actrow): Of action_number_t type.
675 (conflrow): Of unsigned int type.
676 (table_ninf, base_ninf): New.
677 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
678 (muscle_insert_int_table, muscle_insert_base_table)
679 (muscle_insert_rule_number_table): New.
680 (prepare_tokens): Output `toknum' as int_table.
681 (action_row): Returns a rule_number_t.
682 Use ACTION_MIN, not SHRT_MIN.
683 (token_actions): yydefact is rule_number_t*.
684 (table_ninf_remap): New.
685 (pack_table): Use it for `base' and `table'.
686 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
687 replaced with...
688 (YYPACT_NINF, YYTABLE_NINF): these.
689 (yypact, yytable): Compute their types instead of hard-coded
690 `short'.
691 * tests/regression.at (Web2c Actions): Adjust.
692
5dde258a
AD
6932002-07-19 Akim Demaille <akim@epita.fr>
694
695 * src/scan-gram.l (id): Can start with an underscore.
696
a945ec39
AD
6972002-07-16 Akim Demaille <akim@epita.fr>
698
699 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
700 Adjust all former `associativity' dependencies.
701 * src/symtab.c (symbol_new): Default associativity is `undef', not
702 `right'.
703 (symbol_check_alias_consistence): Adjust.
704
fae437e8
AD
7052002-07-09 Akim Demaille <akim@epita.fr>
706
707 * doc/bison.texinfo: Properly set the ``header'' part.
708 Use @dircategory ``GNU programming tools'' as per Texinfo's
709 documentation.
710 Use @copying.
711
1a715ef2
AD
7122002-07-09 Akim Demaille <akim@epita.fr>
713
714 * lib/quotearg.h: Protect against multiple inclusions.
715 * src/location.h (location_t): Add a `file' member.
716 (LOCATION_RESET, LOCATION_PRINT): Adjust.
717 * src/complain.c (warn_at, complain_at, fatal_at): Drop
718 `error_one_per_line' support.
719
a5d50994
AD
7202002-07-09 Akim Demaille <akim@epita.fr>
721
722 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
723 * src/reader.c (lineno): Remove.
724 Adjust all dependencies.
725 (get_merge_function): Take a location and use complain_at.
726 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
727 * tests/regression.at (Invalid inputs, Mixing %token styles):
728 Adjust.
729
b275314e
AD
7302002-07-09 Akim Demaille <akim@epita.fr>
731
732 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
733 recovery rule, and forbid extensions when --yacc.
734 (gram_error): Use complain_at.
735 * src/reader.c (reader): Exit if there were parse errors.
736
865b9df1
AD
7372002-07-09 Akim Demaille <akim@epita.fr>
738
739 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
740 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
741 Reported by R Blake <blakers@mac.com>.
742
c76e14da
AD
7432002-07-09 Akim Demaille <akim@epita.fr>
744
745 * data/yacc.c: Output the copyright notive in the header.
746
7db2ed2d
AD
7472002-07-03 Akim Demaille <akim@epita.fr>
748
749 * src/output.c (froms, tos): Are state_number_t.
750 (save_column): sp, sp1, and sp2 are state_number_t.
751 (prepare): Rename `final' as `final_state_number', `nnts' as
752 `nterms_number', `nrules' as `rules_number', `nstates' as
753 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
754 unused.
755 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
756 * data/lalr1.cc (nsym_): Remove, unused.
757
e68e0410
AD
7582002-07-03 Akim Demaille <akim@epita.fr>
759
760 * src/lalr.h, src/lalr.c (goto_number_t): New.
761 * src/lalr.c (goto_list_t): New.
762 Propagate them.
763 * src/nullable.c (rule_list_t): New.
764 Propagate.
765 * src/types.h: Remove.
766
e1a4f3a4
AD
7672002-07-03 Akim Demaille <akim@epita.fr>
768
769 * src/closure.c (print_fderives): Use rule_rhs_print.
770 * src/derives.c (print_derives): Use rule_rhs_print.
771 (rule_list_t): New, replaces `shorts'.
772 (set_derives): Add comments.
773 * tests/sets.at (Nullable, Firsts): Adjust.
774
536545f3
AD
7752002-07-03 Akim Demaille <akim@epita.fr>
776
777 * src/output.c (prepare_actions): Free `tally' and `width'.
778 (prepare_actions): Allocate and free `order'.
779 * src/symtab.c (symbols_free): Free `symbols'.
780 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
781 * src/output.c (m4_invoke): Move to...
782 * src/scan-skel.l: here.
783 (<<EOF>>): Close yyout, and free its name.
784
8b752b00
AD
7852002-07-03 Akim Demaille <akim@epita.fr>
786
787 Fix some memory leaks, and fix a bug: state 0 was examined twice.
788
789 * src/LR0.c (new_state): Merge into...
790 (state_list_append): this.
791 (new_states): Merge into...
792 (generate_states): here.
793 (set_states): Don't ensure a proper `errs' state member here, do it...
794 * src/conflicts.c (conflicts_solve): here.
795 * src/state.h, src/state.c: Comment changes.
796 (state_t): Rename member `shifts' as `transitions'.
797 Adjust all dependencies.
798 (errs_new): For consistency, also take the values as argument.
799 (errs_dup): Remove.
800 (state_errs_set): New.
801 (state_reductions_set, state_transitions_set): Assert that no
802 previous value was assigned.
803 (state_free): New.
804 (states_free): Use it.
805 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
806 temporary storage: use `errs' and `nerrs' as elsewhere.
807 (set_conflicts): Allocate and free this `errs'.
808
613f5e1a
AD
8092002-07-02 Akim Demaille <akim@epita.fr>
810
811 * lib/libiberty.h: New.
812 * lib: Update the bitset implementation from upstream.
813 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
814 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
815 * src/main.c: Adjust bitset stats calls.
816
26e0cadc
PE
8172002-07-01 Paul Eggert <eggert@twinsun.com>
818
819 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
820 char, so that negative chars don't collide with $.
821
1154cced
AD
8222002-06-30 Akim Demaille <akim@epita.fr>
823
824 Have the GLR tests be `warning' checked, and fix the warnings.
825
826 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
827 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
828 (yyremoveDeletes): `yyi' and `yyj' are size_t.
829 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
830 (yyaddDeferredAction): static.
831 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
832 (yyreportParseError): yyprefix is const.
833 yytokenp is used only when verbose.
834 (yy__GNUC__): Replace with __GNUC__.
835 (yypdumpstack): yyi is size_t.
836 (yypreference): Un-yy local variables and arguments, to avoid
837 clashes with `yyr1'. Anyway, we are not in the user name space.
838 (yytname_size): be an int, as is compared with ints.
839 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
840 Use them.
841 * tests/cxx-gram.at: Use quotation to protect $1.
842 Use AT_COMPILE to enable warnings hunts.
843 Prototype yylex and yyerror.
844 `Use' argc.
845 Include `string.h', not `strings.h'.
846 Produce and prototype stmtMerge only when used.
847 yylex takes a location.
848
97650f4e
AD
8492002-06-30 Akim Demaille <akim@epita.fr>
850
851 We spend a lot of time in quotearg, in particular when --verbose.
852
853 * src/symtab.c (symbol_get): Store a quoted version of the key.
854 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
855 Adjust all callers.
856
d2576365
AD
8572002-06-30 Akim Demaille <akim@epita.fr>
858
859 * src/state.h (reductions_t): Rename member `nreds' as num.
860 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
861 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
862
ccaf65bc
AD
8632002-06-30 Akim Demaille <akim@epita.fr>
864
865 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
866 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
867 (shifts_to): Rename as...
868 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
869 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
870 (TRANSITION_IS_DISABLED, transitions_to): these.
871
87675353
AD
8722002-06-30 Akim Demaille <akim@epita.fr>
873
874 * src/print.c (print_shifts, print_gotos): Merge into...
875 (print_transitions): this.
876 (print_transitions, print_errs, print_reductions): Align the
877 lookaheads columns.
878 (print_core, print_transitions, print_errs, print_state,
879 print_grammar): Output empty lines separator before, not after.
880 (state_default_rule_compute): Rename as...
881 (state_default_rule): this.
882 * tests/conflicts.at (Defaulted Conflicted Reduction),
883 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
884 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
885
ce4ccb4b
AD
8862002-06-30 Akim Demaille <akim@epita.fr>
887
888 Display items as we display rules.
889
890 * src/gram.h, src/gram.c (rule_lhs_print): New.
891 * src/gram.c (grammar_rules_partial_print): Use it.
892 * src/print.c (print_core): Likewise.
893 * tests/conflicts.at (Defaulted Conflicted Reduction),
894 (Unresolved SR Conflicts): Adjust.
895 (Unresolved SR Conflicts): Adjust and rename as...
896 (Resolved SR Conflicts): this, as was meant.
897 * tests/regression.at (Web2c Report): Adjust.
898
bc933ef1
AD
8992002-06-30 Akim Demaille <akim@epita.fr>
900
901 * src/print.c (state_default_rule_compute): New, extracted from...
902 (print_reductions): here.
903 Pessimize, but clarify the code.
904 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
905
53d4308d
AD
9062002-06-30 Akim Demaille <akim@epita.fr>
907
908 * src/output.c (action_row): Let default_rule be always a rule
909 number.
910
574fb2d5
AD
9112002-06-30 Akim Demaille <akim@epita.fr>
912
913 * src/closure.c (print_firsts, print_fderives, closure):
914 Use BITSET_EXECUTE.
915 * src/lalr.c (lookaheads_print): Likewise.
916 * src/state.c (state_rule_lookaheads_print): Likewise.
917 * src/print_graph.c (print_core): Likewise.
918 * src/print.c (print_reductions): Likewise.
919 * src/output.c (action_row): Likewise.
920 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
921
05811fd7
AD
9222002-06-30 Akim Demaille <akim@epita.fr>
923
924 * src/print_graph.c: Use report_flag.
925
0e4d5753
AD
9262002-06-30 Akim Demaille <akim@epita.fr>
927
928 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
929 to...
930 * src/relation.h, src/relation.c (traverse, relation_digraph)
931 (relation_print, relation_transpose): New.
932
24c7d800
AD
9332002-06-30 Akim Demaille <akim@epita.fr>
934
935 * src/state.h, src/state.c (shifts_to): New.
936 * src/lalr.c (build_relations): Use it.
937
9222837b
AD
9382002-06-30 Akim Demaille <akim@epita.fr>
939
940 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
941 (item_number_of_rule_number, rule_number_of_item_number): New.
942 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
943 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
944 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
945 Propagate their use.
946 Much remains to be done, in particular wrt `shorts' from types.h.
947
260008e5
AD
9482002-06-30 Akim Demaille <akim@epita.fr>
949
950 * src/symtab.c (symbol_new): Initialize the `printer' member.
951
8a731ca8
AD
9522002-06-30 Akim Demaille <akim@epita.fr>
953
954 * src/LR0.c (save_reductions): Remove, replaced by...
955 * src/state.h, src/state.c (state_reductions_set): New.
956 (reductions, errs): Rename as...
957 (reductions_t, errs_t): these.
958 Adjust all dependencies.
959
32e1e0a4
AD
9602002-06-30 Akim Demaille <akim@epita.fr>
961
962 * src/LR0.c (state_list_t, state_list_append): New.
963 (first_state, last_state): Now symbol_list_t.
964 (this_state): Remove.
965 (new_itemsets, append_states, save_reductions): Take a state_t as
966 argument.
967 (set_states, generate_states): Adjust.
968 (save_shifts): Remove, replaced by...
969 * src/state.h, src/state.c (state_shifts_set): New.
970 (shifts): Rename as...
971 (shifts_t): this.
972 Adjust all dependencies.
973 * src/state.h (state_t): Remove the `next' member.
974
e5fb6710
AD
9752002-06-30 Akim Demaille <akim@epita.fr>
976
977 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
978 escaped in slot 0.
979
c7ca99d4
AD
9802002-06-30 Akim Demaille <akim@epita.fr>
981
982 Use hash.h for the state hash table.
983
984 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
985 (allocate_storage): Use state_hash_new.
986 (free_storage): Use state_hash_free.
987 (new_state, get_state): Adjust.
988 * src/lalr.h, src/lalr.c (states): Move to...
989 * src/states.h (state_t): Remove the `link' member, no longer
990 used.
991 * src/states.h, src/states.c: here.
992 (state_hash_new, state_hash_free, state_hash_lookup)
993 (state_hash_insert, states_free): New.
994 * src/states.c (state_table, state_compare, state_hash): New.
995 * src/output.c (output_actions): Do not free states now, since we
996 still need to know the final_state number in `prepare', called
997 afterwards. Do it...
998 * src/main.c (main): here: call states_free after `output'.
999
df0e7316
AD
10002002-06-30 Akim Demaille <akim@epita.fr>
1001
1002 * src/state.h, src/state.c (state_new): New, extracted from...
1003 * src/LR0.c (new_state): here.
1004 * src/state.h (STATE_ALLOC): Move to...
1005 * src/state.c: here.
1006 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
1007 * src/state.h, src/state.c: here.
1008
39f41916
AD
10092002-06-30 Akim Demaille <akim@epita.fr>
1010
1011 * src/reader.c (gensym): Rename as...
1012 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
1013 (getsym): Rename as...
1014 (symbol_get): this.
1015
d57650a5
AD
10162002-06-30 Akim Demaille <akim@epita.fr>
1017
1018 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
1019 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
1020 * src/output.c, src/print.c, src/print_graph.c: Propagate.
1021 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
1022
5a08f1ce
AD
10232002-06-30 Akim Demaille <akim@epita.fr>
1024
1025 Make the test suite pass with warnings checked.
1026
1027 * tests/actions.at (Printers and Destructors): Improve.
1028 Avoid unsigned vs. signed issues.
1029 * tests/calc.at: Don't exercise the scanner here, do it...
1030 * tests/input.at (Torturing the Scanner): here.
1031
720623af
PH
10322002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1033
88e7e941 1034 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
720623af
PH
1035 reorganize first lines parallel to yacc.c.
1036
fb8135fa
AD
10372002-06-28 Akim Demaille <akim@epita.fr>
1038
1039 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
1040 (b4_token_enum, b4_token_defines): New, factored from...
1041 * data/lalr1.cc, data/yacc.c, glr.c: here.
1042
41442480
AD
10432002-06-28 Akim Demaille <akim@epita.fr>
1044
1045 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
1046 unused variables.
1047 * src/output.c (merger_output): static.
1048
e0e5bf84
AD
10492002-06-28 Akim Demaille <akim@epita.fr>
1050
1051 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
1052 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
1053 pacify GCC.
1054 * src/output.c (save_row): Initialize all the variables to pacify GCC.
e0e5bf84 1055
676385e2
PH
10562002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1057
1058 Accumulated changelog for new GLR parsing features.
1059
6a254321 1060 * src/conflicts.c (count_total_conflicts): Change name to
676385e2
PH
1061 conflicts_total_count.
1062 * src/conflicts.h: Ditto.
1063 * src/output.c (token_actions): Use the new name.
1064 (output_conflicts): Change conflp => conflict_list_heads, and
1065 confl => conflict_list for better readability.
1066 * data/glr.c: Use the new names.
1067 * NEWS: Add self to GLR announcement.
e0e5bf84 1068
676385e2
PH
1069 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
1070
1071 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
1072 Akim Demaille.
1073
1074 * data/bison.glr: Change name to glr.c
1075 * data/glr.c: Renamed from bison.glr.
1076 * data/Makefile.am: Add glr.c
e0e5bf84
AD
1077
1078 * src/getargs.c:
1079
676385e2
PH
1080 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
1081 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
e0e5bf84 1082
676385e2
PH
1083 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1084
1085 * data/bison.glr: Be sure to restore the
1086 current #line when returning to the skeleton contents after having
1087 exposed the input file's #line.
1088
1089 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1090
1091 * data/bison.glr: Bring up to date with changes to bison.simple.
1092
1093 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1094
1095 * data/bison.glr: Correct definitions that use b4_prefix.
1096 Various reformatting.
1097 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
1098 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
1099 yytokenp argument; now part of stack.
1100 (yychar): Define to behave as documented.
1101 (yyclearin): Ditto.
e0e5bf84 1102
676385e2
PH
1103 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1104
1105 * src/reader.h: Add declaration for free_merger_functions.
1106
1107 * src/reader.c (merge_functions): New variable.
1108 (get_merge_function): New function.
1109 (free_merger_functions): New function.
1110 (readgram): Check for %prec that is not followed by a symbol.
1111 Handle %dprec and %merge declarations.
1112 (packgram): Initialize dprec and merger fields in rules array.
1113
1114 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
1115 conflict_list_cnt, conflict_list_free): New variables.
1116 (table_grow): Also grow conflict_table.
e0e5bf84 1117 (prepare_rules): Output dprec and merger tables.
676385e2 1118 (conflict_row): New function.
e0e5bf84 1119 (action_row): Output conflict lists for GLR parser. Don't use
676385e2
PH
1120 default reduction in conflicted states for GLR parser so that there
1121 are spaces for the conflict lists.
1122 (save_row): Also save conflict information.
1123 (token_actions): Allocate conflict list.
1124 (merger_output): New function.
1125 (pack_vector): Pack conflict table, too.
1126 (output_conflicts): New function to output yyconflp and yyconfl.
1127 (output_check): Allocate conflict_tos.
1128 (output_actions): Output conflict tables, also.
1129 (output_skeleton): Output b4_mergers definition.
1130 (prepare): Output b4_max_rhs_length definition.
1131 Use 'bison.glr' as default skeleton for GLR parsers.
1132
1133 * src/gram.c (glr_parser): New flag.
1134 (grammar_free): Call free_merger_functions.
1135
1136 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
1137 all pairs of conflicting reductions, rather than just all tokens
1138 causing conflicts. Needed to size conflict tables.
e0e5bf84 1139 (conflicts_output): Modify call to count_rr_conflicts for new
676385e2
PH
1140 interface.
1141 (conflicts_print): Ditto.
1142 (count_total_conflicts): New function.
1143
1144 * src/reader.h (merger_list): New type.
1145 (merge_functions): New variable.
1146
1147 * src/lex.h (tok_dprec, tok_merge): New token types.
1148
1149 * src/gram.h (rule_s): Add dprec and merger fields.
1150 (glr_parser): New flag.
1151
1152 * src/conflicts.h (count_total_conflicts): New function.
1153
1154 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
1155
1156 * doc/bison.texinfo (Generalized LR Parsing): New section.
1157 (GLR Parsers): New section.
1158 (Language and Grammar): Mention GLR parsing.
1159 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
1160 Correct typo ("tge" -> "the").
1161
1162 * data/bison.glr: New skeleton for GLR parsing.
1163
1164 * tests/cxx-gram.at: New tests for GLR parsing.
1165
1166 * tests/testsuite.at: Include cxx-gram.at.
1167
1168 * tests/Makefile.am: Add cxx-gram.at.
e0e5bf84 1169
676385e2
PH
1170 * src/parse-gram.y:
1171
1172 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
1173
1174 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
e0e5bf84 1175
b5480d74 11762002-06-27 Akim Demaille <akim@epita.fr>
e2aaf4c4
AD
1177
1178 * src/options.h, src/options.c: Remove.
1179 * src/getargs.c (short_options, long_options): New.
1180
60491a94
AD
11812002-06-27 Akim Demaille <akim@epita.fr>
1182
1183 * data/bison.simple, data/bison.c++: Rename as...
1184 * data/yacc.c, data/lalr1.cc: these.
1185 * doc/bison.texinfo (Environment Variables): Remove.
1186
9be0c25b
AD
11872002-06-25 Raja R Harinath <harinath@cs.umn.edu>
1188
1189 * src/getargs.c (report_argmatch): Initialize strtok().
1190
1ae72863
AD
11912002-06-20 Akim Demaille <akim@epita.fr>
1192
1193 * data/bison.simple (b4_symbol_actions): New, replaces...
1194 (b4_symbol_destructor, b4_symbol_printer): these.
1195 (yysymprint): Be sure to call YYPRINT only for tokens, and using
1196 user token numbers.
1197
87542d29
AD
11982002-06-20 Akim Demaille <akim@epita.fr>
1199
1200 * data/bison.simple (yydestructor): Rename as...
1201 (yydestruct): this.
1202
1a31ed21
AD
12032002-06-20 Akim Demaille <akim@epita.fr>
1204
1205 * src/symtab.h, src/symtab.c (symbol_type_set)
1206 (symbol_destructor_set, symbol_precedence_set): The location is
1207 the last argument.
1208 Adjust all callers.
1209
e776192e
AD
12102002-06-20 Akim Demaille <akim@epita.fr>
1211
1212 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
1213 internals.
1214 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
1215 Takes a location.
1216 * src/symtab.h, src/symtab.c (symbol_class_set)
1217 (symbol_user_token_number_set): Likewise.
1218 Adjust all callers.
1219 Promote complain_at.
1220 * tests/input.at (Type Clashes): Adjust.
1221
5c1180b3
AD
12222002-06-20 Akim Demaille <akim@epita.fr>
1223
1224 * data/bison.simple (YYLEX): Fix the declaration when
1225 %pure-parser.
1226
e3170060
AD
12272002-06-20 Akim Demaille <akim@epita.fr>
1228
1229 * data/bison.simple (yysymprint): Don't print the token number,
1230 just its name.
1231 * tests/actions.at (Destructors): Rename as...
1232 (Printers and Destructors): this.
1233 Also exercise %printer.
1234
253862fd
AD
12352002-06-20 Akim Demaille <akim@epita.fr>
1236
1237 * data/bison.simple (YYDSYMPRINT): New.
1238 Use it to remove many of the #if YYDEBUG/if (yydebug).
1239
366eea36
AD
12402002-06-20 Akim Demaille <akim@epita.fr>
1241
1242 * src/symtab.h, src/symtab.c (symbol_t): printer and
1243 printer_location are new members.
1244 (symbol_printer_set): New.
1245 * src/parse-gram.y (PERCENT_PRINTER): New token.
1246 Handle its associated rule.
1247 * src/scan-gram.l: Adjust.
1248 (handle_destructor_at, handle_destructor_dollar): Rename as...
1249 (handle_symbol_code_at, handle_symbol_code_dollar): these.
1250 * src/output.c (symbol_printers_output): New.
1251 (output_skeleton): Call it.
1252 * data/bison.simple (yysymprint): New. Cannot be named yyprint
1253 since there are already many grammar files with a user `yyprint'.
1254 Replace the calls to YYPRINT to calls to yysymprint.
1255 * tests/calc.at: Adjust.
1256 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
1257 taking advantage of parser very internal details (stack size!).
1258
4f25ebb0
AD
12592002-06-20 Akim Demaille <akim@epita.fr>
1260
1261 * src/scan-gram.l: Complete the scanner with the missing patterns
1262 to pacify Flex.
1263 Use `quote' and `symbol_tag_get' where appropriate.
1264
93b68a0e
AD
12652002-06-19 Akim Demaille <akim@epita.fr>
1266
1267 * tests/actions.at (Destructors): Augment to test locations.
1268 * data/bison.simple (yydestructor): Pass it the current location
1269 if locations are enabled.
1270 Prototype only when __STDC__ or C++.
1271 Change the argument names to move into the yy name space: there is
1272 user code here.
1273
58612f1d
AD
12742002-06-19 Akim Demaille <akim@epita.fr>
1275
74310291
AD
1276 * data/bison.simple (b4_pure_if): New.
1277 Use it instead of #ifdef YYPURE.
1278
12792002-06-19 Akim Demaille <akim@epita.fr>
1280
1281 * data/bison.simple (b4_location_if): New.
58612f1d
AD
1282 Use it instead of #ifdef YYLSP_NEEDED.
1283
f25bfb75
AD
12842002-06-19 Akim Demaille <akim@epita.fr>
1285
1286 Prepare @$ in %destructor, but currently don't bind it in the
1287 skeleton, as %location use is not cleaned up yet.
1288
1289 * src/scan-gram.l (handle_dollar, handle_destructor_at)
1290 (handle_action_at): New.
1291 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
1292 a braced_code_t and a location as additional arguments.
1293 (handle_destructor_dollar): Instead of requiring `b4_eval', just
1294 unquote one when outputting `b4_dollar_dollar'.
1295 Adjust callers.
1296 * data/bison.simple (b4_eval): Remove.
1297 (b4_symbol_destructor): Adjust.
1298 * tests/input.at (Invalid @n): Adjust.
1299
c732d2c6
AD
13002002-06-19 Zack Weinberg <zack@codesourcery.com>
1301
1302 * doc/bison.texinfo: Document ability to have multiple
1303 prologue sections.
1304
8c165d89
AD
13052002-06-18 Akim Demaille <akim@epita.fr>
1306
1307 * src/files.c (compute_base_names): When computing the output file
1308 names from the input file name, strip the directory part.
1309
ca98bf57
AD
13102002-06-18 Akim Demaille <akim@epita.fr>
1311
1312 * data/bison.simple.new: Comment changes.
1313 Reported by Andreas Schwab.
1314
0bfb02ff
AD
13152002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
1316
1317 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
1318 there are no `label `yyoverflowlab' defined but not used' warnings
1319 when yyoverflow is defined.
1320
24c0aad7
AD
13212002-06-18 Akim Demaille <akim@epita.fr>
1322
1323 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
1324 new member.
1325 (symbol_destructor_set): Adjust.
1326 * src/output.c (symbol_destructors_output): Output the destructor
1327 locations.
1328 Output the symbol name.
1329 * data/bison.simple (b4_symbol_destructor): Adjust.
1330
5719c109
AD
13312002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
1332 and Akim Demaille <akim@epita.fr>
1333
1334 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
1335 what's left on the stack when the error recovery hits EOF.
1336 * tests/actions.at (Destructors): Complete to exercise this case.
1337
9280d3ef
AD
13382002-06-17 Akim Demaille <akim@epita.fr>
1339
1340 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
1341 arguments is really empty, not only equal to `[]'.
1342 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
1343 member.
1344 (symbol_destructor_set): New.
1345 * src/output.c (symbol_destructors_output): New.
1346 * src/reader.h (brace_code_t, current_braced_code): New.
1347 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
1348 (handle_dollar): Rename as...
1349 (handle_action_dollar): this.
1350 (handle_destructor_dollar): New.
1351 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
1352 (grammar_declaration): Use it.
1353 * data/bison.simple (yystos): Is always defined.
1354 (yydestructor): New.
1355 * tests/actions.at (Destructors): New.
1356 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
1357
dafdc66f
AD
13582002-06-17 Akim Demaille <akim@epita.fr>
1359
1360 * src/symlist.h, src/symlist.c (symbol_list_length): New.
1361 * src/scan-gram.l (handle_dollar, handle_at): Compute the
1362 rule_length only when needed.
1363 * src/output.c (actions_output, token_definitions_output): Output
1364 the full M4 block.
1365 * src/symtab.c: Don't access directly to the symbol tag, use
1366 symbol_tag_get.
1367 * src/parse-gram.y: Use symbol_list_free.
1368
56c47203
AD
13692002-06-17 Akim Demaille <akim@epita.fr>
1370
1371 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
1372 (symbol_list_prepend, get_type_name): Move to...
1373 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
1374 (symbol_list_prepend, symbol_list_n_type_name_get): here.
1375 Adjust all callers.
1376 (symbol_list_free): New.
1377 * src/scan-gram.l (handle_dollar): Takes a location.
1378 * tests/input.at (Invalid $n): Adjust.
1379
1e0bab92
AD
13802002-06-17 Akim Demaille <akim@epita.fr>
1381
1382 * src/reader.h, src/reader.c (symbol_list_new): Export it.
1383 (symbol_list_prepend): New.
1384 * src/parse-gram.y (%union): `list' is a new member.
1385 (symbols.1): New, replaces...
1386 (terms_to_prec.1, nterms_to_type.1): these.
1387 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
1388 Take a location as additional argument.
1389 Adjust all callers.
1390
04e60654
AD
13912002-06-15 Akim Demaille <akim@epita.fr>
1392
1393 * src/parse-gram.y: Move %token in the declaration section so that
1394 we don't depend upon CVS Bison.
1395
10e5b8bd
AD
13962002-06-15 Akim Demaille <akim@epita.fr>
1397
1398 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
1399 * src/print.c (print_core): Use it.
1400
9801d40c
AD
14012002-06-15 Akim Demaille <akim@epita.fr>
1402
1403 * src/conflicts.c (log_resolution): Accept the rule involved in
1404 the sr conflicts instead of the lookahead number that points to
1405 that rule.
1406 (flush_reduce): Accept the current lookahead vector as argument,
1407 instead of the index in LA.
1408 (resolve_sr_conflict): Accept the current number of lookahead
1409 bitset to consider for the STATE, instead of the index in LA.
1410 (set_conflicts): Adjust.
1411 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
1412
c0263492
AD
14132002-06-15 Akim Demaille <akim@epita.fr>
1414
1415 * src/state.h (state_t): Replace the `lookaheadsp' member, a
1416 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
1417 Adjust all dependencies.
1418 * src/lalr.c (initialize_lookaheads): Split into...
1419 (states_lookaheads_count, states_lookaheads_initialize): these.
1420 (lalr): Adjust.
1421
9757c359
AD
14222002-06-15 Akim Demaille <akim@epita.fr>
1423
1424 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
1425 out of...
1426 (grammar_rules_print): here.
1427 * src/reduce.c (reduce_output): Use it.
1428 * tests/reduce.at (Useless Rules, Reduced Automaton)
1429 (Underivable Rules): Adjust.
1430
6b98e4b5
AD
14312002-06-15 Akim Demaille <akim@epita.fr>
1432
1433 Copy BYacc's nice way to report the grammar.
1434
1435 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
1436 New.
1437 Don't print the rules' location, it is confusing and useless.
1438 (rule_print): Use grammar_rhs_print.
1439 * src/print.c (print_grammar): Use grammar_rules_print.
1440
6b98e4b5
AD
14412002-06-15 Akim Demaille <akim@epita.fr>
1442
1443 Complete and rationalize `useless thing' warnings.
1444
1445 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
1446 (symbol_tag_print): New.
1447 Use them everywhere in place of accessing directly the tag member.
1448 * src/gram.h, src/gram.c (rule_print): New.
1449 Use it where a rule used to be printed `by hand'.
1450 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
1451 (reduce_grammar_tables): Report the useless rules.
1452 (reduce_print): Useless things are a warning, not an error.
1453 Report it as such.
1454 * tests/reduce.at (Useless Nonterminals, Useless Rules):
1455 (Reduced Automaton, Underivable Rules): Adjust.
1456 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
1457 * tests/conflicts.at (Unresolved SR Conflicts)
1458 (Solved SR Conflicts): Adjust.
1459
ee000ba4
AD
14602002-06-15 Akim Demaille <akim@epita.fr>
1461
1462 Let symbols have a location.
1463
1464 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
1465 (getsym): Adjust.
1466 Adjust all callers.
1467 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
1468 Use location_t, not int.
1469 * src/symtab.c (symbol_check_defined): Take advantage of the
1470 location.
1471 * tests/regression.at (Invalid inputs): Adjust.
1472
8efe435c
AD
14732002-06-15 Akim Demaille <akim@epita.fr>
1474
1475 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
1476 (input): Don't try to initialize yylloc here, do it in the
1477 scanner.
1478 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
1479 * src/gram.h (rule_t): Change line and action_line into location
1480 and action_location, of location_t type.
1481 Adjust all dependencies.
1482 * src/location.h, src/location.c (empty_location): New.
1483 * src/reader.h, src/reader.c (grammar_start_symbol_set)
1484 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
1485 (grammar_current_rule_symbol_append)
1486 (grammar_current_rule_action_append): Expect a location as argument.
1487 * src/reader.c (grammar_midrule_action): Adjust to attach an
1488 action's location as dummy symbol location.
1489 * src/symtab.h, src/symtab.c (startsymbol_location): New.
1490 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
1491 the line numbers.
1492
1921f1d7
AD
14932002-06-14 Akim Demaille <akim@epita.fr>
1494
1495 Grammar declarations may be found in the grammar section.
1496
1497 * src/parse-gram.y (rules_or_grammar_declaration): New.
1498 (declarations): Each declaration may end with a semicolon, not
1499 just...
1500 (grammar_declaration): `"%union"'.
1501 (grammar): Branch to rules_or_grammar_declaration.
1502
4515534c
AD
15032002-06-14 Akim Demaille <akim@epita.fr>
1504
1505 * src/main.c (main): Invoke scanner_free.
1506
f958596b
AD
15072002-06-14 Akim Demaille <akim@epita.fr>
1508
1509 * src/output.c (m4_invoke): Extracted from...
1510 (output_skeleton): here.
1511 Free tempfile.
1512
2c569025
AD
15132002-06-14 Akim Demaille <akim@epita.fr>
1514
1515 * src/parse-gram.y (directives, directive, gram)
1516 (grammar_directives, precedence_directives, precedence_directive):
1517 Rename as...
1518 (declarations, declaration, grammar, grammar_declaration)
1519 (precedence_declaration, precedence_declarator): these.
1520 (symbol_declaration): New.
1521
592e8d4d
AD
15222002-06-14 Akim Demaille <akim@epita.fr>
1523
1524 * src/files.c (action_obstack): Remove, unused.
1525 (output_obstack): Remove it, and all its dependencies, as it is no
1526 longer needed.
1527 * src/reader.c (epilogue_set): Build the epilogue in the
1528 muscle_obstack.
1529 * src/output.h, src/output.c (muscle_obstack): Move to...
1530 * src/muscle_tab.h, src/muscle_tab.h: here.
1531 (muscle_init): Initialize muscle_obstack.
1532 (muscle_free): New.
1533 * src/main.c (main): Call it.
1534
0c15323d
AD
15352002-06-14 Akim Demaille <akim@epita.fr>
1536
1537 * src/location.h: New, extracted from...
1538 * src/reader.h: here.
1539 * src/Makefile.am (noinst_HEADERS): Merge into
1540 (bison_SOURCES): this.
1541 Add location.h.
1542 * src/parse-gram.y: Use location_t instead of Bison's.
1543 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
1544 Use location_t instead of ints.
1545
e96c9728
AD
15462002-06-14 Akim Demaille <akim@epita.fr>
1547
1548 * data/bison.simple, data/bison.c++: Be sure to restore the
1549 current #line when returning to the skeleton contents after having
1550 exposed the input file's #line.
1551
75d1fe16
AD
15522002-06-12 Akim Demaille <akim@epita.fr>
1553
1554 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
1555 eager.
1556 * tests/actions.at (Exotic Dollars): New.
1557
6c35d22c
AD
15582002-06-12 Akim Demaille <akim@epita.fr>
1559
1560 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
1561 ['"/] too eagerly.
1562 * tests/input.at (Torturing the Scanner): New.
1563
1d6412ad
AD
15642002-06-11 Akim Demaille <akim@epita.fr>
1565
1566 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
1567 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
1568 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
1569 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
1570 * src/reader.c (reader): Use it.
1571
4cdb01db
AD
15722002-06-11 Akim Demaille <akim@epita.fr>
1573
1574 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
1575 Adjust all callers.
1576 (scanner_last_string_free): New.
1577
44995b2e
AD
15782002-06-11 Akim Demaille <akim@epita.fr>
1579
1580 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
1581 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
1582 (last_string, YY_OBS_FREE): New.
1583 Use them when returning an ID.
1584
e9955c83
AD
15852002-06-11 Akim Demaille <akim@epita.fr>
1586
1587 Have Bison grammars parsed by a Bison grammar.
1588
1589 * src/reader.c, src/reader.h (prologue_augment): New.
1590 * src/reader.c (copy_definition): Remove.
1591
1592 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
1593 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
1594 (grammar_current_rule_prec_set, grammar_current_rule_check)
1595 (grammar_current_rule_symbol_append)
1596 (grammar_current_rule_action_append): Export.
1597 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
1598 (symbol_list_action_append): Remove.
1599 Hook the routines from reader.
1600 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
1601 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
1602
1603 * src/reader.c (read_declarations): Remove, unused.
1604
1605 * src/parse-gram.y: Handle the epilogue.
1606 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
1607 (grammar_start_symbol_set): this.
1608 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
1609 * src/reader.c (readgram): Remove, unused.
1610 (reader): Adjust to insert eoftoken and axiom where appropriate.
1611
1612 * src/reader.c (copy_dollar): Replace with...
1613 * src/scan-gram.h (handle_dollar): this.
1614 * src/parse-gram.y: Remove `%thong'.
1615
1616 * src/reader.c (copy_at): Replace with...
1617 * src/scan-gram.h (handle_at): this.
1618
1619 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
1620 New.
1621
1622 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
1623 time being.
1624
1625 * src/reader.h, src/reader.c (grammar_rule_end): New.
1626
1627 * src/parse.y (current_type, current_class): New.
1628 Implement `%nterm', `%token' support.
1629 Merge `%term' into `%token'.
1630 (string_as_id): New.
1631 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
1632 type name.
1633
1634 * src/parse-gram.y: Be sure to handle properly the beginning of
1635 rules.
1636
1637 * src/parse-gram.y: Handle %type.
1638 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
1639
1640 * src/parse-gram.y: More directives support.
1641 * src/options.c: No longer handle source directives.
1642
1643 * src/parse-gram.y: Fix %output.
1644
1645 * src/parse-gram.y: Handle %union.
1646 Use the prologue locations.
1647 * src/reader.c (parse_union_decl): Remove.
1648
1649 * src/reader.h, src/reader.c (epilogue_set): New.
1650 * src/parse-gram.y: Use it.
1651
1652 * data/bison.simple, data/bison.c++: b4_stype is now either not
1653 defined, then default to int, or to the contents of %union,
1654 without `union' itself.
1655 Adjust.
1656 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
1657
1658 * src/output.c (actions_output): Don't output braces, as they are
1659 already handled by the scanner.
1660
1661 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
1662 characters to themselves.
1663
1664 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
1665 that the epilogue has a proper #line.
1666
1667 * src/parse-gram.y: Handle precedence/associativity.
1668
1669 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
1670 a terminal.
1671 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
1672 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
1673 at all to define terminals that cannot be emitted.
1674
1675 * src/scan-gram.l: Escape M4 characters.
1676
1677 * src/scan-gram.l: Working properly with escapes in user
1678 strings/characters.
1679
1680 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
1681 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
1682 grammar.
1683 Use more modest sizes, as for the time being the parser does not
1684 release memory, and therefore the process swallows a huge amount
1685 of memory.
1686
1687 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
1688 stricter %token grammar.
1689
1690 * src/symtab.h (associativity): Add `undef_assoc'.
1691 (symbol_precedence_set): Do nothing when passed an undef_assoc.
1692 * src/symtab.c (symbol_check_alias_consistence): Adjust.
1693
1694 * tests/regression.at (Invalid %directive): Remove, as it is now
1695 meaningless.
1696 (Invalid inputs): Adjust to the new error messages.
1697 (Token definitions): The new grammar doesn't allow too many
1698 eccentricities.
1699
1700 * src/lex.h, src/lex.c: Remove.
1701 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
1702 (copy_character, copy_string2, copy_string, copy_identifier)
1703 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
1704 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
1705 (parse_action): Remove.
1706 * po/POTFILES.in: Adjust.
1707
2e047461
AD
17082002-06-11 Akim Demaille <akim@epita.fr>
1709
1710 * src/reader.c (parse_action): Don't store directly into the
1711 rule's action member: return the action as a string.
1712 Don't require `rule_length' as an argument: compute it.
1713 (grammar_current_rule_symbol_append)
1714 (grammar_current_rule_action_append): New, eved out from
1715 (readgram): here.
1716 Remove `action_flag', `rulelength', unused now.
1717
9af3fbce
AD
17182002-06-11 Akim Demaille <akim@epita.fr>
1719
1720 * src/reader.c (grammar_current_rule_prec_set).
1721 (grammar_current_rule_check): New, eved out from...
1722 (readgram): here.
1723 Remove `xaction', `first_rhs': useless.
1724 * tests/input.at (Type clashes): New.
1725 * tests/existing.at (GNU Cim Grammar): Adjust.
1726
1485e106
AD
17272002-06-11 Akim Demaille <akim@epita.fr>
1728
1729 * src/reader.c (grammar_midrule_action): New, Eved out from
1730 (readgram): here.
1731
da4160c3
AD
17322002-06-11 Akim Demaille <akim@epita.fr>
1733
1734 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
1735 New.
1736 (readgram): Use them as replacement of inlined code, crule and
1737 crule1.
1738
f6d0f937
AD
17392002-06-11 Akim Demaille <akim@epita.fr>
1740
1741 * src/reader.c (grammar_end, grammar_symbol_append): New.
1742 (readgram): Use them.
1743 Make the use of `p' as local as possible.
1744
69078d4b
AD
17452002-06-10 Akim Demaille <akim@epita.fr>
1746
1747 GCJ's parser requires the tokens to be defined before the prologue.
1748
1749 * data/bison.simple: Output the token definition before the user's
1750 prologue.
1751 * tests/regression.at (Braces parsing, Duplicate string)
1752 (Mixing %token styles): Check the output from bison.
1753 (Early token definitions): New.
1754
5e424082
AD
17552002-06-10 Akim Demaille <akim@epita.fr>
1756
1757 * src/symtab.c (symbol_user_token_number_set): Don't complain when
1758 assigning twice the same user number to a token, so that we can
1759 use it in...
1760 * src/lex.c (lex): here.
1761 Also use `symbol_class_set' instead of hand written code.
1762 * src/reader.c (parse_assoc_decl): Likewise.
1763
44536b35
AD
17642002-06-10 Akim Demaille <akim@epita.fr>
1765
1766 * src/symtab.c, src/symtab.c (symbol_class_set)
1767 (symbol_user_token_number_set): New.
1768 * src/reader.c (parse_token_decl): Use them.
1769 Use a switch instead of ifs.
1770 Use a single argument.
1771
8b9f2372
AD
17722002-06-10 Akim Demaille <akim@epita.fr>
1773
1774 Remove `%thong' support as it is undocumented, unused, duplicates
1775 `%token's job, and creates useless e-mail traffic with people who
1776 want to know what it is, why it is undocumented, unused, and
1777 duplicates `%token's job.
1778
1779 * src/reader.c (parse_thong_decl): Remove.
1780 * src/options.c (option_table): Remove "thong".
1781 * src/lex.h (tok_thong): Remove.
1782
3ae2b51f
AD
17832002-06-10 Akim Demaille <akim@epita.fr>
1784
1785 * src/symtab.c, src/symtab.c (symbol_type_set)
1786 (symbol_precedence_set): New.
1787 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
1788 (value_components_used): Remove, unused.
1789
2f1afb73
AD
17902002-06-09 Akim Demaille <akim@epita.fr>
1791
1792 Move symbols handling code out of the reader.
1793
1794 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
1795 (axiom): Move to...
1796 * src/symtab.h, src/symtab.c: here.
1797
1798 * src/gram.c (start_symbol): Remove: use startsymbol->number.
1799 * src/reader.c (startval): Rename as...
1800 * src/symtab.h, src/symtab.c (startsymbol): this.
1801 * src/reader.c: Adjust.
1802
1803 * src/reader.c (symbol_check_defined, symbol_make_alias)
1804 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
1805 (token_translations_init)
1806 Move to...
1807 * src/symtab.c: here.
1808 * src/reader.c (packsymbols): Move to...
1809 * src/symtab.h, src/symtab.c (symbols_pack): here.
1810 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
1811 argument.
1812
e9bca3ad
AD
18132002-06-03 Akim Demaille <akim@epita.fr>
1814
1815 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
1816 then statements.
1817
86eff183
AD
18182002-06-03 Akim Demaille <akim@epita.fr>
1819
1820 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
1821 structs with non literals.
1822 * src/scan-skel.l: never-interactive.
1823 * src/conflicts.c (enum conflict_resolution_e): No trailing
1824 comma.
1825 * src/getargs.c (usage): Split long literal strings.
1826 Reported by Hans Aberg.
1827
717be197
AD
18282002-05-28 Akim Demaille <akim@epita.fr>
1829
1830 * data/bison.c++: Use C++ ostreams.
1831 (cdebug_): New member.
1832
670ddffd
AD
18332002-05-28 Akim Demaille <akim@epita.fr>
1834
1835 * src/output.c (output_skeleton): Be sure to allocate enough room
1836 for `/' _and_ for `\0' in full_skeleton.
1837
769b430f
AD
18382002-05-28 Akim Demaille <akim@epita.fr>
1839
1840 * data/bison.c++: Catch up with bison.simple:
1841 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1842 and Paul Eggert <eggert@twinsun.com>: `error' handing.
1843 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
1844 and popping traces.
1845
7067cb36
PH
18462002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1847
1848 * src/output.c (output_skeleton): Put an explicit path in front of
1849 the skeleton file name, rather than relying on the -I directory,
1850 to partially alleviate effects of having a skeleton file lying around
1851 in the current directory.
769b430f 1852
4a713ec2
PH
18532002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1854
769b430f 1855 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
1856 obstack_printf should be obstack_fgrow1.
1857
b408954b
AD
18582002-05-26 Akim Demaille <akim@epita.fr>
1859
1860 * src/state.h (state_t): `solved_conflicts' is a new member.
1861 * src/LR0.c (new_state): Set it to 0.
1862 * src/conflicts.h, src/conflicts.c (print_conflicts)
1863 (free_conflicts, solve_conflicts): Rename as...
1864 (conflicts_print, conflicts_free, conflicts_solve): these.
1865 Adjust callers.
1866 * src/conflicts.c (enum conflict_resolution_e)
1867 (solved_conflicts_obstack): New, used by...
1868 (log_resolution): this.
1869 Adjust to attach the conflict resolution to each state.
1870 Complete the description with the precedence/associativity
1871 information.
1872 (resolve_sr_conflict): Adjust.
1873 * src/print.c (print_state): Output its solved_conflicts.
1874 * tests/conflicts.at (Unresolved SR Conflicts)
1875 (Solved SR Conflicts): Exercise --report=all.
1876
a49aecd5
AD
18772002-05-26 Akim Demaille <akim@epita.fr>
1878
1879 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
1880 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
1881 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
1882 (token_number_t, item_number_as_token_number)
1883 (token_number_as_item_number, muscle_insert_token_number_table):
1884 Rename as...
1885 (symbol_number_t, item_number_as_symbol_number)
1886 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
1887 these, since it is more appropriate.
1888
5504898e
AD
18892002-05-26 Akim Demaille <akim@epita.fr>
1890
1891 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
1892 `Error:' lines.
1893 * data/bison.simple (yystos) [YYDEBUG]: New.
1894 (yyparse) [YYDEBUG]: Display the symbols which are popped during
1895 error recovery.
1896 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
1897
ec3bc396
AD
18982002-05-25 Akim Demaille <akim@epita.fr>
1899
1900 * doc/bison.texinfo (Debugging): Split into...
1901 (Tracing): this new section, its former contents, and...
1902 (Understanding): this new section.
1903 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
1904 by...
1905 (report_flag): this.
1906 Adjust all dependencies.
1907 (report_args, report_types, report_argmatch): New.
1908 (usage, getargs): Report/support -r, --report.
1909 * src/options.h
1910 (struct option_table_struct): Rename as..,
1911 (struct option_table_s): this.
1912 Rename the `set_flag' member to `flag' to match with getopt_long's
1913 struct.
1914 * src/options.c (option_table): Split verbose into an entry for
1915 %verbose, and another for --verbose.
1916 Support --report/-r, so remove -r from the obsolete --raw.
1917 * src/print.c: Attach full item sets and lookaheads reports to
1918 report_flag instead of trace_flag.
1919 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
1920
78df8250
PE
19212002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1922 and Paul Eggert <eggert@twinsun.com>
769b430f 1923
78df8250
PE
1924 * data/bison.simple (yyparse): Correct error handling to conform to
1925 POSIX and yacc. Specifically, after syntax error is discovered,
1926 do not reduce further before shifting the error token.
1927 Clean up the code a bit by removing the labels yyerrdefault,
1928 yyerrhandle, yyerrpop.
1929 * NEWS: Document the above.
1930
c0c9ea05
PH
19312002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1932
1933 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
1934 type; it isn't always big enough, since it doesn't necessarily
1935 include non-terminals.
769b430f 1936 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
1937 the latter can be removed.
1938 (yy_token_number_type): Remove, only one use.
1939 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
1940 don't use TokenNumberType as element type.
769b430f 1941
c0c9ea05
PH
1942 * tests/regression.at: Modify expected output to agree with change
1943 to yyr1 and yytranslate.
769b430f 1944
6390a83f
FK
19452002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
1946
1947 * src/reader.c (parse_action): Use copy_character instead of
1948 obstack_1grow.
1949
db7c8e9a
AD
19502002-05-13 Akim Demaille <akim@epita.fr>
1951
1952 * tests/regression.at (Token definitions): Prototype yylex and
1953 yyerror.
1954
fcc61800
PH
19552002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1956
158c687b 1957 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
1958 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
1959 32-bit arithmetic.
1960 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
1961
5683e9b2
AD
19622002-05-07 Akim Demaille <akim@epita.fr>
1963
1964 * tests/synclines.at: Be sure to prototype yylex and yyerror to
1965 avoid GCC warnings.
1966
0c2d3f4c
AD
19672002-05-07 Akim Demaille <akim@epita.fr>
1968
1969 Kill GCC warnings.
1970
1971 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
1972 over the RHS of each rule.
1973 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
1974 * src/state.h (state_t): Member `nitems' is unsigned short.
1975 * src/LR0.c (get_state): Adjust.
1976 * src/reader.c (packgram): Likewise.
1977 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
1978 `Type'.
1979 (muscle_insert_int_table): Remove, unused.
1980 (prepare_rules): Remove `max'.
1981
1565b720
AD
19822002-05-06 Akim Demaille <akim@epita.fr>
1983
1984 * src/closure.c (print_firsts): Display of the symbol tags.
1985 (bitmatrix_print): Move to...
1986 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
1987 here.
1988 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
1989
cfaee611
AD
19902002-05-06 Akim Demaille <akim@epita.fr>
1991
1992 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
1993 hash_do_for_each.
1994
458be8e0
AD
19952002-05-06 Akim Demaille <akim@epita.fr>
1996
1997 * src/LR0.c (new_state, get_state): Instead of using the global
1998 `kernel_size' and `kernel_base', have two new arguments:
1999 `core_size' and `core'.
2000 Adjust callers.
2001
a900a624
AD
20022002-05-06 Akim Demaille <akim@epita.fr>
2003
2004 * src/reader.c (packgram): No longer end `ritem' with a 0
2005 sentinel: it is not used.
2006
d4e7d3a1
AD
20072002-05-05 Akim Demaille <akim@epita.fr>
2008
2009 New experimental feature: display the lookaheads in the report and
2010 graph.
2011
2012 * src/print (print_core): When --trace-flag, display the rules
2013 lookaheads.
2014 * src/print_graph.c (print_core): Likewise.
2015 Swap the arguments.
2016 Adjust caller.
2017
39ceb25b
AD
20182002-05-05 Akim Demaille <akim@epita.fr>
2019
2020 * tests/torture.at (Many lookaheads): New test.
2021
5372019f
AD
20222002-05-05 Akim Demaille <akim@epita.fr>
2023
2024 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
2025 (GENERATE_MUSCLE_INSERT_TABLE): this.
2026 (output_int_table, output_unsigned_int_table, output_short_table)
2027 (output_token_number_table, output_item_number_table): Replace with...
2028 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
2029 (muscle_insert_short_table, muscle_insert_token_number_table)
2030 (muscle_insert_item_number_table): these.
2031 Adjust all callers.
2032 (prepare_tokens): Don't free `translations', since...
2033 * src/reader.h, src/reader.c (grammar_free): do it.
2034 Move to...
2035 * src/gram.h, src/gram.c (grammar_free): here.
2036 * data/bison.simple, data/bison.c++: b4_token_number_max is now
2037 b4_translate_max.
2038
5df5f6d5
AD
20392002-05-05 Akim Demaille <akim@epita.fr>
2040
2041 * src/output.c (output_unsigned_int_table): New.
2042 (prepare_rules): `i' is unsigned.
2043 `prhs', `rline', `r2' are unsigned int.
2044 Rename muscle `rhs_number_max' as `rhs_max'.
2045 Output muscles `prhs_max', `rline_max', and `r2_max'.
2046 Free rline and r1.
2047 * data/bison.simple, data/bison.c++: Adjust to use these muscles
2048 to compute types instead of constant types.
2049 * tests/regression.at (Web2c Actions): Adjust.
2050
b87f8b21
AD
20512002-05-04 Akim Demaille <akim@epita.fr>
2052
2053 * src/symtab.h (SALIAS, SUNDEF): Rename as...
2054 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
2055 Adjust dependencies.
2056 * src/output.c (token_definitions_output): Be sure not to output a
2057 `#define 'a'' when fed with `%token 'a' "a"'.
2058 * tests/regression.at (Token definitions): New.
2059
8bb936e4
PE
20602002-05-03 Paul Eggert <eggert@twinsun.com>
2061
2062 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
2063 for K&R C.
2064
20652002-05-03 gettextize <bug-gnu-gettext@gnu.org>
2066
2067 * Makefile.am (SUBDIRS): Remove intl.
2068 (EXTRA_DIST): Add config/config.rpath.
2069
53c71a12
AD
20702002-05-03 Akim Demaille <akim@epita.fr>
2071
2072 * data/bison.simple (m4_if): Don't output empty enums.
2073 And actually, output valid enum definitions :(.
2074
289dd0cf
AD
20752002-05-03 Akim Demaille <akim@epita.fr>
2076
2077 * configure.bat: Remove, completely obsolete.
2078 * Makefile.am (EXTRA_DIST): Adjust.
2079 Don't distribute config.rpath...
2080 * config/Makefile.am (EXTRA_DIST): Do it.
2081
db85e524
AD
20822002-05-03 Akim Demaille <akim@epita.fr>
2083
2084 * configure.in (GETTEXT_VERSION): New.
2085 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
2086
83ccf991
AD
20872002-05-03 Akim Demaille <akim@epita.fr>
2088
2089 * data/bison.simple (b4_token_enum): New.
2090 (b4_token_defines): Use it to output tokens both as #define and
2091 enums.
2092 Suggested by Paul Eggert.
2093 * src/output.c (token_definitions_output): Don't output spurious
2094 white spaces.
2095
1f418995
AD
20962002-05-03 Akim Demaille <akim@epita.fr>
2097
2098 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
2099
45119f04
RA
21002002-05-02 Robert Anisko <robert@lrde.epita.fr>
2101
2102 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
2103 Update the stack class, give a try to deque as the default container.
2104
b2d52318
AD
21052002-05-02 Akim Demaille <akim@epita.fr>
2106
2107 * data/bison.simple (yyparse): Do not implement @$ = @1.
2108 (YYLLOC_DEFAULT): Adjust to do it.
2109 * doc/bison.texinfo (Location Default Action): Fix.
2110
3a8b4109
AD
21112002-05-02 Akim Demaille <akim@epita.fr>
2112
2113 * src/reader.c (parse_braces): Merge into...
2114 (parse_action): this.
2115
84614e13
AD
21162002-05-02 Akim Demaille <akim@epita.fr>
2117
2118 * configure.in (ALL_LINGUAS): Remove.
2119 * po/LINGUAS, hr.po: New.
2120
fdbcd8e2
AD
21212002-05-02 Akim Demaille <akim@epita.fr>
2122
2123 Remove the so called hairy (semantic) parsers.
2124
2125 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
2126 * src/gram.h, src/gram.c (semantic_parser): Remove.
2127 (rule_t): Remove the guard and guard_line members.
2128 * src/lex.h (token_t): remove tok_guard.
2129 * src/options.c (option_table): Remove %guard and %semantic_parser
2130 support.
2131 * src/output.c, src/output.h (guards_output): Remove.
2132 (prepare): Adjust.
2133 (token_definitions_output): Don't output the `T'
2134 tokens (???).
2135 (output_skeleton): Don't output the guards.
2136 * src/files.c, src/files.c (attrsfile): Remove.
2137 * src/reader.c (symbol_list): Remove the guard and guard_line
2138 members.
2139 Adjust dependencies.
2140 (parse_guard): Remove.
2141 * data/bison.hairy: Remove.
2142 * doc/bison.texinfo (Environment Variables): Remove occurrences of
2143 BISON_HAIRY.
2144
82b6cb3f
AD
21452002-05-02 Akim Demaille <akim@epita.fr>
2146
2147 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
2148 (parse_guard): Rename the formal argument `stack_offset' as
2149 `rule_length', which is more readable.
2150 Adjust callers.
2151 (copy_at, copy_dollar): Instead of outputting the hard coded
2152 values of $$, $n and so forth, output invocation to b4_lhs_value,
2153 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
900c877b
AD
2154 Note: this patch partially drops `semantic-parser' support: it
2155 always does `rule_length - n', where semantic parsers ought to
2156 always use `-n'.
82b6cb3f
AD
2157 * data/bison.simple, data/bison.c++ (b4_lhs_value)
2158 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
2159
6cbfbcc5
AD
21602002-05-02 Akim Demaille <akim@epita.fr>
2161
2162 * configure.in (AC_INIT): Bump to 1.49b.
2163 (AM_INIT_AUTOMAKE): Short invocation.
2164
b8548114
AD
21652002-05-02 Akim Demaille <akim@epita.fr>
2166
2167 Version 1.49a.
2168
c20cd1fa
AD
21692002-05-01 Akim Demaille <akim@epita.fr>
2170
2171 * src/skeleton.h: Remove.
2172
8a9566d4
AD
21732002-05-01 Akim Demaille <akim@epita.fr>
2174
2175 * src/skeleton.h: Fix the #endif.
2176 Reported by Magnus Fromreide.
2177
8c6d399a
PE
21782002-04-26 Paul Eggert <eggert@twinsun.com>
2179
2180 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
2181 Define if we define YYSTYPE and YYLTYPE, respectively.
b756bb75 2182 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 2183
2b7ed18a
RA
21842002-04-25 Robert Anisko <robert@lrde.epita.fr>
2185
2186 * src/scan-skel.l: Postprocess quadrigraphs.
2187
2188 * src/reader.c (copy_character): New function, used to output
2189 single characters while replacing `[' and `]' with quadrigraphs, to
2190 avoid troubles with M4 quotes.
2191 (copy_comment): Output characters with copy_character.
2192 (read_additionnal_code): Likewise.
2193 (copy_string2): Likewise.
2194 (copy_definition): Likewise.
2195
2196 * tests/calc.at: Exercise M4 quoting.
2197
34a89c50
AD
21982002-04-25 Akim Demaille <akim@epita.fr>
2199
2200 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
2201 between `!' and the command.
2202 Reported by Paul Eggert.
2203
0dd1580a
RA
22042002-04-24 Robert Anisko <robert@lrde.epita.fr>
2205
2206 * tests/calc.at: Exercise prologue splitting.
2207
2208 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
2209 `b4_post_prologue' instead of `b4_prologue'.
2210
2211 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
2212 muscles.
2213 (output): Free pre_prologue_obstack and post_prologue_obstack.
2214 * src/files.h, src/files.c (attrs_obstack): Remove.
2215 (pre_prologue_obstack, post_prologue_obstack): New.
2216 * src/reader.c (copy_definition): Add a parameter to specify the
2217 obstack to fill, instead of using attrs_obstack unconditionally.
2218 (read_declarations): Pass pre_prologue_obstack to copy_definition if
2219 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
2220
83c1796f
PE
22212002-04-23 Paul Eggert <eggert@twinsun.com>
2222
2223 * data/bison.simple: Remove unnecessary commentary and white
2224 space differences from 1_29-branch.
2225 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
2226
2227 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
2228 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
2229 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
2230 constructors or destructors.
2231
2232 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
2233
1207eeac
AD
22342002-04-23 Akim Demaille <akim@epita.fr>
2235
2236 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
2237 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
2238 location with columns.
2239 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
2240 All reported by Paul Eggert.
2241
78ab8f67
AD
22422002-04-22 Akim Demaille <akim@epita.fr>
2243
2244 * src/reduce.c (dump_grammar): Move to...
2245 * src/gram.h, src/gram.c (grammar_dump): here.
2246 Be sure to separate long item numbers.
2247 Don't read the members of a rule's prec if its nil.
2248
133c20e2
AD
22492002-04-22 Akim Demaille <akim@epita.fr>
2250
2251 * src/output.c (table_size, table_grow): New.
2252 (MAXTABLE): Remove, replace uses with table_size.
2253 (pack_vector): Instead of dying when the table is too big, grow it.
2254
9515e8a7
AD
22552002-04-22 Akim Demaille <akim@epita.fr>
2256
2257 * data/bison.simple (yyr1): Its type is that of a token number.
2258 * data/bison.c++ (r1_): Likewise.
2259 * tests/regression.at (Web2c Actions): Adjust.
2260
23c5a174
AD
22612002-04-22 Akim Demaille <akim@epita.fr>
2262
2263 * src/reader.c (token_translations_init): 256 is now the default
2264 value for the error token, i.e., it will be assigned another
2265 number if the user assigned 256 to one of her tokens.
2266 (reader): Don't force 256 to error.
2267 * doc/bison.texinfo (Symbols): Adjust.
2268 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
2269 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
2270 etc. instead of 10, 20, 30 (which was used to `jump' over error
2271 (256) and undefined (2)).
2272
5fbb0954
AD
22732002-04-22 Akim Demaille <akim@epita.fr>
2274
2275 Propagate more token_number_t.
2276
2277 * src/gram.h (token_number_as_item_number)
2278 (item_number_as_token_number): New.
2279 * src/output.c (GENERATE_OUTPUT_TABLE): New.
2280 Use it to create output_item_number_table and
2281 output_token_number_table.
2282 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
2283 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
2284 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
2285 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
2286
4f940944
AD
22872002-04-22 Akim Demaille <akim@epita.fr>
2288
2289 * src/output.h, src/output.c (get_lines_number): Remove.
2290
3ded9a63
AD
22912002-04-19 Akim Demaille <akim@epita.fr>
2292
2293 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
2294 as Lex/Flex'.
2295 (Debugging): More details about enabling the debugging features.
2296 (Table of Symbols): Describe $$, $n, @$, and @n.
2297 Suggested by Tim Josling.
2298
e0c471a9
AD
22992002-04-19 Akim Demaille <akim@epita.fr>
2300
2301 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
2302
fecc10cd
AD
23032002-04-10 Akim Demaille <akim@epita.fr>
2304
2305 * src/system.h: Rely on HAVE_LIMITS_H.
2306 Suggested by Paul Eggert.
2307
51dec47b
AD
23082002-04-09 Akim Demaille <akim@epita.fr>
2309
2310 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
2311 full stderr, and strip it according to the bison options, instead
2312 of composing the error message from different bits.
2313 This makes it easier to check for several error messages.
2314 Adjust all the invocations.
2315 Add an invocation exercising the error token.
2316 Add an invocation demonstrating a stupid error message.
2317 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
2318 Adjust the tests.
2319 Error message are for stderr, not stdout.
2320
007a50a4
AD
23212002-04-09 Akim Demaille <akim@epita.fr>
2322
2323 * src/gram.h, src/gram.c (error_token_number): Remove, use
2324 errtoken->number.
2325 * src/reader.c (reader): Don't specify the user token number (2)
2326 for $undefined, as it uselessly prevents using it.
2327 * src/gram.h (token_number_t): Move to...
2328 * src/symtab.h: here.
2329 (state_t.number): Is a token_number_t.
2330 * src/print.c, src/reader.c: Use undeftoken->number instead of
2331 hard coded 2.
2332 (Even though this 2 is not the same as above: the number of the
2333 undeftoken remains being 2, it is its user token number which
2334 might not be 2).
2335 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
2336 `user_token_number_max'.
2337 Output `undef_token_number'.
2338 * data/bison.simple, data/bison.c++: Use them.
2339 Be sure to map invalid yylex return values to
2340 `undef_token_number'. This saves us from gratuitous SEGV.
2341
2342 * tests/conflicts.at (Solved SR Conflicts)
2343 (Unresolved SR Conflicts): Adjust.
2344 * tests/regression.at (Web2c Actions): Adjust.
2345
06446ccf
AD
23462002-04-08 Akim Demaille <akim@epita.fr>
2347
2348 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
2349 Adding #line.
2350 Remove the duplicate `typedefs'.
2351 (RhsNumberType): Fix the declaration and various other typos.
2352 Use __ofile__.
2353 * data/bison.simple: Use __ofile__.
2354 * src/scan-skel.l: Handle __ofile__.
2355
62a3e4f0
AD
23562002-04-08 Akim Demaille <akim@epita.fr>
2357
2358 * src/gram.h (item_number_t): New, the type of item numbers in
2359 RITEM. Note that it must be able to code symbol numbers as
2360 positive number, and the negation of rule numbers as negative
2361 numbers.
2362 Adjust all dependencies (pretty many).
2363 * src/reduce.c (rule): Remove this `short *' pointer: use
2364 item_number_t.
2365 * src/system.h (MINSHORT, MAXSHORT): Remove.
2366 Include `limits.h'.
2367 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
2368 (shortcpy): Remove.
2369 (MAXTABLE): Move to...
2370 * src/output.c (MAXTABLE): here.
2371 (prepare_rules): Use output_int_table to output rhs.
2372 * data/bison.simple, data/bison.c++: Adjust.
2373 * tests/torture.at (Big triangle): Move the limit from 254 to
2374 500.
2375 * tests/regression.at (Web2c Actions): Ajust.
2376
2377 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
2378 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
2379 passes, but produces negative #line number, once fixed, GCC is
2380 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
2381 C), it passes.
2382 * src/state.h (state_h): Code input lines on ints, not shorts.
2383
bb88b0fc
AD
23842002-04-08 Akim Demaille <akim@epita.fr>
2385
2386 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
2387 and then the grammar.
2388
9a636f47
AD
23892002-04-08 Akim Demaille <akim@epita.fr>
2390
2391 * src/system.h: No longer using strndup.
2392
680e8701
AD
23932002-04-07 Akim Demaille <akim@epita.fr>
2394
2395 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
2396 * src/output.c (output_table_data): Return the longest number.
2397 (prepare_tokens): Output `token_number_max').
2398 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
2399 New.
2400 Use them to define yy_token_number_type/TokenNumberType.
2401 Use this type for yytranslate.
2402 * tests/torture.at (Big triangle): Push the limit from 124 to
2403 253.
2404 * tests/regression.at (Web2c Actions): Adjust.
2405
817e9f41
AD
24062002-04-07 Akim Demaille <akim@epita.fr>
2407
2408 * tests/torture.at (Big triangle): New.
2409 (GNU AWK Grammar, GNU Cim Grammar): Move to...
2410 * tests/existing.at: here.
2411
5123689b
AD
24122002-04-07 Akim Demaille <akim@epita.fr>
2413
2414 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
2415 nritems.
2416 Adjust dependencies.
2417
f3849179
AD
24182002-04-07 Akim Demaille <akim@epita.fr>
2419
2420 * src/reader.c: Normalize increments to prefix form.
2421
bd02036a
AD
24222002-04-07 Akim Demaille <akim@epita.fr>
2423
2424 * src/reader.c, symtab.c: Remove debugging code.
2425
db8837cb
AD
24262002-04-07 Akim Demaille <akim@epita.fr>
2427
2428 Rename all the `bucket's as `symbol_t'.
2429
2430 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
2431 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
2432 * src/symtab.c, src/symtab.h (bucket): Rename as...
2433 (symbol_t): this.
2434 (symbol_list_new, bucket_check_defined, bucket_make_alias)
2435 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
2436 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
2437 (buckets_new, buckets_free, buckets_do): Rename as...
2438 (symbol_list_new, symbol_check_defined, symbol_make_alias)
2439 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
2440 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
2441 (symbols_new, symbols_free, symbols_do): these.
2442
72a23c97
AD
24432002-04-07 Akim Demaille <akim@epita.fr>
2444
2445 Use lib/hash for the symbol table.
2446
2447 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
2448 EOF.
2449 * src/lex.c (lex): Set the `number' member of new terminals.
2450 * src/reader.c (bucket_check_defined, bucket_make_alias)
2451 (bucket_check_alias_consistence, bucket_translation): New.
2452 (reader, grammar_free, readgram, token_translations_init)
2453 (packsymbols): Adjust.
2454 (reader): Number the predefined tokens.
2455 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
2456 for predefined tokens.
2457 * src/symtab.h (bucket): Remove all the hash table related
2458 members.
2459 * src/symtab.c (symtab): Replace by...
2460 (bucket_table): this.
2461 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
2462 (buckets_new, buckets_do): New.
2463
280a38c3
AD
24642002-04-07 Akim Demaille <akim@epita.fr>
2465
2466 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
2467 (start_symbol, max_user_token_number, semantic_parser)
2468 (error_token_number): Initialize.
2469 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
2470 Initialize.
2471 (reader): Don't.
2472 (errtoken, eoftoken, undeftoken, axiom): Extern.
2473
03b31c0c
AD
24742002-04-07 Akim Demaille <akim@epita.fr>
2475
2476 * src/gram.h (rule_s): prec and precsym are now pointers
2477 to the bucket giving the priority/associativity.
2478 Member `associativity' removed: useless.
2479 * src/reduce.c, src/conflicts.c: Adjust.
2480
8b3df748
AD
24812002-04-07 Akim Demaille <akim@epita.fr>
2482
2483 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
2484 Properly escape the symbols' TAG when outputting them.
2485
e601aa1d
AD
24862002-04-07 Akim Demaille <akim@epita.fr>
2487
2488 * src/lalr.h (LA): Is a bitsetv, not bitset*.
2489
b0299a2e
AD
24902002-04-07 Akim Demaille <akim@epita.fr>
2491
2492 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
2493 (LArule): this, which is an array to rule_t*.
2494 * src/print.c, src/conflicts.c: Adjust.
2495
d7e1f00c
AD
24962002-04-07 Akim Demaille <akim@epita.fr>
2497
2498 * src/gram.h (rule_t): Rename `number' as `user_number'.
2499 `number' is a new member.
2500 Adjust dependencies.
2501 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
2502
cc9305dd
AD
25032002-04-07 Akim Demaille <akim@epita.fr>
2504
2505 As a result of the previous patch, it is no longer needed
2506 to reorder ritem itself.
2507
2508 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
2509
b0940840
AD
25102002-04-07 Akim Demaille <akim@epita.fr>
2511
2512 Be sure never to walk through RITEMS, but use only data related to
2513 the rules themselves. RITEMS should be banished.
2514
2515 * src/output.c (output_token_translations): Rename as...
2516 (prepare_tokens): this.
2517 In addition to `translate', prepare the muscles `tname' and
2518 `toknum', which were handled by...
2519 (output_rule_data): this.
2520 Remove, and move the remainder of its outputs into...
2521 (prepare_rules): this new routines, which also merges content from
2522 (output_gram): this.
2523 (prepare_rules): Be sure never to walk through RITEMS.
2524 (output_stos): Rename as...
2525 (prepare_stos): this.
2526 (output): Always invoke prepare_states, after all, just don't use it
2527 in the output if you don't need it.
2528
643a5994
AD
25292002-04-07 Akim Demaille <akim@epita.fr>
2530
2531 * src/LR0.c (new_state): Display `nstates' as the name of the
2532 newly created state.
2533 Adjust to initialize first_state and last_state if needed.
2534 Be sure to distinguish the initial from the final state.
2535 (new_states): Create the itemset of the initial state, and use
2536 new_state.
2537 * src/closure.c (closure): Now that the initial state has its
2538 items properly set, there is no need for a special case when
2539 creating `ruleset'.
2540
2541 As a result, now the rule 0, reducing to $axiom, is visible in the
2542 outputs. Adjust the test suite.
2543
2544 * tests/conflicts.at (Solved SR Conflicts)
2545 (Unresolved SR Conflicts): Adjust.
2546 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
2547 * tests/conflicts.at (S/R in initial): New.
2548
b4c4ccc2
AD
25492002-04-07 Akim Demaille <akim@epita.fr>
2550
2551 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
2552 the RHS of the rules.
2553 * src/output.c (output_gram): Likewise.
2554
bba97eb2
AD
25552002-04-07 Akim Demaille <akim@epita.fr>
2556
2557 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
2558 bucket.
2559 Adjust all dependencies.
2560 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
2561 `number' of the buckets too.
2562 * src/gram.h: Include `symtab.h'.
2563 (associativity): Move to...
2564 * src/symtab.h: here.
2565 No longer include `gram.h'.
2566
c3b407f4
AD
25672002-04-07 Akim Demaille <akim@epita.fr>
2568
2569 * src/gram.h, src/gram.c (rules_rhs_length): New.
2570 (ritem_longest_rhs): Use it.
2571 * src/gram.h (rule_t): `number' is a new member.
2572 * src/reader.c (packgram): Set it.
2573 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
2574 the end of `rules', and count them out of `nrules'.
2575 (reduce_output, dump_grammar): Adjust.
2576 * src/print.c (print_grammar): It is no longer needed to check for
2577 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
2578 * tests/reduce.at (Reduced Automaton): New test.
2579
11652ab3
AD
25802002-04-07 Akim Demaille <akim@epita.fr>
2581
2582 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
2583 lacking `+ 1' to nrules, Bison reported as useless a token if it
2584 was used solely to set the precedence of the last rule...
2585
26b23c1a
AD
25862002-04-07 Akim Demaille <akim@epita.fr>
2587
2588 * data/bison.c++, data/bison.simple: Don't output the current file
2589 name in #line, to avoid useless diffs between two identical
2590 outputs under different names.
2591
18bcecb0
AD
25922002-04-07 Akim Demaille <akim@epita.fr>
2593
2594 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
2595 Normalize loops to using `< nrules + 1', not `<= nrules'.
2596
fa770c86
AD
25972002-04-07 Akim Demaille <akim@epita.fr>
2598
2599 * TODO: Update.
2600
d9b739c3
AD
26012002-04-07 Akim Demaille <akim@epita.fr>
2602
2603 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
2604 bucket.value as bucket.number.
2605
99013900
AD
26062002-04-07 Akim Demaille <akim@epita.fr>
2607
2608 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
2609 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
2610 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
2611 RHS, instead of being an index in RITEMS.
2612
e966383b
PE
26132002-04-04 Paul Eggert <eggert@twinsun.com>
2614
2615 * doc/bison.texinfo: Update copyright date.
2616 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
2617 (Symbols): Warn about running Bison in one character set,
2618 but compiling and/or running in an incompatible one.
2619 Warn about character code 256, too.
2620
26212002-04-03 Paul Eggert <eggert@twinsun.com>
2622
2623 * src/bison.data (YYSTACK_ALLOC): Depend on whether
2624 YYERROR_VERBOSE is nonzero, not whether it is defined.
2625
2626 Merge changes from bison-1_29-branch.
c307773e 2627
8d6c48b9
PE
26282002-03-20 Paul Eggert <eggert@twinsun.com>
2629
2630 Merge fixes from Debian bison_1.34-1.diff.
2631
2632 * configure.in (AC_PREREQ): 2.53.
2633
e53c6322
AD
26342002-03-20 Akim Demaille <akim@epita.fr>
2635
2636 * src/conflicts.c (log_resolution): Argument `resolution' is const.
2637
9ffbeca7
PE
26382002-03-19 Paul Eggert <eggert@twinsun.com>
2639
21db0b2a
PE
2640 * src/bison.simple (YYCOPY): New macro.
2641 (YYSTACK_RELOCATE): Use it.
2642 Remove Type arg; no longer needed. All callers changed.
2643 (yymemcpy): Remove; no longer needed.
2644
9ffbeca7
PE
2645 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
2646 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2647
642cb8f8
AD
26482002-03-19 Akim Demaille <akim@epita.fr>
2649
2650 Test and fix the #line outputs.
2651
2652 * tests/atlocal.at (GCC): New.
2653 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
2654 (Prologue synch line, ,%union synch line, Postprologue synch line)
2655 (Action synch line, Epilogue synch line): New tests.
2656 * src/reader.c (parse_union_decl): Define the muscle stype_line.
2657 * data/bison.simple, data/bison.c++: Use it.
2658
3c31a486
AD
26592002-03-19 Akim Demaille <akim@epita.fr>
2660
2661 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
2662 (Solved SR Conflicts, %expect not enough, %expect right)
2663 (%expect too much): Move to...
2664 * tests/conflicts.at: this new file.
2665
0d8bed56
AD
26662002-03-19 Akim Demaille <akim@epita.fr>
2667
2668 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
2669 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
2670 that we can move to enums for instance.
2671 * src/output.c (token_definitions_output): Output a list of
2672 `token-name, token-number' instead of the #define.
2673 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
2674
9208d17f
AD
26752002-03-14 Akim Demaille <akim@epita.fr>
2676
2677 Use Gettext 0.11.1.
2678
af27eacb
RA
26792002-03-09 Robert Anisko <robert@lrde.epita.fr>
2680
2681 * data/bison.c++: Make the user able to add members to the generated
2682 parser by subclassing.
2683
9101a310
RA
26842002-03-05 Robert Anisko <robert@lrde.epita.fr>
2685
2686 * src/reader.c (read_additionnal_code): `c' should be an integer, not
2687 a character.
2688 Reported by Nicolas Tisserand and Nicolas Burrus.
2689
fff9bf0b
RA
26902002-03-04 Robert Anisko <robert@lrde.epita.fr>
2691
2692 * src/reader.c: Warn about lacking semi-colons, do not complain.
2693
64dba31e
RA
26942002-03-04 Robert Anisko <robert@lrde.epita.fr>
2695
2696 * data/bison.c++: Remove a debug line.
2697
374f5a14
RA
26982002-03-04 Robert Anisko <robert@lrde.epita.fr>
2699
2700 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
2701 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
2702 provide a default implementation.
2703
bfcf1f3a
AD
27042002-03-04 Akim Demaille <akim@epita.fr>
2705
2706 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
2707 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
2708 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
2709 * tests/semantic.at (Parsing Guards): Similarly.
2710 * src/reader.at (readgram): Complain if the last rule is not ended
2711 with a semi-colon.
2712
65ccf9fc
AD
27132002-03-04 Akim Demaille <akim@epita.fr>
2714
2715 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
2716 * src/closure.c: here.
2717 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
2718 RTC.
2719 * src/warshall.h, src/warshall.c: Remove.
2720 * tests/sets.at (Broken Closure): Adjust.
2721
d0039cbc
AD
27222002-03-04 Akim Demaille <akim@epita.fr>
2723
2724 * src/output.c (output_skeleton): tempdir is const.
2725 bytes_read is unused.
2726
345cea78
AD
27272002-03-04 Akim Demaille <akim@epita.fr>
2728
2729 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
2730 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
2731 Update.
2732 From Michael Hayes.
2733
564801f7
AD
27342002-03-04 Akim Demaille <akim@epita.fr>
2735
2736 * src/closure.c (closure): `r' is unused.
2737
e5352bc7
AD
27382002-03-04 Akim Demaille <akim@epita.fr>
2739
2740 * tests/sets.at (Broken Closure): Add the ending `;'.
2741 * src/reader.at (readgram): Complain if a rule is not ended with a
2742 semi-colon.
2743
914feea9
AD
27442002-03-04 Akim Demaille <akim@epita.fr>
2745
2746 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
2747 (count_sr_conflicts): Use bitset_count.
2748 * src/reduce.c (inaccessable_symbols): Ditto.
2749 (bits_size): Remove.
2750 * src/warshall.h, src/warshall.c: Convert to bitsetv.
2751
f0250de6
AD
27522002-03-04 Akim Demaille <akim@epita.fr>
2753
2754 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
2755 * src/reduce.c: Remove the `bitset_zero's following the
2756 `bitset_create's, as now it is performed by the latter.
2757
ef017502
AD
27582002-03-04 Akim Demaille <akim@epita.fr>
2759
2760 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
2761 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
2762 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
2763 latest sources from Michael.
2764
76514394
AD
27652002-03-04 Akim Demaille <akim@epita.fr>
2766
2767 * src/output.c (output): Don't free the grammar.
2768 * src/reader.c (grammar_free): New.
2769 * src/main.c (main): Call it and don't free symtab here.
2770
55024580
AD
27712002-03-04 Akim Demaille <akim@epita.fr>
2772
2773 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
2774 before returning.
2775 Reported by Benoit Perrot.
2776
f9abaa2c
AD
27772002-03-04 Akim Demaille <akim@epita.fr>
2778
2779 Use bitset operations when possible, not loops over bits.
2780
2781 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
2782 bitset_or.
2783 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
2784 * src/reduce.c (useless_nonterminals): Formatting changes.
2785 * src/warshall.c (TC): Use bitset_or.
2786
0e721e75
AD
27872002-03-04 Akim Demaille <akim@epita.fr>
2788
2789 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
2790 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
2791 Ditto.
2792
0fb1ffb1
AD
27932002-03-04 Akim Demaille <akim@epita.fr>
2794
2795 * src/lalr.c (F): Now a bitset*.
2796 Adjust all dependencies.
2797
b86796bf
AD
27982002-03-04 Akim Demaille <akim@epita.fr>
2799
2800 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
2801 Adjust all dependencies.
2802
602bbf31
AD
28032002-03-04 Akim Demaille <akim@epita.fr>
2804
2805 * src/L0.c, src/LR0.h (nstates): Be size_t.
2806 Adjust comparisons (signed vs unsigned).
2807 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
2808 bitset*.
2809 Adjust all dependencies.
2810
d8a0245c
AD
28112002-03-04 Akim Demaille <akim@epita.fr>
2812
2813 * src/closure.c (firsts): Now, also a bitset.
2814 Adjust all dependencies.
2815 (varsetsize): Remove, now unused.
2816 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
2817
34ba9743
AD
28182002-03-04 Akim Demaille <akim@epita.fr>
2819
2820 * src/print.c: Convert to use bitset.h, not hand coded iterations
2821 over ints.
2822
ed86e78c
AD
28232002-03-04 Akim Demaille <akim@epita.fr>
2824
2825 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
2826
dfdb1797
AD
28272002-03-04 Akim Demaille <akim@epita.fr>
2828
2829 * src/closure.c (ruleset): Be a bitset.
2830 (rulesetsize): Remove.
2831
7086e707
AD
28322002-03-04 Akim Demaille <akim@epita.fr>
2833
2834 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
2835 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
2836 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
2837 * src/closure.c (fderives): Be an array of bitsets.
2838
98254360
RA
28392002-02-28 Robert Anisko <robert@lrde.epita.fr>
2840
2841 * data/bison.c++: Merge the two generated headers. Insert a copyright
2842 notice in each output file.
2843
a75c057f
AD
28442002-02-28 Akim Demaille <akim@epita.fr>
2845
2846 * data/bison.c++: Copy the prologue of bison.simple to fetch
2847 useful M4 definitions, such as b4_header_guard.
2848
06b00abc
AD
28492002-02-25 Akim Demaille <akim@epita.fr>
2850
2851 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
2852 translator friendly scheme for the bgr
2853 copyright notice.
06b00abc 2854
70e7d534
AD
28552002-02-25 Akim Demaille <akim@epita.fr>
2856
2857 * src/output.c (header_output): Remove, now handled completely via
2858 M4.
2859
abe017f6
AD
28602002-02-25 Akim Demaille <akim@epita.fr>
2861
2862 * m4/m4.m4: New, from CVS Autoconf.
2863 * configure.in: Invoke it.
2864 * src/output.c (output_skeleton): Use its result instead of the
2865 hard coded name.
2866
381fb12e
AD
28672002-02-25 Akim Demaille <akim@epita.fr>
2868
2869 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
2870 Fileutils 4.1.5.
2871 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
2872 * src/output.c (output_skeleton): Use mkstemp to create a real
2873 temporary file.
2874 Move the filling of `skeleton' and its muscle to...
2875 (prepare): here.
2876 (output): Move the definition of the prologue muscle to...
2877 (prepare): here.
2878 * src/system.h (DEFAULT_TMPDIR): New.
2879
6f38107f
PE
28802002-02-14 Paul Eggert <eggert@twinsun.com>
2881
2882 Remove the support for C++ namespace cleanliness; it was
2883 causing more problems than it was curing, since it didn't work
2884 properly on some nonstandard C++ compilers. This can wait
2885 for a proper C++ parser.
2886
2887 * NEWS: Document this.
2888 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
2889 of C++, as it's treated like C now.
2890 * src/bison.simple (YYSTD): Remove.
2891 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
2892 Treat C++ just like Standard C instead of trying to support
2893 namespace cleanliness.
2894
80cce3da
AD
28952002-02-14 Akim Demaille <akim@epita.fr>
2896
2897 * tests/regression.at (else): Adjust to Andreas' change.
2898
842e8679
AD
28992002-02-14 Akim Demaille <akim@epita.fr>
2900
2901 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
2902
4bda3f10
AD
29032002-02-13 Andreas Schwab <schwab@suse.de>
2904
2905 * src/output.c (output_rule_data): Don't output NULL, it might
2906 not be defined yet.
2907
4162fa07 29082002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 2909
4162fa07
RA
2910 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
2911 (Copyright notice): Update.
b418ecd8 2912
bd16a5dc
AD
29132002-02-11 Akim Demaille <akim@epita.fr>
2914
2915 * tests/regression.at (%nonassoc and eof): Don't include
2916 nonportable headers.
2917
8d69a1a3
RA
29182002-02-08 Robert Anisko <robert@lrde.epita.fr>
2919
2920 * data/bison.c++: Correct error recovery. Make the user able to
2921 initialize the starting location.
2922
9b2d0677
AD
29232002-02-07 Akim Demaille <akim@epita.fr>
2924
2925 * tests/input.at: New.
2926
69e2658b
RA
29272002-02-07 Robert Anisko <robert@lrde.epita.fr>
2928
2929 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 2930 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
2931 directives around tables only needed for debugging.
2932
4aacc3a7
RA
29332002-02-07 Robert Anisko <robert@lrde.epita.fr>
2934
2935 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
2936 C++ parsers.
2937 (yy::b4_name::parse): Use print_.
2938
762a801e
RA
29392002-02-07 Robert Anisko <robert@lrde.epita.fr>
2940
2941 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
2942
4bb2bc3f
RA
29432002-02-07 Robert Anisko <robert@lrde.epita.fr>
2944
2945 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
2946 C++ parsers.
2947 (yy::b4_name::parse): Build verbose error messages, and use error_.
2948
6b45a3ca
RA
29492002-02-06 Robert Anisko <robert@lrde.epita.fr>
2950
2951 * data/bison.c++: Fix m4 quoting in comments.
2952
50997c6e
RA
29532002-02-06 Robert Anisko <robert@lrde.epita.fr>
2954
2955 * data/bison.c++: Adjust the parser code. Fix some muscles that were
2956 not expanded by m4.
2957
3f3eed27
AD
29582002-02-05 Akim Demaille <akim@epita.fr>
2959
2960 * data/bison.c++: Adjust to the M4 back end.
2961 More is certainly needed.
2962
be2a1a68
AD
29632002-02-05 Akim Demaille <akim@epita.fr>
2964
2965 Give a try to M4 as a back end.
2966
2967 * lib/readpipe.c: New, from wdiff.
2968 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
2969 BISON_HAIRY.
2970 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
2971 specific values. Now it is m4 that performs the lookup.
2972 * src/parse-skel.y: Remove.
2973 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
2974 * src/output.c (actions_output, guards_output)
2975 (token_definitions_output): No longer keeps track of the output
2976 line number, hence remove the second argument.
2977 (guards_output): Check against the guard member of a rule, not the
2978 action member.
2979 Adjust callers.
2980 (output_skeleton): Don't look for the skeleton location, let m4 do
2981 that.
2982 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
2983 file will be used.
2984 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
2985 (prepare): Given that for the time being changesyntax is not
2986 usable in M4, rename the muscles using `-' to `_'.
2987 Define `defines_flag', `output_parser_name' and `output_header_name'.
2988 * src/output.h (actions_output, guards_output)
2989 (token_definitions_output): Adjust prototypes.
2990 * src/scan-skel.l: Instead of scanning the skeletons, it now
2991 processes the output of m4: `__oline__' and `#output'.
2992 * data/bison.simple: Adjust to be used by M4(sugar).
2993 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
2994 to date.
2995 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
2996 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
2997 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
2998 shamelessly stolen from CVS Autoconf.
2999
beda758b
AD
30002002-02-05 Akim Demaille <akim@epita.fr>
3001
3002 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
3003 * configure.in: Check for the declarations of free and malloc.
3004 * src/muscle_tab.c: Adjust.
3005
5ece6d43
AD
30062002-02-05 Akim Demaille <akim@epita.fr>
3007
3008 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
3009 which have no values.
3010
5bb18f9a
AD
30112002-02-05 Akim Demaille <akim@epita.fr>
3012
3013 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
3014 * data/: here.
3015
894dd62e
PE
30162002-01-29 Paul Eggert <eggert@twinsun.com>
3017
3018 * src/bison.simple (YYSIZE_T): Do not define merely because
3019 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
3020 On some platforms, <alloca.h> does not declare YYSTD (size_t).
3021
82841af7
AD
30222002-01-27 Akim Demaille <akim@epita.fr>
3023
3024 Fix `%nonassoc and eof'.
3025
3026 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
3027 which were not properly copied! Replace
3028 memcpy (res->errs, src->errs, src->nerrs);
3029 with
3030 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
3031 !!!
3032 * tests/regression.at (%nonassoc and eof): Adjust to newest
3033 Autotest: `.' is not in the PATH.
3034
318b76e9
AD
30352002-01-27 Akim Demaille <akim@epita.fr>
3036
3037 * tests/sets.at (AT_EXTRACT_SETS): New.
3038 (Nullable): Use it.
3039 (Firsts): New.
3040
30d2f3d5
AD
30412002-01-26 Akim Demaille <akim@epita.fr>
3042
3043 * tests/actions.at, tests/calc.at, tests/headers.at,
3044 * tests/torture.at: Adjust to the newest Autotest which no longer
3045 forces `.' in the PATH.
3046
30f8c395
AD
30472002-01-25 Akim Demaille <akim@epita.fr>
3048
3049 * tests/regression.at (%nonassoc and eof): New.
3050 Suggested by Robert Anisko.
3051
29ae55f1
AD
30522002-01-24 Akim Demaille <akim@epita.fr>
3053
3054 Bison dumps core when trying to complain about broken input files.
3055 Reported by Cris van Pelt.
3056
3057 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
3058 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
3059 into...
3060 (Invalid inputs): Strengthen: exercise parse_percent_token.
3061
2b548aa6
RA
30622002-01-24 Robert Anisko <robert.anisko@epita.fr>
3063
3064 * src/Makefile.am: Add bison.c++.
3065 * src/bison.c++: New skeleton.
3066
bb0146c2
AD
30672002-01-21 Paolo Bonzini <bonzini@gnu.org>
3068
3069 * po/it.po: New.
3070
bec30531
AD
30712002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
3072
3073 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
3074
fc6edc45
MA
30752002-01-20 Marc Autret <marc@gnu.org>
3076
3077 * src/files.c (compute_output_file_names): Fix
3078
5e5d5415
MA
30792002-01-20 Marc Autret <marc@gnu.org>
3080
3081 * tests/output.at: New test.
3082 * src/files.c (compute_base_names): Don't map extensions when
3083 the YACC flag is set, use defaults.
3084 Reported by Evgeny Stambulchik.
3085
44ea3fbd
MA
30862002-01-20 Marc Autret <marc@gnu.org>
3087
bb0146c2 3088 * src/system.h: Need to define __attribute__ away for non-GCC
44ea3fbd
MA
3089 compilers as well (i.e. the vendor C compiler).
3090 Suggested by Albert Chin-A-Young.
3091
338963d1
TVH
30922002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
3093
3094 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
3095 canonical definition.
3096 * src/system.h: Use the canonical definition for PARAMS (avoids
3097 a conflict with the macro from lib/hash.h).
3098
c57b2479
AD
30992002-01-11 Akim Demaille <akim@epita.fr>
3100
3101 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 3102 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 3103
b85810ae
AD
31042002-01-09 Akim Demaille <akim@epita.fr>
3105
3106 * src/files.c, src/files.h (output_infix): New.
3107 (tab_extension): Remove.
3108 (compute_base_names): Compute the former, drop the latter.
3109 * src/output.c (prepare): Insert the muscles `output-infix', and
3110 `output-suffix'.
3111 * src/parse-skel.y (string, string.1): New.
3112 (section.header): Use it.
3113 (section.yacc): Remove.
3114 (prefix): Remove too.
3115 * src/scan-skel.l: Adjust.
3116 * src/bison.simple, src/bison.hairy: Adjust.
3117
cae60122
AD
31182002-01-09 Akim Demaille <akim@epita.fr>
3119
3120 * configure.in (WERROR_CFLAGS): Compute it.
3121 * src/Makefile.am (CFLAGS): Pass it.
3122 * tests/atlocal.in (CFLAGS): Idem.
3123 * src/files.c: Fix a few warnings.
3124 (get_extension_index): Remove, unused.
3125
ae404801
AD
31262002-01-08 Akim Demaille <akim@epita.fr>
3127
3128 * src/getargs.c (AS_FILE_NAME): New.
3129 (getargs): Use it to convert DOSish file names.
3130 * src/files.c (base_name): Rename as full_base_name to avoid
3131 clashes with `base_name ()'.
3132 (filename_split): New.
3133 (compute_base_names): N-th rewrite, using filename_split.
3134
22312b71
AD
31352002-01-08 Akim Demaille <akim@epita.fr>
3136
3137 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
3138 New, stolen from the Fileutils 4.1.
3139 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
3140 * configure.in: Check for the presence of memrchr, and of its
3141 prototype.
3142
a67cef01
TVH
31432002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
3144
3145 * lib/hash.h (__P): Added definition for this macro.
3146 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
3147 BUILT_SOURCES, to ensure they are generated first.
3148 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
3149 %error-verbose to allow bootstrapping with bison 1.30x.
3150
2b25d624
AD
31512002-01-06 Akim Demaille <akim@epita.fr>
3152
3153 * src/reader.c (parse_braces): Don't fetch the next char, the
3154 convention is to fetch on entry.
3155 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
3156 'switch' without a following semicolon.
3157 * tests/regression.at (braces parsing): New.
3158
3460813b
AD
31592002-01-06 Akim Demaille <akim@epita.fr>
3160
3161 Bison is dead wrong in its RR conflict reports.
3162
3163 * tests/torture.at (GNU Cim Grammar): New.
3164 * src/conflicts.c (count_rr_conflicts): Fix.
3165
73784c64
AD
31662002-01-06 Akim Demaille <akim@epita.fr>
3167
3168 Creating package.m4 from configure.ac causes too many problems.
3169
3170 * tests/Makefile.am (package.m4): Create it by hand,
3171 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
3172
25d81090
AD
31732002-01-06 Akim Demaille <akim@epita.fr>
3174
3175 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
3176 skeleton.h.
3177
a9b8959e
PE
31782002-01-04 Paul Eggert <eggert@twinsun.com>
3179
3180 * doc/bison.texinfo (Debugging):
3181 Remove YYSTDERR; it's no longer defined or used.
3182 Also, s/cstdio.h/cstdio/.
3183
25d81090
AD
31842002-01-03 Akim Demaille <akim@epita.fr>
3185
3186 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
3187
1109455c
AD
31882002-01-03 Akim Demaille <akim@epita.fr>
3189
3190 * src/parse-skel.y (process_skeleton): Don't bind the parser's
3191 tracing code to --trace, wait for a better --trace option, with
3192 args.
3193
7ea5e977
AD
31942002-01-03 Akim Demaille <akim@epita.fr>
3195
3196 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
3197 The ISO C++ standard is extremely clear about it: stderr is
3198 considered a macro, not a regular symbol (see table 94 `Header
3199 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
3200 Therefore std:: does not apply to it. It still does with fprintf.
3201 Also, s/cstdio.h/cstdio/.
3202
fab5b110
AD
32032002-01-03 Akim Demaille <akim@epita.fr>
3204
3205 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
3206 for non system headers.
3207
aed7fd9b
AD
32082002-01-02 Akim Demaille <akim@epita.fr>
3209
3210 Equip the skeleton chain with location tracking, runtime trace,
3211 pure parser and scanner.
3212
3213 * src/parse-skel.y: Request a pure parser, locations, and prefix
3214 renaming.
3215 (%union): Having several members with the same type does not help
3216 type mismatches, simplify.
3217 (YYPRINT, yyprint): New.
3218 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
3219 (skel_error): this.
3220 Handle locations.
3221 * src/scan-skel.l: Adjust to these changes.
3222 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
3223 (LOCATION_PRINT, skel_control_t): New.
3224
24fad99e
AD
32252001-12-30 Akim Demaille <akim@epita.fr>
3226
3227 * src/parse-skel.y: Get rid of the shift/reduce conflict:
3228 replace `gb' with BLANKS.
3229 * src/scan-skel.l: Adjust.
3230
a4b36db4
AD
32312001-12-30 Akim Demaille <akim@epita.fr>
3232
3233 * src/system.h: We don't need nor want bcopy.
3234 Throw away MS-DOS crap: we don't need getpid.
3235 * configure.in: We don't need strndup. It was even causing
3236 problems: because Flex includes the headers *before* us,
3237 _GNU_SOURCE is not defined by config.h, and therefore strndup was
3238 not visible.
3239 * lib/xstrndup.c: New.
3240 * src/scan-skel.l: Use it.
3241 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
3242 * src/parse-skel.y: Use %directives instead of #defines.
3243
1239777d
AD
32442001-12-30 Akim Demaille <akim@epita.fr>
3245
3246 * src/skeleton.h: New.
3247 * src/output.c (output_parser, output_master_parser): Remove, dead
3248 code.
3249 * src/output.h (get_lines_number, actions_output, guards_output)
3250 (token_definitions_output): Prototype them.
3251 * src/parse-skel.y: Add the license notice.
3252 Include output.h and skeleton.h.
3253 (process_skeleton): Returns void, and takes a single parameter.
3254 * src/scan-skel.l: Add the license notice.
3255 Include skeleton.h.
3256 Don't use %option yylineno: it seems that then Flex imagines
3257 REJECT has been used, and therefore it won't reallocate its
3258 buffers (which makes no other sense to me than a bug). It results
3259 in warnings for `unused: yy_flex_realloc'.
3260
9b3add5b
RA
32612001-12-30 Robert Anisko <robert.anisko@epita.fr>
3262
3263 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
3264 (MUSCLE_INSERT_PREFIX): ...to there.
3265 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
3266 (MUSCLE_INSERT_PREFIX): Move from here...
3267
3268 * src/bison.hairy: Add a section directive. Put braces around muscle
3269 names. This parser skeleton is still broken, but Bison should not
3270 choke on a bad muscle 'syntax'.
3271 * src/bison.simple: Add a section directive. Put braces around muscle
3272 names.
3273
3274 * src/files.h (strsuffix, stringappend): Add declarations.
3275 (tab_extension): Add declaration.
3276 (short_base_name): Add declaration.
3277
3278 * src/files.c (strsuffix, stringappend): No longer static. These
3279 functions are used in the skeleton parser.
3280 (tab_extension): New.
3281 (compute_base_names): Use the computations done in this function
fab5b110 3282 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
3283 names.
3284 (short_base_name): No longer static.
3285
3286 * src/output.c (output_skeleton): New.
3287 (output): Disable call to output_master_parser, and give a try to
3288 a new skeleton handling system.
3289 (guards_output, actions_output): No longer static.
3290 (token_definitions_output, get_lines_number): No longer static.
3291
3292 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
3293
fab5b110 3294 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
3295 parse-skel.y.
3296
3297 * src/parse-skel.y: New file.
3298 * src/scan-skel.l: New file.
3299
b5b61c61
AD
33002001-12-29 Akim Demaille <akim@epita.fr>
3301
3302 %name-prefix is broken.
3303
3304 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
3305 Adjust all dependencies.
3306 * tests/headers.at (export YYLTYPE): Strengthen this test: use
3307 %name-prefix.
3308
3309 Renaming yylval but not yylloc is not consistent. Now we do.
3310
3311 * src/bison.simple: Prefix yylloc if used.
3312 * doc/bison.texinfo (Decl Summary): Document that.
3313
8c9a50be
AD
33142001-12-29 Akim Demaille <akim@epita.fr>
3315
3316 * doc/bison.texinfo: Promote `%long-directive' over
3317 `%long_directive'.
3318 Remove all references to fixed-output-files, yacc is enough.
3319
d99361e6
AD
33202001-12-29 Akim Demaille <akim@epita.fr>
3321
3322 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
3323 user prologue. These are defaults.
3324 * tests/actions.at (Mid-rule actions): Make sure the user can
3325 define YYDEBUG and YYERROR_VERBOSE.
3326
b9cecb91
AD
33272001-12-29 Akim Demaille <akim@epita.fr>
3328
3329 * src/output.c (header_output): Don't forget to export YYLTYPE and
3330 yylloc.
3331 * tests/headers.at (export YYLTYPE): New, make sure it does.
3332 * tests/regression.at (%union and --defines, Invalid CPP headers):
3333 Move to...
3334 * tests/headers.at: here.
3335
aea13e97
AD
33362001-12-29 Akim Demaille <akim@epita.fr>
3337
3338 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
3339
931394cb
AD
33402001-12-29 Akim Demaille <akim@epita.fr>
3341
3342 * tests/actions.at (Mid-rule actions): Output on a single line
3343 instead of several.
3344
704a47c4
AD
33452001-12-29 Akim Demaille <akim@epita.fr>
3346
3347 * doc/bison.texinfo: Formatting changes.
3348
091e20bb
AD
33492001-12-29 Akim Demaille <akim@epita.fr>
3350
3351 Don't store the token defs in a muscle, just be ready to output it
3352 on command. Now possible via `symbols'. Fixes a memory leak.
3353
3354 * src/output.c (token_definitions_output): New.
3355 (output_parser, header_output): Use it.
3356 * src/reader.c (symbols_save): Remove.
3357
cce71710
AD
33582001-12-29 Akim Demaille <akim@epita.fr>
3359
3360 * src/bison.simple: Do not provide a default for YYSTYPE and
3361 YYLTYPE before the user's prologue. Otherwise it's hardly... a
3362 default.
3363
82c035a8
AD
33642001-12-29 Akim Demaille <akim@epita.fr>
3365
3366 Mid-rule actions are simply... ignored!
3367
3368 * src/reader.c (readgram): Be sure to attach mid-rule actions to
3369 the empty-rule associated to the dummy symbol, not to the host
3370 rule.
3371 * tests/actions.at (Mid-rule actions): New.
3372
8419d367
AD
33732001-12-29 Akim Demaille <akim@epita.fr>
3374
3375 Memory leak.
3376
3377 * src/reader.c (reader): Free grammar.
3378
375d5806
AD
33792001-12-29 Akim Demaille <akim@epita.fr>
3380
3381 Memory leak.
3382
3383 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
3384 since it allocates it for each state, although only one is needed.
3385 (allocate_storage): Do it here.
3386
f51cb8ff
AD
33872001-12-29 Akim Demaille <akim@epita.fr>
3388
3389 * src/options.h, src/options.c (create_long_option_table): Rename
3390 as...
3391 (long_option_table_new): this, with a clearer prototype.
3392 (percent_table): Remove, unused,
3393 * src/getargs.c (getargs): Adjust.
3394
29e88316
AD
33952001-12-29 Akim Demaille <akim@epita.fr>
3396
3397 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
3398 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
3399 as states.
3400
b9f71f19
AD
34012001-12-29 Akim Demaille <akim@epita.fr>
3402
3403 * src/lalr.c (build_relations): Rename `states' as `states1'.
3404 Sorry, I don't understand exactly what it is, no better name...
3405
1a2b5d37
AD
34062001-12-29 Akim Demaille <akim@epita.fr>
3407
3408 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
3409 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
3410 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
3411 as rules.
3412
1cca533e
AD
34132001-12-29 Akim Demaille <akim@epita.fr>
3414
3415 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
3416 ago.
3417
c03ae966
AD
34182001-12-29 Akim Demaille <akim@epita.fr>
3419
3420 * src/reader.c, src/reader.h (user_toknums): Remove.
3421 Adjust all users to use symbols[i]->user_token_number.
3422
5a670b1e
AD
34232001-12-29 Akim Demaille <akim@epita.fr>
3424
3425 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
3426 Adjust all users to use symbols[i]->prec or ->assoc.
3427
ad949da9
AD
34282001-12-29 Akim Demaille <akim@epita.fr>
3429
3430 * src/reader.c, src/reader.h (tags): Remove.
3431 Adjust all users to use symbols[i]->tag.
3432
0e78e603
AD
34332001-12-29 Akim Demaille <akim@epita.fr>
3434
3435 * src/gram.h, src/gram.c (symbols): New, similar to state_table
3436 and rule_table.
3437 * src/reader.c (packsymbols): Fill this table.
3438 Drop sprec.
3439 * src/conflicts.c (resolve_sr_conflict): Adjust.
3440 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
3441 single table.
3442 Use symbols[i]->tag instead of tags[i].
3443
213e640e
AD
34442001-12-29 Akim Demaille <akim@epita.fr>
3445
3446 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
3447 In addition, put a comment in there, to replace...
3448 * tests/regression.at (%union and C comments): Remove.
3449
e7b8bef1
AD
34502001-12-29 Akim Demaille <akim@epita.fr>
3451
3452 * tests/regression.at (Web2c Actions): Blindly move the actual
3453 output as expected output. The contents *seem* right to me, but I
3454 can't pretend reading perfectly parser tables... Nonetheless, all
3455 the other tests pass correctly, the table look OK, even though the
3456 presence of `$axiom' is to be noted: AFAICS it is useless (but
3457 harmless).
3458
b68e7744
AD
34592001-12-29 Akim Demaille <akim@epita.fr>
3460
3461 * src/reader.c (readgram): Don't add the rule 0 if there were no
3462 rules read. In other words, add it _after_ having performed
3463 grammar sanity checks.
3464 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
3465
78d5bae9
AD
34662001-12-29 Akim Demaille <akim@epita.fr>
3467
3468 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
3469 visible, and some states have now a different number.
3470
ff442794
AD
34712001-12-29 Akim Demaille <akim@epita.fr>
3472
3473 * src/reader.c (readgram): Bind the initial rule's lineno to that
3474 of the first rule.
3475 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
3476 (Solved SR Conflicts): Adjust rule 0's line number.
3477
610ab194
AD
34782001-12-29 Akim Demaille <akim@epita.fr>
3479
3480 Fix the `GAWK Grammar' failure.
3481
3482 * src/LR0.c (final_state): Initialize to -1 so that we do compute
3483 the reductions of the first state which was mistakenly confused
3484 with the final state because precisely final_state was initialized
3485 to 0.
3486 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
3487 now noticed by Bison.
3488 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
3489 have a reduction on $default.
3490
29d29c8f
AD
34912001-12-29 Akim Demaille <akim@epita.fr>
3492
3493 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
3494 rule line numbers.
3495 * src/closure.c (print_closure): Likewise.
3496 * src/derives.c (print_derives): Likewise.
3497 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
3498 now.
3499
7c6b64d0
AD
35002001-12-29 Akim Demaille <akim@epita.fr>
3501
3502 * src/lalr.c (lookaheads_print): New.
3503 (lalr): Call it when --trace-flag.
3504 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
3505 are dumped.
3506
3d4daee3
AD
35072001-12-29 Akim Demaille <akim@epita.fr>
3508
3509 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
3510 when walking through ritem, even via rule->rhs.
3511 * src/reduce.c (dump_grammar, useful_production, reduce_output)
3512 (useful_production, useless_nonterminals): Likewise.
3513 (reduce_grammar_tables): Likewise, plus update nritems.
3514 * src/nullable.c (set_nullable): Likewise.
3515 * src/lalr.c (build_relations): Likewise.
3516 * tests/sets.at (Nullable): Adjust.
3517 Fortunately, now, the $axiom is no longer nullable.
3518
9e7f6bbd
AD
35192001-12-29 Akim Demaille <akim@epita.fr>
3520
3521 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
3522 the 0-sentinel.
3523 * src/gram.c (ritem_longest_rhs): Likewise.
3524 * src/reduce.c (nonterminals_reduce): Likewise.
3525 * src/print_graph.c (print_graph): Likewise.
3526 * src/output.c (output_rule_data): Likewise.
3527 * src/nullable.c (set_nullable): Likewise.
3528
255ef638
AD
35292001-12-29 Akim Demaille <akim@epita.fr>
3530
3531 * src/output.c: Comment changes.
3532
0d8a7363
AD
35332001-12-27 Paul Eggert <eggert@twinsun.com>
3534
3535 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
3536 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
3537 Sparc, as they were causing more porting problems than the
3538 (minor) performance improvement was worth.
3539
3540 Also, catch up with 1.31's YYSTD.
3541
3db472b9
AD
35422001-12-27 Akim Demaille <akim@epita.fr>
3543
3544 * src/output.c (output_gram): Rely on nritems, not the
3545 0-sentinel. See below.
3546 Use -1 as separator, not 0.
3547 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
3548 Rely on -1 as separator in yyrhs, instead of 0.
3549 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
3550 twice `Now at end of input', therefore there are two lines less to
3551 expect.
3552
b365aa05
AD
35532001-12-27 Akim Demaille <akim@epita.fr>
3554
3555 * tests/regression.at (Unresolved SR Conflicts):
3556 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
3557 below.
3558
30171f79
AD
35592001-12-27 Akim Demaille <akim@epita.fr>
3560
3561 * src/LR0.c (new_state): Recognize the final state by the fact it
3562 is reached by eoftoken.
3563 (insert_start_shifting_state, insert_eof_shifting_state)
3564 (insert_accepting_state, augment_automaton): Remove, since now
3565 these states are automatically computed from the initial state.
3566 (generate_states): Adjust.
3567 * src/print.c: When reporting a rule number to the user, substract
3568 1, so that the axiom rule is rule 0, and the first user rule is 1.
3569 * src/reduce.c: Likewise.
3570 * src/print_graph.c (print_core): For the time being, just as for
3571 the report, depend upon --trace-flags to dump the full set of
3572 items.
3573 * src/reader.c (readgram): Once the grammar read, insert the rule
3574 0: `$axiom: START-SYMBOL $'.
3575 * tests/set.at: Adjust: rule 0 is now displayed, and since the
3576 number of the states has changed (the final state is no longer
3577 necessarily the last), catch up.
3578
75142d45
AD
35792001-12-27 Akim Demaille <akim@epita.fr>
3580
3581 Try to make the use of the eoftoken valid. Given that its value
3582 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
3583 is used instead of > 0 where appropriate, (ii), depend upon nritems
3584 instead of the 0-sentinel.
3585
3586 * src/gram.h, src/gram.c (nritems): New.
3587 Expected to be duplication of nitems, but for the time being...
3588 * src/reader.c (packgram): Assert nritems and nitems are equal.
3589 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
3590 * src/closure.c (print_closure, print_fderives): Likewise.
3591 * src/gram.c (ritem_print): Likewise.
3592 * src/print.c (print_core, print_grammar): Likewise.
3593 * src/print_graph.c: Likewise.
3594
b7c49edf
AD
35952001-12-27 Akim Demaille <akim@epita.fr>
3596
3597 * src/main.c (main): If there are complains after grammar
3598 reductions, then output the report anyway if requested, then die.
3599 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
3600 * src/reader.c (eoftoken): New.
3601 (parse_token_decl): If the token being defined has value `0', it
3602 is the eoftoken.
3603 (packsymbols): No longer hack `tags' to insert `$' by hand.
3604 Be sure to preserve the value of the eoftoken.
3605 (reader): Make sure eoftoken is defined.
3606 Initialize nsyms to 0: now eoftoken is created just like the others.
3607 * src/print.c (print_grammar): Don't special case the eof token.
3608 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
3609 lie anyway, albeit pleasant.
3610 * tests/calc.at: Exercise error messages with eoftoken.
3611 Change the grammar so that empty input is invalid.
3612 Adjust expectations.
3613 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
3614
ec2da99f
AD
36152001-12-27 Akim Demaille <akim@epita.fr>
3616
3617 * configure.in: Check the protos of strchr ans strspn.
3618 Replace strchr if needed.
3619 * src/system.h: Provide the protos of strchr, strspn and memchr if
3620 missing.
3621 * lib/strchr.c: New.
3622 * src/reader.c (symbols_save): Use strchr.
3623
8adfa272
AD
36242001-12-27 Akim Demaille <akim@epita.fr>
3625
3626 * src/print.c, src/print_graph.c (escape): New.
3627 Use it to quote the TAGS outputs.
3628 * src/print_graph.c (print_state): Now errors are in red, and
3629 reductions in green.
3630 Prefer high to wide: output the state number on a line of its own.
3631
80dac38c
AD
36322001-12-27 Akim Demaille <akim@epita.fr>
3633
3634 * src/state.h, src/state.c (reductions_new): New.
3635 * src/LR0.c (set_state_table): Let all the states have a
3636 `reductions', even if reduced to 0.
3637 (save_reductions): Adjust.
3638 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
3639 * src/print.c (print_reductions, print_actions): Adjust.
3640 * src/output.c (action_row): Adjust.
3641
2cec70b9
AD
36422001-12-27 Akim Demaille <akim@epita.fr>
3643
3644 * src/state.h, src/state.c (errs_new, errs_dup): New.
3645 * src/LR0.c (set_state_table): Let all the states have an errs,
3646 even if reduced to 0.
3647 * src/print.c (print_errs, print_reductions): Adjust.
3648 * src/output.c (output_actions, action_row): Adjust.
3649 * src/conflicts.c (resolve_sr_conflict): Adjust.
3650
13ca549a
AD
36512001-12-27 Akim Demaille <akim@epita.fr>
3652
3653 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
3654
5092aba5
AD
36552001-12-27 Akim Demaille <akim@epita.fr>
3656
3657 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
3658 * src/print.c: here.
3659 (lookaheadset, shiftset): New, used as additional storage by
3660 print_reductions.
3661 (print_results): Adjust.
3662 (print_shifts, print_gotos, print_errs): New, extracted from...
3663 (print_actions): here.
3664 * src/print_graph.c (print_actions): Remove dead code.
3665
11e2beca
AD
36662001-12-27 Akim Demaille <akim@epita.fr>
3667
3668 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
3669 `$n' and `@n'.
3670
dac3c910
AD
36712001-12-27 Akim Demaille <akim@epita.fr>
3672
3673 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
3674 (build_relations): Adjust.
3675
d0b0fefa
AD
36762001-12-27 Akim Demaille <akim@epita.fr>
3677
3678 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
3679 duplication.
3680
adc8c848
AD
36812001-12-27 Akim Demaille <akim@epita.fr>
3682
3683 * src/reader.c (packgram): Catch nitems overflows.
3684
14d293ac
AD
36852001-12-27 Akim Demaille <akim@epita.fr>
3686
3687 * src/files.c, src/files.h (guard_obstack): Remove.
3688 * src/output.c (output): Adjust.
3689 * src/reader.c (parse_braces): New, factoring...
3690 (copy_action, copy_guard): these two which are renamed as...
3691 (parse_action, parse_guard): these.
3692 As a voluntary consequence, using braces around guards is now
3693 mandatory.
3694
f499b062
AD
36952001-12-27 Akim Demaille <akim@epita.fr>
3696
3697 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
3698 * src/reader.c (symbol_list): `guard' and `guard_line' are new
3699 members.
3700 (symbol_list_new): Adjust.
3701 (copy_action): action_line is the first line, not the last.
3702 (copy_guard): Just as for actions, store the `action' only, not
3703 the switch/case/break flesh.
3704 Don't parse the user action that might follow the guard, let...
3705 (readgram): do it, i.e., now, there can be an action after a
3706 guard.
3707 In other words the guard is just explicitly optional.
3708 (packgram): Adjust.
3709 * src/output.c (guards_output): New.
3710 (output_parser): Call it when needed.
3711 (output): Also free the guard and attrs obstacks.
3712 * src/files.c, src/files.h (obstack_save): Remove.
3713 (output_files): Remove.
3714 As a result, if one needs the former `.act' file, using an
3715 appropriate skeleton which requires actions and guards is now
3716 required.
3717 * src/main.c (main): Adjust.
3718 * tests/semantic.at: New.
3719 * tests/regression.at: Use `input.y' as input file name.
3720 Avoid 8+3 problems by requiring input.c when the test needs the
3721 parser.
3722
d945f5cd
AD
37232001-12-27 Akim Demaille <akim@epita.fr>
3724
3725 * src/reader.c (symbol_list_new): Be sure to initialize all the
3726 fields.
3727
d200e455
AD
37282001-12-27 Akim Demaille <akim@epita.fr>
3729
3730 All the hacks using a final pseudo state are now useless.
3731
3732 * src/LR0.c (set_state_table): state_table holds exactly nstates.
3733 * src/lalr.c (nLA): New.
3734 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
3735 instead of lookaheadsp from the pseudo state (nstate + 1).
3736
f9507c28
AD
37372001-12-27 Akim Demaille <akim@epita.fr>
3738
3739 * src/output.c (action_row, token_actions): Use a state_t instead
3740 of a integer, and nlookaheads instead of the following state's
3741 lookaheadsp.
3742
065fbd27
AD
37432001-12-27 Akim Demaille <akim@epita.fr>
3744
3745 * src/conflicts.c (log_resolution, flush_shift)
3746 (resolve_sr_conflict, set_conflicts, solve_conflicts)
3747 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
3748 (conflicts_print, print_reductions): Use a state_t instead of an
3749 integer when referring to a state.
3750 As much as possible, depend upon nlookaheads, instead of the
3751 `lookaheadsp' member of the following state (since lookaheads of
3752 successive states are successive, the difference between state n + 1
3753 and n served as the number of lookaheads for state n).
3754 * src/lalr.c (add_lookback_edge): Likewise.
3755 * src/print.c (print_core, print_actions, print_state)
3756 (print_results): Likewise.
3757 * src/print_graph.c (print_core, print_actions, print_state)
3758 (print_graph): Likewise.
3759 * src/conflicts.h: Adjust.
3760
1b177bd7
AD
37612001-12-27 Akim Demaille <akim@epita.fr>
3762
3763 * src/bison.hairy: Formatting/comment changes.
3764 ANSIfy.
3765 Remove `register' indications.
3766 Add plenty of `static'.
3767
7742ddeb
AD
37682001-12-27 Akim Demaille <akim@epita.fr>
3769
3770 * src/output.c (prepare): Drop the muscle `ntbase' which
3771 duplicates ntokens.
3772 * src/bison.simple: Formatting/comment changes.
3773 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
3774 is an undocumented synonym.
3775
1fa14068
AD
37762001-12-22 Akim Demaille <akim@epita.fr>
3777
3778 * src/output.c (output_table_data): Change the prototype to use
3779 `int' for array ranges: some invocations do pass an int, not a
3780 short.
3781 Reported by Wayne Green.
3782
b9752825
AD
37832001-12-22 Akim Demaille <akim@epita.fr>
3784
3785 Some actions of web2c.y are improperly triggered.
3786 Reported by Mike Castle.
3787
3788 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
3789 * tests/regression.at (Web2c): Rename as...
3790 (Web2c Report): this.
3791 (Web2c Actions): New.
3792
776209d6
AD
37932001-12-22 Akim Demaille <akim@epita.fr>
3794
3795 Reductions in web2c.y are improperly reported.
3796 Reported by Mike Castle.
3797
3798 * src/conflicts.c (print_reductions): Fix.
3799 * tests/regression.at (Web2c): New.
3800
275fc3ad
AD
38012001-12-18 Akim Demaille <akim@epita.fr>
3802
3803 Some host fail on `assert (!"foo")', which expands to
3804 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
3805 Reported by Nelson Beebee.
3806
3807 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
3808 `#define it_succeeded 0' and `assert (it_succeeded)'.
3809
897668ee
MA
38102001-12-17 Marc Autret <autret_m@epita.fr>
3811
3812 * src/bison.simple: Don't hard code the skeleton line and filename.
3813 * src/output.c (output_parser): Rename 'line' as 'output_line'.
3814 New line counter 'skeleton_line' (skeleton-line muscle).
3815
ab3399e0
PE
38162001-12-17 Paul Eggert <eggert@twinsun.com>
3817
3818 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
3819 YYDEBUG must be defined to a nonzero value.
3820
3821 * src/bison.simple (yytname): Do not assume that the user defines
3822 YYDEBUG to a properly parenthesized expression.
3823
3877f72b
AD
38242001-12-17 Akim Demaille <akim@epita.fr>
3825
3826 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
3827 nlookaheads is a new member.
3828 Adjust all users.
3829 * src/lalr.h (nlookaheads): Remove this orphan declaration.
3830 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
3831 state.
776209d6 3832
331dbc1b
AD
38332001-12-17 Akim Demaille <akim@epita.fr>
3834
3835 * src/files.h, src/files.c (open_files, close_files): Remove.
3836 * src/main.c (main): Don't open/close files, nor invoke lex_free,
3837 let...
3838 * src/reader.c (reader): Do it.
776209d6 3839
be750e4c
AD
38402001-12-17 Akim Demaille <akim@epita.fr>
3841
3842 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 3843
709ae8c6
AD
38442001-12-17 Akim Demaille <akim@epita.fr>
3845
3846 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
3847 (flush_reduce): New.
3848 (resolve_sr_conflict): Adjust.
776209d6 3849
f87685c3
AD
38502001-12-17 Akim Demaille <akim@epita.fr>
3851
3852 * src/output.c (output_obstack): Be static and rename as...
3853 (format_obstack): this, to avoid any confusion with files.c's
3854 output_obstack.
3855 * src/reader.h (muscle_obstack): Move to...
3856 * src/output.h: here, since it's defined in output.c.
3857
837491d8
AD
38582001-12-17 Akim Demaille <akim@epita.fr>
3859
3860 * src/output.c (action_row, save_column, default_goto)
3861 (sort_actions, matching_state, pack_vector): Better variable
3862 locality.
3863
796d61fb
AD
38642001-12-17 Akim Demaille <akim@epita.fr>
3865
3866 * src/output.c: Various formatting changes.
776209d6 3867
64d15509
AD
38682001-12-17 Akim Demaille <akim@epita.fr>
3869
3870 * src/files.c (output_files): Free the output_obstack.
3871 * src/main.c (main): Call print and print_graph conditionally.
3872 * src/print.c (print): Work unconditionally.
3873 * src/print_graph.c (print_graph): Work unconditionally.
3874 * src/conflicts.c (log_resolution): Output only if verbose_flag.
3875
fbc8ecb7
MA
38762001-12-16 Marc Autret <autret_m@epita.fr>
3877
3878 * src/output.c (actions_output): Fix. When we use %no-lines,
3879 there is one less line per action.
3880
f0440388
MA
38812001-12-16 Marc Autret <autret_m@epita.fr>
3882
3883 * src/bison.simple: Remove a useless #line directive.
3884 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
3885 * src/output.c (get_lines_number): New.
776209d6 3886 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
3887 output muscles.
3888 Fix line numbering.
3889 (actions_output): Computes the number of lines taken by actions.
3890 (output_master_parser): Insert new skeleton which is the name of
3891 the output parser file name.
3892
a79986b8
MA
38932001-12-15 Marc Autret <autret_m@epita.fr>
3894
3895 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
3896
4ec8e00f
MA
38972001-12-15 Marc Autret <autret_m@epita.fr>
3898
3899 * src/output.c (output_gram): Keep track of the hairy one.
3900
1a4648ff
AD
39012001-12-15 Akim Demaille <akim@epita.fr>
3902
3903 Make `make distcheck' work.
3904
3905 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
3906 system.h which uses libgettext.h.
3907
9c2c67e6
AD
39082001-12-15 Akim Demaille <akim@epita.fr>
3909
3910 * src/nullable.c (set_nullable): Useless rules must be skipped,
3911 otherwise, since we range over their symbols, we might look at a
3912 nonterminal which no longer ``exists'', i.e., it is not counted in
3913 `nvars', hence we overflow our arrays.
3914
93ede233
AD
39152001-12-15 Akim Demaille <akim@epita.fr>
3916
3917 The header can also be produced directly, without any obstack!
3918 Yahoo!
3919
3920 * src/files.c, src/files.h (defines_obstack): Remove.
3921 (compute_header_macro): Global.
3922 (defines_obstack_save): Remove.
3923 * src/reader.c (parse_union_decl): No longer output to
3924 defines_obstack: its content can be found in the `stype' muscle
3925 anyway.
3926 (output_token_translations): Merge into...
3927 (symbols_output): this.
3928 Rename as...
3929 (symbols_save): this.
3930 (reader): Adjust.
3931 * src/output.c (header_output): New.
3932 (output): Call it.
3933
2666f928
AD
39342001-12-15 Akim Demaille <akim@epita.fr>
3935
3936 * src/reader.c (parse_union_decl): Instead of handling two obstack
3937 simultaneously, use one to define the `stype' muscle, and use the
3938 value of the latter to fill defines_obstack.
3939 (copy_comment): Remove.
3940 (copy_comment2): Work for a single obstack.
3941 Rename as...
3942 (copy_comment): this.
3943
428046f8
AD
39442001-12-15 Akim Demaille <akim@epita.fr>
3945
3946 * src/lex.c, src/lex.h (xgetc): No longer static.
3947 * src/reader.c (parse_union_decl): Revamp.
3948
ea52d706
AD
39492001-12-15 Akim Demaille <akim@epita.fr>
3950
3951 Still making progress in separating Bison into (i) input, (ii)
3952 process, (iii) output: now we can directly output the parser file
3953 without using table_obstack at all.
3954
3955 * src/files.c, src/files.h (table_obstack): Bye bye.
3956 (parser_file_name): New.
3957 * src/files.c (compute_output_file_names): Compute it.
3958 * src/output.c (actions_output, output_parser)
3959 (output_master_parser): To a file instead of an obstack.
3960
3f96f4dc
AD
39612001-12-15 Akim Demaille <akim@epita.fr>
3962
3963 Attach actions to rules, instead of pre-outputting them to
3964 actions_obstack.
3965
3966 * src/gram.h (rule_t): action and action_line are new members.
3967 * src/reader.c (symbol_list): Likewise.
3968 (copy_action): Save the actions within the rule.
3969 (packgram): Save them in rule_table.
3970 * src/output.c (actions_output): New.
3971 (output_parser): Use it on `%%actions'.
3972 (output_rule_data): Don't free rule_table.
3973 (output): Do it.
3974 (prepare): Don't save the `action' muscle.
3975 * src/bison.simple: s/%%action/%%actions/.
3976
51576fb3
AD
39772001-12-15 Akim Demaille <akim@epita.fr>
3978
3979 * src/reader.c (copy_action): When --yacc, don't append a `;'
3980 to the user action: let it fail if lacking.
dee049eb 3981 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 3982
2648a72d
AD
39832001-12-14 Akim Demaille <akim@epita.fr>
3984
3985 * src/lex.c (literalchar): Simply return the char you decoded, non
3986 longer mess around with obstacks and int pointers.
3987 Adjust all callers.
3988
92790e5b
AD
39892001-12-14 Akim Demaille <akim@epita.fr>
3990
3991 * src/lex.c (literalchar): Don't escape the special characters,
3992 just decode them, and keep them as char (before, eol was output as
3993 the 2 char string `\n' etc.).
3994 * src/output.c (output_rule_data): Use quotearg to output the
3995 token strings.
3996
927c1557
PE
39972001-12-13 Paul Eggert <eggert@twinsun.com>
3998
3999 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
4000 Do not infringe on the global user namespace when using C++.
4001 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
4002 All uses of `fprintf' and `stderr' changed.
4003
4004 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
4005
ed8e1f68
AD
40062001-12-13 Akim Demaille <akim@epita.fr>
4007
4008 The computation of nullable is broken: it doesn't handle empty
4009 RHS's properly.
4010
4011 * tests/torture.at (GNU AWK Grammar): New.
4012 * tests/sets.at (Nullable): New.
4013 * src/nullable.c (set_nullable): Instead of blindly looping over
4014 `ritems', loop over the rules, and then over their rhs's.
4015
4016 Work around Autotest bugs.
4017
4018 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
4019 frame, because Autotest understand lines starting with a `+' as
4020 traces from the shell. Then, they are not processed properly.
4021 Admittedly an Autotest bug, but we don't have time to wait for
4022 Autotest to catch up.
4023 * tests/regression.at (Broken Closure): Adjust to the new table
4024 frames.
4025 Move to...
4026 * tests/sets.at: here.
4027
cb581495
AD
40282001-12-13 Akim Demaille <akim@epita.fr>
4029
4030 * src/closure.c (closure): Use nrules instead of playing tricks
4031 with BITS_PER_WORD.
4032
2e729273
AD
40332001-12-13 Akim Demaille <akim@epita.fr>
4034
4035 * src/print.c (print_actions): Output the handling of `$' as the
4036 traces do: shifting the token EOF. Before EOF was treated as a
4037 nonterminal.
4038 * tests/regression.at: Adjust some tests.
4039 * src/print_graph.c (print_core): Complete the set of items via
4040 closure. The next-to-final and final states are still unsatisfying,
4041 but that's to be addressed elsewhere.
4042 No longer output the rule numbers, but do output the state number.
4043 A single loop for the shifts + gotos is enough, but picked a
4044 distinct color for each.
4045 (print_graph): Initialize and finalize closure.
4046
107f7dfb
AD
40472001-12-13 Akim Demaille <akim@epita.fr>
4048
4049 * src/reader.c (readgram): Remove dead code, an strip useless
4050 braces.
4051 (get_type): Remove, unused.
4052
9b53a24f
AD
40532001-12-12 Akim Demaille <akim@epita.fr>
4054
4055 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
4056 on that of lib/error.c.
4057
dbfb6dcd
AD
40582001-12-12 Akim Demaille <akim@epita.fr>
4059
4060 Some hosts don't like `/' in includes.
4061
4062 * src/system.h: Include libgettext.h without qualifying the path.
4063 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
4064 $(top_srcdir).
4065
c25fb648
MA
40662001-12-11 Marc Autret <autret_m@epita.fr>
4067
4068 * src/output.c (output_parser): Remove useless muscle.
4069
710ddc4f
MA
40702001-12-11 Marc Autret <autret_m@epita.fr>
4071
4072 * src/bison.simple: Remove #line just before %%epilogue. It
4073 is now handled in ...
4074 * src/reader.c (read_additionnal_code): Add the output of a
4075 #line for the epilogue.
4076
e83d80b8
MA
40772001-12-10 Marc Autret <autret_m@epita.fr>
4078
927c1557 4079 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
4080 replace precedent remove.
4081 * src/bison.simple: Remove #line before %%prologue because
4082 %%input-line is wrong at this time.
4083
971d5158
MA
40842001-12-10 Marc Autret <autret_m@epita.fr>
4085
4086 * src/reader.c (symbols_output): Clean up.
927c1557 4087 * src/output.c (output_gram, output): Clean up.
971d5158 4088
5edafffd
AD
40892001-12-10 Akim Demaille <akim@epita.fr>
4090
4091 * src/lalr.c (initialize_lookaheads): New. Extracted from...
4092 * src/LR0.c (set_state_table): here.
4093 * src/lalr.c (lalr): Call it.
4094
0279f8e9
AD
40952001-12-10 Akim Demaille <akim@epita.fr>
4096
4097 * src/state.h (shifts): Remove the `number' member: shifts are
4098 attached to state, hence no longer need to be labelled with a
4099 state number.
4100
190c4f5f
AD
41012001-12-10 Akim Demaille <akim@epita.fr>
4102
4103 Now that states have a complete set of members, the linked list of
4104 shifts is useless: just fill directly the state's shifts member.
4105
4106 * src/state.h (shifts): Remove the `next' member.
4107 * src/LR0.c (first_state, last_state): Remove.
4108 Adjust the callers.
4109 (augment_automaton): Don't look for the shifts that must be added
4110 a shift on EOF: it is those of the state we looked for! But now,
4111 since shifts are attached, it is no longer needed to looking
4112 merely by its id: its number.
4113
2a73b93d
AD
41142001-12-10 Akim Demaille <akim@epita.fr>
4115
4116 * src/LR0.c (augment_automaton): Better variable locality.
4117 Remove an impossible branch: if there is a state corresponding to
4118 the start symbol being shifted, then there is shift for the start
4119 symbol from the initial state.
4120
74392f6a
AD
41212001-12-10 Akim Demaille <akim@epita.fr>
4122
4123 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
4124 only when appropriate: when insert_start_shifting_state' is not
4125 invoked.
4126 * tests/regression.at (Rule Line Numbers): Adjust.
4127
37c82725
AD
41282001-12-10 Akim Demaille <akim@epita.fr>
4129
4130 * src/LR0.c (augment_automaton): Now that all states have shifts,
4131 merge the two cases addition shifts to the initial state.
4132
6a164e0c
AD
41332001-12-10 Akim Demaille <akim@epita.fr>
4134
4135 * src/lalr.c (set_state_table): Move to...
4136 * src/LR0.c: here.
4137 * src/lalr.c (lalr): Don't call it...
4138 * src/LR0.c (generate_states): do it.
4139 * src/LR0.h (first_state): Remove, only the table is used.
4140
7215de24
AD
41412001-12-10 Akim Demaille <akim@epita.fr>
4142
4143 * src/LR0.h (first_shift, first_reduction): Remove.
4144 * src/lalr.c: Don't use first_shift: find shifts through the
4145 states.
4146
80e25d4d
AD
41472001-12-10 Akim Demaille <akim@epita.fr>
4148
4149 * src/LR0.c: Attach shifts to states as soon as they are
4150 computed.
4151 * src/lalr.c (set_state_table): Instead of assigning shifts to
4152 state, just assert that the mapping was properly done.
4153
0ab3728b
AD
41542001-12-10 Akim Demaille <akim@epita.fr>
4155
4156 * src/LR0.c (insert_start_shift): Rename as...
4157 (insert_start_shifting_state): this.
4158 (insert_eof_shifting_state, insert_accepting_state): New.
4159 (augment_automaton): Adjust.
4160 Better locality of the variables.
4161 When looking if the start_symbol is shifted from the initial
4162 state, using `while (... symbol != start_symbol ...)' sounds
4163 better than `while (... symbol < start_symbol ...)': If fail
4164 to see how the order between symbols could be relevant!
4165
78af9bbc
AD
41662001-12-10 Akim Demaille <akim@epita.fr>
4167
4168 * src/getargs.h: Don't declare `spec_name_prefix' and
4169 `spec_file_prefix', declared by src/files.h.
4170 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
4171 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
4172 * src/output.c (prepare): Adjust.
4173 * src/reader.c (symbols_output): Likewise.
4174 * src/vmsgetargs.c: Vaguely adjust, but who cares?
4175
bdef2a41
AD
41762001-12-10 Akim Demaille <akim@epita.fr>
4177
4178 * src/muscle_tab.c (muscle_init): NULL is a better default than
4179 `"0"'.
4180
3735969c
AD
41812001-12-10 Akim Demaille <akim@epita.fr>
4182
4183 * src/reader.c (reader): Calling symbols_output once is enough.
4184
49701457
AD
41852001-12-10 Akim Demaille <akim@epita.fr>
4186
4187 Now that states have a complete set of members, the linked list of
4188 reductions is useless: just fill directly the state's reductions
4189 member.
4190
4191 * src/state.h (struct reductions): Remove member `number' and
4192 `next'.
4193 * src/LR0.c (first_reduction, last_reduction): Remove.
4194 (save_reductions): Don't link the new reductions, store them in
4195 this_state.
4196 * src/lalr.c (set_state_table): No need to attach reductions to
4197 states, it's already done.
4198 * src/output.c (output_actions): No longer free the shifts, then
4199 the reductions, then the states: free all the states and their
4200 members.
4201
0edad749
AD
42022001-12-10 Akim Demaille <akim@epita.fr>
4203
4204 * src/options.c (OPTN, DRTV, BOTH): New.
4205 (option_table): Use them.
4206
0edad749
AD
4207 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
4208 the job of system.h.
4209 * src/options.c: Don't include stdio.h and xalloc.h for the same
4210 reasons.
4211
5449dd0f
AD
42122001-12-10 Akim Demaille <akim@epita.fr>
4213
4214 * src/output.c (output, prepare): Make sure the values of the
4215 muscles `action' and `prologue' are 0-terminated.
4216
a870c567
AD
42172001-12-10 Akim Demaille <akim@epita.fr>
4218
4219 Clean up GCC warnings.
4220
4221 * src/reader.c (copy_action): `buf' is not used.
4222 (parse_skel_decl): Be static.
4223 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
4224 * src/options.h (create_long_option_table): Have a real prototype.
4225 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
4226 (hash_delete_at): Return const void *.
4227 Adjust casts to preserve the const.
4228
80df8768
AD
42292001-12-10 Akim Demaille <akim@epita.fr>
4230
4231 * configure.in: Require 2.52g.
4232 M4 is not needed, but AUTOM4TE is.
4233 * m4/m4.m4: Remove.
4234 * tests/Makefile.am: Adjust.
4235
f693ad14
AD
42362001-12-10 Akim Demaille <akim@epita.fr>
4237
4238 One structure for states is enough, even though theoretically
4239 there are LR(0) states and LALR(1) states.
4240
4241 * src/lalr.h (state_t): Remove.
4242 (state_table): Be state_t **, not state_t *.
4243 * src/state.h (core, CORE_ALLOC): Rename as...
4244 (state_t, STATE_ALLOC): this.
4245 Add the LALR(1) members: shifts, reductions, errs.
4246 * src/LR0.c (state_table): Rename as...
4247 (state_hash): this, to avoid name clashes with the global
4248 `state_table'.
4249 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
4250 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
4251
74ffbcb6
AD
42522001-12-10 Akim Demaille <akim@epita.fr>
4253
4254 Bison dumps core on bash.y.
4255 Reported by Pascal Bart.
4256
4257 * src/warshall.c (bitmatrix_print): New.
4258 (TC): Use it.
4259 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
4260 j must be the outer loop.
4261 * tests/regression.at (Broken Closure): New.
4262
07708e19
AD
42632001-12-05 Akim Demaille <akim@epita.fr>
4264
4265 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
4266 its argument.
4267