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