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