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