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