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