]> git.saurik.com Git - bison.git/blob - ChangeLog
(AM_CFLAGS): Renamed from CFLAGS.
[bison.git] / ChangeLog
1 2002-10-01 Paul Eggert <eggert@twinsun.com>
2
3 More fixes for 64-bit hosts and large bitsets.
4
5 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
6 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
7 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
8 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
9 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
10 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
11 bitset_count_): Likewise.
12 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
13 bitset_first, bitset_last): Likewise.
14 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
15 bitset_stats_list_reverse, bitset_stats_size,
16 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
17 Likewise.
18 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
19 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
20 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
21 bitsetv_reflexive_transitive_closure): Likewise.
22 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
23 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
24 Likewise.
25 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
26 Likewise.
27
28 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
29 Use size_t, not unsigned int, to count bytes.
30 * lib/abitset.h (abitset_bytes): Likewise.
31 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
32 Likewise.
33 * lib/bitset.h (bitset_bytes): Likewise.
34 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
35 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
36 * lib/bitsetv.c (bitsetv_alloc): Likewise.
37 * lib/ebitset.c (ebitset_bytes): Likewise.
38 * lib/ebitset.h (ebitset_bytes): Likewise.
39 * lib/lbitset.c (lbitset_bytes): Likewise.
40 * lib/lbitset.h (lbitset_bytes): Likewise.
41
42 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
43 abitset_subset_p, abitset_disjoint_p, abitset_and,
44 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
45 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
46 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
47 abitset_or_and, abitset_or_and_cmp):
48 Use bitset_windex instead of unsigned int.
49 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
50 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
51 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
52 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
53 Likewise.
54 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
55
56 * lib/bitset.c (bitset_print):
57 Use proper printf formats for widths of integer types.
58 * lib/bitset_stats.c (bitset_percent_histogram_print,
59 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
60 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
61 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
62 * lib/lbitset.c (lbitset_bytes): Likewise.
63
64 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
65 BITSET_SIZE_MAX): New macros.
66 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
67 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
68 to BITSET_WINDEX_MAX.
69
70 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
71 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
72 since we now return the bitset_bindex type (not int).
73
74 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
75 when computing sizes.
76 * lib/ebitset.c (ebitset_elts_grow): Likewise.
77
78 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
79 and avoid cast to unsigned.
80
81 2002-09-30 Akim Demaille <akim@epita.fr>
82
83 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
84 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
85 Updates from Michael Hayes.
86
87 2002-09-30 Art Haas <ahaas@neosoft.com>
88
89 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
90 invocations.
91 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
92 defined.
93
94 2002-09-27 Akim Demaille <akim@epita.fr>
95
96 Version 1.49c.
97
98 2002-09-27 Akim Demaille <akim@epita.fr>
99
100 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
101 (Because of AC_LIBSOURCE).
102
103 2002-09-27 Akim Demaille <akim@epita.fr>
104
105 Playing with Autoscan.
106
107 * configure.ac: Remove the old LIBOBJ tweaks.
108 (AC_REPLACE_FUNCS): Add strrchr and strtol.
109 * lib/strrchr.c: New.
110 * lib/strtol.c: New, from the Coreutils 4.5.1.
111
112 2002-09-27 Akim Demaille <akim@epita.fr>
113
114 Playing with Autoscan.
115
116 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
117 * lib/Makefile.am (libbison_a_SOURCES): No longer include
118 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
119 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
120 Coreutils 4.5.1.
121
122 2002-09-24 Akim Demaille <akim@epita.fr>
123
124 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
125 (Frequently Asked Questions, Parser Stack Overflow): New.
126
127 2002-09-13 Akim Demaille <akim@epita.fr>
128
129 Playing with autoscan.
130
131 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
132 * src/files.c (skeleton_find): Remove, unused.
133 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
134 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
135
136 2002-09-13 Akim Demaille <akim@epita.fr>
137
138 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
139 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
140
141 2002-09-13 Akim Demaille <akim@epita.fr>
142
143 * configure.ac: Require 2.54.
144 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
145 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
146 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
147 Remove, provided by Autoconf macros.
148
149 2002-09-12 Akim Demaille <akim@epita.fr>
150
151 * m4/prereq.m4: Update, from Coreutils 4.5.1.
152
153 2002-09-12 Akim Demaille <akim@epita.fr>
154
155 * m4/prereq.m4: Update, from Fileutils 4.1.5.
156 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
157 Reported by Martin Mokrejs.
158
159 2002-09-10 Akim Demaille <akim@epita.fr>
160
161 * src/parse-gram.y: Associate a human readable string to each
162 token type.
163 * tests/regression.at (Invalid inputs): Adjust.
164
165 2002-09-10 Gary V. Vaughan <gary@gnu.org>
166
167 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
168 with an Autoconf-2.5x style configure.ac.
169
170 2002-09-06 Paul Eggert <eggert@twinsun.com>
171
172 * doc/bison.texinfo (Conditions): Make explicit that the GPL
173 exception applies only to yacc.c. This is a modification of a
174 patch originally suggested by Akim Demaille.
175
176 2002-09-06 Akim Demaille <akim@epita.fr>
177
178 * data/c.m4 (b4_copyright): Move the GPL exception comment from
179 here to...
180 * data/yacc.c: here.
181
182 * data/lalr1.cc (struct yyltype): Don't define it, since we use
183 LocationType.
184 (b4_ltype): Default to yy::Location from location.hh.
185
186 2002-09-04 Jim Meyering <jim@meyering.net>
187
188 * data/yacc.c: Guard the declaration of yytoknum also with
189 `#ifdef YYPRINT', so it is declared only when used.
190
191 2002-09-04 Akim Demaille <akim@epita.fr>
192
193 * configure.in: Rename as...
194 * configure.ac: this.
195 Bump to 1.49c.
196
197 2002-09-04 Akim Demaille <akim@epita.fr>
198
199 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
200 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
201 translate maintainer only messages.
202
203 2002-08-12 Paul Eggert <eggert@twinsun.com>
204
205 Version 1.49b.
206
207 * Makefile.am (SUBDIRS): Remove intl.
208 (DISTCLEANFILES): Remove.
209 * NEWS: Mention that GNU M4 is now required. Clarify what is
210 meant by "larger grammars". Mention the pt_BR translation.
211 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
212 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
213 Bump version from 0.11.2 to 0.11.5.
214 (BISON_PREREQ_STAGE): Remove.
215 (AM_GNU_GETTEXT): Use external gettext.
216 (AC_OUTPUT): Remove intl/Makefile.
217
218 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
219
220 * data/glr.c: Include string.h, for strlen.
221 (yyreportParseError): Use size_t for yysize.
222 (yy_yypstack): No longer nested inside yypstates, as nested
223 functions are not portable. Do not assume size_t is the
224 same width as int.
225 (yypstates): Do not assume that ptrdiff_t is the same width
226 as int, and similarly for yyposn and YYINDEX.
227
228 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
229
230 * lib/Makefile.am (INCLUDES): Do not include from the intl
231 directory, which has been removed.
232 * src/Makefile.am (INCLUDES): Likewise.
233
234 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
235 (bitsets_sources, additional_bitsets_sources, timevars_sources):
236 New vars.
237
238 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
239 * tests/Makefile.am (EXTRA_DIST): Likewise.
240
241 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
242 Do not assume that bitset_windex is the same width as unsigned.
243
244 * lib/abitset.c (abitset_unused_clear): Do not assume that
245 bitset_word is the same width as int.
246 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
247 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
248 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
249 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
250 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
251
252 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
253 portability to one's complement hosts!).
254 * lib/ebitset.c (ebitset_op1): Likewise.
255 * lib/lbitset.c (lbitset_op1): Likewise.
256
257 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
258 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
259 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
260 Sync with fileutils.
261 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
262 lib/gettext.h: Sync with diffutils.
263
264 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
265 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
266
267 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
268 PROTOTYPES to check for prototypes, and "defined __STDC__" to
269 check for void *.
270
271 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
272 size_t; the old version tried to do this but casted improperly.
273 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
274 (bitset_test): Now returns int, not unsigned long.
275
276 * lib/bitset_stats.c: Include "gettext.h".
277 (_): New macro.
278 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
279 name locals "index", as it generates unnecessary warnings on some
280 hosts that have an "index" function.
281
282 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
283 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
284 they need translation.
285 * src/LR0.c (state_list_append, new_itemsets, get_state,
286 append_states, generate_states): Likewise.
287 * src/assoc.c (assoc_to_string): Likewise.
288 * src/closure.c (print_closure, set_firsts, closure): Likewise.
289 * src/gram.c (grammar_dump): Likewise.
290 * src/injections.c (injections_compute): Likewise.
291 * src/lalr.c (lookaheads_print): Likewise.
292 * src/relation.c (relation_transpose): Likewise.
293 * src/scan-gram.l: Likewise.
294 * src/tables.c (table_grow, pack_vector): Likewise.
295
296 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
297 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
298 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
299 * m4/mbstate_t.m4: Sync with fileutils.
300 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
301
302 * po/LINGUAS: Add pt_BR.
303 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
304 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
305 lib/timevar.c.
306 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
307 manual recommends.
308 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
309
310 * src/complain.c (strerror_r): Remove decl; not needed.
311 (strerror): Use same pattern as ../lib/error.c.
312
313 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
314
315 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
316
317 * src/main.c (main): Cast result of bindtextdomain and textdomain
318 to void, to avoid a GCC warning when --disable-nls is in effect.
319
320 * src/scan-gram.l: Use strings rather than escapes when possible,
321 to minimize the number of warnings from xgettext.
322 (handle_action_dollar, handle_action_at): Don't use isdigit,
323 as it mishandles negative chars and it may not work as expected
324 outside the C locale.
325
326 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
327 this is a GCC extension and is not portable to other compilers.
328
329 * src/system.h (alloca): Use same pattern as ../lib/error.c.
330 Do not include <ctype.h>; no longer needed.
331 Do not include <malloc.h>; no longer needed (and generates
332 warnings on OpenBSD 3.0).
333
334 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
335 it's not portable.
336
337 * tests/regression.at: Do not use 'cc -c input.c -o input';
338 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
339
340 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
341 exit status as failure, not just exit status 1. Sun C exits
342 with status 2 sometimes.
343
344 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
345 Use it for the two large tests.
346
347 2002-08-02 Akim Demaille <akim@epita.fr>
348
349 * src/conflicts.c (conflicts_output): Don't output rules never
350 reduced here, since anyway that computation doesn't work.
351 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
352 (rule_useless_p, rule_never_reduced_p): New.
353 (grammar_rules_partial_print): Use a filter instead of a range.
354 Display the title only if needed.
355 (grammar_rules_print): Adjust.
356 (grammar_rules_never_reduced_report): New.
357 * src/tables.c (action_row): Move the computation of rules never
358 reduced to...
359 (token_actions): here.
360 * src/main.c (main): Make the parser before making the report, so
361 that rules never reduced are computed.
362 Call grammar_rules_never_reduced_report.
363 * src/print.c (print_results): Report rules never reduced.
364 * tests/conflicts.at, tests/reduce.at: Adjust.
365
366 2002-08-01 Akim Demaille <akim@epita.fr>
367
368 Instead of attaching lookaheads and duplicating the rules being
369 reduced by a state, attach the lookaheads to the reductions.
370
371 * src/state.h (state_t): Remove the `lookaheads',
372 `lookaheads_rule' member.
373 (reductions_t): Add a `lookaheads' member.
374 Use a regular array for the `rules'.
375 * src/state.c (reductions_new): Initialize the lookaheads member
376 to 0.
377 (state_rule_lookaheads_print): Adjust.
378 * src/state.h, src/state.c (state_reductions_find): New.
379 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
380 (count_rr_conflicts): Adjust.
381 * src/lalr.c (LArule): Remove.
382 (add_lookback_edge): Adjust.
383 (state_lookaheads_count): New.
384 (states_lookaheads_initialize): Merge into...
385 (initialize_LA): this.
386 (lalr_free): Adjust.
387 * src/main.c (main): Don't free nullable and derives too early: it
388 is used by --verbose.
389 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
390
391 2002-08-01 Akim Demaille <akim@epita.fr>
392
393 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
394 `rule_number_t**'.
395 (set_derives, free_derives): Rename as...
396 (derives_compute, derives_free): this.
397 Adjust all dependencies.
398 * src/nullable.c (set_nullable, free_nullable): Rename as...
399 (nullable_compute, nullable_free): these.
400 (rule_list_t): Store rule_t *, not rule_number_t.
401 * src/state.c (state_rule_lookaheads_print): Directly compare rule
402 pointers, instead of their numbers.
403 * src/main.c (main): Call nullable_free, and derives_free earlier,
404 as they were lo longer used.
405
406 2002-08-01 Akim Demaille <akim@epita.fr>
407
408 * lib/timevar.c (get_time): Include children time.
409 * src/lalr.h (LA, LArule): Don't export them: used with the
410 state_t.
411 * src/lalr.c (LA, LArule): Static.
412 * src/lalr.h, src/lalr.c (lalr_free): New.
413 * src/main.c (main): Call it.
414 * src/tables.c (pack_vector): Check whether loc is >= to the
415 table_size, not >.
416 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
417 (tables_generate): do it, since that's also it which allocates
418 them.
419 Don't free LA and LArule, main does.
420
421 2002-07-31 Akim Demaille <akim@epita.fr>
422
423 Separate parser tables computation and output.
424
425 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
426 (conflict_list, conflict_list_cnt, table, check, table_ninf)
427 (yydefgoto, yydefact, high): Move to...
428 * src/tables.h, src/tables.c: here.
429 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
430 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
431 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
432 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
433 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
434 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
435 (action_row, save_row, token_actions, save_column, default_goto)
436 (goto_actions, sort_actions, matching_state, pack_vector)
437 (table_ninf_remap, pack_table, prepare_actions): Move to...
438 * src/tables.c: here.
439 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
440 * src/output.c (token_actions, output_base, output_conflicts)
441 (output_check): Merge into...
442 (prepare_actions): this.
443 (actions_output): Rename as...
444 (user_actions_output): this.
445 * src/main.c (main): Call tables_generate and tables_free.
446
447 2002-07-31 Akim Demaille <akim@epita.fr>
448
449 Steal GCC's --time-report support.
450
451 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
452 stolen/adjusted from GCC.
453 * m4/stage.m4: Remove time related checks.
454 * m4/timevar.m4: New.
455 * configure.in: Adjust.
456 * src/system.h: Adjust to using timevar.h.
457 * src/getargs.h, src/getargs.c: Support trace_time for
458 --trace=time.
459 * src/main.c (stage): Remove.
460 (main): Replace `stage' invocations with timevar calls.
461 * src/output.c: Insert pertinent timevar calls.
462
463 2002-07-31 Akim Demaille <akim@epita.fr>
464
465 Let --trace have arguments.
466
467 * src/getargs.h (enum trace_e): New.
468 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
469 (long_options, short_options): --trace/-T takes an optional
470 argument.
471 Change all the uses of trace_flag to reflect the new flags.
472 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
473
474 Strengthen `stage' portability.
475
476 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
477 * configure.in: Use it.
478 Don't check for malloc.h and sys/times.h.
479 * src/system.h: Include them when appropriate.
480 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
481 times and struct tms are available.
482
483 2002-07-30 Akim Demaille <akim@epita.fr>
484
485 In verbose parse error message, don't report `error' as an
486 expected token.
487 * tests/actions.at (Printers and Destructors): Adjust.
488 * tests/calc.at (Calculator $1): Adjust.
489 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
490 error message, do not report the parser accepts the error token in
491 that state.
492
493 2002-07-30 Akim Demaille <akim@epita.fr>
494
495 Normalize conflict related messages.
496
497 * src/complain.h, src/complain.c (warn, complain): New.
498 * src/conflicts.c (conflicts_print): Use them.
499 (conflict_report_yacc): New, extracted from...
500 (conflicts_print): here.
501 * tests/conflicts.at, tests/existing.at: Adjust.
502
503 2002-07-30 Akim Demaille <akim@epita.fr>
504
505 Report rules which are never reduced by the parser: those hidden
506 by conflicts.
507
508 * src/LR0.c (save_reductions): Don't make the final state too
509 different: save its reduction (accept) instead of having a state
510 without any action (no shift or goto, no reduce).
511 Note: the final state is now a ``regular'' state, i.e., the
512 parsers now contain `reduce 0' as default reduction.
513 Nevertheless, since they decide to `accept' when yystate =
514 final_state, they still will not reduce rule 0.
515 * src/print.c (print_actions, print_reduction): Adjust.
516 * src/output.c (action_row): Track reduced rules.
517 (token_actions): Report rules never reduced.
518 * tests/conflicts.at, tests/regression.at: Adjust.
519
520 2002-07-30 Akim Demaille <akim@epita.fr>
521
522 `stage' was accidently included in a previous patch.
523 Initiate its autoconfiscation.
524
525 * configure.in: Look for malloc.h and sys/times.h.
526 * src/main.c (stage): Adjust.
527 Report only when trace_flag.
528
529 2002-07-29 Akim Demaille <akim@epita.fr>
530
531 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
532 state_number_t.
533 (errs_t): symbol_t*, not symbol_number_t.
534 (reductions_t): rule_t*, not rule_number_t.
535 (FOR_EACH_SHIFT): New.
536 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
537 * src/print.c, src/print_graph.c: Adjust.
538
539 2002-07-29 Akim Demaille <akim@epita.fr>
540
541 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
542
543 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
544 (endtoken, accept): these.
545 * src/reader.c (reader): Set endtoken's default tag to "$end".
546 Set undeftoken's tag to "$undefined" instead of "$undefined.".
547 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
548 Adjust.
549
550 2002-07-29 Akim Demaille <akim@epita.fr>
551
552 * src/reduce.c (reduce_grammar): When the language is empty,
553 complain about the start symbol, not the axiom.
554 Use its location.
555 * tests/reduce.at (Empty Language): New.
556
557 2002-07-26 Akim Demaille <akim@epita.fr>
558
559 * src/reader.h, src/reader.c (gram_error): ... can't get
560 yycontrol without making too strong assumptions on the parser
561 itself.
562 * src/output.c (prepare_tokens): Use the real 0th value of
563 token_translations instead of `0'.
564 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
565 visible here.
566 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
567 for the time being: %locations ought to provide it to yyerror.
568
569 2002-07-25 Akim Demaille <akim@epita.fr>
570
571 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
572 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
573 * tests/regression.at (Web2c Actions): Adjust.
574
575 2002-07-25 Akim Demaille <akim@epita.fr>
576
577 Stop storing rules from 1 to nrules + 1.
578
579 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
580 * src/nullable.c, src/output.c, src/print.c, src/reader.c
581 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
582 Iterate from 0 to nrules.
583 Use rule_number_as_item_number and item_number_as_rule_number.
584 Adjust to `derive' now containing possibly 0.
585 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
586 Handle the `- 1' part in rule numbers from/to item numbers.
587 * src/conflicts.c (log_resolution): Fix the message which reversed
588 shift and reduce.
589 * src/output.c (action_row): Initialize default_rule to -1.
590 (token_actions): Adjust.
591 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
592 expected output.
593 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
594
595 2002-07-25 Akim Demaille <akim@epita.fr>
596
597 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
598 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
599 (b4_c_knr_arg_decl): New.
600 * data/yacc.c: Use it to define yysymprint, yydestruct, and
601 yyreport_parse_error.
602
603 2002-07-25 Akim Demaille <akim@epita.fr>
604
605 * data/yacc.c (yyreport_parse_error): New, extracted from...
606 (yyparse): here.
607 (yydestruct, yysymprint): Move above yyparse.
608 Be K&R compliant.
609
610 2002-07-25 Akim Demaille <akim@epita.fr>
611
612 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
613 replace...
614 (b4_sint_type, b4_uint_type): these.
615 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
616 * tests/regression.at (Web2c Actions): Adjust.
617
618 2002-07-25 Akim Demaille <akim@epita.fr>
619
620 * src/gram.h (TIEM_NUMBER_MAX): New.
621 (item_number_of_rule_number, rule_number_of_item_number): Rename
622 as...
623 (rule_number_as_item_number, item_number_as_rule_number): these.
624 Adjust dependencies.
625 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
626 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
627 (symbol_number_to_vector_number): New.
628 (order): Of vector_number_t* type.
629 (base_t, BASE_MAX, BASE_MIN): New.
630 (froms, tos, width, pos, check): Of base_t type.
631 (action_number_t, ACTION_MIN, ACTION_MAX): New.
632 (actrow): Of action_number_t type.
633 (conflrow): Of unsigned int type.
634 (table_ninf, base_ninf): New.
635 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
636 (muscle_insert_int_table, muscle_insert_base_table)
637 (muscle_insert_rule_number_table): New.
638 (prepare_tokens): Output `toknum' as int_table.
639 (action_row): Returns a rule_number_t.
640 Use ACTION_MIN, not SHRT_MIN.
641 (token_actions): yydefact is rule_number_t*.
642 (table_ninf_remap): New.
643 (pack_table): Use it for `base' and `table'.
644 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
645 replaced with...
646 (YYPACT_NINF, YYTABLE_NINF): these.
647 (yypact, yytable): Compute their types instead of hard-coded
648 `short'.
649 * tests/regression.at (Web2c Actions): Adjust.
650
651 2002-07-19 Akim Demaille <akim@epita.fr>
652
653 * src/scan-gram.l (id): Can start with an underscore.
654
655 2002-07-16 Akim Demaille <akim@epita.fr>
656
657 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
658 Adjust all former `associativity' dependencies.
659 * src/symtab.c (symbol_new): Default associativity is `undef', not
660 `right'.
661 (symbol_check_alias_consistence): Adjust.
662
663 2002-07-09 Akim Demaille <akim@epita.fr>
664
665 * doc/bison.texinfo: Properly set the ``header'' part.
666 Use @dircategory ``GNU programming tools'' as per Texinfo's
667 documentation.
668 Use @copying.
669
670 2002-07-09 Akim Demaille <akim@epita.fr>
671
672 * lib/quotearg.h: Protect against multiple inclusions.
673 * src/location.h (location_t): Add a `file' member.
674 (LOCATION_RESET, LOCATION_PRINT): Adjust.
675 * src/complain.c (warn_at, complain_at, fatal_at): Drop
676 `error_one_per_line' support.
677
678 2002-07-09 Akim Demaille <akim@epita.fr>
679
680 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
681 * src/reader.c (lineno): Remove.
682 Adjust all dependencies.
683 (get_merge_function): Take a location and use complain_at.
684 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
685 * tests/regression.at (Invalid inputs, Mixing %token styles):
686 Adjust.
687
688 2002-07-09 Akim Demaille <akim@epita.fr>
689
690 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
691 recovery rule, and forbid extensions when --yacc.
692 (gram_error): Use complain_at.
693 * src/reader.c (reader): Exit if there were parse errors.
694
695 2002-07-09 Akim Demaille <akim@epita.fr>
696
697 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
698 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
699 Reported by R Blake <blakers@mac.com>.
700
701 2002-07-09 Akim Demaille <akim@epita.fr>
702
703 * data/yacc.c: Output the copyright notive in the header.
704
705 2002-07-03 Akim Demaille <akim@epita.fr>
706
707 * src/output.c (froms, tos): Are state_number_t.
708 (save_column): sp, sp1, and sp2 are state_number_t.
709 (prepare): Rename `final' as `final_state_number', `nnts' as
710 `nterms_number', `nrules' as `rules_number', `nstates' as
711 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
712 unused.
713 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
714 * data/lalr1.cc (nsym_): Remove, unused.
715
716 2002-07-03 Akim Demaille <akim@epita.fr>
717
718 * src/lalr.h, src/lalr.c (goto_number_t): New.
719 * src/lalr.c (goto_list_t): New.
720 Propagate them.
721 * src/nullable.c (rule_list_t): New.
722 Propagate.
723 * src/types.h: Remove.
724
725 2002-07-03 Akim Demaille <akim@epita.fr>
726
727 * src/closure.c (print_fderives): Use rule_rhs_print.
728 * src/derives.c (print_derives): Use rule_rhs_print.
729 (rule_list_t): New, replaces `shorts'.
730 (set_derives): Add comments.
731 * tests/sets.at (Nullable, Firsts): Adjust.
732
733 2002-07-03 Akim Demaille <akim@epita.fr>
734
735 * src/output.c (prepare_actions): Free `tally' and `width'.
736 (prepare_actions): Allocate and free `order'.
737 * src/symtab.c (symbols_free): Free `symbols'.
738 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
739 * src/output.c (m4_invoke): Move to...
740 * src/scan-skel.l: here.
741 (<<EOF>>): Close yyout, and free its name.
742
743 2002-07-03 Akim Demaille <akim@epita.fr>
744
745 Fix some memory leaks, and fix a bug: state 0 was examined twice.
746
747 * src/LR0.c (new_state): Merge into...
748 (state_list_append): this.
749 (new_states): Merge into...
750 (generate_states): here.
751 (set_states): Don't ensure a proper `errs' state member here, do it...
752 * src/conflicts.c (conflicts_solve): here.
753 * src/state.h, src/state.c: Comment changes.
754 (state_t): Rename member `shifts' as `transitions'.
755 Adjust all dependencies.
756 (errs_new): For consistency, also take the values as argument.
757 (errs_dup): Remove.
758 (state_errs_set): New.
759 (state_reductions_set, state_transitions_set): Assert that no
760 previous value was assigned.
761 (state_free): New.
762 (states_free): Use it.
763 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
764 temporary storage: use `errs' and `nerrs' as elsewhere.
765 (set_conflicts): Allocate and free this `errs'.
766
767 2002-07-02 Akim Demaille <akim@epita.fr>
768
769 * lib/libiberty.h: New.
770 * lib: Update the bitset implementation from upstream.
771 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
772 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
773 * src/main.c: Adjust bitset stats calls.
774
775 2002-07-01 Paul Eggert <eggert@twinsun.com>
776
777 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
778 char, so that negative chars don't collide with $.
779
780 2002-06-30 Akim Demaille <akim@epita.fr>
781
782 Have the GLR tests be `warning' checked, and fix the warnings.
783
784 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
785 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
786 (yyremoveDeletes): `yyi' and `yyj' are size_t.
787 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
788 (yyaddDeferredAction): static.
789 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
790 (yyreportParseError): yyprefix is const.
791 yytokenp is used only when verbose.
792 (yy__GNUC__): Replace with __GNUC__.
793 (yypdumpstack): yyi is size_t.
794 (yypreference): Un-yy local variables and arguments, to avoid
795 clashes with `yyr1'. Anyway, we are not in the user name space.
796 (yytname_size): be an int, as is compared with ints.
797 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
798 Use them.
799 * tests/cxx-gram.at: Use quotation to protect $1.
800 Use AT_COMPILE to enable warnings hunts.
801 Prototype yylex and yyerror.
802 `Use' argc.
803 Include `string.h', not `strings.h'.
804 Produce and prototype stmtMerge only when used.
805 yylex takes a location.
806
807 2002-06-30 Akim Demaille <akim@epita.fr>
808
809 We spend a lot of time in quotearg, in particular when --verbose.
810
811 * src/symtab.c (symbol_get): Store a quoted version of the key.
812 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
813 Adjust all callers.
814
815 2002-06-30 Akim Demaille <akim@epita.fr>
816
817 * src/state.h (reductions_t): Rename member `nreds' as num.
818 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
819 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
820
821 2002-06-30 Akim Demaille <akim@epita.fr>
822
823 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
824 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
825 (shifts_to): Rename as...
826 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
827 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
828 (TRANSITION_IS_DISABLED, transitions_to): these.
829
830 2002-06-30 Akim Demaille <akim@epita.fr>
831
832 * src/print.c (print_shifts, print_gotos): Merge into...
833 (print_transitions): this.
834 (print_transitions, print_errs, print_reductions): Align the
835 lookaheads columns.
836 (print_core, print_transitions, print_errs, print_state,
837 print_grammar): Output empty lines separator before, not after.
838 (state_default_rule_compute): Rename as...
839 (state_default_rule): this.
840 * tests/conflicts.at (Defaulted Conflicted Reduction),
841 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
842 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
843
844 2002-06-30 Akim Demaille <akim@epita.fr>
845
846 Display items as we display rules.
847
848 * src/gram.h, src/gram.c (rule_lhs_print): New.
849 * src/gram.c (grammar_rules_partial_print): Use it.
850 * src/print.c (print_core): Likewise.
851 * tests/conflicts.at (Defaulted Conflicted Reduction),
852 (Unresolved SR Conflicts): Adjust.
853 (Unresolved SR Conflicts): Adjust and rename as...
854 (Resolved SR Conflicts): this, as was meant.
855 * tests/regression.at (Web2c Report): Adjust.
856
857 2002-06-30 Akim Demaille <akim@epita.fr>
858
859 * src/print.c (state_default_rule_compute): New, extracted from...
860 (print_reductions): here.
861 Pessimize, but clarify the code.
862 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
863
864 2002-06-30 Akim Demaille <akim@epita.fr>
865
866 * src/output.c (action_row): Let default_rule be always a rule
867 number.
868
869 2002-06-30 Akim Demaille <akim@epita.fr>
870
871 * src/closure.c (print_firsts, print_fderives, closure):
872 Use BITSET_EXECUTE.
873 * src/lalr.c (lookaheads_print): Likewise.
874 * src/state.c (state_rule_lookaheads_print): Likewise.
875 * src/print_graph.c (print_core): Likewise.
876 * src/print.c (print_reductions): Likewise.
877 * src/output.c (action_row): Likewise.
878 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
879
880 2002-06-30 Akim Demaille <akim@epita.fr>
881
882 * src/print_graph.c: Use report_flag.
883
884 2002-06-30 Akim Demaille <akim@epita.fr>
885
886 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
887 to...
888 * src/relation.h, src/relation.c (traverse, relation_digraph)
889 (relation_print, relation_transpose): New.
890
891 2002-06-30 Akim Demaille <akim@epita.fr>
892
893 * src/state.h, src/state.c (shifts_to): New.
894 * src/lalr.c (build_relations): Use it.
895
896 2002-06-30 Akim Demaille <akim@epita.fr>
897
898 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
899 (item_number_of_rule_number, rule_number_of_item_number): New.
900 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
901 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
902 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
903 Propagate their use.
904 Much remains to be done, in particular wrt `shorts' from types.h.
905
906 2002-06-30 Akim Demaille <akim@epita.fr>
907
908 * src/symtab.c (symbol_new): Initialize the `printer' member.
909
910 2002-06-30 Akim Demaille <akim@epita.fr>
911
912 * src/LR0.c (save_reductions): Remove, replaced by...
913 * src/state.h, src/state.c (state_reductions_set): New.
914 (reductions, errs): Rename as...
915 (reductions_t, errs_t): these.
916 Adjust all dependencies.
917
918 2002-06-30 Akim Demaille <akim@epita.fr>
919
920 * src/LR0.c (state_list_t, state_list_append): New.
921 (first_state, last_state): Now symbol_list_t.
922 (this_state): Remove.
923 (new_itemsets, append_states, save_reductions): Take a state_t as
924 argument.
925 (set_states, generate_states): Adjust.
926 (save_shifts): Remove, replaced by...
927 * src/state.h, src/state.c (state_shifts_set): New.
928 (shifts): Rename as...
929 (shifts_t): this.
930 Adjust all dependencies.
931 * src/state.h (state_t): Remove the `next' member.
932
933 2002-06-30 Akim Demaille <akim@epita.fr>
934
935 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
936 escaped in slot 0.
937
938 2002-06-30 Akim Demaille <akim@epita.fr>
939
940 Use hash.h for the state hash table.
941
942 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
943 (allocate_storage): Use state_hash_new.
944 (free_storage): Use state_hash_free.
945 (new_state, get_state): Adjust.
946 * src/lalr.h, src/lalr.c (states): Move to...
947 * src/states.h (state_t): Remove the `link' member, no longer
948 used.
949 * src/states.h, src/states.c: here.
950 (state_hash_new, state_hash_free, state_hash_lookup)
951 (state_hash_insert, states_free): New.
952 * src/states.c (state_table, state_compare, state_hash): New.
953 * src/output.c (output_actions): Do not free states now, since we
954 still need to know the final_state number in `prepare', called
955 afterwards. Do it...
956 * src/main.c (main): here: call states_free after `output'.
957
958 2002-06-30 Akim Demaille <akim@epita.fr>
959
960 * src/state.h, src/state.c (state_new): New, extracted from...
961 * src/LR0.c (new_state): here.
962 * src/state.h (STATE_ALLOC): Move to...
963 * src/state.c: here.
964 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
965 * src/state.h, src/state.c: here.
966
967 2002-06-30 Akim Demaille <akim@epita.fr>
968
969 * src/reader.c (gensym): Rename as...
970 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
971 (getsym): Rename as...
972 (symbol_get): this.
973
974 2002-06-30 Akim Demaille <akim@epita.fr>
975
976 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
977 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
978 * src/output.c, src/print.c, src/print_graph.c: Propagate.
979 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
980
981 2002-06-30 Akim Demaille <akim@epita.fr>
982
983 Make the test suite pass with warnings checked.
984
985 * tests/actions.at (Printers and Destructors): Improve.
986 Avoid unsigned vs. signed issues.
987 * tests/calc.at: Don't exercise the scanner here, do it...
988 * tests/input.at (Torturing the Scanner): here.
989
990 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
991
992 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
993 reorganize first lines parallel to yacc.c.
994
995 2002-06-28 Akim Demaille <akim@epita.fr>
996
997 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
998 (b4_token_enum, b4_token_defines): New, factored from...
999 * data/lalr1.cc, data/yacc.c, glr.c: here.
1000
1001 2002-06-28 Akim Demaille <akim@epita.fr>
1002
1003 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
1004 unused variables.
1005 * src/output.c (merger_output): static.
1006
1007 2002-06-28 Akim Demaille <akim@epita.fr>
1008
1009 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
1010 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
1011 pacify GCC.
1012 * src/output.c (save_row): Initialize all the variables to pacify GCC.
1013
1014 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1015
1016 Accumulated changelog for new GLR parsing features.
1017
1018 * src/conflicts.c (count_total_conflicts): Change name to
1019 conflicts_total_count.
1020 * src/conflicts.h: Ditto.
1021 * src/output.c (token_actions): Use the new name.
1022 (output_conflicts): Change conflp => conflict_list_heads, and
1023 confl => conflict_list for better readability.
1024 * data/glr.c: Use the new names.
1025 * NEWS: Add self to GLR announcement.
1026
1027 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
1028
1029 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
1030 Akim Demaille.
1031
1032 * data/bison.glr: Change name to glr.c
1033 * data/glr.c: Renamed from bison.glr.
1034 * data/Makefile.am: Add glr.c
1035
1036 * src/getargs.c:
1037
1038 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
1039 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
1040
1041 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1042
1043 * data/bison.glr: Be sure to restore the
1044 current #line when returning to the skeleton contents after having
1045 exposed the input file's #line.
1046
1047 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1048
1049 * data/bison.glr: Bring up to date with changes to bison.simple.
1050
1051 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1052
1053 * data/bison.glr: Correct definitions that use b4_prefix.
1054 Various reformatting.
1055 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
1056 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
1057 yytokenp argument; now part of stack.
1058 (yychar): Define to behave as documented.
1059 (yyclearin): Ditto.
1060
1061 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1062
1063 * src/reader.h: Add declaration for free_merger_functions.
1064
1065 * src/reader.c (merge_functions): New variable.
1066 (get_merge_function): New function.
1067 (free_merger_functions): New function.
1068 (readgram): Check for %prec that is not followed by a symbol.
1069 Handle %dprec and %merge declarations.
1070 (packgram): Initialize dprec and merger fields in rules array.
1071
1072 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
1073 conflict_list_cnt, conflict_list_free): New variables.
1074 (table_grow): Also grow conflict_table.
1075 (prepare_rules): Output dprec and merger tables.
1076 (conflict_row): New function.
1077 (action_row): Output conflict lists for GLR parser. Don't use
1078 default reduction in conflicted states for GLR parser so that there
1079 are spaces for the conflict lists.
1080 (save_row): Also save conflict information.
1081 (token_actions): Allocate conflict list.
1082 (merger_output): New function.
1083 (pack_vector): Pack conflict table, too.
1084 (output_conflicts): New function to output yyconflp and yyconfl.
1085 (output_check): Allocate conflict_tos.
1086 (output_actions): Output conflict tables, also.
1087 (output_skeleton): Output b4_mergers definition.
1088 (prepare): Output b4_max_rhs_length definition.
1089 Use 'bison.glr' as default skeleton for GLR parsers.
1090
1091 * src/gram.c (glr_parser): New flag.
1092 (grammar_free): Call free_merger_functions.
1093
1094 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
1095 all pairs of conflicting reductions, rather than just all tokens
1096 causing conflicts. Needed to size conflict tables.
1097 (conflicts_output): Modify call to count_rr_conflicts for new
1098 interface.
1099 (conflicts_print): Ditto.
1100 (count_total_conflicts): New function.
1101
1102 * src/reader.h (merger_list): New type.
1103 (merge_functions): New variable.
1104
1105 * src/lex.h (tok_dprec, tok_merge): New token types.
1106
1107 * src/gram.h (rule_s): Add dprec and merger fields.
1108 (glr_parser): New flag.
1109
1110 * src/conflicts.h (count_total_conflicts): New function.
1111
1112 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
1113
1114 * doc/bison.texinfo (Generalized LR Parsing): New section.
1115 (GLR Parsers): New section.
1116 (Language and Grammar): Mention GLR parsing.
1117 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
1118 Correct typo ("tge" -> "the").
1119
1120 * data/bison.glr: New skeleton for GLR parsing.
1121
1122 * tests/cxx-gram.at: New tests for GLR parsing.
1123
1124 * tests/testsuite.at: Include cxx-gram.at.
1125
1126 * tests/Makefile.am: Add cxx-gram.at.
1127
1128 * src/parse-gram.y:
1129
1130 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
1131
1132 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
1133
1134 2002-06-27 Akim Demaille <akim@epita.fr>
1135
1136 * src/options.h, src/options.c: Remove.
1137 * src/getargs.c (short_options, long_options): New.
1138
1139 2002-06-27 Akim Demaille <akim@epita.fr>
1140
1141 * data/bison.simple, data/bison.c++: Rename as...
1142 * data/yacc.c, data/lalr1.cc: these.
1143 * doc/bison.texinfo (Environment Variables): Remove.
1144
1145 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
1146
1147 * src/getargs.c (report_argmatch): Initialize strtok().
1148
1149 2002-06-20 Akim Demaille <akim@epita.fr>
1150
1151 * data/bison.simple (b4_symbol_actions): New, replaces...
1152 (b4_symbol_destructor, b4_symbol_printer): these.
1153 (yysymprint): Be sure to call YYPRINT only for tokens, and using
1154 user token numbers.
1155
1156 2002-06-20 Akim Demaille <akim@epita.fr>
1157
1158 * data/bison.simple (yydestructor): Rename as...
1159 (yydestruct): this.
1160
1161 2002-06-20 Akim Demaille <akim@epita.fr>
1162
1163 * src/symtab.h, src/symtab.c (symbol_type_set)
1164 (symbol_destructor_set, symbol_precedence_set): The location is
1165 the last argument.
1166 Adjust all callers.
1167
1168 2002-06-20 Akim Demaille <akim@epita.fr>
1169
1170 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
1171 internals.
1172 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
1173 Takes a location.
1174 * src/symtab.h, src/symtab.c (symbol_class_set)
1175 (symbol_user_token_number_set): Likewise.
1176 Adjust all callers.
1177 Promote complain_at.
1178 * tests/input.at (Type Clashes): Adjust.
1179
1180 2002-06-20 Akim Demaille <akim@epita.fr>
1181
1182 * data/bison.simple (YYLEX): Fix the declaration when
1183 %pure-parser.
1184
1185 2002-06-20 Akim Demaille <akim@epita.fr>
1186
1187 * data/bison.simple (yysymprint): Don't print the token number,
1188 just its name.
1189 * tests/actions.at (Destructors): Rename as...
1190 (Printers and Destructors): this.
1191 Also exercise %printer.
1192
1193 2002-06-20 Akim Demaille <akim@epita.fr>
1194
1195 * data/bison.simple (YYDSYMPRINT): New.
1196 Use it to remove many of the #if YYDEBUG/if (yydebug).
1197
1198 2002-06-20 Akim Demaille <akim@epita.fr>
1199
1200 * src/symtab.h, src/symtab.c (symbol_t): printer and
1201 printer_location are new members.
1202 (symbol_printer_set): New.
1203 * src/parse-gram.y (PERCENT_PRINTER): New token.
1204 Handle its associated rule.
1205 * src/scan-gram.l: Adjust.
1206 (handle_destructor_at, handle_destructor_dollar): Rename as...
1207 (handle_symbol_code_at, handle_symbol_code_dollar): these.
1208 * src/output.c (symbol_printers_output): New.
1209 (output_skeleton): Call it.
1210 * data/bison.simple (yysymprint): New. Cannot be named yyprint
1211 since there are already many grammar files with a user `yyprint'.
1212 Replace the calls to YYPRINT to calls to yysymprint.
1213 * tests/calc.at: Adjust.
1214 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
1215 taking advantage of parser very internal details (stack size!).
1216
1217 2002-06-20 Akim Demaille <akim@epita.fr>
1218
1219 * src/scan-gram.l: Complete the scanner with the missing patterns
1220 to pacify Flex.
1221 Use `quote' and `symbol_tag_get' where appropriate.
1222
1223 2002-06-19 Akim Demaille <akim@epita.fr>
1224
1225 * tests/actions.at (Destructors): Augment to test locations.
1226 * data/bison.simple (yydestructor): Pass it the current location
1227 if locations are enabled.
1228 Prototype only when __STDC__ or C++.
1229 Change the argument names to move into the yy name space: there is
1230 user code here.
1231
1232 2002-06-19 Akim Demaille <akim@epita.fr>
1233
1234 * data/bison.simple (b4_pure_if): New.
1235 Use it instead of #ifdef YYPURE.
1236
1237 2002-06-19 Akim Demaille <akim@epita.fr>
1238
1239 * data/bison.simple (b4_location_if): New.
1240 Use it instead of #ifdef YYLSP_NEEDED.
1241
1242 2002-06-19 Akim Demaille <akim@epita.fr>
1243
1244 Prepare @$ in %destructor, but currently don't bind it in the
1245 skeleton, as %location use is not cleaned up yet.
1246
1247 * src/scan-gram.l (handle_dollar, handle_destructor_at)
1248 (handle_action_at): New.
1249 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
1250 a braced_code_t and a location as additional arguments.
1251 (handle_destructor_dollar): Instead of requiring `b4_eval', just
1252 unquote one when outputting `b4_dollar_dollar'.
1253 Adjust callers.
1254 * data/bison.simple (b4_eval): Remove.
1255 (b4_symbol_destructor): Adjust.
1256 * tests/input.at (Invalid @n): Adjust.
1257
1258 2002-06-19 Zack Weinberg <zack@codesourcery.com>
1259
1260 * doc/bison.texinfo: Document ability to have multiple
1261 prologue sections.
1262
1263 2002-06-18 Akim Demaille <akim@epita.fr>
1264
1265 * src/files.c (compute_base_names): When computing the output file
1266 names from the input file name, strip the directory part.
1267
1268 2002-06-18 Akim Demaille <akim@epita.fr>
1269
1270 * data/bison.simple.new: Comment changes.
1271 Reported by Andreas Schwab.
1272
1273 2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
1274
1275 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
1276 there are no `label `yyoverflowlab' defined but not used' warnings
1277 when yyoverflow is defined.
1278
1279 2002-06-18 Akim Demaille <akim@epita.fr>
1280
1281 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
1282 new member.
1283 (symbol_destructor_set): Adjust.
1284 * src/output.c (symbol_destructors_output): Output the destructor
1285 locations.
1286 Output the symbol name.
1287 * data/bison.simple (b4_symbol_destructor): Adjust.
1288
1289 2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
1290 and Akim Demaille <akim@epita.fr>
1291
1292 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
1293 what's left on the stack when the error recovery hits EOF.
1294 * tests/actions.at (Destructors): Complete to exercise this case.
1295
1296 2002-06-17 Akim Demaille <akim@epita.fr>
1297
1298 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
1299 arguments is really empty, not only equal to `[]'.
1300 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
1301 member.
1302 (symbol_destructor_set): New.
1303 * src/output.c (symbol_destructors_output): New.
1304 * src/reader.h (brace_code_t, current_braced_code): New.
1305 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
1306 (handle_dollar): Rename as...
1307 (handle_action_dollar): this.
1308 (handle_destructor_dollar): New.
1309 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
1310 (grammar_declaration): Use it.
1311 * data/bison.simple (yystos): Is always defined.
1312 (yydestructor): New.
1313 * tests/actions.at (Destructors): New.
1314 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
1315
1316 2002-06-17 Akim Demaille <akim@epita.fr>
1317
1318 * src/symlist.h, src/symlist.c (symbol_list_length): New.
1319 * src/scan-gram.l (handle_dollar, handle_at): Compute the
1320 rule_length only when needed.
1321 * src/output.c (actions_output, token_definitions_output): Output
1322 the full M4 block.
1323 * src/symtab.c: Don't access directly to the symbol tag, use
1324 symbol_tag_get.
1325 * src/parse-gram.y: Use symbol_list_free.
1326
1327 2002-06-17 Akim Demaille <akim@epita.fr>
1328
1329 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
1330 (symbol_list_prepend, get_type_name): Move to...
1331 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
1332 (symbol_list_prepend, symbol_list_n_type_name_get): here.
1333 Adjust all callers.
1334 (symbol_list_free): New.
1335 * src/scan-gram.l (handle_dollar): Takes a location.
1336 * tests/input.at (Invalid $n): Adjust.
1337
1338 2002-06-17 Akim Demaille <akim@epita.fr>
1339
1340 * src/reader.h, src/reader.c (symbol_list_new): Export it.
1341 (symbol_list_prepend): New.
1342 * src/parse-gram.y (%union): `list' is a new member.
1343 (symbols.1): New, replaces...
1344 (terms_to_prec.1, nterms_to_type.1): these.
1345 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
1346 Take a location as additional argument.
1347 Adjust all callers.
1348
1349 2002-06-15 Akim Demaille <akim@epita.fr>
1350
1351 * src/parse-gram.y: Move %token in the declaration section so that
1352 we don't depend upon CVS Bison.
1353
1354 2002-06-15 Akim Demaille <akim@epita.fr>
1355
1356 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
1357 * src/print.c (print_core): Use it.
1358
1359 2002-06-15 Akim Demaille <akim@epita.fr>
1360
1361 * src/conflicts.c (log_resolution): Accept the rule involved in
1362 the sr conflicts instead of the lookahead number that points to
1363 that rule.
1364 (flush_reduce): Accept the current lookahead vector as argument,
1365 instead of the index in LA.
1366 (resolve_sr_conflict): Accept the current number of lookahead
1367 bitset to consider for the STATE, instead of the index in LA.
1368 (set_conflicts): Adjust.
1369 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
1370
1371 2002-06-15 Akim Demaille <akim@epita.fr>
1372
1373 * src/state.h (state_t): Replace the `lookaheadsp' member, a
1374 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
1375 Adjust all dependencies.
1376 * src/lalr.c (initialize_lookaheads): Split into...
1377 (states_lookaheads_count, states_lookaheads_initialize): these.
1378 (lalr): Adjust.
1379
1380 2002-06-15 Akim Demaille <akim@epita.fr>
1381
1382 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
1383 out of...
1384 (grammar_rules_print): here.
1385 * src/reduce.c (reduce_output): Use it.
1386 * tests/reduce.at (Useless Rules, Reduced Automaton)
1387 (Underivable Rules): Adjust.
1388
1389 2002-06-15 Akim Demaille <akim@epita.fr>
1390
1391 Copy BYacc's nice way to report the grammar.
1392
1393 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
1394 New.
1395 Don't print the rules' location, it is confusing and useless.
1396 (rule_print): Use grammar_rhs_print.
1397 * src/print.c (print_grammar): Use grammar_rules_print.
1398
1399 2002-06-15 Akim Demaille <akim@epita.fr>
1400
1401 Complete and rationalize `useless thing' warnings.
1402
1403 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
1404 (symbol_tag_print): New.
1405 Use them everywhere in place of accessing directly the tag member.
1406 * src/gram.h, src/gram.c (rule_print): New.
1407 Use it where a rule used to be printed `by hand'.
1408 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
1409 (reduce_grammar_tables): Report the useless rules.
1410 (reduce_print): Useless things are a warning, not an error.
1411 Report it as such.
1412 * tests/reduce.at (Useless Nonterminals, Useless Rules):
1413 (Reduced Automaton, Underivable Rules): Adjust.
1414 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
1415 * tests/conflicts.at (Unresolved SR Conflicts)
1416 (Solved SR Conflicts): Adjust.
1417
1418 2002-06-15 Akim Demaille <akim@epita.fr>
1419
1420 Let symbols have a location.
1421
1422 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
1423 (getsym): Adjust.
1424 Adjust all callers.
1425 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
1426 Use location_t, not int.
1427 * src/symtab.c (symbol_check_defined): Take advantage of the
1428 location.
1429 * tests/regression.at (Invalid inputs): Adjust.
1430
1431 2002-06-15 Akim Demaille <akim@epita.fr>
1432
1433 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
1434 (input): Don't try to initialize yylloc here, do it in the
1435 scanner.
1436 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
1437 * src/gram.h (rule_t): Change line and action_line into location
1438 and action_location, of location_t type.
1439 Adjust all dependencies.
1440 * src/location.h, src/location.c (empty_location): New.
1441 * src/reader.h, src/reader.c (grammar_start_symbol_set)
1442 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
1443 (grammar_current_rule_symbol_append)
1444 (grammar_current_rule_action_append): Expect a location as argument.
1445 * src/reader.c (grammar_midrule_action): Adjust to attach an
1446 action's location as dummy symbol location.
1447 * src/symtab.h, src/symtab.c (startsymbol_location): New.
1448 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
1449 the line numbers.
1450
1451 2002-06-14 Akim Demaille <akim@epita.fr>
1452
1453 Grammar declarations may be found in the grammar section.
1454
1455 * src/parse-gram.y (rules_or_grammar_declaration): New.
1456 (declarations): Each declaration may end with a semicolon, not
1457 just...
1458 (grammar_declaration): `"%union"'.
1459 (grammar): Branch to rules_or_grammar_declaration.
1460
1461 2002-06-14 Akim Demaille <akim@epita.fr>
1462
1463 * src/main.c (main): Invoke scanner_free.
1464
1465 2002-06-14 Akim Demaille <akim@epita.fr>
1466
1467 * src/output.c (m4_invoke): Extracted from...
1468 (output_skeleton): here.
1469 Free tempfile.
1470
1471 2002-06-14 Akim Demaille <akim@epita.fr>
1472
1473 * src/parse-gram.y (directives, directive, gram)
1474 (grammar_directives, precedence_directives, precedence_directive):
1475 Rename as...
1476 (declarations, declaration, grammar, grammar_declaration)
1477 (precedence_declaration, precedence_declarator): these.
1478 (symbol_declaration): New.
1479
1480 2002-06-14 Akim Demaille <akim@epita.fr>
1481
1482 * src/files.c (action_obstack): Remove, unused.
1483 (output_obstack): Remove it, and all its dependencies, as it is no
1484 longer needed.
1485 * src/reader.c (epilogue_set): Build the epilogue in the
1486 muscle_obstack.
1487 * src/output.h, src/output.c (muscle_obstack): Move to...
1488 * src/muscle_tab.h, src/muscle_tab.h: here.
1489 (muscle_init): Initialize muscle_obstack.
1490 (muscle_free): New.
1491 * src/main.c (main): Call it.
1492
1493 2002-06-14 Akim Demaille <akim@epita.fr>
1494
1495 * src/location.h: New, extracted from...
1496 * src/reader.h: here.
1497 * src/Makefile.am (noinst_HEADERS): Merge into
1498 (bison_SOURCES): this.
1499 Add location.h.
1500 * src/parse-gram.y: Use location_t instead of Bison's.
1501 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
1502 Use location_t instead of ints.
1503
1504 2002-06-14 Akim Demaille <akim@epita.fr>
1505
1506 * data/bison.simple, data/bison.c++: Be sure to restore the
1507 current #line when returning to the skeleton contents after having
1508 exposed the input file's #line.
1509
1510 2002-06-12 Akim Demaille <akim@epita.fr>
1511
1512 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
1513 eager.
1514 * tests/actions.at (Exotic Dollars): New.
1515
1516 2002-06-12 Akim Demaille <akim@epita.fr>
1517
1518 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
1519 ['"/] too eagerly.
1520 * tests/input.at (Torturing the Scanner): New.
1521
1522 2002-06-11 Akim Demaille <akim@epita.fr>
1523
1524 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
1525 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
1526 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
1527 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
1528 * src/reader.c (reader): Use it.
1529
1530 2002-06-11 Akim Demaille <akim@epita.fr>
1531
1532 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
1533 Adjust all callers.
1534 (scanner_last_string_free): New.
1535
1536 2002-06-11 Akim Demaille <akim@epita.fr>
1537
1538 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
1539 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
1540 (last_string, YY_OBS_FREE): New.
1541 Use them when returning an ID.
1542
1543 2002-06-11 Akim Demaille <akim@epita.fr>
1544
1545 Have Bison grammars parsed by a Bison grammar.
1546
1547 * src/reader.c, src/reader.h (prologue_augment): New.
1548 * src/reader.c (copy_definition): Remove.
1549
1550 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
1551 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
1552 (grammar_current_rule_prec_set, grammar_current_rule_check)
1553 (grammar_current_rule_symbol_append)
1554 (grammar_current_rule_action_append): Export.
1555 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
1556 (symbol_list_action_append): Remove.
1557 Hook the routines from reader.
1558 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
1559 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
1560
1561 * src/reader.c (read_declarations): Remove, unused.
1562
1563 * src/parse-gram.y: Handle the epilogue.
1564 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
1565 (grammar_start_symbol_set): this.
1566 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
1567 * src/reader.c (readgram): Remove, unused.
1568 (reader): Adjust to insert eoftoken and axiom where appropriate.
1569
1570 * src/reader.c (copy_dollar): Replace with...
1571 * src/scan-gram.h (handle_dollar): this.
1572 * src/parse-gram.y: Remove `%thong'.
1573
1574 * src/reader.c (copy_at): Replace with...
1575 * src/scan-gram.h (handle_at): this.
1576
1577 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
1578 New.
1579
1580 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
1581 time being.
1582
1583 * src/reader.h, src/reader.c (grammar_rule_end): New.
1584
1585 * src/parse.y (current_type, current_class): New.
1586 Implement `%nterm', `%token' support.
1587 Merge `%term' into `%token'.
1588 (string_as_id): New.
1589 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
1590 type name.
1591
1592 * src/parse-gram.y: Be sure to handle properly the beginning of
1593 rules.
1594
1595 * src/parse-gram.y: Handle %type.
1596 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
1597
1598 * src/parse-gram.y: More directives support.
1599 * src/options.c: No longer handle source directives.
1600
1601 * src/parse-gram.y: Fix %output.
1602
1603 * src/parse-gram.y: Handle %union.
1604 Use the prologue locations.
1605 * src/reader.c (parse_union_decl): Remove.
1606
1607 * src/reader.h, src/reader.c (epilogue_set): New.
1608 * src/parse-gram.y: Use it.
1609
1610 * data/bison.simple, data/bison.c++: b4_stype is now either not
1611 defined, then default to int, or to the contents of %union,
1612 without `union' itself.
1613 Adjust.
1614 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
1615
1616 * src/output.c (actions_output): Don't output braces, as they are
1617 already handled by the scanner.
1618
1619 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
1620 characters to themselves.
1621
1622 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
1623 that the epilogue has a proper #line.
1624
1625 * src/parse-gram.y: Handle precedence/associativity.
1626
1627 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
1628 a terminal.
1629 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
1630 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
1631 at all to define terminals that cannot be emitted.
1632
1633 * src/scan-gram.l: Escape M4 characters.
1634
1635 * src/scan-gram.l: Working properly with escapes in user
1636 strings/characters.
1637
1638 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
1639 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
1640 grammar.
1641 Use more modest sizes, as for the time being the parser does not
1642 release memory, and therefore the process swallows a huge amount
1643 of memory.
1644
1645 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
1646 stricter %token grammar.
1647
1648 * src/symtab.h (associativity): Add `undef_assoc'.
1649 (symbol_precedence_set): Do nothing when passed an undef_assoc.
1650 * src/symtab.c (symbol_check_alias_consistence): Adjust.
1651
1652 * tests/regression.at (Invalid %directive): Remove, as it is now
1653 meaningless.
1654 (Invalid inputs): Adjust to the new error messages.
1655 (Token definitions): The new grammar doesn't allow too many
1656 eccentricities.
1657
1658 * src/lex.h, src/lex.c: Remove.
1659 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
1660 (copy_character, copy_string2, copy_string, copy_identifier)
1661 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
1662 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
1663 (parse_action): Remove.
1664 * po/POTFILES.in: Adjust.
1665
1666 2002-06-11 Akim Demaille <akim@epita.fr>
1667
1668 * src/reader.c (parse_action): Don't store directly into the
1669 rule's action member: return the action as a string.
1670 Don't require `rule_length' as an argument: compute it.
1671 (grammar_current_rule_symbol_append)
1672 (grammar_current_rule_action_append): New, eved out from
1673 (readgram): here.
1674 Remove `action_flag', `rulelength', unused now.
1675
1676 2002-06-11 Akim Demaille <akim@epita.fr>
1677
1678 * src/reader.c (grammar_current_rule_prec_set).
1679 (grammar_current_rule_check): New, eved out from...
1680 (readgram): here.
1681 Remove `xaction', `first_rhs': useless.
1682 * tests/input.at (Type clashes): New.
1683 * tests/existing.at (GNU Cim Grammar): Adjust.
1684
1685 2002-06-11 Akim Demaille <akim@epita.fr>
1686
1687 * src/reader.c (grammar_midrule_action): New, Eved out from
1688 (readgram): here.
1689
1690 2002-06-11 Akim Demaille <akim@epita.fr>
1691
1692 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
1693 New.
1694 (readgram): Use them as replacement of inlined code, crule and
1695 crule1.
1696
1697 2002-06-11 Akim Demaille <akim@epita.fr>
1698
1699 * src/reader.c (grammar_end, grammar_symbol_append): New.
1700 (readgram): Use them.
1701 Make the use of `p' as local as possible.
1702
1703 2002-06-10 Akim Demaille <akim@epita.fr>
1704
1705 GCJ's parser requires the tokens to be defined before the prologue.
1706
1707 * data/bison.simple: Output the token definition before the user's
1708 prologue.
1709 * tests/regression.at (Braces parsing, Duplicate string)
1710 (Mixing %token styles): Check the output from bison.
1711 (Early token definitions): New.
1712
1713 2002-06-10 Akim Demaille <akim@epita.fr>
1714
1715 * src/symtab.c (symbol_user_token_number_set): Don't complain when
1716 assigning twice the same user number to a token, so that we can
1717 use it in...
1718 * src/lex.c (lex): here.
1719 Also use `symbol_class_set' instead of hand written code.
1720 * src/reader.c (parse_assoc_decl): Likewise.
1721
1722 2002-06-10 Akim Demaille <akim@epita.fr>
1723
1724 * src/symtab.c, src/symtab.c (symbol_class_set)
1725 (symbol_user_token_number_set): New.
1726 * src/reader.c (parse_token_decl): Use them.
1727 Use a switch instead of ifs.
1728 Use a single argument.
1729
1730 2002-06-10 Akim Demaille <akim@epita.fr>
1731
1732 Remove `%thong' support as it is undocumented, unused, duplicates
1733 `%token's job, and creates useless e-mail traffic with people who
1734 want to know what it is, why it is undocumented, unused, and
1735 duplicates `%token's job.
1736
1737 * src/reader.c (parse_thong_decl): Remove.
1738 * src/options.c (option_table): Remove "thong".
1739 * src/lex.h (tok_thong): Remove.
1740
1741 2002-06-10 Akim Demaille <akim@epita.fr>
1742
1743 * src/symtab.c, src/symtab.c (symbol_type_set)
1744 (symbol_precedence_set): New.
1745 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
1746 (value_components_used): Remove, unused.
1747
1748 2002-06-09 Akim Demaille <akim@epita.fr>
1749
1750 Move symbols handling code out of the reader.
1751
1752 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
1753 (axiom): Move to...
1754 * src/symtab.h, src/symtab.c: here.
1755
1756 * src/gram.c (start_symbol): Remove: use startsymbol->number.
1757 * src/reader.c (startval): Rename as...
1758 * src/symtab.h, src/symtab.c (startsymbol): this.
1759 * src/reader.c: Adjust.
1760
1761 * src/reader.c (symbol_check_defined, symbol_make_alias)
1762 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
1763 (token_translations_init)
1764 Move to...
1765 * src/symtab.c: here.
1766 * src/reader.c (packsymbols): Move to...
1767 * src/symtab.h, src/symtab.c (symbols_pack): here.
1768 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
1769 argument.
1770
1771 2002-06-03 Akim Demaille <akim@epita.fr>
1772
1773 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
1774 then statements.
1775
1776 2002-06-03 Akim Demaille <akim@epita.fr>
1777
1778 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
1779 structs with non literals.
1780 * src/scan-skel.l: never-interactive.
1781 * src/conflicts.c (enum conflict_resolution_e): No trailing
1782 comma.
1783 * src/getargs.c (usage): Split long literal strings.
1784 Reported by Hans Aberg.
1785
1786 2002-05-28 Akim Demaille <akim@epita.fr>
1787
1788 * data/bison.c++: Use C++ ostreams.
1789 (cdebug_): New member.
1790
1791 2002-05-28 Akim Demaille <akim@epita.fr>
1792
1793 * src/output.c (output_skeleton): Be sure to allocate enough room
1794 for `/' _and_ for `\0' in full_skeleton.
1795
1796 2002-05-28 Akim Demaille <akim@epita.fr>
1797
1798 * data/bison.c++: Catch up with bison.simple:
1799 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1800 and Paul Eggert <eggert@twinsun.com>: `error' handing.
1801 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
1802 and popping traces.
1803
1804 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1805
1806 * src/output.c (output_skeleton): Put an explicit path in front of
1807 the skeleton file name, rather than relying on the -I directory,
1808 to partially alleviate effects of having a skeleton file lying around
1809 in the current directory.
1810
1811 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1812
1813 * src/conflicts.c (log_resolution): Correct typo:
1814 obstack_printf should be obstack_fgrow1.
1815
1816 2002-05-26 Akim Demaille <akim@epita.fr>
1817
1818 * src/state.h (state_t): `solved_conflicts' is a new member.
1819 * src/LR0.c (new_state): Set it to 0.
1820 * src/conflicts.h, src/conflicts.c (print_conflicts)
1821 (free_conflicts, solve_conflicts): Rename as...
1822 (conflicts_print, conflicts_free, conflicts_solve): these.
1823 Adjust callers.
1824 * src/conflicts.c (enum conflict_resolution_e)
1825 (solved_conflicts_obstack): New, used by...
1826 (log_resolution): this.
1827 Adjust to attach the conflict resolution to each state.
1828 Complete the description with the precedence/associativity
1829 information.
1830 (resolve_sr_conflict): Adjust.
1831 * src/print.c (print_state): Output its solved_conflicts.
1832 * tests/conflicts.at (Unresolved SR Conflicts)
1833 (Solved SR Conflicts): Exercise --report=all.
1834
1835 2002-05-26 Akim Demaille <akim@epita.fr>
1836
1837 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
1838 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
1839 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
1840 (token_number_t, item_number_as_token_number)
1841 (token_number_as_item_number, muscle_insert_token_number_table):
1842 Rename as...
1843 (symbol_number_t, item_number_as_symbol_number)
1844 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
1845 these, since it is more appropriate.
1846
1847 2002-05-26 Akim Demaille <akim@epita.fr>
1848
1849 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
1850 `Error:' lines.
1851 * data/bison.simple (yystos) [YYDEBUG]: New.
1852 (yyparse) [YYDEBUG]: Display the symbols which are popped during
1853 error recovery.
1854 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
1855
1856 2002-05-25 Akim Demaille <akim@epita.fr>
1857
1858 * doc/bison.texinfo (Debugging): Split into...
1859 (Tracing): this new section, its former contents, and...
1860 (Understanding): this new section.
1861 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
1862 by...
1863 (report_flag): this.
1864 Adjust all dependencies.
1865 (report_args, report_types, report_argmatch): New.
1866 (usage, getargs): Report/support -r, --report.
1867 * src/options.h
1868 (struct option_table_struct): Rename as..,
1869 (struct option_table_s): this.
1870 Rename the `set_flag' member to `flag' to match with getopt_long's
1871 struct.
1872 * src/options.c (option_table): Split verbose into an entry for
1873 %verbose, and another for --verbose.
1874 Support --report/-r, so remove -r from the obsolete --raw.
1875 * src/print.c: Attach full item sets and lookaheads reports to
1876 report_flag instead of trace_flag.
1877 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
1878
1879 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1880 and Paul Eggert <eggert@twinsun.com>
1881
1882 * data/bison.simple (yyparse): Correct error handling to conform to
1883 POSIX and yacc. Specifically, after syntax error is discovered,
1884 do not reduce further before shifting the error token.
1885 Clean up the code a bit by removing the labels yyerrdefault,
1886 yyerrhandle, yyerrpop.
1887 * NEWS: Document the above.
1888
1889 2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1890
1891 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
1892 type; it isn't always big enough, since it doesn't necessarily
1893 include non-terminals.
1894 (yytranslate): Expand definition of yy_token_number_type, so that
1895 the latter can be removed.
1896 (yy_token_number_type): Remove, only one use.
1897 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
1898 don't use TokenNumberType as element type.
1899
1900 * tests/regression.at: Modify expected output to agree with change
1901 to yyr1 and yytranslate.
1902
1903 2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
1904
1905 * src/reader.c (parse_action): Use copy_character instead of
1906 obstack_1grow.
1907
1908 2002-05-13 Akim Demaille <akim@epita.fr>
1909
1910 * tests/regression.at (Token definitions): Prototype yylex and
1911 yyerror.
1912
1913 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1914
1915 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
1916 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
1917 32-bit arithmetic.
1918 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
1919
1920 2002-05-07 Akim Demaille <akim@epita.fr>
1921
1922 * tests/synclines.at: Be sure to prototype yylex and yyerror to
1923 avoid GCC warnings.
1924
1925 2002-05-07 Akim Demaille <akim@epita.fr>
1926
1927 Kill GCC warnings.
1928
1929 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
1930 over the RHS of each rule.
1931 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
1932 * src/state.h (state_t): Member `nitems' is unsigned short.
1933 * src/LR0.c (get_state): Adjust.
1934 * src/reader.c (packgram): Likewise.
1935 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
1936 `Type'.
1937 (muscle_insert_int_table): Remove, unused.
1938 (prepare_rules): Remove `max'.
1939
1940 2002-05-06 Akim Demaille <akim@epita.fr>
1941
1942 * src/closure.c (print_firsts): Display of the symbol tags.
1943 (bitmatrix_print): Move to...
1944 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
1945 here.
1946 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
1947
1948 2002-05-06 Akim Demaille <akim@epita.fr>
1949
1950 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
1951 hash_do_for_each.
1952
1953 2002-05-06 Akim Demaille <akim@epita.fr>
1954
1955 * src/LR0.c (new_state, get_state): Instead of using the global
1956 `kernel_size' and `kernel_base', have two new arguments:
1957 `core_size' and `core'.
1958 Adjust callers.
1959
1960 2002-05-06 Akim Demaille <akim@epita.fr>
1961
1962 * src/reader.c (packgram): No longer end `ritem' with a 0
1963 sentinel: it is not used.
1964
1965 2002-05-05 Akim Demaille <akim@epita.fr>
1966
1967 New experimental feature: display the lookaheads in the report and
1968 graph.
1969
1970 * src/print (print_core): When --trace-flag, display the rules
1971 lookaheads.
1972 * src/print_graph.c (print_core): Likewise.
1973 Swap the arguments.
1974 Adjust caller.
1975
1976 2002-05-05 Akim Demaille <akim@epita.fr>
1977
1978 * tests/torture.at (Many lookaheads): New test.
1979
1980 2002-05-05 Akim Demaille <akim@epita.fr>
1981
1982 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
1983 (GENERATE_MUSCLE_INSERT_TABLE): this.
1984 (output_int_table, output_unsigned_int_table, output_short_table)
1985 (output_token_number_table, output_item_number_table): Replace with...
1986 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
1987 (muscle_insert_short_table, muscle_insert_token_number_table)
1988 (muscle_insert_item_number_table): these.
1989 Adjust all callers.
1990 (prepare_tokens): Don't free `translations', since...
1991 * src/reader.h, src/reader.c (grammar_free): do it.
1992 Move to...
1993 * src/gram.h, src/gram.c (grammar_free): here.
1994 * data/bison.simple, data/bison.c++: b4_token_number_max is now
1995 b4_translate_max.
1996
1997 2002-05-05 Akim Demaille <akim@epita.fr>
1998
1999 * src/output.c (output_unsigned_int_table): New.
2000 (prepare_rules): `i' is unsigned.
2001 `prhs', `rline', `r2' are unsigned int.
2002 Rename muscle `rhs_number_max' as `rhs_max'.
2003 Output muscles `prhs_max', `rline_max', and `r2_max'.
2004 Free rline and r1.
2005 * data/bison.simple, data/bison.c++: Adjust to use these muscles
2006 to compute types instead of constant types.
2007 * tests/regression.at (Web2c Actions): Adjust.
2008
2009 2002-05-04 Akim Demaille <akim@epita.fr>
2010
2011 * src/symtab.h (SALIAS, SUNDEF): Rename as...
2012 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
2013 Adjust dependencies.
2014 * src/output.c (token_definitions_output): Be sure not to output a
2015 `#define 'a'' when fed with `%token 'a' "a"'.
2016 * tests/regression.at (Token definitions): New.
2017
2018 2002-05-03 Paul Eggert <eggert@twinsun.com>
2019
2020 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
2021 for K&R C.
2022
2023 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
2024
2025 * Makefile.am (SUBDIRS): Remove intl.
2026 (EXTRA_DIST): Add config/config.rpath.
2027
2028 2002-05-03 Akim Demaille <akim@epita.fr>
2029
2030 * data/bison.simple (m4_if): Don't output empty enums.
2031 And actually, output valid enum definitions :(.
2032
2033 2002-05-03 Akim Demaille <akim@epita.fr>
2034
2035 * configure.bat: Remove, completely obsolete.
2036 * Makefile.am (EXTRA_DIST): Adjust.
2037 Don't distribute config.rpath...
2038 * config/Makefile.am (EXTRA_DIST): Do it.
2039
2040 2002-05-03 Akim Demaille <akim@epita.fr>
2041
2042 * configure.in (GETTEXT_VERSION): New.
2043 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
2044
2045 2002-05-03 Akim Demaille <akim@epita.fr>
2046
2047 * data/bison.simple (b4_token_enum): New.
2048 (b4_token_defines): Use it to output tokens both as #define and
2049 enums.
2050 Suggested by Paul Eggert.
2051 * src/output.c (token_definitions_output): Don't output spurious
2052 white spaces.
2053
2054 2002-05-03 Akim Demaille <akim@epita.fr>
2055
2056 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
2057
2058 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
2059
2060 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
2061 Update the stack class, give a try to deque as the default container.
2062
2063 2002-05-02 Akim Demaille <akim@epita.fr>
2064
2065 * data/bison.simple (yyparse): Do not implement @$ = @1.
2066 (YYLLOC_DEFAULT): Adjust to do it.
2067 * doc/bison.texinfo (Location Default Action): Fix.
2068
2069 2002-05-02 Akim Demaille <akim@epita.fr>
2070
2071 * src/reader.c (parse_braces): Merge into...
2072 (parse_action): this.
2073
2074 2002-05-02 Akim Demaille <akim@epita.fr>
2075
2076 * configure.in (ALL_LINGUAS): Remove.
2077 * po/LINGUAS, hr.po: New.
2078
2079 2002-05-02 Akim Demaille <akim@epita.fr>
2080
2081 Remove the so called hairy (semantic) parsers.
2082
2083 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
2084 * src/gram.h, src/gram.c (semantic_parser): Remove.
2085 (rule_t): Remove the guard and guard_line members.
2086 * src/lex.h (token_t): remove tok_guard.
2087 * src/options.c (option_table): Remove %guard and %semantic_parser
2088 support.
2089 * src/output.c, src/output.h (guards_output): Remove.
2090 (prepare): Adjust.
2091 (token_definitions_output): Don't output the `T'
2092 tokens (???).
2093 (output_skeleton): Don't output the guards.
2094 * src/files.c, src/files.c (attrsfile): Remove.
2095 * src/reader.c (symbol_list): Remove the guard and guard_line
2096 members.
2097 Adjust dependencies.
2098 (parse_guard): Remove.
2099 * data/bison.hairy: Remove.
2100 * doc/bison.texinfo (Environment Variables): Remove occurrences of
2101 BISON_HAIRY.
2102
2103 2002-05-02 Akim Demaille <akim@epita.fr>
2104
2105 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
2106 (parse_guard): Rename the formal argument `stack_offset' as
2107 `rule_length', which is more readable.
2108 Adjust callers.
2109 (copy_at, copy_dollar): Instead of outputting the hard coded
2110 values of $$, $n and so forth, output invocation to b4_lhs_value,
2111 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
2112 Note: this patch partially drops `semantic-parser' support: it
2113 always does `rule_length - n', where semantic parsers ought to
2114 always use `-n'.
2115 * data/bison.simple, data/bison.c++ (b4_lhs_value)
2116 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
2117
2118 2002-05-02 Akim Demaille <akim@epita.fr>
2119
2120 * configure.in (AC_INIT): Bump to 1.49b.
2121 (AM_INIT_AUTOMAKE): Short invocation.
2122
2123 2002-05-02 Akim Demaille <akim@epita.fr>
2124
2125 Version 1.49a.
2126
2127 2002-05-01 Akim Demaille <akim@epita.fr>
2128
2129 * src/skeleton.h: Remove.
2130
2131 2002-05-01 Akim Demaille <akim@epita.fr>
2132
2133 * src/skeleton.h: Fix the #endif.
2134 Reported by Magnus Fromreide.
2135
2136 2002-04-26 Paul Eggert <eggert@twinsun.com>
2137
2138 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
2139 Define if we define YYSTYPE and YYLTYPE, respectively.
2140 (YYCOPY): Fix [] quoting problem in the non-GCC case.
2141
2142 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
2143
2144 * src/scan-skel.l: Postprocess quadrigraphs.
2145
2146 * src/reader.c (copy_character): New function, used to output
2147 single characters while replacing `[' and `]' with quadrigraphs, to
2148 avoid troubles with M4 quotes.
2149 (copy_comment): Output characters with copy_character.
2150 (read_additionnal_code): Likewise.
2151 (copy_string2): Likewise.
2152 (copy_definition): Likewise.
2153
2154 * tests/calc.at: Exercise M4 quoting.
2155
2156 2002-04-25 Akim Demaille <akim@epita.fr>
2157
2158 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
2159 between `!' and the command.
2160 Reported by Paul Eggert.
2161
2162 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
2163
2164 * tests/calc.at: Exercise prologue splitting.
2165
2166 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
2167 `b4_post_prologue' instead of `b4_prologue'.
2168
2169 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
2170 muscles.
2171 (output): Free pre_prologue_obstack and post_prologue_obstack.
2172 * src/files.h, src/files.c (attrs_obstack): Remove.
2173 (pre_prologue_obstack, post_prologue_obstack): New.
2174 * src/reader.c (copy_definition): Add a parameter to specify the
2175 obstack to fill, instead of using attrs_obstack unconditionally.
2176 (read_declarations): Pass pre_prologue_obstack to copy_definition if
2177 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
2178
2179 2002-04-23 Paul Eggert <eggert@twinsun.com>
2180
2181 * data/bison.simple: Remove unnecessary commentary and white
2182 space differences from 1_29-branch.
2183 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
2184
2185 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
2186 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
2187 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
2188 constructors or destructors.
2189
2190 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
2191
2192 2002-04-23 Akim Demaille <akim@epita.fr>
2193
2194 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
2195 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
2196 location with columns.
2197 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
2198 All reported by Paul Eggert.
2199
2200 2002-04-22 Akim Demaille <akim@epita.fr>
2201
2202 * src/reduce.c (dump_grammar): Move to...
2203 * src/gram.h, src/gram.c (grammar_dump): here.
2204 Be sure to separate long item numbers.
2205 Don't read the members of a rule's prec if its nil.
2206
2207 2002-04-22 Akim Demaille <akim@epita.fr>
2208
2209 * src/output.c (table_size, table_grow): New.
2210 (MAXTABLE): Remove, replace uses with table_size.
2211 (pack_vector): Instead of dying when the table is too big, grow it.
2212
2213 2002-04-22 Akim Demaille <akim@epita.fr>
2214
2215 * data/bison.simple (yyr1): Its type is that of a token number.
2216 * data/bison.c++ (r1_): Likewise.
2217 * tests/regression.at (Web2c Actions): Adjust.
2218
2219 2002-04-22 Akim Demaille <akim@epita.fr>
2220
2221 * src/reader.c (token_translations_init): 256 is now the default
2222 value for the error token, i.e., it will be assigned another
2223 number if the user assigned 256 to one of her tokens.
2224 (reader): Don't force 256 to error.
2225 * doc/bison.texinfo (Symbols): Adjust.
2226 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
2227 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
2228 etc. instead of 10, 20, 30 (which was used to `jump' over error
2229 (256) and undefined (2)).
2230
2231 2002-04-22 Akim Demaille <akim@epita.fr>
2232
2233 Propagate more token_number_t.
2234
2235 * src/gram.h (token_number_as_item_number)
2236 (item_number_as_token_number): New.
2237 * src/output.c (GENERATE_OUTPUT_TABLE): New.
2238 Use it to create output_item_number_table and
2239 output_token_number_table.
2240 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
2241 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
2242 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
2243 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
2244
2245 2002-04-22 Akim Demaille <akim@epita.fr>
2246
2247 * src/output.h, src/output.c (get_lines_number): Remove.
2248
2249 2002-04-19 Akim Demaille <akim@epita.fr>
2250
2251 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
2252 as Lex/Flex'.
2253 (Debugging): More details about enabling the debugging features.
2254 (Table of Symbols): Describe $$, $n, @$, and @n.
2255 Suggested by Tim Josling.
2256
2257 2002-04-19 Akim Demaille <akim@epita.fr>
2258
2259 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
2260
2261 2002-04-10 Akim Demaille <akim@epita.fr>
2262
2263 * src/system.h: Rely on HAVE_LIMITS_H.
2264 Suggested by Paul Eggert.
2265
2266 2002-04-09 Akim Demaille <akim@epita.fr>
2267
2268 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
2269 full stderr, and strip it according to the bison options, instead
2270 of composing the error message from different bits.
2271 This makes it easier to check for several error messages.
2272 Adjust all the invocations.
2273 Add an invocation exercising the error token.
2274 Add an invocation demonstrating a stupid error message.
2275 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
2276 Adjust the tests.
2277 Error message are for stderr, not stdout.
2278
2279 2002-04-09 Akim Demaille <akim@epita.fr>
2280
2281 * src/gram.h, src/gram.c (error_token_number): Remove, use
2282 errtoken->number.
2283 * src/reader.c (reader): Don't specify the user token number (2)
2284 for $undefined, as it uselessly prevents using it.
2285 * src/gram.h (token_number_t): Move to...
2286 * src/symtab.h: here.
2287 (state_t.number): Is a token_number_t.
2288 * src/print.c, src/reader.c: Use undeftoken->number instead of
2289 hard coded 2.
2290 (Even though this 2 is not the same as above: the number of the
2291 undeftoken remains being 2, it is its user token number which
2292 might not be 2).
2293 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
2294 `user_token_number_max'.
2295 Output `undef_token_number'.
2296 * data/bison.simple, data/bison.c++: Use them.
2297 Be sure to map invalid yylex return values to
2298 `undef_token_number'. This saves us from gratuitous SEGV.
2299
2300 * tests/conflicts.at (Solved SR Conflicts)
2301 (Unresolved SR Conflicts): Adjust.
2302 * tests/regression.at (Web2c Actions): Adjust.
2303
2304 2002-04-08 Akim Demaille <akim@epita.fr>
2305
2306 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
2307 Adding #line.
2308 Remove the duplicate `typedefs'.
2309 (RhsNumberType): Fix the declaration and various other typos.
2310 Use __ofile__.
2311 * data/bison.simple: Use __ofile__.
2312 * src/scan-skel.l: Handle __ofile__.
2313
2314 2002-04-08 Akim Demaille <akim@epita.fr>
2315
2316 * src/gram.h (item_number_t): New, the type of item numbers in
2317 RITEM. Note that it must be able to code symbol numbers as
2318 positive number, and the negation of rule numbers as negative
2319 numbers.
2320 Adjust all dependencies (pretty many).
2321 * src/reduce.c (rule): Remove this `short *' pointer: use
2322 item_number_t.
2323 * src/system.h (MINSHORT, MAXSHORT): Remove.
2324 Include `limits.h'.
2325 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
2326 (shortcpy): Remove.
2327 (MAXTABLE): Move to...
2328 * src/output.c (MAXTABLE): here.
2329 (prepare_rules): Use output_int_table to output rhs.
2330 * data/bison.simple, data/bison.c++: Adjust.
2331 * tests/torture.at (Big triangle): Move the limit from 254 to
2332 500.
2333 * tests/regression.at (Web2c Actions): Ajust.
2334
2335 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
2336 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
2337 passes, but produces negative #line number, once fixed, GCC is
2338 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
2339 C), it passes.
2340 * src/state.h (state_h): Code input lines on ints, not shorts.
2341
2342 2002-04-08 Akim Demaille <akim@epita.fr>
2343
2344 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
2345 and then the grammar.
2346
2347 2002-04-08 Akim Demaille <akim@epita.fr>
2348
2349 * src/system.h: No longer using strndup.
2350
2351 2002-04-07 Akim Demaille <akim@epita.fr>
2352
2353 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
2354 * src/output.c (output_table_data): Return the longest number.
2355 (prepare_tokens): Output `token_number_max').
2356 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
2357 New.
2358 Use them to define yy_token_number_type/TokenNumberType.
2359 Use this type for yytranslate.
2360 * tests/torture.at (Big triangle): Push the limit from 124 to
2361 253.
2362 * tests/regression.at (Web2c Actions): Adjust.
2363
2364 2002-04-07 Akim Demaille <akim@epita.fr>
2365
2366 * tests/torture.at (Big triangle): New.
2367 (GNU AWK Grammar, GNU Cim Grammar): Move to...
2368 * tests/existing.at: here.
2369
2370 2002-04-07 Akim Demaille <akim@epita.fr>
2371
2372 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
2373 nritems.
2374 Adjust dependencies.
2375
2376 2002-04-07 Akim Demaille <akim@epita.fr>
2377
2378 * src/reader.c: Normalize increments to prefix form.
2379
2380 2002-04-07 Akim Demaille <akim@epita.fr>
2381
2382 * src/reader.c, symtab.c: Remove debugging code.
2383
2384 2002-04-07 Akim Demaille <akim@epita.fr>
2385
2386 Rename all the `bucket's as `symbol_t'.
2387
2388 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
2389 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
2390 * src/symtab.c, src/symtab.h (bucket): Rename as...
2391 (symbol_t): this.
2392 (symbol_list_new, bucket_check_defined, bucket_make_alias)
2393 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
2394 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
2395 (buckets_new, buckets_free, buckets_do): Rename as...
2396 (symbol_list_new, symbol_check_defined, symbol_make_alias)
2397 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
2398 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
2399 (symbols_new, symbols_free, symbols_do): these.
2400
2401 2002-04-07 Akim Demaille <akim@epita.fr>
2402
2403 Use lib/hash for the symbol table.
2404
2405 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
2406 EOF.
2407 * src/lex.c (lex): Set the `number' member of new terminals.
2408 * src/reader.c (bucket_check_defined, bucket_make_alias)
2409 (bucket_check_alias_consistence, bucket_translation): New.
2410 (reader, grammar_free, readgram, token_translations_init)
2411 (packsymbols): Adjust.
2412 (reader): Number the predefined tokens.
2413 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
2414 for predefined tokens.
2415 * src/symtab.h (bucket): Remove all the hash table related
2416 members.
2417 * src/symtab.c (symtab): Replace by...
2418 (bucket_table): this.
2419 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
2420 (buckets_new, buckets_do): New.
2421
2422 2002-04-07 Akim Demaille <akim@epita.fr>
2423
2424 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
2425 (start_symbol, max_user_token_number, semantic_parser)
2426 (error_token_number): Initialize.
2427 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
2428 Initialize.
2429 (reader): Don't.
2430 (errtoken, eoftoken, undeftoken, axiom): Extern.
2431
2432 2002-04-07 Akim Demaille <akim@epita.fr>
2433
2434 * src/gram.h (rule_s): prec and precsym are now pointers
2435 to the bucket giving the priority/associativity.
2436 Member `associativity' removed: useless.
2437 * src/reduce.c, src/conflicts.c: Adjust.
2438
2439 2002-04-07 Akim Demaille <akim@epita.fr>
2440
2441 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
2442 Properly escape the symbols' TAG when outputting them.
2443
2444 2002-04-07 Akim Demaille <akim@epita.fr>
2445
2446 * src/lalr.h (LA): Is a bitsetv, not bitset*.
2447
2448 2002-04-07 Akim Demaille <akim@epita.fr>
2449
2450 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
2451 (LArule): this, which is an array to rule_t*.
2452 * src/print.c, src/conflicts.c: Adjust.
2453
2454 2002-04-07 Akim Demaille <akim@epita.fr>
2455
2456 * src/gram.h (rule_t): Rename `number' as `user_number'.
2457 `number' is a new member.
2458 Adjust dependencies.
2459 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
2460
2461 2002-04-07 Akim Demaille <akim@epita.fr>
2462
2463 As a result of the previous patch, it is no longer needed
2464 to reorder ritem itself.
2465
2466 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
2467
2468 2002-04-07 Akim Demaille <akim@epita.fr>
2469
2470 Be sure never to walk through RITEMS, but use only data related to
2471 the rules themselves. RITEMS should be banished.
2472
2473 * src/output.c (output_token_translations): Rename as...
2474 (prepare_tokens): this.
2475 In addition to `translate', prepare the muscles `tname' and
2476 `toknum', which were handled by...
2477 (output_rule_data): this.
2478 Remove, and move the remainder of its outputs into...
2479 (prepare_rules): this new routines, which also merges content from
2480 (output_gram): this.
2481 (prepare_rules): Be sure never to walk through RITEMS.
2482 (output_stos): Rename as...
2483 (prepare_stos): this.
2484 (output): Always invoke prepare_states, after all, just don't use it
2485 in the output if you don't need it.
2486
2487 2002-04-07 Akim Demaille <akim@epita.fr>
2488
2489 * src/LR0.c (new_state): Display `nstates' as the name of the
2490 newly created state.
2491 Adjust to initialize first_state and last_state if needed.
2492 Be sure to distinguish the initial from the final state.
2493 (new_states): Create the itemset of the initial state, and use
2494 new_state.
2495 * src/closure.c (closure): Now that the initial state has its
2496 items properly set, there is no need for a special case when
2497 creating `ruleset'.
2498
2499 As a result, now the rule 0, reducing to $axiom, is visible in the
2500 outputs. Adjust the test suite.
2501
2502 * tests/conflicts.at (Solved SR Conflicts)
2503 (Unresolved SR Conflicts): Adjust.
2504 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
2505 * tests/conflicts.at (S/R in initial): New.
2506
2507 2002-04-07 Akim Demaille <akim@epita.fr>
2508
2509 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
2510 the RHS of the rules.
2511 * src/output.c (output_gram): Likewise.
2512
2513 2002-04-07 Akim Demaille <akim@epita.fr>
2514
2515 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
2516 bucket.
2517 Adjust all dependencies.
2518 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
2519 `number' of the buckets too.
2520 * src/gram.h: Include `symtab.h'.
2521 (associativity): Move to...
2522 * src/symtab.h: here.
2523 No longer include `gram.h'.
2524
2525 2002-04-07 Akim Demaille <akim@epita.fr>
2526
2527 * src/gram.h, src/gram.c (rules_rhs_length): New.
2528 (ritem_longest_rhs): Use it.
2529 * src/gram.h (rule_t): `number' is a new member.
2530 * src/reader.c (packgram): Set it.
2531 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
2532 the end of `rules', and count them out of `nrules'.
2533 (reduce_output, dump_grammar): Adjust.
2534 * src/print.c (print_grammar): It is no longer needed to check for
2535 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
2536 * tests/reduce.at (Reduced Automaton): New test.
2537
2538 2002-04-07 Akim Demaille <akim@epita.fr>
2539
2540 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
2541 lacking `+ 1' to nrules, Bison reported as useless a token if it
2542 was used solely to set the precedence of the last rule...
2543
2544 2002-04-07 Akim Demaille <akim@epita.fr>
2545
2546 * data/bison.c++, data/bison.simple: Don't output the current file
2547 name in #line, to avoid useless diffs between two identical
2548 outputs under different names.
2549
2550 2002-04-07 Akim Demaille <akim@epita.fr>
2551
2552 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
2553 Normalize loops to using `< nrules + 1', not `<= nrules'.
2554
2555 2002-04-07 Akim Demaille <akim@epita.fr>
2556
2557 * TODO: Update.
2558
2559 2002-04-07 Akim Demaille <akim@epita.fr>
2560
2561 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
2562 bucket.value as bucket.number.
2563
2564 2002-04-07 Akim Demaille <akim@epita.fr>
2565
2566 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
2567 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
2568 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
2569 RHS, instead of being an index in RITEMS.
2570
2571 2002-04-04 Paul Eggert <eggert@twinsun.com>
2572
2573 * doc/bison.texinfo: Update copyright date.
2574 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
2575 (Symbols): Warn about running Bison in one character set,
2576 but compiling and/or running in an incompatible one.
2577 Warn about character code 256, too.
2578
2579 2002-04-03 Paul Eggert <eggert@twinsun.com>
2580
2581 * src/bison.data (YYSTACK_ALLOC): Depend on whether
2582 YYERROR_VERBOSE is nonzero, not whether it is defined.
2583
2584 Merge changes from bison-1_29-branch.
2585
2586 2002-03-20 Paul Eggert <eggert@twinsun.com>
2587
2588 Merge fixes from Debian bison_1.34-1.diff.
2589
2590 * configure.in (AC_PREREQ): 2.53.
2591
2592 2002-03-20 Akim Demaille <akim@epita.fr>
2593
2594 * src/conflicts.c (log_resolution): Argument `resolution' is const.
2595
2596 2002-03-19 Paul Eggert <eggert@twinsun.com>
2597
2598 * src/bison.simple (YYCOPY): New macro.
2599 (YYSTACK_RELOCATE): Use it.
2600 Remove Type arg; no longer needed. All callers changed.
2601 (yymemcpy): Remove; no longer needed.
2602
2603 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
2604 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2605
2606 2002-03-19 Akim Demaille <akim@epita.fr>
2607
2608 Test and fix the #line outputs.
2609
2610 * tests/atlocal.at (GCC): New.
2611 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
2612 (Prologue synch line, ,%union synch line, Postprologue synch line)
2613 (Action synch line, Epilogue synch line): New tests.
2614 * src/reader.c (parse_union_decl): Define the muscle stype_line.
2615 * data/bison.simple, data/bison.c++: Use it.
2616
2617 2002-03-19 Akim Demaille <akim@epita.fr>
2618
2619 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
2620 (Solved SR Conflicts, %expect not enough, %expect right)
2621 (%expect too much): Move to...
2622 * tests/conflicts.at: this new file.
2623
2624 2002-03-19 Akim Demaille <akim@epita.fr>
2625
2626 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
2627 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
2628 that we can move to enums for instance.
2629 * src/output.c (token_definitions_output): Output a list of
2630 `token-name, token-number' instead of the #define.
2631 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
2632
2633 2002-03-14 Akim Demaille <akim@epita.fr>
2634
2635 Use Gettext 0.11.1.
2636
2637 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
2638
2639 * data/bison.c++: Make the user able to add members to the generated
2640 parser by subclassing.
2641
2642 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
2643
2644 * src/reader.c (read_additionnal_code): `c' should be an integer, not
2645 a character.
2646 Reported by Nicolas Tisserand and Nicolas Burrus.
2647
2648 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
2649
2650 * src/reader.c: Warn about lacking semi-colons, do not complain.
2651
2652 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
2653
2654 * data/bison.c++: Remove a debug line.
2655
2656 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
2657
2658 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
2659 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
2660 provide a default implementation.
2661
2662 2002-03-04 Akim Demaille <akim@epita.fr>
2663
2664 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
2665 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
2666 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
2667 * tests/semantic.at (Parsing Guards): Similarly.
2668 * src/reader.at (readgram): Complain if the last rule is not ended
2669 with a semi-colon.
2670
2671 2002-03-04 Akim Demaille <akim@epita.fr>
2672
2673 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
2674 * src/closure.c: here.
2675 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
2676 RTC.
2677 * src/warshall.h, src/warshall.c: Remove.
2678 * tests/sets.at (Broken Closure): Adjust.
2679
2680 2002-03-04 Akim Demaille <akim@epita.fr>
2681
2682 * src/output.c (output_skeleton): tempdir is const.
2683 bytes_read is unused.
2684
2685 2002-03-04 Akim Demaille <akim@epita.fr>
2686
2687 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
2688 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
2689 Update.
2690 From Michael Hayes.
2691
2692 2002-03-04 Akim Demaille <akim@epita.fr>
2693
2694 * src/closure.c (closure): `r' is unused.
2695
2696 2002-03-04 Akim Demaille <akim@epita.fr>
2697
2698 * tests/sets.at (Broken Closure): Add the ending `;'.
2699 * src/reader.at (readgram): Complain if a rule is not ended with a
2700 semi-colon.
2701
2702 2002-03-04 Akim Demaille <akim@epita.fr>
2703
2704 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
2705 (count_sr_conflicts): Use bitset_count.
2706 * src/reduce.c (inaccessable_symbols): Ditto.
2707 (bits_size): Remove.
2708 * src/warshall.h, src/warshall.c: Convert to bitsetv.
2709
2710 2002-03-04 Akim Demaille <akim@epita.fr>
2711
2712 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
2713 * src/reduce.c: Remove the `bitset_zero's following the
2714 `bitset_create's, as now it is performed by the latter.
2715
2716 2002-03-04 Akim Demaille <akim@epita.fr>
2717
2718 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
2719 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
2720 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
2721 latest sources from Michael.
2722
2723 2002-03-04 Akim Demaille <akim@epita.fr>
2724
2725 * src/output.c (output): Don't free the grammar.
2726 * src/reader.c (grammar_free): New.
2727 * src/main.c (main): Call it and don't free symtab here.
2728
2729 2002-03-04 Akim Demaille <akim@epita.fr>
2730
2731 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
2732 before returning.
2733 Reported by Benoit Perrot.
2734
2735 2002-03-04 Akim Demaille <akim@epita.fr>
2736
2737 Use bitset operations when possible, not loops over bits.
2738
2739 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
2740 bitset_or.
2741 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
2742 * src/reduce.c (useless_nonterminals): Formatting changes.
2743 * src/warshall.c (TC): Use bitset_or.
2744
2745 2002-03-04 Akim Demaille <akim@epita.fr>
2746
2747 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
2748 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
2749 Ditto.
2750
2751 2002-03-04 Akim Demaille <akim@epita.fr>
2752
2753 * src/lalr.c (F): Now a bitset*.
2754 Adjust all dependencies.
2755
2756 2002-03-04 Akim Demaille <akim@epita.fr>
2757
2758 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
2759 Adjust all dependencies.
2760
2761 2002-03-04 Akim Demaille <akim@epita.fr>
2762
2763 * src/L0.c, src/LR0.h (nstates): Be size_t.
2764 Adjust comparisons (signed vs unsigned).
2765 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
2766 bitset*.
2767 Adjust all dependencies.
2768
2769 2002-03-04 Akim Demaille <akim@epita.fr>
2770
2771 * src/closure.c (firsts): Now, also a bitset.
2772 Adjust all dependencies.
2773 (varsetsize): Remove, now unused.
2774 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
2775
2776 2002-03-04 Akim Demaille <akim@epita.fr>
2777
2778 * src/print.c: Convert to use bitset.h, not hand coded iterations
2779 over ints.
2780
2781 2002-03-04 Akim Demaille <akim@epita.fr>
2782
2783 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
2784
2785 2002-03-04 Akim Demaille <akim@epita.fr>
2786
2787 * src/closure.c (ruleset): Be a bitset.
2788 (rulesetsize): Remove.
2789
2790 2002-03-04 Akim Demaille <akim@epita.fr>
2791
2792 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
2793 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
2794 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
2795 * src/closure.c (fderives): Be an array of bitsets.
2796
2797 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
2798
2799 * data/bison.c++: Merge the two generated headers. Insert a copyright
2800 notice in each output file.
2801
2802 2002-02-28 Akim Demaille <akim@epita.fr>
2803
2804 * data/bison.c++: Copy the prologue of bison.simple to fetch
2805 useful M4 definitions, such as b4_header_guard.
2806
2807 2002-02-25 Akim Demaille <akim@epita.fr>
2808
2809 * src/getargs.c (version): Give the name of the authors, and use a
2810 translator friendly scheme for the bgr
2811 copyright notice.
2812
2813 2002-02-25 Akim Demaille <akim@epita.fr>
2814
2815 * src/output.c (header_output): Remove, now handled completely via
2816 M4.
2817
2818 2002-02-25 Akim Demaille <akim@epita.fr>
2819
2820 * m4/m4.m4: New, from CVS Autoconf.
2821 * configure.in: Invoke it.
2822 * src/output.c (output_skeleton): Use its result instead of the
2823 hard coded name.
2824
2825 2002-02-25 Akim Demaille <akim@epita.fr>
2826
2827 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
2828 Fileutils 4.1.5.
2829 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
2830 * src/output.c (output_skeleton): Use mkstemp to create a real
2831 temporary file.
2832 Move the filling of `skeleton' and its muscle to...
2833 (prepare): here.
2834 (output): Move the definition of the prologue muscle to...
2835 (prepare): here.
2836 * src/system.h (DEFAULT_TMPDIR): New.
2837
2838 2002-02-14 Paul Eggert <eggert@twinsun.com>
2839
2840 Remove the support for C++ namespace cleanliness; it was
2841 causing more problems than it was curing, since it didn't work
2842 properly on some nonstandard C++ compilers. This can wait
2843 for a proper C++ parser.
2844
2845 * NEWS: Document this.
2846 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
2847 of C++, as it's treated like C now.
2848 * src/bison.simple (YYSTD): Remove.
2849 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
2850 Treat C++ just like Standard C instead of trying to support
2851 namespace cleanliness.
2852
2853 2002-02-14 Akim Demaille <akim@epita.fr>
2854
2855 * tests/regression.at (else): Adjust to Andreas' change.
2856
2857 2002-02-14 Akim Demaille <akim@epita.fr>
2858
2859 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
2860
2861 2002-02-13 Andreas Schwab <schwab@suse.de>
2862
2863 * src/output.c (output_rule_data): Don't output NULL, it might
2864 not be defined yet.
2865
2866 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
2867
2868 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
2869 (Copyright notice): Update.
2870
2871 2002-02-11 Akim Demaille <akim@epita.fr>
2872
2873 * tests/regression.at (%nonassoc and eof): Don't include
2874 nonportable headers.
2875
2876 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
2877
2878 * data/bison.c++: Correct error recovery. Make the user able to
2879 initialize the starting location.
2880
2881 2002-02-07 Akim Demaille <akim@epita.fr>
2882
2883 * tests/input.at: New.
2884
2885 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
2886
2887 * data/bison.c++: Replace some direct m4 expansions by constants. Be
2888 more consistent when naming methods and variables. Put preprocessor
2889 directives around tables only needed for debugging.
2890
2891 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
2892
2893 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
2894 C++ parsers.
2895 (yy::b4_name::parse): Use print_.
2896
2897 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
2898
2899 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
2900
2901 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
2902
2903 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
2904 C++ parsers.
2905 (yy::b4_name::parse): Build verbose error messages, and use error_.
2906
2907 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
2908
2909 * data/bison.c++: Fix m4 quoting in comments.
2910
2911 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
2912
2913 * data/bison.c++: Adjust the parser code. Fix some muscles that were
2914 not expanded by m4.
2915
2916 2002-02-05 Akim Demaille <akim@epita.fr>
2917
2918 * data/bison.c++: Adjust to the M4 back end.
2919 More is certainly needed.
2920
2921 2002-02-05 Akim Demaille <akim@epita.fr>
2922
2923 Give a try to M4 as a back end.
2924
2925 * lib/readpipe.c: New, from wdiff.
2926 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
2927 BISON_HAIRY.
2928 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
2929 specific values. Now it is m4 that performs the lookup.
2930 * src/parse-skel.y: Remove.
2931 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
2932 * src/output.c (actions_output, guards_output)
2933 (token_definitions_output): No longer keeps track of the output
2934 line number, hence remove the second argument.
2935 (guards_output): Check against the guard member of a rule, not the
2936 action member.
2937 Adjust callers.
2938 (output_skeleton): Don't look for the skeleton location, let m4 do
2939 that.
2940 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
2941 file will be used.
2942 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
2943 (prepare): Given that for the time being changesyntax is not
2944 usable in M4, rename the muscles using `-' to `_'.
2945 Define `defines_flag', `output_parser_name' and `output_header_name'.
2946 * src/output.h (actions_output, guards_output)
2947 (token_definitions_output): Adjust prototypes.
2948 * src/scan-skel.l: Instead of scanning the skeletons, it now
2949 processes the output of m4: `__oline__' and `#output'.
2950 * data/bison.simple: Adjust to be used by M4(sugar).
2951 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
2952 to date.
2953 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
2954 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
2955 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
2956 shamelessly stolen from CVS Autoconf.
2957
2958 2002-02-05 Akim Demaille <akim@epita.fr>
2959
2960 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
2961 * configure.in: Check for the declarations of free and malloc.
2962 * src/muscle_tab.c: Adjust.
2963
2964 2002-02-05 Akim Demaille <akim@epita.fr>
2965
2966 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
2967 which have no values.
2968
2969 2002-02-05 Akim Demaille <akim@epita.fr>
2970
2971 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
2972 * data/: here.
2973
2974 2002-01-29 Paul Eggert <eggert@twinsun.com>
2975
2976 * src/bison.simple (YYSIZE_T): Do not define merely because
2977 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
2978 On some platforms, <alloca.h> does not declare YYSTD (size_t).
2979
2980 2002-01-27 Akim Demaille <akim@epita.fr>
2981
2982 Fix `%nonassoc and eof'.
2983
2984 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
2985 which were not properly copied! Replace
2986 memcpy (res->errs, src->errs, src->nerrs);
2987 with
2988 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
2989 !!!
2990 * tests/regression.at (%nonassoc and eof): Adjust to newest
2991 Autotest: `.' is not in the PATH.
2992
2993 2002-01-27 Akim Demaille <akim@epita.fr>
2994
2995 * tests/sets.at (AT_EXTRACT_SETS): New.
2996 (Nullable): Use it.
2997 (Firsts): New.
2998
2999 2002-01-26 Akim Demaille <akim@epita.fr>
3000
3001 * tests/actions.at, tests/calc.at, tests/headers.at,
3002 * tests/torture.at: Adjust to the newest Autotest which no longer
3003 forces `.' in the PATH.
3004
3005 2002-01-25 Akim Demaille <akim@epita.fr>
3006
3007 * tests/regression.at (%nonassoc and eof): New.
3008 Suggested by Robert Anisko.
3009
3010 2002-01-24 Akim Demaille <akim@epita.fr>
3011
3012 Bison dumps core when trying to complain about broken input files.
3013 Reported by Cris van Pelt.
3014
3015 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
3016 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
3017 into...
3018 (Invalid inputs): Strengthen: exercise parse_percent_token.
3019
3020 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
3021
3022 * src/Makefile.am: Add bison.c++.
3023 * src/bison.c++: New skeleton.
3024
3025 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
3026
3027 * po/it.po: New.
3028
3029 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
3030
3031 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
3032
3033 2002-01-20 Marc Autret <marc@gnu.org>
3034
3035 * src/files.c (compute_output_file_names): Fix
3036
3037 2002-01-20 Marc Autret <marc@gnu.org>
3038
3039 * tests/output.at: New test.
3040 * src/files.c (compute_base_names): Don't map extensions when
3041 the YACC flag is set, use defaults.
3042 Reported by Evgeny Stambulchik.
3043
3044 2002-01-20 Marc Autret <marc@gnu.org>
3045
3046 * src/system.h: Need to define __attribute__ away for non-GCC
3047 compilers as well (i.e. the vendor C compiler).
3048 Suggested by Albert Chin-A-Young.
3049
3050 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
3051
3052 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
3053 canonical definition.
3054 * src/system.h: Use the canonical definition for PARAMS (avoids
3055 a conflict with the macro from lib/hash.h).
3056
3057 2002-01-11 Akim Demaille <akim@epita.fr>
3058
3059 * configure.in: Use AC_FUNC_STRNLEN.
3060 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
3061
3062 2002-01-09 Akim Demaille <akim@epita.fr>
3063
3064 * src/files.c, src/files.h (output_infix): New.
3065 (tab_extension): Remove.
3066 (compute_base_names): Compute the former, drop the latter.
3067 * src/output.c (prepare): Insert the muscles `output-infix', and
3068 `output-suffix'.
3069 * src/parse-skel.y (string, string.1): New.
3070 (section.header): Use it.
3071 (section.yacc): Remove.
3072 (prefix): Remove too.
3073 * src/scan-skel.l: Adjust.
3074 * src/bison.simple, src/bison.hairy: Adjust.
3075
3076 2002-01-09 Akim Demaille <akim@epita.fr>
3077
3078 * configure.in (WERROR_CFLAGS): Compute it.
3079 * src/Makefile.am (CFLAGS): Pass it.
3080 * tests/atlocal.in (CFLAGS): Idem.
3081 * src/files.c: Fix a few warnings.
3082 (get_extension_index): Remove, unused.
3083
3084 2002-01-08 Akim Demaille <akim@epita.fr>
3085
3086 * src/getargs.c (AS_FILE_NAME): New.
3087 (getargs): Use it to convert DOSish file names.
3088 * src/files.c (base_name): Rename as full_base_name to avoid
3089 clashes with `base_name ()'.
3090 (filename_split): New.
3091 (compute_base_names): N-th rewrite, using filename_split.
3092
3093 2002-01-08 Akim Demaille <akim@epita.fr>
3094
3095 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
3096 New, stolen from the Fileutils 4.1.
3097 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
3098 * configure.in: Check for the presence of memrchr, and of its
3099 prototype.
3100
3101 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
3102
3103 * lib/hash.h (__P): Added definition for this macro.
3104 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
3105 BUILT_SOURCES, to ensure they are generated first.
3106 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
3107 %error-verbose to allow bootstrapping with bison 1.30x.
3108
3109 2002-01-06 Akim Demaille <akim@epita.fr>
3110
3111 * src/reader.c (parse_braces): Don't fetch the next char, the
3112 convention is to fetch on entry.
3113 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
3114 'switch' without a following semicolon.
3115 * tests/regression.at (braces parsing): New.
3116
3117 2002-01-06 Akim Demaille <akim@epita.fr>
3118
3119 Bison is dead wrong in its RR conflict reports.
3120
3121 * tests/torture.at (GNU Cim Grammar): New.
3122 * src/conflicts.c (count_rr_conflicts): Fix.
3123
3124 2002-01-06 Akim Demaille <akim@epita.fr>
3125
3126 Creating package.m4 from configure.ac causes too many problems.
3127
3128 * tests/Makefile.am (package.m4): Create it by hand,
3129 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
3130
3131 2002-01-06 Akim Demaille <akim@epita.fr>
3132
3133 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
3134 skeleton.h.
3135
3136 2002-01-04 Paul Eggert <eggert@twinsun.com>
3137
3138 * doc/bison.texinfo (Debugging):
3139 Remove YYSTDERR; it's no longer defined or used.
3140 Also, s/cstdio.h/cstdio/.
3141
3142 2002-01-03 Akim Demaille <akim@epita.fr>
3143
3144 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
3145
3146 2002-01-03 Akim Demaille <akim@epita.fr>
3147
3148 * src/parse-skel.y (process_skeleton): Don't bind the parser's
3149 tracing code to --trace, wait for a better --trace option, with
3150 args.
3151
3152 2002-01-03 Akim Demaille <akim@epita.fr>
3153
3154 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
3155 The ISO C++ standard is extremely clear about it: stderr is
3156 considered a macro, not a regular symbol (see table 94 `Header
3157 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
3158 Therefore std:: does not apply to it. It still does with fprintf.
3159 Also, s/cstdio.h/cstdio/.
3160
3161 2002-01-03 Akim Demaille <akim@epita.fr>
3162
3163 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
3164 for non system headers.
3165
3166 2002-01-02 Akim Demaille <akim@epita.fr>
3167
3168 Equip the skeleton chain with location tracking, runtime trace,
3169 pure parser and scanner.
3170
3171 * src/parse-skel.y: Request a pure parser, locations, and prefix
3172 renaming.
3173 (%union): Having several members with the same type does not help
3174 type mismatches, simplify.
3175 (YYPRINT, yyprint): New.
3176 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
3177 (skel_error): this.
3178 Handle locations.
3179 * src/scan-skel.l: Adjust to these changes.
3180 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
3181 (LOCATION_PRINT, skel_control_t): New.
3182
3183 2001-12-30 Akim Demaille <akim@epita.fr>
3184
3185 * src/parse-skel.y: Get rid of the shift/reduce conflict:
3186 replace `gb' with BLANKS.
3187 * src/scan-skel.l: Adjust.
3188
3189 2001-12-30 Akim Demaille <akim@epita.fr>
3190
3191 * src/system.h: We don't need nor want bcopy.
3192 Throw away MS-DOS crap: we don't need getpid.
3193 * configure.in: We don't need strndup. It was even causing
3194 problems: because Flex includes the headers *before* us,
3195 _GNU_SOURCE is not defined by config.h, and therefore strndup was
3196 not visible.
3197 * lib/xstrndup.c: New.
3198 * src/scan-skel.l: Use it.
3199 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
3200 * src/parse-skel.y: Use %directives instead of #defines.
3201
3202 2001-12-30 Akim Demaille <akim@epita.fr>
3203
3204 * src/skeleton.h: New.
3205 * src/output.c (output_parser, output_master_parser): Remove, dead
3206 code.
3207 * src/output.h (get_lines_number, actions_output, guards_output)
3208 (token_definitions_output): Prototype them.
3209 * src/parse-skel.y: Add the license notice.
3210 Include output.h and skeleton.h.
3211 (process_skeleton): Returns void, and takes a single parameter.
3212 * src/scan-skel.l: Add the license notice.
3213 Include skeleton.h.
3214 Don't use %option yylineno: it seems that then Flex imagines
3215 REJECT has been used, and therefore it won't reallocate its
3216 buffers (which makes no other sense to me than a bug). It results
3217 in warnings for `unused: yy_flex_realloc'.
3218
3219 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
3220
3221 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
3222 (MUSCLE_INSERT_PREFIX): ...to there.
3223 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
3224 (MUSCLE_INSERT_PREFIX): Move from here...
3225
3226 * src/bison.hairy: Add a section directive. Put braces around muscle
3227 names. This parser skeleton is still broken, but Bison should not
3228 choke on a bad muscle 'syntax'.
3229 * src/bison.simple: Add a section directive. Put braces around muscle
3230 names.
3231
3232 * src/files.h (strsuffix, stringappend): Add declarations.
3233 (tab_extension): Add declaration.
3234 (short_base_name): Add declaration.
3235
3236 * src/files.c (strsuffix, stringappend): No longer static. These
3237 functions are used in the skeleton parser.
3238 (tab_extension): New.
3239 (compute_base_names): Use the computations done in this function
3240 to guess if the generated parsers should have '.tab' in their
3241 names.
3242 (short_base_name): No longer static.
3243
3244 * src/output.c (output_skeleton): New.
3245 (output): Disable call to output_master_parser, and give a try to
3246 a new skeleton handling system.
3247 (guards_output, actions_output): No longer static.
3248 (token_definitions_output, get_lines_number): No longer static.
3249
3250 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
3251
3252 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
3253 parse-skel.y.
3254
3255 * src/parse-skel.y: New file.
3256 * src/scan-skel.l: New file.
3257
3258 2001-12-29 Akim Demaille <akim@epita.fr>
3259
3260 %name-prefix is broken.
3261
3262 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
3263 Adjust all dependencies.
3264 * tests/headers.at (export YYLTYPE): Strengthen this test: use
3265 %name-prefix.
3266
3267 Renaming yylval but not yylloc is not consistent. Now we do.
3268
3269 * src/bison.simple: Prefix yylloc if used.
3270 * doc/bison.texinfo (Decl Summary): Document that.
3271
3272 2001-12-29 Akim Demaille <akim@epita.fr>
3273
3274 * doc/bison.texinfo: Promote `%long-directive' over
3275 `%long_directive'.
3276 Remove all references to fixed-output-files, yacc is enough.
3277
3278 2001-12-29 Akim Demaille <akim@epita.fr>
3279
3280 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
3281 user prologue. These are defaults.
3282 * tests/actions.at (Mid-rule actions): Make sure the user can
3283 define YYDEBUG and YYERROR_VERBOSE.
3284
3285 2001-12-29 Akim Demaille <akim@epita.fr>
3286
3287 * src/output.c (header_output): Don't forget to export YYLTYPE and
3288 yylloc.
3289 * tests/headers.at (export YYLTYPE): New, make sure it does.
3290 * tests/regression.at (%union and --defines, Invalid CPP headers):
3291 Move to...
3292 * tests/headers.at: here.
3293
3294 2001-12-29 Akim Demaille <akim@epita.fr>
3295
3296 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
3297
3298 2001-12-29 Akim Demaille <akim@epita.fr>
3299
3300 * tests/actions.at (Mid-rule actions): Output on a single line
3301 instead of several.
3302
3303 2001-12-29 Akim Demaille <akim@epita.fr>
3304
3305 * doc/bison.texinfo: Formatting changes.
3306
3307 2001-12-29 Akim Demaille <akim@epita.fr>
3308
3309 Don't store the token defs in a muscle, just be ready to output it
3310 on command. Now possible via `symbols'. Fixes a memory leak.
3311
3312 * src/output.c (token_definitions_output): New.
3313 (output_parser, header_output): Use it.
3314 * src/reader.c (symbols_save): Remove.
3315
3316 2001-12-29 Akim Demaille <akim@epita.fr>
3317
3318 * src/bison.simple: Do not provide a default for YYSTYPE and
3319 YYLTYPE before the user's prologue. Otherwise it's hardly... a
3320 default.
3321
3322 2001-12-29 Akim Demaille <akim@epita.fr>
3323
3324 Mid-rule actions are simply... ignored!
3325
3326 * src/reader.c (readgram): Be sure to attach mid-rule actions to
3327 the empty-rule associated to the dummy symbol, not to the host
3328 rule.
3329 * tests/actions.at (Mid-rule actions): New.
3330
3331 2001-12-29 Akim Demaille <akim@epita.fr>
3332
3333 Memory leak.
3334
3335 * src/reader.c (reader): Free grammar.
3336
3337 2001-12-29 Akim Demaille <akim@epita.fr>
3338
3339 Memory leak.
3340
3341 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
3342 since it allocates it for each state, although only one is needed.
3343 (allocate_storage): Do it here.
3344
3345 2001-12-29 Akim Demaille <akim@epita.fr>
3346
3347 * src/options.h, src/options.c (create_long_option_table): Rename
3348 as...
3349 (long_option_table_new): this, with a clearer prototype.
3350 (percent_table): Remove, unused,
3351 * src/getargs.c (getargs): Adjust.
3352
3353 2001-12-29 Akim Demaille <akim@epita.fr>
3354
3355 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
3356 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
3357 as states.
3358
3359 2001-12-29 Akim Demaille <akim@epita.fr>
3360
3361 * src/lalr.c (build_relations): Rename `states' as `states1'.
3362 Sorry, I don't understand exactly what it is, no better name...
3363
3364 2001-12-29 Akim Demaille <akim@epita.fr>
3365
3366 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
3367 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
3368 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
3369 as rules.
3370
3371 2001-12-29 Akim Demaille <akim@epita.fr>
3372
3373 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
3374 ago.
3375
3376 2001-12-29 Akim Demaille <akim@epita.fr>
3377
3378 * src/reader.c, src/reader.h (user_toknums): Remove.
3379 Adjust all users to use symbols[i]->user_token_number.
3380
3381 2001-12-29 Akim Demaille <akim@epita.fr>
3382
3383 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
3384 Adjust all users to use symbols[i]->prec or ->assoc.
3385
3386 2001-12-29 Akim Demaille <akim@epita.fr>
3387
3388 * src/reader.c, src/reader.h (tags): Remove.
3389 Adjust all users to use symbols[i]->tag.
3390
3391 2001-12-29 Akim Demaille <akim@epita.fr>
3392
3393 * src/gram.h, src/gram.c (symbols): New, similar to state_table
3394 and rule_table.
3395 * src/reader.c (packsymbols): Fill this table.
3396 Drop sprec.
3397 * src/conflicts.c (resolve_sr_conflict): Adjust.
3398 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
3399 single table.
3400 Use symbols[i]->tag instead of tags[i].
3401
3402 2001-12-29 Akim Demaille <akim@epita.fr>
3403
3404 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
3405 In addition, put a comment in there, to replace...
3406 * tests/regression.at (%union and C comments): Remove.
3407
3408 2001-12-29 Akim Demaille <akim@epita.fr>
3409
3410 * tests/regression.at (Web2c Actions): Blindly move the actual
3411 output as expected output. The contents *seem* right to me, but I
3412 can't pretend reading perfectly parser tables... Nonetheless, all
3413 the other tests pass correctly, the table look OK, even though the
3414 presence of `$axiom' is to be noted: AFAICS it is useless (but
3415 harmless).
3416
3417 2001-12-29 Akim Demaille <akim@epita.fr>
3418
3419 * src/reader.c (readgram): Don't add the rule 0 if there were no
3420 rules read. In other words, add it _after_ having performed
3421 grammar sanity checks.
3422 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
3423
3424 2001-12-29 Akim Demaille <akim@epita.fr>
3425
3426 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
3427 visible, and some states have now a different number.
3428
3429 2001-12-29 Akim Demaille <akim@epita.fr>
3430
3431 * src/reader.c (readgram): Bind the initial rule's lineno to that
3432 of the first rule.
3433 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
3434 (Solved SR Conflicts): Adjust rule 0's line number.
3435
3436 2001-12-29 Akim Demaille <akim@epita.fr>
3437
3438 Fix the `GAWK Grammar' failure.
3439
3440 * src/LR0.c (final_state): Initialize to -1 so that we do compute
3441 the reductions of the first state which was mistakenly confused
3442 with the final state because precisely final_state was initialized
3443 to 0.
3444 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
3445 now noticed by Bison.
3446 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
3447 have a reduction on $default.
3448
3449 2001-12-29 Akim Demaille <akim@epita.fr>
3450
3451 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
3452 rule line numbers.
3453 * src/closure.c (print_closure): Likewise.
3454 * src/derives.c (print_derives): Likewise.
3455 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
3456 now.
3457
3458 2001-12-29 Akim Demaille <akim@epita.fr>
3459
3460 * src/lalr.c (lookaheads_print): New.
3461 (lalr): Call it when --trace-flag.
3462 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
3463 are dumped.
3464
3465 2001-12-29 Akim Demaille <akim@epita.fr>
3466
3467 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
3468 when walking through ritem, even via rule->rhs.
3469 * src/reduce.c (dump_grammar, useful_production, reduce_output)
3470 (useful_production, useless_nonterminals): Likewise.
3471 (reduce_grammar_tables): Likewise, plus update nritems.
3472 * src/nullable.c (set_nullable): Likewise.
3473 * src/lalr.c (build_relations): Likewise.
3474 * tests/sets.at (Nullable): Adjust.
3475 Fortunately, now, the $axiom is no longer nullable.
3476
3477 2001-12-29 Akim Demaille <akim@epita.fr>
3478
3479 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
3480 the 0-sentinel.
3481 * src/gram.c (ritem_longest_rhs): Likewise.
3482 * src/reduce.c (nonterminals_reduce): Likewise.
3483 * src/print_graph.c (print_graph): Likewise.
3484 * src/output.c (output_rule_data): Likewise.
3485 * src/nullable.c (set_nullable): Likewise.
3486
3487 2001-12-29 Akim Demaille <akim@epita.fr>
3488
3489 * src/output.c: Comment changes.
3490
3491 2001-12-27 Paul Eggert <eggert@twinsun.com>
3492
3493 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
3494 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
3495 Sparc, as they were causing more porting problems than the
3496 (minor) performance improvement was worth.
3497
3498 Also, catch up with 1.31's YYSTD.
3499
3500 2001-12-27 Akim Demaille <akim@epita.fr>
3501
3502 * src/output.c (output_gram): Rely on nritems, not the
3503 0-sentinel. See below.
3504 Use -1 as separator, not 0.
3505 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
3506 Rely on -1 as separator in yyrhs, instead of 0.
3507 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
3508 twice `Now at end of input', therefore there are two lines less to
3509 expect.
3510
3511 2001-12-27 Akim Demaille <akim@epita.fr>
3512
3513 * tests/regression.at (Unresolved SR Conflicts):
3514 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
3515 below.
3516
3517 2001-12-27 Akim Demaille <akim@epita.fr>
3518
3519 * src/LR0.c (new_state): Recognize the final state by the fact it
3520 is reached by eoftoken.
3521 (insert_start_shifting_state, insert_eof_shifting_state)
3522 (insert_accepting_state, augment_automaton): Remove, since now
3523 these states are automatically computed from the initial state.
3524 (generate_states): Adjust.
3525 * src/print.c: When reporting a rule number to the user, substract
3526 1, so that the axiom rule is rule 0, and the first user rule is 1.
3527 * src/reduce.c: Likewise.
3528 * src/print_graph.c (print_core): For the time being, just as for
3529 the report, depend upon --trace-flags to dump the full set of
3530 items.
3531 * src/reader.c (readgram): Once the grammar read, insert the rule
3532 0: `$axiom: START-SYMBOL $'.
3533 * tests/set.at: Adjust: rule 0 is now displayed, and since the
3534 number of the states has changed (the final state is no longer
3535 necessarily the last), catch up.
3536
3537 2001-12-27 Akim Demaille <akim@epita.fr>
3538
3539 Try to make the use of the eoftoken valid. Given that its value
3540 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
3541 is used instead of > 0 where appropriate, (ii), depend upon nritems
3542 instead of the 0-sentinel.
3543
3544 * src/gram.h, src/gram.c (nritems): New.
3545 Expected to be duplication of nitems, but for the time being...
3546 * src/reader.c (packgram): Assert nritems and nitems are equal.
3547 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
3548 * src/closure.c (print_closure, print_fderives): Likewise.
3549 * src/gram.c (ritem_print): Likewise.
3550 * src/print.c (print_core, print_grammar): Likewise.
3551 * src/print_graph.c: Likewise.
3552
3553 2001-12-27 Akim Demaille <akim@epita.fr>
3554
3555 * src/main.c (main): If there are complains after grammar
3556 reductions, then output the report anyway if requested, then die.
3557 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
3558 * src/reader.c (eoftoken): New.
3559 (parse_token_decl): If the token being defined has value `0', it
3560 is the eoftoken.
3561 (packsymbols): No longer hack `tags' to insert `$' by hand.
3562 Be sure to preserve the value of the eoftoken.
3563 (reader): Make sure eoftoken is defined.
3564 Initialize nsyms to 0: now eoftoken is created just like the others.
3565 * src/print.c (print_grammar): Don't special case the eof token.
3566 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
3567 lie anyway, albeit pleasant.
3568 * tests/calc.at: Exercise error messages with eoftoken.
3569 Change the grammar so that empty input is invalid.
3570 Adjust expectations.
3571 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
3572
3573 2001-12-27 Akim Demaille <akim@epita.fr>
3574
3575 * configure.in: Check the protos of strchr ans strspn.
3576 Replace strchr if needed.
3577 * src/system.h: Provide the protos of strchr, strspn and memchr if
3578 missing.
3579 * lib/strchr.c: New.
3580 * src/reader.c (symbols_save): Use strchr.
3581
3582 2001-12-27 Akim Demaille <akim@epita.fr>
3583
3584 * src/print.c, src/print_graph.c (escape): New.
3585 Use it to quote the TAGS outputs.
3586 * src/print_graph.c (print_state): Now errors are in red, and
3587 reductions in green.
3588 Prefer high to wide: output the state number on a line of its own.
3589
3590 2001-12-27 Akim Demaille <akim@epita.fr>
3591
3592 * src/state.h, src/state.c (reductions_new): New.
3593 * src/LR0.c (set_state_table): Let all the states have a
3594 `reductions', even if reduced to 0.
3595 (save_reductions): Adjust.
3596 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
3597 * src/print.c (print_reductions, print_actions): Adjust.
3598 * src/output.c (action_row): Adjust.
3599
3600 2001-12-27 Akim Demaille <akim@epita.fr>
3601
3602 * src/state.h, src/state.c (errs_new, errs_dup): New.
3603 * src/LR0.c (set_state_table): Let all the states have an errs,
3604 even if reduced to 0.
3605 * src/print.c (print_errs, print_reductions): Adjust.
3606 * src/output.c (output_actions, action_row): Adjust.
3607 * src/conflicts.c (resolve_sr_conflict): Adjust.
3608
3609 2001-12-27 Akim Demaille <akim@epita.fr>
3610
3611 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
3612
3613 2001-12-27 Akim Demaille <akim@epita.fr>
3614
3615 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
3616 * src/print.c: here.
3617 (lookaheadset, shiftset): New, used as additional storage by
3618 print_reductions.
3619 (print_results): Adjust.
3620 (print_shifts, print_gotos, print_errs): New, extracted from...
3621 (print_actions): here.
3622 * src/print_graph.c (print_actions): Remove dead code.
3623
3624 2001-12-27 Akim Demaille <akim@epita.fr>
3625
3626 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
3627 `$n' and `@n'.
3628
3629 2001-12-27 Akim Demaille <akim@epita.fr>
3630
3631 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
3632 (build_relations): Adjust.
3633
3634 2001-12-27 Akim Demaille <akim@epita.fr>
3635
3636 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
3637 duplication.
3638
3639 2001-12-27 Akim Demaille <akim@epita.fr>
3640
3641 * src/reader.c (packgram): Catch nitems overflows.
3642
3643 2001-12-27 Akim Demaille <akim@epita.fr>
3644
3645 * src/files.c, src/files.h (guard_obstack): Remove.
3646 * src/output.c (output): Adjust.
3647 * src/reader.c (parse_braces): New, factoring...
3648 (copy_action, copy_guard): these two which are renamed as...
3649 (parse_action, parse_guard): these.
3650 As a voluntary consequence, using braces around guards is now
3651 mandatory.
3652
3653 2001-12-27 Akim Demaille <akim@epita.fr>
3654
3655 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
3656 * src/reader.c (symbol_list): `guard' and `guard_line' are new
3657 members.
3658 (symbol_list_new): Adjust.
3659 (copy_action): action_line is the first line, not the last.
3660 (copy_guard): Just as for actions, store the `action' only, not
3661 the switch/case/break flesh.
3662 Don't parse the user action that might follow the guard, let...
3663 (readgram): do it, i.e., now, there can be an action after a
3664 guard.
3665 In other words the guard is just explicitly optional.
3666 (packgram): Adjust.
3667 * src/output.c (guards_output): New.
3668 (output_parser): Call it when needed.
3669 (output): Also free the guard and attrs obstacks.
3670 * src/files.c, src/files.h (obstack_save): Remove.
3671 (output_files): Remove.
3672 As a result, if one needs the former `.act' file, using an
3673 appropriate skeleton which requires actions and guards is now
3674 required.
3675 * src/main.c (main): Adjust.
3676 * tests/semantic.at: New.
3677 * tests/regression.at: Use `input.y' as input file name.
3678 Avoid 8+3 problems by requiring input.c when the test needs the
3679 parser.
3680
3681 2001-12-27 Akim Demaille <akim@epita.fr>
3682
3683 * src/reader.c (symbol_list_new): Be sure to initialize all the
3684 fields.
3685
3686 2001-12-27 Akim Demaille <akim@epita.fr>
3687
3688 All the hacks using a final pseudo state are now useless.
3689
3690 * src/LR0.c (set_state_table): state_table holds exactly nstates.
3691 * src/lalr.c (nLA): New.
3692 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
3693 instead of lookaheadsp from the pseudo state (nstate + 1).
3694
3695 2001-12-27 Akim Demaille <akim@epita.fr>
3696
3697 * src/output.c (action_row, token_actions): Use a state_t instead
3698 of a integer, and nlookaheads instead of the following state's
3699 lookaheadsp.
3700
3701 2001-12-27 Akim Demaille <akim@epita.fr>
3702
3703 * src/conflicts.c (log_resolution, flush_shift)
3704 (resolve_sr_conflict, set_conflicts, solve_conflicts)
3705 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
3706 (conflicts_print, print_reductions): Use a state_t instead of an
3707 integer when referring to a state.
3708 As much as possible, depend upon nlookaheads, instead of the
3709 `lookaheadsp' member of the following state (since lookaheads of
3710 successive states are successive, the difference between state n + 1
3711 and n served as the number of lookaheads for state n).
3712 * src/lalr.c (add_lookback_edge): Likewise.
3713 * src/print.c (print_core, print_actions, print_state)
3714 (print_results): Likewise.
3715 * src/print_graph.c (print_core, print_actions, print_state)
3716 (print_graph): Likewise.
3717 * src/conflicts.h: Adjust.
3718
3719 2001-12-27 Akim Demaille <akim@epita.fr>
3720
3721 * src/bison.hairy: Formatting/comment changes.
3722 ANSIfy.
3723 Remove `register' indications.
3724 Add plenty of `static'.
3725
3726 2001-12-27 Akim Demaille <akim@epita.fr>
3727
3728 * src/output.c (prepare): Drop the muscle `ntbase' which
3729 duplicates ntokens.
3730 * src/bison.simple: Formatting/comment changes.
3731 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
3732 is an undocumented synonym.
3733
3734 2001-12-22 Akim Demaille <akim@epita.fr>
3735
3736 * src/output.c (output_table_data): Change the prototype to use
3737 `int' for array ranges: some invocations do pass an int, not a
3738 short.
3739 Reported by Wayne Green.
3740
3741 2001-12-22 Akim Demaille <akim@epita.fr>
3742
3743 Some actions of web2c.y are improperly triggered.
3744 Reported by Mike Castle.
3745
3746 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
3747 * tests/regression.at (Web2c): Rename as...
3748 (Web2c Report): this.
3749 (Web2c Actions): New.
3750
3751 2001-12-22 Akim Demaille <akim@epita.fr>
3752
3753 Reductions in web2c.y are improperly reported.
3754 Reported by Mike Castle.
3755
3756 * src/conflicts.c (print_reductions): Fix.
3757 * tests/regression.at (Web2c): New.
3758
3759 2001-12-18 Akim Demaille <akim@epita.fr>
3760
3761 Some host fail on `assert (!"foo")', which expands to
3762 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
3763 Reported by Nelson Beebee.
3764
3765 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
3766 `#define it_succeeded 0' and `assert (it_succeeded)'.
3767
3768 2001-12-17 Marc Autret <autret_m@epita.fr>
3769
3770 * src/bison.simple: Don't hard code the skeleton line and filename.
3771 * src/output.c (output_parser): Rename 'line' as 'output_line'.
3772 New line counter 'skeleton_line' (skeleton-line muscle).
3773
3774 2001-12-17 Paul Eggert <eggert@twinsun.com>
3775
3776 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
3777 YYDEBUG must be defined to a nonzero value.
3778
3779 * src/bison.simple (yytname): Do not assume that the user defines
3780 YYDEBUG to a properly parenthesized expression.
3781
3782 2001-12-17 Akim Demaille <akim@epita.fr>
3783
3784 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
3785 nlookaheads is a new member.
3786 Adjust all users.
3787 * src/lalr.h (nlookaheads): Remove this orphan declaration.
3788 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
3789 state.
3790
3791 2001-12-17 Akim Demaille <akim@epita.fr>
3792
3793 * src/files.h, src/files.c (open_files, close_files): Remove.
3794 * src/main.c (main): Don't open/close files, nor invoke lex_free,
3795 let...
3796 * src/reader.c (reader): Do it.
3797
3798 2001-12-17 Akim Demaille <akim@epita.fr>
3799
3800 * src/conflicts.c (print_reductions): Formatting changes.
3801
3802 2001-12-17 Akim Demaille <akim@epita.fr>
3803
3804 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
3805 (flush_reduce): New.
3806 (resolve_sr_conflict): Adjust.
3807
3808 2001-12-17 Akim Demaille <akim@epita.fr>
3809
3810 * src/output.c (output_obstack): Be static and rename as...
3811 (format_obstack): this, to avoid any confusion with files.c's
3812 output_obstack.
3813 * src/reader.h (muscle_obstack): Move to...
3814 * src/output.h: here, since it's defined in output.c.
3815
3816 2001-12-17 Akim Demaille <akim@epita.fr>
3817
3818 * src/output.c (action_row, save_column, default_goto)
3819 (sort_actions, matching_state, pack_vector): Better variable
3820 locality.
3821
3822 2001-12-17 Akim Demaille <akim@epita.fr>
3823
3824 * src/output.c: Various formatting changes.
3825
3826 2001-12-17 Akim Demaille <akim@epita.fr>
3827
3828 * src/files.c (output_files): Free the output_obstack.
3829 * src/main.c (main): Call print and print_graph conditionally.
3830 * src/print.c (print): Work unconditionally.
3831 * src/print_graph.c (print_graph): Work unconditionally.
3832 * src/conflicts.c (log_resolution): Output only if verbose_flag.
3833
3834 2001-12-16 Marc Autret <autret_m@epita.fr>
3835
3836 * src/output.c (actions_output): Fix. When we use %no-lines,
3837 there is one less line per action.
3838
3839 2001-12-16 Marc Autret <autret_m@epita.fr>
3840
3841 * src/bison.simple: Remove a useless #line directive.
3842 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
3843 * src/output.c (get_lines_number): New.
3844 (output_parser): Adjust, now takes care about the lines of a
3845 output muscles.
3846 Fix line numbering.
3847 (actions_output): Computes the number of lines taken by actions.
3848 (output_master_parser): Insert new skeleton which is the name of
3849 the output parser file name.
3850
3851 2001-12-15 Marc Autret <autret_m@epita.fr>
3852
3853 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
3854
3855 2001-12-15 Marc Autret <autret_m@epita.fr>
3856
3857 * src/output.c (output_gram): Keep track of the hairy one.
3858
3859 2001-12-15 Akim Demaille <akim@epita.fr>
3860
3861 Make `make distcheck' work.
3862
3863 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
3864 system.h which uses libgettext.h.
3865
3866 2001-12-15 Akim Demaille <akim@epita.fr>
3867
3868 * src/nullable.c (set_nullable): Useless rules must be skipped,
3869 otherwise, since we range over their symbols, we might look at a
3870 nonterminal which no longer ``exists'', i.e., it is not counted in
3871 `nvars', hence we overflow our arrays.
3872
3873 2001-12-15 Akim Demaille <akim@epita.fr>
3874
3875 The header can also be produced directly, without any obstack!
3876 Yahoo!
3877
3878 * src/files.c, src/files.h (defines_obstack): Remove.
3879 (compute_header_macro): Global.
3880 (defines_obstack_save): Remove.
3881 * src/reader.c (parse_union_decl): No longer output to
3882 defines_obstack: its content can be found in the `stype' muscle
3883 anyway.
3884 (output_token_translations): Merge into...
3885 (symbols_output): this.
3886 Rename as...
3887 (symbols_save): this.
3888 (reader): Adjust.
3889 * src/output.c (header_output): New.
3890 (output): Call it.
3891
3892 2001-12-15 Akim Demaille <akim@epita.fr>
3893
3894 * src/reader.c (parse_union_decl): Instead of handling two obstack
3895 simultaneously, use one to define the `stype' muscle, and use the
3896 value of the latter to fill defines_obstack.
3897 (copy_comment): Remove.
3898 (copy_comment2): Work for a single obstack.
3899 Rename as...
3900 (copy_comment): this.
3901
3902 2001-12-15 Akim Demaille <akim@epita.fr>
3903
3904 * src/lex.c, src/lex.h (xgetc): No longer static.
3905 * src/reader.c (parse_union_decl): Revamp.
3906
3907 2001-12-15 Akim Demaille <akim@epita.fr>
3908
3909 Still making progress in separating Bison into (i) input, (ii)
3910 process, (iii) output: now we can directly output the parser file
3911 without using table_obstack at all.
3912
3913 * src/files.c, src/files.h (table_obstack): Bye bye.
3914 (parser_file_name): New.
3915 * src/files.c (compute_output_file_names): Compute it.
3916 * src/output.c (actions_output, output_parser)
3917 (output_master_parser): To a file instead of an obstack.
3918
3919 2001-12-15 Akim Demaille <akim@epita.fr>
3920
3921 Attach actions to rules, instead of pre-outputting them to
3922 actions_obstack.
3923
3924 * src/gram.h (rule_t): action and action_line are new members.
3925 * src/reader.c (symbol_list): Likewise.
3926 (copy_action): Save the actions within the rule.
3927 (packgram): Save them in rule_table.
3928 * src/output.c (actions_output): New.
3929 (output_parser): Use it on `%%actions'.
3930 (output_rule_data): Don't free rule_table.
3931 (output): Do it.
3932 (prepare): Don't save the `action' muscle.
3933 * src/bison.simple: s/%%action/%%actions/.
3934
3935 2001-12-15 Akim Demaille <akim@epita.fr>
3936
3937 * src/reader.c (copy_action): When --yacc, don't append a `;'
3938 to the user action: let it fail if lacking.
3939 Suggested by Arnold Robbins and Tom Tromey.
3940
3941 2001-12-14 Akim Demaille <akim@epita.fr>
3942
3943 * src/lex.c (literalchar): Simply return the char you decoded, non
3944 longer mess around with obstacks and int pointers.
3945 Adjust all callers.
3946
3947 2001-12-14 Akim Demaille <akim@epita.fr>
3948
3949 * src/lex.c (literalchar): Don't escape the special characters,
3950 just decode them, and keep them as char (before, eol was output as
3951 the 2 char string `\n' etc.).
3952 * src/output.c (output_rule_data): Use quotearg to output the
3953 token strings.
3954
3955 2001-12-13 Paul Eggert <eggert@twinsun.com>
3956
3957 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
3958 Do not infringe on the global user namespace when using C++.
3959 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
3960 All uses of `fprintf' and `stderr' changed.
3961
3962 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
3963
3964 2001-12-13 Akim Demaille <akim@epita.fr>
3965
3966 The computation of nullable is broken: it doesn't handle empty
3967 RHS's properly.
3968
3969 * tests/torture.at (GNU AWK Grammar): New.
3970 * tests/sets.at (Nullable): New.
3971 * src/nullable.c (set_nullable): Instead of blindly looping over
3972 `ritems', loop over the rules, and then over their rhs's.
3973
3974 Work around Autotest bugs.
3975
3976 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
3977 frame, because Autotest understand lines starting with a `+' as
3978 traces from the shell. Then, they are not processed properly.
3979 Admittedly an Autotest bug, but we don't have time to wait for
3980 Autotest to catch up.
3981 * tests/regression.at (Broken Closure): Adjust to the new table
3982 frames.
3983 Move to...
3984 * tests/sets.at: here.
3985
3986 2001-12-13 Akim Demaille <akim@epita.fr>
3987
3988 * src/closure.c (closure): Use nrules instead of playing tricks
3989 with BITS_PER_WORD.
3990
3991 2001-12-13 Akim Demaille <akim@epita.fr>
3992
3993 * src/print.c (print_actions): Output the handling of `$' as the
3994 traces do: shifting the token EOF. Before EOF was treated as a
3995 nonterminal.
3996 * tests/regression.at: Adjust some tests.
3997 * src/print_graph.c (print_core): Complete the set of items via
3998 closure. The next-to-final and final states are still unsatisfying,
3999 but that's to be addressed elsewhere.
4000 No longer output the rule numbers, but do output the state number.
4001 A single loop for the shifts + gotos is enough, but picked a
4002 distinct color for each.
4003 (print_graph): Initialize and finalize closure.
4004
4005 2001-12-13 Akim Demaille <akim@epita.fr>
4006
4007 * src/reader.c (readgram): Remove dead code, an strip useless
4008 braces.
4009 (get_type): Remove, unused.
4010
4011 2001-12-12 Akim Demaille <akim@epita.fr>
4012
4013 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
4014 on that of lib/error.c.
4015
4016 2001-12-12 Akim Demaille <akim@epita.fr>
4017
4018 Some hosts don't like `/' in includes.
4019
4020 * src/system.h: Include libgettext.h without qualifying the path.
4021 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
4022 $(top_srcdir).
4023
4024 2001-12-11 Marc Autret <autret_m@epita.fr>
4025
4026 * src/output.c (output_parser): Remove useless muscle.
4027
4028 2001-12-11 Marc Autret <autret_m@epita.fr>
4029
4030 * src/bison.simple: Remove #line just before %%epilogue. It
4031 is now handled in ...
4032 * src/reader.c (read_additionnal_code): Add the output of a
4033 #line for the epilogue.
4034
4035 2001-12-10 Marc Autret <autret_m@epita.fr>
4036
4037 * src/reader.c (copy_definition): Re-use CPP-outed code which
4038 replace precedent remove.
4039 * src/bison.simple: Remove #line before %%prologue because
4040 %%input-line is wrong at this time.
4041
4042 2001-12-10 Marc Autret <autret_m@epita.fr>
4043
4044 * src/reader.c (symbols_output): Clean up.
4045 * src/output.c (output_gram, output): Clean up.
4046
4047 2001-12-10 Akim Demaille <akim@epita.fr>
4048
4049 * src/lalr.c (initialize_lookaheads): New. Extracted from...
4050 * src/LR0.c (set_state_table): here.
4051 * src/lalr.c (lalr): Call it.
4052
4053 2001-12-10 Akim Demaille <akim@epita.fr>
4054
4055 * src/state.h (shifts): Remove the `number' member: shifts are
4056 attached to state, hence no longer need to be labelled with a
4057 state number.
4058
4059 2001-12-10 Akim Demaille <akim@epita.fr>
4060
4061 Now that states have a complete set of members, the linked list of
4062 shifts is useless: just fill directly the state's shifts member.
4063
4064 * src/state.h (shifts): Remove the `next' member.
4065 * src/LR0.c (first_state, last_state): Remove.
4066 Adjust the callers.
4067 (augment_automaton): Don't look for the shifts that must be added
4068 a shift on EOF: it is those of the state we looked for! But now,
4069 since shifts are attached, it is no longer needed to looking
4070 merely by its id: its number.
4071
4072 2001-12-10 Akim Demaille <akim@epita.fr>
4073
4074 * src/LR0.c (augment_automaton): Better variable locality.
4075 Remove an impossible branch: if there is a state corresponding to
4076 the start symbol being shifted, then there is shift for the start
4077 symbol from the initial state.
4078
4079 2001-12-10 Akim Demaille <akim@epita.fr>
4080
4081 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
4082 only when appropriate: when insert_start_shifting_state' is not
4083 invoked.
4084 * tests/regression.at (Rule Line Numbers): Adjust.
4085
4086 2001-12-10 Akim Demaille <akim@epita.fr>
4087
4088 * src/LR0.c (augment_automaton): Now that all states have shifts,
4089 merge the two cases addition shifts to the initial state.
4090
4091 2001-12-10 Akim Demaille <akim@epita.fr>
4092
4093 * src/lalr.c (set_state_table): Move to...
4094 * src/LR0.c: here.
4095 * src/lalr.c (lalr): Don't call it...
4096 * src/LR0.c (generate_states): do it.
4097 * src/LR0.h (first_state): Remove, only the table is used.
4098
4099 2001-12-10 Akim Demaille <akim@epita.fr>
4100
4101 * src/LR0.h (first_shift, first_reduction): Remove.
4102 * src/lalr.c: Don't use first_shift: find shifts through the
4103 states.
4104
4105 2001-12-10 Akim Demaille <akim@epita.fr>
4106
4107 * src/LR0.c: Attach shifts to states as soon as they are
4108 computed.
4109 * src/lalr.c (set_state_table): Instead of assigning shifts to
4110 state, just assert that the mapping was properly done.
4111
4112 2001-12-10 Akim Demaille <akim@epita.fr>
4113
4114 * src/LR0.c (insert_start_shift): Rename as...
4115 (insert_start_shifting_state): this.
4116 (insert_eof_shifting_state, insert_accepting_state): New.
4117 (augment_automaton): Adjust.
4118 Better locality of the variables.
4119 When looking if the start_symbol is shifted from the initial
4120 state, using `while (... symbol != start_symbol ...)' sounds
4121 better than `while (... symbol < start_symbol ...)': If fail
4122 to see how the order between symbols could be relevant!
4123
4124 2001-12-10 Akim Demaille <akim@epita.fr>
4125
4126 * src/getargs.h: Don't declare `spec_name_prefix' and
4127 `spec_file_prefix', declared by src/files.h.
4128 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
4129 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
4130 * src/output.c (prepare): Adjust.
4131 * src/reader.c (symbols_output): Likewise.
4132 * src/vmsgetargs.c: Vaguely adjust, but who cares?
4133
4134 2001-12-10 Akim Demaille <akim@epita.fr>
4135
4136 * src/muscle_tab.c (muscle_init): NULL is a better default than
4137 `"0"'.
4138
4139 2001-12-10 Akim Demaille <akim@epita.fr>
4140
4141 * src/reader.c (reader): Calling symbols_output once is enough.
4142
4143 2001-12-10 Akim Demaille <akim@epita.fr>
4144
4145 Now that states have a complete set of members, the linked list of
4146 reductions is useless: just fill directly the state's reductions
4147 member.
4148
4149 * src/state.h (struct reductions): Remove member `number' and
4150 `next'.
4151 * src/LR0.c (first_reduction, last_reduction): Remove.
4152 (save_reductions): Don't link the new reductions, store them in
4153 this_state.
4154 * src/lalr.c (set_state_table): No need to attach reductions to
4155 states, it's already done.
4156 * src/output.c (output_actions): No longer free the shifts, then
4157 the reductions, then the states: free all the states and their
4158 members.
4159
4160 2001-12-10 Akim Demaille <akim@epita.fr>
4161
4162 * src/options.c (OPTN, DRTV, BOTH): New.
4163 (option_table): Use them.
4164
4165 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
4166 the job of system.h.
4167 * src/options.c: Don't include stdio.h and xalloc.h for the same
4168 reasons.
4169
4170 2001-12-10 Akim Demaille <akim@epita.fr>
4171
4172 * src/output.c (output, prepare): Make sure the values of the
4173 muscles `action' and `prologue' are 0-terminated.
4174
4175 2001-12-10 Akim Demaille <akim@epita.fr>
4176
4177 Clean up GCC warnings.
4178
4179 * src/reader.c (copy_action): `buf' is not used.
4180 (parse_skel_decl): Be static.
4181 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
4182 * src/options.h (create_long_option_table): Have a real prototype.
4183 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
4184 (hash_delete_at): Return const void *.
4185 Adjust casts to preserve the const.
4186
4187 2001-12-10 Akim Demaille <akim@epita.fr>
4188
4189 * configure.in: Require 2.52g.
4190 M4 is not needed, but AUTOM4TE is.
4191 * m4/m4.m4: Remove.
4192 * tests/Makefile.am: Adjust.
4193
4194 2001-12-10 Akim Demaille <akim@epita.fr>
4195
4196 One structure for states is enough, even though theoretically
4197 there are LR(0) states and LALR(1) states.
4198
4199 * src/lalr.h (state_t): Remove.
4200 (state_table): Be state_t **, not state_t *.
4201 * src/state.h (core, CORE_ALLOC): Rename as...
4202 (state_t, STATE_ALLOC): this.
4203 Add the LALR(1) members: shifts, reductions, errs.
4204 * src/LR0.c (state_table): Rename as...
4205 (state_hash): this, to avoid name clashes with the global
4206 `state_table'.
4207 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
4208 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
4209
4210 2001-12-10 Akim Demaille <akim@epita.fr>
4211
4212 Bison dumps core on bash.y.
4213 Reported by Pascal Bart.
4214
4215 * src/warshall.c (bitmatrix_print): New.
4216 (TC): Use it.
4217 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
4218 j must be the outer loop.
4219 * tests/regression.at (Broken Closure): New.
4220
4221 2001-12-05 Akim Demaille <akim@epita.fr>
4222
4223 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
4224 its argument.
4225 Reported by Peter Hámorský.
4226
4227 2001-12-05 Akim Demaille <akim@epita.fr>
4228
4229 * src/conflicts.c (err_table): Remove.
4230 (resolve_sr_conflict): Adjust.
4231 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
4232 Rename as...
4233 (state_t.reductions, state_t.shifts): this.
4234
4235 2001-12-05 Akim Demaille <akim@epita.fr>
4236
4237 * src/reduce.c (reduce_grammar_tables): No longer disable the
4238 removal of useless rules via CPP but via `if (0)', so that the
4239 compiler still check the code is valid.
4240 For instance, it should have noticed `rline' no longer exists: use
4241 the `line' member of rule_t.
4242 * src/gram.c (dummy, rline): Remove, unused.
4243
4244 2001-12-05 Akim Demaille <akim@epita.fr>
4245
4246 * src/output.c (pack_vector): Use assert, not berror.
4247 * src/main.c (berror): Remove, unused.
4248
4249 2001-12-05 Akim Demaille <akim@epita.fr>
4250
4251 New experimental feature: if --verbose --trace output all the
4252 items of a state, not only its kernel.
4253
4254 * src/print.c (print_core): If `trace_flag', then invoke closure
4255 before outputting the items of the state (print_core is no longer
4256 a correct name them).
4257 (print_results): Invoke new_closure/free_closure if needed.
4258
4259 2001-12-05 Akim Demaille <akim@epita.fr>
4260
4261 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
4262 * src/closure.c, src/closure.h (itemsetsize): Rename as...
4263 (nitemset): for consistency with the rest of the project.
4264
4265 2001-12-05 Akim Demaille <akim@epita.fr>
4266
4267 * src/closure.c (print_closure): Improve.
4268 (closure): Use it for printing input and output.
4269
4270 2001-12-05 Akim Demaille <akim@epita.fr>
4271
4272 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
4273 indexed by nonterminals.
4274
4275 2001-12-05 Akim Demaille <akim@epita.fr>
4276
4277 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
4278 what it was!).
4279 * src/warshall.h: Remove accidental duplication of the content.
4280
4281 2001-12-05 Akim Demaille <akim@epita.fr>
4282
4283 * src/closure.c (set_fderives): De-obfuscate.
4284
4285 2001-12-05 Akim Demaille <akim@epita.fr>
4286
4287 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
4288
4289 2001-12-05 Akim Demaille <akim@epita.fr>
4290
4291 * src/closure.c (set_firsts): De-obfuscate.
4292
4293 2001-12-05 Akim Demaille <akim@epita.fr>
4294
4295 * src/output.c (action_row): De-obfuscate
4296 using the good o' techniques: arrays not pointers, variable
4297 locality, BITISSET, RESETBIT etc.
4298
4299 2001-12-05 Akim Demaille <akim@epita.fr>
4300
4301 Pessimize the code to simplify it: from now on, all the states
4302 have a valid SHIFTS, which NSHIFTS is possibly 0.
4303
4304 * src/LR0.c (shifts_new): Be global and move to..
4305 * src/state.c, src/state.h: here.
4306 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
4307 * src/print_graph: Adjust.
4308
4309 2001-12-05 Akim Demaille <akim@epita.fr>
4310
4311 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
4312 * src/conflicts.c: Use it.
4313 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
4314 incorrectly ``simplified''.
4315
4316 2001-12-05 Akim Demaille <akim@epita.fr>
4317
4318 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
4319 using the good o' techniques: arrays not pointers, variable
4320 locality, BITISSET, RESETBIT etc.
4321
4322 2001-12-05 Akim Demaille <akim@epita.fr>
4323
4324 * src/state.h (SHIFT_SYMBOL): New.
4325 * src/conflicts.c: Use it to deobfuscate.
4326
4327 2001-12-05 Akim Demaille <akim@epita.fr>
4328
4329 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
4330 (print_reductions): De-obfuscate using the good o' techniques:
4331 arrays not pointers, variable locality, BITISSET.
4332
4333 2001-12-05 Akim Demaille <akim@epita.fr>
4334
4335 * src/conflicts.c (print_reductions): Arrays, not pointers.
4336 Use BITISSET.
4337
4338 2001-12-05 Akim Demaille <akim@epita.fr>
4339
4340 * src/conflicts.c (print_reductions): Pessimize, but clarify.
4341
4342 2001-12-05 Akim Demaille <akim@epita.fr>
4343
4344 * src/conflicts.c (print_reductions): Improve variable locality.
4345
4346 2001-12-05 Akim Demaille <akim@epita.fr>
4347
4348 * src/conflicts.c (print_reductions): Pessimize, but clarify.
4349
4350 2001-12-05 Akim Demaille <akim@epita.fr>
4351
4352 * src/conflicts.c (print_reductions): Improve variable locality.
4353
4354 2001-12-05 Akim Demaille <akim@epita.fr>
4355
4356 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
4357 * src/lalr.c: Use them.
4358
4359 2001-12-05 Akim Demaille <akim@epita.fr>
4360
4361 * src/LR0.c (augment_automaton): Formatting changes.
4362 Better variable locality.
4363
4364 2001-12-05 Akim Demaille <akim@epita.fr>
4365
4366 * src/lalr.c (matrix_print): New.
4367 (transpose): Use it.
4368 Use arrays instead of pointers.
4369
4370 2001-12-05 Akim Demaille <akim@epita.fr>
4371
4372 * src/lalr.c (maxrhs): Move to...
4373 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
4374 * src/lalr.c (build_relations): Adjust.
4375
4376 2001-12-05 Akim Demaille <akim@epita.fr>
4377
4378 * src/lalr.c (transpose): Free the memory allocated to the
4379 argument, as it is replaced by the results by the unique caller.
4380 (build_relations): Merely invoke transpose: it handles the memory
4381 deallocation.
4382 Improve variable locality.
4383 Avoid variables used as mere abbreviations.
4384 (compute_lookaheads): Use arrays instead of pointers.
4385
4386 2001-12-05 Akim Demaille <akim@epita.fr>
4387
4388 * src/lalr.c (initialize_F): Improve variable locality.
4389 Avoid variables used as mere abbreviations.
4390
4391 2001-12-05 Akim Demaille <akim@epita.fr>
4392
4393 * src/derives.c (print_derives): Display the ruleno.
4394 * src/lalr.c (initialize_F, transpose): Better variable locality
4395 to improve readability.
4396 Avoid variables used as mere abbreviations.
4397
4398 2001-12-05 Akim Demaille <akim@epita.fr>
4399
4400 * src/lalr.c (traverse): Use arrays instead of pointers.
4401
4402 2001-12-05 Akim Demaille <akim@epita.fr>
4403
4404 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
4405 the handling of squeue.
4406 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
4407
4408 2001-12-05 Akim Demaille <akim@epita.fr>
4409
4410 Because useless nonterminals are now kept alive (instead of being
4411 `destroyed'), we now sometimes examine them, and store information
4412 related to them. Hence we need to know their number, and adjust
4413 memory allocations.
4414
4415 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
4416 static.
4417 * src/LR0.c (allocate_itemsets): The memory allocated to
4418 `symbol_count' was used for two different purpose: once to count
4419 the number of occurrences of each symbol, and later reassigned to
4420 `shift_symbol', containing the symbol that can be shifted from a
4421 given state.
4422 Deobfuscate, i.e., allocate, use and free `symbol_count' here
4423 only, and...
4424 (new_itemsets): Allocate `shift_symbol' here.
4425 (allocate_itemsets): symbol_count includes useless nonterminals.
4426 Make room for them.
4427 (free_storage): Use `free', not `XFREE', for pointers that cannot
4428 be null.
4429
4430 2001-12-05 Akim Demaille <akim@epita.fr>
4431
4432 * src/nullable.c (set_nullable): Deobfuscate the handling of
4433 ritem.
4434 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
4435
4436 2001-12-05 Akim Demaille <akim@epita.fr>
4437
4438 * src/gram.c, src/gram.h (ritem_print): New.
4439 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
4440 (This useless function was defined only to work around VMS linkers
4441 that can't handle compilation units with variables only).
4442 * src/reduce.c (dump_grammar): Use it to trace the construction of
4443 ritem.
4444
4445 2001-12-04 Paul Eggert <eggert@twinsun.com>
4446
4447 * src/bison.simple (union yyalloc): Change member names
4448 to be the same as the stack names.
4449 (yyparse): yyptr is now union yyalloc *, not char *.
4450 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
4451 and may generate better code on some machines.
4452 (yystpcpy): Use prototype if __STDC__ is defined, not just
4453 if __cplusplus is defined.
4454
4455 2001-11-30 Akim Demaille <akim@epita.fr>
4456
4457 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
4458 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
4459 Gettext doesn't compile cleanly, and dies with -Werror.
4460 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
4461 Include WARNING_CFLAGS here.
4462 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
4463 before being defined.
4464
4465 2001-11-27 Paul Eggert <eggert@twinsun.com>
4466
4467 * lib/quotearg.h (quotearg_n, quotearg_n_style):
4468 First arg is int, not unsigned.
4469 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
4470 (SIZE_MAX, UINT_MAX): New macros.
4471 (quotearg_n_options): Abort if N is negative.
4472 Avoid overflow check on hosts where size_t is 64 bits and int
4473 is 32 bits, as overflow is impossible there.
4474 Fix off-by-one typo that caused unnecessary reallocation.
4475
4476 2001-11-29 Paul Eggert <eggert@twinsun.com>
4477
4478 Name space cleanup in generated parser.
4479
4480 * doc/bison.texinfo (Bison Parser): Discuss system headers
4481 and their effect on the user name space.
4482
4483 * src/bison.simple:
4484 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
4485 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
4486 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
4487
4488 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
4489 on user names when possible.
4490
4491 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
4492 Simplify test for whather <alloca.h> exists.
4493
4494 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
4495
4496 (<stdio.h>): Include if YYDEBUG.
4497
4498 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
4499 ! defined (yyoverflow) && ! defined (yymemcpy).
4500
4501 (yymemcpy, yyparse): Rename local variables as needed so that
4502 they all begin with 'yy'.
4503
4504 (yystrlen, yystpcpy): New functions.
4505
4506 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
4507 All uses changed.
4508
4509 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
4510 instead of relying on string.h functions. Use YYSTACK_ALLOC
4511 and YYSTACK_FREE instead of malloc and free.
4512
4513 2001-11-30 Akim Demaille <akim@epita.fr>
4514
4515 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
4516 before their first uses.
4517 (YYBISON, YYPURE): Move to the top of the output.
4518
4519 2001-11-30 Akim Demaille <akim@epita.fr>
4520
4521 * tests/reduce.at (Useless Nonterminals): Fix.
4522
4523 2001-11-30 Akim Demaille <akim@epita.fr>
4524
4525 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
4526 if body instead of `;' to pacify GCC's warnings.
4527
4528 2001-11-30 Akim Demaille <akim@epita.fr>
4529
4530 Instead of mapping the LHS of unused rules to -1, keep the LHS
4531 valid, but flag the rules as invalid.
4532
4533 * src/gram.h (rule_t): `useful' is a new member.
4534 * src/print.c (print_grammar): Adjust.
4535 * src/derives.c (set_derives): Likewise.
4536 * src/reader.c (packgram, reduce_output): Likewise.
4537 * src/reduce.c (reduce_grammar_tables): Likewise.
4538 * tests/reduce.at (Underivable Rules, Useless Rules): New.
4539
4540 2001-11-30 Akim Demaille <akim@epita.fr>
4541
4542 * src/reduce.c (reduce_output): Formatting changes.
4543 * src/print.c (print_results, print_grammar): Likewise.
4544 * tests/regression.at (Rule Line Numbers)
4545 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
4546
4547 2001-11-30 Akim Demaille <akim@epita.fr>
4548
4549 * src/reduce.c (nonterminals_reduce): Instead of throwing away
4550 useless nonterminals, move them at the end of the symbol arrays.
4551 (reduce_output): Adjust.
4552 * tests/reduce.at (Useless Nonterminals): Adjust.
4553
4554 2001-11-30 Akim Demaille <akim@epita.fr>
4555
4556 * src/reduce.c: Various comment/formatting changes.
4557 (nonterminals_reduce): New, extracted from...
4558 (reduce_grammar_tables): here.
4559 (reduce_grammar): Call nonterminals_reduce.
4560
4561 2001-11-29 Paul Eggert <eggert@twinsun.com>
4562
4563 * src/bison.simple (YYSTACK_REALLOC): Remove.
4564 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
4565 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
4566 New macros.
4567 (union yyalloc): New type.
4568 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
4569 an arbitrary restriction on hosts where size_t is wider than int.
4570
4571 (yyparse): Don't dump core if alloca or malloc fails; instead, report
4572 a parser stack overflow. Allocate just one block of memory for all
4573 three stacks, instead of allocating three blocks; this typically is
4574 faster and reduces fragmentation.
4575
4576 Do not limit the number of items in the stack to a value that fits
4577 in 'int', as this is an arbitrary limit on hosts with 64-bit
4578 size_t and 32-bit int.
4579
4580 2001-11-29 Marc Autret <autret_m@epita.fr>
4581
4582 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
4583 of defining YYERROR_VERBOSE.
4584 [AT_DATA]: $4 is now out of C declarations in the prologue.
4585
4586 2001-11-28 Marc Autret <autret_m@epita.fr>
4587
4588 * src/reader.c (parse_dquoted_param): New.
4589 (parse_skel_decl): Use it.
4590 * src/lex.h: Add its prototype.
4591 * src/lex.c (literalchar): Become not static.
4592
4593 2001-11-28 Marc Autret <autret_m@epita.fr>
4594
4595 * src/output.h: And put its extern declaration here.
4596 * src/output.c (error_verbose): Define here.
4597 (prepare): Echo name modification.
4598 * src/getargs.h: Clean its extern declaration.
4599 * src/getargs.c (error_verbose_flag): Remove.
4600 (getargs): Remove case 'e'.
4601 * src/options.c (option_table): 'error-verbose' is now seen as simple
4602 percent option.
4603 Include output.h.
4604
4605 * src/reader.c (read_declarations): Remove case tok_include.
4606 (parse_include_decl): Remove.
4607 * src/lex.h (token_t): Remove tok_include.
4608 * src/options.c (option_table): 'include' is now a simple command line
4609 option.
4610
4611 2001-11-28 Marc Autret <autret_m@epita.fr>
4612
4613 * src/bison.simple: Adjust muscle names.
4614 * src/muscle_tab.c (muscle_init): Also rename the muscles.
4615 * src/output.c (prepare): s/_/-/ for the muscles names.
4616 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
4617
4618 2001-11-28 Marc Autret <autret_m@epita.fr>
4619
4620 * src/bison.simple: Fix debug.
4621 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
4622
4623 2001-11-28 Akim Demaille <akim@epita.fr>
4624
4625 * src/LR0.c (shifts_new): New.
4626 (save_shifts, insert_start_shift, augment_automaton): Use it.
4627
4628 2001-11-28 Akim Demaille <akim@epita.fr>
4629
4630 * src/closure.c (closure): `b' and `ruleno' denote the same value:
4631 keep ruleno only.
4632
4633 2001-11-28 Akim Demaille <akim@epita.fr>
4634
4635 * src/closure.c (closure): Instead of looping over word in array
4636 then bits in words, loop over bits in array.
4637
4638 2001-11-28 Akim Demaille <akim@epita.fr>
4639
4640 * src/closure.c (closure): No longer optimize the special case
4641 where all the bits of `ruleset[r]' are set to 0, to make the code
4642 clearer.
4643
4644 2001-11-28 Akim Demaille <akim@epita.fr>
4645
4646 * src/closure.c (closure): `r' and `c' are new variables, used to
4647 de-obfuscate accesses to RULESET and CORE.
4648
4649 2001-11-28 Akim Demaille <akim@epita.fr>
4650
4651 * src/reduce.c (reduce_print): Use ngettext.
4652 (dump_grammar): Improve the trace accuracy.
4653
4654 2001-11-28 Akim Demaille <akim@epita.fr>
4655
4656 * src/reduce.c (dump_grammar): Don't translate trace messages.
4657
4658 2001-11-28 Akim Demaille <akim@epita.fr>
4659
4660 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
4661 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
4662 as all tags are free'ed afterwards.
4663 From Enrico Scholz.
4664
4665 2001-11-27 Paul Eggert <eggert@twinsun.com>
4666
4667 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
4668 use alloca when we didn't want to, and vice versa.
4669
4670 2001-11-27 Marc Autret <autret_m@epita.fr>
4671
4672 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
4673 initialization.
4674 * src/output.c (prepare): Remove its update.
4675
4676 2001-11-27 Marc Autret <autret_m@epita.fr>
4677
4678 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
4679 Use %error-verbose.
4680
4681 2001-11-27 Marc Autret <autret_m@epita.fr>
4682
4683 * src/bison.simple: Remove YYERROR_VERBOSE using.
4684 Use %%error_verbose.
4685 (yyparse): Likewise.
4686 * src/output.c (prepare): Give its final value.
4687 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
4688 * src/getargs.h: Add its extern declaration.
4689 * src/getargs.c (error_verbose_flag): New int.
4690 (getargs): Update to catch new case.
4691 * src/options.c (option_table): 'error-verbose' is a new option.
4692 (shortopts): Update.
4693
4694 2001-11-27 Akim Demaille <akim@epita.fr>
4695
4696 * src/system.h: Use intl/libgettext.h.
4697 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
4698
4699 2001-11-27 Akim Demaille <akim@epita.fr>
4700
4701 * tests/torture.at (Exploding the Stack Size with Malloc):
4702 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
4703
4704 2001-11-27 Akim Demaille <akim@epita.fr>
4705
4706 * src/files.c: Include error.h.
4707 Reported by Hans Aberg.
4708
4709 2001-11-26 Marc Autret <autret_m@epita.fr>
4710
4711 * src/reader.c (parse_include_decl): New, not yet implemented.
4712 (read_declarations): Add case tok_include.
4713 * src/getargs.h (include): Add its extern definition.
4714 * src/getargs.c (include): New const char *.
4715 (getargs): Add case '-I'.
4716 * src/options.c (option_table): Add include as command line and
4717 percent option.
4718 * src/lex.h (token_t): Add tok_include.
4719
4720 2001-11-26 Akim Demaille <akim@epita.fr>
4721
4722 * src/reader.c (readgram): Make sure rules for mid-rule actions
4723 have a lineno equal to that of their host rule.
4724 Reported by Hans Aberg.
4725 * tests/regression.at (Rule Line Numbers): New.
4726
4727 2001-11-26 Akim Demaille <akim@epita.fr>
4728
4729 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
4730 size_ts.
4731
4732 2001-11-26 Akim Demaille <akim@epita.fr>
4733
4734 * src/complain.c, src/complain.h (error): Remove, provided by
4735 lib/error.[ch].
4736
4737 2001-11-26 Akim Demaille <akim@epita.fr>
4738
4739 * src/reader.c (read_declarations): Don't abort on tok_illegal,
4740 issue an error message.
4741 * tests/regression.at (Invalid %directive): New.
4742 Reported by Hans Aberg.
4743
4744 2001-11-26 Akim Demaille <akim@epita.fr>
4745
4746 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
4747 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
4748
4749 2001-11-26 Akim Demaille <akim@epita.fr>
4750
4751 * src/conflicts.c (conflicts_print): Don't complain at all when
4752 there are no reduce/reduce conflicts, and as many shift/reduce
4753 conflicts as expected.
4754 * tests/regression.at (%expect right): Adjust.
4755
4756 2001-11-23 Akim Demaille <akim@epita.fr>
4757
4758 * lib/alloca.c: Update, from fileutils.
4759
4760 2001-11-23 Akim Demaille <akim@epita.fr>
4761
4762 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
4763
4764 2001-11-23 Akim Demaille <akim@epita.fr>
4765
4766 * src/system.h: Include alloca.h.
4767 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
4768
4769 2001-11-23 Akim Demaille <akim@epita.fr>
4770
4771 * src/print_graph.c (print_actions): Remove `rule', unused.
4772 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
4773 pacify GCC's signed < unsigned warnings.
4774 * src/closure.c (itemsetsize): Likewise.
4775 * src/reader.c (symbol_list_new): Static.
4776
4777 2001-11-23 Akim Demaille <akim@epita.fr>
4778
4779 Attaching lineno to buckets is stupid, since only one copy of each
4780 symbol is kept, only the line of the first occurrence is kept too.
4781
4782 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
4783 * src/reader.c (rline_allocated): Remove, unused.
4784 (symbol_list): Have a `line' member.
4785 (symbol_list_new): New.
4786 (readgram): Use it.
4787 * src/print.c (print_grammar): Output the rule line numbers.
4788 * tests/regression.at (Solved SR Conflicts)
4789 (Unresolved SR Conflicts): Adjust.
4790 Reported by Hans Aberg.
4791
4792 2001-11-22 Marc Autret <autret_m@epita.fr>
4793
4794 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
4795
4796 2001-11-22 Marc Autret <autret_m@epita.fr>
4797
4798 * src/muscle_tab.c (muscle_init): Remove initialization of
4799 skeleton muscle.
4800 * src/output.c (output_master_parser): Do it here.
4801
4802 2001-11-20 Akim Demaille <akim@epita.fr>
4803
4804 * po/sv.po: New.
4805 * configure.in (ALL_LINGUAS): Adjust.
4806 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
4807 longer contains strings to translate.
4808
4809 2001-11-19 Akim Demaille <akim@epita.fr>
4810
4811 * src/conflicts.c (conflicts_print): Add a missing \n.
4812
4813 2001-11-19 Akim Demaille <akim@epita.fr>
4814
4815 * src/nullable.c (nullable_print): New.
4816 (set_nullable): Call it when tracing.
4817 Better locality of variables.
4818
4819 2001-11-19 Akim Demaille <akim@epita.fr>
4820
4821 * src/print.c (print_actions): Better locality of variables.
4822
4823 2001-11-19 Akim Demaille <akim@epita.fr>
4824
4825 * src/derives.c (print_derives): Fix and enrich.
4826 * src/closure.c (print_fderives): Likewise.
4827
4828 2001-11-19 Akim Demaille <akim@epita.fr>
4829
4830 * src/closure.c (itemsetend): Remove, replaced with...
4831 (itemsetsize): new.
4832
4833 2001-11-19 Akim Demaille <akim@epita.fr>
4834
4835 * src/LR0.c (kernel_end): Remove, replaced with...
4836 (kernel_size): new.
4837
4838 2001-11-19 Akim Demaille <akim@epita.fr>
4839
4840 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
4841 to clarify.
4842
4843 2001-11-19 Akim Demaille <akim@epita.fr>
4844
4845 * src/closure.c (closure): Use arrays instead of pointers to clarify.
4846
4847 2001-11-19 Akim Demaille <akim@epita.fr>
4848
4849 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
4850 trace messages.
4851 * src/LR0.c: Likewise.
4852 (allocate_itemsets): Use arrays instead of pointers to clarify.
4853
4854 2001-11-19 Akim Demaille <akim@epita.fr>
4855
4856 * src/getargs.c (statistics_flag): Replace with...
4857 (trace_flag): New.
4858 (longopts): Accept --trace instead of --statistics.
4859 * src/getargs.h, src/options.c: Adjust.
4860 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
4861 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
4862
4863 2001-11-19 Akim Demaille <akim@epita.fr>
4864
4865 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
4866 pointers to clarify the code.
4867 (save_reductions, save_shifts): Factor common parts of alternatives.
4868
4869 2001-11-19 Akim Demaille <akim@epita.fr>
4870
4871 * src/LR0.c (new_state, get_state): Complete TRACE code.
4872 * src/closure.c: Include `reader.h' to get `tags', needed by the
4873 trace code.
4874 Rename the conditional DEBUG as TRACE.
4875 Output consistently TRACEs to stderr, not stdout.
4876 * src/derives.c: Likewise.
4877 * src/reduce.c: (inaccessable_symbols): Using if is better style
4878 than goto.
4879 Use `#if TRACE' instead of `#if 0' for tracing code.
4880
4881 2001-11-19 Akim Demaille <akim@epita.fr>
4882
4883 * src/system.h (LIST_FREE, shortcpy): New.
4884 * src/LR0.c: Use them.
4885 * src/output.c (free_itemsets, free_reductions, free_shifts):
4886 Remove, replaced by LIST_FREE.
4887
4888 2001-11-19 Akim Demaille <akim@epita.fr>
4889
4890 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
4891 (REDUCTIONS_ALLOC): New.
4892 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
4893 allocation.
4894
4895 2001-11-19 Akim Demaille <akim@epita.fr>
4896
4897 * src/LR0.c (new_state): Complete trace code.
4898 * src/nullable.c (set_nullable): Don't translate traces.
4899
4900 2001-11-19 Akim Demaille <akim@epita.fr>
4901
4902 * src/print_graph.c (print_core): Better locality of variables.
4903 * src/print.c (print_core): Likewise.
4904
4905 2001-11-19 Akim Demaille <akim@epita.fr>
4906
4907 * src/vcg.c: You do the output, so you are responsible of the
4908 handling of VCG syntax, in particular: use quotearg.
4909 * src/print_graph.c: Don't.
4910 (print_actions): Don't output the actions as part of the nodes,
4911 since that's the job of the edges.
4912 (print_state): Don't output by hand: fill the node description,
4913 and ask for its output.
4914
4915 2001-11-19 Akim Demaille <akim@epita.fr>
4916
4917 * src/bison.simple (yyparse): When verbosely reporting an error,
4918 no longer put additional quotes around token names.
4919 * tests/calc.at: Adjust.
4920
4921 2001-11-19 Akim Demaille <akim@epita.fr>
4922
4923 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
4924 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
4925 * src/output.c: Adjust.
4926
4927 2001-11-19 Akim Demaille <akim@epita.fr>
4928
4929 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
4930 (rule_t): this.
4931 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
4932
4933 2001-11-19 Akim Demaille <akim@epita.fr>
4934
4935 * src/gram.h (rule_t): New.
4936 (rule_table): New.
4937 (rrhs, rlhs): Remove, part of state_t.
4938 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
4939 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
4940 * src/reader.c, src/reduce.c: Adjust.
4941
4942 2001-11-19 Akim Demaille <akim@epita.fr>
4943
4944 * src/reader.c (symbols_output): New, extracted from...
4945 (packsymbols): Here.
4946 (reader): Call it.
4947
4948 2001-11-19 Akim Demaille <akim@epita.fr>
4949
4950 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
4951 (maxrhs): this new function.
4952
4953 2001-11-19 Akim Demaille <akim@epita.fr>
4954
4955 * src/lalr.c (F): New macro to access the variable F.
4956 Adjust.
4957
4958 2001-11-19 Akim Demaille <akim@epita.fr>
4959
4960 * src/lalr.h (LA): New macro to access the variable LA.
4961 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
4962 * src/lalr.c: Adjust.
4963
4964 2001-11-19 Akim Demaille <akim@epita.fr>
4965
4966 * src/lalr.c (initialize_LA): Only initialize LA. Let...
4967 (set_state_table): handle the `lookaheads' members.
4968
4969 2001-11-19 Akim Demaille <akim@epita.fr>
4970
4971 * src/lalr.h (lookaheads): Removed array, whose contents is now
4972 a member of...
4973 (state_t): this structure.
4974 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
4975 Adjust.
4976
4977 2001-11-19 Akim Demaille <akim@epita.fr>
4978
4979 * src/lalr.h (consistent): Removed array, whose contents is now
4980 a member of...
4981 (state_t): this structure.
4982 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
4983 Adjust.
4984
4985 2001-11-19 Akim Demaille <akim@epita.fr>
4986
4987 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
4988 contents are now members of...
4989 (state_t): this structure.
4990 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
4991 Adjust.
4992
4993 2001-11-19 Akim Demaille <akim@epita.fr>
4994
4995 * src/lalr.h (state_t): New.
4996 (state_table): Be a state_t * instead of a core **.
4997 (accessing_symbol): Remove, part of state_t.
4998 * src/lalr.c: Adjust.
4999 (set_accessing_symbol): Merge into...
5000 (set_state_table): this.
5001 * src/print_graph.c, src/conflicts.c: Adjust.
5002
5003 2001-11-14 Akim Demaille <akim@epita.fr>
5004
5005 * tests/calc.at, tests/output.at, tests/regression.at,
5006 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
5007 now the tests are run in private dirs, therefore AC_CLEANUP and
5008 family can be simplified to 0-ary.
5009 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
5010 use abs. path to find config.h.
5011 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
5012 stderr, there can be way too much random noise.
5013 Instead pass -Werror to GCC and rely on the exit status.
5014 Reported by Wolfram Wagner.
5015
5016 2001-11-14 Akim Demaille <akim@epita.fr>
5017
5018 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
5019 defined only if yyoverflow is defined, to avoid `warning: unused
5020 variable `yyvs1''.
5021 Reported by The Test Suite.
5022
5023 2001-11-14 Akim Demaille <akim@epita.fr>
5024
5025 * src/print.c: Include reduce.h.
5026 Reported by Hans Aberg.
5027
5028 2001-11-14 Akim Demaille <akim@epita.fr>
5029
5030 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
5031 Revert a previous patch: these are really const.
5032 * src/conflicts.c (conflict_report): Additional useless pair of
5033 braces to pacify GCC's warnings for `if () if () {} else {}'.
5034 * src/lex.c (parse_percent_token): Replace equal_offset with
5035 arg_offset.
5036 arg is const.
5037 Be sure to strdup `arg' when used, since there is no reason for
5038 token_buffer not to change.
5039
5040 2001-11-14 Akim Demaille <akim@epita.fr>
5041
5042 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
5043 definition.
5044 * src/main.c (main): Use them.
5045 Suggested by Hans Aberg.
5046
5047 2001-11-12 Akim Demaille <akim@epita.fr>
5048
5049 * src/system.h (ngettext): Now that we use ngettext, be sure to
5050 provide a default definition when NLS are not used.
5051
5052 2001-11-12 Akim Demaille <akim@epita.fr>
5053
5054 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
5055 Use @kbd to denote user input.
5056 (Language and Grammar): ANSIfy the example.
5057 Adjust its layout for info/notinfo.
5058 (Location Tracking Calc): Output error messages to stderr.
5059 Output locations in a more GNUtically correct way.
5060 Fix a couple of Englishos.
5061 Adjust @group/@end group pairs.
5062
5063 2001-11-12 Akim Demaille <akim@epita.fr>
5064
5065 %expext was not functioning at all.
5066
5067 * src/conflicts.c (expected_conflicts): Set to -1.
5068 (conflict_report): Use ngettext.
5069 (conflicts_print): Check %expect and make its violation an error.
5070 * doc/bison.texinfo (Expect Decl): Adjust.
5071 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
5072 * tests/regression.at (%expect not enough, %expect right)
5073 (%expect too much): New.
5074
5075 2001-11-12 Akim Demaille <akim@epita.fr>
5076
5077 * tests/regression.at (Conflicts): Rename as...
5078 (Unresolved SR Conflicts): this.
5079 (Solved SR Conflicts): New.
5080
5081 2001-11-12 Akim Demaille <akim@epita.fr>
5082
5083 * src/reduce.c (print_results): Rename as...
5084 (reduce_output): This.
5085 Output to OUT, passed as argument, instead of output_obstack.
5086 (dump_grammar): Likewise.
5087 (reduce_free): New.
5088 Also free V1.
5089 (reduce_grammar): No longer call reduce_output, since...
5090 * src/print.c (print_results): do it.
5091 * src/main.c (main): Call reduce_free;
5092
5093 2001-11-12 Akim Demaille <akim@epita.fr>
5094
5095 * src/conflicts.c (print_reductions): Accept OUT as argument.
5096 Output to it, not to output_obstack.
5097 * src/print.c (print_actions): Adjust.
5098
5099 2001-11-12 Akim Demaille <akim@epita.fr>
5100
5101 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
5102 the result instead of using...
5103 (src_total, rrc_total, src_count, rrc_count): Remove.
5104 (any_conflicts): Remove.
5105 (print_conflicts): Split into...
5106 (conflicts_print, conflicts_output): New.
5107 * src/conflicts.h: Adjust.
5108 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
5109 * src/print.c (print_grammar): Issue `\n' between two rules.
5110 * tests/regression.at (Conflicts): New.
5111 Reported by Tom Lane.
5112
5113 2001-11-12 Akim Demaille <akim@epita.fr>
5114
5115 * tests/regression.at (Invalid input): Remove, duplicate with
5116 ``Invalid input: 1''.
5117
5118 2001-11-12 Akim Demaille <akim@epita.fr>
5119
5120 * tests/torture.at (AT_DATA_STACK_TORTURE)
5121 (Exploding the Stack Size with Alloca)
5122 (Exploding the Stack Size with Malloc): New.
5123
5124 2001-11-12 Akim Demaille <akim@epita.fr>
5125
5126 * src/bison.simple (YYSTACK_REALLOC): New.
5127 (yyparse) [!yyoverflow]: Use it and free the old stack.
5128 Reported by Per Allansson.
5129
5130 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
5131
5132 * src/bison.simple: Define type yystype instead of YYSTYPE, and
5133 define CPP macro, which substitute YYSTYPE by yystype.
5134 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
5135 with yyltype/YYLTYPE. This allows inclusion of the generated
5136 header within the parser if the compiler, such as GGC, accepts
5137 multiple equivalent #defines.
5138 From Akim.
5139
5140 2001-11-05 Akim Demaille <akim@epita.fr>
5141
5142 * src/reader.c (symbols_output): New, extracted from...
5143 (packsymbols): here.
5144 (reader): Adjust.
5145
5146 2001-11-05 Akim Demaille <akim@epita.fr>
5147
5148 * src/lex.c (parse_percent_token): s/quotearg/quote/.
5149
5150 2001-11-05 Akim Demaille <akim@epita.fr>
5151
5152 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
5153 pattern.
5154
5155 2001-11-05 Akim Demaille <akim@epita.fr>
5156
5157 * src/options.h (struct option_table_struct): set_flags is void*.
5158 * src/options.c (longopts): Support `--output' and `%output'.
5159 (usage): Adjust.
5160 * src/lex.h (tok_setopt): Remove, replaced with...
5161 (tok_intopt, tok_stropt): these new guys.
5162 * src/lex.c (getopt.h): Not needed.
5163 (token_buffer, unlexed_token_buffer): Not const.
5164 (percent_table): Promote `-' over `_' in directive names.
5165 Active `%name-prefix', `file-prefix', and `output'.
5166 (parse_percent_token): Accept possible arguments to directives.
5167 Promote `-' over `_' in directive names.
5168
5169 2001-11-04 Akim Demaille <akim@epita.fr>
5170
5171 * doc/bison.texinfo (Decl Summary): Split the list into
5172 `directives for grammars' and `directives for bison'.
5173 Sort'em.
5174 Add description of `%name-prefix', `file-prefix', and `output'.
5175 Promote `-' over `_' in directive names.
5176 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
5177 Simplify the description of `--name-prefix'.
5178 Promote `-' over `_' in directive names.
5179 Promote `--output' over `--output-file'.
5180 Fix the description of `--defines'.
5181 * tests/output.at: Exercise %file-prefix and %output.
5182
5183 2001-11-02 Akim Demaille <akim@epita.fr>
5184
5185 * doc/refcard.tex: Update.
5186
5187 2001-11-02 Akim Demaille <akim@epita.fr>
5188
5189 * src/symtab.h (SUNDEF): New.
5190 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
5191 stand for `uninitialized', instead of 0.
5192 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
5193 * src/lex.c (lex): Adjust.
5194
5195 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
5196 Number it 0.
5197 Let yylex return it instead of a plain 0.
5198 Reported by Dick Streefland.
5199
5200 2001-11-02 Akim Demaille <akim@epita.fr>
5201
5202 * tests/regression.at (Mixing %token styles): New test.
5203
5204 2001-11-02 Akim Demaille <akim@epita.fr>
5205
5206 * src/reader.c (parse_thong_decl): Formatting changes.
5207 (token_translations_init): New, extracted from...
5208 (packsymbols): Here.
5209 Adjust.
5210
5211 2001-11-01 Akim Demaille <akim@epita.fr>
5212
5213 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
5214 Check that `9foo.y' produces correct cpp guards.
5215 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
5216 guards.
5217 Reported by Wwp.
5218
5219 2001-11-01 Akim Demaille <akim@epita.fr>
5220
5221 * tests/regression.at (Invalid input: 2): New.
5222 * src/lex.c (unlexed_token_buffer): New.
5223 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
5224 too.
5225 Reported by Wwp.
5226
5227 2001-11-01 Akim Demaille <akim@epita.fr>
5228
5229 * tests/calc.at: Catch up with 1.30.
5230 * configure.in: Bump to 1.49a.
5231 Adjust to newer Autotest.
5232
5233 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
5234
5235 * src/conflicts.c: Move global variables rrc_total and src_total ...
5236 (print_conflicts): here.
5237 * src/output.c (output): Free global variable user_toknums.
5238 * src/lex.c (token_obstack): Become static.
5239
5240 2001-10-18 Akim Demaille <akim@epita.fr>
5241
5242 * tests/atlocal.in (GCC): Add.
5243 * tests/calc.at: s/m4_match/m4_bmatch/.
5244 s/m4_patsubst/m4_bpatsubst/.
5245 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
5246 * configure.in: AC_SUBST(GCC).
5247
5248 2001-10-14 Marc Autret <autret_m@epita.fr>
5249
5250 * src/options.c (create_long_option_table): Fix.
5251
5252 2001-10-10 Akim Demaille <akim@epita.fr>
5253
5254 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
5255
5256 2001-10-04 Akim Demaille <akim@epita.fr>
5257
5258 * src/reader.c (parse_union_decl): Push the caracters in
5259 union_obstack, not attrs_obstack.
5260
5261 2001-10-04 Akim Demaille <akim@epita.fr>
5262
5263 Merge in the branch 1.29.
5264
5265 * src/reader.c (packsymbols): Use a temporary obstack for
5266 `%%tokendef', since output_stack is already used elsewhere.
5267
5268 2001-10-02 Akim Demaille <akim@epita.fr>
5269
5270 Bump 1.29d.
5271
5272 2001-10-02 Akim Demaille <akim@epita.fr>
5273
5274 Version 1.29c.
5275
5276 2001-10-02 Akim Demaille <akim@epita.fr>
5277
5278 * tests/regression.at (Invalid CPP headers): New.
5279 From Alexander Belopolsky.
5280 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
5281
5282 2001-10-02 Akim Demaille <akim@epita.fr>
5283
5284 * tests/regression.at (Invalid input): New.
5285 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
5286 Reported by Shura.
5287
5288 2001-10-02 Akim Demaille <akim@epita.fr>
5289
5290 * tests/calc.at: Now that --debug works, the tests must be adjusted.
5291
5292 2001-10-02 Akim Demaille <akim@epita.fr>
5293
5294 * src/output.c (output_parser): Assert `skeleton'.
5295 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
5296 systems.
5297 From Shura.
5298
5299 2001-10-01 Marc Autret <autret_m@epita.fr>
5300
5301 * src/lex.h: Echo modifications.
5302 * src/lex.c (unlex): Parameter is now token_t.
5303 From Hans Aberg.
5304
5305 2001-10-01 Marc Autret <autret_m@epita.fr>
5306
5307 * src/main.c: Include lex.h.
5308 From Hans Aberg.
5309
5310 2001-09-29 Akim Demaille <akim@epita.fr>
5311
5312 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
5313
5314 2001-09-28 Akim Demaille <akim@epita.fr>
5315
5316 * tests/testsuite.at: Update to newer Autotest.
5317 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
5318
5319 2001-09-27 Akim Demaille <akim@epita.fr>
5320
5321 Position independent wrapper.
5322
5323 * tests/bison: Remove.
5324 * tests/bison.in: New.
5325 * configure.in: Adjust.
5326
5327 2001-09-27 Paul Eggert <eggert@twinsun.com>
5328
5329 Port quotearg fixes from tar 1.13.24.
5330
5331 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
5332 tm to be declared.
5333 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
5334 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
5335
5336 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
5337 * m4/mbrtowc.m4: New file.
5338 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
5339 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
5340
5341 2001-09-27 Akim Demaille <akim@epita.fr>
5342
5343 Bump to 1.29c.
5344
5345 2001-09-27 Akim Demaille <akim@epita.fr>
5346
5347 Version 1.29b.
5348
5349 2001-09-25 Akim Demaille <akim@epita.fr>
5350
5351 * src/system.h: Include `xalloc.h'.
5352 Remove it from the C files.
5353 * src/files.c (output_files): Free the obstacks.
5354 * src/lex.c (init_lex): Rename as...
5355 (lex_init): this.
5356 (lex_free): New.
5357 * src/main.c (main): Use it.
5358
5359 2001-09-24 Marc Autret <autret_m@epita.fr>
5360
5361 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
5362 to output informations in fout (FILE*).
5363 (open_graph, close_graph): Likewise.
5364 (output_graph, output_edge, output_node): Likewise.
5365 * src/vcg.h: Update function prototypes.
5366 * src/print_graph.c (print_graph): Open output graph file.
5367 (print_actions): Adjust.
5368 * src/files.h: Remove extern declaration.
5369 * src/files.c: Remove graph_obstack declaration.
5370 (open_files): Remove graph_obstack initialization.
5371 (output_files): Remove graph_obstack saving.
5372
5373 2001-09-24 Marc Autret <autret_m@epita.fr>
5374
5375 * src/files.c (compute_output_file_names): Fix.
5376
5377 2001-09-24 Marc Autret <autret_m@epita.fr>,
5378 Akim Demaille <akim@epita.fr>
5379
5380 * src/reader.c (reader): Remove call to free_symtab ().
5381 * src/main.c (main): Call it here.
5382 Include symtab.h.
5383 * src/conflicts.c (initialize_conflicts): Rename as...
5384 (solve_conflicts): this.
5385 * src/print.c (print_core, print_actions, print_state)
5386 (print_grammar): Dump to a file instead a `output_obstack'.
5387 (print_results): Dump `output_obstack', and then proceed with the
5388 FILE *.
5389 * src/files.c (compute_output_file_names, close_files): New.
5390 (output_files): Adjust.
5391 * src/main.c (main): Adjust.
5392
5393 2001-09-23 Marc Autret <autret_m@epita.fr>
5394
5395 * src/files.c (compute_header_macro): Computes header macro name
5396 from spec_defines_file when given.
5397
5398 2001-09-23 Marc Autret <autret_m@epita.fr>
5399
5400 * src/files.c (output_files): Add default extensions.
5401
5402 2001-09-22 Akim Demaille <akim@epita.fr>
5403
5404 * src/conflicts.c (finalize_conflicts): Rename as...
5405 (free_conflicts): this.
5406
5407 2001-09-22 Akim Demaille <akim@epita.fr>
5408
5409 * src/gram.c (gram_free): Rename back as...
5410 (dummy): this.
5411 (output_token_translations): Free `token_translations'.
5412 * src/symtab.c (free_symtab): Free the tag field.
5413
5414 2001-09-22 Akim Demaille <akim@epita.fr>
5415
5416 Remove `translations' as it is always set to true.
5417
5418 * src/gram.h: Adjust.
5419 * src/reader.c (packsymbols, parse_token_decl): Adjust
5420 * src/print.c (print_grammar): Adjust.
5421 * src/output.c (output_token_translations): Adjust.
5422 * src/lex.c (lex): Adjust.
5423 * src/gram.c: Be sure the set pointers to NULL.
5424 (dummy): Rename as...
5425 (gram_free): this.
5426
5427 2001-09-22 Akim Demaille <akim@epita.fr>
5428
5429 * configure.in: Invoke AM_LIB_DMALLOC.
5430 * src/system.h: Use dmalloc.
5431 * src/LR0.c: Be sure to have pointers initialized to NULL.
5432 (allocate_itemsets): Allocate kernel_items only if needed.
5433
5434 2001-09-22 Akim Demaille <akim@epita.fr>
5435
5436 * configure.in: Bump to 1.29b.
5437 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
5438 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
5439 need xmalloc.c in calc.y.
5440 From Pascal Bart.
5441
5442 2001-09-21 Akim Demaille <akim@epita.fr>
5443
5444 Version 1.29a.
5445 * Makefile.maint, config/config.guess, config/config.sub,
5446 * config/missing: Update from masters.
5447 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
5448 upon package.m4.
5449 * configure.in (ALL_LINGUAS): Add `tr'.
5450
5451 2001-09-21 Akim Demaille <akim@epita.fr>
5452
5453 * tests/Makefile.am (package.m4): Move to...
5454 ($(srcdir)/$(TESTSUITE)): here.
5455
5456 2001-09-20 Akim Demaille <akim@epita.fr>
5457
5458 * src/complain.c: No longer try to be standalone: use system.h.
5459 Don't assume __STDC__ is defined to 1. Just test if it is defined.
5460 * src/complain.h: Likewise.
5461 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
5462 Remove the unused variable `n'.
5463 From Albert Chin-A-Young.
5464
5465 2001-09-18 Marc Autret <autret_m@epita.fr>
5466
5467 * doc/bison.1: Update.
5468 * doc/bison.texinfo (Bison Options): Update --defines and --graph
5469 descriptions.
5470 (Option Cross Key): Update.
5471 Add --graph.
5472
5473 2001-09-18 Marc Autret <autret_m@epita.fr>
5474
5475 * tests/regression.at: New test (comment in %union).
5476
5477 2001-09-18 Marc Autret <autret_m@epita.fr>
5478
5479 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
5480 do that.
5481 Reported by Keith Browne.
5482
5483 2001-09-18 Marc Autret <autret_m@epita.fr>
5484
5485 * tests/output.at: Add tests for --defines and --graph.
5486
5487 2001-09-18 Marc Autret <autret_m@epita.fr>
5488
5489 * tests/output.at: Removes tests of %{header,src}_extension features.
5490
5491 2001-09-18 Akim Demaille <akim@epita.fr>
5492
5493 * tests/Makefile.am (package.m4): New.
5494 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
5495 (_AT_CHECK_CALC_ERROR): Likewise.
5496 Factor the `, ' part of verbose error messages.
5497
5498 2001-09-18 Marc Autret <autret_m@epita.fr>
5499
5500 * src/getargs.c (longopts): Declare --defines and --graph as options
5501 with optional arguments.
5502 * src/files.h: Add extern declarations.
5503 * src/files.c (spec_graph_file, spec_defines_file): New.
5504 (output_files): Update.
5505 Remove CPP-outed code.
5506
5507 2001-09-18 Marc Autret <autret_m@epita.fr>
5508
5509 Turn off %{source,header}_extension feature.
5510
5511 * src/files.c (compute_exts_from_gf): Update.
5512 (compute_exts_from_src): Update.
5513 (output_files): CPP-out useless code.
5514 * src/files.h: Remove {header,source}_extension extern declarations.
5515 * src/reader.c (parse_dquoted_param): CPP-out.
5516 (parse_header_extension_decl): Remove.
5517 (parse_source_extension_decl): Remove.
5518 (read_declarations): Remove cases tok_{hdrext,srcext}.
5519 * src/lex.c (percent_table): Remove {header,source}_extension entries.
5520 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
5521
5522 2001-09-10 Akim Demaille <akim@epita.fr>
5523
5524 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
5525 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
5526 (AT_CHECK_OUTPUT): this.
5527 Merely check ls' exit status, its output is useless.
5528
5529 2001-09-10 Akim Demaille <akim@epita.fr>
5530
5531 * tests/calc.at: Use m4_match.
5532 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
5533
5534 2001-09-10 Marc Autret <autret_m@epita.fr>,
5535 Akim Demaille <akim@epita.fr>
5536
5537 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
5538 enum color_e.
5539 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
5540 to `normal'.
5541 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
5542 * src/lex.h: Adjust prototype.
5543 (token_t): Add `tok_undef'.
5544 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
5545 (parse_percent_token): Now returns token_t.
5546 Add default statement in switch.
5547 (lex): Separate `c' as an input variable, from the token_t result
5548 part.
5549 (unlexed): Is a token_t.
5550
5551 2001-09-10 Akim Demaille <akim@epita.fr>
5552
5553 * configure.in: Bump to 1.29a.
5554
5555 2001-09-07 Akim Demaille <akim@epita.fr>
5556
5557 Version 1.29.
5558
5559 2001-08-30 Akim Demaille <akim@epita.fr>
5560
5561 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
5562 * m4/atconfig.m4: Remove.
5563 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
5564 * tests/bison: New.
5565 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
5566 m4_if, m4_patsubst, and m4_regexp.
5567 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
5568 `input' file instead of echo.
5569
5570 2001-08-29 Akim Demaille <akim@epita.fr>
5571
5572 Bump to 1.28e.
5573
5574 2001-08-29 Akim Demaille <akim@epita.fr>
5575
5576 Version 1.28d.
5577
5578 2001-08-29 Paul Eggert <eggert@twinsun.com>
5579
5580 * src/bison.simple (yyparse): Don't take the address of an
5581 item before the start of an array, as that doesn't conform to
5582 the C Standard.
5583
5584 2001-08-29 Robert Anisko <anisko_r@epita.fr>
5585
5586 * doc/bison.texinfo (Location Tracking Calc): New node.
5587
5588 2001-08-29 Paul Eggert <eggert@twinsun.com>
5589
5590 * src/output.c (output): Do not define const, as this now
5591 causes more problems than it cures.
5592
5593 2001-08-29 Akim Demaille <akim@epita.fr>
5594
5595 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
5596 the nodes.
5597 Be sure to tag the `detailmenu'.
5598
5599 2001-08-29 Akim Demaille <akim@epita.fr>
5600
5601 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
5602 download in a tmp dir.
5603
5604 2001-08-28 Marc Autret <autret_m@epita.fr>
5605
5606 * config/depcomp: New file.
5607
5608 2001-08-28 Marc Autret <autret_m@epita.fr>
5609
5610 * doc/bison.1 (mandoc): Adjust.
5611 From Juan Manuel Guerrero.
5612
5613 2001-08-28 Marc Autret <autret_m@epita.fr>
5614
5615 * src/print_graph.c (print_state): Fix.
5616
5617 2001-08-27 Marc Autret <autret_m@epita.fr>
5618
5619 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
5620 char * members.
5621 Echo modifications to the functions prototypes.
5622 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
5623
5624 2001-08-27 Marc Autret <autret_m@epita.fr>
5625
5626 * src/vcg.c: Include `xalloc.h'.
5627 (add_colorentry): New.
5628 (add_classname): New.
5629 (add_infoname): New.
5630 * src/vcg.h: Add new prototypes.
5631
5632 2001-08-27 Akim Demaille <akim@epita.fr>
5633
5634 * Makefile.maint: Sync. again with CVS Autoconf.
5635
5636 2001-08-27 Akim Demaille <akim@epita.fr>
5637
5638 * Makefile.maint: Formatting changes.
5639 (po-update, cvs-update, update): New targets.
5640 (AMTAR): Remove.
5641
5642 2001-08-27 Akim Demaille <akim@epita.fr>
5643
5644 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
5645 * Makefile.maint: Sync. with CVS Autoconf.
5646
5647 2001-08-27 Marc Autret <autret_m@epita.fr>
5648
5649 * src/vcg.h (struct infoname_s): New.
5650 (struct colorentry_s): New.
5651 (graph_s): New fields {vertical,horizontal}_order in structure.
5652 Add `infoname' field.
5653 Add `colorentry' field;
5654 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
5655 (G_HORIZONTAL_ORDER): New.
5656 (G_INFONAME): New.
5657 (G_COLORENTRY): New.
5658 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
5659 Add output of `infoname'.
5660 Add output of `colorentry'.
5661
5662 2001-08-27 Marc Autret <autret_m@epita.fr>
5663
5664 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
5665 This one shadowed a global parameter.
5666
5667 2001-08-24 Marc Autret <autret_m@epita.fr>
5668
5669 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
5670 instead of `unsigned'.
5671 (print_state): Do not call obstack_object_size () in obstack_grow ()
5672 to avoid macro variables shadowing.
5673
5674 2001-08-23 Marc Autret <autret_m@epita.fr>
5675
5676 * src/lex.c (percent_table): Typo: s/naem/name/.
5677 Add graph option.
5678 Normalize new options declarations.
5679
5680 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
5681
5682 * tests/suite.at: Exercise %header_extension and %source_extension.
5683
5684 2001-08-16 Marc Autret <autret_m@epita.fr>
5685
5686 * src/reader.c (parse_dquoted_param): New.
5687 (parse_header_extension_decl): Use it.
5688 (parse_source_extension_decl): Likewise.
5689
5690 2001-08-16 Marc Autret <autret_m@epita.fr>
5691
5692 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
5693 (get_xxxx_str): Use assert () instead of complain ().
5694 Remove return invokations in default cases.
5695 (get_decision_str): Modify default behaviour. Remove second argument.
5696 Echo modifications on calls.
5697 (output_graph): Fix.
5698
5699 2001-08-16 Marc Autret <autret_m@epita.fr>
5700
5701 * src/getargs.c (usage): Update with ``-g, --graph''.
5702
5703 2001-08-16 Marc Autret <autret_m@epita.fr>
5704
5705 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
5706 (Option Cross Key): Likewise.
5707 * doc/bison.1: Update.
5708
5709 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
5710
5711 * src/output.c (output_master_parser): Don't finish action_obstack.
5712 (output_parser): Don't care about the muscle action, here.
5713 (prepare): Copy the action_obstack in the action muscle.
5714 (output): Free action_obstack.
5715
5716 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
5717
5718 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
5719 will contain `%union' declaration.
5720 (parse_union_decl): Delete #line directive output.
5721 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
5722 informations about %union.
5723 (parse_union_decl): Copy the union_obstack in the muscle stype.
5724 * src/bison.simple: Add new #line directive.
5725 Add typdef %%stype YYSTYPE.
5726
5727 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
5728
5729 * src/bison.simple: Add new `#line' directive.
5730
5731 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
5732
5733 * src/bison.simple: New `#line' directive.
5734 * src/output.c (output_parser): Support new dynamic muscle input_line.
5735
5736 2001-09-22 Marc Autret <autret_m@epita.fr>
5737
5738 * src/output.c (output_master_parser): New.
5739 (output_parser): Be more re-entrant.
5740
5741 2001-09-21 Marc Autret <autret_m@epita.fr>
5742
5743 * src/reader.c (copy_definition, parse_union_decl): Update and use
5744 `linef' muscle.
5745 (copy_action): Likewise.
5746 Use obstack_1grow ().
5747 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
5748
5749 2001-09-21 Marc Autret <autret_m@epita.fr>
5750
5751 * src/options.c (option_table): Adjust.
5752 * src/lex.c (parse_percent_token): Fix.
5753
5754 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
5755
5756 * src/options.c (symtab.h): Include it, need by lex.h.
5757
5758 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
5759
5760 * src/lex.c (parse_percent_token): Change type of variable `tx', which
5761 is now an option_table_struct*.
5762 (option_strcmp): New function option_strcmp.
5763 (parse_percent_token): Call option_strcmp.
5764 * src/getargs.c (xalloc.h, options.h): Include it.
5765 (getargs): Call create_long_option_table.
5766 (getargs): Free longopts at the end of the function.
5767 (shortopts): Move in options.c.
5768 * src/options.c (create_long_option_table): New function. Convert
5769 information from option_table to option structure.
5770 * src/reader.c (options.h): Include it.
5771
5772 * src/Makefile.am: Adjust.
5773 * src/options.c (option_table): Create from longopts and percent_table.
5774 * src/getargs.c (longopts): Delete.
5775 * src/lex.c (struct percent_table_struct): Delete.
5776 (percent_table): Delete.
5777 (options.h): Include it.
5778 * src/options.c: Create.
5779 * src/options.h: Create.
5780 Declare enum opt_access_e.
5781 Define struct option_table_struct.
5782
5783 2001-09-20 Marc Autret <autret_m@epita.fr>
5784
5785 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
5786 sections of Bison.
5787
5788 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
5789
5790 * src/bison.simple: s/%%filename/%%skeleton.
5791 * src/muscle_tab.c (getargs.h): Include it.
5792 (muscle_init): Insert new muscle skeleton.
5793
5794 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
5795
5796 * src/output.c (output_parser): Delete unused variable actions_dumped.
5797
5798 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
5799
5800 * src/output.c (output): Delete call to reader_output_yylsp.
5801 * src/reader.c (reader): Likewise.
5802 * src/reader.h: Delete declaration of reader_output_yylsp.
5803
5804 2001-09-02 Marc Autret <autret_m@epita.fr>
5805
5806 * src/reader.c: Include muscle_tab.h.
5807 (parse_union_decl): Update.
5808 (parse_macro_decl): Rename parse_muscle_decl.
5809 Update to use renamed functions and variable.
5810 (read_declarations, copy_action, read_additionnal_code, : Updated
5811 with correct variables and functions names.
5812 (packsymbols, reader): Likewise.
5813
5814 * src/reader.h (muscle_obstack): Extern declaration update.
5815
5816 * src/output.c: Include muscle_tab.h
5817 In all functions using macro_insert, change by using muscle_insert ().
5818 (macro_obstack): Rename muscle_obstack.
5819 Echo modifications in the whole file.
5820 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
5821 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
5822 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
5823
5824 * src/muscle_tab.h: Update double inclusion macros.
5825 (macro_entry_s): Rename muscle_entry_s.
5826 Update prototypes.
5827
5828 * src/muscle_tab.c: Include muscle_tab.h.
5829 Rename macro_tabble to muscle_table.
5830 (mhash1, mhash2, mcmp): Use muscle_entry.
5831 (macro_init): Rename muscle_init. Update.
5832 (macro_insert): Rename muscle_insert. Update.
5833 (macro_find): Rename muscle_find. Update.
5834
5835 * src/main.c: Include muscle_tab.h.
5836 (main): Call muscle_init ().
5837 * src/Makefile.am (bison_SOURCES): Echo modifications.
5838
5839 2001-09-02 Marc Autret <autret_m@epita.fr>
5840
5841 Now the files macro_tab.[ch] are named muscle_tab.[ch].
5842
5843 * src/muscle_tab.c, src/muscle_tab.h: Add files.
5844
5845 2001-09-02 Marc Autret <autret_m@epita.fr>
5846
5847 * src/macrotab.c, src/macrotab.h: Remove.
5848
5849 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
5850
5851 * src/reader.c (copy_guard): Use muscle to specify the `#line'
5852 filename.
5853
5854 2001-09-01 Marc Autret <autret_m@epita.fr>
5855
5856 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
5857 to an explicit value to activate the feature. We do it here.
5858
5859 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
5860
5861 * src/output.c (prepare): Delete the `filename' muscule insertion.
5862 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
5863 (parse_union_decl): Likewise.
5864 * src/macrotab.c (macro_init): Initialize filename by infile.
5865
5866 2001-08-31 Marc Autret <autret_m@epita.fr>
5867
5868 * src/bison.simple (YYLSP_NEEDED): New definition.
5869 * src/output.c (prepare): Add macro insertion of `locations_flag'
5870
5871 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
5872
5873 * src/output.c (prepare): Delete insertion of previous muscles,
5874 and insert the `prefix' muscles.
5875 * src/macrotab.c (macro_init): Likewise.
5876 (macro_init): Initialization prefix directive by `yy'.
5877 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
5878 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
5879 yylval, yydebug, yyerror, yynerrs and yyparse.
5880 New directive `#define' to substitute yydebug, ... with option
5881 name_prefix.
5882
5883 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
5884
5885 * src/main.c (main): Standardize.
5886 * src/output.c (output_table_data, output_parser): Likewise.
5887 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
5888
5889 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
5890
5891 * src/reader.c (read_additionnal_code): Rename %%user_code to
5892 %%epilogue.
5893 * src/output.c (output): Rename %%declarations to %%prologue.
5894 * src/bison.simple: Echo modifications.
5895
5896 2001-08-31 Marc Autret <autret_m@epita.fr>
5897
5898 * src/reader.c (readgram): CleanUp.
5899 (output_token_defines): Likewise.
5900 (packsymbols): Likewise.
5901 (reader): Likewise.
5902 * src/output.c (output): CPP-out useless code.
5903
5904 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
5905
5906 * src/reader.c (reader): Delete obsolete call to function
5907 output_trailers and output_headers.
5908 * src/output.h: Remove obsolete functions prototypes of output_headers
5909 and output_trailers.
5910
5911 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
5912
5913 * src/main.c: Include macrotab.h.
5914 * src/macrotab.h (macro_entry_s): Constify fields.
5915 Adjust functions prototypes.
5916 * src/macrotab.c (macro_insert): Constify key and value.
5917 (macro_find): Constify key.
5918 (macro_insert): Include 'xalloc.h'
5919 (macro_insert): Use XMALLOC.
5920 (macro_find): Constify return value.
5921 * src/output.c (output_table_data): Rename table to table_data.
5922 (output_parser): Constify macro_key, macro_value.
5923
5924 2001-08-30 Marc Autret <autret_m@epita.fr>
5925
5926 * src/reader.c (parse_skel_decl): New.
5927 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
5928 * src/lex.h (token_t): New token `tok_skel'.
5929 * src/lex.c (percent_table): Add skeleton option entry.
5930 Standardize.
5931
5932 2001-08-29 Marc Autret <autret_m@epita.fr>
5933
5934 * src/bison.simple: Add %%user_code directive at the end.
5935 * src/reader.c (read_additionnal_code): New.
5936 (reader): Use it.
5937 * src/output.c (output_program): Remove.
5938 (output): Update.
5939
5940 2001-08-28 Marc Autret <autret_m@epita.fr>
5941
5942 * src/output.c (output_actions): Clean up.
5943 (output_gram): CPP-out useless code.
5944 * src/reader.c (reader): Clean up, CPP-out useless code.
5945
5946 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
5947
5948 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
5949 directive.
5950 * src/bison.simple: Add `%%definitions'.
5951
5952 2001-08-28 Marc Autret <autret_m@epita.fr>
5953
5954 * config/depcomp: New file.
5955
5956 2001-08-27 Paul Eggert <eggert@twinsun.com>
5957
5958 * src/bison.simple (yyparse): Don't take the address of an
5959 item before the start of an array, as that doesn't conform to
5960 the C Standard.
5961
5962 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
5963
5964 * src/output.c (output): Remove the initialization of the macro
5965 obstack. It was done too late here.
5966
5967 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
5968 completely wrong.
5969 (reader): Initialize the macro obstack here, since we need it to grow
5970 '%define' directives.
5971
5972 * src/reader.h: Declare the macro obstack as extern.
5973
5974 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
5975
5976 * src/output.c (output_parser): Fix. Store single '%' characters in
5977 the output obstack instead of throwing them away.
5978
5979 2001-08-27 Akim Demaille <akim@epita.fr>
5980
5981 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
5982
5983 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5984
5985 * lib/Makefile.am: Adjust.
5986
5987 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5988
5989 * src/bison.simple: Update and add '%%' directives.
5990
5991 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5992
5993 * src/reader.c (reader): Remove calls to 'output_headers' and
5994 'output_trailers'. Remove some C output.
5995 (readgram): Disable a piece of code that was writing a default
5996 definition for 'YYSTYPE'.
5997 (reader_output_yylsp): Remove.
5998 (packsymbols): Output token defintions to a macro.
5999 (copy_definition): Disable C output.
6000
6001 * src/reader.c (parse_macro_decl): New function used to parse macro
6002 declarations.
6003 (copy_string2): Put the body of copy_string into this new function.
6004 Add a parameter to let the caller choose whether he wants to copy the
6005 string delimiters or not.
6006 (copy_string): Be a simple call to copy_string2 with the last argument
6007 bound to true.
6008 (read_declarations): Add case for macro definition.
6009 (copy_identifier): New.
6010 (parse_macro_decl): Read macro identifiers using copy_identifier
6011 rather than lex.
6012
6013 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
6014
6015 * src/output.c (prepare): Add prefixed names.
6016 (output_parser): Output semantic actions.
6017 (output_parser): Fix bug on '%%line' directives.
6018
6019 * src/output.c (output_headers): Remove. The C code printed by this
6020 function should now be in the skeletons.
6021 (output_trailers): Remove.
6022 (output): Disable call to 'reader_output_yylsp'.
6023 (output_rule_data): Do not output tables to the table obstack.
6024
6025 * src/output.c: Remove some C dedicated output.
6026 Improve the use of macro and output obstacks.
6027 (output_defines): Remove.
6028
6029 * src/output.c (output_token_translations): Associate 'translate'
6030 table with a macro. No output to the table obstack.
6031 (output_gram): Same for 'rhs' and 'prhs'.
6032 (output_stos): Same for 'stos'.
6033 (output_rule_data): Same for 'r1' and 'r2'.
6034 (token_actions): Same for 'defact'.
6035 (goto_actions): Same for 'defgoto'.
6036 (output_base): Same for 'pact' and 'pgoto'.
6037 (output_table): Same for 'table'.
6038 (output_check): Same for 'check'.
6039
6040 * src/output.c (output_table_data): New function.
6041 (output_short_table): Remove.
6042 (output_short_or_char_table): Remove.
6043
6044 * src/output.c (output_parser): Replace most of the skeleton copy code
6045 with something new. Skeletons are now processed character by character
6046 rather than line by line, and Bison looks for '%%' macros. This is the
6047 first step in making Bison's output process (a lot) more flexible.
6048 (output_parser): Use the macro table.
6049
6050 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
6051
6052 * src/main.c (main): Initialize the macro table.
6053
6054 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
6055
6056 * src/lex.c (percent_table): Add tok_define.
6057 * src/lex.h: Add tok_define.
6058
6059 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
6060
6061 * src/macrotab.c: New file.
6062 * src/macrotab.h: New file.
6063 * src/Makefile.am: Update.
6064
6065 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
6066
6067 * lib/hash.c: New file.
6068 * lib/hash.h: New file.
6069 * lib/Makefile.am: Update.
6070
6071 2001-08-15 Akim Demaille <akim@epita.fr>
6072
6073 Version 1.28c.
6074
6075 2001-08-15 Marc Autret <autret_m@epita.fr>
6076
6077 * src/reader.c (readgram): Indent output macro YYSTYPE.
6078 (packsymbols): Likewise.
6079 (output_token_defines): Likewise.
6080 * src/files.c: Standardize.
6081 (compute_header_macro): New.
6082 (defines_obstack_save): New. Use compute_header_macro.
6083 (output_files): Update. Use defines_obstack_save.
6084
6085 2001-08-15 Akim Demaille <akim@epita.fr>
6086
6087 * doc/bison.texinfo (Table of Symbols): Document
6088 YYSTACK_USE_ALLOCA.
6089
6090 2001-08-15 Akim Demaille <akim@epita.fr>
6091
6092 * missing: Update from CVS Automake.
6093 * config/config.guess, config/config.sub, config/texinfo.tex:
6094 Update from gnu.org.
6095
6096 2001-08-15 Akim Demaille <akim@epita.fr>
6097
6098 * Makefile.maint: Sync with CVS Autoconf.
6099
6100 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
6101
6102 * doc/bison.texinfo: Include GNU Free Documentation License from
6103 `fdl.texi'.
6104 * doc/fdl.texi: Add to package.
6105
6106 2001-08-14 Marc Autret <autret_m@epita.fr>
6107
6108 Turn on %{source,header}_extension features.
6109
6110 * src/lex.c (percent_table): Un-CPP out header_extension and
6111 source_extension.
6112 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
6113 (compute_exts_from_src): Remove conditions. It restores priorities
6114 between options.
6115
6116 2001-08-14 Marc Autret <autret_m@epita.fr>
6117
6118 * src/files.c (compute_base_names): Add extensions computing when
6119 `--file-prefix' used.
6120 Standardize function calls.
6121
6122 2001-08-13 Marc Autret <autret_m@epita.fr>
6123
6124 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
6125 defining it (defined but null disables alloca).
6126
6127 2001-08-13 Marc Autret <autret_m@epita.fr>
6128
6129 * src/bison.simple (_yy_memcpy): CPP reformat.
6130
6131 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
6132
6133 * tests/atconfig.in (CPPFLAGS): Fix.
6134
6135 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
6136
6137 * doc/bison.texinfo: Include GNU General Public License from
6138 `gpl.texi'.
6139 * doc/gpl.texi: Add to package.
6140
6141 2001-08-10 Marc Autret <autret_m@epita.fr>
6142
6143 * src/print_graph.h: Fix.
6144 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
6145
6146 2001-08-10 Akim Demaille <akim@epita.fr>
6147
6148 * src/system.h: Provide default declarations for stpcpy, strndup,
6149 and strnlen.
6150
6151 2001-08-10 Robert Anisko <anisko_r@epita.fr>
6152
6153 * doc/bison.texinfo (Locations): Update @$ stuff.
6154
6155 2001-08-09 Robert Anisko <anisko_r@epita.fr>
6156
6157 * src/bison.simple (YYLLOC_DEFAULT): Update.
6158 (yyparse): Adjust.
6159
6160 2001-08-08 Marc Autret <autret_m@epita.fr>
6161
6162 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
6163 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
6164 Reported by Fabrice Bauzac.
6165
6166 2001-08-08 Marc Autret <autret_m@epita.fr>
6167
6168 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
6169 * src/vcg.c (output_node): Fix.
6170 * src/vcg.h: Cleanup.
6171 * src/print_graph.c: Add comments.
6172 (node_output_size): New global variable. Simplify the formatting of
6173 the VCG graph output.
6174 (print_actions): Unused code is now used. It notifies the final state
6175 and no action states in the VCG graph. It also give the reduce actions.
6176 The `shift and goto' edges are red and the `go to state' edges are
6177 blue.
6178 Get the current node name and node_obstack by argument.
6179 (node_obstack): New variable.
6180 (print_state): Manage node_obstack.
6181 (print_core): Use node_obstack given by argument.
6182 A node is not only computed here but in print_actions also.
6183 (print_graph): CPP out useless code instead of commenting it.
6184
6185 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
6186
6187 * tests/atconfig.in (CPPFLAGS): Fix.
6188
6189 2001-08-07 Akim Demaille <akim@epita.fr>
6190
6191 * src/print_graph.c (quote): New.
6192 (print_core): Use it.
6193
6194 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
6195
6196 * src/vcg.c (complain.h): Include it.
6197 Unepitaize `return' invocations.
6198 [NDEBUG] (main): Remove.
6199 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
6200 * src/files.c (open_files): Initialize graph_obstack.
6201 * src/print_graph.c (print_actions): CPP out useless code.
6202 (print_core): Don't output the last `\n' in labels.
6203 Use `quote'.
6204 * src/files.c (output_files): Output the VCG file.
6205 * src/main.c (main): Invoke print_graph ();
6206
6207 2001-08-06 Marc Autret <autret_m@epita.fr>
6208
6209 Automaton VCG graph output.
6210 Using option ``-g'' or long option ``--graph'', you can generate
6211 a gram_filename.vcg file containing a VCG description of the LALR (1)
6212 automaton of your grammar.
6213
6214 * src/main.c: Call to print_graph() function.
6215 * src/getargs.h: Update.
6216 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
6217 (graph_flag): New flag.
6218 (longopts): Update.
6219 (getargs): Add case `g'.
6220 * src/files.c (graph_obstack): New obstack struct.
6221 (open_files): Initialize new obstack.
6222 (output_files): Saves graph_obstack if required.
6223 * src/files.h (graph_obstack): New extern declaration.
6224 * src/Makefile.am: Add new source files.
6225
6226 2001-08-06 Marc Autret <autret_m@epita.fr>
6227
6228 * src/print_graph.c, src/print_graph.h (graph): New.
6229 * src/vcg.h: New file.
6230 * src/vcg.c: New file, VCG graph handling.
6231
6232 2001-08-06 Marc Autret <autret_m@epita.fr>
6233
6234 Add of %source_extension and %header_extension which specify
6235 the source or/and the header output file extension.
6236
6237 * src/files.c (compute_base_names): Remove initialisation of
6238 src_extension and header_extension.
6239 (compute_exts_from_gf): Update.
6240 (compute_exts_from_src): Update.
6241 (output_files): Update.
6242 * src/reader.c (parse_header_extension_decl): New.
6243 (parse_source_extension_decl): New.
6244 (read_declarations): New case statements for the new tokens.
6245 * src/lex.c (percent_table): Add entries for %source_extension
6246 and %header_extension.
6247 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
6248
6249 2001-08-06 Marc Autret <autret_m@epita.fr>
6250
6251 * configure.in: Bump to 1.28c.
6252 * doc/bison.texinfo: Texinfo thingies.
6253
6254 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
6255
6256 * tests/atconfig.in (CPPFLAGS): Add.
6257 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
6258
6259 2001-08-03 Akim Demaille <akim@epita.fr>
6260
6261 Version 1.28b.
6262
6263 2001-08-03 Akim Demaille <akim@epita.fr>
6264
6265 * tests/Makefile.am (check-local): Ship testsuite.
6266 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
6267 Include `string.h'.
6268
6269 2001-08-03 Akim Demaille <akim@epita.fr>
6270
6271 * configure.in: Try using -Wformat when compiling.
6272
6273 2001-08-03 Akim Demaille <akim@epita.fr>
6274
6275 * configure.in: Bump to 1.28b.
6276
6277 2001-08-03 Akim Demaille <akim@epita.fr>
6278
6279 * src/complain.c: Adjust strerror_r portability issues.
6280
6281 2001-08-03 Akim Demaille <akim@epita.fr>
6282
6283 Version 1.28a.
6284
6285 2001-08-03 Akim Demaille <akim@epita.fr>
6286
6287 * src/getargs.c, src/getarg.h (skeleton)): Constify.
6288 * src/lex.c (literalchar): Avoid name clashes on `buf'.
6289 * src/getargs.c: Include complain.h.
6290 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
6291 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
6292
6293 2001-08-03 Akim Demaille <akim@epita.fr>
6294
6295 * src/reader.c (readgram): Display hidden chars in error messages.
6296
6297 2001-08-03 Akim Demaille <akim@epita.fr>
6298
6299 Update to gettext 0.10.39.
6300
6301 2001-08-03 Akim Demaille <akim@epita.fr>
6302
6303 * lib/strspn.c: New.
6304
6305 2001-08-01 Marc Autret <autret_m@epita.fr>
6306
6307 * doc/bison.texinfo: Update.
6308 * doc/bison.1 (mandoc): Update.
6309 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
6310 * src/files.c: Support output files extensions computing.
6311 (src_extension): New static variable.
6312 (header_extension): New static variable.
6313 (tr): New function.
6314 (get_extension_index): New function, gets the index of an extension
6315 filename in a string.
6316 (compute_exts_from_gf): New function, computes extensions from the
6317 grammar file extension.
6318 (compute_exts_from_src): New functions, computes extensions from the
6319 C source file extension, file given by ``-o'' option.
6320 (compute_base_names): Update.
6321 (output_files): Update.
6322
6323 2001-08-01 Robert Anisko <anisko_r@epita.fr>
6324
6325 * doc/bison.texi: Document @$.
6326 (Locations): New section.
6327
6328 2001-07-18 Akim Demaille <akim@epita.fr>
6329
6330 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
6331 * config/prev-version.txt, config/move-if-change: New.
6332 * Makefile.am: Adjust.
6333
6334 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
6335
6336 * src/bison.simple (yyparse): Suppress warning `comparaison
6337 between signed and unsigned'.
6338
6339 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
6340
6341 * src/getargs.h (raw_flag): Remove.
6342 * src/getargs.c: Die on `-r'/`--raw'.
6343 * src/lex.c (parse_percent_token): Die on `%raw'.
6344 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
6345 * tests/calc.at: Suppress test with option `--raw'.
6346
6347 2001-07-14 Akim Demaille <akim@epita.fr>
6348
6349 * config/: New.
6350 * configure.in: Require Autoconf 2.50.
6351 Update to gettext 0.10.38.
6352
6353 2001-03-16 Akim Demaille <akim@epita.fr>
6354
6355 * doc/bison.texinfo: ANSIfy the examples.
6356
6357 2001-03-16 Akim Demaille <akim@epita.fr>
6358
6359 * getargs.c (skeleton): New variable.
6360 (longopts): --skeleton is a new option.
6361 (shortopts, getargs): -S is a new option.
6362 * getargs.h: Declare skeleton.
6363 * output.c (output_parser): Use it.
6364
6365 2001-03-16 Akim Demaille <akim@epita.fr>
6366
6367 * m4/strerror_r.m4: New.
6368 * m4/error.m4: Run AC_FUNC_STRERROR_R.
6369 * lib/error.h, lib/error.c: Update.
6370
6371 2001-03-16 Akim Demaille <akim@epita.fr>
6372
6373 * src/getargs.c (longopts): Clean up.
6374
6375 2001-02-21 Akim Demaille <akim@epita.fr>
6376
6377 * src/reader.c (gensym): `gensym_count' is your own.
6378 Use a static buf to create the symbol name, as token_buffer is no
6379 longer a buffer.
6380
6381 2001-02-08 Akim Demaille <akim@epita.fr>
6382
6383 * src/conflicts.c (conflict_report): Be sure not to append to res
6384 between two calls, which could happen if both first sprintf were
6385 skipped, but not the first cp += strlen.
6386
6387 2001-02-08 Akim Demaille <akim@epita.fr>
6388
6389 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
6390 New, from fileutils 4.0.37.
6391 * configure.in: Require Autoconf 2.49c. I took some time before
6392 making this decision. This is the only way out for portability
6393 issues in Bison, it would mean way too much duplicate effort to
6394 import in Bison features implemented in 2.49c since 2.13.
6395 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
6396
6397 2001-02-02 Akim Demaille <akim@epita.fr>
6398
6399 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
6400 * lib/xalloc.h, lib/xmalloc.c: Update.
6401
6402 2001-01-19 Akim Demaille <akim@epita.fr>
6403
6404 Get rid of the ad hoc handling of token_buffer in the scanner: use
6405 the obstacks.
6406
6407 * src/lex.c (token_obstack): New.
6408 (init_lex): Initialize it. No longer call...
6409 (grow_token_buffer): this. Remove it.
6410 Adjust all the places which used it to use the obstack.
6411
6412 2001-01-19 Akim Demaille <akim@epita.fr>
6413
6414 * src/lex.h: Rename all the tokens:
6415 s/\bENDFILE\b/tok_eof/g;
6416 s/\bIDENTIFIER\b/tok_identifier/g;
6417 etc.
6418 Let them be enums, not #define, to ease debugging.
6419 Adjust all the code.
6420
6421 2001-01-18 Akim Demaille <akim@epita.fr>
6422
6423 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
6424 * src/lex.c (maxtoken, grow_token_buffer): Static.
6425
6426 2001-01-18 Akim Demaille <akim@epita.fr>
6427
6428 Since we now use obstacks, more % directives can be enabled.
6429
6430 * src/lex.c (percent_table): Also accept `%yacc',
6431 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
6432 `%debug'.
6433 Handle the actions for `%semantic_parser' and `%pure_parser' here,
6434 instead of returning a token.
6435 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
6436 * src/reader.c (read_declarations): Adjust.
6437 * src/files.c (open_files): Don't call `compute_base_names', don't
6438 compute `attrsfile' since they depend upon data which might be
6439 *in* the input file now.
6440 (output_files): Do it here.
6441 * src/output.c (output_headers): Document the fact that this patch
6442 introduces a guaranteed SEGV for semantic parsers.
6443 * doc/bison.texinfo: Document them.
6444 * tests/suite.at: Exercise these %options.
6445
6446 2000-12-20 Akim Demaille <akim@epita.fr>
6447
6448 Also handle the output file (--verbose) with obstacks.
6449
6450 * files.c (foutput): Remove.
6451 (output_obstack): New.
6452 Adjust all dependencies.
6453 * src/conflicts.c: Return a string.
6454 * src/system.h (obstack_grow_string): Rename as...
6455 (obstack_sgrow): this. Be ready to work with non literals.
6456 (obstack_fgrow4): New.
6457
6458 2000-12-20 Akim Demaille <akim@epita.fr>
6459
6460 * src/files.c (open_files): Fix the computation of short_base_name
6461 in the case of `-o foo.tab.c'.
6462
6463 2000-12-20 Akim Demaille <akim@epita.fr>
6464
6465 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
6466 (copy_dollar): Now that everything uses obstacks, get rid of the
6467 FILE * parameters.
6468
6469 2000-12-20 Akim Demaille <akim@epita.fr>
6470
6471 * src/files.c (open_files): Actually the `.output' file is based
6472 on the short_base_name, not base_name.
6473 * tests/suite.at (Checking output file names): Adjust.
6474
6475 2000-12-20 Akim Demaille <akim@epita.fr>
6476
6477 * src/bison.s1: Remove, we now use directly...
6478 * src/bison.simple: this.
6479 * src/Makefile.am: Use pkgdata instead of data.
6480
6481 2000-12-20 Akim Demaille <akim@epita.fr>
6482
6483 * src/files.c (guard_obstack): New.
6484 (open_files): Initialize it.
6485 (output_files): Dump it...
6486 * src/files.h: Export it.
6487 * src/reader.c (copy_guard): Use it.
6488
6489 2000-12-19 Akim Demaille <akim@epita.fr>
6490
6491 * src/files.c (outfile, defsfile, actfile): Removed as global
6492 vars.
6493 (open_files): Don't compute them.
6494 (output_files): Adjust.
6495 (base_name, short_base_name): Be global.
6496 Adjust dependencies.
6497
6498 2000-12-19 Akim Demaille <akim@epita.fr>
6499
6500 * src/files.c (strsuffix): New.
6501 (stringappend): Be just like strcat but allocate.
6502 (base_names): Eve out from open_files.
6503 Try to simplify the rather hairy computation of base_name and
6504 short_base_name.
6505 (open_files): Use it.
6506 * tests/suite.at (Checking output file names): New test.
6507
6508 2000-12-19 Akim Demaille <akim@epita.fr>
6509
6510 * src/system.h (obstack_grow_literal_string): Rename as...
6511 (obstack_grow_string): this.
6512 * src/output.c (output_parser): Recognize `%% actions' instead of
6513 `$'.
6514 * src/bison.s1: s/$/%% actions/.
6515 * src/bison.hairy: Likewise.
6516
6517 2000-12-19 Akim Demaille <akim@epita.fr>
6518
6519 * src/output.c (output_parser): Compute the `#line' lines when
6520 there are.
6521 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
6522 Suggested by Hans Aberg.
6523
6524 2000-12-19 Akim Demaille <akim@epita.fr>
6525
6526 Let the handling of the skeleton files be local to the procedures
6527 that use it.
6528
6529 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
6530 longer static.
6531 (fparser, open_extra_files): Remove.
6532 (open_files, output_files): Don't take care of fparser.
6533 * src/files.h: Adjust.
6534 * src/output.c (output_parser): Open and close the file to the
6535 skeleton.
6536 * src/reader.c (read_declarations): When %semantic_parser, open
6537 fguard.
6538
6539 2000-12-19 Akim Demaille <akim@epita.fr>
6540
6541 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
6542 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
6543
6544 2000-12-19 Akim Demaille <akim@epita.fr>
6545
6546 * src/files.c (open_files): Yipee! We no longer need all the code
6547 looking for `/tmp' since we have no tmp file.
6548
6549 2000-12-19 Akim Demaille <akim@epita.fr>
6550
6551 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
6552 New macros.
6553 * src/files.c (open_files): Less dependency on MSDOS etc.
6554
6555 2000-12-14 Akim Demaille <akim@epita.fr>
6556
6557 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
6558 Provide a default definition.
6559 Use it when executing the default @ action.
6560 * src/reader.c (reader_output_yylsp): No longer include
6561 `timestamp' and `text' in the default YYLTYPE.
6562
6563 2000-12-12 Akim Demaille <akim@epita.fr>
6564
6565 * src/reader.c (copy_definition, parse_union_decl, copy_action)
6566 (copy_guard): Quote the file names.
6567 Reported by Laurent Mascherpa.
6568
6569 2000-12-12 Akim Demaille <akim@epita.fr>
6570
6571 * src/output.c (output_headers, output_program, output): Be sure
6572 to escape special characters when outputting filenames.
6573 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
6574 (output_headers): Don't depend on them, Use ACTSTR.
6575
6576 2000-11-17 Akim Demaille <akim@epita.fr>
6577
6578 * lib/obstack.h: Formatting changes.
6579 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
6580 prevents type checking.
6581 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
6582 cast the value to (void *): assigning a `foo *' to a `void *'
6583 variable is valid.
6584 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
6585 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
6586 append characters.
6587
6588 2000-11-17 Akim Demaille <akim@epita.fr>
6589
6590 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
6591 as...
6592 (suite.m4, regression.m4, calc.m4): these.
6593 * tests/atgeneral.m4: Update from CVS Autoconf.
6594
6595 2000-11-17 Akim Demaille <akim@epita.fr>
6596
6597 * tests/regression.m4 (%union and --defines): New test,
6598 demonstrating a current bug in the obstack implementation.
6599
6600 2000-11-17 Akim Demaille <akim@epita.fr>
6601
6602 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
6603 macros.
6604 Use them to declare the variables which are global or local to
6605 `yyparse'.
6606
6607 2000-11-17 Akim Demaille <akim@epita.fr>
6608
6609 * acconfig.h: Remove, no longer used.
6610
6611 2000-11-07 Akim Demaille <akim@epita.fr>
6612
6613 * src: s/Copyright (C)/Copyright/g.
6614
6615 2000-11-07 Akim Demaille <akim@epita.fr>
6616
6617 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
6618 defining.
6619 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
6620
6621 2000-11-07 Akim Demaille <akim@epita.fr>
6622
6623 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
6624 Merge in a single CPP if/else.
6625
6626 2000-11-07 Akim Demaille <akim@epita.fr>
6627
6628 * src/output.c (output): Remove useless variables.
6629 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
6630 argument `data' for consistency with the prototypes.
6631 Qualify it `const'.
6632 (obstack_copy, obstack_copy0): Rename the second argument as
6633 `address' for consistency. Qualify it `const'.
6634 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
6635 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
6636 `const' their input argument (`data' or `address').
6637 Adjust the corresponding macros to include `const' in casts.
6638
6639 2000-11-03 Akim Demaille <akim@epita.fr>
6640
6641 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
6642 s/PFILE1/BISON_HAIRY/.
6643 Adjust dependencies.
6644
6645 2000-11-03 Akim Demaille <akim@epita.fr>
6646
6647 For some reason, this was not applied.
6648
6649 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
6650 `unlink': it's no longer used.
6651
6652 2000-11-03 Akim Demaille <akim@epita.fr>
6653
6654 * src/files.c (skeleton_find): New function, eved out of...
6655 (open_files, open_extra_files): here.
6656
6657 2000-11-03 Akim Demaille <akim@epita.fr>
6658
6659 Don't use `atexit'.
6660
6661 * src/files.c (obstack_save): New function.
6662 (done): Rename as...
6663 (output_files): this.
6664 Use `obstack_save'.
6665 * src/main.c (main): Don't use `atexit' to register `done', since
6666 it no longer has to remove tmp files, just call `output_files'
6667 when there are no errors.
6668
6669 2000-11-02 Akim Demaille <akim@epita.fr>
6670
6671 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
6672 `unlink': it's no longer used.
6673 * src/files.h: Formatting changes.
6674
6675 2000-11-02 Akim Demaille <akim@epita.fr>
6676
6677 Remove the last uses of mktemp and unlink/delete.
6678
6679 * src/files.c (fdefines, ftable): Removed.
6680 (defines_ostack, table_obstack): New.
6681 Adjust dependencies of the former into uses of the latter.
6682 * src/output.c (output_short_or_char_table, output_short_table):
6683 Convert to using obstacks.
6684 * src/reader.c (copy_comment2): Accept one FILE * and two
6685 obstacks.
6686 (output_token_defines, reader_output_yylsp): Use obstacks.
6687 * src/system.h (obstack_fgrow3): New.
6688
6689 2000-11-01 Akim Demaille <akim@epita.fr>
6690
6691 Change each use of `fattrs' into a use of `attrs_obstack'.
6692
6693 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
6694 * src/files.c (fattrs): Remove.
6695 (attrs_obstack): New.
6696 Adjust all dependencies.
6697 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
6698
6699 2000-11-01 Akim Demaille <akim@epita.fr>
6700
6701 Introduce obstacks.
6702 Change each use of `faction' into a use of `action_obstack'.
6703
6704 * lib/obstack.h, lib/obstack.c: New files.
6705 * src/files.c (faction): Remove.
6706 (action_obstack): New.
6707 Adjust all dependencies.
6708
6709 2000-10-20 Akim Demaille <akim@epita.fr>
6710
6711 * lib/quote.h (PARAMS): New macro. Use it.
6712
6713 2000-10-16 Akim Demaille <akim@epita.fr>
6714
6715 * src/output.c (output_short_or_char_table): New function.
6716 (output_short_table, output_token_translations): Use it.
6717 (goto_actions): Use output_short_table.
6718
6719 2000-10-16 Akim Demaille <akim@epita.fr>
6720
6721 * src/symtab.c (bucket_new): New function.
6722 (getsym): Use it.
6723
6724 * src/output.c (output_short_table): New argument to display the
6725 comment associated with the table.
6726 Adjust dependencies.
6727 (output_gram): Use it.
6728 (output_rule_data): Nicer output layout for YYTNAME.
6729
6730 2000-10-16 Akim Demaille <akim@epita.fr>
6731
6732 * src/lex.c (read_typename): New function.
6733 (lex): Use it.
6734 * src/reader.c (copy_dollar): Likewise.
6735
6736 2000-10-16 Akim Demaille <akim@epita.fr>
6737
6738 * src/reader.c (copy_comment2): Expect the input stream to be on
6739 the `/' which is suspected to open a comment, instead of being
6740 called after `//' or `/*' was read.
6741 (copy_comment, copy_definition, parse_union_decl, copy_action)
6742 (copy_guard): Adjust.
6743
6744 2000-10-16 Akim Demaille <akim@epita.fr>
6745
6746 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
6747 `read_signed_integer'.
6748
6749 2000-10-16 Akim Demaille <akim@epita.fr>
6750
6751 * src/reader.c (copy_dollar): New function.
6752 (copy_guard, copy_action): Use it.
6753
6754 2000-10-16 Akim Demaille <akim@epita.fr>
6755
6756 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
6757 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
6758 New files, from Fileutils 4.0.27.
6759 * src/main.c (printable_version): Remove.
6760 * src/lex.c, src/reader.c: Use `quote'.
6761
6762 2000-10-04 Akim Demaille <akim@epita.fr>
6763
6764 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
6765
6766 2000-10-04 Akim Demaille <akim@epita.fr>
6767
6768 * doc/bison.texinfo: Various typos spotted by Neil Booth.
6769
6770 2000-10-04 Akim Demaille <akim@epita.fr>
6771
6772 When a literal string is used to define two different tokens,
6773 `bison -v' segfaults.
6774 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
6775
6776 * tests/regression.m4: New file.
6777 Include the core of the sample provided by Piotr Gackiewicz.
6778 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
6779 properly.
6780
6781 2000-10-04 Akim Demaille <akim@epita.fr>
6782
6783 * src/reader.c (parse_expect_decl): Keep `count' within the size
6784 of `buffer'.
6785 From Neil Booth.
6786
6787 2000-10-02 Paul Eggert <eggert@twinsun.com>
6788
6789 * bison.s1 (yyparse): Assign the default value
6790 unconditionally, to avoid a GCC warning and make the parser a
6791 tad smaller.
6792
6793 2000-10-02 Akim Demaille <akim@epita.fr>
6794
6795 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
6796 options.
6797
6798 2000-10-02 Akim Demaille <akim@epita.fr>
6799
6800 * src/derives.c, src/print.c, src/reduce.c: To ease the
6801 translation, move some `\n' out of the translated strings.
6802
6803 2000-10-02 Akim Demaille <akim@epita.fr>
6804
6805 The location tracking mechanism is precious for parse error
6806 messages. Nevertheless, it is enabled only when `@n' is used in
6807 the grammar, which is a different issue (you can use it in error
6808 message, but not in the grammar per se). Therefore, there should
6809 be another means to enable it.
6810
6811 * src/getargs.c (getargs): Support `--locations'.
6812 (usage): Report it.
6813 * src/getargs.h (locationsflag): Export it.
6814 * src/lex.c (percent_table): Support `%locations'.
6815 * src/reader.c (yylsp_needed): Remove this variable, now replaced
6816 with `locationsflag'.
6817 * doc/bison.texinfo: Document `--locations' and `%locations'.
6818 Sort the options.
6819 * tests/calc.m4: Test it.
6820
6821 For regularity of the names, replace each
6822 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
6823 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
6824 In addition replace each `flag' with `_flag'.
6825
6826 2000-10-02 Akim Demaille <akim@epita.fr>
6827
6828 Also test parse error messages, including with YYERROR_VERBOSE.
6829
6830 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
6831 associative).
6832 Use it to check the computations.
6833 Use it to check `nonassoc' is honored.
6834 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
6835 `--yyerror-verbose'.
6836 (_AT_CHECK_CALC): Adjust to this option.
6837 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
6838
6839 2000-10-02 Akim Demaille <akim@epita.fr>
6840
6841 Test also `--verbose', `--defines' and `--name-prefix'. Testing
6842 the latter demonstrates a flaw in the handling of non debugging
6843 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
6844 was used in order to simplify:
6845
6846 #if YYDEBUG
6847 if (yydebug)
6848 {
6849 ...
6850 }
6851 #endif
6852
6853 into
6854
6855 if (yydebug)
6856 {
6857 ...
6858 }
6859
6860 unfortunately this leads to a CPP conflict when
6861 `--name-prefix=foo' is used since it produces `#define yydebug
6862 foodebug'.
6863
6864 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
6865 (YYDPRINTF): New macro.
6866 Spread its use.
6867 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
6868 the bison options.
6869 Also test `--verbose', `--defines' and `--name-prefix'.
6870
6871 2000-10-02 Akim Demaille <akim@epita.fr>
6872
6873 Improve the readability of the produced parsers.
6874
6875 * src/bison.s1: Formatting changes.
6876 Improve the comment related to the `$' mark.
6877 (yydefault): Don't fall through to `yyresume': `goto' there.
6878 * src/output.c (output_parser): When the `$' is met, skip the end
6879 of its line.
6880 New variable, `number_of_dollar_signs', to check there's exactly
6881 one `$' in the parser skeleton.
6882
6883 2000-10-02 Akim Demaille <akim@epita.fr>
6884
6885 * lib/xstrdup.c: New file, from the fileutils.
6886 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
6887 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
6888 instead of strlen + xmalloc + strcpy.
6889 * src/symtab.c (copys): Remove, use xstrdup instead.
6890
6891 2000-10-02 Akim Demaille <akim@epita.fr>
6892
6893 * src/gram.h (associativity): New enum type which replaces the
6894 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
6895 `right_assoc', `left_assoc' and `non_assoc'.
6896 Adjust all dependencies.
6897 * src/reader.c: Formatting changes.
6898 (LTYPESTR): Don't define it, use it as a literal in
6899 `reader_output_yylsp'.
6900 * src/symtab.h (symbol_class): New enum type which replaces the
6901 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
6902 `sunknown', `stoken and `snterm'.
6903
6904 2000-10-02 Akim Demaille <akim@epita.fr>
6905
6906 * src/getargs.c (fixed_outfiles): Rename as...
6907 (yaccflag): for consistency and accuracy.
6908 Adjust dependencies.
6909
6910 2000-10-02 Akim Demaille <akim@epita.fr>
6911
6912 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
6913 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
6914 difficult and introduced a lot of core dump. It turns out that
6915 Bison used an implementation of `xmalloc' based on `calloc', and
6916 at various places it does depend upon the initialization to 0. I
6917 have not tried to isolate the pertinent places, and all the former
6918 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
6919 someone should address this issue.
6920
6921 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
6922 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
6923 files.
6924 Adjust dependencies.
6925 * src/warshall.h: New file.
6926 Propagate.
6927
6928 2000-10-02 Akim Demaille <akim@epita.fr>
6929
6930 Various anti-`extern in *.c' changes.
6931
6932 * src/system.h: Include `assert.h'.
6933
6934 2000-10-02 Akim Demaille <akim@epita.fr>
6935
6936 * src/state.h (nstates, final_state, first_state, first_shift)
6937 (first_reduction): Move their exportation from here...
6938 * src/LR0.h: to here.
6939 Adjust dependencies.
6940 * src/getargs.c (statisticsflag): New variable.
6941 Add support for `--statistics'.
6942 Adjust dependencies.
6943
6944 Remove a lot of now useless `extern' statements in most files.
6945
6946 2000-10-02 Akim Demaille <akim@epita.fr>
6947
6948 * src/LR0.h: New file.
6949 Propagate its use.
6950
6951 2000-10-02 Akim Demaille <akim@epita.fr>
6952
6953 * src/print.h: New file.
6954 Propagate its use.
6955 * src/print.c: Formatting and ordering changes.
6956 (verbose, terse): Replace with...
6957 (print_results): this new function.
6958 Adjust dependencies.
6959
6960 2000-10-02 Akim Demaille <akim@epita.fr>
6961
6962 * src/conflicts.c (conflict_report): New function.
6963 (conflict_log, verbose_conflict_log): Replace with...
6964 (print_conflicts): this function.
6965 Adjust dependencies.
6966 * src/conflicts.h: New file.
6967 Propagate its inclusion.
6968
6969 2000-10-02 Akim Demaille <akim@epita.fr>
6970
6971 * src/nullable.h: New file.
6972 Propagate its inclusion.
6973 * src/nullable.c: Formatting changes.
6974
6975 2000-10-02 Akim Demaille <akim@epita.fr>
6976
6977 * src/reduce.h: New file.
6978 Propagate its inclusion.
6979 * src/reduce.c: Topological sort and other formatting changes.
6980 (bool, TRUE, FALSE): Move their definition to...
6981 * src/system.h: here.
6982
6983 2000-10-02 Akim Demaille <akim@epita.fr>
6984
6985 * src/files.c: Formatting changes.
6986 (tryopen, tryclose, openfiles): Rename as...
6987 (xfopen, xfclose, open_files): this.
6988 (stringappend): static.
6989 * src/files.h: Complete the list of exported symbols.
6990 Propagate its use.
6991
6992 2000-10-02 Akim Demaille <akim@epita.fr>
6993
6994 * src/reader.h: New file.
6995 Propagate its use instead of tedious list of `extern' and
6996 prototypes.
6997 * src/reader.c: Formatting changes, topological sort,
6998 s/register//.
6999
7000 2000-10-02 Akim Demaille <akim@epita.fr>
7001
7002 * src/lex.h: Prototype `lex.c' exported functions.
7003 * src/reader.c: Adjust.
7004 * src/lex.c: Formatting changes.
7005 (safegetc): Rename as...
7006 (xgetc): this.
7007
7008 2000-10-02 Akim Demaille <akim@epita.fr>
7009
7010 * src/lalr.h: New file.
7011 Propagate its inclusion instead of prototypes and `extern'.
7012 * src/lalr.c: Formatting changes, topological sorting etc.
7013
7014 2000-10-02 Akim Demaille <akim@epita.fr>
7015
7016 * src/output.c (token_actions): Introduce a temporary array,
7017 YYDEFACT, that makes it possible for this function to use
7018 output_short_table.
7019
7020 2000-10-02 Akim Demaille <akim@epita.fr>
7021
7022 `user_toknums' is output as a `short[]' in `output.c', while it is
7023 defined as a `int[]' in `reader.c'. For consistency with the
7024 other output tables, `user_toknums' is now defined as a table of
7025 shorts.
7026
7027 * src/reader.c (user_toknums): Be a short table instead of an int
7028 table.
7029 Adjust dependencies.
7030
7031 Factor the short table outputs.
7032
7033 * src/output.c (output_short_table): New function.
7034 * src/output.c (output_gram, output_stos, output_rule_data)
7035 (output_base, output_table, output_check): Use it.
7036
7037 2000-10-02 Akim Demaille <akim@epita.fr>
7038
7039 * src/output.c (output): Topological sort of the functions, in
7040 order to get rid of the `static' prototypes.
7041 No longer use `register'.
7042 * src/output.h: New file.
7043 Propagate its inclusion in files explicitly prototyping functions
7044 from output.c.
7045
7046 2000-09-21 Akim Demaille <akim@epita.fr>
7047
7048 * src/atgeneral.m4: Update from Autoconf.
7049
7050 2000-09-21 Akim Demaille <akim@epita.fr>
7051
7052 * src/closure.h: New file.
7053 * src/closure.c: Formatting changes, topological sort over the
7054 functions, use of closure.h.
7055 (initialize_closure, finalize_closure): Rename as...
7056 (new_closure, free_closure): these. Adjust dependencies.
7057 * src/LR0.c: Formatting changes, topological sort, use of
7058 cloture.h.
7059 (initialize_states): Rename as...
7060 (new_states): this.
7061 * src/Makefile.am (noinst_HEADERS): Adjust.
7062
7063 2000-09-20 Akim Demaille <akim@epita.fr>
7064
7065 * src/acconfig.h: Don't protect config.h against multiple
7066 inclusion.
7067 Don't define PARAMS.
7068 * src/system.h: Define PARAMS.
7069 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
7070 purpose of config.h. system.h must not try to fix wrong
7071 definitions in config.h.
7072
7073 2000-09-20 Akim Demaille <akim@epita.fr>
7074
7075 * src/derives.h: New file.
7076 * src/main.c, src/derives.h: Use it.
7077 Formatting changes.
7078 * src/Makefile.am (noinst_HEADERS): Adjust.
7079
7080 2000-09-20 Akim Demaille <akim@epita.fr>
7081
7082 * tests/atgeneral.m4: Update from Autoconf.
7083 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
7084 (AT_CHECK_CALC): New macros.
7085 Use these macros to test bison with options `', `--raw',
7086 `--debug', `--yacc', `--yacc --debug'.
7087
7088 2000-09-19 Akim Demaille <akim@epita.fr>
7089
7090 * src/output.c: Formatting changes.
7091 * src/machine.h: Remove, leaving its contents in...
7092 * src/system.h: here.
7093 Include stdio.h.
7094 Adjust all dependencies on stdio.h and machine.h.
7095 * src/getargs.h: New file.
7096 Let all `extern' declarations about getargs.c be replaced with
7097 inclusion of `getargs.h'.
7098 * src/Makefile.am (noinst_HEADERS): Adjust.
7099
7100 * tests/calc.m4 (yyin): Be initialized in main, not on the global
7101 scope.
7102 (yyerror): Returns void, not int.
7103 * doc/bison.texinfo: Formatting changes.
7104
7105 2000-09-19 Akim Demaille <akim@epita.fr>
7106
7107 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
7108 portable.
7109
7110 2000-09-18 Akim Demaille <akim@epita.fr>
7111
7112 * configure.in: Append WARNING_CFLAGS to CFLAGS.
7113 * src/Makefile.am (INCLUDES): Don't.
7114 Be ready to fetch headers in lib/.
7115
7116 2000-09-18 Akim Demaille <akim@epita.fr>
7117
7118 * doc/bison.texinfo: Update the copyright.
7119 ANSIfy and GNUify the examples.
7120 Remove the old menu.
7121
7122 2000-09-18 Akim Demaille <akim@epita.fr>
7123
7124 First set of tests: use the `calc' example from the documentation.
7125
7126 * src/bison.s1 (yyparse): Condition the code using `yytname' which
7127 is defined only when YYDEBUG is.
7128 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
7129 * src/files.c (tryopen, tryclose): Formatting changes.
7130 Move to the top and be static.
7131 * src/reader.c (read_signed_integer): Likewise.
7132 * tests/calc.m4: New file.
7133 * Makefile.am, suite.m4: Adjust.
7134 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
7135
7136 2000-09-18 Akim Demaille <akim@epita.fr>
7137
7138 Add support for an Autotest test suite for Bison.
7139
7140 * m4/m4.m4, m4/atconfig.m4: New files.
7141 * m4/Makefile.am (EXTRA_DIST): Adjust.
7142 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
7143 files.
7144 * src/getargs.c: Display a more standard --version message.
7145 * src/reader.c (reader): Formatting changes.
7146 No longer depend upon VERSION_STRING.
7147 * configure.in: No longer use `dnl'.
7148 Set up the test suite and the new directory `tests/.
7149 (VERSION_STRING): Remove.
7150
7151 2000-04-14 Akim Demaille <akim@epita.fr>
7152
7153 * src/reader.c (copy_comment2): New function, same as former
7154 `copy_comment', but outputs into two FILE *.
7155 (copy_comment): Use it.
7156 (parse_union_decl): Use it.
7157 (get_type, parse_start_decl): Use the same `invalid' message.
7158 (parse_start_decl, parse_union_decl): Use the same `multiple'
7159 message.
7160 (parse_union_decl, copy_guard, copy_action): Use the same
7161 `unmatched' message.
7162 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
7163
7164 2000-03-31 Akim Demaille <akim@epita.fr>
7165
7166 * src/files.c (tryopen, tryclose): Move to the top.
7167 Be static.
7168
7169 2000-03-31 Akim Demaille <akim@epita.fr>
7170
7171 * src/main.c (main): Don't call `done', exit does it.
7172
7173 2000-03-31 Akim Demaille <akim@epita.fr>
7174
7175 * allocate.c: s/return (foo)/return foo/.
7176 * lalr.c: Likewise.
7177 * LR0.c: Likewise.
7178 * output.c: Likewise.
7179 * reader.c: Likewise.
7180 * symtab.c: Likewise.
7181 * vmsgetargs.c: Likewise.
7182
7183 2000-03-31 Akim Demaille <akim@epita.fr>
7184
7185 Clean up the error reporting functions.
7186
7187 * src/report.c: New file.
7188 * src/report.h: Likewise.
7189 * src/Makefile.am: Adjust.
7190 * m4/error.m4: New file.
7191 * m4/Makefile.am: Adjust.
7192 * configure.in (jm_PREREQ_ERROR): Call it.
7193 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
7194 Remove.
7195 (fatal, fatals): Remove. All callers use complain.c::fatal.
7196 (warn, warni, warns, warnss, warnss): Remove. All callers use
7197 complain.c::complain.
7198 (toomany): Remove, use fatal instead.
7199 * src/files.c (done): No argument, use complain_message_count.
7200 * src/main.c (main): Register `done' to `atexit'.
7201
7202 * src/getargs.c (usage): More `fputs', less `fprintf'.
7203
7204 2000-03-28 Akim Demaille <akim@epita.fr>
7205
7206 * lib/: New directory.
7207 * Makefile.am (SUBDIRS): Adjust.
7208 * configure.in: Adjust.
7209 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
7210 useless.
7211 * src/alloca.c: Moved to lib/.
7212 * src/getopt.c: Likewise.
7213 * src/getopt1.c: Likewise.
7214 * src/getopt.h: Likewise.
7215 * src/ansi2knr.c: Likewise.
7216 * src/ansi2knr.1: Likewise.
7217 * src/Makefile.am: Adjust.
7218 * lib/Makefile.am: New file.
7219
7220 2000-03-28 Akim Demaille <akim@epita.fr>
7221
7222 * src/getargs.c (usage): Refresh the help message.
7223
7224 2000-03-17 Akim Demaille <akim@epita.fr>
7225
7226 * src/getopt1.c: Updated from textutils 2.0e
7227 * src/getopt.c: Likewise.
7228 * src/getopt.h: Likewise.
7229
7230 2000-03-17 Akim Demaille <akim@epita.fr>
7231
7232 * src/Makefile.am (bison.simple): Fix the awk program: quote only
7233 the file name, not the whole `#line LINE FILE'.
7234
7235 2000-03-17 Akim Demaille <akim@epita.fr>
7236
7237 On syntax errors, report the token on which we choked.
7238
7239 * src/bison.s1 (yyparse): In the label yyerrlab, when
7240 YYERROR_VERBOSE, add yychar in msg.
7241
7242 2000-03-17 Akim Demaille <akim@epita.fr>
7243
7244 * src/reader.c (copy_at): New function.
7245 (copy_guard): Use it.
7246 (copy_action): Use it.
7247
7248 2000-03-17 Akim Demaille <akim@epita.fr>
7249
7250 Be kind to translators, save some useless translations.
7251
7252 * src/main.c (banner): New function.
7253 (fatal_banner): Use it.
7254 (warn_banner): Use it.
7255
7256 2000-03-17 Akim Demaille <akim@epita.fr>
7257
7258 * src/reader.c (copy_definition): Use copy_string and
7259 copy_comment. Removed now unused `match', `ended',
7260 `cplus_comment'.
7261 (copy_comment, copy_string): Moved, to be visible from
7262 copy_definition.
7263
7264 2000-03-17 Akim Demaille <akim@epita.fr>
7265
7266 * src/reader.c (copy_string): Declare `static inline'. No
7267 problems with inline, since it is checked by configure.
7268 (copy_comment): Likewise.
7269
7270 2000-03-17 Akim Demaille <akim@epita.fr>
7271
7272 * src/reader.c (packsymbols): Formatting changes.
7273
7274 2000-03-17 Akim Demaille <akim@epita.fr>
7275
7276 * src/reader.c (copy_comment): New function, factored out from:
7277 (copy_action): Use it. Removed now unused `match', `ended',
7278 `cplus_comment'.
7279 (copy_guard): Likewise.
7280
7281 2000-03-17 Akim Demaille <akim@epita.fr>
7282
7283 * src/reader.c (copy_string): New function, factored out from:
7284 (copy_action): Use it.
7285 (copy_guard): Likewise.
7286
7287 2000-03-17 Akim Demaille <akim@epita.fr>
7288
7289 Change the handling of @s so that they behave exactly like $s.
7290 There is now a pseudo variable @$ (readble and writable), location
7291 of the lhs of the rule (by default ranging from the location of
7292 the first symbol of the rhs, to the location of the last symbol,
7293 or, if the rhs is empty, YYLLOC).
7294
7295 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
7296 yyval.
7297 (yyparse): When providing a default semantic action, provide a
7298 default location action.
7299 (after the $): No longer change `*YYLSP', just stack YYLOC the
7300 same way you stack YYVAL.
7301 * src/reader.c (read_declarations): Use warns.
7302 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
7303 (copy_action, case '@'): Likewise.
7304 Use a standard error message, to save useless work from
7305 translators.
7306
7307 2000-03-17 Akim Demaille <akim@epita.fr>
7308
7309 * src/bison.s1: Formatting and cosmetics changes.
7310 * src/reader.c: Likewise.
7311 Update the Copyright notice.
7312
7313 2000-03-17 Akim Demaille <akim@epita.fr>
7314
7315 * src/bison.s1 (#line): All set to `#line' only, since the
7316 Makefile now handles them.
7317
7318 2000-03-16 Akim Demaille <akim@epita.fr>
7319
7320 * src/output.c (output_rule_data): Output the documentation of
7321 some of the tables.
7322 (Copyright notice): Update.
7323 Formatting changes.
7324
7325 2000-03-16 Akim Demaille <akim@epita.fr>
7326
7327 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
7328 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
7329 One `#if YYDEBUG' remains, since it uses variables which are
7330 defined only if `YYDEBUG != 0'.
7331
7332 2000-03-16 Akim Demaille <akim@epita.fr>
7333
7334 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
7335 and related variables so that the similarities are highlighted.
7336
7337 2000-03-16 Akim Demaille <akim@epita.fr>
7338
7339 * src/bison.s1: Properly indent CPP directives.
7340
7341 2000-03-16 Akim Demaille <akim@epita.fr>
7342
7343 * src/bison.s1: Properly indent the `alloca' CPP section.
7344
7345 2000-03-16 Akim Demaille <akim@epita.fr>
7346
7347 Do not hard code values of directories in `configure.in'.
7348 Update the `configure' tool chain.
7349
7350 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
7351 src/makefile.am.
7352 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
7353 (AC_OUTPUT): Add m4/Makefile.
7354 Bump to bison 1.28a, 1.29 has never been released.
7355 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
7356 handled via src/Makefile.am.
7357 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
7358 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
7359 autoheader.
7360 * Makefile.am (SUBDIRS): Add m4.
7361 (ACLOCAL_AM_FLAGS): New variable.
7362 (AUTOMAKE_OPTIONS): Add check-news.
7363 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
7364 the proper line number and file name.
7365 (DEFS): Propagate the location of bison library files and of the
7366 locale files.
7367 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
7368 builddir.
7369 * acinclude.m4: Remove, replaced by the directory m4.
7370 * m4/Makefile.am (EXTRA_DIST): New variable.
7371 * m4/gettext.m4: New file, from the fileutils.
7372 * m4/lcmessage.m4: Likewise
7373 * m4/progtest.m4: Likewise.
7374 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
7375
7376 2000-03-10 Akim Demaille <akim@epita.fr>
7377
7378 * src/closure.c:
7379 Formatting changes of various comments.
7380 Respect the GNU coding standards at various places.
7381 Don't use `_()' when no translation is needed.
7382
7383 1999-12-13 Jesse Thilo <jthilo@gnu.org>
7384
7385 * src/files.c:
7386 OS/2 honors TMPDIR environment variable.
7387
7388 1999-12-13 Jesse Thilo <jthilo@gnu.org>
7389
7390 * doc/bison.texinfo: Tweaked spelling and grammar.
7391 Updated ISBN.
7392 Removed reference to price of printed copy.
7393 Mention BISON_SIMPLE and BISON_HAIRY.
7394
7395 1999-12-13 Jesse Thilo <jthilo@gnu.org>
7396
7397 * configure.in, NEWS:
7398 Bison 1.29 released.
7399
7400 1999-10-27 Jesse Thilo <jthilo@gnu.org>
7401
7402 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
7403 Added reference card.
7404
7405 1999-07-26 Jesse Thilo <jthilo@gnu.org>
7406
7407 * po/ru.po: Added Russian translation.
7408
7409 1999-07-26 Jesse Thilo <jthilo@gnu.org>
7410
7411 * configure.in: Added Russian translation.
7412
7413 1999-07-06 Jesse Thilo <jthilo@gnu.org>
7414
7415 * configure.in, NEWS, README:
7416 Released version 1.28.
7417
7418 1999-06-14 Jesse Thilo <jthilo@gnu.org>
7419
7420 * src/system.h:
7421 Squashed redefinition warning on some systems.
7422
7423 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
7424 Have configure build version string instead of relying on ANSI string
7425 concatentation.
7426
7427 1999-06-14 Jesse Thilo <jthilo@gnu.org>
7428
7429 * po/POTFILES.in: Got rid of version.c.
7430
7431 1999-06-14 Jesse Thilo <jthilo@gnu.org>
7432
7433 * acconfig.h, configure.in:
7434 Have configure build version string instead of relying on ANSI string
7435 concatentation.
7436
7437 1999-06-08 Jesse Thilo <jthilo@gnu.org>
7438
7439 * doc/bison.1:
7440 Dropped mention of `+' for long-named options.
7441
7442 1999-05-30 Jesse Thilo <jthilo@gnu.org>
7443
7444 * src/files.c: Added <unistd.h> for unlink().
7445
7446 * src/Makefile.am, src/system.h:
7447 I18n fixes.
7448
7449 1999-05-30 Jesse Thilo <jthilo@gnu.org>
7450
7451 * README: Added a FAQ list.
7452
7453 * configure.in, acconfig.h:
7454 I18n fixes.
7455
7456 1999-05-30 Jesse Thilo <jthilo@gnu.org>
7457
7458 * doc/FAQ, doc/Makefile.am:
7459 Added a FAQ list.
7460
7461 1999-05-19 Jesse Thilo <jthilo@gnu.org>
7462
7463 * src/alloc.h, src/symtab.h, src/version.c:
7464 Protected inclusion of "config.h" with HAVE_CONFIG_H.
7465
7466 1999-04-18 Jesse Thilo <jthilo@gnu.org>
7467
7468 * src/.cvsignore, src/Makefile.am:
7469 Reorganized: sources in `src', documentation in `doc'.
7470
7471 * src/lex.c (literalchar):
7472 fixed the code for escaping double quotes (thanks
7473 Jonathan Czisny.)
7474
7475 1999-04-18 Jesse Thilo <jthilo@gnu.org>
7476
7477 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
7478 Adjusted paths to reflect directory reorganization.
7479
7480 1999-04-18 Jesse Thilo <jthilo@gnu.org>
7481
7482 * doc/.cvsignore, doc/Makefile.am:
7483 Reorganized: sources in `src', documentation in `doc'.
7484
7485 1999-04-18 Jesse Thilo <jthilo@gnu.org>
7486
7487 * configure.in:
7488 Updated AC_INIT file to reflect directory reorganization.
7489
7490 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
7491 Reorganized: sources in `src', documentation in `doc'.
7492
7493 1999-04-13 Jesse Thilo <jthilo@gnu.org>
7494
7495 * src/allocate.c:
7496 Don't declare calloc() and realloc() if not necessary.
7497
7498 1999-04-13 Jesse Thilo <jthilo@gnu.org>
7499
7500 * configure.in, acconfig.h, acinclude.m4:
7501 Don't declare calloc() and realloc() if not necessary.
7502
7503 1999-03-23 Jesse Thilo <jthilo@gnu.org>
7504
7505 * po/.cvsignore: Added i18n support.
7506
7507 1999-03-23 Jesse Thilo <jthilo@gnu.org>
7508
7509 * acconfig.h, configure.in, Makefile.am:
7510 Added i18n support.
7511
7512 1999-03-22 Jesse Thilo <jthilo@gnu.org>
7513
7514 * src/bison.s1: Fixed #line numbers.
7515
7516 1999-03-15 Jesse Thilo <jthilo@gnu.org>
7517
7518 * po/es.po, po/fr.po, po/nl.po, po/de.po:
7519 Added PO files from Translation Project.
7520
7521 1999-03-03 Jesse Thilo <jthilo@gnu.org>
7522
7523 * Makefile.am:
7524 Added support for non-ANSI compilers (ansi2knr).
7525
7526 1999-02-16 Jesse Thilo <jthilo@gnu.org>
7527
7528 * configure.in: Bumped version number to 1.27.
7529
7530 * Makefile.am:
7531 Added `bison.simple' to list of files removed by `make distclean'.
7532
7533 1999-02-12 Jesse Thilo <jthilo@gnu.org>
7534
7535 * src/files.c, src/files.h:
7536 Defined locations of parser files in config.h instead of Makefile.
7537
7538 1999-02-12 Jesse Thilo <jthilo@gnu.org>
7539
7540 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
7541 Defined locations of parser files in config.h instead of Makefile.
7542
7543 1999-02-09 Jesse Thilo <jthilo@gnu.org>
7544
7545 * Makefile.am:
7546 Removed inappropriate use of $< macro.
7547
7548 1999-02-05 Jesse Thilo <jthilo@gnu.org>
7549
7550 * po/Makefile.in.in, po/POTFILES.in:
7551 Add `po' directory skeleton.
7552
7553 1999-01-27 Jesse Thilo <jthilo@gnu.org>
7554
7555 * README: Document help-bison list.
7556
7557 * configure.in: Add check for mkstemp().
7558
7559 1999-01-20 Jesse Thilo <jthilo@gnu.org>
7560
7561 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
7562 Hush a few compiler warnings.
7563
7564 * src/files.c:
7565 Add tryclose(), which verifies that fclose was successful.
7566 Hush a couple of compiler warnings.
7567
7568 1999-01-20 Jesse Thilo <jthilo@gnu.org>
7569
7570 * Makefile.am, OChangeLog:
7571 ChangeLog is now automatically generated. Include the old version as
7572 OChangeLog.
7573
7574 1999-01-14 Jesse Thilo <jthilo@gnu.org>
7575
7576 * src/gram.h, src/lalr.c, src/lex.c, src/lex.h, src/machine.h, src/main.c, src/nullable.c, src/output.c, src/print.c, src/reader.c, src/reduce.c, src/state.h, src/symtab.c, src/symtab.h, src/types.h, src/vmsgetargs.c, src/warshall.c, src/allocate.c, src/alloc.h, src/bison.s1, src/closure.c, src/conflicts.c, src/derives.c, src/files.c, src/files.h, src/getargs.c, src/gram.c, src/LR0.c:
7577 Update FSF address.
7578
7579 1999-01-14 Jesse Thilo <jthilo@gnu.org>
7580
7581 * doc/bison.texinfo: Fix formatting glitch.
7582
7583 * doc/bison.texinfo: Update FSF address.
7584
7585 1999-01-14 Jesse Thilo <jthilo@gnu.org>
7586
7587 * acconfig.h: Update FSF address.
7588
7589 1999-01-08 Jesse Thilo <jthilo@gnu.org>
7590
7591 * src/system.h:
7592 Don't define PACKAGE here, since config.h defines it.
7593
7594 1998-12-30 Jesse Thilo <jthilo@gnu.org>
7595
7596 * src/reader.c: Update copyright date.
7597
7598 * src/main.c:
7599 Ditch sprintf to statically-sized buffers in fatal/warn functions in
7600 favor of output directly to stderr (avoids buffer overruns).
7601
7602 * src/reader.c: Some checks for premature EOF.
7603
7604 * src/allocate.c, src/alloc.h, src/closure.c, src/conflicts.c, src/derives.c, src/getargs.c, src/gram.c, src/lalr.c, src/lex.c, src/LR0.c, src/main.c, src/nullable.c, src/output.c, src/print.c, src/reduce.c, src/symtab.c, src/symtab.h, src/warshall.c:
7605 Use prototypes if the compiler understands them.
7606
7607 * src/files.c: Honor TMPDIR on Unix hosts.
7608 Use prototypes if the compiler understands them.
7609
7610 * src/reader.c:
7611 Fix a couple of buffer overrun bugs.
7612 Use prototypes if the compiler understands them.
7613
7614 * src/system.h: Include unistd.h and ctype.h.
7615 Use #ifdef instead of #if for NLS symbols.
7616
7617 1998-12-30 Jesse Thilo <jthilo@gnu.org>
7618
7619 * doc/bison.texinfo:
7620 Delete comment "consider using @set for edition number, etc..." since
7621 we now are doing so.
7622
7623 1998-12-30 Jesse Thilo <jthilo@gnu.org>
7624
7625 * configure.in:
7626 Use prototypes if the compiler understands them.
7627
7628 * NEWS: Document 1.26 highlights.
7629
7630 * Makefile.am: Require Automake 1.3 or later.
7631
7632 * acconfig.h:
7633 Use prototypes if the compiler understands them.
7634
7635 1998-12-29 Jesse Thilo <jthilo@gnu.org>
7636
7637 * src/version.c:
7638 Use VERSION symbol from automake for version number.
7639
7640 1998-12-29 Jesse Thilo <jthilo@gnu.org>
7641
7642 * acconfig.h, configure.in, version.cin:
7643 Use VERSION symbol from automake for version number.
7644
7645 1998-11-28 Jesse Thilo <jthilo@gnu.org>
7646
7647 * Makefile.am:
7648 Distribute original version of simple parser (bison.s1), not built
7649 version (bison.simple).
7650
7651 1998-11-28 Jesse Thilo <jthilo@gnu.org>
7652
7653 * doc/bison.texinfo: Add info dir entry.
7654
7655 * doc/bison.texinfo:
7656 Let automake put version number into documentation.
7657
7658 1998-11-26 Jesse Thilo <jthilo@gnu.org>
7659
7660 * src/bison.cld, src/build.com, src/vmshlp.mar:
7661 Add non-RCS files from /gd/gnu/bison.
7662
7663 1998-11-26 Jesse Thilo <jthilo@gnu.org>
7664
7665 * doc/bison.1:
7666 Document the BISON_HAIRY and BISON_SIMPLE variables.
7667
7668 1998-11-25 Jesse Thilo <jthilo@gnu.org>
7669
7670 * src/version.c: Build version.c automatically.
7671
7672 * src/reader.c:
7673 Fix token numbering (used to start at 258, not 257).
7674
7675 * src/system.h: Include config.h.
7676
7677 * src/getargs.c: Update bug report address.
7678
7679 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
7680 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
7681
7682 1998-11-25 Jesse Thilo <jthilo@gnu.org>
7683
7684 * Makefile.am:
7685 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
7686
7687 * configure.in, version.cin:
7688 Build version.c automatically.
7689
7690 * AUTHORS: Add AUTHORS file.
7691
7692 * README: Update bug report address.
7693
7694 * bison.simple:
7695 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
7696
7697 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
7698 Add automake stuff.
7699
7700 1998-11-25 Jesse Thilo <jthilo@gnu.org>
7701
7702 * doc/bison.texinfo: Clean up some formatting.
7703
7704 1998-05-05 Richard Stallman <rms@gnu.org>
7705
7706 * doc/bison.texinfo:
7707 Explain better why to make a pure parser.
7708
7709 1998-01-05 Richard Stallman <rms@gnu.org>
7710
7711 * src/files.c (openfiles):
7712 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
7713 find a temporary directory, if possible. Do not unlink files while
7714 they are open.
7715
7716 1997-08-25 Richard Stallman <rms@gnu.org>
7717
7718 * src/reader.c (stack_offset;):
7719 Change some warni to warns.
7720
7721 * src/lex.c (literalchar): Use warns, not warni.
7722
7723 1997-06-28 Richard Stallman <rms@gnu.org>
7724
7725 * src/bison.s1: Add a Bison version comment.
7726
7727 * src/main.c (fatal, warn, berror):
7728 Use program_name.
7729
7730 1997-06-28 Richard Stallman <rms@gnu.org>
7731
7732 * Makefile.in (bison_version): New variable.
7733 (dist): Use that variable.
7734 (bison.s1): Substitute the Bison version into bison.simple.
7735
7736 * bison.simple: Add a Bison version comment.
7737
7738 1997-06-18 Richard Stallman <rms@gnu.org>
7739
7740 * src/main.c (fatal, warn, berror):
7741 Make error messages standard.
7742 (toomany): Improve error message text.
7743
7744 * src/LR0.c, src/closure.c, src/conflicts.c, src/derives.c, src/files.c, src/lalr.c, src/lex.c, src/nullable.c, src/output.c, src/print.c, src/reader.c, src/reduce.c, src/symtab.c:
7745 new.h renamed to alloc.h.
7746
7747 1997-06-18 Richard Stallman <rms@gnu.org>
7748
7749 * Makefile.in: new.h renamed to alloc.h.
7750
7751 1997-05-24 Richard Stallman <rms@gnu.org>
7752
7753 * src/lex.c (literalchar):
7754 Fix the code for escaping \, " and '.
7755
7756 (lex): Avoid trouble when there are many chars
7757 to discard in a char literal with just several chars in it.
7758
7759 1997-05-17 Richard Stallman <rms@gnu.org>
7760
7761 * src/bison.s1:
7762 Use malloc, if using alloca is troublesome.
7763 (YYSTACK_USE_ALLOCA): New flag macro.
7764 Define it for some systems and compilers.
7765 (YYSTACK_ALLOC): New macro.
7766 (yyparse): Use YYSTACK_ALLOC to allocate stack.
7767 If it was malloc'd, free it.
7768
7769 1997-05-17 Richard Stallman <rms@gnu.org>
7770
7771 * bison.simple:
7772 Use malloc, if using alloca is troublesome.
7773 (YYSTACK_USE_ALLOCA): New flag macro.
7774 Define it for some systems and compilers.
7775 (YYSTACK_ALLOC): New macro.
7776 (yyparse): Use YYSTACK_ALLOC to allocate stack.
7777 If it was malloc'd, free it.
7778
7779 1997-04-23 Richard Stallman <rms@gnu.org>
7780
7781 * src/bison.s1:
7782 (alloca) [__hpux]: Always define as __builtin_alloca.
7783
7784 1997-04-23 Richard Stallman <rms@gnu.org>
7785
7786 * bison.simple:
7787 (alloca) [__hpux]: Always define as __builtin_alloca.
7788
7789 1997-04-22 Richard Stallman <rms@gnu.org>
7790
7791 * src/bison.s1:
7792 [__hpux]: Include alloca.h (right for HPUX 10)
7793 instead of declaring alloca (right for HPUX 9).
7794
7795 * src/bison.s1 (__yy_memcpy):
7796 Declare arg `count' as unsigned int.
7797 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
7798
7799 1997-04-22 Richard Stallman <rms@gnu.org>
7800
7801 * bison.simple:
7802 [__hpux]: Include alloca.h (right for HPUX 10)
7803 instead of declaring alloca (right for HPUX 9).
7804
7805 * bison.simple (__yy_memcpy):
7806 Declare arg `count' as unsigned int.
7807 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
7808
7809 1997-01-03 Richard Stallman <rms@gnu.org>
7810
7811 * src/allocate.c: [__STDC__ or _MSC_VER]:
7812 Declare calloc and realloc to return void *.
7813
7814 1997-01-02 Richard Stallman <rms@gnu.org>
7815
7816 * src/system.h:
7817 [_MSC_VER]: Include stdlib.h and process.h.
7818 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
7819
7820 * src/main.c (main): Return FAILURE as a value.
7821 (printable_version): Declare arg as int, not char.
7822
7823 1997-01-02 Richard Stallman <rms@gnu.org>
7824
7825 * Makefile.in (dist):
7826 Explicitly check for symlinks, and copy them.
7827
7828 1996-12-19 Richard Stallman <rms@gnu.org>
7829
7830 * src/files.c:
7831 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
7832
7833 1996-12-18 Paul Eggert <eggert@gnu.org>
7834
7835 * src/bison.s1 (yyparse):
7836 If __GNUC__ and YYPARSE_PARAM are both defined,
7837 declare yyparse to have a void * argument.
7838
7839 1996-12-18 Paul Eggert <eggert@gnu.org>
7840
7841 * bison.simple (yyparse):
7842 If __GNUC__ and YYPARSE_PARAM are both defined,
7843 declare yyparse to have a void * argument.
7844
7845 1996-12-17 Richard Stallman <rms@gnu.org>
7846
7847 * src/reduce.c (nbits): Add some casts.
7848
7849 1996-08-12 Richard Stallman <rms@gnu.org>
7850
7851 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
7852
7853 1996-08-12 Richard Stallman <rms@gnu.org>
7854
7855 * bison.simple: Test _MSDOS as well as _MSDOS_.
7856
7857 1996-07-31 Richard Stallman <rms@gnu.org>
7858
7859 * src/bison.s1:
7860 [__sun && __i386]: Include alloca.h.
7861
7862 1996-07-31 Richard Stallman <rms@gnu.org>
7863
7864 * bison.simple:
7865 [__sun && __i386]: Include alloca.h.
7866
7867 1996-07-30 Richard Stallman <rms@gnu.org>
7868
7869 * src/bison.s1: Comment change.
7870
7871 * src/bison.s1: Test _MSDOS_, not MSDOS.
7872
7873 1996-07-30 Richard Stallman <rms@gnu.org>
7874
7875 * bison.simple: Comment change.
7876
7877 * bison.simple: Test _MSDOS_, not MSDOS.
7878
7879 1996-06-01 Richard Stallman <rms@gnu.org>
7880
7881 * src/reduce.c, src/reader.c, src/print.c, src/output.c, src/nullable.c, src/lex.c, src/lalr.c, src/getargs.c, src/derives.c, src/conflicts.c, src/closure.c, src/allocate.c:
7882 Insert `_' macro around many string constants.
7883
7884 * src/main.c:
7885 Insert `_' macro around many string constants.
7886
7887 (main): Call setlocale, bindtextdomain and textdomain.
7888
7889 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
7890 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
7891 [ENABLE_NLS]: Include libintl.h.
7892 [ENABLE_NLS] (gettext): Define.
7893 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
7894 (N_, PACKAGE, LOCALEDIR): New macros.
7895
7896 1996-06-01 Richard Stallman <rms@gnu.org>
7897
7898 * POTFILES.in: New file.
7899
7900 * Makefile.in (allocate.o):
7901 Define target explicitly.
7902
7903 * Makefile.in (CFLAGS): Set to @CFLAGS@.
7904 (LDFLAGS): Set to @LDFLAGS@.
7905 (configure): Run autoconf only if preceding `cd' succeeds.
7906 (bison.s1): Redirect output to temporary file then move the
7907 temporary to the target, rather than redirecting directly to bison.s1.
7908 (clean): Remove config.status and config.log.
7909 (distclean): Don't remove config.status here.
7910
7911 1996-05-12 Richard Stallman <rms@gnu.org>
7912
7913 * src/bison.s1:
7914 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
7915
7916 1996-05-12 Richard Stallman <rms@gnu.org>
7917
7918 * bison.simple:
7919 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
7920
7921 1996-05-11 Richard Stallman <rms@gnu.org>
7922
7923 * src/bison.s1 (__yy_memcpy):
7924 Really reorder the args, as was supposedly done on Feb 14 1995.
7925 (yyparse): Calls changed accordingly.
7926
7927 1996-05-11 Richard Stallman <rms@gnu.org>
7928
7929 * Makefile.in (dist): Don't use $(srcdir).
7930
7931 * bison.simple (__yy_memcpy):
7932 Really reorder the args, as was supposedly done on Feb 14 1995.
7933 (yyparse): Calls changed accordingly.
7934
7935 1996-01-27 Richard Stallman <rms@gnu.org>
7936
7937 * src/output.c (output_rule_data):
7938 Test YYERROR_VERBOSE in the conditional
7939 around the definition of ttyname.
7940
7941 1995-12-29 Richard Stallman <rms@gnu.org>
7942
7943 * src/bison.s1:
7944 Fix line numbers in #line commands.
7945
7946 1995-12-29 Richard Stallman <rms@gnu.org>
7947
7948 * bison.simple:
7949 Fix line numbers in #line commands.
7950
7951 1995-12-27 Richard Stallman <rms@gnu.org>
7952
7953 * src/bison.s1 (YYPARSE_PARAM_DECL):
7954 In C++, make it always null.
7955 (YYPARSE_PARAM_ARG): New macro.
7956 (yyparse): Use YYPARSE_PARAM_ARG.
7957
7958 1995-12-27 Richard Stallman <rms@gnu.org>
7959
7960 * bison.simple (YYPARSE_PARAM_DECL):
7961 In C++, make it always null.
7962 (YYPARSE_PARAM_ARG): New macro.
7963 (yyparse): Use YYPARSE_PARAM_ARG.
7964
7965 1995-11-29 Richard Stallman <rms@gnu.org>
7966
7967 * doc/bison.texinfo:
7968 Describe literal string tokens, %raw, %no_lines, %token_table.
7969
7970 1995-11-29 Daniel Hagerty <hag@gnu.org>
7971
7972 * doc/bison.texinfo: Fixed update date
7973
7974 1995-10-16 Richard Stallman <rms@gnu.org>
7975
7976 * src/version.c: Version 1.25.
7977
7978 1995-10-16 Richard Stallman <rms@gnu.org>
7979
7980 * NEWS: *** empty log message ***
7981
7982 1995-10-16 Richard Stallman <rms@gnu.org>
7983
7984 * doc/bison.1, doc/bison.rnh:
7985 Add new options.
7986
7987 1995-10-15 Richard Stallman <rms@gnu.org>
7988
7989 * src/vmsgetargs.c, src/getargs.c:
7990 Added -n, -k, and -raw switches.
7991 (noparserflag, toknumflag, rawtoknumflag): New variables.
7992
7993 * src/symtab.h (SALIAS):
7994 New #define for adding aliases to %token.
7995 (struct bucket): Added `alias' field.
7996
7997 * src/reduce.c (reduce_grammar):
7998 Revise error message.
7999 (print_notices): Remove final `.' from error message.
8000
8001 * src/reader.c (reader_output_yylsp):
8002 New function.
8003 (readgram): Use `#if 0' around code that accepted %command
8004 inside grammar rules: The documentation doesn't allow it,
8005 and it will fail since the %command processors scan for the next %.
8006 (parse_token_decl): Extended the %token
8007 declaration to allow a multi-character symbol as an alias.
8008 (parse_thong_decl): New function.
8009 (read_declarations): Added %thong declarations.
8010 (read_declarations): Handle NOOP to deal with allowing
8011 % declarations as another means to specify the flags.
8012 (readgram): Allow %prec prior to semantics embedded in a rule.
8013 (skip_to_char, read_declarations, copy_definition)
8014 (parse_token_decl, parse_start_decl, parse_type_decl)
8015 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
8016 (get_type_name, copy_guard, copy_action, readgram)
8017 (get_type, packsymbols): Revised most error messages.
8018 Changed `fatal' to `warnxxx' to avoid aborting for error.
8019 Revised and use multiple warnxxx functions to avoid using VARARGS1.
8020 (read_declarations): Improve the error message for
8021 an invalid character. Do not abort.
8022 (read_declarations, copy_guard, copy_action): Use
8023 printable_version to avoid unprintable characters in printed output.
8024 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
8025 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
8026 Allow the type of a non-terminal can be given
8027 more than once, as long as all specifications give the same type.
8028
8029 * src/output.c:
8030 (output_headers, output_trailers, output, output_gram)
8031 (output_rule_data): Implement noparserflag variable.
8032 Implement toknumflag variable.
8033 (output): Call reader_output_yylsp to output LTYPESTR.
8034
8035 * src/main.c (main):
8036 If reader sees an error, don't process the grammar.
8037 (fatals): Updated to not use VARARGS1.
8038 (printable_version, int_to_string, warn, warni, warns, warnss)
8039 (warnsss): New error reporting functions. Avoid abort for error.
8040
8041 * src/lex.h:
8042 Added THONG and NOOP for alias processing.
8043 Added SETOPT for the new code that allows setting options with %flags.
8044
8045 * src/lex.c:
8046 Include getopt.h. Add some extern decls.
8047 (safegetc): New function to deal with EOF gracefully.
8048 (literalchar); new function to deal with reading \ escapes.
8049 (lex): Use literalchar.
8050 (lex): Implemented "..." tokens.
8051 (literalchar, lex, parse_percent_token): Made tokenbuffer
8052 always contain the token. This includes growing the token
8053 buffer while reading an integer.
8054 (parse_percent_token): Replaced if-else statement with percent_table.
8055 (parse_percent_token): Added % declarations as another
8056 way to specify the flags -n, -l, and -r. Also added hooks for
8057 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
8058 major changes to files.c.
8059 (lex) Retain in the incoming stream a character following
8060 an incorrect '/'.
8061 (skip_white_space, lex): Revised most error messages
8062 and changed fatal to warn to avoid aborting.
8063 (percent_table): Added %thong declarations.
8064
8065 * src/gram.h: Comment changes.
8066
8067 * src/files.c (openfiles, open_extra_files, done):
8068 Add faction flag
8069 and actfile file. Handle noparserflag. Both for -n switch.
8070
8071 * src/conflicts.c (resolve_sr_conflict):
8072 Remove use of alloca.
8073
8074 1995-06-01 Jim Meyering <meyering@gnu.org>
8075
8076 * doc/bison.texinfo: *** empty log message ***
8077
8078 1995-05-06 Richard Stallman <rms@gnu.org>
8079
8080 * src/bison.s1: Comment change.
8081
8082 1995-05-06 Richard Stallman <rms@gnu.org>
8083
8084 * bison.simple: Comment change.
8085
8086 1995-05-03 Richard Stallman <rms@gnu.org>
8087
8088 * src/version.c: Version now 1.24.
8089
8090 * src/bison.s1: Change distribution terms.
8091
8092 * src/version.c: Version now 1.23.
8093
8094 1995-05-03 Richard Stallman <rms@gnu.org>
8095
8096 * doc/bison.texinfo:
8097 Rewrite "Conditions for Using Bison".
8098 Update version to 1.24.
8099
8100 1995-05-03 Richard Stallman <rms@gnu.org>
8101
8102 * bison.simple: Change distribution terms.
8103
8104 1995-02-23 Richard Stallman <rms@gnu.org>
8105
8106 * src/files.c: Test __VMS_POSIX as well as VMS.
8107
8108 1995-02-14 Jim Meyering <meyering@gnu.org>
8109
8110 * src/bison.s1 (__yy_memcpy):
8111 Renamed from __yy_bcopy to avoid
8112 confusion. Reverse FROM and TO arguments to be consistent with
8113 those of memcpy.
8114
8115 1995-02-14 Jim Meyering <meyering@gnu.org>
8116
8117 * bison.simple (__yy_memcpy):
8118 Renamed from __yy_bcopy to avoid
8119 confusion. Reverse FROM and TO arguments to be consistent with
8120 those of memcpy.
8121
8122 1994-11-10 David J. MacKenzie <djm@gnu.org>
8123
8124 * NEWS: reformat
8125
8126 * NEWS: New file.
8127
8128 * Makefile.in (DISTFILES): Include NEWS.
8129
8130 * Makefile.in (DISTFILES):
8131 Include install-sh, not install.sh.
8132
8133 * configure.in: Update to Autoconf v2 macro names.
8134
8135 1994-10-05 David J. MacKenzie <djm@gnu.org>
8136
8137 * Makefile.in: fix typo
8138
8139 * Makefile.in (prefix, exec_prefix):
8140 Let configure set them.
8141
8142 1994-09-28 David J. MacKenzie <djm@gnu.org>
8143
8144 * Makefile.in: Set datadir to $(prefix)/share.
8145
8146 1994-09-15 Richard Stallman <rms@gnu.org>
8147
8148 * src/bison.s1:
8149 Update copyright notice and GPL version.
8150
8151 1994-09-15 Richard Stallman <rms@gnu.org>
8152
8153 * bison.simple:
8154 Update copyright notice and GPL version.
8155
8156 1994-07-12 Richard Stallman <rms@gnu.org>
8157
8158 * src/reduce.c, src/reader.c:
8159 entered into RCS
8160
8161 1994-05-05 David J. MacKenzie <djm@gnu.org>
8162
8163 * Makefile.in: entered into RCS
8164
8165 1994-03-26 Richard Stallman <rms@gnu.org>
8166
8167 * src/bison.s1: entered into RCS
8168
8169 1994-03-26 Richard Stallman <rms@gnu.org>
8170
8171 * bison.simple: entered into RCS
8172
8173 1994-03-25 Richard Stallman <rms@gnu.org>
8174
8175 * src/main.c: entered into RCS
8176
8177 1994-03-24 Richard Stallman <rms@gnu.org>
8178
8179 * src/conflicts.c: entered into RCS
8180
8181 1994-01-02 Richard Stallman <rms@gnu.org>
8182
8183 * Makefile.in: *** empty log message ***
8184
8185 1993-11-21 Richard Stallman <rms@gnu.org>
8186
8187 * src/bison.s1: *** empty log message ***
8188
8189 1993-11-21 Richard Stallman <rms@gnu.org>
8190
8191 * doc/bison.texinfo: entered into RCS
8192
8193 * doc/bison.texinfo: *** empty log message ***
8194
8195 1993-11-21 Richard Stallman <rms@gnu.org>
8196
8197 * bison.simple: *** empty log message ***
8198
8199 1993-10-25 David J. MacKenzie <djm@gnu.org>
8200
8201 * doc/bison.texinfo: *** empty log message ***
8202
8203 1993-10-19 Richard Stallman <rms@gnu.org>
8204
8205 * src/bison.s1: *** empty log message ***
8206
8207 1993-10-19 Richard Stallman <rms@gnu.org>
8208
8209 * bison.simple: *** empty log message ***
8210
8211 1993-10-14 Richard Stallman <rms@gnu.org>
8212
8213 * src/bison.s1: *** empty log message ***
8214
8215 1993-10-14 Richard Stallman <rms@gnu.org>
8216
8217 * bison.simple: *** empty log message ***
8218
8219 1993-09-14 David J. MacKenzie <djm@gnu.org>
8220
8221 * doc/bison.texinfo: *** empty log message ***
8222
8223 1993-09-13 Noah Friedman <friedman@gnu.org>
8224
8225 * Makefile.in: *** empty log message ***
8226
8227 1993-09-10 Richard Stallman <rms@gnu.org>
8228
8229 * src/conflicts.c: *** empty log message ***
8230
8231 * src/system.h: entered into RCS
8232
8233 1993-09-10 Richard Stallman <rms@gnu.org>
8234
8235 * doc/bison.1: entered into RCS
8236
8237 1993-09-06 Noah Friedman <friedman@gnu.org>
8238
8239 * src/version.c: entered into RCS
8240
8241 1993-09-06 Noah Friedman <friedman@gnu.org>
8242
8243 * Makefile.in: *** empty log message ***
8244
8245 1993-07-30 David J. MacKenzie <djm@gnu.org>
8246
8247 * Makefile.in: *** empty log message ***
8248
8249 1993-07-24 Richard Stallman <rms@gnu.org>
8250
8251 * src/bison.s1: *** empty log message ***
8252
8253 1993-07-24 Richard Stallman <rms@gnu.org>
8254
8255 * bison.simple: *** empty log message ***
8256
8257 1993-07-08 David J. MacKenzie <djm@gnu.org>
8258
8259 * Makefile.in: *** empty log message ***
8260
8261 1993-07-04 Richard Stallman <rms@gnu.org>
8262
8263 * src/bison.s1: *** empty log message ***
8264
8265 1993-07-04 Richard Stallman <rms@gnu.org>
8266
8267 * bison.simple: *** empty log message ***
8268
8269 1993-06-26 David J. MacKenzie <djm@gnu.org>
8270
8271 * src/getargs.c: entered into RCS
8272
8273 1993-06-26 David J. MacKenzie <djm@gnu.org>
8274
8275 * doc/bison.texinfo: *** empty log message ***
8276
8277 * doc/bison.1: New file.
8278
8279 1993-06-25 Richard Stallman <rms@gnu.org>
8280
8281 * src/getargs.c: New file.
8282
8283 1993-06-16 Richard Stallman <rms@gnu.org>
8284
8285 * src/bison.s1: *** empty log message ***
8286
8287 1993-06-16 Richard Stallman <rms@gnu.org>
8288
8289 * bison.simple: *** empty log message ***
8290
8291 1993-06-03 Richard Stallman <rms@gnu.org>
8292
8293 * src/bison.s1: New file.
8294
8295 1993-06-03 Richard Stallman <rms@gnu.org>
8296
8297 * doc/bison.texinfo: *** empty log message ***
8298
8299 1993-06-03 Richard Stallman <rms@gnu.org>
8300
8301 * bison.simple: New file.
8302
8303 1993-05-19 Richard Stallman <rms@gnu.org>
8304
8305 * doc/bison.texinfo: New file.
8306
8307 1993-05-07 Noah Friedman <friedman@gnu.org>
8308
8309 * Makefile.in: *** empty log message ***
8310
8311 1993-04-28 Noah Friedman <friedman@gnu.org>
8312
8313 * src/reader.c: *** empty log message ***
8314
8315 1993-04-23 Noah Friedman <friedman@gnu.org>
8316
8317 * src/alloc.h: entered into RCS
8318
8319 1993-04-20 David J. MacKenzie <djm@gnu.org>
8320
8321 * src/version.c: *** empty log message ***
8322
8323 * src/files.c, src/allocate.c:
8324 entered into RCS
8325
8326 * src/reader.c: *** empty log message ***
8327
8328 * src/lex.c: entered into RCS
8329
8330 * src/conflicts.c: New file.
8331
8332 * src/symtab.c: entered into RCS
8333
8334 * src/alloc.h: New file.
8335
8336 * src/LR0.c: entered into RCS
8337
8338 1993-04-18 Noah Friedman <friedman@gnu.org>
8339
8340 * src/reader.c: New file.
8341
8342 * src/version.c: *** empty log message ***
8343
8344 1993-04-18 Noah Friedman <friedman@gnu.org>
8345
8346 * Makefile.in: *** empty log message ***
8347
8348 1993-04-17 Noah Friedman <friedman@gnu.org>
8349
8350 * Makefile.in: *** empty log message ***
8351
8352 1993-04-15 Richard Stallman <rms@gnu.org>
8353
8354 * src/main.c, src/files.c:
8355 New file.
8356
8357 1993-04-15 Noah Friedman <friedman@gnu.org>
8358
8359 * configure.in: entered into RCS
8360
8361 * configure.in: *** empty log message ***
8362
8363 * configure.in: New file.
8364
8365 1993-04-14 Richard Stallman <rms@gnu.org>
8366
8367 * Makefile.in: New file.
8368
8369 1993-04-13 Richard Stallman <rms@gnu.org>
8370
8371 * src/version.c: New file.
8372
8373 1993-03-25 Richard Stallman <rms@gnu.org>
8374
8375 * src/output.c: entered into RCS
8376
8377 1992-09-25 Richard Stallman <rms@gnu.org>
8378
8379 * configure.bat: entered into RCS
8380
8381 1992-06-22 Richard Stallman <rms@gnu.org>
8382
8383 * src/vmsgetargs.c: entered into RCS
8384
8385 1992-06-22 Richard Stallman <rms@gnu.org>
8386
8387 * doc/bison.rnh: entered into RCS
8388
8389 1992-04-20 David J. MacKenzie <djm@gnu.org>
8390
8391 * README: entered into RCS
8392
8393 1992-01-22 Richard Stallman <rms@gnu.org>
8394
8395 * src/machine.h: entered into RCS
8396
8397 1991-12-21 Richard Stallman <rms@gnu.org>
8398
8399 * src/lalr.c, src/closure.c:
8400 entered into RCS
8401
8402 1991-12-20 Richard Stallman <rms@gnu.org>
8403
8404 * src/state.h: entered into RCS
8405
8406 1991-12-18 Richard Stallman <rms@gnu.org>
8407
8408 * src/print.c, src/nullable.c, src/derives.c:
8409 entered into RCS
8410
8411 1991-11-03 David J. MacKenzie <djm@gnu.org>
8412
8413 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
8414 entered into RCS
8415
8416 1988-09-09 Richard Stallman <rms@gnu.org>
8417
8418 * src/bison.hairy: entered into RCS
8419
8420 1987-12-16 Richard Stallman <rms@gnu.org>
8421
8422 * REFERENCES: entered into RCS
8423 -----
8424
8425 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
8426
8427 This file is part of GNU Bison.
8428
8429 GNU Bison is free software; you can redistribute it and/or modify
8430 it under the terms of the GNU General Public License as published by
8431 the Free Software Foundation; either version 2, or (at your option)
8432 any later version.
8433
8434 GNU Bison is distributed in the hope that it will be useful,
8435 but WITHOUT ANY WARRANTY; without even the implied warranty of
8436 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8437 GNU General Public License for more details.
8438
8439 You should have received a copy of the GNU General Public License
8440 along with GNU Bison; see the file COPYING. If not, write to
8441 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
8442 Boston, MA 02111-1307, USA.