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