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