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