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