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