]> git.saurik.com Git - bison.git/blame - ChangeLog
Fixes from Jim Meyering.
[bison.git] / ChangeLog
CommitLineData
9738f41e
AD
12002-09-27 Akim Demaille <akim@epita.fr>
2
3 Version 1.49c.
4
a5c75d7f
AD
52002-09-27 Akim Demaille <akim@epita.fr>
6
7 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
8 (Because of AC_LIBSOURCE).
9
8280e179
AD
102002-09-27 Akim Demaille <akim@epita.fr>
11
12 Playing with Autoscan.
13
14 * configure.ac: Remove the old LIBOBJ tweaks.
15 (AC_REPLACE_FUNCS): Add strrchr and strtol.
16 * lib/strrchr.c: New.
17 * lib/strtol.c: New, from the Coreutils 4.5.1.
18
ae64af35
AD
192002-09-27 Akim Demaille <akim@epita.fr>
20
21 Playing with Autoscan.
22
23 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
24 * lib/Makefile.am (libbison_a_SOURCES): No longer include
25 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
26 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
27 Coreutils 4.5.1.
28
d1a1114f
AD
292002-09-24 Akim Demaille <akim@epita.fr>
30
31 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
32 (Frequently Asked Questions, Parser Stack Overflow): New.
33
b906441c
AD
342002-09-13 Akim Demaille <akim@epita.fr>
35
36 Playing with autoscan.
37
38 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
39 * src/files.c (skeleton_find): Remove, unused.
40 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
41 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
42
bd701811
AD
432002-09-13 Akim Demaille <akim@epita.fr>
44
45 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
46 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
47
e0a13e7b
AD
482002-09-13 Akim Demaille <akim@epita.fr>
49
50 * configure.ac: Require 2.54.
51 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
52 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
53 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
54 Remove, provided by Autoconf macros.
55
c97011bf
AD
562002-09-12 Akim Demaille <akim@epita.fr>
57
58 * m4/prereq.m4: Update, from Coreutils 4.5.1.
59
d862b1be
AD
602002-09-12 Akim Demaille <akim@epita.fr>
61
62 * m4/prereq.m4: Update, from Fileutils 4.1.5.
63 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
64 Reported by Martin Mokrejs.
65
3d38c03a
AD
662002-09-10 Akim Demaille <akim@epita.fr>
67
68 * src/parse-gram.y: Associate a human readable string to each
69 token type.
70 * tests/regression.at (Invalid inputs): Adjust.
71
b6347355
AD
722002-09-10 Gary V. Vaughan <gary@gnu.org>
73
74 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
75 with an Autoconf-2.5x style configure.ac.
76
09ba4ab2
PE
772002-09-06 Paul Eggert <eggert@twinsun.com>
78
79 * doc/bison.texinfo (Conditions): Make explicit that the GPL
80 exception applies only to yacc.c. This is a modification of a
81 patch originally suggested by Akim Demaille.
82
21846f69
AD
832002-09-06 Akim Demaille <akim@epita.fr>
84
09ba4ab2
PE
85 * data/c.m4 (b4_copyright): Move the GPL exception comment from
86 here to...
87 * data/yacc.c: here.
88
21846f69
AD
89 * data/lalr1.cc (struct yyltype): Don't define it, since we use
90 LocationType.
91 (b4_ltype): Default to yy::Location from location.hh.
92
c0ad8bf3
AD
932002-09-04 Jim Meyering <jim@meyering.net>
94
95 * data/yacc.c: Guard the declaration of yytoknum also with
96 `#ifdef YYPRINT', so it is declared only when used.
97
3a93251e
AD
982002-09-04 Akim Demaille <akim@epita.fr>
99
100 * configure.in: Rename as...
101 * configure.ac: this.
102 Bump to 1.49c.
103
427c0dda
AD
1042002-09-04 Akim Demaille <akim@epita.fr>
105
106 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
107 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
108 translate maintainer only messages.
109
6a254321
PE
1102002-08-12 Paul Eggert <eggert@twinsun.com>
111
645e30d1
PE
112 Version 1.49b.
113
6a254321
PE
114 * Makefile.am (SUBDIRS): Remove intl.
115 (DISTCLEANFILES): Remove.
116 * NEWS: Mention that GNU M4 is now required. Clarify what is
117 meant by "larger grammars". Mention the pt_BR translation.
118 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
119 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
120 Bump version from 0.11.2 to 0.11.5.
121 (BISON_PREREQ_STAGE): Remove.
122 (AM_GNU_GETTEXT): Use external gettext.
123 (AC_OUTPUT): Remove intl/Makefile.
124
125 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
126
127 * data/glr.c: Include string.h, for strlen.
128 (yyreportParseError): Use size_t for yysize.
129 (yy_yypstack): No longer nested inside yypstates, as nested
130 functions are not portable. Do not assume size_t is the
131 same width as int.
132 (yypstates): Do not assume that ptrdiff_t is the same width
133 as int, and similarly for yyposn and YYINDEX.
134
135 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
136
137 * lib/Makefile.am (INCLUDES): Do not include from the intl
138 directory, which has been removed.
139 * src/Makefile.am (INCLUDES): Likewise.
140
141 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
142 (bitsets_sources, additional_bitsets_sources, timevars_sources):
143 New vars.
144
145 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
146 * tests/Makefile.am (EXTRA_DIST): Likewise.
147
148 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
149 Do not assume that bitset_windex is the same width as unsigned.
150
151 * lib/abitset.c (abitset_unused_clear): Do not assume that
152 bitset_word is the same width as int.
153 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
154 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
155 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
156 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
157 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
158
159 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
160 portability to one's complement hosts!).
161 * lib/ebitset.c (ebitset_op1): Likewise.
162 * lib/lbitset.c (lbitset_op1): Likewise.
163
164 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
165 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
166 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
167 Sync with fileutils.
168 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
169 lib/gettext.h: Sync with diffutils.
170
171 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
172 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
173
174 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
175 PROTOTYPES to check for prototypes, and "defined __STDC__" to
176 check for void *.
177
178 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
179 size_t; the old version tried to do this but casted improperly.
180 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
181 (bitset_test): Now returns int, not unsigned long.
182
183 * lib/bitset_stats.c: Include "gettext.h".
184 (_): New macro.
185 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
186 name locals "index", as it generates unnecessary warnings on some
187 hosts that have an "index" function.
188
189 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
190 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
191 they need translation.
192 * src/LR0.c (state_list_append, new_itemsets, get_state,
193 append_states, generate_states): Likewise.
194 * src/assoc.c (assoc_to_string): Likewise.
195 * src/closure.c (print_closure, set_firsts, closure): Likewise.
196 * src/gram.c (grammar_dump): Likewise.
197 * src/injections.c (injections_compute): Likewise.
198 * src/lalr.c (lookaheads_print): Likewise.
199 * src/relation.c (relation_transpose): Likewise.
200 * src/scan-gram.l: Likewise.
201 * src/tables.c (table_grow, pack_vector): Likewise.
202
203 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
204 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
205 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
206 * m4/mbstate_t.m4: Sync with fileutils.
207 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
208
209 * po/LINGUAS: Add pt_BR.
210 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
211 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
212 lib/timevar.c.
213 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
214 manual recommends.
215 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
216
217 * src/complain.c (strerror_r): Remove decl; not needed.
218 (strerror): Use same pattern as ../lib/error.c.
219
220 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
221
222 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
223
224 * src/main.c (main): Cast result of bindtextdomain and textdomain
225 to void, to avoid a GCC warning when --disable-nls is in effect.
226
227 * src/scan-gram.l: Use strings rather than escapes when possible,
228 to minimize the number of warnings from xgettext.
229 (handle_action_dollar, handle_action_at): Don't use isdigit,
230 as it mishandles negative chars and it may not work as expected
231 outside the C locale.
232
233 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
234 this is a GCC extension and is not portable to other compilers.
235
236 * src/system.h (alloca): Use same pattern as ../lib/error.c.
237 Do not include <ctype.h>; no longer needed.
238 Do not include <malloc.h>; no longer needed (and generates
239 warnings on OpenBSD 3.0).
240
241 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
242 it's not portable.
243
244 * tests/regression.at: Do not use 'cc -c input.c -o input';
245 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
246
247 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
248 exit status as failure, not just exit status 1. Sun C exits
249 with status 2 sometimes.
250
251 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
252 Use it for the two large tests.
253
c8f002c7
AD
2542002-08-02 Akim Demaille <akim@epita.fr>
255
256 * src/conflicts.c (conflicts_output): Don't output rules never
257 reduced here, since anyway that computation doesn't work.
258 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
259 (rule_useless_p, rule_never_reduced_p): New.
260 (grammar_rules_partial_print): Use a filter instead of a range.
261 Display the title only if needed.
262 (grammar_rules_print): Adjust.
263 (grammar_rules_never_reduced_report): New.
264 * src/tables.c (action_row): Move the computation of rules never
265 reduced to...
266 (token_actions): here.
267 * src/main.c (main): Make the parser before making the report, so
268 that rules never reduced are computed.
269 Call grammar_rules_never_reduced_report.
270 * src/print.c (print_results): Report rules never reduced.
271 * tests/conflicts.at, tests/reduce.at: Adjust.
272
cd08e51e
AD
2732002-08-01 Akim Demaille <akim@epita.fr>
274
275 Instead of attaching lookaheads and duplicating the rules being
276 reduced by a state, attach the lookaheads to the reductions.
277
278 * src/state.h (state_t): Remove the `lookaheads',
279 `lookaheads_rule' member.
280 (reductions_t): Add a `lookaheads' member.
281 Use a regular array for the `rules'.
282 * src/state.c (reductions_new): Initialize the lookaheads member
283 to 0.
284 (state_rule_lookaheads_print): Adjust.
285 * src/state.h, src/state.c (state_reductions_find): New.
286 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
287 (count_rr_conflicts): Adjust.
288 * src/lalr.c (LArule): Remove.
289 (add_lookback_edge): Adjust.
290 (state_lookaheads_count): New.
291 (states_lookaheads_initialize): Merge into...
292 (initialize_LA): this.
293 (lalr_free): Adjust.
294 * src/main.c (main): Don't free nullable and derives too early: it
295 is used by --verbose.
296 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
297
bb0027a9
AD
2982002-08-01 Akim Demaille <akim@epita.fr>
299
300 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
301 `rule_number_t**'.
302 (set_derives, free_derives): Rename as...
303 (derives_compute, derives_free): this.
304 Adjust all dependencies.
305 * src/nullable.c (set_nullable, free_nullable): Rename as...
306 (nullable_compute, nullable_free): these.
307 (rule_list_t): Store rule_t *, not rule_number_t.
308 * src/state.c (state_rule_lookaheads_print): Directly compare rule
309 pointers, instead of their numbers.
310 * src/main.c (main): Call nullable_free, and derives_free earlier,
311 as they were lo longer used.
312
3325ddc4
AD
3132002-08-01 Akim Demaille <akim@epita.fr>
314
315 * lib/timevar.c (get_time): Include children time.
316 * src/lalr.h (LA, LArule): Don't export them: used with the
317 state_t.
318 * src/lalr.c (LA, LArule): Static.
319 * src/lalr.h, src/lalr.c (lalr_free): New.
320 * src/main.c (main): Call it.
321 * src/tables.c (pack_vector): Check whether loc is >= to the
322 table_size, not >.
323 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
324 (tables_generate): do it, since that's also it which allocates
325 them.
326 Don't free LA and LArule, main does.
327
c6f1a33c
AD
3282002-07-31 Akim Demaille <akim@epita.fr>
329
330 Separate parser tables computation and output.
331
332 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
333 (conflict_list, conflict_list_cnt, table, check, table_ninf)
334 (yydefgoto, yydefact, high): Move to...
335 * src/tables.h, src/tables.c: here.
336 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
337 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
338 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
339 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
340 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
341 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
342 (action_row, save_row, token_actions, save_column, default_goto)
343 (goto_actions, sort_actions, matching_state, pack_vector)
344 (table_ninf_remap, pack_table, prepare_actions): Move to...
345 * src/tables.c: here.
346 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
347 * src/output.c (token_actions, output_base, output_conflicts)
348 (output_check): Merge into...
349 (prepare_actions): this.
350 (actions_output): Rename as...
351 (user_actions_output): this.
352 * src/main.c (main): Call tables_generate and tables_free.
353
1509d42f
AD
3542002-07-31 Akim Demaille <akim@epita.fr>
355
356 Steal GCC's --time-report support.
357
358 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
359 stolen/adjusted from GCC.
360 * m4/stage.m4: Remove time related checks.
361 * m4/timevar.m4: New.
362 * configure.in: Adjust.
363 * src/system.h: Adjust to using timevar.h.
364 * src/getargs.h, src/getargs.c: Support trace_time for
365 --trace=time.
366 * src/main.c (stage): Remove.
367 (main): Replace `stage' invocations with timevar calls.
368 * src/output.c: Insert pertinent timevar calls.
369
273a74fa
AD
3702002-07-31 Akim Demaille <akim@epita.fr>
371
372 Let --trace have arguments.
373
374 * src/getargs.h (enum trace_e): New.
375 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
376 (long_options, short_options): --trace/-T takes an optional
377 argument.
378 Change all the uses of trace_flag to reflect the new flags.
379 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
380
381 Strengthen `stage' portability.
382
383 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
384 * configure.in: Use it.
385 Don't check for malloc.h and sys/times.h.
386 * src/system.h: Include them when appropriate.
387 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
388 times and struct tms are available.
389
217598da
AD
3902002-07-30 Akim Demaille <akim@epita.fr>
391
392 In verbose parse error message, don't report `error' as an
393 expected token.
394 * tests/actions.at (Printers and Destructors): Adjust.
395 * tests/calc.at (Calculator $1): Adjust.
396 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
397 error message, do not report the parser accepts the error token in
398 that state.
399
52489d44
AD
4002002-07-30 Akim Demaille <akim@epita.fr>
401
402 Normalize conflict related messages.
403
404 * src/complain.h, src/complain.c (warn, complain): New.
405 * src/conflicts.c (conflicts_print): Use them.
406 (conflict_report_yacc): New, extracted from...
407 (conflicts_print): here.
408 * tests/conflicts.at, tests/existing.at: Adjust.
409
e8832397
AD
4102002-07-30 Akim Demaille <akim@epita.fr>
411
412 Report rules which are never reduced by the parser: those hidden
413 by conflicts.
414
415 * src/LR0.c (save_reductions): Don't make the final state too
416 different: save its reduction (accept) instead of having a state
417 without any action (no shift or goto, no reduce).
418 Note: the final state is now a ``regular'' state, i.e., the
419 parsers now contain `reduce 0' as default reduction.
420 Nevertheless, since they decide to `accept' when yystate =
421 final_state, they still will not reduce rule 0.
422 * src/print.c (print_actions, print_reduction): Adjust.
423 * src/output.c (action_row): Track reduced rules.
424 (token_actions): Report rules never reduced.
425 * tests/conflicts.at, tests/regression.at: Adjust.
426
caf23d24
AD
4272002-07-30 Akim Demaille <akim@epita.fr>
428
429 `stage' was accidently included in a previous patch.
430 Initiate its autoconfiscation.
431
432 * configure.in: Look for malloc.h and sys/times.h.
433 * src/main.c (stage): Adjust.
434 Report only when trace_flag.
435
640748ee
AD
4362002-07-29 Akim Demaille <akim@epita.fr>
437
438 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
439 state_number_t.
440 (errs_t): symbol_t*, not symbol_number_t.
441 (reductions_t): rule_t*, not rule_number_t.
442 (FOR_EACH_SHIFT): New.
443 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
444 * src/print.c, src/print_graph.c: Adjust.
445
88bce5a2
AD
4462002-07-29 Akim Demaille <akim@epita.fr>
447
448 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
449
450 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
451 (endtoken, accept): these.
452 * src/reader.c (reader): Set endtoken's default tag to "$end".
453 Set undeftoken's tag to "$undefined" instead of "$undefined.".
454 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
455 Adjust.
456
1bfb97db
AD
4572002-07-29 Akim Demaille <akim@epita.fr>
458
459 * src/reduce.c (reduce_grammar): When the language is empty,
460 complain about the start symbol, not the axiom.
461 Use its location.
462 * tests/reduce.at (Empty Language): New.
463
fc5734fe
AD
4642002-07-26 Akim Demaille <akim@epita.fr>
465
466 * src/reader.h, src/reader.c (gram_error): ... can't get
467 yycontrol without making too strong assumptions on the parser
468 itself.
469 * src/output.c (prepare_tokens): Use the real 0th value of
470 token_translations instead of `0'.
471 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
472 visible here.
473 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
474 for the time being: %locations ought to provide it to yyerror.
475
3650b4b8
AD
4762002-07-25 Akim Demaille <akim@epita.fr>
477
478 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
479 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
480 * tests/regression.at (Web2c Actions): Adjust.
481
4b3d3a8e
AD
4822002-07-25 Akim Demaille <akim@epita.fr>
483
484 Stop storing rules from 1 to nrules + 1.
485
486 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
487 * src/nullable.c, src/output.c, src/print.c, src/reader.c
488 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
489 Iterate from 0 to nrules.
490 Use rule_number_as_item_number and item_number_as_rule_number.
491 Adjust to `derive' now containing possibly 0.
492 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
493 Handle the `- 1' part in rule numbers from/to item numbers.
494 * src/conflicts.c (log_resolution): Fix the message which reversed
495 shift and reduce.
496 * src/output.c (action_row): Initialize default_rule to -1.
497 (token_actions): Adjust.
498 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
499 expected output.
500 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
501
4a2a22f4
AD
5022002-07-25 Akim Demaille <akim@epita.fr>
503
504 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
505 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
506 (b4_c_knr_arg_decl): New.
507 * data/yacc.c: Use it to define yysymprint, yydestruct, and
508 yyreport_parse_error.
509
b8df3223
AD
5102002-07-25 Akim Demaille <akim@epita.fr>
511
512 * data/yacc.c (yyreport_parse_error): New, extracted from...
513 (yyparse): here.
514 (yydestruct, yysymprint): Move above yyparse.
515 Be K&R compliant.
516
a762e609
AD
5172002-07-25 Akim Demaille <akim@epita.fr>
518
519 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
520 replace...
521 (b4_sint_type, b4_uint_type): these.
522 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
523 * tests/regression.at (Web2c Actions): Adjust.
524
12b0043a
AD
5252002-07-25 Akim Demaille <akim@epita.fr>
526
527 * src/gram.h (TIEM_NUMBER_MAX): New.
528 (item_number_of_rule_number, rule_number_of_item_number): Rename
529 as...
530 (rule_number_as_item_number, item_number_as_rule_number): these.
531 Adjust dependencies.
532 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
533 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
534 (symbol_number_to_vector_number): New.
535 (order): Of vector_number_t* type.
536 (base_t, BASE_MAX, BASE_MIN): New.
537 (froms, tos, width, pos, check): Of base_t type.
538 (action_number_t, ACTION_MIN, ACTION_MAX): New.
539 (actrow): Of action_number_t type.
540 (conflrow): Of unsigned int type.
541 (table_ninf, base_ninf): New.
542 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
543 (muscle_insert_int_table, muscle_insert_base_table)
544 (muscle_insert_rule_number_table): New.
545 (prepare_tokens): Output `toknum' as int_table.
546 (action_row): Returns a rule_number_t.
547 Use ACTION_MIN, not SHRT_MIN.
548 (token_actions): yydefact is rule_number_t*.
549 (table_ninf_remap): New.
550 (pack_table): Use it for `base' and `table'.
551 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
552 replaced with...
553 (YYPACT_NINF, YYTABLE_NINF): these.
554 (yypact, yytable): Compute their types instead of hard-coded
555 `short'.
556 * tests/regression.at (Web2c Actions): Adjust.
557
5dde258a
AD
5582002-07-19 Akim Demaille <akim@epita.fr>
559
560 * src/scan-gram.l (id): Can start with an underscore.
561
a945ec39
AD
5622002-07-16 Akim Demaille <akim@epita.fr>
563
564 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
565 Adjust all former `associativity' dependencies.
566 * src/symtab.c (symbol_new): Default associativity is `undef', not
567 `right'.
568 (symbol_check_alias_consistence): Adjust.
569
fae437e8
AD
5702002-07-09 Akim Demaille <akim@epita.fr>
571
572 * doc/bison.texinfo: Properly set the ``header'' part.
573 Use @dircategory ``GNU programming tools'' as per Texinfo's
574 documentation.
575 Use @copying.
576
1a715ef2
AD
5772002-07-09 Akim Demaille <akim@epita.fr>
578
579 * lib/quotearg.h: Protect against multiple inclusions.
580 * src/location.h (location_t): Add a `file' member.
581 (LOCATION_RESET, LOCATION_PRINT): Adjust.
582 * src/complain.c (warn_at, complain_at, fatal_at): Drop
583 `error_one_per_line' support.
584
a5d50994
AD
5852002-07-09 Akim Demaille <akim@epita.fr>
586
587 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
588 * src/reader.c (lineno): Remove.
589 Adjust all dependencies.
590 (get_merge_function): Take a location and use complain_at.
591 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
592 * tests/regression.at (Invalid inputs, Mixing %token styles):
593 Adjust.
594
b275314e
AD
5952002-07-09 Akim Demaille <akim@epita.fr>
596
597 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
598 recovery rule, and forbid extensions when --yacc.
599 (gram_error): Use complain_at.
600 * src/reader.c (reader): Exit if there were parse errors.
601
865b9df1
AD
6022002-07-09 Akim Demaille <akim@epita.fr>
603
604 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
605 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
606 Reported by R Blake <blakers@mac.com>.
607
c76e14da
AD
6082002-07-09 Akim Demaille <akim@epita.fr>
609
610 * data/yacc.c: Output the copyright notive in the header.
611
7db2ed2d
AD
6122002-07-03 Akim Demaille <akim@epita.fr>
613
614 * src/output.c (froms, tos): Are state_number_t.
615 (save_column): sp, sp1, and sp2 are state_number_t.
616 (prepare): Rename `final' as `final_state_number', `nnts' as
617 `nterms_number', `nrules' as `rules_number', `nstates' as
618 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
619 unused.
620 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
621 * data/lalr1.cc (nsym_): Remove, unused.
622
e68e0410
AD
6232002-07-03 Akim Demaille <akim@epita.fr>
624
625 * src/lalr.h, src/lalr.c (goto_number_t): New.
626 * src/lalr.c (goto_list_t): New.
627 Propagate them.
628 * src/nullable.c (rule_list_t): New.
629 Propagate.
630 * src/types.h: Remove.
631
e1a4f3a4
AD
6322002-07-03 Akim Demaille <akim@epita.fr>
633
634 * src/closure.c (print_fderives): Use rule_rhs_print.
635 * src/derives.c (print_derives): Use rule_rhs_print.
636 (rule_list_t): New, replaces `shorts'.
637 (set_derives): Add comments.
638 * tests/sets.at (Nullable, Firsts): Adjust.
639
536545f3
AD
6402002-07-03 Akim Demaille <akim@epita.fr>
641
642 * src/output.c (prepare_actions): Free `tally' and `width'.
643 (prepare_actions): Allocate and free `order'.
644 * src/symtab.c (symbols_free): Free `symbols'.
645 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
646 * src/output.c (m4_invoke): Move to...
647 * src/scan-skel.l: here.
648 (<<EOF>>): Close yyout, and free its name.
649
8b752b00
AD
6502002-07-03 Akim Demaille <akim@epita.fr>
651
652 Fix some memory leaks, and fix a bug: state 0 was examined twice.
653
654 * src/LR0.c (new_state): Merge into...
655 (state_list_append): this.
656 (new_states): Merge into...
657 (generate_states): here.
658 (set_states): Don't ensure a proper `errs' state member here, do it...
659 * src/conflicts.c (conflicts_solve): here.
660 * src/state.h, src/state.c: Comment changes.
661 (state_t): Rename member `shifts' as `transitions'.
662 Adjust all dependencies.
663 (errs_new): For consistency, also take the values as argument.
664 (errs_dup): Remove.
665 (state_errs_set): New.
666 (state_reductions_set, state_transitions_set): Assert that no
667 previous value was assigned.
668 (state_free): New.
669 (states_free): Use it.
670 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
671 temporary storage: use `errs' and `nerrs' as elsewhere.
672 (set_conflicts): Allocate and free this `errs'.
673
613f5e1a
AD
6742002-07-02 Akim Demaille <akim@epita.fr>
675
676 * lib/libiberty.h: New.
677 * lib: Update the bitset implementation from upstream.
678 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
679 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
680 * src/main.c: Adjust bitset stats calls.
681
26e0cadc
PE
6822002-07-01 Paul Eggert <eggert@twinsun.com>
683
684 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
685 char, so that negative chars don't collide with $.
686
1154cced
AD
6872002-06-30 Akim Demaille <akim@epita.fr>
688
689 Have the GLR tests be `warning' checked, and fix the warnings.
690
691 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
692 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
693 (yyremoveDeletes): `yyi' and `yyj' are size_t.
694 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
695 (yyaddDeferredAction): static.
696 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
697 (yyreportParseError): yyprefix is const.
698 yytokenp is used only when verbose.
699 (yy__GNUC__): Replace with __GNUC__.
700 (yypdumpstack): yyi is size_t.
701 (yypreference): Un-yy local variables and arguments, to avoid
702 clashes with `yyr1'. Anyway, we are not in the user name space.
703 (yytname_size): be an int, as is compared with ints.
704 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
705 Use them.
706 * tests/cxx-gram.at: Use quotation to protect $1.
707 Use AT_COMPILE to enable warnings hunts.
708 Prototype yylex and yyerror.
709 `Use' argc.
710 Include `string.h', not `strings.h'.
711 Produce and prototype stmtMerge only when used.
712 yylex takes a location.
713
97650f4e
AD
7142002-06-30 Akim Demaille <akim@epita.fr>
715
716 We spend a lot of time in quotearg, in particular when --verbose.
717
718 * src/symtab.c (symbol_get): Store a quoted version of the key.
719 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
720 Adjust all callers.
721
d2576365
AD
7222002-06-30 Akim Demaille <akim@epita.fr>
723
724 * src/state.h (reductions_t): Rename member `nreds' as num.
725 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
726 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
727
ccaf65bc
AD
7282002-06-30 Akim Demaille <akim@epita.fr>
729
730 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
731 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
732 (shifts_to): Rename as...
733 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
734 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
735 (TRANSITION_IS_DISABLED, transitions_to): these.
736
87675353
AD
7372002-06-30 Akim Demaille <akim@epita.fr>
738
739 * src/print.c (print_shifts, print_gotos): Merge into...
740 (print_transitions): this.
741 (print_transitions, print_errs, print_reductions): Align the
742 lookaheads columns.
743 (print_core, print_transitions, print_errs, print_state,
744 print_grammar): Output empty lines separator before, not after.
745 (state_default_rule_compute): Rename as...
746 (state_default_rule): this.
747 * tests/conflicts.at (Defaulted Conflicted Reduction),
748 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
749 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
750
ce4ccb4b
AD
7512002-06-30 Akim Demaille <akim@epita.fr>
752
753 Display items as we display rules.
754
755 * src/gram.h, src/gram.c (rule_lhs_print): New.
756 * src/gram.c (grammar_rules_partial_print): Use it.
757 * src/print.c (print_core): Likewise.
758 * tests/conflicts.at (Defaulted Conflicted Reduction),
759 (Unresolved SR Conflicts): Adjust.
760 (Unresolved SR Conflicts): Adjust and rename as...
761 (Resolved SR Conflicts): this, as was meant.
762 * tests/regression.at (Web2c Report): Adjust.
763
bc933ef1
AD
7642002-06-30 Akim Demaille <akim@epita.fr>
765
766 * src/print.c (state_default_rule_compute): New, extracted from...
767 (print_reductions): here.
768 Pessimize, but clarify the code.
769 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
770
53d4308d
AD
7712002-06-30 Akim Demaille <akim@epita.fr>
772
773 * src/output.c (action_row): Let default_rule be always a rule
774 number.
775
574fb2d5
AD
7762002-06-30 Akim Demaille <akim@epita.fr>
777
778 * src/closure.c (print_firsts, print_fderives, closure):
779 Use BITSET_EXECUTE.
780 * src/lalr.c (lookaheads_print): Likewise.
781 * src/state.c (state_rule_lookaheads_print): Likewise.
782 * src/print_graph.c (print_core): Likewise.
783 * src/print.c (print_reductions): Likewise.
784 * src/output.c (action_row): Likewise.
785 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
786
05811fd7
AD
7872002-06-30 Akim Demaille <akim@epita.fr>
788
789 * src/print_graph.c: Use report_flag.
790
0e4d5753
AD
7912002-06-30 Akim Demaille <akim@epita.fr>
792
793 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
794 to...
795 * src/relation.h, src/relation.c (traverse, relation_digraph)
796 (relation_print, relation_transpose): New.
797
24c7d800
AD
7982002-06-30 Akim Demaille <akim@epita.fr>
799
800 * src/state.h, src/state.c (shifts_to): New.
801 * src/lalr.c (build_relations): Use it.
802
9222837b
AD
8032002-06-30 Akim Demaille <akim@epita.fr>
804
805 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
806 (item_number_of_rule_number, rule_number_of_item_number): New.
807 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
808 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
809 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
810 Propagate their use.
811 Much remains to be done, in particular wrt `shorts' from types.h.
812
260008e5
AD
8132002-06-30 Akim Demaille <akim@epita.fr>
814
815 * src/symtab.c (symbol_new): Initialize the `printer' member.
816
8a731ca8
AD
8172002-06-30 Akim Demaille <akim@epita.fr>
818
819 * src/LR0.c (save_reductions): Remove, replaced by...
820 * src/state.h, src/state.c (state_reductions_set): New.
821 (reductions, errs): Rename as...
822 (reductions_t, errs_t): these.
823 Adjust all dependencies.
824
32e1e0a4
AD
8252002-06-30 Akim Demaille <akim@epita.fr>
826
827 * src/LR0.c (state_list_t, state_list_append): New.
828 (first_state, last_state): Now symbol_list_t.
829 (this_state): Remove.
830 (new_itemsets, append_states, save_reductions): Take a state_t as
831 argument.
832 (set_states, generate_states): Adjust.
833 (save_shifts): Remove, replaced by...
834 * src/state.h, src/state.c (state_shifts_set): New.
835 (shifts): Rename as...
836 (shifts_t): this.
837 Adjust all dependencies.
838 * src/state.h (state_t): Remove the `next' member.
839
e5fb6710
AD
8402002-06-30 Akim Demaille <akim@epita.fr>
841
842 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
843 escaped in slot 0.
844
c7ca99d4
AD
8452002-06-30 Akim Demaille <akim@epita.fr>
846
847 Use hash.h for the state hash table.
848
849 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
850 (allocate_storage): Use state_hash_new.
851 (free_storage): Use state_hash_free.
852 (new_state, get_state): Adjust.
853 * src/lalr.h, src/lalr.c (states): Move to...
854 * src/states.h (state_t): Remove the `link' member, no longer
855 used.
856 * src/states.h, src/states.c: here.
857 (state_hash_new, state_hash_free, state_hash_lookup)
858 (state_hash_insert, states_free): New.
859 * src/states.c (state_table, state_compare, state_hash): New.
860 * src/output.c (output_actions): Do not free states now, since we
861 still need to know the final_state number in `prepare', called
862 afterwards. Do it...
863 * src/main.c (main): here: call states_free after `output'.
864
df0e7316
AD
8652002-06-30 Akim Demaille <akim@epita.fr>
866
867 * src/state.h, src/state.c (state_new): New, extracted from...
868 * src/LR0.c (new_state): here.
869 * src/state.h (STATE_ALLOC): Move to...
870 * src/state.c: here.
871 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
872 * src/state.h, src/state.c: here.
873
39f41916
AD
8742002-06-30 Akim Demaille <akim@epita.fr>
875
876 * src/reader.c (gensym): Rename as...
877 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
878 (getsym): Rename as...
879 (symbol_get): this.
880
d57650a5
AD
8812002-06-30 Akim Demaille <akim@epita.fr>
882
883 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
884 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
885 * src/output.c, src/print.c, src/print_graph.c: Propagate.
886 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
887
5a08f1ce
AD
8882002-06-30 Akim Demaille <akim@epita.fr>
889
890 Make the test suite pass with warnings checked.
891
892 * tests/actions.at (Printers and Destructors): Improve.
893 Avoid unsigned vs. signed issues.
894 * tests/calc.at: Don't exercise the scanner here, do it...
895 * tests/input.at (Torturing the Scanner): here.
896
720623af
PH
8972002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
898
88e7e941 899 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
720623af
PH
900 reorganize first lines parallel to yacc.c.
901
fb8135fa
AD
9022002-06-28 Akim Demaille <akim@epita.fr>
903
904 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
905 (b4_token_enum, b4_token_defines): New, factored from...
906 * data/lalr1.cc, data/yacc.c, glr.c: here.
907
41442480
AD
9082002-06-28 Akim Demaille <akim@epita.fr>
909
910 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
911 unused variables.
912 * src/output.c (merger_output): static.
913
e0e5bf84
AD
9142002-06-28 Akim Demaille <akim@epita.fr>
915
916 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
917 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
918 pacify GCC.
919 * src/output.c (save_row): Initialize all the variables to pacify GCC.
e0e5bf84 920
676385e2
PH
9212002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
922
923 Accumulated changelog for new GLR parsing features.
924
6a254321 925 * src/conflicts.c (count_total_conflicts): Change name to
676385e2
PH
926 conflicts_total_count.
927 * src/conflicts.h: Ditto.
928 * src/output.c (token_actions): Use the new name.
929 (output_conflicts): Change conflp => conflict_list_heads, and
930 confl => conflict_list for better readability.
931 * data/glr.c: Use the new names.
932 * NEWS: Add self to GLR announcement.
e0e5bf84 933
676385e2
PH
934 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
935
936 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
937 Akim Demaille.
938
939 * data/bison.glr: Change name to glr.c
940 * data/glr.c: Renamed from bison.glr.
941 * data/Makefile.am: Add glr.c
e0e5bf84
AD
942
943 * src/getargs.c:
944
676385e2
PH
945 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
946 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
e0e5bf84 947
676385e2
PH
948 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
949
950 * data/bison.glr: Be sure to restore the
951 current #line when returning to the skeleton contents after having
952 exposed the input file's #line.
953
954 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
955
956 * data/bison.glr: Bring up to date with changes to bison.simple.
957
958 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
959
960 * data/bison.glr: Correct definitions that use b4_prefix.
961 Various reformatting.
962 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
963 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
964 yytokenp argument; now part of stack.
965 (yychar): Define to behave as documented.
966 (yyclearin): Ditto.
e0e5bf84 967
676385e2
PH
968 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
969
970 * src/reader.h: Add declaration for free_merger_functions.
971
972 * src/reader.c (merge_functions): New variable.
973 (get_merge_function): New function.
974 (free_merger_functions): New function.
975 (readgram): Check for %prec that is not followed by a symbol.
976 Handle %dprec and %merge declarations.
977 (packgram): Initialize dprec and merger fields in rules array.
978
979 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
980 conflict_list_cnt, conflict_list_free): New variables.
981 (table_grow): Also grow conflict_table.
e0e5bf84 982 (prepare_rules): Output dprec and merger tables.
676385e2 983 (conflict_row): New function.
e0e5bf84 984 (action_row): Output conflict lists for GLR parser. Don't use
676385e2
PH
985 default reduction in conflicted states for GLR parser so that there
986 are spaces for the conflict lists.
987 (save_row): Also save conflict information.
988 (token_actions): Allocate conflict list.
989 (merger_output): New function.
990 (pack_vector): Pack conflict table, too.
991 (output_conflicts): New function to output yyconflp and yyconfl.
992 (output_check): Allocate conflict_tos.
993 (output_actions): Output conflict tables, also.
994 (output_skeleton): Output b4_mergers definition.
995 (prepare): Output b4_max_rhs_length definition.
996 Use 'bison.glr' as default skeleton for GLR parsers.
997
998 * src/gram.c (glr_parser): New flag.
999 (grammar_free): Call free_merger_functions.
1000
1001 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
1002 all pairs of conflicting reductions, rather than just all tokens
1003 causing conflicts. Needed to size conflict tables.
e0e5bf84 1004 (conflicts_output): Modify call to count_rr_conflicts for new
676385e2
PH
1005 interface.
1006 (conflicts_print): Ditto.
1007 (count_total_conflicts): New function.
1008
1009 * src/reader.h (merger_list): New type.
1010 (merge_functions): New variable.
1011
1012 * src/lex.h (tok_dprec, tok_merge): New token types.
1013
1014 * src/gram.h (rule_s): Add dprec and merger fields.
1015 (glr_parser): New flag.
1016
1017 * src/conflicts.h (count_total_conflicts): New function.
1018
1019 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
1020
1021 * doc/bison.texinfo (Generalized LR Parsing): New section.
1022 (GLR Parsers): New section.
1023 (Language and Grammar): Mention GLR parsing.
1024 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
1025 Correct typo ("tge" -> "the").
1026
1027 * data/bison.glr: New skeleton for GLR parsing.
1028
1029 * tests/cxx-gram.at: New tests for GLR parsing.
1030
1031 * tests/testsuite.at: Include cxx-gram.at.
1032
1033 * tests/Makefile.am: Add cxx-gram.at.
e0e5bf84 1034
676385e2
PH
1035 * src/parse-gram.y:
1036
1037 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
1038
1039 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
e0e5bf84 1040
b5480d74 10412002-06-27 Akim Demaille <akim@epita.fr>
e2aaf4c4
AD
1042
1043 * src/options.h, src/options.c: Remove.
1044 * src/getargs.c (short_options, long_options): New.
1045
60491a94
AD
10462002-06-27 Akim Demaille <akim@epita.fr>
1047
1048 * data/bison.simple, data/bison.c++: Rename as...
1049 * data/yacc.c, data/lalr1.cc: these.
1050 * doc/bison.texinfo (Environment Variables): Remove.
1051
9be0c25b
AD
10522002-06-25 Raja R Harinath <harinath@cs.umn.edu>
1053
1054 * src/getargs.c (report_argmatch): Initialize strtok().
1055
1ae72863
AD
10562002-06-20 Akim Demaille <akim@epita.fr>
1057
1058 * data/bison.simple (b4_symbol_actions): New, replaces...
1059 (b4_symbol_destructor, b4_symbol_printer): these.
1060 (yysymprint): Be sure to call YYPRINT only for tokens, and using
1061 user token numbers.
1062
87542d29
AD
10632002-06-20 Akim Demaille <akim@epita.fr>
1064
1065 * data/bison.simple (yydestructor): Rename as...
1066 (yydestruct): this.
1067
1a31ed21
AD
10682002-06-20 Akim Demaille <akim@epita.fr>
1069
1070 * src/symtab.h, src/symtab.c (symbol_type_set)
1071 (symbol_destructor_set, symbol_precedence_set): The location is
1072 the last argument.
1073 Adjust all callers.
1074
e776192e
AD
10752002-06-20 Akim Demaille <akim@epita.fr>
1076
1077 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
1078 internals.
1079 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
1080 Takes a location.
1081 * src/symtab.h, src/symtab.c (symbol_class_set)
1082 (symbol_user_token_number_set): Likewise.
1083 Adjust all callers.
1084 Promote complain_at.
1085 * tests/input.at (Type Clashes): Adjust.
1086
5c1180b3
AD
10872002-06-20 Akim Demaille <akim@epita.fr>
1088
1089 * data/bison.simple (YYLEX): Fix the declaration when
1090 %pure-parser.
1091
e3170060
AD
10922002-06-20 Akim Demaille <akim@epita.fr>
1093
1094 * data/bison.simple (yysymprint): Don't print the token number,
1095 just its name.
1096 * tests/actions.at (Destructors): Rename as...
1097 (Printers and Destructors): this.
1098 Also exercise %printer.
1099
253862fd
AD
11002002-06-20 Akim Demaille <akim@epita.fr>
1101
1102 * data/bison.simple (YYDSYMPRINT): New.
1103 Use it to remove many of the #if YYDEBUG/if (yydebug).
1104
366eea36
AD
11052002-06-20 Akim Demaille <akim@epita.fr>
1106
1107 * src/symtab.h, src/symtab.c (symbol_t): printer and
1108 printer_location are new members.
1109 (symbol_printer_set): New.
1110 * src/parse-gram.y (PERCENT_PRINTER): New token.
1111 Handle its associated rule.
1112 * src/scan-gram.l: Adjust.
1113 (handle_destructor_at, handle_destructor_dollar): Rename as...
1114 (handle_symbol_code_at, handle_symbol_code_dollar): these.
1115 * src/output.c (symbol_printers_output): New.
1116 (output_skeleton): Call it.
1117 * data/bison.simple (yysymprint): New. Cannot be named yyprint
1118 since there are already many grammar files with a user `yyprint'.
1119 Replace the calls to YYPRINT to calls to yysymprint.
1120 * tests/calc.at: Adjust.
1121 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
1122 taking advantage of parser very internal details (stack size!).
1123
4f25ebb0
AD
11242002-06-20 Akim Demaille <akim@epita.fr>
1125
1126 * src/scan-gram.l: Complete the scanner with the missing patterns
1127 to pacify Flex.
1128 Use `quote' and `symbol_tag_get' where appropriate.
1129
93b68a0e
AD
11302002-06-19 Akim Demaille <akim@epita.fr>
1131
1132 * tests/actions.at (Destructors): Augment to test locations.
1133 * data/bison.simple (yydestructor): Pass it the current location
1134 if locations are enabled.
1135 Prototype only when __STDC__ or C++.
1136 Change the argument names to move into the yy name space: there is
1137 user code here.
1138
58612f1d
AD
11392002-06-19 Akim Demaille <akim@epita.fr>
1140
74310291
AD
1141 * data/bison.simple (b4_pure_if): New.
1142 Use it instead of #ifdef YYPURE.
1143
11442002-06-19 Akim Demaille <akim@epita.fr>
1145
1146 * data/bison.simple (b4_location_if): New.
58612f1d
AD
1147 Use it instead of #ifdef YYLSP_NEEDED.
1148
f25bfb75
AD
11492002-06-19 Akim Demaille <akim@epita.fr>
1150
1151 Prepare @$ in %destructor, but currently don't bind it in the
1152 skeleton, as %location use is not cleaned up yet.
1153
1154 * src/scan-gram.l (handle_dollar, handle_destructor_at)
1155 (handle_action_at): New.
1156 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
1157 a braced_code_t and a location as additional arguments.
1158 (handle_destructor_dollar): Instead of requiring `b4_eval', just
1159 unquote one when outputting `b4_dollar_dollar'.
1160 Adjust callers.
1161 * data/bison.simple (b4_eval): Remove.
1162 (b4_symbol_destructor): Adjust.
1163 * tests/input.at (Invalid @n): Adjust.
1164
c732d2c6
AD
11652002-06-19 Zack Weinberg <zack@codesourcery.com>
1166
1167 * doc/bison.texinfo: Document ability to have multiple
1168 prologue sections.
1169
8c165d89
AD
11702002-06-18 Akim Demaille <akim@epita.fr>
1171
1172 * src/files.c (compute_base_names): When computing the output file
1173 names from the input file name, strip the directory part.
1174
ca98bf57
AD
11752002-06-18 Akim Demaille <akim@epita.fr>
1176
1177 * data/bison.simple.new: Comment changes.
1178 Reported by Andreas Schwab.
1179
0bfb02ff
AD
11802002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
1181
1182 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
1183 there are no `label `yyoverflowlab' defined but not used' warnings
1184 when yyoverflow is defined.
1185
24c0aad7
AD
11862002-06-18 Akim Demaille <akim@epita.fr>
1187
1188 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
1189 new member.
1190 (symbol_destructor_set): Adjust.
1191 * src/output.c (symbol_destructors_output): Output the destructor
1192 locations.
1193 Output the symbol name.
1194 * data/bison.simple (b4_symbol_destructor): Adjust.
1195
5719c109
AD
11962002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
1197 and Akim Demaille <akim@epita.fr>
1198
1199 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
1200 what's left on the stack when the error recovery hits EOF.
1201 * tests/actions.at (Destructors): Complete to exercise this case.
1202
9280d3ef
AD
12032002-06-17 Akim Demaille <akim@epita.fr>
1204
1205 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
1206 arguments is really empty, not only equal to `[]'.
1207 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
1208 member.
1209 (symbol_destructor_set): New.
1210 * src/output.c (symbol_destructors_output): New.
1211 * src/reader.h (brace_code_t, current_braced_code): New.
1212 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
1213 (handle_dollar): Rename as...
1214 (handle_action_dollar): this.
1215 (handle_destructor_dollar): New.
1216 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
1217 (grammar_declaration): Use it.
1218 * data/bison.simple (yystos): Is always defined.
1219 (yydestructor): New.
1220 * tests/actions.at (Destructors): New.
1221 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
1222
dafdc66f
AD
12232002-06-17 Akim Demaille <akim@epita.fr>
1224
1225 * src/symlist.h, src/symlist.c (symbol_list_length): New.
1226 * src/scan-gram.l (handle_dollar, handle_at): Compute the
1227 rule_length only when needed.
1228 * src/output.c (actions_output, token_definitions_output): Output
1229 the full M4 block.
1230 * src/symtab.c: Don't access directly to the symbol tag, use
1231 symbol_tag_get.
1232 * src/parse-gram.y: Use symbol_list_free.
1233
56c47203
AD
12342002-06-17 Akim Demaille <akim@epita.fr>
1235
1236 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
1237 (symbol_list_prepend, get_type_name): Move to...
1238 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
1239 (symbol_list_prepend, symbol_list_n_type_name_get): here.
1240 Adjust all callers.
1241 (symbol_list_free): New.
1242 * src/scan-gram.l (handle_dollar): Takes a location.
1243 * tests/input.at (Invalid $n): Adjust.
1244
1e0bab92
AD
12452002-06-17 Akim Demaille <akim@epita.fr>
1246
1247 * src/reader.h, src/reader.c (symbol_list_new): Export it.
1248 (symbol_list_prepend): New.
1249 * src/parse-gram.y (%union): `list' is a new member.
1250 (symbols.1): New, replaces...
1251 (terms_to_prec.1, nterms_to_type.1): these.
1252 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
1253 Take a location as additional argument.
1254 Adjust all callers.
1255
04e60654
AD
12562002-06-15 Akim Demaille <akim@epita.fr>
1257
1258 * src/parse-gram.y: Move %token in the declaration section so that
1259 we don't depend upon CVS Bison.
1260
10e5b8bd
AD
12612002-06-15 Akim Demaille <akim@epita.fr>
1262
1263 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
1264 * src/print.c (print_core): Use it.
1265
9801d40c
AD
12662002-06-15 Akim Demaille <akim@epita.fr>
1267
1268 * src/conflicts.c (log_resolution): Accept the rule involved in
1269 the sr conflicts instead of the lookahead number that points to
1270 that rule.
1271 (flush_reduce): Accept the current lookahead vector as argument,
1272 instead of the index in LA.
1273 (resolve_sr_conflict): Accept the current number of lookahead
1274 bitset to consider for the STATE, instead of the index in LA.
1275 (set_conflicts): Adjust.
1276 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
1277
c0263492
AD
12782002-06-15 Akim Demaille <akim@epita.fr>
1279
1280 * src/state.h (state_t): Replace the `lookaheadsp' member, a
1281 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
1282 Adjust all dependencies.
1283 * src/lalr.c (initialize_lookaheads): Split into...
1284 (states_lookaheads_count, states_lookaheads_initialize): these.
1285 (lalr): Adjust.
1286
9757c359
AD
12872002-06-15 Akim Demaille <akim@epita.fr>
1288
1289 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
1290 out of...
1291 (grammar_rules_print): here.
1292 * src/reduce.c (reduce_output): Use it.
1293 * tests/reduce.at (Useless Rules, Reduced Automaton)
1294 (Underivable Rules): Adjust.
1295
6b98e4b5
AD
12962002-06-15 Akim Demaille <akim@epita.fr>
1297
1298 Copy BYacc's nice way to report the grammar.
1299
1300 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
1301 New.
1302 Don't print the rules' location, it is confusing and useless.
1303 (rule_print): Use grammar_rhs_print.
1304 * src/print.c (print_grammar): Use grammar_rules_print.
1305
6b98e4b5
AD
13062002-06-15 Akim Demaille <akim@epita.fr>
1307
1308 Complete and rationalize `useless thing' warnings.
1309
1310 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
1311 (symbol_tag_print): New.
1312 Use them everywhere in place of accessing directly the tag member.
1313 * src/gram.h, src/gram.c (rule_print): New.
1314 Use it where a rule used to be printed `by hand'.
1315 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
1316 (reduce_grammar_tables): Report the useless rules.
1317 (reduce_print): Useless things are a warning, not an error.
1318 Report it as such.
1319 * tests/reduce.at (Useless Nonterminals, Useless Rules):
1320 (Reduced Automaton, Underivable Rules): Adjust.
1321 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
1322 * tests/conflicts.at (Unresolved SR Conflicts)
1323 (Solved SR Conflicts): Adjust.
1324
ee000ba4
AD
13252002-06-15 Akim Demaille <akim@epita.fr>
1326
1327 Let symbols have a location.
1328
1329 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
1330 (getsym): Adjust.
1331 Adjust all callers.
1332 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
1333 Use location_t, not int.
1334 * src/symtab.c (symbol_check_defined): Take advantage of the
1335 location.
1336 * tests/regression.at (Invalid inputs): Adjust.
1337
8efe435c
AD
13382002-06-15 Akim Demaille <akim@epita.fr>
1339
1340 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
1341 (input): Don't try to initialize yylloc here, do it in the
1342 scanner.
1343 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
1344 * src/gram.h (rule_t): Change line and action_line into location
1345 and action_location, of location_t type.
1346 Adjust all dependencies.
1347 * src/location.h, src/location.c (empty_location): New.
1348 * src/reader.h, src/reader.c (grammar_start_symbol_set)
1349 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
1350 (grammar_current_rule_symbol_append)
1351 (grammar_current_rule_action_append): Expect a location as argument.
1352 * src/reader.c (grammar_midrule_action): Adjust to attach an
1353 action's location as dummy symbol location.
1354 * src/symtab.h, src/symtab.c (startsymbol_location): New.
1355 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
1356 the line numbers.
1357
1921f1d7
AD
13582002-06-14 Akim Demaille <akim@epita.fr>
1359
1360 Grammar declarations may be found in the grammar section.
1361
1362 * src/parse-gram.y (rules_or_grammar_declaration): New.
1363 (declarations): Each declaration may end with a semicolon, not
1364 just...
1365 (grammar_declaration): `"%union"'.
1366 (grammar): Branch to rules_or_grammar_declaration.
1367
4515534c
AD
13682002-06-14 Akim Demaille <akim@epita.fr>
1369
1370 * src/main.c (main): Invoke scanner_free.
1371
f958596b
AD
13722002-06-14 Akim Demaille <akim@epita.fr>
1373
1374 * src/output.c (m4_invoke): Extracted from...
1375 (output_skeleton): here.
1376 Free tempfile.
1377
2c569025
AD
13782002-06-14 Akim Demaille <akim@epita.fr>
1379
1380 * src/parse-gram.y (directives, directive, gram)
1381 (grammar_directives, precedence_directives, precedence_directive):
1382 Rename as...
1383 (declarations, declaration, grammar, grammar_declaration)
1384 (precedence_declaration, precedence_declarator): these.
1385 (symbol_declaration): New.
1386
592e8d4d
AD
13872002-06-14 Akim Demaille <akim@epita.fr>
1388
1389 * src/files.c (action_obstack): Remove, unused.
1390 (output_obstack): Remove it, and all its dependencies, as it is no
1391 longer needed.
1392 * src/reader.c (epilogue_set): Build the epilogue in the
1393 muscle_obstack.
1394 * src/output.h, src/output.c (muscle_obstack): Move to...
1395 * src/muscle_tab.h, src/muscle_tab.h: here.
1396 (muscle_init): Initialize muscle_obstack.
1397 (muscle_free): New.
1398 * src/main.c (main): Call it.
1399
0c15323d
AD
14002002-06-14 Akim Demaille <akim@epita.fr>
1401
1402 * src/location.h: New, extracted from...
1403 * src/reader.h: here.
1404 * src/Makefile.am (noinst_HEADERS): Merge into
1405 (bison_SOURCES): this.
1406 Add location.h.
1407 * src/parse-gram.y: Use location_t instead of Bison's.
1408 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
1409 Use location_t instead of ints.
1410
e96c9728
AD
14112002-06-14 Akim Demaille <akim@epita.fr>
1412
1413 * data/bison.simple, data/bison.c++: Be sure to restore the
1414 current #line when returning to the skeleton contents after having
1415 exposed the input file's #line.
1416
75d1fe16
AD
14172002-06-12 Akim Demaille <akim@epita.fr>
1418
1419 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
1420 eager.
1421 * tests/actions.at (Exotic Dollars): New.
1422
6c35d22c
AD
14232002-06-12 Akim Demaille <akim@epita.fr>
1424
1425 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
1426 ['"/] too eagerly.
1427 * tests/input.at (Torturing the Scanner): New.
1428
1d6412ad
AD
14292002-06-11 Akim Demaille <akim@epita.fr>
1430
1431 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
1432 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
1433 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
1434 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
1435 * src/reader.c (reader): Use it.
1436
4cdb01db
AD
14372002-06-11 Akim Demaille <akim@epita.fr>
1438
1439 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
1440 Adjust all callers.
1441 (scanner_last_string_free): New.
1442
44995b2e
AD
14432002-06-11 Akim Demaille <akim@epita.fr>
1444
1445 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
1446 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
1447 (last_string, YY_OBS_FREE): New.
1448 Use them when returning an ID.
1449
e9955c83
AD
14502002-06-11 Akim Demaille <akim@epita.fr>
1451
1452 Have Bison grammars parsed by a Bison grammar.
1453
1454 * src/reader.c, src/reader.h (prologue_augment): New.
1455 * src/reader.c (copy_definition): Remove.
1456
1457 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
1458 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
1459 (grammar_current_rule_prec_set, grammar_current_rule_check)
1460 (grammar_current_rule_symbol_append)
1461 (grammar_current_rule_action_append): Export.
1462 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
1463 (symbol_list_action_append): Remove.
1464 Hook the routines from reader.
1465 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
1466 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
1467
1468 * src/reader.c (read_declarations): Remove, unused.
1469
1470 * src/parse-gram.y: Handle the epilogue.
1471 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
1472 (grammar_start_symbol_set): this.
1473 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
1474 * src/reader.c (readgram): Remove, unused.
1475 (reader): Adjust to insert eoftoken and axiom where appropriate.
1476
1477 * src/reader.c (copy_dollar): Replace with...
1478 * src/scan-gram.h (handle_dollar): this.
1479 * src/parse-gram.y: Remove `%thong'.
1480
1481 * src/reader.c (copy_at): Replace with...
1482 * src/scan-gram.h (handle_at): this.
1483
1484 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
1485 New.
1486
1487 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
1488 time being.
1489
1490 * src/reader.h, src/reader.c (grammar_rule_end): New.
1491
1492 * src/parse.y (current_type, current_class): New.
1493 Implement `%nterm', `%token' support.
1494 Merge `%term' into `%token'.
1495 (string_as_id): New.
1496 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
1497 type name.
1498
1499 * src/parse-gram.y: Be sure to handle properly the beginning of
1500 rules.
1501
1502 * src/parse-gram.y: Handle %type.
1503 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
1504
1505 * src/parse-gram.y: More directives support.
1506 * src/options.c: No longer handle source directives.
1507
1508 * src/parse-gram.y: Fix %output.
1509
1510 * src/parse-gram.y: Handle %union.
1511 Use the prologue locations.
1512 * src/reader.c (parse_union_decl): Remove.
1513
1514 * src/reader.h, src/reader.c (epilogue_set): New.
1515 * src/parse-gram.y: Use it.
1516
1517 * data/bison.simple, data/bison.c++: b4_stype is now either not
1518 defined, then default to int, or to the contents of %union,
1519 without `union' itself.
1520 Adjust.
1521 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
1522
1523 * src/output.c (actions_output): Don't output braces, as they are
1524 already handled by the scanner.
1525
1526 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
1527 characters to themselves.
1528
1529 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
1530 that the epilogue has a proper #line.
1531
1532 * src/parse-gram.y: Handle precedence/associativity.
1533
1534 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
1535 a terminal.
1536 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
1537 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
1538 at all to define terminals that cannot be emitted.
1539
1540 * src/scan-gram.l: Escape M4 characters.
1541
1542 * src/scan-gram.l: Working properly with escapes in user
1543 strings/characters.
1544
1545 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
1546 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
1547 grammar.
1548 Use more modest sizes, as for the time being the parser does not
1549 release memory, and therefore the process swallows a huge amount
1550 of memory.
1551
1552 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
1553 stricter %token grammar.
1554
1555 * src/symtab.h (associativity): Add `undef_assoc'.
1556 (symbol_precedence_set): Do nothing when passed an undef_assoc.
1557 * src/symtab.c (symbol_check_alias_consistence): Adjust.
1558
1559 * tests/regression.at (Invalid %directive): Remove, as it is now
1560 meaningless.
1561 (Invalid inputs): Adjust to the new error messages.
1562 (Token definitions): The new grammar doesn't allow too many
1563 eccentricities.
1564
1565 * src/lex.h, src/lex.c: Remove.
1566 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
1567 (copy_character, copy_string2, copy_string, copy_identifier)
1568 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
1569 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
1570 (parse_action): Remove.
1571 * po/POTFILES.in: Adjust.
1572
2e047461
AD
15732002-06-11 Akim Demaille <akim@epita.fr>
1574
1575 * src/reader.c (parse_action): Don't store directly into the
1576 rule's action member: return the action as a string.
1577 Don't require `rule_length' as an argument: compute it.
1578 (grammar_current_rule_symbol_append)
1579 (grammar_current_rule_action_append): New, eved out from
1580 (readgram): here.
1581 Remove `action_flag', `rulelength', unused now.
1582
9af3fbce
AD
15832002-06-11 Akim Demaille <akim@epita.fr>
1584
1585 * src/reader.c (grammar_current_rule_prec_set).
1586 (grammar_current_rule_check): New, eved out from...
1587 (readgram): here.
1588 Remove `xaction', `first_rhs': useless.
1589 * tests/input.at (Type clashes): New.
1590 * tests/existing.at (GNU Cim Grammar): Adjust.
1591
1485e106
AD
15922002-06-11 Akim Demaille <akim@epita.fr>
1593
1594 * src/reader.c (grammar_midrule_action): New, Eved out from
1595 (readgram): here.
1596
da4160c3
AD
15972002-06-11 Akim Demaille <akim@epita.fr>
1598
1599 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
1600 New.
1601 (readgram): Use them as replacement of inlined code, crule and
1602 crule1.
1603
f6d0f937
AD
16042002-06-11 Akim Demaille <akim@epita.fr>
1605
1606 * src/reader.c (grammar_end, grammar_symbol_append): New.
1607 (readgram): Use them.
1608 Make the use of `p' as local as possible.
1609
69078d4b
AD
16102002-06-10 Akim Demaille <akim@epita.fr>
1611
1612 GCJ's parser requires the tokens to be defined before the prologue.
1613
1614 * data/bison.simple: Output the token definition before the user's
1615 prologue.
1616 * tests/regression.at (Braces parsing, Duplicate string)
1617 (Mixing %token styles): Check the output from bison.
1618 (Early token definitions): New.
1619
5e424082
AD
16202002-06-10 Akim Demaille <akim@epita.fr>
1621
1622 * src/symtab.c (symbol_user_token_number_set): Don't complain when
1623 assigning twice the same user number to a token, so that we can
1624 use it in...
1625 * src/lex.c (lex): here.
1626 Also use `symbol_class_set' instead of hand written code.
1627 * src/reader.c (parse_assoc_decl): Likewise.
1628
44536b35
AD
16292002-06-10 Akim Demaille <akim@epita.fr>
1630
1631 * src/symtab.c, src/symtab.c (symbol_class_set)
1632 (symbol_user_token_number_set): New.
1633 * src/reader.c (parse_token_decl): Use them.
1634 Use a switch instead of ifs.
1635 Use a single argument.
1636
8b9f2372
AD
16372002-06-10 Akim Demaille <akim@epita.fr>
1638
1639 Remove `%thong' support as it is undocumented, unused, duplicates
1640 `%token's job, and creates useless e-mail traffic with people who
1641 want to know what it is, why it is undocumented, unused, and
1642 duplicates `%token's job.
1643
1644 * src/reader.c (parse_thong_decl): Remove.
1645 * src/options.c (option_table): Remove "thong".
1646 * src/lex.h (tok_thong): Remove.
1647
3ae2b51f
AD
16482002-06-10 Akim Demaille <akim@epita.fr>
1649
1650 * src/symtab.c, src/symtab.c (symbol_type_set)
1651 (symbol_precedence_set): New.
1652 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
1653 (value_components_used): Remove, unused.
1654
2f1afb73
AD
16552002-06-09 Akim Demaille <akim@epita.fr>
1656
1657 Move symbols handling code out of the reader.
1658
1659 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
1660 (axiom): Move to...
1661 * src/symtab.h, src/symtab.c: here.
1662
1663 * src/gram.c (start_symbol): Remove: use startsymbol->number.
1664 * src/reader.c (startval): Rename as...
1665 * src/symtab.h, src/symtab.c (startsymbol): this.
1666 * src/reader.c: Adjust.
1667
1668 * src/reader.c (symbol_check_defined, symbol_make_alias)
1669 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
1670 (token_translations_init)
1671 Move to...
1672 * src/symtab.c: here.
1673 * src/reader.c (packsymbols): Move to...
1674 * src/symtab.h, src/symtab.c (symbols_pack): here.
1675 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
1676 argument.
1677
e9bca3ad
AD
16782002-06-03 Akim Demaille <akim@epita.fr>
1679
1680 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
1681 then statements.
1682
86eff183
AD
16832002-06-03 Akim Demaille <akim@epita.fr>
1684
1685 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
1686 structs with non literals.
1687 * src/scan-skel.l: never-interactive.
1688 * src/conflicts.c (enum conflict_resolution_e): No trailing
1689 comma.
1690 * src/getargs.c (usage): Split long literal strings.
1691 Reported by Hans Aberg.
1692
717be197
AD
16932002-05-28 Akim Demaille <akim@epita.fr>
1694
1695 * data/bison.c++: Use C++ ostreams.
1696 (cdebug_): New member.
1697
670ddffd
AD
16982002-05-28 Akim Demaille <akim@epita.fr>
1699
1700 * src/output.c (output_skeleton): Be sure to allocate enough room
1701 for `/' _and_ for `\0' in full_skeleton.
1702
769b430f
AD
17032002-05-28 Akim Demaille <akim@epita.fr>
1704
1705 * data/bison.c++: Catch up with bison.simple:
1706 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1707 and Paul Eggert <eggert@twinsun.com>: `error' handing.
1708 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
1709 and popping traces.
1710
7067cb36
PH
17112002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1712
1713 * src/output.c (output_skeleton): Put an explicit path in front of
1714 the skeleton file name, rather than relying on the -I directory,
1715 to partially alleviate effects of having a skeleton file lying around
1716 in the current directory.
769b430f 1717
4a713ec2
PH
17182002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1719
769b430f 1720 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
1721 obstack_printf should be obstack_fgrow1.
1722
b408954b
AD
17232002-05-26 Akim Demaille <akim@epita.fr>
1724
1725 * src/state.h (state_t): `solved_conflicts' is a new member.
1726 * src/LR0.c (new_state): Set it to 0.
1727 * src/conflicts.h, src/conflicts.c (print_conflicts)
1728 (free_conflicts, solve_conflicts): Rename as...
1729 (conflicts_print, conflicts_free, conflicts_solve): these.
1730 Adjust callers.
1731 * src/conflicts.c (enum conflict_resolution_e)
1732 (solved_conflicts_obstack): New, used by...
1733 (log_resolution): this.
1734 Adjust to attach the conflict resolution to each state.
1735 Complete the description with the precedence/associativity
1736 information.
1737 (resolve_sr_conflict): Adjust.
1738 * src/print.c (print_state): Output its solved_conflicts.
1739 * tests/conflicts.at (Unresolved SR Conflicts)
1740 (Solved SR Conflicts): Exercise --report=all.
1741
a49aecd5
AD
17422002-05-26 Akim Demaille <akim@epita.fr>
1743
1744 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
1745 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
1746 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
1747 (token_number_t, item_number_as_token_number)
1748 (token_number_as_item_number, muscle_insert_token_number_table):
1749 Rename as...
1750 (symbol_number_t, item_number_as_symbol_number)
1751 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
1752 these, since it is more appropriate.
1753
5504898e
AD
17542002-05-26 Akim Demaille <akim@epita.fr>
1755
1756 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
1757 `Error:' lines.
1758 * data/bison.simple (yystos) [YYDEBUG]: New.
1759 (yyparse) [YYDEBUG]: Display the symbols which are popped during
1760 error recovery.
1761 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
1762
ec3bc396
AD
17632002-05-25 Akim Demaille <akim@epita.fr>
1764
1765 * doc/bison.texinfo (Debugging): Split into...
1766 (Tracing): this new section, its former contents, and...
1767 (Understanding): this new section.
1768 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
1769 by...
1770 (report_flag): this.
1771 Adjust all dependencies.
1772 (report_args, report_types, report_argmatch): New.
1773 (usage, getargs): Report/support -r, --report.
1774 * src/options.h
1775 (struct option_table_struct): Rename as..,
1776 (struct option_table_s): this.
1777 Rename the `set_flag' member to `flag' to match with getopt_long's
1778 struct.
1779 * src/options.c (option_table): Split verbose into an entry for
1780 %verbose, and another for --verbose.
1781 Support --report/-r, so remove -r from the obsolete --raw.
1782 * src/print.c: Attach full item sets and lookaheads reports to
1783 report_flag instead of trace_flag.
1784 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
1785
78df8250
PE
17862002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1787 and Paul Eggert <eggert@twinsun.com>
769b430f 1788
78df8250
PE
1789 * data/bison.simple (yyparse): Correct error handling to conform to
1790 POSIX and yacc. Specifically, after syntax error is discovered,
1791 do not reduce further before shifting the error token.
1792 Clean up the code a bit by removing the labels yyerrdefault,
1793 yyerrhandle, yyerrpop.
1794 * NEWS: Document the above.
1795
c0c9ea05
PH
17962002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1797
1798 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
1799 type; it isn't always big enough, since it doesn't necessarily
1800 include non-terminals.
769b430f 1801 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
1802 the latter can be removed.
1803 (yy_token_number_type): Remove, only one use.
1804 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
1805 don't use TokenNumberType as element type.
769b430f 1806
c0c9ea05
PH
1807 * tests/regression.at: Modify expected output to agree with change
1808 to yyr1 and yytranslate.
769b430f 1809
6390a83f
FK
18102002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
1811
1812 * src/reader.c (parse_action): Use copy_character instead of
1813 obstack_1grow.
1814
db7c8e9a
AD
18152002-05-13 Akim Demaille <akim@epita.fr>
1816
1817 * tests/regression.at (Token definitions): Prototype yylex and
1818 yyerror.
1819
fcc61800
PH
18202002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1821
158c687b 1822 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
1823 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
1824 32-bit arithmetic.
1825 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
1826
5683e9b2
AD
18272002-05-07 Akim Demaille <akim@epita.fr>
1828
1829 * tests/synclines.at: Be sure to prototype yylex and yyerror to
1830 avoid GCC warnings.
1831
0c2d3f4c
AD
18322002-05-07 Akim Demaille <akim@epita.fr>
1833
1834 Kill GCC warnings.
1835
1836 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
1837 over the RHS of each rule.
1838 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
1839 * src/state.h (state_t): Member `nitems' is unsigned short.
1840 * src/LR0.c (get_state): Adjust.
1841 * src/reader.c (packgram): Likewise.
1842 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
1843 `Type'.
1844 (muscle_insert_int_table): Remove, unused.
1845 (prepare_rules): Remove `max'.
1846
1565b720
AD
18472002-05-06 Akim Demaille <akim@epita.fr>
1848
1849 * src/closure.c (print_firsts): Display of the symbol tags.
1850 (bitmatrix_print): Move to...
1851 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
1852 here.
1853 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
1854
cfaee611
AD
18552002-05-06 Akim Demaille <akim@epita.fr>
1856
1857 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
1858 hash_do_for_each.
1859
458be8e0
AD
18602002-05-06 Akim Demaille <akim@epita.fr>
1861
1862 * src/LR0.c (new_state, get_state): Instead of using the global
1863 `kernel_size' and `kernel_base', have two new arguments:
1864 `core_size' and `core'.
1865 Adjust callers.
1866
a900a624
AD
18672002-05-06 Akim Demaille <akim@epita.fr>
1868
1869 * src/reader.c (packgram): No longer end `ritem' with a 0
1870 sentinel: it is not used.
1871
d4e7d3a1
AD
18722002-05-05 Akim Demaille <akim@epita.fr>
1873
1874 New experimental feature: display the lookaheads in the report and
1875 graph.
1876
1877 * src/print (print_core): When --trace-flag, display the rules
1878 lookaheads.
1879 * src/print_graph.c (print_core): Likewise.
1880 Swap the arguments.
1881 Adjust caller.
1882
39ceb25b
AD
18832002-05-05 Akim Demaille <akim@epita.fr>
1884
1885 * tests/torture.at (Many lookaheads): New test.
1886
5372019f
AD
18872002-05-05 Akim Demaille <akim@epita.fr>
1888
1889 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
1890 (GENERATE_MUSCLE_INSERT_TABLE): this.
1891 (output_int_table, output_unsigned_int_table, output_short_table)
1892 (output_token_number_table, output_item_number_table): Replace with...
1893 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
1894 (muscle_insert_short_table, muscle_insert_token_number_table)
1895 (muscle_insert_item_number_table): these.
1896 Adjust all callers.
1897 (prepare_tokens): Don't free `translations', since...
1898 * src/reader.h, src/reader.c (grammar_free): do it.
1899 Move to...
1900 * src/gram.h, src/gram.c (grammar_free): here.
1901 * data/bison.simple, data/bison.c++: b4_token_number_max is now
1902 b4_translate_max.
1903
5df5f6d5
AD
19042002-05-05 Akim Demaille <akim@epita.fr>
1905
1906 * src/output.c (output_unsigned_int_table): New.
1907 (prepare_rules): `i' is unsigned.
1908 `prhs', `rline', `r2' are unsigned int.
1909 Rename muscle `rhs_number_max' as `rhs_max'.
1910 Output muscles `prhs_max', `rline_max', and `r2_max'.
1911 Free rline and r1.
1912 * data/bison.simple, data/bison.c++: Adjust to use these muscles
1913 to compute types instead of constant types.
1914 * tests/regression.at (Web2c Actions): Adjust.
1915
b87f8b21
AD
19162002-05-04 Akim Demaille <akim@epita.fr>
1917
1918 * src/symtab.h (SALIAS, SUNDEF): Rename as...
1919 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
1920 Adjust dependencies.
1921 * src/output.c (token_definitions_output): Be sure not to output a
1922 `#define 'a'' when fed with `%token 'a' "a"'.
1923 * tests/regression.at (Token definitions): New.
1924
8bb936e4
PE
19252002-05-03 Paul Eggert <eggert@twinsun.com>
1926
1927 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
1928 for K&R C.
1929
19302002-05-03 gettextize <bug-gnu-gettext@gnu.org>
1931
1932 * Makefile.am (SUBDIRS): Remove intl.
1933 (EXTRA_DIST): Add config/config.rpath.
1934
53c71a12
AD
19352002-05-03 Akim Demaille <akim@epita.fr>
1936
1937 * data/bison.simple (m4_if): Don't output empty enums.
1938 And actually, output valid enum definitions :(.
1939
289dd0cf
AD
19402002-05-03 Akim Demaille <akim@epita.fr>
1941
1942 * configure.bat: Remove, completely obsolete.
1943 * Makefile.am (EXTRA_DIST): Adjust.
1944 Don't distribute config.rpath...
1945 * config/Makefile.am (EXTRA_DIST): Do it.
1946
db85e524
AD
19472002-05-03 Akim Demaille <akim@epita.fr>
1948
1949 * configure.in (GETTEXT_VERSION): New.
1950 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
1951
83ccf991
AD
19522002-05-03 Akim Demaille <akim@epita.fr>
1953
1954 * data/bison.simple (b4_token_enum): New.
1955 (b4_token_defines): Use it to output tokens both as #define and
1956 enums.
1957 Suggested by Paul Eggert.
1958 * src/output.c (token_definitions_output): Don't output spurious
1959 white spaces.
1960
1f418995
AD
19612002-05-03 Akim Demaille <akim@epita.fr>
1962
1963 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
1964
45119f04
RA
19652002-05-02 Robert Anisko <robert@lrde.epita.fr>
1966
1967 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
1968 Update the stack class, give a try to deque as the default container.
1969
b2d52318
AD
19702002-05-02 Akim Demaille <akim@epita.fr>
1971
1972 * data/bison.simple (yyparse): Do not implement @$ = @1.
1973 (YYLLOC_DEFAULT): Adjust to do it.
1974 * doc/bison.texinfo (Location Default Action): Fix.
1975
3a8b4109
AD
19762002-05-02 Akim Demaille <akim@epita.fr>
1977
1978 * src/reader.c (parse_braces): Merge into...
1979 (parse_action): this.
1980
84614e13
AD
19812002-05-02 Akim Demaille <akim@epita.fr>
1982
1983 * configure.in (ALL_LINGUAS): Remove.
1984 * po/LINGUAS, hr.po: New.
1985
fdbcd8e2
AD
19862002-05-02 Akim Demaille <akim@epita.fr>
1987
1988 Remove the so called hairy (semantic) parsers.
1989
1990 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
1991 * src/gram.h, src/gram.c (semantic_parser): Remove.
1992 (rule_t): Remove the guard and guard_line members.
1993 * src/lex.h (token_t): remove tok_guard.
1994 * src/options.c (option_table): Remove %guard and %semantic_parser
1995 support.
1996 * src/output.c, src/output.h (guards_output): Remove.
1997 (prepare): Adjust.
1998 (token_definitions_output): Don't output the `T'
1999 tokens (???).
2000 (output_skeleton): Don't output the guards.
2001 * src/files.c, src/files.c (attrsfile): Remove.
2002 * src/reader.c (symbol_list): Remove the guard and guard_line
2003 members.
2004 Adjust dependencies.
2005 (parse_guard): Remove.
2006 * data/bison.hairy: Remove.
2007 * doc/bison.texinfo (Environment Variables): Remove occurrences of
2008 BISON_HAIRY.
2009
82b6cb3f
AD
20102002-05-02 Akim Demaille <akim@epita.fr>
2011
2012 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
2013 (parse_guard): Rename the formal argument `stack_offset' as
2014 `rule_length', which is more readable.
2015 Adjust callers.
2016 (copy_at, copy_dollar): Instead of outputting the hard coded
2017 values of $$, $n and so forth, output invocation to b4_lhs_value,
2018 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
900c877b
AD
2019 Note: this patch partially drops `semantic-parser' support: it
2020 always does `rule_length - n', where semantic parsers ought to
2021 always use `-n'.
82b6cb3f
AD
2022 * data/bison.simple, data/bison.c++ (b4_lhs_value)
2023 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
2024
6cbfbcc5
AD
20252002-05-02 Akim Demaille <akim@epita.fr>
2026
2027 * configure.in (AC_INIT): Bump to 1.49b.
2028 (AM_INIT_AUTOMAKE): Short invocation.
2029
b8548114
AD
20302002-05-02 Akim Demaille <akim@epita.fr>
2031
2032 Version 1.49a.
2033
c20cd1fa
AD
20342002-05-01 Akim Demaille <akim@epita.fr>
2035
2036 * src/skeleton.h: Remove.
2037
8a9566d4
AD
20382002-05-01 Akim Demaille <akim@epita.fr>
2039
2040 * src/skeleton.h: Fix the #endif.
2041 Reported by Magnus Fromreide.
2042
8c6d399a
PE
20432002-04-26 Paul Eggert <eggert@twinsun.com>
2044
2045 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
2046 Define if we define YYSTYPE and YYLTYPE, respectively.
b756bb75 2047 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 2048
2b7ed18a
RA
20492002-04-25 Robert Anisko <robert@lrde.epita.fr>
2050
2051 * src/scan-skel.l: Postprocess quadrigraphs.
2052
2053 * src/reader.c (copy_character): New function, used to output
2054 single characters while replacing `[' and `]' with quadrigraphs, to
2055 avoid troubles with M4 quotes.
2056 (copy_comment): Output characters with copy_character.
2057 (read_additionnal_code): Likewise.
2058 (copy_string2): Likewise.
2059 (copy_definition): Likewise.
2060
2061 * tests/calc.at: Exercise M4 quoting.
2062
34a89c50
AD
20632002-04-25 Akim Demaille <akim@epita.fr>
2064
2065 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
2066 between `!' and the command.
2067 Reported by Paul Eggert.
2068
0dd1580a
RA
20692002-04-24 Robert Anisko <robert@lrde.epita.fr>
2070
2071 * tests/calc.at: Exercise prologue splitting.
2072
2073 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
2074 `b4_post_prologue' instead of `b4_prologue'.
2075
2076 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
2077 muscles.
2078 (output): Free pre_prologue_obstack and post_prologue_obstack.
2079 * src/files.h, src/files.c (attrs_obstack): Remove.
2080 (pre_prologue_obstack, post_prologue_obstack): New.
2081 * src/reader.c (copy_definition): Add a parameter to specify the
2082 obstack to fill, instead of using attrs_obstack unconditionally.
2083 (read_declarations): Pass pre_prologue_obstack to copy_definition if
2084 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
2085
83c1796f
PE
20862002-04-23 Paul Eggert <eggert@twinsun.com>
2087
2088 * data/bison.simple: Remove unnecessary commentary and white
2089 space differences from 1_29-branch.
2090 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
2091
2092 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
2093 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
2094 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
2095 constructors or destructors.
2096
2097 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
2098
1207eeac
AD
20992002-04-23 Akim Demaille <akim@epita.fr>
2100
2101 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
2102 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
2103 location with columns.
2104 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
2105 All reported by Paul Eggert.
2106
78ab8f67
AD
21072002-04-22 Akim Demaille <akim@epita.fr>
2108
2109 * src/reduce.c (dump_grammar): Move to...
2110 * src/gram.h, src/gram.c (grammar_dump): here.
2111 Be sure to separate long item numbers.
2112 Don't read the members of a rule's prec if its nil.
2113
133c20e2
AD
21142002-04-22 Akim Demaille <akim@epita.fr>
2115
2116 * src/output.c (table_size, table_grow): New.
2117 (MAXTABLE): Remove, replace uses with table_size.
2118 (pack_vector): Instead of dying when the table is too big, grow it.
2119
9515e8a7
AD
21202002-04-22 Akim Demaille <akim@epita.fr>
2121
2122 * data/bison.simple (yyr1): Its type is that of a token number.
2123 * data/bison.c++ (r1_): Likewise.
2124 * tests/regression.at (Web2c Actions): Adjust.
2125
23c5a174
AD
21262002-04-22 Akim Demaille <akim@epita.fr>
2127
2128 * src/reader.c (token_translations_init): 256 is now the default
2129 value for the error token, i.e., it will be assigned another
2130 number if the user assigned 256 to one of her tokens.
2131 (reader): Don't force 256 to error.
2132 * doc/bison.texinfo (Symbols): Adjust.
2133 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
2134 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
2135 etc. instead of 10, 20, 30 (which was used to `jump' over error
2136 (256) and undefined (2)).
2137
5fbb0954
AD
21382002-04-22 Akim Demaille <akim@epita.fr>
2139
2140 Propagate more token_number_t.
2141
2142 * src/gram.h (token_number_as_item_number)
2143 (item_number_as_token_number): New.
2144 * src/output.c (GENERATE_OUTPUT_TABLE): New.
2145 Use it to create output_item_number_table and
2146 output_token_number_table.
2147 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
2148 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
2149 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
2150 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
2151
4f940944
AD
21522002-04-22 Akim Demaille <akim@epita.fr>
2153
2154 * src/output.h, src/output.c (get_lines_number): Remove.
2155
3ded9a63
AD
21562002-04-19 Akim Demaille <akim@epita.fr>
2157
2158 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
2159 as Lex/Flex'.
2160 (Debugging): More details about enabling the debugging features.
2161 (Table of Symbols): Describe $$, $n, @$, and @n.
2162 Suggested by Tim Josling.
2163
e0c471a9
AD
21642002-04-19 Akim Demaille <akim@epita.fr>
2165
2166 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
2167
fecc10cd
AD
21682002-04-10 Akim Demaille <akim@epita.fr>
2169
2170 * src/system.h: Rely on HAVE_LIMITS_H.
2171 Suggested by Paul Eggert.
2172
51dec47b
AD
21732002-04-09 Akim Demaille <akim@epita.fr>
2174
2175 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
2176 full stderr, and strip it according to the bison options, instead
2177 of composing the error message from different bits.
2178 This makes it easier to check for several error messages.
2179 Adjust all the invocations.
2180 Add an invocation exercising the error token.
2181 Add an invocation demonstrating a stupid error message.
2182 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
2183 Adjust the tests.
2184 Error message are for stderr, not stdout.
2185
007a50a4
AD
21862002-04-09 Akim Demaille <akim@epita.fr>
2187
2188 * src/gram.h, src/gram.c (error_token_number): Remove, use
2189 errtoken->number.
2190 * src/reader.c (reader): Don't specify the user token number (2)
2191 for $undefined, as it uselessly prevents using it.
2192 * src/gram.h (token_number_t): Move to...
2193 * src/symtab.h: here.
2194 (state_t.number): Is a token_number_t.
2195 * src/print.c, src/reader.c: Use undeftoken->number instead of
2196 hard coded 2.
2197 (Even though this 2 is not the same as above: the number of the
2198 undeftoken remains being 2, it is its user token number which
2199 might not be 2).
2200 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
2201 `user_token_number_max'.
2202 Output `undef_token_number'.
2203 * data/bison.simple, data/bison.c++: Use them.
2204 Be sure to map invalid yylex return values to
2205 `undef_token_number'. This saves us from gratuitous SEGV.
2206
2207 * tests/conflicts.at (Solved SR Conflicts)
2208 (Unresolved SR Conflicts): Adjust.
2209 * tests/regression.at (Web2c Actions): Adjust.
2210
06446ccf
AD
22112002-04-08 Akim Demaille <akim@epita.fr>
2212
2213 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
2214 Adding #line.
2215 Remove the duplicate `typedefs'.
2216 (RhsNumberType): Fix the declaration and various other typos.
2217 Use __ofile__.
2218 * data/bison.simple: Use __ofile__.
2219 * src/scan-skel.l: Handle __ofile__.
2220
62a3e4f0
AD
22212002-04-08 Akim Demaille <akim@epita.fr>
2222
2223 * src/gram.h (item_number_t): New, the type of item numbers in
2224 RITEM. Note that it must be able to code symbol numbers as
2225 positive number, and the negation of rule numbers as negative
2226 numbers.
2227 Adjust all dependencies (pretty many).
2228 * src/reduce.c (rule): Remove this `short *' pointer: use
2229 item_number_t.
2230 * src/system.h (MINSHORT, MAXSHORT): Remove.
2231 Include `limits.h'.
2232 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
2233 (shortcpy): Remove.
2234 (MAXTABLE): Move to...
2235 * src/output.c (MAXTABLE): here.
2236 (prepare_rules): Use output_int_table to output rhs.
2237 * data/bison.simple, data/bison.c++: Adjust.
2238 * tests/torture.at (Big triangle): Move the limit from 254 to
2239 500.
2240 * tests/regression.at (Web2c Actions): Ajust.
2241
2242 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
2243 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
2244 passes, but produces negative #line number, once fixed, GCC is
2245 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
2246 C), it passes.
2247 * src/state.h (state_h): Code input lines on ints, not shorts.
2248
bb88b0fc
AD
22492002-04-08 Akim Demaille <akim@epita.fr>
2250
2251 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
2252 and then the grammar.
2253
9a636f47
AD
22542002-04-08 Akim Demaille <akim@epita.fr>
2255
2256 * src/system.h: No longer using strndup.
2257
680e8701
AD
22582002-04-07 Akim Demaille <akim@epita.fr>
2259
2260 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
2261 * src/output.c (output_table_data): Return the longest number.
2262 (prepare_tokens): Output `token_number_max').
2263 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
2264 New.
2265 Use them to define yy_token_number_type/TokenNumberType.
2266 Use this type for yytranslate.
2267 * tests/torture.at (Big triangle): Push the limit from 124 to
2268 253.
2269 * tests/regression.at (Web2c Actions): Adjust.
2270
817e9f41
AD
22712002-04-07 Akim Demaille <akim@epita.fr>
2272
2273 * tests/torture.at (Big triangle): New.
2274 (GNU AWK Grammar, GNU Cim Grammar): Move to...
2275 * tests/existing.at: here.
2276
5123689b
AD
22772002-04-07 Akim Demaille <akim@epita.fr>
2278
2279 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
2280 nritems.
2281 Adjust dependencies.
2282
f3849179
AD
22832002-04-07 Akim Demaille <akim@epita.fr>
2284
2285 * src/reader.c: Normalize increments to prefix form.
2286
bd02036a
AD
22872002-04-07 Akim Demaille <akim@epita.fr>
2288
2289 * src/reader.c, symtab.c: Remove debugging code.
2290
db8837cb
AD
22912002-04-07 Akim Demaille <akim@epita.fr>
2292
2293 Rename all the `bucket's as `symbol_t'.
2294
2295 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
2296 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
2297 * src/symtab.c, src/symtab.h (bucket): Rename as...
2298 (symbol_t): this.
2299 (symbol_list_new, bucket_check_defined, bucket_make_alias)
2300 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
2301 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
2302 (buckets_new, buckets_free, buckets_do): Rename as...
2303 (symbol_list_new, symbol_check_defined, symbol_make_alias)
2304 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
2305 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
2306 (symbols_new, symbols_free, symbols_do): these.
2307
72a23c97
AD
23082002-04-07 Akim Demaille <akim@epita.fr>
2309
2310 Use lib/hash for the symbol table.
2311
2312 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
2313 EOF.
2314 * src/lex.c (lex): Set the `number' member of new terminals.
2315 * src/reader.c (bucket_check_defined, bucket_make_alias)
2316 (bucket_check_alias_consistence, bucket_translation): New.
2317 (reader, grammar_free, readgram, token_translations_init)
2318 (packsymbols): Adjust.
2319 (reader): Number the predefined tokens.
2320 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
2321 for predefined tokens.
2322 * src/symtab.h (bucket): Remove all the hash table related
2323 members.
2324 * src/symtab.c (symtab): Replace by...
2325 (bucket_table): this.
2326 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
2327 (buckets_new, buckets_do): New.
2328
280a38c3
AD
23292002-04-07 Akim Demaille <akim@epita.fr>
2330
2331 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
2332 (start_symbol, max_user_token_number, semantic_parser)
2333 (error_token_number): Initialize.
2334 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
2335 Initialize.
2336 (reader): Don't.
2337 (errtoken, eoftoken, undeftoken, axiom): Extern.
2338
03b31c0c
AD
23392002-04-07 Akim Demaille <akim@epita.fr>
2340
2341 * src/gram.h (rule_s): prec and precsym are now pointers
2342 to the bucket giving the priority/associativity.
2343 Member `associativity' removed: useless.
2344 * src/reduce.c, src/conflicts.c: Adjust.
2345
8b3df748
AD
23462002-04-07 Akim Demaille <akim@epita.fr>
2347
2348 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
2349 Properly escape the symbols' TAG when outputting them.
2350
e601aa1d
AD
23512002-04-07 Akim Demaille <akim@epita.fr>
2352
2353 * src/lalr.h (LA): Is a bitsetv, not bitset*.
2354
b0299a2e
AD
23552002-04-07 Akim Demaille <akim@epita.fr>
2356
2357 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
2358 (LArule): this, which is an array to rule_t*.
2359 * src/print.c, src/conflicts.c: Adjust.
2360
d7e1f00c
AD
23612002-04-07 Akim Demaille <akim@epita.fr>
2362
2363 * src/gram.h (rule_t): Rename `number' as `user_number'.
2364 `number' is a new member.
2365 Adjust dependencies.
2366 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
2367
cc9305dd
AD
23682002-04-07 Akim Demaille <akim@epita.fr>
2369
2370 As a result of the previous patch, it is no longer needed
2371 to reorder ritem itself.
2372
2373 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
2374
b0940840
AD
23752002-04-07 Akim Demaille <akim@epita.fr>
2376
2377 Be sure never to walk through RITEMS, but use only data related to
2378 the rules themselves. RITEMS should be banished.
2379
2380 * src/output.c (output_token_translations): Rename as...
2381 (prepare_tokens): this.
2382 In addition to `translate', prepare the muscles `tname' and
2383 `toknum', which were handled by...
2384 (output_rule_data): this.
2385 Remove, and move the remainder of its outputs into...
2386 (prepare_rules): this new routines, which also merges content from
2387 (output_gram): this.
2388 (prepare_rules): Be sure never to walk through RITEMS.
2389 (output_stos): Rename as...
2390 (prepare_stos): this.
2391 (output): Always invoke prepare_states, after all, just don't use it
2392 in the output if you don't need it.
2393
643a5994
AD
23942002-04-07 Akim Demaille <akim@epita.fr>
2395
2396 * src/LR0.c (new_state): Display `nstates' as the name of the
2397 newly created state.
2398 Adjust to initialize first_state and last_state if needed.
2399 Be sure to distinguish the initial from the final state.
2400 (new_states): Create the itemset of the initial state, and use
2401 new_state.
2402 * src/closure.c (closure): Now that the initial state has its
2403 items properly set, there is no need for a special case when
2404 creating `ruleset'.
2405
2406 As a result, now the rule 0, reducing to $axiom, is visible in the
2407 outputs. Adjust the test suite.
2408
2409 * tests/conflicts.at (Solved SR Conflicts)
2410 (Unresolved SR Conflicts): Adjust.
2411 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
2412 * tests/conflicts.at (S/R in initial): New.
2413
b4c4ccc2
AD
24142002-04-07 Akim Demaille <akim@epita.fr>
2415
2416 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
2417 the RHS of the rules.
2418 * src/output.c (output_gram): Likewise.
2419
bba97eb2
AD
24202002-04-07 Akim Demaille <akim@epita.fr>
2421
2422 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
2423 bucket.
2424 Adjust all dependencies.
2425 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
2426 `number' of the buckets too.
2427 * src/gram.h: Include `symtab.h'.
2428 (associativity): Move to...
2429 * src/symtab.h: here.
2430 No longer include `gram.h'.
2431
c3b407f4
AD
24322002-04-07 Akim Demaille <akim@epita.fr>
2433
2434 * src/gram.h, src/gram.c (rules_rhs_length): New.
2435 (ritem_longest_rhs): Use it.
2436 * src/gram.h (rule_t): `number' is a new member.
2437 * src/reader.c (packgram): Set it.
2438 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
2439 the end of `rules', and count them out of `nrules'.
2440 (reduce_output, dump_grammar): Adjust.
2441 * src/print.c (print_grammar): It is no longer needed to check for
2442 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
2443 * tests/reduce.at (Reduced Automaton): New test.
2444
11652ab3
AD
24452002-04-07 Akim Demaille <akim@epita.fr>
2446
2447 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
2448 lacking `+ 1' to nrules, Bison reported as useless a token if it
2449 was used solely to set the precedence of the last rule...
2450
26b23c1a
AD
24512002-04-07 Akim Demaille <akim@epita.fr>
2452
2453 * data/bison.c++, data/bison.simple: Don't output the current file
2454 name in #line, to avoid useless diffs between two identical
2455 outputs under different names.
2456
18bcecb0
AD
24572002-04-07 Akim Demaille <akim@epita.fr>
2458
2459 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
2460 Normalize loops to using `< nrules + 1', not `<= nrules'.
2461
fa770c86
AD
24622002-04-07 Akim Demaille <akim@epita.fr>
2463
2464 * TODO: Update.
2465
d9b739c3
AD
24662002-04-07 Akim Demaille <akim@epita.fr>
2467
2468 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
2469 bucket.value as bucket.number.
2470
99013900
AD
24712002-04-07 Akim Demaille <akim@epita.fr>
2472
2473 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
2474 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
2475 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
2476 RHS, instead of being an index in RITEMS.
2477
e966383b
PE
24782002-04-04 Paul Eggert <eggert@twinsun.com>
2479
2480 * doc/bison.texinfo: Update copyright date.
2481 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
2482 (Symbols): Warn about running Bison in one character set,
2483 but compiling and/or running in an incompatible one.
2484 Warn about character code 256, too.
2485
24862002-04-03 Paul Eggert <eggert@twinsun.com>
2487
2488 * src/bison.data (YYSTACK_ALLOC): Depend on whether
2489 YYERROR_VERBOSE is nonzero, not whether it is defined.
2490
2491 Merge changes from bison-1_29-branch.
c307773e 2492
8d6c48b9
PE
24932002-03-20 Paul Eggert <eggert@twinsun.com>
2494
2495 Merge fixes from Debian bison_1.34-1.diff.
2496
2497 * configure.in (AC_PREREQ): 2.53.
2498
e53c6322
AD
24992002-03-20 Akim Demaille <akim@epita.fr>
2500
2501 * src/conflicts.c (log_resolution): Argument `resolution' is const.
2502
9ffbeca7
PE
25032002-03-19 Paul Eggert <eggert@twinsun.com>
2504
21db0b2a
PE
2505 * src/bison.simple (YYCOPY): New macro.
2506 (YYSTACK_RELOCATE): Use it.
2507 Remove Type arg; no longer needed. All callers changed.
2508 (yymemcpy): Remove; no longer needed.
2509
9ffbeca7
PE
2510 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
2511 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2512
642cb8f8
AD
25132002-03-19 Akim Demaille <akim@epita.fr>
2514
2515 Test and fix the #line outputs.
2516
2517 * tests/atlocal.at (GCC): New.
2518 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
2519 (Prologue synch line, ,%union synch line, Postprologue synch line)
2520 (Action synch line, Epilogue synch line): New tests.
2521 * src/reader.c (parse_union_decl): Define the muscle stype_line.
2522 * data/bison.simple, data/bison.c++: Use it.
2523
3c31a486
AD
25242002-03-19 Akim Demaille <akim@epita.fr>
2525
2526 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
2527 (Solved SR Conflicts, %expect not enough, %expect right)
2528 (%expect too much): Move to...
2529 * tests/conflicts.at: this new file.
2530
0d8bed56
AD
25312002-03-19 Akim Demaille <akim@epita.fr>
2532
2533 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
2534 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
2535 that we can move to enums for instance.
2536 * src/output.c (token_definitions_output): Output a list of
2537 `token-name, token-number' instead of the #define.
2538 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
2539
9208d17f
AD
25402002-03-14 Akim Demaille <akim@epita.fr>
2541
2542 Use Gettext 0.11.1.
2543
af27eacb
RA
25442002-03-09 Robert Anisko <robert@lrde.epita.fr>
2545
2546 * data/bison.c++: Make the user able to add members to the generated
2547 parser by subclassing.
2548
9101a310
RA
25492002-03-05 Robert Anisko <robert@lrde.epita.fr>
2550
2551 * src/reader.c (read_additionnal_code): `c' should be an integer, not
2552 a character.
2553 Reported by Nicolas Tisserand and Nicolas Burrus.
2554
fff9bf0b
RA
25552002-03-04 Robert Anisko <robert@lrde.epita.fr>
2556
2557 * src/reader.c: Warn about lacking semi-colons, do not complain.
2558
64dba31e
RA
25592002-03-04 Robert Anisko <robert@lrde.epita.fr>
2560
2561 * data/bison.c++: Remove a debug line.
2562
374f5a14
RA
25632002-03-04 Robert Anisko <robert@lrde.epita.fr>
2564
2565 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
2566 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
2567 provide a default implementation.
2568
bfcf1f3a
AD
25692002-03-04 Akim Demaille <akim@epita.fr>
2570
2571 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
2572 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
2573 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
2574 * tests/semantic.at (Parsing Guards): Similarly.
2575 * src/reader.at (readgram): Complain if the last rule is not ended
2576 with a semi-colon.
2577
65ccf9fc
AD
25782002-03-04 Akim Demaille <akim@epita.fr>
2579
2580 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
2581 * src/closure.c: here.
2582 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
2583 RTC.
2584 * src/warshall.h, src/warshall.c: Remove.
2585 * tests/sets.at (Broken Closure): Adjust.
2586
d0039cbc
AD
25872002-03-04 Akim Demaille <akim@epita.fr>
2588
2589 * src/output.c (output_skeleton): tempdir is const.
2590 bytes_read is unused.
2591
345cea78
AD
25922002-03-04 Akim Demaille <akim@epita.fr>
2593
2594 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
2595 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
2596 Update.
2597 From Michael Hayes.
2598
564801f7
AD
25992002-03-04 Akim Demaille <akim@epita.fr>
2600
2601 * src/closure.c (closure): `r' is unused.
2602
e5352bc7
AD
26032002-03-04 Akim Demaille <akim@epita.fr>
2604
2605 * tests/sets.at (Broken Closure): Add the ending `;'.
2606 * src/reader.at (readgram): Complain if a rule is not ended with a
2607 semi-colon.
2608
914feea9
AD
26092002-03-04 Akim Demaille <akim@epita.fr>
2610
2611 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
2612 (count_sr_conflicts): Use bitset_count.
2613 * src/reduce.c (inaccessable_symbols): Ditto.
2614 (bits_size): Remove.
2615 * src/warshall.h, src/warshall.c: Convert to bitsetv.
2616
f0250de6
AD
26172002-03-04 Akim Demaille <akim@epita.fr>
2618
2619 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
2620 * src/reduce.c: Remove the `bitset_zero's following the
2621 `bitset_create's, as now it is performed by the latter.
2622
ef017502
AD
26232002-03-04 Akim Demaille <akim@epita.fr>
2624
2625 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
2626 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
2627 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
2628 latest sources from Michael.
2629
76514394
AD
26302002-03-04 Akim Demaille <akim@epita.fr>
2631
2632 * src/output.c (output): Don't free the grammar.
2633 * src/reader.c (grammar_free): New.
2634 * src/main.c (main): Call it and don't free symtab here.
2635
55024580
AD
26362002-03-04 Akim Demaille <akim@epita.fr>
2637
2638 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
2639 before returning.
2640 Reported by Benoit Perrot.
2641
f9abaa2c
AD
26422002-03-04 Akim Demaille <akim@epita.fr>
2643
2644 Use bitset operations when possible, not loops over bits.
2645
2646 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
2647 bitset_or.
2648 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
2649 * src/reduce.c (useless_nonterminals): Formatting changes.
2650 * src/warshall.c (TC): Use bitset_or.
2651
0e721e75
AD
26522002-03-04 Akim Demaille <akim@epita.fr>
2653
2654 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
2655 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
2656 Ditto.
2657
0fb1ffb1
AD
26582002-03-04 Akim Demaille <akim@epita.fr>
2659
2660 * src/lalr.c (F): Now a bitset*.
2661 Adjust all dependencies.
2662
b86796bf
AD
26632002-03-04 Akim Demaille <akim@epita.fr>
2664
2665 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
2666 Adjust all dependencies.
2667
602bbf31
AD
26682002-03-04 Akim Demaille <akim@epita.fr>
2669
2670 * src/L0.c, src/LR0.h (nstates): Be size_t.
2671 Adjust comparisons (signed vs unsigned).
2672 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
2673 bitset*.
2674 Adjust all dependencies.
2675
d8a0245c
AD
26762002-03-04 Akim Demaille <akim@epita.fr>
2677
2678 * src/closure.c (firsts): Now, also a bitset.
2679 Adjust all dependencies.
2680 (varsetsize): Remove, now unused.
2681 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
2682
34ba9743
AD
26832002-03-04 Akim Demaille <akim@epita.fr>
2684
2685 * src/print.c: Convert to use bitset.h, not hand coded iterations
2686 over ints.
2687
ed86e78c
AD
26882002-03-04 Akim Demaille <akim@epita.fr>
2689
2690 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
2691
dfdb1797
AD
26922002-03-04 Akim Demaille <akim@epita.fr>
2693
2694 * src/closure.c (ruleset): Be a bitset.
2695 (rulesetsize): Remove.
2696
7086e707
AD
26972002-03-04 Akim Demaille <akim@epita.fr>
2698
2699 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
2700 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
2701 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
2702 * src/closure.c (fderives): Be an array of bitsets.
2703
98254360
RA
27042002-02-28 Robert Anisko <robert@lrde.epita.fr>
2705
2706 * data/bison.c++: Merge the two generated headers. Insert a copyright
2707 notice in each output file.
2708
a75c057f
AD
27092002-02-28 Akim Demaille <akim@epita.fr>
2710
2711 * data/bison.c++: Copy the prologue of bison.simple to fetch
2712 useful M4 definitions, such as b4_header_guard.
2713
06b00abc
AD
27142002-02-25 Akim Demaille <akim@epita.fr>
2715
2716 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
2717 translator friendly scheme for the bgr
2718 copyright notice.
06b00abc 2719
70e7d534
AD
27202002-02-25 Akim Demaille <akim@epita.fr>
2721
2722 * src/output.c (header_output): Remove, now handled completely via
2723 M4.
2724
abe017f6
AD
27252002-02-25 Akim Demaille <akim@epita.fr>
2726
2727 * m4/m4.m4: New, from CVS Autoconf.
2728 * configure.in: Invoke it.
2729 * src/output.c (output_skeleton): Use its result instead of the
2730 hard coded name.
2731
381fb12e
AD
27322002-02-25 Akim Demaille <akim@epita.fr>
2733
2734 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
2735 Fileutils 4.1.5.
2736 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
2737 * src/output.c (output_skeleton): Use mkstemp to create a real
2738 temporary file.
2739 Move the filling of `skeleton' and its muscle to...
2740 (prepare): here.
2741 (output): Move the definition of the prologue muscle to...
2742 (prepare): here.
2743 * src/system.h (DEFAULT_TMPDIR): New.
2744
6f38107f
PE
27452002-02-14 Paul Eggert <eggert@twinsun.com>
2746
2747 Remove the support for C++ namespace cleanliness; it was
2748 causing more problems than it was curing, since it didn't work
2749 properly on some nonstandard C++ compilers. This can wait
2750 for a proper C++ parser.
2751
2752 * NEWS: Document this.
2753 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
2754 of C++, as it's treated like C now.
2755 * src/bison.simple (YYSTD): Remove.
2756 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
2757 Treat C++ just like Standard C instead of trying to support
2758 namespace cleanliness.
2759
80cce3da
AD
27602002-02-14 Akim Demaille <akim@epita.fr>
2761
2762 * tests/regression.at (else): Adjust to Andreas' change.
2763
842e8679
AD
27642002-02-14 Akim Demaille <akim@epita.fr>
2765
2766 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
2767
4bda3f10
AD
27682002-02-13 Andreas Schwab <schwab@suse.de>
2769
2770 * src/output.c (output_rule_data): Don't output NULL, it might
2771 not be defined yet.
2772
4162fa07 27732002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 2774
4162fa07
RA
2775 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
2776 (Copyright notice): Update.
b418ecd8 2777
bd16a5dc
AD
27782002-02-11 Akim Demaille <akim@epita.fr>
2779
2780 * tests/regression.at (%nonassoc and eof): Don't include
2781 nonportable headers.
2782
8d69a1a3
RA
27832002-02-08 Robert Anisko <robert@lrde.epita.fr>
2784
2785 * data/bison.c++: Correct error recovery. Make the user able to
2786 initialize the starting location.
2787
9b2d0677
AD
27882002-02-07 Akim Demaille <akim@epita.fr>
2789
2790 * tests/input.at: New.
2791
69e2658b
RA
27922002-02-07 Robert Anisko <robert@lrde.epita.fr>
2793
2794 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 2795 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
2796 directives around tables only needed for debugging.
2797
4aacc3a7
RA
27982002-02-07 Robert Anisko <robert@lrde.epita.fr>
2799
2800 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
2801 C++ parsers.
2802 (yy::b4_name::parse): Use print_.
2803
762a801e
RA
28042002-02-07 Robert Anisko <robert@lrde.epita.fr>
2805
2806 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
2807
4bb2bc3f
RA
28082002-02-07 Robert Anisko <robert@lrde.epita.fr>
2809
2810 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
2811 C++ parsers.
2812 (yy::b4_name::parse): Build verbose error messages, and use error_.
2813
6b45a3ca
RA
28142002-02-06 Robert Anisko <robert@lrde.epita.fr>
2815
2816 * data/bison.c++: Fix m4 quoting in comments.
2817
50997c6e
RA
28182002-02-06 Robert Anisko <robert@lrde.epita.fr>
2819
2820 * data/bison.c++: Adjust the parser code. Fix some muscles that were
2821 not expanded by m4.
2822
3f3eed27
AD
28232002-02-05 Akim Demaille <akim@epita.fr>
2824
2825 * data/bison.c++: Adjust to the M4 back end.
2826 More is certainly needed.
2827
be2a1a68
AD
28282002-02-05 Akim Demaille <akim@epita.fr>
2829
2830 Give a try to M4 as a back end.
2831
2832 * lib/readpipe.c: New, from wdiff.
2833 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
2834 BISON_HAIRY.
2835 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
2836 specific values. Now it is m4 that performs the lookup.
2837 * src/parse-skel.y: Remove.
2838 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
2839 * src/output.c (actions_output, guards_output)
2840 (token_definitions_output): No longer keeps track of the output
2841 line number, hence remove the second argument.
2842 (guards_output): Check against the guard member of a rule, not the
2843 action member.
2844 Adjust callers.
2845 (output_skeleton): Don't look for the skeleton location, let m4 do
2846 that.
2847 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
2848 file will be used.
2849 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
2850 (prepare): Given that for the time being changesyntax is not
2851 usable in M4, rename the muscles using `-' to `_'.
2852 Define `defines_flag', `output_parser_name' and `output_header_name'.
2853 * src/output.h (actions_output, guards_output)
2854 (token_definitions_output): Adjust prototypes.
2855 * src/scan-skel.l: Instead of scanning the skeletons, it now
2856 processes the output of m4: `__oline__' and `#output'.
2857 * data/bison.simple: Adjust to be used by M4(sugar).
2858 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
2859 to date.
2860 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
2861 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
2862 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
2863 shamelessly stolen from CVS Autoconf.
2864
beda758b
AD
28652002-02-05 Akim Demaille <akim@epita.fr>
2866
2867 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
2868 * configure.in: Check for the declarations of free and malloc.
2869 * src/muscle_tab.c: Adjust.
2870
5ece6d43
AD
28712002-02-05 Akim Demaille <akim@epita.fr>
2872
2873 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
2874 which have no values.
2875
5bb18f9a
AD
28762002-02-05 Akim Demaille <akim@epita.fr>
2877
2878 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
2879 * data/: here.
2880
894dd62e
PE
28812002-01-29 Paul Eggert <eggert@twinsun.com>
2882
2883 * src/bison.simple (YYSIZE_T): Do not define merely because
2884 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
2885 On some platforms, <alloca.h> does not declare YYSTD (size_t).
2886
82841af7
AD
28872002-01-27 Akim Demaille <akim@epita.fr>
2888
2889 Fix `%nonassoc and eof'.
2890
2891 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
2892 which were not properly copied! Replace
2893 memcpy (res->errs, src->errs, src->nerrs);
2894 with
2895 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
2896 !!!
2897 * tests/regression.at (%nonassoc and eof): Adjust to newest
2898 Autotest: `.' is not in the PATH.
2899
318b76e9
AD
29002002-01-27 Akim Demaille <akim@epita.fr>
2901
2902 * tests/sets.at (AT_EXTRACT_SETS): New.
2903 (Nullable): Use it.
2904 (Firsts): New.
2905
30d2f3d5
AD
29062002-01-26 Akim Demaille <akim@epita.fr>
2907
2908 * tests/actions.at, tests/calc.at, tests/headers.at,
2909 * tests/torture.at: Adjust to the newest Autotest which no longer
2910 forces `.' in the PATH.
2911
30f8c395
AD
29122002-01-25 Akim Demaille <akim@epita.fr>
2913
2914 * tests/regression.at (%nonassoc and eof): New.
2915 Suggested by Robert Anisko.
2916
29ae55f1
AD
29172002-01-24 Akim Demaille <akim@epita.fr>
2918
2919 Bison dumps core when trying to complain about broken input files.
2920 Reported by Cris van Pelt.
2921
2922 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
2923 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
2924 into...
2925 (Invalid inputs): Strengthen: exercise parse_percent_token.
2926
2b548aa6
RA
29272002-01-24 Robert Anisko <robert.anisko@epita.fr>
2928
2929 * src/Makefile.am: Add bison.c++.
2930 * src/bison.c++: New skeleton.
2931
bb0146c2
AD
29322002-01-21 Paolo Bonzini <bonzini@gnu.org>
2933
2934 * po/it.po: New.
2935
bec30531
AD
29362002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
2937
2938 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
2939
fc6edc45
MA
29402002-01-20 Marc Autret <marc@gnu.org>
2941
2942 * src/files.c (compute_output_file_names): Fix
2943
5e5d5415
MA
29442002-01-20 Marc Autret <marc@gnu.org>
2945
2946 * tests/output.at: New test.
2947 * src/files.c (compute_base_names): Don't map extensions when
2948 the YACC flag is set, use defaults.
2949 Reported by Evgeny Stambulchik.
2950
44ea3fbd
MA
29512002-01-20 Marc Autret <marc@gnu.org>
2952
bb0146c2 2953 * src/system.h: Need to define __attribute__ away for non-GCC
44ea3fbd
MA
2954 compilers as well (i.e. the vendor C compiler).
2955 Suggested by Albert Chin-A-Young.
2956
338963d1
TVH
29572002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
2958
2959 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
2960 canonical definition.
2961 * src/system.h: Use the canonical definition for PARAMS (avoids
2962 a conflict with the macro from lib/hash.h).
2963
c57b2479
AD
29642002-01-11 Akim Demaille <akim@epita.fr>
2965
2966 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 2967 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 2968
b85810ae
AD
29692002-01-09 Akim Demaille <akim@epita.fr>
2970
2971 * src/files.c, src/files.h (output_infix): New.
2972 (tab_extension): Remove.
2973 (compute_base_names): Compute the former, drop the latter.
2974 * src/output.c (prepare): Insert the muscles `output-infix', and
2975 `output-suffix'.
2976 * src/parse-skel.y (string, string.1): New.
2977 (section.header): Use it.
2978 (section.yacc): Remove.
2979 (prefix): Remove too.
2980 * src/scan-skel.l: Adjust.
2981 * src/bison.simple, src/bison.hairy: Adjust.
2982
cae60122
AD
29832002-01-09 Akim Demaille <akim@epita.fr>
2984
2985 * configure.in (WERROR_CFLAGS): Compute it.
2986 * src/Makefile.am (CFLAGS): Pass it.
2987 * tests/atlocal.in (CFLAGS): Idem.
2988 * src/files.c: Fix a few warnings.
2989 (get_extension_index): Remove, unused.
2990
ae404801
AD
29912002-01-08 Akim Demaille <akim@epita.fr>
2992
2993 * src/getargs.c (AS_FILE_NAME): New.
2994 (getargs): Use it to convert DOSish file names.
2995 * src/files.c (base_name): Rename as full_base_name to avoid
2996 clashes with `base_name ()'.
2997 (filename_split): New.
2998 (compute_base_names): N-th rewrite, using filename_split.
2999
22312b71
AD
30002002-01-08 Akim Demaille <akim@epita.fr>
3001
3002 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
3003 New, stolen from the Fileutils 4.1.
3004 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
3005 * configure.in: Check for the presence of memrchr, and of its
3006 prototype.
3007
a67cef01
TVH
30082002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
3009
3010 * lib/hash.h (__P): Added definition for this macro.
3011 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
3012 BUILT_SOURCES, to ensure they are generated first.
3013 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
3014 %error-verbose to allow bootstrapping with bison 1.30x.
3015
2b25d624
AD
30162002-01-06 Akim Demaille <akim@epita.fr>
3017
3018 * src/reader.c (parse_braces): Don't fetch the next char, the
3019 convention is to fetch on entry.
3020 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
3021 'switch' without a following semicolon.
3022 * tests/regression.at (braces parsing): New.
3023
3460813b
AD
30242002-01-06 Akim Demaille <akim@epita.fr>
3025
3026 Bison is dead wrong in its RR conflict reports.
3027
3028 * tests/torture.at (GNU Cim Grammar): New.
3029 * src/conflicts.c (count_rr_conflicts): Fix.
3030
73784c64
AD
30312002-01-06 Akim Demaille <akim@epita.fr>
3032
3033 Creating package.m4 from configure.ac causes too many problems.
3034
3035 * tests/Makefile.am (package.m4): Create it by hand,
3036 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
3037
25d81090
AD
30382002-01-06 Akim Demaille <akim@epita.fr>
3039
3040 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
3041 skeleton.h.
3042
a9b8959e
PE
30432002-01-04 Paul Eggert <eggert@twinsun.com>
3044
3045 * doc/bison.texinfo (Debugging):
3046 Remove YYSTDERR; it's no longer defined or used.
3047 Also, s/cstdio.h/cstdio/.
3048
25d81090
AD
30492002-01-03 Akim Demaille <akim@epita.fr>
3050
3051 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
3052
1109455c
AD
30532002-01-03 Akim Demaille <akim@epita.fr>
3054
3055 * src/parse-skel.y (process_skeleton): Don't bind the parser's
3056 tracing code to --trace, wait for a better --trace option, with
3057 args.
3058
7ea5e977
AD
30592002-01-03 Akim Demaille <akim@epita.fr>
3060
3061 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
3062 The ISO C++ standard is extremely clear about it: stderr is
3063 considered a macro, not a regular symbol (see table 94 `Header
3064 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
3065 Therefore std:: does not apply to it. It still does with fprintf.
3066 Also, s/cstdio.h/cstdio/.
3067
fab5b110
AD
30682002-01-03 Akim Demaille <akim@epita.fr>
3069
3070 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
3071 for non system headers.
3072
aed7fd9b
AD
30732002-01-02 Akim Demaille <akim@epita.fr>
3074
3075 Equip the skeleton chain with location tracking, runtime trace,
3076 pure parser and scanner.
3077
3078 * src/parse-skel.y: Request a pure parser, locations, and prefix
3079 renaming.
3080 (%union): Having several members with the same type does not help
3081 type mismatches, simplify.
3082 (YYPRINT, yyprint): New.
3083 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
3084 (skel_error): this.
3085 Handle locations.
3086 * src/scan-skel.l: Adjust to these changes.
3087 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
3088 (LOCATION_PRINT, skel_control_t): New.
3089
24fad99e
AD
30902001-12-30 Akim Demaille <akim@epita.fr>
3091
3092 * src/parse-skel.y: Get rid of the shift/reduce conflict:
3093 replace `gb' with BLANKS.
3094 * src/scan-skel.l: Adjust.
3095
a4b36db4
AD
30962001-12-30 Akim Demaille <akim@epita.fr>
3097
3098 * src/system.h: We don't need nor want bcopy.
3099 Throw away MS-DOS crap: we don't need getpid.
3100 * configure.in: We don't need strndup. It was even causing
3101 problems: because Flex includes the headers *before* us,
3102 _GNU_SOURCE is not defined by config.h, and therefore strndup was
3103 not visible.
3104 * lib/xstrndup.c: New.
3105 * src/scan-skel.l: Use it.
3106 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
3107 * src/parse-skel.y: Use %directives instead of #defines.
3108
1239777d
AD
31092001-12-30 Akim Demaille <akim@epita.fr>
3110
3111 * src/skeleton.h: New.
3112 * src/output.c (output_parser, output_master_parser): Remove, dead
3113 code.
3114 * src/output.h (get_lines_number, actions_output, guards_output)
3115 (token_definitions_output): Prototype them.
3116 * src/parse-skel.y: Add the license notice.
3117 Include output.h and skeleton.h.
3118 (process_skeleton): Returns void, and takes a single parameter.
3119 * src/scan-skel.l: Add the license notice.
3120 Include skeleton.h.
3121 Don't use %option yylineno: it seems that then Flex imagines
3122 REJECT has been used, and therefore it won't reallocate its
3123 buffers (which makes no other sense to me than a bug). It results
3124 in warnings for `unused: yy_flex_realloc'.
3125
9b3add5b
RA
31262001-12-30 Robert Anisko <robert.anisko@epita.fr>
3127
3128 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
3129 (MUSCLE_INSERT_PREFIX): ...to there.
3130 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
3131 (MUSCLE_INSERT_PREFIX): Move from here...
3132
3133 * src/bison.hairy: Add a section directive. Put braces around muscle
3134 names. This parser skeleton is still broken, but Bison should not
3135 choke on a bad muscle 'syntax'.
3136 * src/bison.simple: Add a section directive. Put braces around muscle
3137 names.
3138
3139 * src/files.h (strsuffix, stringappend): Add declarations.
3140 (tab_extension): Add declaration.
3141 (short_base_name): Add declaration.
3142
3143 * src/files.c (strsuffix, stringappend): No longer static. These
3144 functions are used in the skeleton parser.
3145 (tab_extension): New.
3146 (compute_base_names): Use the computations done in this function
fab5b110 3147 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
3148 names.
3149 (short_base_name): No longer static.
3150
3151 * src/output.c (output_skeleton): New.
3152 (output): Disable call to output_master_parser, and give a try to
3153 a new skeleton handling system.
3154 (guards_output, actions_output): No longer static.
3155 (token_definitions_output, get_lines_number): No longer static.
3156
3157 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
3158
fab5b110 3159 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
3160 parse-skel.y.
3161
3162 * src/parse-skel.y: New file.
3163 * src/scan-skel.l: New file.
3164
b5b61c61
AD
31652001-12-29 Akim Demaille <akim@epita.fr>
3166
3167 %name-prefix is broken.
3168
3169 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
3170 Adjust all dependencies.
3171 * tests/headers.at (export YYLTYPE): Strengthen this test: use
3172 %name-prefix.
3173
3174 Renaming yylval but not yylloc is not consistent. Now we do.
3175
3176 * src/bison.simple: Prefix yylloc if used.
3177 * doc/bison.texinfo (Decl Summary): Document that.
3178
8c9a50be
AD
31792001-12-29 Akim Demaille <akim@epita.fr>
3180
3181 * doc/bison.texinfo: Promote `%long-directive' over
3182 `%long_directive'.
3183 Remove all references to fixed-output-files, yacc is enough.
3184
d99361e6
AD
31852001-12-29 Akim Demaille <akim@epita.fr>
3186
3187 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
3188 user prologue. These are defaults.
3189 * tests/actions.at (Mid-rule actions): Make sure the user can
3190 define YYDEBUG and YYERROR_VERBOSE.
3191
b9cecb91
AD
31922001-12-29 Akim Demaille <akim@epita.fr>
3193
3194 * src/output.c (header_output): Don't forget to export YYLTYPE and
3195 yylloc.
3196 * tests/headers.at (export YYLTYPE): New, make sure it does.
3197 * tests/regression.at (%union and --defines, Invalid CPP headers):
3198 Move to...
3199 * tests/headers.at: here.
3200
aea13e97
AD
32012001-12-29 Akim Demaille <akim@epita.fr>
3202
3203 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
3204
931394cb
AD
32052001-12-29 Akim Demaille <akim@epita.fr>
3206
3207 * tests/actions.at (Mid-rule actions): Output on a single line
3208 instead of several.
3209
704a47c4
AD
32102001-12-29 Akim Demaille <akim@epita.fr>
3211
3212 * doc/bison.texinfo: Formatting changes.
3213
091e20bb
AD
32142001-12-29 Akim Demaille <akim@epita.fr>
3215
3216 Don't store the token defs in a muscle, just be ready to output it
3217 on command. Now possible via `symbols'. Fixes a memory leak.
3218
3219 * src/output.c (token_definitions_output): New.
3220 (output_parser, header_output): Use it.
3221 * src/reader.c (symbols_save): Remove.
3222
cce71710
AD
32232001-12-29 Akim Demaille <akim@epita.fr>
3224
3225 * src/bison.simple: Do not provide a default for YYSTYPE and
3226 YYLTYPE before the user's prologue. Otherwise it's hardly... a
3227 default.
3228
82c035a8
AD
32292001-12-29 Akim Demaille <akim@epita.fr>
3230
3231 Mid-rule actions are simply... ignored!
3232
3233 * src/reader.c (readgram): Be sure to attach mid-rule actions to
3234 the empty-rule associated to the dummy symbol, not to the host
3235 rule.
3236 * tests/actions.at (Mid-rule actions): New.
3237
8419d367
AD
32382001-12-29 Akim Demaille <akim@epita.fr>
3239
3240 Memory leak.
3241
3242 * src/reader.c (reader): Free grammar.
3243
375d5806
AD
32442001-12-29 Akim Demaille <akim@epita.fr>
3245
3246 Memory leak.
3247
3248 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
3249 since it allocates it for each state, although only one is needed.
3250 (allocate_storage): Do it here.
3251
f51cb8ff
AD
32522001-12-29 Akim Demaille <akim@epita.fr>
3253
3254 * src/options.h, src/options.c (create_long_option_table): Rename
3255 as...
3256 (long_option_table_new): this, with a clearer prototype.
3257 (percent_table): Remove, unused,
3258 * src/getargs.c (getargs): Adjust.
3259
29e88316
AD
32602001-12-29 Akim Demaille <akim@epita.fr>
3261
3262 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
3263 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
3264 as states.
3265
b9f71f19
AD
32662001-12-29 Akim Demaille <akim@epita.fr>
3267
3268 * src/lalr.c (build_relations): Rename `states' as `states1'.
3269 Sorry, I don't understand exactly what it is, no better name...
3270
1a2b5d37
AD
32712001-12-29 Akim Demaille <akim@epita.fr>
3272
3273 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
3274 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
3275 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
3276 as rules.
3277
1cca533e
AD
32782001-12-29 Akim Demaille <akim@epita.fr>
3279
3280 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
3281 ago.
3282
c03ae966
AD
32832001-12-29 Akim Demaille <akim@epita.fr>
3284
3285 * src/reader.c, src/reader.h (user_toknums): Remove.
3286 Adjust all users to use symbols[i]->user_token_number.
3287
5a670b1e
AD
32882001-12-29 Akim Demaille <akim@epita.fr>
3289
3290 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
3291 Adjust all users to use symbols[i]->prec or ->assoc.
3292
ad949da9
AD
32932001-12-29 Akim Demaille <akim@epita.fr>
3294
3295 * src/reader.c, src/reader.h (tags): Remove.
3296 Adjust all users to use symbols[i]->tag.
3297
0e78e603
AD
32982001-12-29 Akim Demaille <akim@epita.fr>
3299
3300 * src/gram.h, src/gram.c (symbols): New, similar to state_table
3301 and rule_table.
3302 * src/reader.c (packsymbols): Fill this table.
3303 Drop sprec.
3304 * src/conflicts.c (resolve_sr_conflict): Adjust.
3305 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
3306 single table.
3307 Use symbols[i]->tag instead of tags[i].
3308
213e640e
AD
33092001-12-29 Akim Demaille <akim@epita.fr>
3310
3311 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
3312 In addition, put a comment in there, to replace...
3313 * tests/regression.at (%union and C comments): Remove.
3314
e7b8bef1
AD
33152001-12-29 Akim Demaille <akim@epita.fr>
3316
3317 * tests/regression.at (Web2c Actions): Blindly move the actual
3318 output as expected output. The contents *seem* right to me, but I
3319 can't pretend reading perfectly parser tables... Nonetheless, all
3320 the other tests pass correctly, the table look OK, even though the
3321 presence of `$axiom' is to be noted: AFAICS it is useless (but
3322 harmless).
3323
b68e7744
AD
33242001-12-29 Akim Demaille <akim@epita.fr>
3325
3326 * src/reader.c (readgram): Don't add the rule 0 if there were no
3327 rules read. In other words, add it _after_ having performed
3328 grammar sanity checks.
3329 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
3330
78d5bae9
AD
33312001-12-29 Akim Demaille <akim@epita.fr>
3332
3333 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
3334 visible, and some states have now a different number.
3335
ff442794
AD
33362001-12-29 Akim Demaille <akim@epita.fr>
3337
3338 * src/reader.c (readgram): Bind the initial rule's lineno to that
3339 of the first rule.
3340 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
3341 (Solved SR Conflicts): Adjust rule 0's line number.
3342
610ab194
AD
33432001-12-29 Akim Demaille <akim@epita.fr>
3344
3345 Fix the `GAWK Grammar' failure.
3346
3347 * src/LR0.c (final_state): Initialize to -1 so that we do compute
3348 the reductions of the first state which was mistakenly confused
3349 with the final state because precisely final_state was initialized
3350 to 0.
3351 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
3352 now noticed by Bison.
3353 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
3354 have a reduction on $default.
3355
29d29c8f
AD
33562001-12-29 Akim Demaille <akim@epita.fr>
3357
3358 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
3359 rule line numbers.
3360 * src/closure.c (print_closure): Likewise.
3361 * src/derives.c (print_derives): Likewise.
3362 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
3363 now.
3364
7c6b64d0
AD
33652001-12-29 Akim Demaille <akim@epita.fr>
3366
3367 * src/lalr.c (lookaheads_print): New.
3368 (lalr): Call it when --trace-flag.
3369 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
3370 are dumped.
3371
3d4daee3
AD
33722001-12-29 Akim Demaille <akim@epita.fr>
3373
3374 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
3375 when walking through ritem, even via rule->rhs.
3376 * src/reduce.c (dump_grammar, useful_production, reduce_output)
3377 (useful_production, useless_nonterminals): Likewise.
3378 (reduce_grammar_tables): Likewise, plus update nritems.
3379 * src/nullable.c (set_nullable): Likewise.
3380 * src/lalr.c (build_relations): Likewise.
3381 * tests/sets.at (Nullable): Adjust.
3382 Fortunately, now, the $axiom is no longer nullable.
3383
9e7f6bbd
AD
33842001-12-29 Akim Demaille <akim@epita.fr>
3385
3386 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
3387 the 0-sentinel.
3388 * src/gram.c (ritem_longest_rhs): Likewise.
3389 * src/reduce.c (nonterminals_reduce): Likewise.
3390 * src/print_graph.c (print_graph): Likewise.
3391 * src/output.c (output_rule_data): Likewise.
3392 * src/nullable.c (set_nullable): Likewise.
3393
255ef638
AD
33942001-12-29 Akim Demaille <akim@epita.fr>
3395
3396 * src/output.c: Comment changes.
3397
0d8a7363
AD
33982001-12-27 Paul Eggert <eggert@twinsun.com>
3399
3400 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
3401 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
3402 Sparc, as they were causing more porting problems than the
3403 (minor) performance improvement was worth.
3404
3405 Also, catch up with 1.31's YYSTD.
3406
3db472b9
AD
34072001-12-27 Akim Demaille <akim@epita.fr>
3408
3409 * src/output.c (output_gram): Rely on nritems, not the
3410 0-sentinel. See below.
3411 Use -1 as separator, not 0.
3412 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
3413 Rely on -1 as separator in yyrhs, instead of 0.
3414 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
3415 twice `Now at end of input', therefore there are two lines less to
3416 expect.
3417
b365aa05
AD
34182001-12-27 Akim Demaille <akim@epita.fr>
3419
3420 * tests/regression.at (Unresolved SR Conflicts):
3421 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
3422 below.
3423
30171f79
AD
34242001-12-27 Akim Demaille <akim@epita.fr>
3425
3426 * src/LR0.c (new_state): Recognize the final state by the fact it
3427 is reached by eoftoken.
3428 (insert_start_shifting_state, insert_eof_shifting_state)
3429 (insert_accepting_state, augment_automaton): Remove, since now
3430 these states are automatically computed from the initial state.
3431 (generate_states): Adjust.
3432 * src/print.c: When reporting a rule number to the user, substract
3433 1, so that the axiom rule is rule 0, and the first user rule is 1.
3434 * src/reduce.c: Likewise.
3435 * src/print_graph.c (print_core): For the time being, just as for
3436 the report, depend upon --trace-flags to dump the full set of
3437 items.
3438 * src/reader.c (readgram): Once the grammar read, insert the rule
3439 0: `$axiom: START-SYMBOL $'.
3440 * tests/set.at: Adjust: rule 0 is now displayed, and since the
3441 number of the states has changed (the final state is no longer
3442 necessarily the last), catch up.
3443
75142d45
AD
34442001-12-27 Akim Demaille <akim@epita.fr>
3445
3446 Try to make the use of the eoftoken valid. Given that its value
3447 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
3448 is used instead of > 0 where appropriate, (ii), depend upon nritems
3449 instead of the 0-sentinel.
3450
3451 * src/gram.h, src/gram.c (nritems): New.
3452 Expected to be duplication of nitems, but for the time being...
3453 * src/reader.c (packgram): Assert nritems and nitems are equal.
3454 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
3455 * src/closure.c (print_closure, print_fderives): Likewise.
3456 * src/gram.c (ritem_print): Likewise.
3457 * src/print.c (print_core, print_grammar): Likewise.
3458 * src/print_graph.c: Likewise.
3459
b7c49edf
AD
34602001-12-27 Akim Demaille <akim@epita.fr>
3461
3462 * src/main.c (main): If there are complains after grammar
3463 reductions, then output the report anyway if requested, then die.
3464 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
3465 * src/reader.c (eoftoken): New.
3466 (parse_token_decl): If the token being defined has value `0', it
3467 is the eoftoken.
3468 (packsymbols): No longer hack `tags' to insert `$' by hand.
3469 Be sure to preserve the value of the eoftoken.
3470 (reader): Make sure eoftoken is defined.
3471 Initialize nsyms to 0: now eoftoken is created just like the others.
3472 * src/print.c (print_grammar): Don't special case the eof token.
3473 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
3474 lie anyway, albeit pleasant.
3475 * tests/calc.at: Exercise error messages with eoftoken.
3476 Change the grammar so that empty input is invalid.
3477 Adjust expectations.
3478 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
3479
ec2da99f
AD
34802001-12-27 Akim Demaille <akim@epita.fr>
3481
3482 * configure.in: Check the protos of strchr ans strspn.
3483 Replace strchr if needed.
3484 * src/system.h: Provide the protos of strchr, strspn and memchr if
3485 missing.
3486 * lib/strchr.c: New.
3487 * src/reader.c (symbols_save): Use strchr.
3488
8adfa272
AD
34892001-12-27 Akim Demaille <akim@epita.fr>
3490
3491 * src/print.c, src/print_graph.c (escape): New.
3492 Use it to quote the TAGS outputs.
3493 * src/print_graph.c (print_state): Now errors are in red, and
3494 reductions in green.
3495 Prefer high to wide: output the state number on a line of its own.
3496
80dac38c
AD
34972001-12-27 Akim Demaille <akim@epita.fr>
3498
3499 * src/state.h, src/state.c (reductions_new): New.
3500 * src/LR0.c (set_state_table): Let all the states have a
3501 `reductions', even if reduced to 0.
3502 (save_reductions): Adjust.
3503 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
3504 * src/print.c (print_reductions, print_actions): Adjust.
3505 * src/output.c (action_row): Adjust.
3506
2cec70b9
AD
35072001-12-27 Akim Demaille <akim@epita.fr>
3508
3509 * src/state.h, src/state.c (errs_new, errs_dup): New.
3510 * src/LR0.c (set_state_table): Let all the states have an errs,
3511 even if reduced to 0.
3512 * src/print.c (print_errs, print_reductions): Adjust.
3513 * src/output.c (output_actions, action_row): Adjust.
3514 * src/conflicts.c (resolve_sr_conflict): Adjust.
3515
13ca549a
AD
35162001-12-27 Akim Demaille <akim@epita.fr>
3517
3518 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
3519
5092aba5
AD
35202001-12-27 Akim Demaille <akim@epita.fr>
3521
3522 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
3523 * src/print.c: here.
3524 (lookaheadset, shiftset): New, used as additional storage by
3525 print_reductions.
3526 (print_results): Adjust.
3527 (print_shifts, print_gotos, print_errs): New, extracted from...
3528 (print_actions): here.
3529 * src/print_graph.c (print_actions): Remove dead code.
3530
11e2beca
AD
35312001-12-27 Akim Demaille <akim@epita.fr>
3532
3533 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
3534 `$n' and `@n'.
3535
dac3c910
AD
35362001-12-27 Akim Demaille <akim@epita.fr>
3537
3538 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
3539 (build_relations): Adjust.
3540
d0b0fefa
AD
35412001-12-27 Akim Demaille <akim@epita.fr>
3542
3543 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
3544 duplication.
3545
adc8c848
AD
35462001-12-27 Akim Demaille <akim@epita.fr>
3547
3548 * src/reader.c (packgram): Catch nitems overflows.
3549
14d293ac
AD
35502001-12-27 Akim Demaille <akim@epita.fr>
3551
3552 * src/files.c, src/files.h (guard_obstack): Remove.
3553 * src/output.c (output): Adjust.
3554 * src/reader.c (parse_braces): New, factoring...
3555 (copy_action, copy_guard): these two which are renamed as...
3556 (parse_action, parse_guard): these.
3557 As a voluntary consequence, using braces around guards is now
3558 mandatory.
3559
f499b062
AD
35602001-12-27 Akim Demaille <akim@epita.fr>
3561
3562 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
3563 * src/reader.c (symbol_list): `guard' and `guard_line' are new
3564 members.
3565 (symbol_list_new): Adjust.
3566 (copy_action): action_line is the first line, not the last.
3567 (copy_guard): Just as for actions, store the `action' only, not
3568 the switch/case/break flesh.
3569 Don't parse the user action that might follow the guard, let...
3570 (readgram): do it, i.e., now, there can be an action after a
3571 guard.
3572 In other words the guard is just explicitly optional.
3573 (packgram): Adjust.
3574 * src/output.c (guards_output): New.
3575 (output_parser): Call it when needed.
3576 (output): Also free the guard and attrs obstacks.
3577 * src/files.c, src/files.h (obstack_save): Remove.
3578 (output_files): Remove.
3579 As a result, if one needs the former `.act' file, using an
3580 appropriate skeleton which requires actions and guards is now
3581 required.
3582 * src/main.c (main): Adjust.
3583 * tests/semantic.at: New.
3584 * tests/regression.at: Use `input.y' as input file name.
3585 Avoid 8+3 problems by requiring input.c when the test needs the
3586 parser.
3587
d945f5cd
AD
35882001-12-27 Akim Demaille <akim@epita.fr>
3589
3590 * src/reader.c (symbol_list_new): Be sure to initialize all the
3591 fields.
3592
d200e455
AD
35932001-12-27 Akim Demaille <akim@epita.fr>
3594
3595 All the hacks using a final pseudo state are now useless.
3596
3597 * src/LR0.c (set_state_table): state_table holds exactly nstates.
3598 * src/lalr.c (nLA): New.
3599 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
3600 instead of lookaheadsp from the pseudo state (nstate + 1).
3601
f9507c28
AD
36022001-12-27 Akim Demaille <akim@epita.fr>
3603
3604 * src/output.c (action_row, token_actions): Use a state_t instead
3605 of a integer, and nlookaheads instead of the following state's
3606 lookaheadsp.
3607
065fbd27
AD
36082001-12-27 Akim Demaille <akim@epita.fr>
3609
3610 * src/conflicts.c (log_resolution, flush_shift)
3611 (resolve_sr_conflict, set_conflicts, solve_conflicts)
3612 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
3613 (conflicts_print, print_reductions): Use a state_t instead of an
3614 integer when referring to a state.
3615 As much as possible, depend upon nlookaheads, instead of the
3616 `lookaheadsp' member of the following state (since lookaheads of
3617 successive states are successive, the difference between state n + 1
3618 and n served as the number of lookaheads for state n).
3619 * src/lalr.c (add_lookback_edge): Likewise.
3620 * src/print.c (print_core, print_actions, print_state)
3621 (print_results): Likewise.
3622 * src/print_graph.c (print_core, print_actions, print_state)
3623 (print_graph): Likewise.
3624 * src/conflicts.h: Adjust.
3625
1b177bd7
AD
36262001-12-27 Akim Demaille <akim@epita.fr>
3627
3628 * src/bison.hairy: Formatting/comment changes.
3629 ANSIfy.
3630 Remove `register' indications.
3631 Add plenty of `static'.
3632
7742ddeb
AD
36332001-12-27 Akim Demaille <akim@epita.fr>
3634
3635 * src/output.c (prepare): Drop the muscle `ntbase' which
3636 duplicates ntokens.
3637 * src/bison.simple: Formatting/comment changes.
3638 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
3639 is an undocumented synonym.
3640
1fa14068
AD
36412001-12-22 Akim Demaille <akim@epita.fr>
3642
3643 * src/output.c (output_table_data): Change the prototype to use
3644 `int' for array ranges: some invocations do pass an int, not a
3645 short.
3646 Reported by Wayne Green.
3647
b9752825
AD
36482001-12-22 Akim Demaille <akim@epita.fr>
3649
3650 Some actions of web2c.y are improperly triggered.
3651 Reported by Mike Castle.
3652
3653 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
3654 * tests/regression.at (Web2c): Rename as...
3655 (Web2c Report): this.
3656 (Web2c Actions): New.
3657
776209d6
AD
36582001-12-22 Akim Demaille <akim@epita.fr>
3659
3660 Reductions in web2c.y are improperly reported.
3661 Reported by Mike Castle.
3662
3663 * src/conflicts.c (print_reductions): Fix.
3664 * tests/regression.at (Web2c): New.
3665
275fc3ad
AD
36662001-12-18 Akim Demaille <akim@epita.fr>
3667
3668 Some host fail on `assert (!"foo")', which expands to
3669 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
3670 Reported by Nelson Beebee.
3671
3672 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
3673 `#define it_succeeded 0' and `assert (it_succeeded)'.
3674
897668ee
MA
36752001-12-17 Marc Autret <autret_m@epita.fr>
3676
3677 * src/bison.simple: Don't hard code the skeleton line and filename.
3678 * src/output.c (output_parser): Rename 'line' as 'output_line'.
3679 New line counter 'skeleton_line' (skeleton-line muscle).
3680
ab3399e0
PE
36812001-12-17 Paul Eggert <eggert@twinsun.com>
3682
3683 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
3684 YYDEBUG must be defined to a nonzero value.
3685
3686 * src/bison.simple (yytname): Do not assume that the user defines
3687 YYDEBUG to a properly parenthesized expression.
3688
3877f72b
AD
36892001-12-17 Akim Demaille <akim@epita.fr>
3690
3691 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
3692 nlookaheads is a new member.
3693 Adjust all users.
3694 * src/lalr.h (nlookaheads): Remove this orphan declaration.
3695 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
3696 state.
776209d6 3697
331dbc1b
AD
36982001-12-17 Akim Demaille <akim@epita.fr>
3699
3700 * src/files.h, src/files.c (open_files, close_files): Remove.
3701 * src/main.c (main): Don't open/close files, nor invoke lex_free,
3702 let...
3703 * src/reader.c (reader): Do it.
776209d6 3704
be750e4c
AD
37052001-12-17 Akim Demaille <akim@epita.fr>
3706
3707 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 3708
709ae8c6
AD
37092001-12-17 Akim Demaille <akim@epita.fr>
3710
3711 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
3712 (flush_reduce): New.
3713 (resolve_sr_conflict): Adjust.
776209d6 3714
f87685c3
AD
37152001-12-17 Akim Demaille <akim@epita.fr>
3716
3717 * src/output.c (output_obstack): Be static and rename as...
3718 (format_obstack): this, to avoid any confusion with files.c's
3719 output_obstack.
3720 * src/reader.h (muscle_obstack): Move to...
3721 * src/output.h: here, since it's defined in output.c.
3722
837491d8
AD
37232001-12-17 Akim Demaille <akim@epita.fr>
3724
3725 * src/output.c (action_row, save_column, default_goto)
3726 (sort_actions, matching_state, pack_vector): Better variable
3727 locality.
3728
796d61fb
AD
37292001-12-17 Akim Demaille <akim@epita.fr>
3730
3731 * src/output.c: Various formatting changes.
776209d6 3732
64d15509
AD
37332001-12-17 Akim Demaille <akim@epita.fr>
3734
3735 * src/files.c (output_files): Free the output_obstack.
3736 * src/main.c (main): Call print and print_graph conditionally.
3737 * src/print.c (print): Work unconditionally.
3738 * src/print_graph.c (print_graph): Work unconditionally.
3739 * src/conflicts.c (log_resolution): Output only if verbose_flag.
3740
fbc8ecb7
MA
37412001-12-16 Marc Autret <autret_m@epita.fr>
3742
3743 * src/output.c (actions_output): Fix. When we use %no-lines,
3744 there is one less line per action.
3745
f0440388
MA
37462001-12-16 Marc Autret <autret_m@epita.fr>
3747
3748 * src/bison.simple: Remove a useless #line directive.
3749 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
3750 * src/output.c (get_lines_number): New.
776209d6 3751 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
3752 output muscles.
3753 Fix line numbering.
3754 (actions_output): Computes the number of lines taken by actions.
3755 (output_master_parser): Insert new skeleton which is the name of
3756 the output parser file name.
3757
a79986b8
MA
37582001-12-15 Marc Autret <autret_m@epita.fr>
3759
3760 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
3761
4ec8e00f
MA
37622001-12-15 Marc Autret <autret_m@epita.fr>
3763
3764 * src/output.c (output_gram): Keep track of the hairy one.
3765
1a4648ff
AD
37662001-12-15 Akim Demaille <akim@epita.fr>
3767
3768 Make `make distcheck' work.
3769
3770 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
3771 system.h which uses libgettext.h.
3772
9c2c67e6
AD
37732001-12-15 Akim Demaille <akim@epita.fr>
3774
3775 * src/nullable.c (set_nullable): Useless rules must be skipped,
3776 otherwise, since we range over their symbols, we might look at a
3777 nonterminal which no longer ``exists'', i.e., it is not counted in
3778 `nvars', hence we overflow our arrays.
3779
93ede233
AD
37802001-12-15 Akim Demaille <akim@epita.fr>
3781
3782 The header can also be produced directly, without any obstack!
3783 Yahoo!
3784
3785 * src/files.c, src/files.h (defines_obstack): Remove.
3786 (compute_header_macro): Global.
3787 (defines_obstack_save): Remove.
3788 * src/reader.c (parse_union_decl): No longer output to
3789 defines_obstack: its content can be found in the `stype' muscle
3790 anyway.
3791 (output_token_translations): Merge into...
3792 (symbols_output): this.
3793 Rename as...
3794 (symbols_save): this.
3795 (reader): Adjust.
3796 * src/output.c (header_output): New.
3797 (output): Call it.
3798
2666f928
AD
37992001-12-15 Akim Demaille <akim@epita.fr>
3800
3801 * src/reader.c (parse_union_decl): Instead of handling two obstack
3802 simultaneously, use one to define the `stype' muscle, and use the
3803 value of the latter to fill defines_obstack.
3804 (copy_comment): Remove.
3805 (copy_comment2): Work for a single obstack.
3806 Rename as...
3807 (copy_comment): this.
3808
428046f8
AD
38092001-12-15 Akim Demaille <akim@epita.fr>
3810
3811 * src/lex.c, src/lex.h (xgetc): No longer static.
3812 * src/reader.c (parse_union_decl): Revamp.
3813
ea52d706
AD
38142001-12-15 Akim Demaille <akim@epita.fr>
3815
3816 Still making progress in separating Bison into (i) input, (ii)
3817 process, (iii) output: now we can directly output the parser file
3818 without using table_obstack at all.
3819
3820 * src/files.c, src/files.h (table_obstack): Bye bye.
3821 (parser_file_name): New.
3822 * src/files.c (compute_output_file_names): Compute it.
3823 * src/output.c (actions_output, output_parser)
3824 (output_master_parser): To a file instead of an obstack.
3825
3f96f4dc
AD
38262001-12-15 Akim Demaille <akim@epita.fr>
3827
3828 Attach actions to rules, instead of pre-outputting them to
3829 actions_obstack.
3830
3831 * src/gram.h (rule_t): action and action_line are new members.
3832 * src/reader.c (symbol_list): Likewise.
3833 (copy_action): Save the actions within the rule.
3834 (packgram): Save them in rule_table.
3835 * src/output.c (actions_output): New.
3836 (output_parser): Use it on `%%actions'.
3837 (output_rule_data): Don't free rule_table.
3838 (output): Do it.
3839 (prepare): Don't save the `action' muscle.
3840 * src/bison.simple: s/%%action/%%actions/.
3841
51576fb3
AD
38422001-12-15 Akim Demaille <akim@epita.fr>
3843
3844 * src/reader.c (copy_action): When --yacc, don't append a `;'
3845 to the user action: let it fail if lacking.
dee049eb 3846 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 3847
2648a72d
AD
38482001-12-14 Akim Demaille <akim@epita.fr>
3849
3850 * src/lex.c (literalchar): Simply return the char you decoded, non
3851 longer mess around with obstacks and int pointers.
3852 Adjust all callers.
3853
92790e5b
AD
38542001-12-14 Akim Demaille <akim@epita.fr>
3855
3856 * src/lex.c (literalchar): Don't escape the special characters,
3857 just decode them, and keep them as char (before, eol was output as
3858 the 2 char string `\n' etc.).
3859 * src/output.c (output_rule_data): Use quotearg to output the
3860 token strings.
3861
927c1557
PE
38622001-12-13 Paul Eggert <eggert@twinsun.com>
3863
3864 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
3865 Do not infringe on the global user namespace when using C++.
3866 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
3867 All uses of `fprintf' and `stderr' changed.
3868
3869 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
3870
ed8e1f68
AD
38712001-12-13 Akim Demaille <akim@epita.fr>
3872
3873 The computation of nullable is broken: it doesn't handle empty
3874 RHS's properly.
3875
3876 * tests/torture.at (GNU AWK Grammar): New.
3877 * tests/sets.at (Nullable): New.
3878 * src/nullable.c (set_nullable): Instead of blindly looping over
3879 `ritems', loop over the rules, and then over their rhs's.
3880
3881 Work around Autotest bugs.
3882
3883 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
3884 frame, because Autotest understand lines starting with a `+' as
3885 traces from the shell. Then, they are not processed properly.
3886 Admittedly an Autotest bug, but we don't have time to wait for
3887 Autotest to catch up.
3888 * tests/regression.at (Broken Closure): Adjust to the new table
3889 frames.
3890 Move to...
3891 * tests/sets.at: here.
3892
cb581495
AD
38932001-12-13 Akim Demaille <akim@epita.fr>
3894
3895 * src/closure.c (closure): Use nrules instead of playing tricks
3896 with BITS_PER_WORD.
3897
2e729273
AD
38982001-12-13 Akim Demaille <akim@epita.fr>
3899
3900 * src/print.c (print_actions): Output the handling of `$' as the
3901 traces do: shifting the token EOF. Before EOF was treated as a
3902 nonterminal.
3903 * tests/regression.at: Adjust some tests.
3904 * src/print_graph.c (print_core): Complete the set of items via
3905 closure. The next-to-final and final states are still unsatisfying,
3906 but that's to be addressed elsewhere.
3907 No longer output the rule numbers, but do output the state number.
3908 A single loop for the shifts + gotos is enough, but picked a
3909 distinct color for each.
3910 (print_graph): Initialize and finalize closure.
3911
107f7dfb
AD
39122001-12-13 Akim Demaille <akim@epita.fr>
3913
3914 * src/reader.c (readgram): Remove dead code, an strip useless
3915 braces.
3916 (get_type): Remove, unused.
3917
9b53a24f
AD
39182001-12-12 Akim Demaille <akim@epita.fr>
3919
3920 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
3921 on that of lib/error.c.
3922
dbfb6dcd
AD
39232001-12-12 Akim Demaille <akim@epita.fr>
3924
3925 Some hosts don't like `/' in includes.
3926
3927 * src/system.h: Include libgettext.h without qualifying the path.
3928 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
3929 $(top_srcdir).
3930
c25fb648
MA
39312001-12-11 Marc Autret <autret_m@epita.fr>
3932
3933 * src/output.c (output_parser): Remove useless muscle.
3934
710ddc4f
MA
39352001-12-11 Marc Autret <autret_m@epita.fr>
3936
3937 * src/bison.simple: Remove #line just before %%epilogue. It
3938 is now handled in ...
3939 * src/reader.c (read_additionnal_code): Add the output of a
3940 #line for the epilogue.
3941
e83d80b8
MA
39422001-12-10 Marc Autret <autret_m@epita.fr>
3943
927c1557 3944 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
3945 replace precedent remove.
3946 * src/bison.simple: Remove #line before %%prologue because
3947 %%input-line is wrong at this time.
3948
971d5158
MA
39492001-12-10 Marc Autret <autret_m@epita.fr>
3950
3951 * src/reader.c (symbols_output): Clean up.
927c1557 3952 * src/output.c (output_gram, output): Clean up.
971d5158 3953
5edafffd
AD
39542001-12-10 Akim Demaille <akim@epita.fr>
3955
3956 * src/lalr.c (initialize_lookaheads): New. Extracted from...
3957 * src/LR0.c (set_state_table): here.
3958 * src/lalr.c (lalr): Call it.
3959
0279f8e9
AD
39602001-12-10 Akim Demaille <akim@epita.fr>
3961
3962 * src/state.h (shifts): Remove the `number' member: shifts are
3963 attached to state, hence no longer need to be labelled with a
3964 state number.
3965
190c4f5f
AD
39662001-12-10 Akim Demaille <akim@epita.fr>
3967
3968 Now that states have a complete set of members, the linked list of
3969 shifts is useless: just fill directly the state's shifts member.
3970
3971 * src/state.h (shifts): Remove the `next' member.
3972 * src/LR0.c (first_state, last_state): Remove.
3973 Adjust the callers.
3974 (augment_automaton): Don't look for the shifts that must be added
3975 a shift on EOF: it is those of the state we looked for! But now,
3976 since shifts are attached, it is no longer needed to looking
3977 merely by its id: its number.
3978
2a73b93d
AD
39792001-12-10 Akim Demaille <akim@epita.fr>
3980
3981 * src/LR0.c (augment_automaton): Better variable locality.
3982 Remove an impossible branch: if there is a state corresponding to
3983 the start symbol being shifted, then there is shift for the start
3984 symbol from the initial state.
3985
74392f6a
AD
39862001-12-10 Akim Demaille <akim@epita.fr>
3987
3988 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
3989 only when appropriate: when insert_start_shifting_state' is not
3990 invoked.
3991 * tests/regression.at (Rule Line Numbers): Adjust.
3992
37c82725
AD
39932001-12-10 Akim Demaille <akim@epita.fr>
3994
3995 * src/LR0.c (augment_automaton): Now that all states have shifts,
3996 merge the two cases addition shifts to the initial state.
3997
6a164e0c
AD
39982001-12-10 Akim Demaille <akim@epita.fr>
3999
4000 * src/lalr.c (set_state_table): Move to...
4001 * src/LR0.c: here.
4002 * src/lalr.c (lalr): Don't call it...
4003 * src/LR0.c (generate_states): do it.
4004 * src/LR0.h (first_state): Remove, only the table is used.
4005
7215de24
AD
40062001-12-10 Akim Demaille <akim@epita.fr>
4007
4008 * src/LR0.h (first_shift, first_reduction): Remove.
4009 * src/lalr.c: Don't use first_shift: find shifts through the
4010 states.
4011
80e25d4d
AD
40122001-12-10 Akim Demaille <akim@epita.fr>
4013
4014 * src/LR0.c: Attach shifts to states as soon as they are
4015 computed.
4016 * src/lalr.c (set_state_table): Instead of assigning shifts to
4017 state, just assert that the mapping was properly done.
4018
0ab3728b
AD
40192001-12-10 Akim Demaille <akim@epita.fr>
4020
4021 * src/LR0.c (insert_start_shift): Rename as...
4022 (insert_start_shifting_state): this.
4023 (insert_eof_shifting_state, insert_accepting_state): New.
4024 (augment_automaton): Adjust.
4025 Better locality of the variables.
4026 When looking if the start_symbol is shifted from the initial
4027 state, using `while (... symbol != start_symbol ...)' sounds
4028 better than `while (... symbol < start_symbol ...)': If fail
4029 to see how the order between symbols could be relevant!
4030
78af9bbc
AD
40312001-12-10 Akim Demaille <akim@epita.fr>
4032
4033 * src/getargs.h: Don't declare `spec_name_prefix' and
4034 `spec_file_prefix', declared by src/files.h.
4035 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
4036 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
4037 * src/output.c (prepare): Adjust.
4038 * src/reader.c (symbols_output): Likewise.
4039 * src/vmsgetargs.c: Vaguely adjust, but who cares?
4040
bdef2a41
AD
40412001-12-10 Akim Demaille <akim@epita.fr>
4042
4043 * src/muscle_tab.c (muscle_init): NULL is a better default than
4044 `"0"'.
4045
3735969c
AD
40462001-12-10 Akim Demaille <akim@epita.fr>
4047
4048 * src/reader.c (reader): Calling symbols_output once is enough.
4049
49701457
AD
40502001-12-10 Akim Demaille <akim@epita.fr>
4051
4052 Now that states have a complete set of members, the linked list of
4053 reductions is useless: just fill directly the state's reductions
4054 member.
4055
4056 * src/state.h (struct reductions): Remove member `number' and
4057 `next'.
4058 * src/LR0.c (first_reduction, last_reduction): Remove.
4059 (save_reductions): Don't link the new reductions, store them in
4060 this_state.
4061 * src/lalr.c (set_state_table): No need to attach reductions to
4062 states, it's already done.
4063 * src/output.c (output_actions): No longer free the shifts, then
4064 the reductions, then the states: free all the states and their
4065 members.
4066
0edad749
AD
40672001-12-10 Akim Demaille <akim@epita.fr>
4068
4069 * src/options.c (OPTN, DRTV, BOTH): New.
4070 (option_table): Use them.
4071
0edad749
AD
4072 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
4073 the job of system.h.
4074 * src/options.c: Don't include stdio.h and xalloc.h for the same
4075 reasons.
4076
5449dd0f
AD
40772001-12-10 Akim Demaille <akim@epita.fr>
4078
4079 * src/output.c (output, prepare): Make sure the values of the
4080 muscles `action' and `prologue' are 0-terminated.
4081
a870c567
AD
40822001-12-10 Akim Demaille <akim@epita.fr>
4083
4084 Clean up GCC warnings.
4085
4086 * src/reader.c (copy_action): `buf' is not used.
4087 (parse_skel_decl): Be static.
4088 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
4089 * src/options.h (create_long_option_table): Have a real prototype.
4090 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
4091 (hash_delete_at): Return const void *.
4092 Adjust casts to preserve the const.
4093
80df8768
AD
40942001-12-10 Akim Demaille <akim@epita.fr>
4095
4096 * configure.in: Require 2.52g.
4097 M4 is not needed, but AUTOM4TE is.
4098 * m4/m4.m4: Remove.
4099 * tests/Makefile.am: Adjust.
4100
f693ad14
AD
41012001-12-10 Akim Demaille <akim@epita.fr>
4102
4103 One structure for states is enough, even though theoretically
4104 there are LR(0) states and LALR(1) states.
4105
4106 * src/lalr.h (state_t): Remove.
4107 (state_table): Be state_t **, not state_t *.
4108 * src/state.h (core, CORE_ALLOC): Rename as...
4109 (state_t, STATE_ALLOC): this.
4110 Add the LALR(1) members: shifts, reductions, errs.
4111 * src/LR0.c (state_table): Rename as...
4112 (state_hash): this, to avoid name clashes with the global
4113 `state_table'.
4114 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
4115 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
4116
74ffbcb6
AD
41172001-12-10 Akim Demaille <akim@epita.fr>
4118
4119 Bison dumps core on bash.y.
4120 Reported by Pascal Bart.
4121
4122 * src/warshall.c (bitmatrix_print): New.
4123 (TC): Use it.
4124 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
4125 j must be the outer loop.
4126 * tests/regression.at (Broken Closure): New.
4127
07708e19
AD
41282001-12-05 Akim Demaille <akim@epita.fr>
4129
4130 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
4131 its argument.
4132