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