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