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