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